Skip to content

Language server async overhaul - #1022

Merged
sbillig merged 110 commits into
argotorg:fe-v2from
micahscopes:language-server-async
Dec 2, 2024
Merged

Language server async overhaul#1022
sbillig merged 110 commits into
argotorg:fe-v2from
micahscopes:language-server-async

Conversation

@micahscopes

@micahscopes micahscopes commented Nov 30, 2024

Copy link
Copy Markdown
Collaborator

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

@sbillig sbillig left a comment

Copy link
Copy Markdown
Collaborator

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 argotorg:fe-v2 Dec 2, 2024
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