Ace编辑器的Java自定义自动完成

时间:2017-09-03 00:30:09

标签: ace-editor

我已经定制了ace来处理Maven Java Projects。除了类和方法的自动完成外,大多数功能都正常工作。

现在我创建了一个trie来填充所有课程。

var trie = new Trie();
trie.insert("java.util.HashTable");
trie.insert("java.util.HashMap");
trie.insert("java.util.HashSet");

当我调用trie.autoComplete('java.util.H')时,它会显示所有可用的类。我的王牌编辑代码

var langTools = ace.require("ace/ext/language_tools");
langTools.addCompleter(javaCompletor);

var javaCompletor = {
   getCompletions: function (editor, session, pos, prefix, callback) {
        var currline = editor.getSelectionRange().start.row;
        var content = editor.session.getLine(currline);
        let arr = content.split(' ');
        content = arr[arr.length-1];

        callback(null, trie.autoComplete(content).map((a,b)=>{
          return {value: a, score: 1, a: a, meta: '', type: 'snippet'}
        }));
   }
}

但是我的问题,它运作得不好。早期的文字没有被取代。这是为Ace定制自动完成的正确方法吗?

0 个答案:

没有答案