GithubHelp home page GithubHelp logo

jagua / quickpick.vim Goto Github PK

View Code? Open in Web Editor NEW

This project forked from prabirshrestha/quickpick.vim

0.0 1.0 0.0 22 KB

experimental quick picker for vim

License: MIT License

Vim Script 100.00%

quickpick.vim's Introduction

quickpick.vim

A UI for Vim to let the user pick an item from a list similar to CtrlP.

This repo is heavily based of probe without which quickpick.vim wouldn't be possible. The api's are influenced by VSCode QuickPick api.

NPM Picker

Colorscheme Picker

Pickers

quickpick.vim deliberately does not contain any sources as this allows the core to be very small and focus on providing the best and fast apis for other to use it.

in alphabetical order

Source Links
Colorschemes quickpick-colorschemes.vim
Filetypes quickpick-filetypes.vim
NPM quickpick-npm.vim

Can't find what you are looking for? Write one instead an send a PR to be included here or search github topics tagged with quickpickvim at https://github.com/topics/quickpickvim.

Roadmap

It is very much work in progress so features are currently limited. The goal is the provide the best apis and be the ultimiate picker UI for me that works on both vim8 and neovim and is very fast, non-blocking and allows me to replace CtrlP, vim-fz and fzf. Refer to prabirshrestha#1 for more details.

Why?

A picker should be able to scale from just a few list items (colorscheme, filetypes) to hundreds (files) and thousands (npm packages) of items. We shouldn't be needing multiple UI plugins to handle this case. In order to be fast we need to do minimal work in the UI thread hence it doesn't support any sort of fuzzy search or even a simple string contains search. So, how can an end user using quickpick be productive? Well, how do you search the internet? Do you run a fuzzzy search after google returns a result? NO. You let google do the search and then the browser displays html text. If you don't see it in the first few results you change the query just by typing more characters and let google do its job again. We do the same in quickpick. Let the pickers do the heavy lifting of searching however they want. If the picker wants to using neovim remote plugins or vim job to start a new process, let it do. If your vim has python support pickers might even want to inline python code and use multi-threading without proess overhead, let it do. And if it still doesn't have those capabilities let it fallback to defsult vim script implementation. quickpick.vim is just the UI layer. It is up to the different pickers to implement their own algorithm or tricks to make it fast. Let the battle for the best picker sources begin.

[WIP] In the meantime feel free to read some of my thoughts at vim/vim#3573 (comment) and make sure to give a thumbs up if you would like to official see vim support some kind of apis for picking item for a list.

quickpick.vim's People

Contributors

liquidz avatar prabirshrestha avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.