javascript - 如何在摩纳哥编辑器上更改显示语言
问题描述
不知道如何将显示语言从 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
只需要indentSize
, insertSpaces
, tabSize
, 或trimAutoWhitespace
.
看起来您可能一直在查看此 github 问题的前几个答案以做出该行。给出的第一个答案是不正确的。
您text = editor.getValue()
在函数的开始和alert(text)
结束时都这样做,但text
永远不会改变。模型语言只会影响外观,不会影响内容。如果您只是想获取静态内容,那么您编写它的方式就可以了。但如果你期望它会改变,它不会。
推荐阅读
- excel - 有没有办法在不使用 excel 代码的情况下更改单元格文本颜色?
- flutter - 颤振未找到:'package:html/parser.dart
- google-apps-script - 谷歌表格日期戳脚本不起作用
- reactjs - 在 React.js/Next.js 组合中访问 JSON 数组数据
- java - 如何在不使用 servlet 中的任何脚本的情况下发送表行数据?
- c++ - 将函数参数 `const char*` 转换为 `std::string_view` 是否安全?
- javascript - javascript如何从select-option中的相同类名中收集值?
- dynamic - 表行表达式的动态 ASSIGN
- python - 烧瓶 sqlalchemy 数据库 db.Text 与 db.String
- sql - 为什么 SQL Continue 语句会创建一个 Endless 循环而不是 Continuing?