-
Notifications
You must be signed in to change notification settings - Fork 9
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
Roadmap #1
Comments
Like the idea of this plugin, I think preview functionality is also useful (show some additional info for the currently selected item). What do you think? |
Another feature request (hope it's okay I'm posting them here): an ability to set initially highlighted item — I'm considering to use quickpick.vim for rendering module outlines and would be nice to start picking from the closest item to the current cursor position in the module. |
Feel free to request anything here. I would be interested to see what others would like to see too. |
The plugin itself is at a very experimental phase so apis will change. If you are relying on day to day do make sure to pin to a commit. |
@andreypopp if you checkout the vnext branch it now supports highlighting. You do need vim with vnext branch is a complete rewrite and is better and includes additional features such as automatic fuzzy match which is opt in by default, automatic debounce which is also opt in by default. Fuzzymatch happens in C which ships with vim so is pretty fast.
I'm in the process of updating my quickpick sources to the new api so should be available in master pretty soon. Unfortunately it does have breaking changes. |
quickpick.vim now support a rich set of features. closing this for now. rest of the features or bugs can be filed separately from now on. |
Here are few things I would like to support in quickpick.vim.
on_change
handler so pickers can implement custom on the fly search useful for npm search and install package.quickpick#exists()
to check if the quickpick with id is available so that we only modify the items if it exists. useful for async pickers.user_data
for items instead of just string to allow pickers to add metadata. Example: User might want to show the description as picker item, but they want to refer by id when clicking accept.on_accept
handler is implement automatically and the pickers don't need to implement it all the time. Unlike filtering/search this doesn't have much impact on perf so it is ok to be in the core. It is opt in so pickers can decided if they want to re-implement.on_selection_change
handler so pickers can implement custom preview. For example it may decide to show the file on preview buffer, change the colorscheme of vim as the selection changes.on_cancel
so users can reset changes. Useful for colorscheme picker when we want users to go back to the original colorscheme after changing.set_busy
so that async pickers can show spinner to make it feel more responsive.set_title
so the picker title can be customized on the flyset_prompt
so the prompt can be customized on the flyset_selected_items
so the items can be marked on the fly.ignore_focus_out
so the picker doesn't close automatically when it focus out.<Plug>
mappings so user can custom bind keys. For now the keys are similar to CtrlP.on_before_open
,on_after_open
. Provides hook to set title/busy indicator if it was hidden and reopened.on_resize
event so the pickers can only send partial data that is required to render the items instead of sending thousands of items. this could be difficult to solve as we also need to track where we are. This is similar to virtualization of lists that we see very common on the web. - https://github.com/bvaughn/react-virtualizedappend_items
api which allows the pickers to stream data to the picker so the picker doesn't need to keep sending data that it already sent before. Makes it less chatty if someone implements picker using jobs.get_status
to check the status of the picker best of the id. Useful for async when you don't want to callset_items
if the picker is already closed.Pickers to demonstrate proof of concept:
If anyone has more suggestions feel to add comments here.
The text was updated successfully, but these errors were encountered: