diff --git a/src/solidlsp/language_servers/al_language_server.py b/src/solidlsp/language_servers/al_language_server.py index 2bc1b1ad..6dade714 100644 --- a/src/solidlsp/language_servers/al_language_server.py +++ b/src/solidlsp/language_servers/al_language_server.py @@ -1,3 +1,4 @@ +# type: ignore """AL Language Server implementation for Microsoft Dynamics 365 Business Central.""" import logging diff --git a/src/solidlsp/language_servers/bash_language_server.py b/src/solidlsp/language_servers/bash_language_server.py index 904d51fe..6759b5a6 100644 --- a/src/solidlsp/language_servers/bash_language_server.py +++ b/src/solidlsp/language_servers/bash_language_server.py @@ -125,27 +125,27 @@ class BashLanguageServer(SolidLanguageServer): } ], } - return initialize_params + return initialize_params # type: ignore - def _start_server(self): + def _start_server(self) -> None: """ Starts the Bash Language Server, waits for the server to be ready and yields the LanguageServer instance. """ - def register_capability_handler(params): + def register_capability_handler(params: dict) -> None: assert "registrations" in params for registration in params["registrations"]: if registration["method"] == "workspace/executeCommand": self.initialize_searcher_command_available.set() return - def execute_client_command_handler(params): + def execute_client_command_handler(params: dict) -> list: return [] - def do_nothing(params): + def do_nothing(params: dict) -> None: return - def window_log_message(msg): + def window_log_message(msg: dict) -> None: self.logger.log(f"LSP: window/logMessage: {msg}", logging.INFO) # Check for bash-language-server ready signals message_text = msg.get("message", "") diff --git a/src/solidlsp/language_servers/clangd_language_server.py b/src/solidlsp/language_servers/clangd_language_server.py index b5efd484..d4f67e9b 100644 --- a/src/solidlsp/language_servers/clangd_language_server.py +++ b/src/solidlsp/language_servers/clangd_language_server.py @@ -196,7 +196,7 @@ class ClangdLanguageServer(SolidLanguageServer): if params["quiescent"] == True: self.server_ready.set() - def window_log_message(msg: Any) -> None: + def window_log_message(msg: dict) -> None: self.logger.log(f"LSP: window/logMessage: {msg}", logging.INFO) self.server.on_request("client/registerCapability", register_capability_handler) diff --git a/src/solidlsp/language_servers/csharp_language_server.py b/src/solidlsp/language_servers/csharp_language_server.py index 00db2341..2382b761 100644 --- a/src/solidlsp/language_servers/csharp_language_server.py +++ b/src/solidlsp/language_servers/csharp_language_server.py @@ -435,6 +435,7 @@ class CSharpLanguageServer(SolidLanguageServer): # Download .NET 9 runtime using config dotnet_dir = Path(cls.ls_resources_dir(solidlsp_settings)) / "dotnet-runtime-9.0" + assert dotnet_runtime_dep.binary_name is not None, "Runtime dependency must have a binary_name" dotnet_exe = dotnet_dir / dotnet_runtime_dep.binary_name if dotnet_exe.exists(): @@ -642,7 +643,7 @@ class CSharpLanguageServer(SolidLanguageServer): # Just acknowledge the request - we don't need to track these for now return - def handle_project_needs_restore(params): + def handle_project_needs_restore(params: dict) -> None: return # Set up notification handlers diff --git a/src/solidlsp/language_servers/eclipse_jdtls.py b/src/solidlsp/language_servers/eclipse_jdtls.py index aba9a34e..7c718c07 100644 --- a/src/solidlsp/language_servers/eclipse_jdtls.py +++ b/src/solidlsp/language_servers/eclipse_jdtls.py @@ -17,6 +17,7 @@ from overrides import override from solidlsp.ls import LSPFileBuffer, SolidLanguageServer from solidlsp.ls_config import LanguageServerConfig from solidlsp.ls_logger import LanguageServerLogger +from solidlsp.ls_types import UnifiedSymbolInformation from solidlsp.ls_utils import FileUtils, PlatformUtils from solidlsp.lsp_protocol_handler.lsp_types import DocumentSymbol, InitializeParams, SymbolInformation from solidlsp.lsp_protocol_handler.server import ProcessLaunchInfo @@ -800,12 +801,12 @@ class EclipseJDTLS(SolidLanguageServer): # e.g. "myMethod(int) ", but we want overloads to be handled via overload_idx, # which requires the name to be just "myMethod". - def fix_name(symbol: SymbolInformation | DocumentSymbol) -> None: + def fix_name(symbol: SymbolInformation | DocumentSymbol | UnifiedSymbolInformation) -> None: if "(" in symbol["name"]: symbol["name"] = symbol["name"][: symbol["name"].index("(")] children = symbol.get("children") if children: - for child in children: + for child in children: # type: ignore fix_name(child) for root_symbol in result: diff --git a/src/solidlsp/language_servers/elm_language_server.py b/src/solidlsp/language_servers/elm_language_server.py index 6f5a6baa..4d3a3805 100644 --- a/src/solidlsp/language_servers/elm_language_server.py +++ b/src/solidlsp/language_servers/elm_language_server.py @@ -1,3 +1,4 @@ +# type: ignore """ Provides Elm specific instantiation of the LanguageServer class. Contains various configurations and settings specific to Elm. """ diff --git a/src/solidlsp/language_servers/erlang_language_server.py b/src/solidlsp/language_servers/erlang_language_server.py index aaa85f1c..755283f8 100644 --- a/src/solidlsp/language_servers/erlang_language_server.py +++ b/src/solidlsp/language_servers/erlang_language_server.py @@ -1,3 +1,4 @@ +# type: ignore """Erlang Language Server implementation using Erlang LS.""" import logging diff --git a/src/solidlsp/language_servers/fortran_language_server.py b/src/solidlsp/language_servers/fortran_language_server.py index 782df7b3..141959be 100644 --- a/src/solidlsp/language_servers/fortran_language_server.py +++ b/src/solidlsp/language_servers/fortran_language_server.py @@ -1,3 +1,4 @@ +# type: ignore """ Fortran Language Server implementation using fortls. """ diff --git a/src/solidlsp/language_servers/haskell_language_server.py b/src/solidlsp/language_servers/haskell_language_server.py index 1db2dc6a..f1353a34 100644 --- a/src/solidlsp/language_servers/haskell_language_server.py +++ b/src/solidlsp/language_servers/haskell_language_server.py @@ -7,6 +7,7 @@ import os import pathlib import shutil import time +from typing import Any from overrides import override @@ -25,7 +26,7 @@ class HaskellLanguageServer(SolidLanguageServer): """ @staticmethod - def _ensure_hls_installed(): + def _ensure_hls_installed() -> str: """Ensure haskell-language-server-wrapper is available.""" # Try common locations common_paths = [ @@ -310,20 +311,20 @@ class HaskellLanguageServer(SolidLanguageServer): } ], } - return initialize_params + return initialize_params # type: ignore - def _start_server(self): + def _start_server(self) -> None: """ Starts the Haskell Language Server """ - def do_nothing(params): + def do_nothing(params: Any) -> None: return - def window_log_message(msg): + def window_log_message(msg: dict) -> None: self.logger.log(f"LSP: window/logMessage: {msg}", logging.INFO) - def register_capability_handler(params): + def register_capability_handler(params: dict) -> None: """Handle dynamic capability registration from HLS""" if "registrations" in params: for registration in params.get("registrations", []): @@ -331,7 +332,7 @@ class HaskellLanguageServer(SolidLanguageServer): self.logger.log(f"HLS registered capability: {method}", logging.INFO) return - def workspace_configuration_handler(params): + def workspace_configuration_handler(params: dict) -> Any: """Handle workspace/configuration requests from HLS""" self.logger.log(f"HLS requesting configuration: {params}", logging.INFO) diff --git a/src/solidlsp/language_servers/intelephense.py b/src/solidlsp/language_servers/intelephense.py index cdb090b8..dc62a70e 100644 --- a/src/solidlsp/language_servers/intelephense.py +++ b/src/solidlsp/language_servers/intelephense.py @@ -148,7 +148,7 @@ class Intelephense(SolidLanguageServer): initialization_options["intelephense.files.maxSize"] = max_file_size initialize_params["initializationOptions"] = initialization_options - return initialize_params + return initialize_params # type: ignore def _start_server(self) -> None: """Start Intelephense server process""" diff --git a/src/solidlsp/language_servers/julia_server.py b/src/solidlsp/language_servers/julia_server.py index 05a0cbbb..178ac91b 100644 --- a/src/solidlsp/language_servers/julia_server.py +++ b/src/solidlsp/language_servers/julia_server.py @@ -4,6 +4,7 @@ import pathlib import platform import shutil import subprocess +from typing import Any from overrides import override @@ -30,6 +31,7 @@ class JuliaLanguageServer(SolidLanguageServer): julia_executable = self._setup_runtime_dependency(logger) # PASS LOGGER julia_code = "using LanguageServer; runserver()" + julia_ls_cmd: str | list[str] if platform.system() == "Windows": # On Windows, pass as list (Serena handles shell=True differently) julia_ls_cmd = [julia_executable, "--startup-file=no", "--history-file=no", "-e", julia_code, repository_root_path] @@ -147,15 +149,15 @@ class JuliaLanguageServer(SolidLanguageServer): } ], } - return initialize_params + return initialize_params # type: ignore - def _start_server(self): + def _start_server(self) -> None: """Start the LanguageServer.jl server process.""" - def do_nothing(params): + def do_nothing(params: Any) -> None: return - def window_log_message(msg): + def window_log_message(msg: dict) -> None: self.logger.log(f"LSP: window/logMessage: {msg}", logging.INFO) self.server.on_notification("window/logMessage", window_log_message) diff --git a/src/solidlsp/language_servers/lua_ls.py b/src/solidlsp/language_servers/lua_ls.py index c0f64b37..d96cb395 100644 --- a/src/solidlsp/language_servers/lua_ls.py +++ b/src/solidlsp/language_servers/lua_ls.py @@ -1,3 +1,4 @@ +# type: ignore """ Provides Lua specific instantiation of the LanguageServer class using lua-language-server. """ @@ -262,7 +263,7 @@ class LuaLanguageServer(SolidLanguageServer): def register_capability_handler(params): return - def window_log_message(msg): + def window_log_message(msg: dict): self.logger.log(f"LSP: window/logMessage: {msg}", logging.INFO) def do_nothing(params): diff --git a/src/solidlsp/language_servers/marksman.py b/src/solidlsp/language_servers/marksman.py index c35d2ca6..f463869d 100644 --- a/src/solidlsp/language_servers/marksman.py +++ b/src/solidlsp/language_servers/marksman.py @@ -1,3 +1,4 @@ +# type: ignore """ Provides Markdown specific instantiation of the LanguageServer class using marksman. Contains various configurations and settings specific to Markdown. diff --git a/src/solidlsp/language_servers/nixd_ls.py b/src/solidlsp/language_servers/nixd_ls.py index beea7c6b..edf092e3 100644 --- a/src/solidlsp/language_servers/nixd_ls.py +++ b/src/solidlsp/language_servers/nixd_ls.py @@ -1,3 +1,4 @@ +# type: ignore """ Provides Nix specific instantiation of the LanguageServer class using nixd (Nix Language Server). diff --git a/src/solidlsp/language_servers/perl_language_server.py b/src/solidlsp/language_servers/perl_language_server.py index 0552c834..5937b6a4 100644 --- a/src/solidlsp/language_servers/perl_language_server.py +++ b/src/solidlsp/language_servers/perl_language_server.py @@ -9,6 +9,7 @@ import os import pathlib import subprocess import time +from typing import Any from overrides import override @@ -16,7 +17,7 @@ from solidlsp.ls import SolidLanguageServer from solidlsp.ls_config import LanguageServerConfig from solidlsp.ls_logger import LanguageServerLogger from solidlsp.ls_utils import PlatformId, PlatformUtils -from solidlsp.lsp_protocol_handler.lsp_types import InitializeParams +from solidlsp.lsp_protocol_handler.lsp_types import DidChangeConfigurationParams, InitializeParams from solidlsp.lsp_protocol_handler.server import ProcessLaunchInfo from solidlsp.settings import SolidLSPSettings @@ -27,7 +28,7 @@ class PerlLanguageServer(SolidLanguageServer): """ @staticmethod - def _get_perl_version(): + def _get_perl_version() -> str | None: """Get the installed Perl version or None if not found.""" try: result = subprocess.run(["perl", "-v"], capture_output=True, text=True, check=False) @@ -38,7 +39,7 @@ class PerlLanguageServer(SolidLanguageServer): return None @staticmethod - def _get_perl_language_server_version(): + def _get_perl_language_server_version() -> str | None: """Get the installed Perl::LanguageServer version or None if not found.""" try: result = subprocess.run( @@ -147,21 +148,21 @@ class PerlLanguageServer(SolidLanguageServer): ], } - return initialize_params + return initialize_params # type: ignore - def _start_server(self): + def _start_server(self) -> None: """Start Perl::LanguageServer process""" - def register_capability_handler(params): + def register_capability_handler(params: Any) -> None: return - def window_log_message(msg): + def window_log_message(msg: str) -> None: self.logger.log(f"LSP: window/logMessage: {msg}", logging.INFO) - def do_nothing(params): + def do_nothing(params: Any) -> None: return - def workspace_configuration_handler(params): + def workspace_configuration_handler(params: Any) -> Any: """Handle workspace/configuration request from Perl::LanguageServer.""" self.logger.log(f"Received workspace/configuration request: {params}", logging.INFO) @@ -203,7 +204,7 @@ class PerlLanguageServer(SolidLanguageServer): # Send workspace configuration to Perl::LanguageServer # Perl::LanguageServer requires didChangeConfiguration to set perlInc, fileFilter, and ignoreDirs # See: Perl::LanguageServer::Methods::workspace::_rpcnot_didChangeConfiguration - perl_config = { + perl_config: DidChangeConfigurationParams = { "settings": { "perl": { "perlInc": [self.repository_root_path, "."], diff --git a/src/solidlsp/language_servers/r_language_server.py b/src/solidlsp/language_servers/r_language_server.py index 91aa6935..467cc144 100644 --- a/src/solidlsp/language_servers/r_language_server.py +++ b/src/solidlsp/language_servers/r_language_server.py @@ -3,6 +3,7 @@ import os import pathlib import subprocess import threading +from typing import Any from overrides import override @@ -32,7 +33,7 @@ class RLanguageServer(SolidLanguageServer): ] @staticmethod - def _check_r_installation(): + def _check_r_installation() -> None: """Check if R and languageserver are available.""" try: # Check R installation @@ -126,18 +127,18 @@ class RLanguageServer(SolidLanguageServer): } ], } - return initialize_params + return initialize_params # type: ignore - def _start_server(self): + def _start_server(self) -> None: """Start R Language Server process.""" - def window_log_message(msg): + def window_log_message(msg: str) -> None: self.logger.log(f"R LSP: window/logMessage: {msg}", logging.INFO) - def do_nothing(params): + def do_nothing(params: Any) -> None: return - def register_capability_handler(params): + def register_capability_handler(params: Any) -> None: return # Register LSP message handlers diff --git a/src/solidlsp/language_servers/ruby_lsp.py b/src/solidlsp/language_servers/ruby_lsp.py index 0bf2c207..95c9f7b6 100644 --- a/src/solidlsp/language_servers/ruby_lsp.py +++ b/src/solidlsp/language_servers/ruby_lsp.py @@ -16,7 +16,7 @@ from overrides import override from solidlsp.ls import SolidLanguageServer from solidlsp.ls_config import LanguageServerConfig from solidlsp.ls_logger import LanguageServerLogger -from solidlsp.lsp_protocol_handler.lsp_types import InitializeParams +from solidlsp.lsp_protocol_handler.lsp_types import InitializeParams, InitializeResult from solidlsp.lsp_protocol_handler.server import ProcessLaunchInfo from solidlsp.settings import SolidLSPSettings @@ -180,6 +180,7 @@ class RubyLsp(SolidLanguageServer): if not bundle_path: # Try common bundle executables for bundle_executable in ["bin/bundle", "bundle"]: + bundle_full_path: str | None if bundle_executable.startswith("bin/"): bundle_full_path = os.path.join(repository_root_path, bundle_executable) else: @@ -340,7 +341,7 @@ class RubyLsp(SolidLanguageServer): }, } - return initialize_params + return initialize_params # type: ignore def _start_server(self) -> None: """ @@ -394,7 +395,7 @@ class RubyLsp(SolidLanguageServer): self.analysis_complete.set() self.completions_available.set() - def window_work_done_progress_create(params: dict) -> None: + def window_work_done_progress_create(params: dict) -> dict: """Handle workDoneProgress/create requests from ruby-lsp""" self.logger.log(f"LSP: window/workDoneProgress/create: {params}", logging.DEBUG) return {} @@ -442,7 +443,7 @@ class RubyLsp(SolidLanguageServer): self.analysis_complete.set() self.completions_available.set() - def _handle_initialization_response(self, init_response): + def _handle_initialization_response(self, init_response: InitializeResult) -> None: """ Handle the initialization response from ruby-lsp and validate capabilities. """ diff --git a/src/solidlsp/language_servers/rust_analyzer.py b/src/solidlsp/language_servers/rust_analyzer.py index c47d956c..aa5617c5 100644 --- a/src/solidlsp/language_servers/rust_analyzer.py +++ b/src/solidlsp/language_servers/rust_analyzer.py @@ -41,7 +41,7 @@ class RustAnalyzer(SolidLanguageServer): return SolidLanguageServer._determine_log_level(line) @staticmethod - def _get_rustup_version(): + def _get_rustup_version() -> str | None: """Get installed rustup version or None if not found.""" try: result = subprocess.run(["rustup", "--version"], capture_output=True, text=True, check=False) @@ -52,7 +52,7 @@ class RustAnalyzer(SolidLanguageServer): return None @staticmethod - def _get_rust_analyzer_path(): + def _get_rust_analyzer_path() -> str | None: """Get rust-analyzer path via rustup. Returns None if not found.""" try: # Note: we avoid using system PATH to avoid picking up incorrect aliases @@ -66,8 +66,12 @@ class RustAnalyzer(SolidLanguageServer): return None @staticmethod - def _ensure_rust_analyzer_installed(): - """Ensure rust-analyzer is available, install via rustup if needed.""" + def _ensure_rust_analyzer_installed() -> str: + """ + Ensure rust-analyzer is available, install via rustup if needed. + + :return: path to rust-analyzer executable + """ path = RustAnalyzer._get_rust_analyzer_path() if path: return path diff --git a/src/solidlsp/language_servers/scala_language_server.py b/src/solidlsp/language_servers/scala_language_server.py index 5a7ca14c..5911c453 100644 --- a/src/solidlsp/language_servers/scala_language_server.py +++ b/src/solidlsp/language_servers/scala_language_server.py @@ -64,6 +64,7 @@ class ScalaLanguageServer(SolidLanguageServer): os.makedirs(metals_home, exist_ok=True) metals_executable = os.path.join(metals_home, "metals") coursier_command_path = shutil.which("coursier") + assert coursier_command_path is not None, "coursier is not installed or not in PATH." cs_command_path = shutil.which("cs") if not os.path.exists(metals_executable): @@ -152,9 +153,9 @@ class ScalaLanguageServer(SolidLanguageServer): }, "capabilities": {"textDocument": {"documentSymbol": {"hierarchicalDocumentSymbolSupport": True}}}, } - return initialize_params + return initialize_params # type: ignore - def _start_server(self): + def _start_server(self) -> None: """ Starts the Scala Language Server """ diff --git a/src/solidlsp/language_servers/solargraph.py b/src/solidlsp/language_servers/solargraph.py index ad9d273a..b379bc0c 100644 --- a/src/solidlsp/language_servers/solargraph.py +++ b/src/solidlsp/language_servers/solargraph.py @@ -1,3 +1,4 @@ +# type: ignore """ Provides Ruby specific instantiation of the LanguageServer class using Solargraph. Contains various configurations and settings specific to Ruby. diff --git a/src/solidlsp/language_servers/sourcekit_lsp.py b/src/solidlsp/language_servers/sourcekit_lsp.py index 2c7ba472..ff3e7df4 100644 --- a/src/solidlsp/language_servers/sourcekit_lsp.py +++ b/src/solidlsp/language_servers/sourcekit_lsp.py @@ -1,3 +1,4 @@ +# type: ignore import logging import os import pathlib diff --git a/src/solidlsp/language_servers/yaml_language_server.py b/src/solidlsp/language_servers/yaml_language_server.py index 16ffa979..6e2dc959 100644 --- a/src/solidlsp/language_servers/yaml_language_server.py +++ b/src/solidlsp/language_servers/yaml_language_server.py @@ -8,6 +8,7 @@ import os import pathlib import shutil import threading +from typing import Any from solidlsp.language_servers.common import RuntimeDependency, RuntimeDependencyCollection from solidlsp.ls import SolidLanguageServer @@ -148,20 +149,20 @@ class YamlLanguageServer(SolidLanguageServer): } }, } - return initialize_params + return initialize_params # type: ignore - def _start_server(self): + def _start_server(self) -> None: """ Starts the YAML Language Server, waits for the server to be ready and yields the LanguageServer instance. """ - def register_capability_handler(params): + def register_capability_handler(params: Any) -> None: return - def do_nothing(params): + def do_nothing(params: Any) -> None: return - def window_log_message(msg): + def window_log_message(msg: str) -> None: self.logger.log(f"LSP: window/logMessage: {msg}", logging.INFO) self.server.on_request("client/registerCapability", register_capability_handler) diff --git a/src/solidlsp/language_servers/zls.py b/src/solidlsp/language_servers/zls.py index 893a4681..e218d4e8 100644 --- a/src/solidlsp/language_servers/zls.py +++ b/src/solidlsp/language_servers/zls.py @@ -1,3 +1,4 @@ +# type: ignore """ Provides Zig specific instantiation of the LanguageServer class using ZLS (Zig Language Server). """ diff --git a/src/solidlsp/ls.py b/src/solidlsp/ls.py index 9420dec8..fcb0734f 100644 --- a/src/solidlsp/ls.py +++ b/src/solidlsp/ls.py @@ -31,8 +31,14 @@ from solidlsp.ls_utils import FileUtils, PathUtils, TextUtils from solidlsp.lsp_protocol_handler import lsp_types from solidlsp.lsp_protocol_handler import lsp_types as LSPTypes from solidlsp.lsp_protocol_handler.lsp_constants import LSPConstants -from solidlsp.lsp_protocol_handler.lsp_types import Definition, DefinitionParams, DocumentSymbol, LocationLink, SymbolInformation, \ - RenameParams +from solidlsp.lsp_protocol_handler.lsp_types import ( + Definition, + DefinitionParams, + DocumentSymbol, + LocationLink, + RenameParams, + SymbolInformation, +) from solidlsp.lsp_protocol_handler.server import ( LSPError, ProcessLaunchInfo, diff --git a/src/solidlsp/ls_config.py b/src/solidlsp/ls_config.py index ceb67b72..0598342b 100644 --- a/src/solidlsp/ls_config.py +++ b/src/solidlsp/ls_config.py @@ -222,7 +222,7 @@ class Language(str, Enum): return RubyLsp case self.RUBY_SOLARGRAPH: - from solidlsp.language_servers.solargraph import Solargraph + from solidlsp.language_servers.solargraph import Solargraph # type: ignore return Solargraph case self.DART: @@ -250,7 +250,7 @@ class Language(str, Enum): return ElixirTools case self.ELM: - from solidlsp.language_servers.elm_language_server import ElmLanguageServer + from solidlsp.language_servers.elm_language_server import ElmLanguageServer # type: ignore return ElmLanguageServer case self.TERRAFORM: @@ -258,7 +258,7 @@ class Language(str, Enum): return TerraformLS case self.SWIFT: - from solidlsp.language_servers.sourcekit_lsp import SourceKitLSP + from solidlsp.language_servers.sourcekit_lsp import SourceKitLSP # type: ignore return SourceKitLSP case self.BASH: @@ -270,23 +270,23 @@ class Language(str, Enum): return YamlLanguageServer case self.ZIG: - from solidlsp.language_servers.zls import ZigLanguageServer + from solidlsp.language_servers.zls import ZigLanguageServer # type: ignore return ZigLanguageServer case self.NIX: - from solidlsp.language_servers.nixd_ls import NixLanguageServer + from solidlsp.language_servers.nixd_ls import NixLanguageServer # type: ignore return NixLanguageServer case self.LUA: - from solidlsp.language_servers.lua_ls import LuaLanguageServer + from solidlsp.language_servers.lua_ls import LuaLanguageServer # type: ignore return LuaLanguageServer case self.ERLANG: - from solidlsp.language_servers.erlang_language_server import ErlangLanguageServer + from solidlsp.language_servers.erlang_language_server import ErlangLanguageServer # type: ignore return ErlangLanguageServer case self.AL: - from solidlsp.language_servers.al_language_server import ALLanguageServer + from solidlsp.language_servers.al_language_server import ALLanguageServer # type: ignore return ALLanguageServer case self.REGO: @@ -294,7 +294,7 @@ class Language(str, Enum): return RegalLanguageServer case self.MARKDOWN: - from solidlsp.language_servers.marksman import Marksman + from solidlsp.language_servers.marksman import Marksman # type: ignore return Marksman case self.R: @@ -310,7 +310,7 @@ class Language(str, Enum): return JuliaLanguageServer case self.FORTRAN: - from solidlsp.language_servers.fortran_language_server import FortranLanguageServer + from solidlsp.language_servers.fortran_language_server import FortranLanguageServer # type: ignore return FortranLanguageServer case self.HASKELL: diff --git a/src/solidlsp/lsp_protocol_handler/lsp_types.py b/src/solidlsp/lsp_protocol_handler/lsp_types.py index 5488c358..4c1753b5 100644 --- a/src/solidlsp/lsp_protocol_handler/lsp_types.py +++ b/src/solidlsp/lsp_protocol_handler/lsp_types.py @@ -2478,6 +2478,8 @@ class DocumentSymbol(TypedDict): """ The range that should be selected and revealed when this symbol is being picked, e.g the name of a function. Must be contained by the `range`. """ + # TODO: I think this type is missing the 'children' field - DJ + class DocumentSymbolRegistrationOptions(TypedDict): """Registration options for a {@link DocumentSymbolRequest}."""