Skip to content

Integrating jupyterlab-lsp into jupyterlab #148

Open
@trungleduc

Description

@trungleduc

Problem

The language server protocol support for JupyterLab is currently provided by the jupyterlab-lsp extension. While this mono repo offers a complete package with a lot of features, it's not easy for JupyterLab core or other external extensions to use or extend LSP features. For example, Kite Autocomplete Extension for JupyterLab needs to vendor a lot of components from jupyterlab-lsp to communicate with their completion engine over LSP.

I've been talking with @bollwyvl, @krassowski, @SylvainCorlay, and @afshin about the technical plan for integrating some core features of jupyterlab-lsp into jupyterlab. After the last meeting on 22 Avril, we came up with the following plan:

Proposed Solution

Since jupyterlab-lsp is a mono repo containing both frontend and backend extensions, we need to extract some core components and move them to the jupyterlab and jupyterlab-server projects.

  1. Move the frontend components of jupyterlab-lsp that handle the language server initialization and communication into a package of JupyterLab. I'm working on this step at Integrate jupyterlab-lsp into jupyterlab jupyterlab#12534
  2. Move the backend extension of jupyterlab-lsp (jupyter_lsp) into a separated repo, under Jupyter Server organization. jupyterlab_server will depend on jupyter_lsp for the LSP handlers on the backend.

Next step

Once the infrastructure for handling and communicating with language servers is landed into jupyterlab, frontend features like code completion, code refactoring, or jump to... will be added progressively.

Additional context

Previous discussion #67

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions