File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -323,7 +323,8 @@ def stop_all(self):
323323 def get_available_servers (self ) -> List [str ]:
324324 """Gibt eine Liste der verfügbaren LSP-Server zurück."""
325325 available = []
326- for lang , config in LSP_SERVERS .items ():
327- if shutil .which (config ["check" ]):
326+ for lang in LSP_SERVERS :
327+ client = LSPClient (lang , self .root_path )
328+ if client .is_available ():
328329 available .append (lang )
329330 return available
Original file line number Diff line number Diff line change 11import unittest
22from unittest .mock import patch
33
4- from features .lsp_client import LSPClient
4+ from features .lsp_client import LSPClient , LSPManager
55
66
77class LSPClientCommandResolutionTests (unittest .TestCase ):
@@ -32,6 +32,19 @@ def test_unavailable_when_no_executable_or_module_exists(self):
3232 self .assertFalse (client .is_available ())
3333 self .assertIsNone (client ._resolve_command ())
3434
35+ def test_available_servers_uses_module_fallback (self ):
36+ manager = LSPManager ()
37+
38+ def mock_which (_ ):
39+ return None
40+
41+ def mock_find_spec (name ):
42+ return object () if name == "pylsp" else None
43+
44+ with patch ("features.lsp_client.shutil.which" , side_effect = mock_which ), \
45+ patch ("features.lsp_client.importlib.util.find_spec" , side_effect = mock_find_spec ):
46+ self .assertEqual (manager .get_available_servers (), ["Python" ])
47+
3548 def test_unknown_language_is_unavailable (self ):
3649 client = LSPClient ("Unknown" )
3750
You can’t perform that action at this time.
0 commit comments