jupyterlab / frontends-team-compass

A repository for team interaction, syncing, and handling meeting notes across the JupyterLab ecosystem.
https://jupyterlab-team-compass.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
59 stars 30 forks source link

Integrating `jupyterlab-lsp` into `jupyterlab` #148

Open trungleduc opened 2 years ago

trungleduc commented 2 years ago

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 https://github.com/jupyterlab/jupyterlab/pull/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 https://github.com/jupyterlab/team-compass/issues/67

welcome[bot] commented 2 years ago

Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! :hugs:
If you haven't done so already, check out Jupyter's Code of Conduct. Also, please try to follow the issue template as it helps other other community members to contribute more effectively. welcome You can meet the other Jovyans by joining our Discourse forum. There is also an intro thread there where you can stop by and say Hi! :wave:
Welcome to the Jupyter community! :tada: