1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
import textwrap
from debputy.lsp.debputy_ls import DebputyLanguageServer
try:
from lsprotocol.types import (
CompletionParams,
TextDocumentIdentifier,
HoverParams,
MarkupContent,
SemanticTokensParams,
)
from debputy.lsp.lsp_debian_patches_series import (
_debian_patches_semantic_tokens_full,
_debian_patches_series_completions,
)
from pygls.server import LanguageServer
except ImportError:
pass
from lsp_tests.lsp_tutil import (
put_doc_no_cursor,
resolve_semantic_tokens,
resolved_semantic_token,
)
def test_dpatches_series_semantic_tokens(ls: "DebputyLanguageServer") -> None:
doc_uri = "file:///nowhere/debian/patches/series"
put_doc_no_cursor(
ls,
doc_uri,
"debian/patches/series",
textwrap.dedent(
"""\
# Some leading comment
some.patch
another-delta.diff # foo
"""
),
)
semantic_tokens = _debian_patches_semantic_tokens_full(
ls,
SemanticTokensParams(TextDocumentIdentifier(doc_uri)),
)
resolved_semantic_tokens = resolve_semantic_tokens(semantic_tokens)
assert resolved_semantic_tokens is not None
assert resolved_semantic_tokens == [
resolved_semantic_token(0, 0, len("# Some leading comment"), "comment"),
resolved_semantic_token(2, 0, len("some.patch"), "string"),
resolved_semantic_token(4, 0, len("another-delta.diff"), "string"),
resolved_semantic_token(
4, len("another-delta.diff") + 1, len("# foo"), "comment"
),
]
|