开发工具IntelliJ IDEA如何定义语言和文件类型

来源:互联网 发布:centos root密码忘记了 编辑:程序博客网 时间:2024/06/03 21:04

使用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将自动将其与定义的语言联系起来。

》》》Intellij IDEA最新版免费下载地址