From b04332d8f83bf88a96f8fa61e97aef9d6c16f5dc Mon Sep 17 00:00:00 2001 From: krassowski Date: Sun, 24 Oct 2021 13:53:00 +0100 Subject: [PATCH 1/4] Add LSP to the Binder image --- binder/environment.yml | 1 + binder/postBuild | 3 +++ 2 files changed, 4 insertions(+) diff --git a/binder/environment.yml b/binder/environment.yml index 8aa63ef..d354063 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -19,3 +19,4 @@ dependencies: - wheel # additional packages for demos # - ipywidgets + - jupyterlab-lsp diff --git a/binder/postBuild b/binder/postBuild index 13af5af..58f272d 100755 --- a/binder/postBuild +++ b/binder/postBuild @@ -42,6 +42,9 @@ _("jupyter", "server", "extension", "list") # initially list installed extensions to determine if there are any surprises _("jupyter", "labextension", "list") +# install javascript language server for autocompletion and error highlighting +_("jlpm", "add", "javascript-typescript-langserver") + print("JupyterLab with @jupyterlab/plugin-playground is ready to run with:\n") print("\tjupyter lab\n") From 06e1990de3f7e1b2fcd27f82ed14385acc66255d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Krassowski?= <5832902+krassowski@users.noreply.github.com> Date: Wed, 27 Oct 2021 20:40:41 +0100 Subject: [PATCH 2/4] Use new `typescript-language-server` --- binder/postBuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/binder/postBuild b/binder/postBuild index 58f272d..a26f414 100755 --- a/binder/postBuild +++ b/binder/postBuild @@ -43,7 +43,7 @@ _("jupyter", "server", "extension", "list") _("jupyter", "labextension", "list") # install javascript language server for autocompletion and error highlighting -_("jlpm", "add", "javascript-typescript-langserver") +_("jlpm", "add", "typescript-language-server") print("JupyterLab with @jupyterlab/plugin-playground is ready to run with:\n") From 000ac62a1af46c9f0b20a5c3dd5e1dedeb53a1e2 Mon Sep 17 00:00:00 2001 From: krassowski <5832902+krassowski@users.noreply.github.com> Date: Tue, 14 Dec 2021 19:56:03 +0000 Subject: [PATCH 3/4] Enable details-below completer mode --- binder/overrides.json | 5 +++++ binder/postBuild | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 binder/overrides.json diff --git a/binder/overrides.json b/binder/overrides.json new file mode 100644 index 0000000..689883f --- /dev/null +++ b/binder/overrides.json @@ -0,0 +1,5 @@ +{ + "@krassowski/jupyterlab-lsp:completion": { + "layout": "detail-below" + } +} diff --git a/binder/postBuild b/binder/postBuild index a26f414..1e20ac3 100755 --- a/binder/postBuild +++ b/binder/postBuild @@ -8,6 +8,7 @@ python3 binder/postBuild """ +import shutil import subprocess import sys from pathlib import Path @@ -45,6 +46,10 @@ _("jupyter", "labextension", "list") # install javascript language server for autocompletion and error highlighting _("jlpm", "add", "typescript-language-server") +# add overrides for LSP settings +SETTINGS = Path(sys.prefix) / "share/jupyter/lab/settings" +SETTINGS.mkdir(parents=True, exist_ok=True) +shutil.copy2("binder/overrides.json", SETTINGS / "overrides.json") print("JupyterLab with @jupyterlab/plugin-playground is ready to run with:\n") print("\tjupyter lab\n") From c12f66cf368b2f473e1ef482d10d1b0142a4fd3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Krassowski?= <5832902+krassowski@users.noreply.github.com> Date: Sun, 19 Dec 2021 17:18:45 +0000 Subject: [PATCH 4/4] Fix `typescript-language-server` --- binder/postBuild | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/binder/postBuild b/binder/postBuild index 1e20ac3..05564dc 100755 --- a/binder/postBuild +++ b/binder/postBuild @@ -44,7 +44,8 @@ _("jupyter", "server", "extension", "list") _("jupyter", "labextension", "list") # install javascript language server for autocompletion and error highlighting -_("jlpm", "add", "typescript-language-server") +# (typescript-language-server depends on tsutils which requires us to choose typescript version) +_("jlpm", "add", "typescript-language-server", "typescript@4.1") # add overrides for LSP settings SETTINGS = Path(sys.prefix) / "share/jupyter/lab/settings"