autozimu / LanguageClient-neovim

Language Server Protocol (LSP) support for vim and neovim.
MIT License
3.55k stars 273 forks source link

Re-query on fuzzy search of workspace/symbol? #863

Open YaLTeR opened 5 years ago

YaLTeR commented 5 years ago

Is your feature request related to a problem? Please describe.

I love the ability to narrow down the workspace/symbol search through FZF. However, some language servers such as rust-analyzer don't provide all symbols on empty query for performance and usability reasons.

Describe the solution you'd like

Would it somehow be possible to retain fuzzy-search throughout the input process while also constantly re-querying the language server?

Describe alternatives you've considered

I can use the query parameter explicitly, however this means I don't get fuzzy-search when I type the actual query initially. This means catching a spelling error is really slow for example.

Additional context

I contacted the rust-analyzer devs and they said it's really undesirable to return all results unconditionally on an empty query, and that language clients should re-query while the user is typing.

autozimu commented 5 years ago

That's a very nice to have feature. At the moment though it might be tricky due to the way it is implemented now. FZF expects the results are complete before querying, and it is only invoked when we receive the result list from language server.