Skip to content

Commit 2695d98

Browse files
committed
feat: allow literal server arg
1 parent b80d229 commit 2695d98

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/lsp_client/client/abc.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from collections.abc import AsyncGenerator, Iterable
66
from contextlib import asynccontextmanager
77
from pathlib import Path
8-
from typing import Any, Self, override
8+
from typing import Any, Literal, Self, override
99

1010
import anyio
1111
import asyncer
@@ -50,7 +50,9 @@ class Client(
5050
AsyncContextManagerMixin,
5151
ABC,
5252
):
53-
_server_arg: Server | None = field(alias="server", default=None)
53+
_server_arg: Server | Literal["container", "local"] | None = field(
54+
alias="server", default=None
55+
)
5456
_workspace_arg: RawWorkspace = field(alias="workspace", factory=Path.cwd)
5557

5658
sync_file: bool = True
@@ -68,9 +70,16 @@ def _iter_candidate_servers(self) -> Iterable[Server]:
6870
3. Local server (maybe with auto-installation)
6971
"""
7072

71-
if self._server_arg:
72-
yield self._server_arg
7373
defaults = self.create_default_servers()
74+
75+
match self._server_arg:
76+
case "container":
77+
yield defaults.container
78+
case "local":
79+
yield defaults.local
80+
case Server() as server:
81+
yield server
82+
7483
yield defaults.container
7584
yield defaults.local
7685

0 commit comments

Comments
 (0)