javascript - 如何更改 Monaco Editor 上的显示语言

标签 javascript monaco-editor

不知道如何将显示语言从 javascript 更改为 swift(或其他语言)

我使用“npm install monaco-editor”命令安装

    <script src="node_modules/monaco-editor/min/vs/loader.js"></script>
    <script>
    var editor;
    require.config({ paths: { 'vs': 'node_modules/monaco-editor/min/vs' 
    }});
    require(['vs/editor/editor.main'], function() {

        editor = 
    monaco.editor.create(document.getElementById('container'), {
            value: [
                'function x() {',
                '\tconsole.log("Hello world!");',
                '}'
            ].join('\n'),
            language: 'javascript',
            theme: "vs-dark"
        });
    });


    function showMessage() {
        var text = editor.getValue();
        monaco.editor.setModelLanguage(editor.getModel(), "swift")
        editor.updateOptions({
            language: "objective-c"
        });
        alert(text);
    }
</script>

我希望运行 showMessage 函数后,显示代码从 javascript 更改为 Objective-C。 实际上错误没有显示任何内容。有谁知道怎么做吗??

最佳答案

我不太确定你想做什么,但我做了这个小功能:

const changeLang = lang => {
    monaco.editor.setModelLanguage(editor.getModel(), lang);
    console.log(`model language was changed to ${editor.getModel().getLanguageIdentifier().language}`);
}

它每次都会更改语言并打印新的模型语言。

您的线路editor.updateOptions({language: "objective-c"})不会做任何事。如果你看the docs ,你会看到ITextModelUpdateOptions只需 indentSize , insertSpaces , tabSize ,或trimAutoWhitespace .

看来您可能一直在查看 this github issue 的前几个答案做那条线。给出的第一个答案是不正确的。

你做text = editor.getValue()在函数开始时和 alert(text)最后,但是text永远不会改变。模型语言只会影响外观,不会影响内容。如果您只是想获取静态内容,那么您编写的方式就可以了。但如果您期望它会改变,它就不会改变。

关于javascript - 如何更改 Monaco Editor 上的显示语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56840298/

相关文章:

visual-studio-code - 如何使嵌套的 Markdown 项目符号列表在 vscode 中具有不同的项目符号样式

javascript - 使用 Webview Android 处理回调

monaco-editor - 来自多个文件的 Monaco Editor 智能感知

javascript - typescript 文件中的导入模块给出错误 "cannot compile modules unless the ' --module' flag is provided"

javascript - Angular 2 : Disable input field without removing from formgroup?

javascript - 如何将 lib(打字)添加到单个 Monaco Editor ?

javascript - 每个脚本文件只能有一个匿名定义调用

monaco-editor - 添加更多种类的下划线颜色

javascript - Bootstrap-select 不接受 id

javascript - 悬停时的 Wordpress CSS 导航菜单生效