Merge pull request #12 from regen100/fix-completion

Fix error without completion context
This commit is contained in:
Regen
2020-04-29 16:09:21 +09:00
committed by GitHub
2 changed files with 18 additions and 1 deletions

View File

@@ -42,7 +42,7 @@ class CMakeLanguageServer(LanguageServer):
@self.feature(COMPLETION, trigger_characters=['{', '(']) @self.feature(COMPLETION, trigger_characters=['{', '('])
def completions(params: CompletionParams): def completions(params: CompletionParams):
if (params.context.triggerKind == if (hasattr(params, 'context') and params.context.triggerKind ==
CompletionTriggerKind.TriggerCharacter): CompletionTriggerKind.TriggerCharacter):
token = '' token = ''
trigger = params.context.triggerCharacter trigger = params.context.triggerCharacter

View File

@@ -63,6 +63,23 @@ def test_completions_invoked(client_server, datadir):
assert '<PROJECT-NAME>' in item.documentation assert '<PROJECT-NAME>' in item.documentation
def test_completions_no_context(client_server, datadir):
client, server = client_server
_init(client, datadir)
path = datadir / 'CMakeLists.txt'
_open(client, path, 'projec')
params = CompletionParams(TextDocumentIdentifier(path.as_uri()),
Position(0, 6),
CompletionContext(CompletionTriggerKind.Invoked))
# some clients do not send context
del params.context
response = client.lsp.send_request(COMPLETION,
params).result(timeout=CALL_TIMEOUT)
item = next(filter(lambda x: x.label == 'project', response.items), None)
assert item is not None
assert '<PROJECT-NAME>' in item.documentation
def test_completions_triggercharacter_variable(client_server, datadir): def test_completions_triggercharacter_variable(client_server, datadir):
client, server = client_server client, server = client_server
_init(client, datadir) _init(client, datadir)