mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-13 18:16:10 +00:00
More types, less type: ignore
Thanks to Claude Code
This commit is contained in:
1 parent
fff9f1e983
commit
4a3590bcde
8 files changed
+53
-62
No files matched your search
@@ -1,4 +1,3 @@
|
||||
# type: ignore
|
||||
"""
|
||||
Provides Elm specific instantiation of the LanguageServer class. Contains various configurations and settings specific to Elm.
|
||||
"""
|
||||
@@ -144,17 +143,17 @@ class ElmLanguageServer(SolidLanguageServer):
|
||||
}
|
||||
],
|
||||
}
|
||||
return initialize_params
|
||||
return initialize_params # type: ignore[return-value]
|
||||
|
||||
def _start_server(self):
|
||||
def _start_server(self) -> None:
|
||||
"""
|
||||
Starts the Elm Language Server, waits for the server to be ready and yields the LanguageServer instance.
|
||||
"""
|
||||
|
||||
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)
|
||||
|
||||
self.server.on_notification("window/logMessage", window_log_message)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# type: ignore
|
||||
"""Erlang Language Server implementation using Erlang LS."""
|
||||
|
||||
import logging
|
||||
@@ -62,7 +61,7 @@ class ErlangLanguageServer(SolidLanguageServer):
|
||||
return False
|
||||
|
||||
@classmethod
|
||||
def _get_erlang_version(cls):
|
||||
def _get_erlang_version(cls) -> str | None:
|
||||
"""Get the installed Erlang/OTP version or None if not found."""
|
||||
try:
|
||||
result = subprocess.run(["erl", "-version"], check=False, capture_output=True, text=True, timeout=10)
|
||||
@@ -81,13 +80,13 @@ class ErlangLanguageServer(SolidLanguageServer):
|
||||
except (subprocess.SubprocessError, FileNotFoundError):
|
||||
return False
|
||||
|
||||
def _start_server(self):
|
||||
def _start_server(self) -> None:
|
||||
"""Start Erlang LS server process with proper initialization waiting."""
|
||||
|
||||
def register_capability_handler(params):
|
||||
def register_capability_handler(params: dict) -> None:
|
||||
return
|
||||
|
||||
def window_log_message(msg):
|
||||
def window_log_message(msg: dict) -> None:
|
||||
"""Handle window/logMessage notifications from Erlang LS"""
|
||||
message_text = msg.get("message", "")
|
||||
self.logger.log(f"LSP: window/logMessage: {message_text}", logging.INFO)
|
||||
@@ -110,10 +109,10 @@ class ErlangLanguageServer(SolidLanguageServer):
|
||||
self.server_ready.set()
|
||||
break
|
||||
|
||||
def do_nothing(params):
|
||||
def do_nothing(params: dict) -> None:
|
||||
return
|
||||
|
||||
def check_server_ready(params):
|
||||
def check_server_ready(params: dict) -> None:
|
||||
"""Handle $/progress notifications from Erlang LS as fallback."""
|
||||
value = params.get("value", {})
|
||||
|
||||
@@ -155,7 +154,7 @@ class ErlangLanguageServer(SolidLanguageServer):
|
||||
}
|
||||
|
||||
self.logger.log("Sending initialize request to Erlang LS", logging.INFO)
|
||||
init_response = self.server.send.initialize(initialize_params)
|
||||
init_response = self.server.send.initialize(initialize_params) # type: ignore[arg-type]
|
||||
|
||||
# Verify server capabilities
|
||||
if "capabilities" in init_response:
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# type: ignore
|
||||
"""
|
||||
Fortran Language Server implementation using fortls.
|
||||
"""
|
||||
@@ -126,7 +125,7 @@ class FortranLanguageServer(SolidLanguageServer):
|
||||
|
||||
# Create modified symbol with corrected selectionRange
|
||||
corrected_symbol = symbol.copy()
|
||||
corrected_symbol["selectionRange"] = new_sel_range
|
||||
corrected_symbol["selectionRange"] = new_sel_range # type: ignore[typeddict-item]
|
||||
|
||||
self.logger.log(
|
||||
f"Fixed fortls selectionRange for {identifier_name}: char {start_char} -> {identifier_start}",
|
||||
@@ -175,7 +174,7 @@ class FortranLanguageServer(SolidLanguageServer):
|
||||
return DocumentSymbols(fixed_root_symbols)
|
||||
|
||||
@staticmethod
|
||||
def _check_fortls_installation():
|
||||
def _check_fortls_installation() -> str:
|
||||
"""Check if fortls is available."""
|
||||
fortls_path = shutil.which("fortls")
|
||||
if fortls_path is None:
|
||||
@@ -256,18 +255,18 @@ class FortranLanguageServer(SolidLanguageServer):
|
||||
}
|
||||
],
|
||||
}
|
||||
return initialize_params
|
||||
return initialize_params # type: ignore[return-value]
|
||||
|
||||
def _start_server(self):
|
||||
def _start_server(self) -> None:
|
||||
"""Start Fortran Language Server process."""
|
||||
|
||||
def window_log_message(msg):
|
||||
def window_log_message(msg: dict) -> None:
|
||||
self.logger.log(f"Fortran LSP: window/logMessage: {msg}", logging.INFO)
|
||||
|
||||
def do_nothing(params):
|
||||
def do_nothing(params: dict) -> None:
|
||||
return
|
||||
|
||||
def register_capability_handler(params):
|
||||
def register_capability_handler(params: dict) -> None:
|
||||
return
|
||||
|
||||
# Register LSP message handlers
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# type: ignore
|
||||
"""
|
||||
Provides Lua specific instantiation of the LanguageServer class using lua-language-server.
|
||||
"""
|
||||
@@ -38,7 +37,7 @@ class LuaLanguageServer(SolidLanguageServer):
|
||||
return super().is_ignored_dirname(dirname) or dirname in [".luarocks", "lua_modules", "node_modules", "build", "dist", ".cache"]
|
||||
|
||||
@staticmethod
|
||||
def _get_lua_ls_path():
|
||||
def _get_lua_ls_path() -> str | None:
|
||||
"""Get the path to lua-language-server executable."""
|
||||
# First check if it's in PATH
|
||||
lua_ls = shutil.which("lua-language-server")
|
||||
@@ -70,7 +69,7 @@ class LuaLanguageServer(SolidLanguageServer):
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def _download_lua_ls():
|
||||
def _download_lua_ls() -> str:
|
||||
"""Download and install lua-language-server if not present."""
|
||||
system = platform.system()
|
||||
machine = platform.machine().lower()
|
||||
@@ -141,7 +140,7 @@ class LuaLanguageServer(SolidLanguageServer):
|
||||
raise RuntimeError("Failed to find lua-language-server executable after extraction")
|
||||
|
||||
@staticmethod
|
||||
def _setup_runtime_dependency():
|
||||
def _setup_runtime_dependency() -> str:
|
||||
"""
|
||||
Check if required Lua runtime dependencies are available.
|
||||
Downloads lua-language-server if not present.
|
||||
@@ -255,18 +254,18 @@ class LuaLanguageServer(SolidLanguageServer):
|
||||
},
|
||||
},
|
||||
}
|
||||
return initialize_params
|
||||
return initialize_params # type: ignore[return-value]
|
||||
|
||||
def _start_server(self):
|
||||
def _start_server(self) -> None:
|
||||
"""Start Lua Language Server process"""
|
||||
|
||||
def register_capability_handler(params):
|
||||
def register_capability_handler(params: dict) -> None:
|
||||
return
|
||||
|
||||
def window_log_message(msg: dict):
|
||||
def window_log_message(msg: dict) -> None:
|
||||
self.logger.log(f"LSP: window/logMessage: {msg}", logging.INFO)
|
||||
|
||||
def do_nothing(params):
|
||||
def do_nothing(params: dict) -> None:
|
||||
return
|
||||
|
||||
self.server.on_request("client/registerCapability", register_capability_handler)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# type: ignore
|
||||
"""
|
||||
Provides Markdown specific instantiation of the LanguageServer class using marksman.
|
||||
Contains various configurations and settings specific to Markdown.
|
||||
@@ -131,9 +130,9 @@ class Marksman(SolidLanguageServer):
|
||||
"documentSymbol": {
|
||||
"dynamicRegistration": True,
|
||||
"hierarchicalDocumentSymbolSupport": True,
|
||||
"symbolKind": {"valueSet": list(range(1, 27))},
|
||||
"symbolKind": {"valueSet": list(range(1, 27))}, # type: ignore[arg-type]
|
||||
},
|
||||
"hover": {"dynamicRegistration": True, "contentFormat": ["markdown", "plaintext"]},
|
||||
"hover": {"dynamicRegistration": True, "contentFormat": ["markdown", "plaintext"]}, # type: ignore[list-item]
|
||||
"codeAction": {"dynamicRegistration": True},
|
||||
},
|
||||
"workspace": {
|
||||
@@ -151,18 +150,18 @@ class Marksman(SolidLanguageServer):
|
||||
}
|
||||
return initialize_params
|
||||
|
||||
def _start_server(self):
|
||||
def _start_server(self) -> None:
|
||||
"""
|
||||
Starts the Marksman Language Server and waits for it to be ready.
|
||||
"""
|
||||
|
||||
def register_capability_handler(_params):
|
||||
def register_capability_handler(_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)
|
||||
|
||||
def do_nothing(_params):
|
||||
def do_nothing(_params: dict) -> None:
|
||||
return
|
||||
|
||||
self.server.on_request("client/registerCapability", register_capability_handler)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# type: ignore
|
||||
"""
|
||||
Provides Ruby specific instantiation of the LanguageServer class using Solargraph.
|
||||
Contains various configurations and settings specific to Ruby.
|
||||
@@ -12,7 +11,6 @@ import re
|
||||
import shutil
|
||||
import subprocess
|
||||
import threading
|
||||
from typing import cast
|
||||
|
||||
from overrides import override
|
||||
|
||||
@@ -136,7 +134,7 @@ class Solargraph(SolidLanguageServer):
|
||||
if bundle_cmd.startswith("bin/"):
|
||||
bundle_full_path = os.path.join(repository_root_path, bundle_cmd)
|
||||
else:
|
||||
bundle_full_path = find_executable_with_extensions(bundle_cmd)
|
||||
bundle_full_path = find_executable_with_extensions(bundle_cmd) # type: ignore[assignment]
|
||||
if bundle_full_path and os.path.exists(bundle_full_path):
|
||||
bundle_path = bundle_full_path if bundle_cmd.startswith("bin/") else bundle_cmd
|
||||
break
|
||||
@@ -284,7 +282,7 @@ class Solargraph(SolidLanguageServer):
|
||||
"rootPath": repository_absolute_path,
|
||||
"rootUri": root_uri,
|
||||
"initializationOptions": {
|
||||
"exclude": exclude_patterns,
|
||||
"exclude": exclude_patterns, # type: ignore[dict-item]
|
||||
},
|
||||
"capabilities": {
|
||||
"workspace": {
|
||||
@@ -293,11 +291,11 @@ class Solargraph(SolidLanguageServer):
|
||||
"textDocument": {
|
||||
"documentSymbol": {
|
||||
"hierarchicalDocumentSymbolSupport": True,
|
||||
"symbolKind": {"valueSet": list(range(1, 27))},
|
||||
"symbolKind": {"valueSet": list(range(1, 27))}, # type: ignore[arg-type]
|
||||
},
|
||||
},
|
||||
},
|
||||
"trace": "verbose",
|
||||
"trace": "verbose", # type: ignore[typeddict-item]
|
||||
"workspaceFolders": [
|
||||
{
|
||||
"uri": root_uri,
|
||||
@@ -305,7 +303,7 @@ class Solargraph(SolidLanguageServer):
|
||||
}
|
||||
],
|
||||
}
|
||||
return cast(InitializeParams, initialize_params)
|
||||
return initialize_params # type: ignore[return-value]
|
||||
|
||||
def _start_server(self) -> None:
|
||||
"""
|
||||
@@ -320,7 +318,7 @@ class Solargraph(SolidLanguageServer):
|
||||
self.resolve_main_method_available.set()
|
||||
return
|
||||
|
||||
def lang_status_handler(params):
|
||||
def lang_status_handler(params: dict) -> None:
|
||||
self.logger.log(f"LSP: language/status: {params}", logging.INFO)
|
||||
if params.get("type") == "ServiceReady" and params.get("message") == "Service is ready.":
|
||||
self.logger.log("Solargraph service is ready.", logging.INFO)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# type: ignore
|
||||
import logging
|
||||
import os
|
||||
import pathlib
|
||||
@@ -63,7 +62,7 @@ class SourceKitLSP(SolidLanguageServer):
|
||||
self.server_ready = threading.Event()
|
||||
self.request_id = 0
|
||||
self._did_sleep_before_requesting_references = False
|
||||
self._initialization_timestamp = None
|
||||
self._initialization_timestamp: float | None = None
|
||||
|
||||
@staticmethod
|
||||
def _get_initialize_params(repository_absolute_path: str) -> InitializeParams:
|
||||
@@ -306,18 +305,18 @@ class SourceKitLSP(SolidLanguageServer):
|
||||
],
|
||||
}
|
||||
|
||||
return initialize_params
|
||||
return initialize_params # type: ignore[return-value]
|
||||
|
||||
def _start_server(self):
|
||||
def _start_server(self) -> None:
|
||||
"""Start sourcekit-lsp server process"""
|
||||
|
||||
def register_capability_handler(_params):
|
||||
def register_capability_handler(_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)
|
||||
|
||||
def do_nothing(_params):
|
||||
def do_nothing(_params: dict) -> None:
|
||||
return
|
||||
|
||||
self.server.on_request("client/registerCapability", register_capability_handler)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# type: ignore
|
||||
"""
|
||||
Provides Zig specific instantiation of the LanguageServer class using ZLS (Zig Language Server).
|
||||
"""
|
||||
@@ -36,7 +35,7 @@ class ZigLanguageServer(SolidLanguageServer):
|
||||
return super().is_ignored_dirname(dirname) or dirname in ["zig-cache", "zig-out", ".zig-cache", "node_modules", "build", "dist"]
|
||||
|
||||
@staticmethod
|
||||
def _get_zig_version():
|
||||
def _get_zig_version() -> str | None:
|
||||
"""Get the installed Zig version or None if not found."""
|
||||
try:
|
||||
result = subprocess.run(["zig", "version"], capture_output=True, text=True, check=False)
|
||||
@@ -47,7 +46,7 @@ class ZigLanguageServer(SolidLanguageServer):
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def _get_zls_version():
|
||||
def _get_zls_version() -> str | None:
|
||||
"""Get the installed ZLS version or None if not found."""
|
||||
try:
|
||||
result = subprocess.run(["zls", "--version"], capture_output=True, text=True, check=False)
|
||||
@@ -58,12 +57,12 @@ class ZigLanguageServer(SolidLanguageServer):
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def _check_zls_installed():
|
||||
def _check_zls_installed() -> bool:
|
||||
"""Check if ZLS is installed in the system."""
|
||||
return shutil.which("zls") is not None
|
||||
|
||||
@staticmethod
|
||||
def _setup_runtime_dependency():
|
||||
def _setup_runtime_dependency() -> bool:
|
||||
"""
|
||||
Check if required Zig runtime dependencies are available.
|
||||
Raises RuntimeError with helpful message if dependencies are missing.
|
||||
@@ -189,18 +188,18 @@ class ZigLanguageServer(SolidLanguageServer):
|
||||
"inlay_hints_hide_redundant_param_names_last_token": False,
|
||||
},
|
||||
}
|
||||
return initialize_params
|
||||
return initialize_params # type: ignore[return-value]
|
||||
|
||||
def _start_server(self):
|
||||
def _start_server(self) -> None:
|
||||
"""Start ZLS server process"""
|
||||
|
||||
def register_capability_handler(params):
|
||||
def register_capability_handler(params: dict) -> 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: dict) -> None:
|
||||
return
|
||||
|
||||
self.server.on_request("client/registerCapability", register_capability_handler)
|
||||
|
||||
Reference in new issue
Block a user