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

Language server async overhaul #1022

Merged
merged 110 commits into from
Dec 2, 2024

Conversation

micahscopes
Copy link

@micahscopes micahscopes commented Nov 30, 2024

What was wrong?

The tower-lsp based prototype was full of issues. See #979 for details.

This version is way better. In addition to the architecture overhaul, this PR includes a bunch of features and stability fixes.

Changes

  • Big architecture overhaul, switched from tower-lsp to async-lsp
    • much better control over concurrency and event processing order, working around issues described here
    • custom actor implementation supporting lock-free language server state and handlers with thread-local futures
  • Optional stream-based event handling support
  • Multithreaded tracing and logging improvements
  • Debounced, multithreaded diagnostics
  • TCP support; support for multiple clients
  • Organize and prepare server architecture for a variety of LSP features
  • Implement a task queue system for long-running tasks
  • Enhance hover feature to return useful information and documentation
  • Initial work on VSCode extension release pipeline

@micahscopes micahscopes changed the base branch from master to fe-v2 November 30, 2024 03:01
@micahscopes micahscopes force-pushed the language-server-async branch from c6920f9 to 4b6db68 Compare November 30, 2024 03:46
@micahscopes micahscopes force-pushed the language-server-async branch from 4b6db68 to d6efd9a Compare November 30, 2024 03:49
@micahscopes micahscopes force-pushed the language-server-async branch from dce2214 to bbc2abc Compare November 30, 2024 07:10
@micahscopes micahscopes force-pushed the language-server-async branch from bbc2abc to fcf416e Compare November 30, 2024 07:11
Copy link
Collaborator

@sbillig sbillig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new code looks nice! Looking forward to using this.

@sbillig sbillig merged commit cee478f into ethereum:fe-v2 Dec 2, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants