Although they're expensive I really like the JetBrains IDEs. I use IntelliJ IDEA almost every day, and PyCharm and CLion quite frequently.
Here are a few features I like!
- Multi-caret (info) to change multiple pieces of text simultaneously. You can place carets with a hotkey, but I especially like doing a search and putting a caret at each match. Much more flexible than search/replace.
- String manipulator: this plugin adds a lot of text manipulation on selected text under the hotkey alt+M (default), like:
- Switching case between snake_case, CamelCase, kebab-case, SCREAMING_CAMEL... Use it with refactor > rename, or multi-caret.
- Creating a sequence. Want a series of numbers from 1 to 20? Just type 1, duplicate 20 times, multi-caret, then create sequence. Can also just increment/decrement/deduplicate.
- Sort, shuffle, filter, deduplicate, trim, etc. The things shells are good at, but right from your IDE.
- Switch line separators, quotes, or encodings.
- Database tool window (info): not much to say here, except JetBrains IDEs include a database tool. I've met quite some people who weren't aware and used external tools instead.
- Bookmarks (info): use cltr+shift+1 (for 1 through 9) to add a bookmark at the current line. Then use ctrl+1 to jump back to it. If you don't like leaving bookmarks, try ctrl+shift+E (info) to show recent locations.
- Todos is how I keep track of loose ends while writing code. Anything I need to do on a branch but can't do right away, I'll leave a todo for, combining three features:
- Leave todo's quickly using live templates (see attached image). I'll just type "todo", press tab, and it'll expand to "// TODO @mark: " in Rust or "# TODO @mark" in Python.
- Track the todos: in the todo tool window, filter the todos that contain your name, giving you a clear todo list
- In the commit menu, make sure you are warned if you try to commit code containing todos