Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LSP support to 3rd-parties #21964

Closed
karthiknadig opened this issue Sep 11, 2023 · 3 comments
Closed

LSP support to 3rd-parties #21964

karthiknadig opened this issue Sep 11, 2023 · 3 comments
Assignees
Labels
feature-request Request for new features or functionality needs PR Ready to be worked on

Comments

@karthiknadig
Copy link
Member

No description provided.

@karthiknadig karthiknadig added feature-request Request for new features or functionality needs PR Ready to be worked on labels Sep 11, 2023
@karthiknadig karthiknadig self-assigned this Sep 11, 2023
@karthiknadig karthiknadig added this to the September 2023 milestone Sep 11, 2023
@brettcannon brettcannon modified the milestones: November 2023, December 2023 Nov 27, 2023
@joaomoreno joaomoreno removed this from the December 2023 milestone Dec 11, 2023
@github-actions github-actions bot removed the needs PR Ready to be worked on label Jan 18, 2024
@karthiknadig karthiknadig added the needs PR Ready to be worked on label Jan 18, 2024
@trinhanhngoc
Copy link

Hello @karthiknadig ,

I am a bit curious about this issue. Does it mean that the Python extension will allow using other contributed language servers besides Jedi and Pylance?

@karthiknadig
Copy link
Member Author

@trinhanhngoc This was to provide support tools using the following products:

  1. This code generator for LSP types in various languages: https://github.com/microsoft/lsprotocol . This was to standardize and make it easier for Server implementers to ingest changes to LSP specification.
  2. LSP types packages for various languages. These are concrete packages that we publish that LSP implementers can depend on
  3. Template for VS extension for python based tools: https://github.com/microsoft/vscode-python-tools-extension-template . This template allows you to create an extension for VS Code, with tools running in python.

With the above three things, you could contribute a Language Server of your own. You can turn off the ones that are shipped with python extension ("python.languageServer" : "None"), and run one of your own. Note that this was never something that was blocked. The only thing the above 3 things did was to make it lot easier to create LSP based VS code extensions (see Ruff Extension a 3rd party Linting and formatting extension based on Ruff). The Jedi language server that we use is also based on the above packages (jedi-language-server)

If you want to create your own server and would like to use our template here is a video (live stream) where I show how to do it:

All of this was meant to be is a quick starting point to and move the interesting part of LSP development into Python or Rust.

@trinhanhngoc
Copy link

@karthiknadig , Many thanks for the detailed explanation.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 26, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature-request Request for new features or functionality needs PR Ready to be worked on
Projects
None yet
Development

No branches or pull requests

4 participants