Autocompletion Problem with Numeric Indices Inside Square Brackets in Ace Editor

62 views
Skip to first unread message

Vinnecent

unread,
Oct 29, 2024, 10:19:46 AM10/29/24
to Ajax.org Cloud9 Editor (Ace)
The problem I want to solve is this. I habe a completion "app.doc.pages[i].inks[j].name" and want to be able to get completions even if I write something like this "app.doc.pages[0]". I looked all over for a solution for this problem but have not found anything that would help. 

The exactMatch bool does not help in this case as well. My ultimate goal would be to allow anything inside the square brackets and still get the correct completions.

Help would be much appreciated.

Small code example:

const langTools = ace.require("ace/ext/language_tools");

const customCompleter = {
    triggerCharacters: ['.'],
    identifierRegexps: [/[a-zA-Z_0-9\.\$\[\]\-\u00A2-\u2000\u2070-\uFFFF]/],
    getCompletions: function(editor, session, pos, prefix, callback) {
        const completions = [
            {
                "caption": "app.doc.pages[i].inks[j].name",
                "meta": "example",
                "value": "app.doc.pages[i].inks[j].name"
            },
            {
                "caption": "app.doc.title",
                "meta": "example",
                "value": "app.doc.title"
            }
        ];
        callback(null, completions);
    }
};

langTools.addCompleter(customCompleter);

const editor = ace.edit("editor");
editor.setOptions({
    enableBasicAutocompletion: true,
    enableLiveAutocompletion: true
});
Reply all
Reply to author
Forward
0 new messages