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

implement incomplete completion requests #12214

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pascalkuthe
Copy link
Member

@pascalkuthe pascalkuthe commented Dec 8, 2024

closes #9797 #12044 #12119 #12335

Note that the RA porblem has already been fixed upstream by disabling the corresponding feature for helix and will likely be reverted but after this we have the same feature set as vscode (because it relies on a race condition in vsocde and also in helix although it's slightly more pronounced here)

  • refactors menu/ui so that the filtering is moved to completion menu (since it's the only component using it)
  • refactored lsp infrastructure to ensure consistent request ordering (important for edgecases, probably fixes some other impossible to reproduce bugs)
  • slower completion sources will not block fast completion sources from showing up in the UI (can take a maximum of 100ms longer)
  • split completion handlers across multiple modules
  • significantly improved completion sorting and take server provided sorting into account more strongly (here incomplete completion requests help a lot since they update the serve side sorting on the fly)
  • implement incomplete completion requests

@pascalkuthe pascalkuthe added A-language-server Area: Language server client E-hard Call for participation: Experience needed to fix: Hard / a lot S-waiting-on-review Status: Awaiting review from a maintainer. labels Dec 8, 2024
Copy link
Contributor

@TornaxO7 TornaxO7 left a comment

Choose a reason for hiding this comment

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

Just a smol comment 👀

@@ -426,29 +426,32 @@ impl Client {
let server_tx = self.server_tx.clone();
let id = self.next_request_id();

let params = serde_json::to_value(params);
// it' important this is not part of the future so that it gets
Copy link
Contributor

Choose a reason for hiding this comment

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

are there some words missing or typos?

@pascalkuthe pascalkuthe marked this pull request as draft December 8, 2024 18:22
@pascalkuthe
Copy link
Member Author

pascalkuthe commented Dec 8, 2024

now I remember why I put this off for so long, we need to track the savepoint of each completion provider separately which is not possible with the way prompts work currently. Will try to store that information on the handler instead

ok that worked well enough

@pascalkuthe pascalkuthe force-pushed the incomplete_completion branch from 9a06aea to 06539ac Compare December 8, 2024 20:08
@pascalkuthe pascalkuthe marked this pull request as ready for review December 8, 2024 20:12
erasin added a commit to erasin/helix that referenced this pull request Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-language-server Area: Language server client E-hard Call for participation: Experience needed to fix: Hard / a lot S-waiting-on-review Status: Awaiting review from a maintainer.
Projects
None yet
2 participants