языковой сервер onCompletion только слушает буквы [az], как включить точку (.) - PullRequest
2 голосов
/ 29 февраля 2020

lsp-sample в репозитории https://github.com/microsoft/vscode-extension-samples/tree/master/lsp-sample показывает, как реализовать onCompletion

сервер слушает только буквы [az], а не точку (.) У меня есть видел, что это контролируется с triggerCharacters, но мне не ясно, где их установить. Кажется логичным, что это нужно сделать в клиентской части, но, похоже, я могу зарегистрировать только другой обработчик onCompletion. Кто-нибудь может пролить свет?

Это код на стороне сервера:

// This handler provides the initial list of the completion items.
connection.onCompletion(
    (_textDocumentPosition: TextDocumentPositionParams): CompletionItem[] => {
        // The pass parameter contains the position of the text document in
        // which code complete got requested. For the example we ignore this
        // info and always provide the same completion items.
        return [
            {
                label: 'TypeScript',
                kind: CompletionItemKind.Text,
                data: 1
            },
            {
                label: 'JavaScript',
                kind: CompletionItemKind.Text,
                data: 2
            }
        ];
    }
);

1 Ответ

1 голос
/ 29 февраля 2020

Триггерные символы указаны в ServerCapabilities ответа Initialize:

connection.onInitialize((params: InitializeParams) => {
    // ...
    return {
        capabilities: {
            // ...
            completionProvider: {
                triggerCharacters: ["."]
            }
        }
    };
});

См. Также: CompletionOptions запроса о завершении .

...