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/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 13af5af..05564dc 100755 --- a/binder/postBuild +++ b/binder/postBuild @@ -8,6 +8,7 @@ python3 binder/postBuild """ +import shutil import subprocess import sys from pathlib import Path @@ -42,6 +43,14 @@ _("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 +# (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" +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")