Merge pull request #12 from regen100/fix-completion
Fix error without completion context
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user