Как удалить ключевые слова режима javascript в редакторе монако

В проекте, который я пытаюсь создать, я использовал код редактора. я пытаюсь использовать редактор монако.

Главное, что я хочу, чтобы редактор поддерживал:

  1. отметить ключевые слова, функции и т. д. на моем настраиваемом языке ...
  2. intellisense для моего пользовательского языка.
  3. параметры функций предварительного просмотра.

Итак, теперь:

  • Я внимательно просмотрел примеры редактора monaco на официальном сайте.

  • Результаты очень близки к тому, что я искал, но основная проблема для меня заключается в том, что, хотя я добавляю в свой код параметры noLib, есть дополнительные ключевые слова, см. Изображение ниже. https://imgur.com/pwDikZI

  • Остальное работает. см. изображение https://imgur.com/0c4K8wE
  • Я знаю, что, поскольку я использовал языковой режим javascript / typescript, с маркировкой проблематично.

This is the code that i wrote:

require.config({paths: {'vs': 'lib/package/min/vs'}});

require(['vs/editor/editor.main'], function() {
    let editor = monaco.editor.create(document.getElementById('editor'), {
        language: 'typescript',
        minimap: {enabled: false},
    });
    monaco.languages.typescript.typescriptDefaults.addExtraLib([
        'declare function Foo(a: number,b: number, name: string (optional)) :void',
        'const someString: string ',
    ].join('\n'));

    monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
        noLib: true,
        allowNonTsExtensions: true,
    });

    editor.updateOptions({fontSize: 20});
});

Мои вопросы:

  1. Есть ли способ отключить дополнительные ключевые слова javascript / typescript, чтобы пользователь мог видеть только мой собственный язык?
  2. Есть ли способ использовать собственный язык, как в примерах редактора monaco, и добавить предварительный просмотр функций, как на картинке, которую я показываю выше? (без использования языков js / ts).

person vs88    schedule 15.01.2018    source источник


Ответы (1)


У меня такая же потребность, я не хочу, чтобы ключевые слова javascript / typescript в автозаполнении. Я решил это, используя:

monaco.editor.create(<your container DOM element here>, {
    . . . .
    suggest: {
        showKeywords: false,
    }
});

Я нашел здесь более старый ответ: https://github.com/microsoft/monaco-editor/issues/1411, но с тех пор API, похоже, изменился.

person acristu    schedule 20.09.2020