Как показать редактор IntelliJ JSON в диалоге?

Я хочу показать ниже вид редактора внутри диалога в плагине, который я разрабатываю для Kotlin и Java. Я попробовал приведенный ниже фрагмент кода

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

Может ли кто-нибудь указать, как этого добиться?

В частности, мне нужны номера строк, подсветка синтаксиса JSON и свертывание кода. Я вижу все спецификации кода здесь. Пожалуйста, помогите мне узнать, как я могу использовать их в своих плагинах.

JSON редактор:

0 ответов

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() способ настроить все параметры, которые вы ищете, такие как номера строк и свертывание кода.

Другие вопросы по тегам