Most useful keyboard shortcuts (these are for Mac):
- CMD + O Open class
- CMD + SHIFT + OOpen file
- CMD + F Find in file
- CMD + R Replace in file
- CMD + SHIFT + F Find in path
- CMD + SHIFT + R Replace in path
- ALT + ENTER Quick fix (for problem under cursor)
- CTRL + ALT + O Organise imports (remove unused)
- CMD + N Generate (getters, setters, toString etc)
- CTRL + I Implement interfaces
- ALT + CMD + L Format file
For efficient editing, also useful to be aware of:
Right click -> Refactoring options, such as rename, extract constant, extract method
New -> Scratch file – allows you to create a temporary file of any kind – text, xml, sql etc.
Regular expression search and replace
Block / multi column editing. Hold down ALT and drag to select an area with the mouse. You’ll get a cursor on each line and anything you type will be repeated on all lines. Or hold down SHIFT + ALT to click and put multiple cursors anywhere.
String manipulation plugin: https://plugins.jetbrains.com/plugin/2162-string-manipulation
Zero width character plugin: https://plugins.jetbrains.com/plugin/7448-zero-width-characters-locator
When deploying a WAR file, deploy the exploded version to make it easier to recompile and repackage changes into it.
Configure “Build artifact” in the run config.
While debugging and changing a single class, right-click and choose “Compile XXX.java”. This causes the class to be reloaded.
While debugging and changing multiple classes use the Build Project button (ctrl-F9 / Cmd-F9). This causes all affected classes to be reloaded.
For non Java classes such as xml files, right click and select “Package file”. This will move the file over to the exploded target location.
Standard hot code swap supports changing code within a single method. However it will not support many other changes. e.g. Changing method signatures. Updating a spring context. e.g. adding, changing or removing beans
Evaluate expression – allows you to evaluate an expression in the current context. i.e. access variables, collections etc. You can write the expression on one line or switch to the multi line option.
Catch on Exception – if you don’t know where in the code you need to stop, but you know that an exception is being thrown, this will pause execution at that point. You can specify which sort of exception you are interested in.
Conditional breakpoint. e.g. if you are in a loop which is executing 5000 times, this will allow you to stop when a specific expression is true. Make sure your expression is null safe though!
“Drop Frame”. You can right-click on any stack frame in the debugger and drop back to that point in the execution, no need to rerun.
“Disabled until the selected breakpoint is hit”, which means that you can have one breakpoint depend on another.