ACE 编辑器自动完成 - 自定义字符串
ACE Editor Autocomplete - custom strings
我在 Chrome 扩展中使用 ACE 编辑器。我正在使用 ACE 的自动完成功能,但我希望能够完全定义静态字符串列表以用于自动完成,而不是任何本地字符串或片段。 (将来我可能会使用比静态列表更复杂的东西,但现在静态没问题。)
任何人都可以提供有关如何完成此操作的说明吗?我已经启用了自动完成功能并关闭了代码片段,但我无法定义要使用的静态字符串列表。
目前我只有:
var editor = ace.edit('propertiesText');
editor.getSession().setMode('ace/mode/properties');
var langTools = ace.require('ace/ext/language_tools');
// code here to define custom strings?
editor.setOptions({
enableBasicAutocompletion: true
});
你需要像这样添加一个完成者
var staticWordCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
var wordList = ["foo", "bar", "baz"];
callback(null, wordList.map(function(word) {
return {
caption: word,
value: word,
meta: "static"
};
}));
}
}
langTools.setCompleters([staticWordCompleter])
// or
editor.completers = [staticWordCompleter]
//UPDATE: consider adding to completers list to not remove ace's already added completers
editor.completers.push(staticWordCompleter)
如果您想保留旧关键字列表并想追加新列表
var staticWordCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
var wordList = ["foo", "bar", "baz"];
callback(null, [...wordList.map(function(word) {
return {
caption: word,
value: word,
meta: "static"
};
}), ...session.$mode.$highlightRules.$keywordList.map(function(word) {
return {
caption: word,
value: word,
meta: 'keyword',
};
})]);
}
}
langTools.setCompleters([staticWordCompleter])
// or
editor.completers = [staticWordCompleter]
我在 Chrome 扩展中使用 ACE 编辑器。我正在使用 ACE 的自动完成功能,但我希望能够完全定义静态字符串列表以用于自动完成,而不是任何本地字符串或片段。 (将来我可能会使用比静态列表更复杂的东西,但现在静态没问题。)
任何人都可以提供有关如何完成此操作的说明吗?我已经启用了自动完成功能并关闭了代码片段,但我无法定义要使用的静态字符串列表。
目前我只有:
var editor = ace.edit('propertiesText');
editor.getSession().setMode('ace/mode/properties');
var langTools = ace.require('ace/ext/language_tools');
// code here to define custom strings?
editor.setOptions({
enableBasicAutocompletion: true
});
你需要像这样添加一个完成者
var staticWordCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
var wordList = ["foo", "bar", "baz"];
callback(null, wordList.map(function(word) {
return {
caption: word,
value: word,
meta: "static"
};
}));
}
}
langTools.setCompleters([staticWordCompleter])
// or
editor.completers = [staticWordCompleter]
//UPDATE: consider adding to completers list to not remove ace's already added completers
editor.completers.push(staticWordCompleter)
如果您想保留旧关键字列表并想追加新列表
var staticWordCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
var wordList = ["foo", "bar", "baz"];
callback(null, [...wordList.map(function(word) {
return {
caption: word,
value: word,
meta: "static"
};
}), ...session.$mode.$highlightRules.$keywordList.map(function(word) {
return {
caption: word,
value: word,
meta: 'keyword',
};
})]);
}
}
langTools.setCompleters([staticWordCompleter])
// or
editor.completers = [staticWordCompleter]