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

Async no cache flicker #1471

Merged
merged 9 commits into from
Jun 12, 2024
Merged

Async no cache flicker #1471

merged 9 commits into from
Jun 12, 2024

Conversation

dgutov
Copy link
Member

@dgutov dgutov commented May 14, 2024

  • Internal handling of input interruption with throw-catch that ensures completion is not aborted.
  • An interface to opt into while-no-input for company-capf which reuses the mechanism.
  • As an semi-private feature, the completion table can just (throw 'interrupted 'new-input) instead, if it detects new input using its own methods.

I suppose the main thing left to decide is whether while-no-input should be opt-in or opt-out for the capf backend.

EDIT: just opt-out: see NEWS.

Employ the scheme previously devised by lsp-mode folks: keep the old list of
completions (setting it to nil is what created the flicker) but updated the
prefix.

This is for "continue" case, of course. begin-new should still fail.

#1468
The change in company-point setting will help when the condition for
non-essential changes from "not explicit-action" to "not explicit-action now".
@dgutov
Copy link
Member Author

dgutov commented May 27, 2024

@yyoncho @kiennq I think you might be interested in this too, we discussed this kind of solution back in emacs-lsp/lsp-mode#1894, and this moves the same approach inside company-mode.

@dgutov dgutov merged commit 24c8043 into master Jun 12, 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.

None yet

2 participants