Welcome to fzfx.nvim Discussions! #24
Replies: 2 comments 4 replies
-
Hi i wanted to ask a few questions regarding the technical impl. of the plugin. Looking at the implementation i could see that for the provider decorators and previewers we are using separate standalone nvim instances to run the tasks that a provider or previewer would do (e.g. like the icons decorator / transformer, and write to the providers results pipe), in a non-blocking manner, parallel to the main nvim instance, leaving the main instance responsive while fzf is fed the data from the pipes. Which is great, however having this information i am wondering why are some (lsp_references) pickers, fetching results wiht buf_sync, i am often working with code bases where references would return a ton (2k +) results and the server is slow enough as it is already, the fzfx ui opened, but it is blocking until the server responds, would it not be better to have those lsp providers be using the async versions of client.request ? In general the non-blocking nature of the decorators could also be extended to more than just generating the lines with icons i imagine ? Could we have most of the heavy processing / transformations (per a line) be moved as provider decorators, are there any limitations ? Taking lsp_refernces as an example, instead of using the main nvim instance to traverse the result table, and do most of the transformation in there, could we not pass each reference entry to a decorator to process it, instead of doing the bulk of the work in the main nvim instance first ? |
Beta Was this translation helpful? Give feedback.
-
@linrongbin16 thanks, sound really good. Have you considered instead of coroutines the following approach for achieving totally independent provider, that is not going to run on the main nvim instance
|
Beta Was this translation helpful? Give feedback.
-
👋 Welcome!
We’re using Discussions as a place to connect with other members of our community. We hope that you:
build together 💪.
To get started, comment below with an introduction of yourself and tell us about what you do with this community.
Beta Was this translation helpful? Give feedback.
All reactions