如何在摩纳哥编辑器中删除 javascript 模式的关键字

How to remove keywords of javascript mode in monaco editor

在我尝试构建的项目中,我使用了编辑器代码。 我尝试使用摩纳哥编辑器。

我希望编辑器支持的主要内容是:

  1. 标记我的自定义语言关键字、函数等...
  2. 我的自定义语言的智能感知。
  3. 预览功能参数。

所以现在:

这是我写的代码:

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 语言)。

我也有同样的需求,不想在auto-completion中使用javascript/typescript关键字。我使用以下方法解决了它:

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

我在这里找到了一个较旧的答案:https://github.com/microsoft/monaco-editor/issues/1411,但是 API 似乎从那时起发生了变化。