• 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 中使用右键单击替换为自定义替换组件。确保使用“自定义创建”,以便初始化代码正常工作。

  • 相关阅读:
    Canal1--搭建Canal监听数据库变化
    文件系统的简单操作
    返乡人员信息登记管理系统,助力精准管控
    状态机+策略在工单流转里的使用
    PLL的环路滤波器
    Ubuntu是一个以桌面应用为主的Linux操作系统
    RedisAssistant:一款Redis可视化管理工具
    深度学习基础宝典---激活函数、Batch Size、归一化
    react使用echarts图表
    整理Ubuntu深度学习服务器初始化操作
  • 原文地址:https://blog.csdn.net/jiangguilong2000/article/details/126062153