feat: handle workspace config event (#91)
* feat: handle workspace config event * Fix linter errors --------- Co-authored-by: Regen <regen100@users.noreply.github.com>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import time
|
||||
from concurrent import futures
|
||||
from pathlib import Path
|
||||
from typing import Optional, Tuple
|
||||
@@ -9,11 +10,13 @@ from lsprotocol.types import (
|
||||
TEXT_DOCUMENT_DID_OPEN,
|
||||
TEXT_DOCUMENT_FORMATTING,
|
||||
TEXT_DOCUMENT_HOVER,
|
||||
WORKSPACE_DID_CHANGE_CONFIGURATION,
|
||||
ClientCapabilities,
|
||||
CompletionContext,
|
||||
CompletionList,
|
||||
CompletionParams,
|
||||
CompletionTriggerKind,
|
||||
DidChangeConfigurationParams,
|
||||
DidOpenTextDocumentParams,
|
||||
DocumentFormattingParams,
|
||||
FormattingOptions,
|
||||
@@ -95,6 +98,30 @@ def test_initialize(
|
||||
assert server._api is not None
|
||||
|
||||
|
||||
def test_workspace_did_change_configuration(
|
||||
client_server: Tuple[LanguageServer, CMakeLanguageServer], datadir: Path
|
||||
) -> None:
|
||||
client, server = client_server
|
||||
|
||||
_init(client, datadir)
|
||||
|
||||
old_api = server._api
|
||||
|
||||
client.lsp.notify(
|
||||
WORKSPACE_DID_CHANGE_CONFIGURATION,
|
||||
DidChangeConfigurationParams(
|
||||
settings={"initialization_options": {"buildDirectory": "c_build"}}
|
||||
),
|
||||
)
|
||||
|
||||
start = time.monotonic()
|
||||
while server._api is old_api and (time.monotonic() - start) < CALL_TIMEOUT:
|
||||
time.sleep(0.1)
|
||||
|
||||
assert server._api is not None
|
||||
assert server._api._build.as_posix() == "c_build"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"context", [CompletionContext(trigger_kind=CompletionTriggerKind.Invoked), None]
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user