Adds IDE-like code intelligence (autocompletion, navigation, linting) to JupyterLab using the Language Server Protocol.
JupyterLab-LSP is a JupyterLab extension that integrates Language Server Protocol (LSP) support, providing advanced code intelligence features like autocompletion, hover documentation, jump-to-definition, linting, and refactoring directly within Jupyter notebooks and the file editor. It solves the problem of JupyterLab lacking deep, language-aware editing assistance, bridging the gap between interactive computing and full-featured IDE tooling.
Data scientists, researchers, and developers who use JupyterLab for interactive computing and coding in languages like Python, R, Julia, and bash, and want enhanced productivity through IDE-like features without leaving their notebook environment.
Developers choose JupyterLab-LSP because it brings the power of Language Servers—used by editors like VS Code—into JupyterLab, offering multi-language support, kernel-independent completions, and deep code understanding while maintaining seamless integration with the Jupyter ecosystem.
Coding assistance for JupyterLab (code navigation + hover suggestions + linters + autocompletion + rename) using Language Server Protocol
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports dozens of languages via LSP servers, providing hover tooltips, diagnostics, and completions for Python, R, Julia, bash, and more, as shown in the demos and language server table.
Offers static code analysis and suggestions without a running kernel, improving performance and availability, detailed in the 'Kernel-less Autocompletion' section with GIF examples.
Enables rename refactoring across notebooks and files using the F2 shortcut, with visual feedback and context menus, demonstrated in the rename screenshot and features list.
Provides a dedicated panel to view, sort, and filter all code issues, enhancing debugging workflow, as illustrated in the diagnostics panel screenshot and documentation.
Requires installing JupyterLab, the extension, and separate language servers, plus OS-specific steps like symlinks for external file access on Linux/OSX, as outlined in prerequisites and installation.
Server settings must be manually configured via JupyterLab's Advanced Settings Editor or external files, with varying methods per language server, adding maintenance complexity.
Accessing files outside the Jupyter root directory requires a workaround symlink and server flag changes, indicating incomplete integration, as noted in the optional setup section.