この記事では、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で読むことができます。いくつかの点についてのみ言及します。
- シングルトーンは、Intellij IDEAコードで広く使用されています。 通常はそれらを避けようとしますが、ここでは、すぐに必要になる
INSTANCE
フィールドを作成することにより、一般的なスタイルに従います。 -
isReadOnly
がtrueを返す場合、ファイルタイプは[ファイル]> [設定]> [ファイルタイプ]設定で変更できます。 -
isBinary
は、ファイルをテキストエディターで開くかどうかに影響します。 JMeterファイルは、XStreamを使用してXMLでシリアル化されたJavaオブジェクトです。 このようなファイルを自分の手で書くことは意味がありませんが、バージョン管理システムの変更を追跡できます。
ファイルタイプの登録
次のステップは、ファイルタイプをシステムに登録することです。 これを行うには、
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。 ここに:
-
key
はJMeterFileType.getName()
によって返される値です。 -
implementationClass
はSyntaxHighlighter
実装です。
HTML、Java、Regexpなど、いくつかの既製の構文強調表示実装があります。独自の
SyntaxHighlighter
作成できます。 しかし、これは記事の範囲外です。
開始して結果を確認します。
言語プラグインの構文の強調表示はわずかに異なります。 私は詳しく説明しません。 以下に注意する必要があるクラスのみをリストします。
- com.intellij.lang.Language
- com.intellij.openapi.fileTypes.LanguageFileType
- com.intellij.openapi.fileTypes.SyntaxHighlighterFactory(またはLanguageFileTypeHighlighterProvider)
合計
そのため、アイコンと構文の強調表示を使用して、Intellij IDEAに新しいファイルタイプを登録することができました。 プラグイン開発の詳細については、 公式ドキュメント 、 Intellij IDEAソースコード、またはフォーラムを参照してください 。 完全な投稿コードはGitHubにあります 。