Как изменить язык отображения в редакторе Monaco - PullRequest
0 голосов
/ 01 июля 2019

не знаю, как изменить язык отображения с 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>

Iожидайте, что после запуска функции showMessage коды отображения изменятся на target-c из javascript.и на самом деле ошибка ничего не показывает.кто-нибудь знает как это сделать ??

1 Ответ

0 голосов
/ 09 июля 2019

Я не совсем уверен, что вы пытаетесь сделать, но я сделал эту маленькую функцию:

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 занимает только indentSize, insertSpaces, tabSize или trimAutoWhitespace.

Похоже, вывозможно, просматривал первые пару ответов этой проблемы github , чтобы составить эту строку.Этот самый первый ответ не является правильным.

Вы делаете text = editor.getValue() в начале своей функции и alert(text) в конце, но text никогда не меняется.Язык модели будет влиять только на внешний вид, а не на содержание.Если вы только пытались получить статический контент, то то, как вы его написали, это хорошо.Но если вы ожидали, что это изменится, это не изменится.

...