Fix error without completion context

This commit is contained in:
Regen
2020-04-29 15:24:13 +09:00
parent 40d93525d9
commit 6bf08e0f14
2 changed files with 18 additions and 1 deletions

View File

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

View File

@@ -63,6 +63,23 @@ def test_completions_invoked(client_server, datadir):
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):
client, server = client_server
_init(client, datadir)