Top Banner
Plug-in-Entwicklung für die IntelliJ Platform Yann Cébron (JetBrains)
27

Plugin Entwicklung für IntelliJ-Platform

Aug 03, 2015

Download

Software

Yann Cébron
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Plugin Entwicklung für IntelliJ-Platform

Plug-in-Entwicklung für die IntelliJ Platform

Yann Cébron (JetBrains)

Page 2: Plugin Entwicklung für IntelliJ-Platform

IntelliJ - was??!

Page 3: Plugin Entwicklung für IntelliJ-Platform

Verfügbare IDEs - JetBrains

Page 4: Plugin Entwicklung für IntelliJ-Platform

In Entwicklung - JetBrains

C/C++

Q2/2015

DB/SQL

Q3/2015

Page 5: Plugin Entwicklung für IntelliJ-Platform

IDEs - Third Party

Page 6: Plugin Entwicklung für IntelliJ-Platform

IntelliJ goes Server

Page 7: Plugin Entwicklung für IntelliJ-Platform

Summa summarum…

• 12 IDEs

• Plattformen: JVM, Web, Android, iOS, C/C++, Python, Go, Database/SQL, Language DSL, …

• > 1200 Plugins http://plugins.jetbrains.com

Page 8: Plugin Entwicklung für IntelliJ-Platform

IntelliJ Platform

Page 9: Plugin Entwicklung für IntelliJ-Platform

IntelliJ Platform - High Level

• 2009

• Apache 2 License

• IDE/Developer Tooling

• keine Rich Client Platform (RCP)

Page 10: Plugin Entwicklung für IntelliJ-Platform

IntelliJ Platform - Was ist drin?

• DI-Infrastruktur (PicoContainer)

• VirtualFileSystem

• PSI (Program Structure Interface)

• Editor

• Action-System

• UI Komponenten (Swing)

Page 11: Plugin Entwicklung für IntelliJ-Platform

IntelliJ Platform - Was kann ich machen?

• Plugins

• Standalone-IDE

• „Core“ (z.B. Upsource, Kotlin Compiler)

Page 12: Plugin Entwicklung für IntelliJ-Platform

Plugins

Page 13: Plugin Entwicklung für IntelliJ-Platform

Plugins - Typologie

• Sprache

• Framework

• IDE-internes Tool

• Projekt-/Firmenspezifisch

Page 14: Plugin Entwicklung für IntelliJ-Platform

Exkurs - Interessante Plugins

• BashSupport

• ANTLRv4

• XText

• Go

• DummyTextGenerator

• Erlang

Page 15: Plugin Entwicklung für IntelliJ-Platform

Deployment

Page 16: Plugin Entwicklung für IntelliJ-Platform

Kompatibilität

• JDK 6 (noch!)

• Target IDE(s)

• IDE-Version

Page 17: Plugin Entwicklung für IntelliJ-Platform

Installation

• plugins.jetbrains.com

• Custom Plugin Server

• JAR/ZIP

Page 18: Plugin Entwicklung für IntelliJ-Platform

Standalone IDEs

Page 19: Plugin Entwicklung für IntelliJ-Platform

Standalone IDE

• Customizing

• Infrastruktur

• Builds: DIY

• Referenz: Android Studio

Page 20: Plugin Entwicklung für IntelliJ-Platform

Wie? Wo? Was?

Page 21: Plugin Entwicklung für IntelliJ-Platform

Unterstützung

• jetbrains.org

• Dokumentation

• Forum

• OSS Plugins

• „patch_welcome“

• IDEA Backlog

Page 22: Plugin Entwicklung für IntelliJ-Platform

Tools

• GrammarKit

• PSIViewer

• -Didea.is.internal=true

Page 23: Plugin Entwicklung für IntelliJ-Platform

Survival Strategies

Page 24: Plugin Entwicklung für IntelliJ-Platform

10 Jahre Plugins

• Struts 1 (2004)

• Struts 2 (2007)

• Projektspezifisches XML-Tooling

• Spring-Framework

• Plugin DevKit

• Struts 2

• TeamCityProtect (JetBrains intern)

Page 25: Plugin Entwicklung für IntelliJ-Platform

Lessons Learned

• Wo? >> Wie?

• *Manager

• RTFS

• Forum

• Ähnliche Plugins

Page 26: Plugin Entwicklung für IntelliJ-Platform

Hector The Inspector

• WolfTheProblemSolver

• InjectedLanguageFormattingTest#testFrankenstein2

• SymlinkHandlingTest#testTransGenderRefresh

• Easter Eggs

Page 27: Plugin Entwicklung für IntelliJ-Platform

Q&A

@yanncebron