【问题标题】:How to show IntelliJ JSON editor in dialog?如何在对话框中显示 IntelliJ JSON 编辑器?
【发布时间】:2018-06-05 20:45:37
【问题描述】:

我想在我正在为 Kotlin 和 Java 开发的插件的对话框中显示以下类型的编辑器。我试过下面的代码sn-p

    editorTextField.setEnabled(true);
    editorTextField.setOneLineMode(false);
    editorTextField.setFileType(new JsonFileType());

有人能指出如何做到这一点吗?

我特别需要行号、JSON 语法高亮和代码折叠我可以看到所有代码规范here。请帮助我了解如何在我的插件中使用它们。

JSON 编辑器:

【问题讨论】:

    标签: intellij-idea jetbrains-ide intellij-plugin intellij-idea-2016


    【解决方案1】:
    class JsonOutputDialog(language: Language, project: Project, text: String) : DialogWrapper(project) {
    
        private val panel = JPanel(BorderLayout())
    
        init {
            super.setOKActionEnabled(false)
    
            init()
    
            val editorTextField = CustomEditorField(language, project, text)
            editorTextField.setOneLineMode(false)
            editorTextField.preferredSize = Dimension(800, 600)
    
            editorTextField.isVisible = true
    
            panel.add(editorTextField)
    
            editorTextField.setCaretPosition(0)
        }
    
        override fun createCenterPanel() = panel
    }
    
    class CustomEditorField(language: Language, project: Project, s: String) : LanguageTextField(language, project, s) {
    
        override fun createEditor(): EditorEx {
            val editor = super.createEditor()
            editor.setVerticalScrollbarVisible(true)
            editor.setHorizontalScrollbarVisible(true)
    
            val settings = editor.settings
            settings.isLineNumbersShown = true
            settings.isAutoCodeFoldingEnabled = true
            settings.isFoldingOutlineShown = true
            settings.isAllowSingleLogicalLineFolding = true
            settings.isRightMarginShown=true
            return editor
        }
    }
    

    这是你需要做的。这里的关键是使用LanguageTextField 而不是EditorTextField 并覆盖createEditor() 方法来配置您正在寻找的所有选项,例如行号和代码折叠。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 2018-11-11
      • 1970-01-01
      • 2014-08-11
      • 1970-01-01
      相关资源
      最近更新 更多