我知道如何将文字输入摩纳哥编辑
var editor = monaco.editor.create(document.getElementById('container'), {
value: ['aso.EnvironmentName = "DEV"'
].join('\n'),
language: 'typescript'
editor.getValue();
这让我得到以下
aso.EnvironmentName = "DEV"
虽然我想要的东西类似于这个
{
object:'aso',
property:'EnvironmentName',
operator:'=',
value:'DEV'
}
这个选择器得到以下内容,我可以用“”.split('')
进一步解析$.each($('span[class^="mtk"]'),function(idx,s){
console.info(idx,$(s).html());
});
让我得到以下信息。我发现很难相信monaco对象无法返回我想要的东西,因为它提供了一个弹出窗口,它将EnvironmentName属性标识为类型为string的属性
0 "aso.EnvironmentName = "
1 ""DEV""
这是我可以从编辑器的API中做到的吗?或者我是否需要将文本发送回我可以使用适当反射工具的服务?
答案 0 :(得分:2)
回答我自己的问题......
解决方案是使用monaco.editor.tokenize()并返回每个标记及其类型的索引位置数组
然后
let m = editor.getModel();
m.getWordAtPosition(m.getPositionAt(34))
获取实际令牌