function (editor, currentPos) {
return editor.getTokenAt(currentPos);
}
我正在为自定义语言设计代码编辑器。所以,我想根据模式状态做自动完成。我希望在.
之前获取令牌,就像我们在hello
期间按 CTRL + space 一样。然后,我的方法应该给我hello
所以我可以建议一些与之相关的属性。我怎么能这样做?
答案 0 :(得分:1)
javascript-hint插件执行类似这样的操作,继续在循环中获取前一个标记,直到找到不属于某个属性的内容。您可能希望代码看起来类似。
答案 1 :(得分:0)
我有一个类似的问题,我结束使用一大块代码来获取当前行,然后split'em获取最后一个标记(和。分隔符):
autocomplete(cm) {
let full_line = cm.getValue();
let end = cm.getCursor().ch;
full_line = full_line.substr(0, end);
let start = full_line.lastIndexOf(" ");
if (start === -1) {
start = 0;
}
let currentWord = full_line.substr(start, end - start);
console.log(currentWord);
[...]
您可以在我的ember-plugin中看到完整的代码:https://github.com/hugoruscitti/ember-cli-jsconsole/blob/master/tests/dummy/app/controllers/application.js#L5