@@ -83,25 +83,6 @@ def _iter_candidate_servers(self) -> Iterable[Server]:
8383 yield defaults .container
8484 yield defaults .local
8585
86- @asynccontextmanager
87- async def _run_server (
88- self ,
89- ) -> AsyncGenerator [tuple [Server , Receiver [ServerRequest ]]]:
90- async with channel [ServerRequest ].create () as (sender , receiver ):
91- errors : list [ServerRuntimeError ] = []
92- for server in self ._iter_candidate_servers ():
93- try :
94- async with server .run (self ._workspace , sender = sender ) as s : # ty: ignore[invalid-argument-type]
95- yield s , receiver
96- return
97- except ServerRuntimeError as e :
98- logger .debug ("Failed to start server {}: {}" , server , e )
99- errors .append (e )
100-
101- raise ExceptionGroup (
102- f"All servers failed to start for { type (self ).__name__ } " , errors
103- )
104-
10586 @override
10687 def get_workspace (self ) -> Workspace :
10788 return self ._workspace
@@ -243,6 +224,25 @@ async def _exit(self) -> None:
243224
244225 await self .notify (lsp_type .ExitNotification ())
245226
227+ @asynccontextmanager
228+ async def _run_server (
229+ self ,
230+ ) -> AsyncGenerator [tuple [Server , Receiver [ServerRequest ]]]:
231+ async with channel [ServerRequest ].create () as (sender , receiver ):
232+ errors : list [ServerRuntimeError ] = []
233+ for server in self ._iter_candidate_servers ():
234+ try :
235+ async with server .run (self ._workspace , sender = sender ) as s : # ty: ignore[invalid-argument-type]
236+ yield s , receiver
237+ return
238+ except ServerRuntimeError as e :
239+ logger .debug ("Failed to start server {}: {}" , server , e )
240+ errors .append (e )
241+
242+ raise ExceptionGroup (
243+ f"All servers failed to start for { type (self ).__name__ } " , errors
244+ )
245+
246246 @override
247247 @asynccontextmanager
248248 @logger .catch (reraise = True )
@@ -279,7 +279,7 @@ async def __asynccontextmanager__(self) -> AsyncGenerator[Self]:
279279 root_uri = root_uri ,
280280 initialization_options = self .create_initialization_options (),
281281 trace = lsp_type .TraceValue .Verbose ,
282- workspace_folders = self .get_workspace () .to_folders (),
282+ workspace_folders = self ._workspace .to_folders (),
283283 )
284284 )
285285
0 commit comments