IDEA插件开发(20)--Editor Components

Posted 流子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA插件开发(20)--Editor Components相关的知识,希望对你有一定的参考价值。

编辑器文本字段
与SwingJTextArea相比,IntelliJ 平台的编辑器组件有很多优势:语法高亮支持、代码完成、代码折叠等等。编辑器通常显示在编辑器选项卡中,但它们也可以嵌入对话框或工具窗口中。这是由EditorTextField组件启用的。

可以指定以下属性:

解析文本字段中的文本所依据的文件类型;

文本字段是只读的还是可编辑的;

文本字段是单行还是多行。

通过子类化、覆盖createEditor()和应用EditorCustomization. 存在几种常用的定制实现,包括:

SpellCheckingEditorCustomization禁用拼写检查

HorizontalScrollBarEditorCustomization打开/关闭水平滚动条

ErrorStripeEditorCustomization打开/关闭右侧的错误条纹

EditorTextField有许多子类,可根据需要用于附加功能。

如果您想将编辑器用作对话框中的输入字段,请考虑使用LanguageTextField,它提供了更易于访问的 API。

如果要向编辑器添加自动完成功能,请使用TextFieldWithCompletion. TextCompletionProvider构造函数将实现以提供自动完成变体的类作为参数。用于TextFieldCompletionProvider创建您自己的提供程序。为此,addCompletionVariants()使用 覆盖并添加完成变体CompletionResultSet.addElement()。

TextFieldCompletionProviderDumbAware即使在索引阶段,也请参阅完成。

请参阅代码完成以了解有关完成的更多信息。

爪哇
一个常见的用例EditorTextField是输入 Java 类或包的名称。这可以通过以下步骤来完成:

用于JavaCodeFragmentFactory.createReferenceCodeFragment()创建代表类或包名的代码片段;

调用PsiDocumentManager.getDocument()获取代码片段对应的文档;

将返回的文档传递给EditorTextField构造函数或其setDocument()方法。

PsiFile psiFile = PsiDocumentManager.getInstance(project)
.getPsiFile(editor.getDocument());
PsiElement element = psiFile.findElementAt(editor.getCaretModel().getOffset());

PsiExpressionCodeFragment code =
JavaCodeFragmentFactory.getInstance(project)
.createExpressionCodeFragment(“”, element, null, true);

Document document =
PsiDocumentManager.getInstance(project).getDocument(code);

EditorTextField myInput =
new EditorTextField(document, project, JavaFileType.INSTANCE);
如果您的插件依赖于 Java 功能并针对 2019.2 或更高版本,请确保按照此博客文章中的步骤进行操作。

提示:

创建多个字段时,需要两个单独的文档。这是通过使用PsiExpressionCodeFragment.

setText()不再适用于输入字段。但是,createExpressionCodeFragment()接受该字段的文本作为参数。可以替换空字符串并创建一个新文档来代替setText().

GUI 构建器中的实例JTextField可以在您的 IDE 中使用右键单击替换为自定义替换组件。确保使用“自定义创建”,以便初始化代码正常工作。

以上是关于IDEA插件开发(20)--Editor Components的主要内容,如果未能解决你的问题,请参考以下文章

IDEA:vue中缺少vue-quill-editor富文本插件

IDEA插件系列(61):BinEd - Binary/Hexadecimal Editor插件——二进制/十六进制编辑器

IDEA常用设置和插件推荐

IDEA常用设置和插件推荐

[Idea]安装avtiviti插件以及 插件中文乱码

idea avtiviti 插件中文乱码