好的,所以这是交易:
现在,抓住这个问题:
任何帮助都不仅仅是值得赞赏的。
答案 0 :(得分:18)
AutoCompletion可以在ace编辑器中实现..
代码:
var editor = ace.edit('editor');
editor.setTheme("ace/theme/eclipse");
editor.getSession().setMode("ace/mode/java");
editor.setShowInvisibles(true);
editor.setDisplayIndentGuides(true);
editor.getSession().setUseWrapMode(true);
var jsonUrl = "JSON/Components/proce.json";
//the url where the json file with the suggestions is present
var langTools = ace.require("ace/ext/language_tools");
editor.setOptions({enableBasicAutocompletion: true});
var rhymeCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
if (prefix.length === 0) { callback(null, []); return }
$.getJSON(jsonUrl, function(wordList) {
callback(null, wordList.map(function(ea) {
return {name: ea.word, value: ea.word, meta: "optional text"}
}));
})
}
}
langTools.addCompleter(rhymeCompleter);
Json文件格式:
[ {"word":"hello"},
{"word":"good morning"},
{"word":"suggestions"},
{"word":"auto suggest"},
{"word":"try this"}]
参考/演示:
答案 1 :(得分:3)
现在在Ace中添加Live Auto Completion: 在您的HTML中包含ace / ext-language_tools.js。 的。调用无法正常工作,因此您可能必须为此输入ctrl-space或alt-space,但现在将显示标准语法内容,如写入函数。 然后:
var editor = ace.edit("editor");
ace.require("ace/ext/language_tools");
editor.setOptions({
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true
});
答案 2 :(得分:1)
自动完成的难点在于找出其余的容易做的关键字。
对于2-3,您应该在https://github.com/ajaxorg/ace/issues/110处对您的特定用例发表评论,因为有一项工作需要获得AutoCompletion的原生支持。