The features I need are:
- Refactoring Support (rename variable, class, function)
- Code Folding
- Automatic type checking
- Automatic error detection (tells me when syntactical or other errors are made)
- Built-in documentation loading/display on hover of cursor.
- Same thing as above except with any documentation I add myself on a function.
- Debugger with comment overlay of values (like PyCharm)
- Dependency management/Building/Deploying all a *button* (not 10 commands) away
- VCS integration
- Automatic code formatting
- Automatic code "cleaner" (change for (int i = 0; i < arr.length; i++) to an expanded loop for example)
- Automatic import cleaning
- Automatic project creation for basic use cases (console, GUI, maybe a web framework)
- Change CWD/environment variable for running the program
- GOTO definition
- A Graphical User Interface (Graphical being the biggest requirement)
Outside of all of those, there is a much much much more important feature: Auto Complete. A smart auto complete. An autocomplete that understands the type system and the function's return types.
For instance if I am typing:
String sub = someString.
It shouldn't recommend "length()" as well as in the case of:
String lengthStr = Integer.toString(someString.
It should recommend things that return an integer. This needs to be fast and needs to be non-case-sensitive. Also, if I am typing
Lis
It should recommend List, ArrayList, etc in that order with the closest thing up front. It should also in the recommendation screen show documentation, a link to official documentation, and possibly an example of how to initialize/use the code. If something isn't imported and so it's not currently usable, if the user clicks enter or whatever on the auto-complete screen you should import it. If it has that, and has that working quickly, and has that working completely it's a "real" IDE in my book. That list is just "wants", this one thing is a "need"
If I had that for rust, I'd switch over to rust as my main language. Anything that doesn't have something like that will never compete with Eclipse in ease-of-adoption in my book.