PyrightServer: Refactor to use DependencyProvider

This commit is contained in:
Dominik Jain authored and Dominik Jain committed 2026-01-14 02:30:48 +01:00
1 parent 9560ee651d
commit 941f4ea253
1 file changed
+12 -4
@@ -10,11 +10,9 @@ import threading
from typing import cast
from overrides import override
from solidlsp.ls import SolidLanguageServer
from solidlsp.ls import LanguageServerDependencyProvider, LanguageServerDependencyProviderSinglePath, SolidLanguageServer
from solidlsp.ls_config import LanguageServerConfig
from solidlsp.lsp_protocol_handler.lsp_types import InitializeParams
from solidlsp.lsp_protocol_handler.server import ProcessLaunchInfo
from solidlsp.settings import SolidLSPSettings
log = logging.getLogger(__name__)
@@ -34,7 +32,7 @@ class PyrightServer(SolidLanguageServer):
super().__init__(
config,
repository_root_path,
ProcessLaunchInfo(cmd="python -m pyright.langserver --stdio", cwd=repository_root_path),
None,
"python",
solidlsp_settings,
)
@@ -43,6 +41,16 @@ class PyrightServer(SolidLanguageServer):
self.analysis_complete = threading.Event()
self.found_source_files = False
def _create_dependency_provider(self) -> LanguageServerDependencyProvider:
return self.DependencyProvider(self._custom_settings, self._ls_resources_dir)
class DependencyProvider(LanguageServerDependencyProviderSinglePath):
def _get_or_install_core_dependency(self) -> str:
return "python"
def _create_launch_command(self, core_path: str) -> list[str]:
return [core_path, "-m", "pyright.langserver", "--stdio"]
@override
def is_ignored_dirname(self, dirname: str) -> bool:
return super().is_ignored_dirname(dirname) or dirname in ["venv", "__pycache__"]