不知道如何将显示语言从 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/