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

SCIP based Language Server & extension for VS Code #60959

Open
guw opened this issue Mar 8, 2024 · 2 comments
Open

SCIP based Language Server & extension for VS Code #60959

guw opened this issue Mar 8, 2024 · 2 comments
Labels
customer Important issues reported or desired by a customer. feature-request team/graph Graph Team (previously Code Intel/Language Tools/Language Platform)

Comments

@guw
Copy link

guw commented Mar 8, 2024

Feature request description

I think it would be nice to have a VS Code extension and a Language Server based on SCIP, which provides typical IDE editing functions such as:

  • Code completion
  • Code/Source actions / Refactoring
  • doc hovers
  • Type search
  • Code outline
  • Code navigation
  • Call Hierarchy
  • Type Hierarchy
  • Code lens (references/implementations)

Additional interesting functions (but which probably require language specific parsers/handlers)

  • Code folding
  • Code formatting (on-type/selection/file)
  • Code snippets

Is your feature request related to a problem? If so, please describe.

In very large Java code bases it's easy to trigger scaling issues in any IDE. For example, when the Java classpath is significant size for IntelliJ and Eclipse to handle. There are thousands of components/modules/projects and seldomly everything needs to be setup fully within an IDE. However, all IDEs require a full classpath for most of the features to work correctly.

We recently invested into extending the VS Code Java language support to make it compatible with Bazel. It works ok but shows the scaling problems in large code bases.

https://github.com/salesforce/bazel-vscode-java/
https://github.com/salesforce/bazel-eclipse/

The idea of having a SCIP based LS in VS Code should solve the following problems:

  • don't need full classpath setup
  • reduce setup time (less initial indexing)
  • discoverability (easier to find code that's not set up)

Ideally a SCIP based IDE integration would work with:

  • indexes provided/hosted by a central SourceGraph installation (this needs details how to make that version safe)
  • indexes available in Bazel remote cache (produced by some CI system)
  • indexes built locally (eg., in a local feature branch)
  • indexes built in memory based on modifications to source files not saved to disk yet
@guw guw changed the title SCIP bases Language Server & extension for VS Code SCIP based Language Server & extension for VS Code Mar 20, 2024
@guw
Copy link
Author

guw commented Apr 8, 2024

@varungandhi-src Thanks for cross-linking the issue. Is there interest in collaborating on a LS extension? We are a SourceGraph customer and I am interested in chatting with you folks about it.

@mmanela
Copy link
Contributor

mmanela commented Apr 22, 2024

Thanks for filing the issue. Building a SCIP based language server is a fascinating idea. While this is not an area we can actively invest in, we do have changes planned that may help with it. We are working on building stronger SCIP oriented apis that may help in building a language server. We are also happy to consult and answer questions if this is a project you want to move forward with.

@varungandhi-src varungandhi-src added customer Important issues reported or desired by a customer. feature-request team/graph Graph Team (previously Code Intel/Language Tools/Language Platform) labels Apr 24, 2024 — with Linear
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
customer Important issues reported or desired by a customer. feature-request team/graph Graph Team (previously Code Intel/Language Tools/Language Platform)
Projects
None yet
Development

No branches or pull requests

3 participants