Multi Cursor
Ich erinnere mich noch gut daran, wie die ersten Plugins für NetBeans und Eclipse auftauchten, die Multi Cursor eingeführt haben. IntelliJ bietet eine ganze Reihe von Möglichkeiten, diese zu erzeugen. Hier meine Every-Day-Auswahl:

- Maus bei gedrückter [Alt] Taste vertikal bewegen, erzeugt Cursor
- ([Strg] + [Shift] + [U] toggelt die Groß-/Klein-Schreibung)
- bei markiertem Wort [Alt] + J , erzeugt einen Cursor beim nächsten übereinstimmenden Wort
Scratch Files
Fingerbrecher Shortcut ([Strg]+[Alt]+[Shift]+[einfg]) oder lieber über die Schnellsuche: [Shift][Shift] und „Scratch“ eingeben. Erlaubt die Anlage von diversen Dateien, die nicht im Projekt abgelegt werden, sondern (projektübergreifend) im IntelliJ Folder des aktuellen Benutzers. Die Dateien werden dabei entsprechend ihrer Dateiendung behandelt. Compiler, Code-Vervollständigung und Formatierer funktionieren dabei wie gewohnt. Ideal, um Code-Schnipsel mal zwischenzulagern, auszuprobieren oder Formatierungen vorzunehmen:

HTTP Client
Früher kam bei mir Postman zum Einsatz, um Rest-Endpunkte anzusteuern. IntelliJ bietet aber einen eigenen Client, der zwar ganz unscheinbar daherkommt, aber einiges an Funktionen bereitstellt. Dieses Tool wird automatisch aktiviert, wenn eine *.http Datei angelegt und aufgerufen wird, alternativ über die Schnellsuche: „HTTP Client“:

Tipp: der Client ist in der Lage Unix formatierte CURL Befehle automatisch beim Einfügen um zu setzen. Sehr praktisch: im Browser (hier Firefox:) Developer Console aufmachen, Tab „Netzwerk“, Rechtsklick auf den Aufruf der benötigt wird, Wert kopieren > CURL (POSIX), im HTTP Client einfügen: übernommen werden dann nicht nur URL und Body, sondern auch alle Header-Werte, die in diesem Aufruf gesetzt gewesen sind:

Tipp: Environments Variablen. Über das Menü im Panel lassen sich beliebig viele Environemnts anlegen, die im Kern aus einer JSON Datei bestehen, in der z.B. Variablen für unterschiedliche Umgebungen deklariert werden können. Innerhalb des Clients lassen sich diese dann mittels „{{VAR}}“ verwenden:

Tipp: eine Response kann auch weiterverarbeitet werden, zum Beispiel um Assertions zu machen oder wie hier, Werte zu extrahieren:

Tipp: mehr Funktionen hier finden: https://www.jetbrains.com/help/idea/http-client-in-product-code-editor.html
Structure View
[ALT] + [7] oder [ALT] + [F1] > „File Structure“. Zeigt eine logische und/oder physikalische Struktur der aktuellen Datei an. Für „einfache“ Klassen ist das lediglich eine Liste aller Properties oder Methoden (physikalische Sicht, auch erreichbar über [Strg] + [F12]). Spannend wir das Ganze im JEE und Spring Kontext. Hier wird zusätzlich eine logische Sicht angeboten, die je nach aktiver Klasse diverse zusätzliche Informationen anzeigt wie Injections, Rest-Mappings oder für Entities die Attribut-Mappings:
Code With Me
Dient als Plattform für das Zusammenarbeiten. Dabei stellt der Host eine entsprechende Session bereit und andere Teilnehmer können (je nach Berechtigungen) Änderungen im Projekt vornehmen. Das geschieht hierbei alles in Echtzeit. Cursor, aktive Fenster und Eingaben können von jedem Teilnehmer eingesehen werden.

Anmerkung: bei meinen letzten Einsätzen gab es diverse Probleme auf den „Gast-Rechnern“: fehlenden Funktionen in der IDE, nicht funktionieren Shortcuts, eingeschränkte Ansichten für Popups und Menüs bis hin zu fehlerhaften Synchronisationen und Verbindungsabbrüchen. Eine gute Idee, die vielleicht noch ein wenig Zeit zum reifen braucht.







