This commit is contained in:
Christoph Brandau
2025-08-01 13:35:02 +02:00
parent 98e2d104a8
commit 5e2e85830b
6 changed files with 178 additions and 9 deletions
+25
View File
@@ -55,6 +55,8 @@ from plugins.poco_plugin import commands
from tools import checks, parser
from tools.semantic_tokens import _Highlighter, TOKEN_TYPES, TokenModifier
from tools.completion_items import completion
from tools.inlay_hint import InlayHintGenerator
from tools.symbols import OutlineVisitor
DIAGNOSTIC_SOURCE = "nx-post-support"
@@ -259,6 +261,29 @@ def on_completion(params: lsp.CompletionParams) -> list[lsp.CompletionItem]:
return lsp.CompletionList(is_incomplete=False, items=items)
@LSP_SERVER.feature(lsp.TEXT_DOCUMENT_DOCUMENT_SYMBOL)
def document_symbols(params: lsp.DocumentSymbolParams):
doc = LSP_SERVER.workspace.get_text_document(params.text_document.uri)
tree = LSP_SERVER.parser.parse(doc.source)
visitor = OutlineVisitor(LSP_SERVER.parser)
tree.accept(visitor, recurse=True)
return visitor.stack[0]
@LSP_SERVER.feature(lsp.TEXT_DOCUMENT_INLAY_HINT)
def inlay_hints(params: lsp.InlayHintParams):
document = LSP_SERVER.workspace.get_text_document(params.text_document.uri)
tree = LSP_SERVER.parser.parse(document.source)
# Inlay Hints sammeln
generator = InlayHintGenerator(completion.proc_signatures)
tree.accept(generator, recurse=True)
return generator.hints
@LSP_SERVER.feature(
lsp.TEXT_DOCUMENT_SEMANTIC_TOKENS_FULL,
lsp.SemanticTokensLegend(