使用" - " ace编辑器自动完成器不显示(破折号或减号运算符)。但是,完成者显示了对其他常见操作符的建议,如+, - ,*。 /
答案 0 :(得分:2)
您可以覆盖默认行为
var ID_REGEX = /[a-zA-Z_0-9\$\-\u00A2-\uFFFF]/;
在ext-language_tools.js(旧版本)或autocomplete / utils.js中定义。
从下面的代码中可以看到每个完成者都可以拥有自己的标识符(字符串)提供的正则表达式:
exports.getCompletionPrefix = function (editor) {
var pos = editor.getCursorPosition();
var line = editor.session.getLine(pos.row);
var prefix;
editor.completers.forEach(function(completer) {
if (completer.identifierRegexps) {
completer.identifierRegexps.forEach(function(identifierRegex) {
if (!prefix && identifierRegex)
prefix = this.retrievePrecedingIdentifier(line, pos.column, identifierRegex);
}.bind(this));
}
}.bind(this));
return prefix || this.retrievePrecedingIdentifier(line, pos.column);
};
从我的测试中我可以说这不能正常工作,因为如果前缀为空,将使用默认的正则表达式:
return prefix || this.retrievePrecedingIdentifier(line, pos.column);
此外,我在github页面上发现了一个带有相同问题的pull请求: https://github.com/ajaxorg/ace/pull/2905
我还在ace编辑器的github页面上创建了一个问题: https://github.com/ajaxorg/ace/issues/3430
更新(03.04.2018):
这个功能似乎终于进入了项目:
https://github.com/ajaxorg/ace/pull/2905#pullrequestreview-108526630