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

Helix does not handle CompletionList::is_incomplete #9797

Open
Feel-ix-343 opened this issue Mar 3, 2024 · 6 comments
Open

Helix does not handle CompletionList::is_incomplete #9797

Feel-ix-343 opened this issue Mar 3, 2024 · 6 comments
Assignees
Labels
A-language-server Area: Language server client C-enhancement Category: Improvements

Comments

@Feel-ix-343
Copy link
Contributor

Summary

My language server moxide frequently uses is_incomplete as it filters the (many thousands) of completions on the server before sending to the client.

As shown in the video, it seems that helix does not respond to is_incomplete (except when the helix lsp client has filtered out all completions). The video compares helix to neovim with nvim-cmp

helixdemo

Reproduction Steps

Install markdown oxide cargo install --git https://github.com/Feel-ix-343/markdown-oxide.git markdown-oxide

Launch helix in a vault of md files; You can test on the same files as I did by cloning the https://github.com/Feel-ix-343/markdown-oxide/tree/main/TestFiles folder and launching from there. You may need to initialize git in that folder after cloning

Helix log

~/.cache/helix/helix.log
please provide a copy of `~/.cache/helix/helix.log` here if possible, you may need to redact some of the lines

Platform

Linux

Terminal Emulator

alacritty

Installation Method

arch linux helix-git

Helix Version

23.10 (cc43e35)

@Feel-ix-343 Feel-ix-343 added the C-bug Category: This is a bug label Mar 3, 2024
@pascalkuthe pascalkuthe added C-enhancement Category: Improvements and removed C-bug Category: This is a bug labels Mar 3, 2024
@pascalkuthe
Copy link
Member

This is jtoa bug but a feature we simply didn't implement yet. It was very hard to do woth the old completion infrastructure. #8021 revamped the infrastructure so it should be possible now but it won't be trivial

@Feel-ix-343
Copy link
Contributor Author

Yea I saw the TODO comment haha when looking through the code

How shall we move forward with this?

@Feel-ix-343 Feel-ix-343 changed the title Helix does not properly handle is_incomplete Helix does not handle CompletionList::is_incomplete Mar 3, 2024
@pascalkuthe
Copy link
Member

well inI definitly want to see it implemented I just haven't been able to find the time to work on it yet. If somebody else puts forward a high quality implementation that would be great otherwise it can take some time

@Feel-ix-343
Copy link
Contributor Author

Feel-ix-343 commented May 26, 2024

I'm working on a real implementation.

I currently have a working version with good design; I will clean it up and make a new PR soon.

@Feel-ix-343
Copy link
Contributor Author

One confusing piece of behavior I ran into was the default completion_trigger_len of 2.

This default is something I have never encountered in nvim-cmp, vscode, jetbrains ... and I wonder if it should be the default?

Of course, I will be happy to instruct that users configure the default to 1 in my language server's repo...

@Feel-ix-343 Feel-ix-343 closed this as completed by moving to Done in Markdown Oxide Status May 28, 2024
@kirawi kirawi reopened this May 28, 2024
@Feel-ix-343
Copy link
Contributor Author

👍

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 C-enhancement Category: Improvements
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants