Open trungleduc opened 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.
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:
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
intojupyterlab
. 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 thejupyterlab
andjupyterlab-server
projects.jupyterlab-lsp
that handle the language server initialization and communication into a package ofJupyterLab
. I'm working on this step at https://github.com/jupyterlab/jupyterlab/pull/12534jupyterlab-lsp
(jupyter_lsp) into a separated repo, under Jupyter Server organization.jupyterlab_server
will depend onjupyter_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