使用executeEdits方法后,建议完成问题

时间:2019-05-07 09:52:40

标签: monaco-editor

monaco编辑器版本:0.17.0 浏览器:Chrome 操作系统:Windows 10

您好eveyone,我在一个奇怪的错误面前。

使用executeEdits删除单词后,我返回了一组建议。 因此,当我与特定单词匹配时,将其删除,并显示与该匹配相对应的建议。 所以我看到了建议列表。通常,当我从该列表开始手动编写单词时,建议列表会减少,仅显示与您所写内容相对应的单词。 问题出在这里,我不知道为什么,列表中的某些单词没有出现。

例如,如果我想与“ _f”匹配,这是我的代码:

  monaco.languages.registerCompletionItemProvider('myLanguage', {
    provideCompletionItems: function(model, position) {
    var cursorLine = position.lineNumber, cursorColumn = position.column;
        var textUntilPosition = model.getValueInRange({startLineNumber: position.lineNumber, startColumn: 1, endLineNumber: position.lineNumber, endColumn: position.column});

        var match1 = textUntilPosition.match(" _f") !=null | textUntilPosition.match("^_f") !=null ? true:false;
        if(match1){
            editor.executeEdits('', [{ range: new monaco.Range(cursorLine, cursorColumn - 2, cursorLine, cursorColumn), text: '  ' }]);
            return { suggestions: myArrayOfSuggestions()};
        } 
        else{ return { suggestions: otherArrayOfSuggestions()};}
    }
});

function myArrayOfSuggestions() {
    return [
        {
            label: 'name',
            kind: monaco.languages.CompletionItemKind.Function,
            insertText: 'name'
        },
        {
            label: 'adress',
            kind: monaco.languages.CompletionItemKind.Function,
            insertText: 'adress'
        },
        {
            label: 'city',
            kind: monaco.languages.CompletionItemKind.Function,
            insertText: 'city'
        },
        {
            label: 'Accrual',
            kind: monaco.languages.CompletionItemKind.Function,
            insertText: 'Accrual'
        }
    ];

在这里,如果我输入“ a”或“ A”,则会出现“ adress”,但不会出现“ Accrual”。

我添加此图片以向您显示问题。这是在按下“ _f”后在编辑器中发生的事情

Explanation Screen of Monaco Editor

您是否知道该怎么办?

最好的问候, Sofiane Jamai

0 个答案:

没有答案