MacOS上のIntelliJ IDEAプラグイン開発でメニューのイベントが発生しない問題の対処
IntelliJ IDEAのメニューから、
開発中によく行う操作を実行出来ると捗るなと思い、
プラグインを作ろうとしたら、思わぬところではまったのでメモを残しておきます。
問題点は、エントリのタイトルの通りで。
Mac OSでIntelliJ IDEAプラグイン開発を行う時にメニューのイベントが発生しないという問題です。
以下でも議論がなされています。
Action is not triggered from main menu | JetBrains
https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000005390-Action-is-not-triggered-from-main-menu
再現環境と再現方法
再現環境は、
(細かいVersionなどの条件はわかりませんが)Mac OSです。
以下手順で再現します。
- 「IntelliJ Platform Plugin」タイプのプロジェクトを作る
- src配下で、New → Plugin DevKit → Actionを選ぶ
- 「Add To Group」で「ToolsMenu」あたりを選ぶ
- 作成したクラスの「actionPerformed」を実装する
- Run -> Run Pluginを選ぶ
- プラグイン用に起動したIntelliJ IDEAで追加したメニューを選ぶ
→「actionPerformed」が実行されない。
対処法
対処は、
Run → Edit Configurationsで
VM Optionsのところに
「-Dapple.laf.useScreenMenuBar=false」を追記です。
これで、
Run -> Run Pluginを選んで再度実行すると、
「actionPerformed」が実行されるようになります。
※メニューが画面上部では無く、ウィンドウ側上部に表示されます。
ビルドしたものを手動でインストールした場合は、
この対処を行わなくても動作したので、プラグイン開発時のみ必要と思われます。