diff --git a/examples/example.il b/examples/example.il index 3a6c722..ffe5abd 100644 --- a/examples/example.il +++ b/examples/example.il @@ -40,5 +40,3 @@ let( (inner inner2) ; block ) somefunccall("somecalcfunc()") - - diff --git a/skillls/main.py b/skillls/main.py index c146266..a983605 100644 --- a/skillls/main.py +++ b/skillls/main.py @@ -1,14 +1,12 @@ -from collections.abc import Callable -from dataclasses import dataclass, field from logging import DEBUG, basicConfig, getLogger from pathlib import Path from typing import Any -from cattrs import Converter from lsprotocol.types import ( TEXT_DOCUMENT_DID_CHANGE, TEXT_DOCUMENT_DID_CLOSE, TEXT_DOCUMENT_DID_OPEN, INITIALIZE, + TEXT_DOCUMENT_DID_SAVE, TEXT_DOCUMENT_DOCUMENT_SYMBOL, TEXT_DOCUMENT_INLAY_HINT, Diagnostic, @@ -22,18 +20,14 @@ from lsprotocol.types import ( InlayHint, InlayHintKind, InlayHintParams, - MessageType, NotebookDocumentSyncOptions, - PublishDiagnosticsNotification, PublishDiagnosticsParams, - ShowMessageParams, TextDocumentSyncKind, ) from pygls.lsp.server import LanguageServer -from pygls.protocol import LanguageServerProtocol, default_converter -from skillls.checker import ParenMismatchError, ParenMismatchErrorKind +from skillls.checker import ParenMismatchError from skillls.helpers import parse_file from skillls.types import URI, Node @@ -131,6 +125,7 @@ def on_close(server: SkillLanguageServer, params: DidCloseTextDocumentParams) -> @server.feature(TEXT_DOCUMENT_DID_CHANGE) +@server.feature(TEXT_DOCUMENT_DID_SAVE) def on_change(server: SkillLanguageServer, params: DidChangeTextDocumentParams) -> None: try: server.scopes[params.text_document.uri] = parse_file( @@ -147,17 +142,16 @@ def on_change(server: SkillLanguageServer, params: DidChangeTextDocumentParams) @server.feature(TEXT_DOCUMENT_INLAY_HINT) def on_inlay(server: SkillLanguageServer, params: InlayHintParams) -> list[InlayHint]: hints: list[InlayHint] = [] - - for uri in server.opened_files: - for node in server.scopes.get(uri, []): - hints.append( - InlayHint( - label=node.node, - kind=InlayHintKind.Type, - padding_left=True, - position=node.location.end, - ) + uri = params.text_document.uri + for node in server.scopes.get(uri, []): + hints.append( + InlayHint( + label=node.node, + kind=InlayHintKind.Type, + padding_left=True, + position=node.location.end, ) + ) return hints