Releases: jupyter-lsp/jupyterlab-lsp
v3.6.0
This release adds support for translations and the new community-maintained fork of pyls: python-lsp-server as well as multiple bug fixes. We also updated our documentation fixing rendering, making it more readable and adding a section on kernel requirements when using custom LSP servers in notebook. Special shout-out to the new contributors: @JessicaBarh, @marimeireles, @stonebig and @maresb.
To upgrade to this release:
-
Make sure your JupyterLab version is 3.0.x
-
Update the extension:
pip install jupyterlab-lsp==3.6.0 jupyter-lsp==1.2.0 # or, for conda: # > Please note that conda packages may take a day or two since release before becoming available! # conda install -c conda-forge jupyterlab-lsp=3.6.0 jupyter-lsp=1.2.0
-
Note:
- If installing this extension for the first time, please read the full installation instructions as language servers of your choice need to be installed too, and additional configuration can make your experience smoother.
- If you wish to use a recent
jedi-language-serverorpython-lsp-server, please make sure to upgrade IPython to 7.20. - If you wish to migrate to
python-lsp-server(which is encouraged), please start by uninstallingpython-language-serverand only then installpython-lsp-server; you may also need to replacepylsoccurrences withpylspin settings if you modified any.
Changelog:
-
features:
- added translation support (#557, thanks @JessicaBarh)
- add support for python-lsp-server, a community fork of pyls (#584 and #582, thanks @maresb)
-
bug fixes:
v3.5.0
This release provides notable improvements and bug fixes to the completion feature and handling of IPython magics:
%%bigqueryIPython cell magic is now supported- detail information about the completion is now shown instead of the type by default; if no detail is available, then type or source ("Kernel" for kernel completions) is shown instead

- new settings are available for completer:
caseSensitive: you can make matching of completions case-insensitive by setting it tofalseincludePerfectMatches: you can ask completer not to include perfect matches by setting it tofalselabelExtra: you can revert to old behaviour of showing the type next to the label, or change it to showing source, or only detail.

- for extension developers:
RegExpForeignCodeExtractor'sextract_to_foreignwas split intoforeign_capture_groupsandforeign_replacer- minimal functional extractor and code overrides APIs are now exported; these APIs can be subject to change in future releases
- the completions code was refactored to make it possible to support integration with other completion providers in the future
To upgrade to this release:
-
Make sure your JupyterLab version is 3.0.x
-
Update the extension:
pip install jupyterlab-lsp==3.5.0 jupyter-lsp==1.1.3 # or, for conda: # > Please note that conda packages may take a day or two since release before becoming available! # conda install -c conda-forge jupyterlab-lsp=3.5.0 jupyter-lsp=1.1.3
-
Note:
- If installing this extension for the first time, please read the full installation instructions as language servers of your choice need to be installed too, and additional configuration can make your experience smoother.
- If you wish to use a recent
jedi-language-server(versions 0.22+) please make sure to upgrade IPython to 7.20 to avoid this issue.
Changelog:
-
features:
- adds
%%bigqueryIPython cell magic support for BigQuery (#553, thanks @julioyildo) - completions filtering can be set to case-insensitive in settings (#549)
- completions filtering can hide exact matches (#549)
- the extra information displayed next to the completion label now can include 'detail' (usually module/package of origin), and can be customized in settings (#549)
- adds
-
bug fixes:
-
for extension authors:
- minimal functional extractor and code overrides APIs are now exported; these APIs can be subject to change in future releases (#562)
v2.1.4
This is a bugfix-only release for the older version of JupyterLab 2.2.x. We recommend upgrading to JupyterLab 3.0.x and extension 3.x to benefit from the improvements made in the 3.x releases.
To upgrade to this release:
-
Make sure your JupyterLab version is 2.2 (for JupyterLab 3.0 please use the never extension versioned 3.x)
-
Install/update LSP packages:
jupyter labextension install @krassowski/[email protected]Changelog:
bug fixes:
v3.4.1
This release fixes an issue with installation from source (via JupyterLab Extension Manager or jupyter labextension install) failing to build when jupyterlab-classic was not installed. The installation using pip or conda is recommended over source installations.
To learn more about precious changes introduced in version 3.4, or to see the recommended installation instructions please see: v3.4.0
Changelog:
-
bug fixes:
- fixed installation of the source version of the extension (causing build error if classic was not installed) (#526)
v3.4.0
This release provides notable improvements and bug fixes to the completer (sorting, completion in strings, rendering of markdown documentation) and to the diagnostics panel (when foreign documents like %%R, or %%sql cells are used). The long paths in the status popover will not be collapsed to prevent it from spanning a large portion of the screen; you can get the full path by hovering over the collapsed path. The ambiguous suppressInvokeIn setting was replaced by suppressContinuousHintingIn and suppressTriggerCharacterIn settings; if you customized it before please update the settings accordingly.
To upgrade to this release:
-
Make sure your JupyterLab version is 3.0.x
-
Update the extension:
pip install jupyterlab-lsp==3.4.0 jupyter-lsp==1.1.3 # or, for conda: # > Please note that conda packages may take a day or two since release before becoming available! # conda install -c conda-forge jupyterlab-lsp=3.4.0 jupyter-lsp=1.1.3
-
Note:
- If installing this extension for the first time, please read the full installation instructions as language servers of your choice need to be installed too, and additional configuration can make your experience smoother.
- If you wish to use a recent
jedi-language-server(versions 0.22+) please make sure to upgrade IPython to 7.20 to avoid this issue.
Changelog:
-
features:
- the priority of the completions from kernel can now be changed by switching new
kernelCompletionsFirstsetting (#520) - completer panel will now always render markdown documentation if available (#520)
- the implementation re-renders the panel as it is the best we can do until jupyterlab#9663 is merged
- the completer now uses
filterTextandsortTextif available to better filter and sort completions (#520, #523) - completer
suppressInvokeInsetting was removed;suppressContinuousHintingInandsuppressTriggerCharacterInsettings were added (#521) suppressContinuousHintingInby default includesdefto improve the experience when writing function names (#521)- long file paths are now collapsed if composed of more than two segments to avoid status popover and diagnostics panel getting too wide (#524)
- the priority of the completions from kernel can now be changed by switching new
-
bug fixes:
- user-invoked completion in strings works again (#521)
- completer documentation will now consistently show up after filtering the completion items (#520)
- completions containing HTML-like syntax will be displayed properly (an upstream issue) (#520, #523)
- diagnostics panel will no longer break when foreign documents (e.g.
%%Rcell magics) are removed (#522)
v3.3.1
This release improves the completer and signature behaviour on focus loss and brings other UX improvements to the completer behaviour (see the changelog notes below). With jupyter-lsp 1.1.3, the JupyterHub/Binder users should no longer be required to switch to to jupyter_server to get this extension working.
To upgrade to this release:
-
Make sure your JupyterLab version is 3.0.x
-
Update the extension:
pip install jupyterlab-lsp==3.3.1 jupyter-lsp==1.1.3 # or, for conda: # > Please note that conda packages may take a day or two since release before becoming available! # conda install -c conda-forge jupyterlab-lsp=3.3.1 jupyter-lsp=1.1.3
-
Note:
- If installing this extension for the first time, please read the full installation instructions as language servers of your choice need to be installed too, and additional configuration can make your experience smoother.
- If you wish to use a recent
jedi-language-server(versions 0.22+) please make sure to upgrade IPython to 7.20 to avoid this issue.
Changelog:
-
bug fixes:
- completion and signature suggestions get invalidated when editor changes (#507)
- signature suggestions now invalidate on cursor move to another line or backwards too (#507)
- LaTeX is now rendered in documentation panel of completer (#506)
- completion response returned as plain text use pre tag to retain whitespace formatting (#506)
- pre-formatted code font size was reduced to match font-size of the text in completion panel (#506)
- completer no longer spans the entire screen if it has long entries (#506)
- add config for the classic notebook server extension (#504)
v2.1.3
This is a bugfix-only release for the older version of JupyterLab 2.2.x. We recommend upgrading to JupyterLab 3.0.x and extension 3.x to benefit from the improvements made in the 3.x releases. Many thanks to @jtpio for backporting the changes and driving this release.
To upgrade to this release:
-
Make sure your JupyterLab version is 2.2 (for JupyterLab 3.0 please use the never extension versioned 3.x)
-
Install/update LSP packages:
pip install jupyter-lsp==0.9.3
jupyter labextension install @krassowski/[email protected]Changelog:
bug fixes:
v3.3.0
This release improves overall speed and experience of the completer, including new configuration options and bug fixes, notably a major stability fix Windows.
To upgrade to this release:
-
Make sure your JupyterLab version is 3.0.x and uses
jupyter_server(if you use JupyterHub, please see this comment) -
Update the extension:
pip install jupyterlab-lsp==3.3.0 jupyter-lsp==1.1.2 # or, for conda: # > Please note that conda packages may take a day or two since release before becoming available! # conda install -c conda-forge jupyterlab-lsp=3.3.0 jupyter-lsp=1.1.2
-
Note:
- If upgrading from 2.x version, please carefully follow the 3.0 release upgrading instructions; JupyterHub users, please note the additional steps needed to enable
jupyter_server - If installing this extension for the first time, please read the full installation instructions as language servers of your choice need to be installed too, and additional configuration can make your experience smoother.
- If you wish to use a recent
jedi-language-server(versions 0.22+) please make sure to upgrade IPython to 7.20 to avoid this issue.
Changelog:
-
features:
-
bug fixes:
- fixed issues with language server messages being truncated in certain circumstances on Windows (#494, thanks @dpriedel)
- delayed completion suggestions will no longer show up if cursor moved to another line (#496)
- changes in notebooks after kernel restart or file rename will now be recorded by the language server again (#496)
- when either of kernel providers: kernel or LSP server fails, the completion from the other will still be shown (#496)
v3.2.0
This release brings support for documentation panel for more languages (including R and javscript/typescript) and multiple bug fixes.
To upgrade to this release:
-
Make sure your JupyterLab version is 3.0.x and uses
jupyter_server(if you use JupyterHub, please see this comment) -
Update the extension:
pip install jupyterlab-lsp==3.2.0 jupyter-lsp==1.1.1 # or, for conda: # > Please note that conda packages may take a day or two since release before becoming available! # conda install -c conda-forge jupyterlab-lsp=3.2.0 jupyter-lsp=1.1.1
-
Note the following:
- If you are upgrading from 2.x version, please carefully follow the 3.0 release upgrading instructions; JupyterHub users, please note the additional steps needed to enable
jupyter_server - If you are installing this extension for the first time, please read the full installation instructions as language servers of your choice need to be installed too, and additional configuration can make your experience smoother.
- If you wish to use
jedi-language-server, please use the 0.21 version as the newer 0.22 (released just 4 days ago) transitioned to a new Jedi version which is not yet supported by IPython. You may ignore this warning if you work with a custom Python kernel that does not use on Jedi.
Changelog:
-
features:
-
bug fixes:
- diagnostics panel works after kernel restart properly (#485)
- workaround was added to enable
jedi-language-serverdiagnostics (#485) - Julia language server will not crash when saving a non-Julia file: fixed sendSaved notification scope (#491)
PythonModuleSpecno longer raises exception when the server module does not exist (#485)
v3.1.0
This release brings many bug fixes as well as new experimental features:
- experimental support for
jupyterlab-classic, - experimental support for Julia server,
LanguageServer.jl, - experimental support for
jedi-language-server(please use version 0.21 and uninstall pyls).
To upgrade to this release:
-
JupyterHub users: please see https://github.com/krassowski/jupyterlab-lsp/issues/375#issuecomment-761078622
-
Make sure your JupyterLab version is 3.0.x and uses
jupyter_server -
Update the extension:
pip install jupyterlab-lsp==3.1.0 jupyter-lsp==1.1.0 # or, for conda: # > Please note that conda packages may take a day or two since release before becoming available! # conda install -c conda-forge jupyterlab-lsp=3.1.0 jupyter-lsp=1.1.0
-
Note the following:
- If you are upgrading from 2.x version, please carefully follow the 3.0 release upgrading instructions; JupyterHub users, please note the additional steps needed to enable
jupyter_server - If you are installing this extension for the first time, please read the full installation instructions as language servers of your choice need to be installed too, and additional configuration can make your experience smoother.
- If you wish to use
jedi-language-server, please use the 0.21 version as the newer 0.22 (released just 4 days ago) transitioned to a new Jedi version which is not yet supported by IPython. You may ignore this warning if you work with a custom Python kernel that does not use on Jedi.
Changelog extract:
-
features
- compatibility with
jupyterlab-classic- experimental, not all features are functional yet (#465) - new status "Server extension missing" and a dialog with advice was added to help users with atypical configurations (#476)
- for developers: the verbosity of console logs is now controllable from settings and set to warn by default (#480)
- added experimental detection of Julia and Jedi language servers (#481)
- compatibility with
-
bug fixes:
- namespace completions in R (after double and triple colon) now work properly (#449)
- improved status icon contrast when status item is active (#465)
- connection manager now properly keeps track of notebooks when multiple notebooks are open (#474)
- new cells added after kernel restart now work properly; kernel changes are handled correctly (#478)
- increase total timeout for language server connection (#479)
- fix status communication during initialization (#479)
- send periodic pings on websocket channels to maintain connection (#459, thanks @franckchen)
- R languageserver is no longer incorrectly shown as available when not installed (#463)
- fix completion of very large namespaces (e.g. in R's base or in JavaScript) due to truncated message relay (#477)