Integrated Development Environment (IDEs) and Text Editors

Things not to do with IDEs

As great as the IDEs are, don’t try to do things that can be done well in the terminal in IDEs. Things like running maven builds, git operations, etc. You are better off doing them in terminal.

My requirements for IDEs

  1. An IDE needs to support debugging. The language and the support features are “nice to have”. But supporting debugging feature is an absolute necessity.
  2. Navigate code using keyboard shortcuts
  3. Compare project with project in remote (main or some other feature branch) in Github (or any other version control system)
    1. I know how to do this in Eclipse. Pros: It is very easy. Cons: Memory intensive.
    2. There is a VSCode plugin that lets you do it. But it didn’t look very straight-forward. Cons: I couldn’t get it to work in the first shot.
  4. Search for a word and look at all the occurances of it in the entire project.
    1. And manipulate the results to replace, delete or do something else with the results.
  5. Java applications
    1. mvn integration
    2. Debugging
    3. Running tests and debugging tests
    4. springboot integration for Java applications
    5. set java version to use from within the IDE
    6. format java files for syntax
  6. Coding in Rust and other languages
  7. Comparing files and copying the differences from one file to another
  8. Terminal in the IDE
  9. Opening one-off files from the computer and working with that file.
  10. scratchpad text editor
  11. Git operations - Git integration, the smoother it is, the better.
    1. Note to self: Do not do anything related to Git from IDE. Instead, use terminal for git operation). IDEs are resouce intensive. Using it for anything other than writing code is not a good idea.
    2. branch control
      1. Creating new branches, checking out existing remote branches, point to different remote branches from local branch.
    3. Selective staging in diffs for Git
    4. Resolving conflicts
    5. Compare local project with a branch
    6. pull and push from the IDE itself

Text Editors

General preferences:

  • It should not be memory or resource intensive.
  • It should not take up significant resources of the host computer.
  • It should be able to do all the amazing things with minimal footprint.

Vim or Emacs?

The answer is both - using evil-mode.

It is a deliciously heretical idea to combine the two gods of text editing into an unholy abomination.

List

  1. emacs
  2. vim

IDE Options

  1. With the combination of IntelliJ and VSCode, we can do pretty much everything we need to do on a day-to-day basis. With this approach, I haven’t seen the need to use Eclipse.
  2. Eclipse
  3. Helix looks interesting. I’ll have it check it sometime later. https://github.com/helix-editor/helix
  4. Jetbrains
    1. Is Intellij IDEA Ultimate is worth the price?
    2. Installing different products from Jetbrains
    3. IntelliJ
    4. JPA Buddy
    5. Things I like
      1. Best support for git integration out of any other IDE I’ve used so far.
      2. The ability to run commands (shell, commands, go, npm, etc.) from markdown files and some other files is phenominal. Don’t have to open a terminal to run those commands. This makes things like setting up docker dependencies, running curl commands quickly to validate functionality, etc. so much faster.
  5. Lapce looks interesting. But I couldn’t run Rust project in it though. I’ll have it check it sometime later.
  6. Netbeans I tried using Netbeans a couple of times. But it didn’t workout for me.
  7. rust-rover seems to be great for Rust projects.
  8. Visual Studio Code
  9. LiteIDE

Tags

  1. EditorConfig