Проблема с завершением предложений после использования метода executeEdits - PullRequest
0 голосов
/ 07 мая 2019

Монако-редактор версия: 0.17.0 Браузер: Chrome ОС: Windows 10

Привет, все, у меня странная ошибка.

После использования 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'
        }
    ];

Здесь, если я наберу «а» или «А», появится «адрес», а «Начисление» - нет.

Я добавляю эту картинку, чтобы показать вам проблему. Это то, что происходит в редакторе, после нажатия "_f"

Пояснение к экрану редактора Monaco

У вас есть идеи, что делать?

С наилучшими пожеланиями, Софиан Джамай

...