Intellij IDEAのプラグインの作成:ファイルタイプの登録

Habréに関する最近の記事は、Intellij IDEA用のプラグインを作成するのにどれだけの時間を費やしたかを思い出しました。 プラグインを作成するための公式ドキュメントがありますが、予想外に小さいです。



この記事では、Intellij IDEAでファイルタイプを登録する方法について説明します。 これは、独自の言語プラグインを作成している場合、またはファイルの外部エディターを実行する場合に必要になることがあります。 Apache JMeterファイルを例としてみましょう( JMeterのインストールは不要です)。



そのため、プラグインモジュールで既存のプロジェクトを開くか、新しいプロジェクトを作成します。 これを行う方法は、前述の記事と公式チュートリアルで読むことができます。



新しいファイルタイプ



16x16ピクセルのアイコンが必要です。 /resources/icons



フォルダーに保存し、フォルダーをソースルートとしてマークします。 アイコンをsrc



直接配置できます。





IntelliJの各ファイルタイプは、 com.intellij.openapi.fileTypes.FileType



インターフェイスの実装として表されます。 独自の実装を作成します。



 public class JMeterFileType implements FileType { public static final JMeterFileType INSTANCE = new JMeterFileType(); @NotNull @Override public String getName() { return "JMeter"; } @NotNull @Override public String getDescription() { return "JMeter file"; } @NotNull @Override public String getDefaultExtension() { return "jmx"; } @Override public boolean isBinary() { return false; } @Override public boolean isReadOnly() { return false; } @Override public Icon getIcon() { return IconLoader.getIcon("/icons/beaker.png"); } @Override public String getCharset(@NotNull VirtualFile file, byte[] bytes) { return CharsetToolkit.UTF8; } }
      
      





メソッドの目的は、 インターフェースの JavaDoc'ahで読むことができます。いくつかの点についてのみ言及します。



ファイルタイプの登録



次のステップは、ファイルタイプをシステムに登録することです。 これを行うには、 com.intellij.openapi.fileTypes.FileTypeFactory



クラスの継承者が必要です。



 public class JMeterFileTypeFactory extends FileTypeFactory { @Override public void createFileTypes(@NotNull FileTypeConsumer consumer) { consumer.consume(JMeterFileType.INSTANCE); } }
      
      





plugin.xml



JMeterFileTypeFactory



を登録するために残ります

 <idea-plugin version="2"> ... <extensions defaultExtensionNs="com.intellij"> ... <fileTypeFactory implementation="idea.plugin.jmeter.JMeterFileTypeFactory"/> </extensions> </idea-plugin>
      
      





できた!



何が起こったのか見てみましょう。 プラグインを実行すると、Intellij IDEAの新しいインスタンスが起動します。 [ファイル]> [設定]> [ファイルタイプ]を開き、ファイルタイプの登録方法を確認します。





新しいプロジェクトを作成し、JMeterファイルを追加します。 プロジェクトツリーでは、ファイルにアイコンがあり、ファイル自体がプレーンテキストとしてエディターで開きます。





構文の強調表示



JMeterファイルはプレーンXMLなので、構文の強調表示を追加しましょう。 これはplugins.xmlの1行で行います:

 <idea-plugin version="2"> ... <extensions defaultExtensionNs="com.intellij"> ... <syntaxHighlighter key="JMeter" implementationClass="com.intellij.ide.highlighter.XmlFileHighlighter"/> </extensions> </idea-plugin>
      
      





...まあ、またはほぼ1。 ここに:



HTML、Java、Regexpなど、いくつかの既製の構文強調表示実装があります。独自のSyntaxHighlighter



作成できます。 しかし、これは記事の範囲外です。



開始して結果を確認します。





言語プラグインの構文の強調表示はわずかに異なります。 私は詳しく説明しません。 以下に注意する必要があるクラスのみをリストします。



合計



そのため、アイコンと構文の強調表示を使用して、Intellij IDEAに新しいファイルタイプを登録することができました。 プラグイン開発の詳細については、 公式ドキュメントIntellij IDEAソースコード、またはフォーラムを参照してください 。 完全な投稿コードはGitHubにあります



All Articles