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

时间:2018-01-15 14:57:46

标签: monaco-editor

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

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

  1. 标记我的自定义语言关键字,功能等...
  2. 智能感知我的自定义语言。
  3. 预览功能参数。
  4. 现在:

    • 我在官方网站上仔细查看了摩纳哥编辑的例子。

    • 我查找的结果非常接近,但主要问题对我来说,虽然我将noLib选项添加到我的代码中,但还有其他关键字,请参见下图。 https://imgur.com/pwDikZI

    • 其他事情有效。见图像https://imgur.com/0c4K8wE
    • 我知道,因为我使用了javascript / typescript语言模式,标记有问题。

    这是我写的代码:

    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. 有一种方法可以像在摩纳哥编辑器示例中那样使用自定义语言并添加功能预览,就像我上面显示的图片一样? (不使用js / ts语言)。

1 个答案:

答案 0 :(得分:1)

我也有同样的需求,不希望自动完成功能中的javascript / typescript关键字。我用以下方法解决了这个问题:

<p>In the example below, a fake button is underneath a link on a transparent Wikipedia iframe.</p>
<p>To see an example:</p>
<ol>
<li>Click "Opaque" to see the Wikipedia iframe. Notice that you're viewing the page called "Main Page".</li>
<li>Click "Transparent" to see the fake button.</li>
<li>Click the fake button.</li>
<li>Click "Opaque" to see the Wikipedia iframe.</li>
<li>Did you notice that the page has changed to "Contributions"? This is an example of clickjacking.</li>
</ol>
<button onclick="transparent();">Transparent</button>
<button onclick="opaque();">Opaque</button>
<div style="position:relative;height:200px">
<iframe src="https://en.wikipedia.org/wiki/Main_Page"></iframe>
<button class="clickjack">Click here!</button>
</div>

我在这里找到了一个更老的答案:https://github.com/microsoft/monaco-editor/issues/1411,但此后API似乎已发生变化。