Java工具IntelliJ IDEA如何定義語言和文件類型詳細說明

使用Intellij IDEA的時候,用戶可以根據自身需求定義所支持的語言和文件類型,下面我們就對這一過程進行詳細的解釋和說明。

 

1 定義語言

package com.simpleplugin;
 
import com.intellij.lang.Language;
 
public class SimpleLanguage extends Language {
    public static final SimpleLanguage INSTANCE = new SimpleLanguage();
 
    private SimpleLanguage() {
        super("Simple");
    }
}

 

 

2 定義圖標

將圖標複製到com.simple.plugin.icons程序包中。

package com.simpleplugin;
 
import com.intellij.openapi.util.IconLoader;
 
import javax.swing.*;
 
public class SimpleIcons {
    public static final Icon FILE = IconLoader.getIcon("/com/simpleplugin/icons/jar-gray.png");
}

 

 

3 定義文件類型

package com.simpleplugin;
 
import com.intellij.openapi.fileTypes.LanguageFileType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
 
import javax.swing.*;
 
public class SimpleFileType extends LanguageFileType {
    public static final SimpleFileType INSTANCE = new SimpleFileType();
 
    private SimpleFileType() {
        super(SimpleLanguage.INSTANCE);
    }
 
    @NotNull
    @Override
    public String getName() {
        return "Simple file";
    }
 
    @NotNull
    @Override
    public String getDescription() {
        return "Simple language file";
    }
 
    @NotNull
    @Override
    public String getDefaultExtension() {
        return "simple";
    }
 
    @Nullable
    @Override
    public Icon getIcon() {
        return SimpleIcons.FILE;
    }
}

 

 

4 定義一個文件類型

factory

package com.simpleplugin;
 
import com.intellij.openapi.fileTypes.FileTypeConsumer;
import com.intellij.openapi.fileTypes.FileTypeFactory;
import org.jetbrains.annotations.NotNull;
 
public class SimpleFileTypeFactory extends FileTypeFactory{
    @Override
    public void createFileTypes(@NotNull FileTypeConsumer fileTypeConsumer) {
        fileTypeConsumer.consume(SimpleFileType.INSTANCE, "simple");
    }
}

 

 

5 註冊文件類型

factory

<fileTypeFactory implementation="com.simpleplugin.SimpleFileTypeFactory"/>

 

 

6 運行項目

創建一個擴展名爲.simple的文件,IntelliJ IDEA將自動將其與定義的語言聯繫起來。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章