Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
KotlinによるIntelliJ Plugin開発で、道具箱に磨きをかけよう!
Search
Hiroshi Ito
December 13, 2022
1.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KotlinによるIntelliJ Plugin開発で、道具箱に磨きをかけよう!
Kotlin Fest Reject Conference 2022 [非公式]
発表資料
https://henry.connpass.com/event/267081/
Hiroshi Ito
December 13, 2022
More Decks by Hiroshi Ito
See All by Hiroshi Ito
『動くだけ』のその先へ — AI駆動開発で品質と速度を両取りする温故知新な新手法 / Beyond Just Vibe Coding - Combining Classic Principles with AI-Driven Development
itohiro73
13
8.8k
2026/05/28 AI駆動経営勉強会 CTOがICになる経営意思決定 ~ 週末3日で作ったOLAP DBを起点にした組織変容インパクト ~
itohiro73
2
1.7k
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
4
1.7k
生成AI時代の開発組織・技術・プロセス 〜 ログラスの挑戦と考察 〜
itohiro73
1
5.1k
AIと共に進化する開発手法: 形式手法と関数型プログラミングの可能性
itohiro73
18
13k
Exploring Java OSS with LLMs - A New Way to Approach Open-Source Code Reading
itohiro73
0
2.6k
Cursorを全エンジニアに配布 その先に見据えるAI駆動開発の未来 / 2025-05-13-forkwell-ai-study-1-cursor-at-loglass
itohiro73
3
9k
フィーチャー開発から ホールプロダクト開発へ ~ 顧客価値へ向き合い続ける挑戦 ~ @itohiro73 #開発生産性con_findy / dev productivity con 2024
itohiro73
1
3.5k
フィーチャー開発から ホールプロダクト開発へ ~ 顧客価値へ向き合い続ける挑戦 ~ @itohiro73 #開発生産性con_findy
itohiro73
17
39k
Featured
See All Featured
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
660
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
Music & Morning Musume
bryan
47
7.4k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Prompt Engineering for Job Search
mfonobong
0
450
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Utilizing Notion as your number one productivity tool
mfonobong
4
580
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
270
How to make the Groovebox
asonas
2
2.4k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
930
Claude Code のすすめ
schroneko
67
230k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
460
Transcript
KotlinによるIntelliJ Plugin開発 で、道具箱に磨きをかけよう! Kotlin Fest Reject Conference 2022 いとひろ(@itohiro73)
本日のアジェンダ • 自己紹介 • IntelliJ IDEAのプラグイン開発の概要 • 実際にプラグインを作る手順を説明する(Hello World) •
プラグインデモ • 実はこんなこともできます
自己紹介 いとひろ@itohiro73 ソフトウェアエンジニア @ ログラス株式会社 外資系証券会社で12年間エンジニアとして従事したのち、 FinTech系スタートアップ3社を経て現職。前職ではクラウドファンディングの会社で 執行役員VP of Engineeringとしてエンジニア組織の統括
Eclipse Collections (旧GS Collections)元プロジェクトリード
本セッションの目的
道具箱に磨きをかけよう! Kotlinで開発をしている皆さんは、IntelliJ IDEAあるいはAndroid StudioをIDEとして 利用している方が多いのではないでしょうか。 これらのIDEのベースとなっているThe IntelliJ Platformは、実はKotlinを用いて Plugin開発をすることができます。 本セッションでは、聴いてくださった皆さんが、IntelliJのプラグイン開発を始めてみよ
うかな、試してみようかなと思えるような知見やモチベーションを持ち帰っていただけ ると良いなと考えています
IntelliJ IDEAのプラグイン開発の概要
IntelliJ Pluginのタイプ 典型的なIntelliJ Pluginとしては、以下のようなタイプに分類できます • カスタム言語サポート • フレームワークの統合 • ツールの統合
• UIのアドオン • テーマ
タイプ1: カスタム言語サポート カスタム言語サポートPluginは、特定のプログラミング言語に対してのサポートを提 供するプラグインです • ファイル操作 • 字句解析 • シンタックスハイライト
• フォーマット • インサイトとコード補完 • 静的検査とクイックフィックス
タイプ2: フレームワークの統合 フレームワークの統合をサポートするプラグインでは、フレームワーク特有の機能を サポートや、DSLの提供といった拡張を行います プラグイン例: • Spring Framework • Ktor
• Jakarta EE
タイプ3: ツールの統合 ツールの統合をサポートするプラグインでは、開発者が日常業務で活用するツール をIDE上で扱えるような拡張を行います プラグイン例 • Gradle • Maven •
Git • Docker
タイプ4: UIのアドオン このカテゴリーのプラグインは、標準のユーザーインターフェースに様々な変更を加 えます プラグイン例 • Random Background
タイプ5: テーマ 「テーマ」では、IntelliJ系のIDEの見た目をさ まざま変更することができます。
Kotlinで実装されたIntelliJ Pluginの例 既存のIntelliJ Pluginにも、Kotlinで実装されたものは多く存在します。オープンソー スとして開発されているものも多いので、自作のPlugin実装においても参考になりま す • IntelliJ Presentation Assistant
• Rust plugin for the IntelliJ Platform • TeXiFy-IDEA • Deno plugin
まずはなんと言ってもHello World
どうやって始めれば良い? Plugin開発を始めるには、JetBrainsが提供しているPlugin Templateで始めると良 いです。このテンプレートがすでにKotlin対応されています。 • IntelliJ Platform Plugin Template
まずはテンプレートからリポジトリを作成
まずはテンプレートからリポジトリを作成
IntelliJ Plugin Templateのディレクトリ構造
このテンプレートはかなり親切にできてる
このテンプレートはかなり親切にできてる
このテンプレートはかなり親切にできてる
このテンプレートはかなり親切にできてる
このテンプレートはかなり親切にできてる
このテンプレートはかなり親切にできてる
しかし、クローンしてすぐ動かないので注意
ここからようやくHello World
Hello World: ①plugin.xmlにtoolWindow拡張ポイントを追加
Hello World: ②パネルにHello World表示するMyToolWindowFactoryを作成
Hello World: ③Run/Debugを走らせてみよう
Hello World: ④初回はIntelliJ Community Editionの同意が必要です
Hello World: ⑤新たなIntellJ IDEAインスタンスが立ち上がります
Hello World: ⑥プラグインがインストールされていることが確認できます
Hello World: ⑦任意のプロジェクトを開いて、Tool Windowを確認!!
IntelliJ Plugin Hello World ここまででTool Windowに”Hello World”を表示する簡単なプラグインを作成すること ができました。 Hello Worldのサンプルコードはこちらに
• https://github.com/itohiro73/intellij-plugin-kotlin-sample/tree/0.1.0
もう少し発展的なプラグインつくりたい
IntelliJ Pluginプロジェクト作成ウィザード (入口だけ) せっかくIntelliJ Pluginのテンプレートがあるので、このテンプレートをプロジェクトウィ ザードから作成するようなPluginを作ってみましょう。
IntelliJ Pluginプロジェクト作成ウィザード (入口だけ) JavaModuleBuilderという、Javaモジュールを作成するための既存ビルダーがある ので、こちらを活用します。JavaModuleBuilderが含まれるIntelliJ Platform Plugin であるcom.intellij.javaをgradle.properties(ビルド用)と、plugin.xmlの依存(ランタ イム用)に追加しておきます。
IntelliJ Pluginプロジェクト作成ウィザード (入口だけ)
IntelliJ Pluginプロジェクト作成ウィザード (入口だけ)
IntelliJ Pluginプロジェクト作成ウィザード (入口だけ)
IntelliJ Pluginプロジェクト作成ウィザード (入口だけ)
IntelliJ Pluginプロジェクト作成ウィザード (入口だけ)
なんか面白いプラグイン作りたい
最近バズったChat GPTさん みなさん、ご存じですか?
最近バズったChat GPTさん 注目具合がハンパじゃない
開発中もAIに手伝ってほしい...
そうだ、プラグインをつくろう
デモ
もし時間があればパート
実は、もっと簡単なプラグイン開発の方法があります
LivePlugin: プラグインを書いてすぐその場で実行で きるプラグイン
LivePlugin: たとえばこんな要望
LivePlugin: こんな感じでサクッと実装できちゃいます (これはGroovyですが... Kotlinも可)
発展的なおすすめ資料集
カスタム言語Plugin作成チュートリアル 公式ページには、カスタム言語のPlugin作成のチュートリアルがあります。
カスタム言語Plugin作成チュートリアル こちらのチュートリアルでは、架空の言語「Simple」を用いて以下のようなステップを 実装します。言語実装とIDEの全体概要を掴むのにおすすめ!
公式ドキュメント 足りない情報も多くあるものの、何はともあれ公式ドキュメントは幅広く充実している ので、ぜひ一度目を通してみてください • https://plugins.jetbrains.com/docs/intellij/welcome.html
最後に
いかがでしたでしょうか? IntelliJ IDEA/Kotlinでのプラグイン開発へのモチベーションは上がりましたでしょう か? 聴いてくださった皆さんが、IntelliJのプラグイン開発を始めてみようかな、試してみよ うかなと思えるような知見やモチベーションを持ち帰っていただけると幸いです! ご静聴ありがとうございました!!