簡體   English   中英

如何在摩納哥編輯器上更改顯示語言

[英]How to change display language on 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"})不會執行任何操作。 如果您查看文檔 ,將會看到ITextModelUpdateOptions僅采用indentSizeinsertSpacestabSizetrimAutoWhitespace

看來您可能一直在看這個github問題的前幾個答案來完成這一行。 給出的第一個答案是不正確的。

您可以在函數的開始處執行text = editor.getValue()並在函數的末尾執行alert(text) ,但是text永遠不會改變。 模型語言只會影響外觀,而不會影響內容。 如果您只是嘗試獲取靜態內容,那么編寫它的方式就很好。 但是,如果您期望它會改變,那就不會。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM