Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deine IDE hat ein API! IntelliJ mit einem eigen...

Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin erweitern

Als Entwickler schätzen wir Auto-Vervollständigung, Validierung und Refactoring in unserer Entwicklungsumgebung (IDE). Um ein fehlendes Feature zu ergänzen oder etwas Spaß in den Entwickleralltag zu bringen stellt die IDE Schnittstellen (APIs) für Plugins zur Verfügung.

Dieser Vortrag zeigt Beispiele des AsciiDoc-Plugins und anderer Open-Source-Plugins für IntelliJ. Manchmal wird ein Lexer und Parser benötigt, an vielen anderen Stellen geht es auch ohne. JetBrains stellt für neue Plugins ein Template bereit mit den Best Practices rund um Gradle, Java und Kotlin.

Alexander Schwartz

December 15, 2022
Tweet

More Decks by Alexander Schwartz

Other Decks in Programming

Transcript

  1. Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin

    erweitern Alexander Schwartz, Principal Software Engineer @ Red Hat IT-Tage 2022 | 2022-12-13
  2. Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin

    erweitern | Dezember 2022 | Alexander Schwartz 2 JetBrains IntelliJ IDEA Ökosystem IntelliJ IDEA basierte IDEs Bundled Plugins JetBrains Plugins 3rd Party Plugins … via Marketplace … direkt
  3. • Key Promoter X Hinweise bei der Mausbedienung auf mögliche

    Tastaturkürzel • Awesome Console Für die integrierte Konsole werden Dateinamen klickbar • PlantUML Plugin Eigener Editor für Diagramme-as-Code mit integrierter Vorschau • AsciiDoc plugin Editor für AsciiDoc-Inhalte mit integrierter Vorschau Marketplace für Plugins: https://plugins.jetbrains.com/ Ideen für neue Plugins: https://plugins.jetbrains.com/plugin-ideas Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin erweitern | Dezember 2022 | Alexander Schwartz 3 Beispiele für Plugins Was Plugins können
  4. • AsciiDoc: Schreiben ohne Ablenkung mit einfachem Markup-Text. Großer Funktionsumfang

    für technische Dokumentation. • IntelliJ AsciiDoc Plugin bietet Unterstützung für Antora und AsciiDoc mit Autovervollständigung, Validierung und Refactorings. • Zusammenarbeit von Entwicklern und Technical Writers über die Git- Versionsverwaltung. Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin erweitern | Dezember 2022 | Alexander Schwartz 4 IntelliJ AsciiDoc Plugin: Schreiben von technischer Dokumentation in der IDE List of editors: https://asciidoctor.org/docs/editing-asciidoc-with-live-preview/
  5. • Live-Templates ergänzen (liveTemplateContext) • Menüeinträge und Aktionen ergänzen (actions

    -> group -> action, add-to-group) • Dokumentation anzeigen (lang.documentationProvider) • Wörterbucheinträge hinzufügen (spellchecker.bundledDictionaryProvider) • JSON Schemata bereitstellen (JsonSchema.ProviderFactory) Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin erweitern | Dezember 2022 | Alexander Schwartz 5 Level 1: Funktionen erweitern und ergänzen Was Plugins können
  6. Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin

    erweitern | Dezember 2022 | Alexander Schwartz 6 Level 2: Auf anderen Plugins aufbauen Was Plugins können • Autovervollständigung und Navigation (psi.referenceContributor, completion.contributor) • Validierung und Korrekturassistenten (localInspection, intentionAction)
  7. Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin

    erweitern | Dezember 2022 | Alexander Schwartz 7 Level 3: Komplexe Funktionalitäten nachrüsten Was Plugins können • Eigene Editoren und Previews (fileType, fileEditorProvider) • Neue Sprachen mit Lexern und Parsern implementieren (lang.ast.factory, lang.parserDefinition)
  8. • Erfahrung als Nutzer mit IntelliJ • Programmier-Kenntnisse in Java

    oder Kotlin, Build-Automatisierung mit Gradle • Swing (nur wenn eigene User Interfaces gebaut werden) • Java Concurrency Erfahrungen • Etwas Zeit ☺ Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin erweitern | Dezember 2022 | Alexander Schwartz 8 Voraussetzungen für die Plugin-Entwicklung Eigene Plugins entwicklen
  9. Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin

    erweitern | Dezember 2022 | Alexander Schwartz 9 Hilfsmittel Eigene Plugins entwicklen • IntelliJ Platform Plugin SDK https://plugins.jetbrains.com/docs/intellij • IntelliJ Gradle Plugin Template https://github.com/JetBrains/intellij-platform-plugin-template • IntelliJ Platform Explorer https://plugins.jetbrains.com/intellij-platform-explorer/extensions • Slack Channel https://plugins.jetbrains.com/slack
  10. • Unit Tests • Integrative Tests • UI-Tests Mehr Informationen:

    • https://plugins.jetbrains.com/docs/intellij/testing-plugins.html • https://github.com/JetBrains/intellij-platform-plugin-template#testing Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin erweitern | Dezember 2022 | Alexander Schwartz 10 Tests schreiben Eigene Plugins entwicklen
  11. Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin

    erweitern | Dezember 2022 | Alexander Schwartz 11 Demo Eigene Plugins entwicklen
  12. • Erfahrung als Nutzer mit IntelliJ • Programmier-Kenntnisse in Java

    oder Kotlin, Build-Automatisierung mit Gradle • Swing (nur wenn eigene User Interfaces gebaut werden) • Java Concurrency Erfahrungen • Etwas Zeit ☺ Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin erweitern | Dezember 2022 | Alexander Schwartz 12 Voraussetzungen für die Plugin-Entwicklung Eigene Plugins entwicklen
  13. IntelliJ Platform Plugin SDK https://plugins.jetbrains.com/docs/intellij IntelliJ Gradle Plugin Template https://github.com/JetBrains/intellij-platform-plugin-template

    IntelliJ AsciiDoc Plugin https://intellij-asciidoc-plugin.ahus1.de/ Deine IDE hat ein API! IntelliJ mit einem eigenen Plugin erweitern | Dezember 2022 | Alexander Schwartz 13 Links @ahus1de
  14. Kontakt Alexander Schwartz Principal Software Engineer [email protected] https://www.ahus1.de @ahus1de Deine

    IDE hat ein API! IntelliJ mit einem eigenen Plugin erweitern | Dezember 2022 | Alexander Schwartz 14