javascript 当我们键入“-”时,编辑器的自动完成程序不会出现

ctehm74n  于 12个月前  发布在  Java
关注(0)|答案(2)|浏览(98)

ace编辑器自动完成器在使用“-”(破折号或减号运算符)后不会显示。但完成器会显示其他常用运算符(如+,-,*)的建议。/
我也试过使用cnc +space选项来拉起窗格,但它对我也没有帮助。x1c 0d1x

yruzcnhs

yruzcnhs1#

您可以覆盖默认行为
第一个月
它在ext-language_tools.js(旧版本)或autocomplete/utils.js中定义。
从下面的代码中,你可以看到每个完成器都可以有自己的正则表达式,由identifierRegexps(string)提供:

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

qzlgjiam

qzlgjiam2#

Ace.Completer接口有identifierRegexps键,用于排除减号(“-”):

const completer: Ace.Completer = {
  identifierRegexps: [/[a-zA-Z_0-9\$\u00A2-\uFFFF]/],
}

editor.completers = [completer];

字符串

相关问题