Skip to content

Commit 370cf1b

Browse files
committed
use specific conf.d names, add extra conf.d config reader for language_servers
1 parent ab0d721 commit 370cf1b

File tree

6 files changed

+30
-2
lines changed

6 files changed

+30
-2
lines changed

.github/workflows/job.test.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,5 +429,7 @@ jobs:
429429
set -eux
430430
jupyter labextension list
431431
jupyter server extension list
432+
jupyter serverextension list
432433
jupyter labextension list 2>&1 | grep -ie "jupyterlab-lsp.*enabled.*ok" -
433434
jupyter server extension list 2>&1 | grep -ie "jupyter_lsp.*enabled" -
435+
jupyter serverextension list 2>&1 | grep -ie "jupyter_lsp.*enabled" -

python_packages/jupyter_lsp/jupyter_lsp/manager.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from typing import Dict, Text, Tuple
66

77
import entrypoints
8+
from jupyter_core.paths import jupyter_config_path
9+
from jupyter_server.services.config import ConfigManager
810
from jupyter_server.transutils import _
911
from traitlets import Bool
1012
from traitlets import Dict as Dict_
@@ -32,6 +34,11 @@
3234
class LanguageServerManager(LanguageServerManagerAPI):
3335
"""Manage language servers"""
3436

37+
conf_d_language_servers = Schema(
38+
validator=LANGUAGE_SERVER_SPEC_MAP,
39+
help=_("extra language server specs, keyed by implementation, from conf.d"),
40+
) # type: KeyedLanguageServerSpecs
41+
3542
language_servers = Schema(
3643
validator=LANGUAGE_SERVER_SPEC_MAP,
3744
help=_("a dict of language server specs, keyed by implementation"),
@@ -72,6 +79,21 @@ def _default_language_servers(self):
7279
def _default_virtual_documents_dir(self):
7380
return os.getenv("JP_LSP_VIRTUAL_DIR", ".virtual_documents")
7481

82+
@default("conf_d_language_servers")
83+
def _default_conf_d_language_servers(self):
84+
language_servers = {} # type: KeyedLanguageServerSpecs
85+
86+
manager = ConfigManager(read_config_path=jupyter_config_path())
87+
88+
for app in ["_", "_notebook_", "_server_"]:
89+
language_servers.update(
90+
**manager.get(f"jupyter{app}config")
91+
.get(self.__class__.__name__, {})
92+
.get("language_servers", {})
93+
)
94+
95+
return language_servers
96+
7597
def __init__(self, **kwargs):
7698
"""Before starting, perform all necessary configuration"""
7799
super().__init__(**kwargs)
@@ -87,6 +109,7 @@ def init_language_servers(self) -> None:
87109

88110
# copy the language servers before anybody monkeys with them
89111
language_servers_from_config = dict(self.language_servers)
112+
language_servers_from_config.update(self.conf_d_language_servers)
90113

91114
if self.autodetect:
92115
language_servers.update(self._autodetect_language_servers())

python_packages/jupyter_lsp/setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
data_files=[
1616
(
1717
"etc/jupyter/jupyter_server_config.d",
18-
["jupyter_lsp/etc/jupyter_server_config.json"],
18+
["jupyter_lsp/etc/jupyter-lsp-jupyter-server.json"],
1919
),
2020
(
2121
"etc/jupyter/jupyter_notebook_config.d",
22-
["jupyter_lsp/etc/jupyter_notebook_config.json"],
22+
["jupyter_lsp/etc/jupyter-lsp-notebook.json"],
2323
),
2424
],
2525
)

setup.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ max-line-length = 88
2020
[mypy-traitlets.*]
2121
ignore_missing_imports = True
2222

23+
[mypy-jupyter_core.*]
24+
ignore_missing_imports = True
25+
2326
[mypy-jupyter_server]
2427
ignore_missing_imports = True
2528

0 commit comments

Comments
 (0)