- Add
dumb_jumpprovider, which will fall back to the normal grep way when the regexp approach fails. #659
- Move
stdio_servercrate into a module ofmaple_clicrate for reusing the utilities inmaple_clieasily.
- Add user autocmd
ClapOnInitialize, can be used to ignore some buffers when opening clap. #653 - Add
g:clap_provider_colors_ignore_defaultto ignore the default colors inVIMRUNTIME. #632 - Support neovim floating_win based action menu. #655
- Truncate the lines of
grepprovider. #650 - Support unordered substring query. #652
- Add
hi default link ClapIndicator ClapInputfor the default theme.
- Cannot open files with pipe in file path. #643
- Fix the grep preview when
g:clap_enable_iconis enabled andg:clap_provider_grep_enable_iconis disabled. #648 - Reset the old selections when the input changes. #646
- Make customize the icon easier. #392
- Remove some colors close the white color in the default value of
g:clap_fuzzy_match_hl_groups.
- Add
g:clap_force_matchfuzzyto use the builtinmatchfuzzy()when filtering in sync way. #607 - Add
g:clap_force_pythonto always use the Python sync filter as some improvements are only implemented on the Rust side and you need the Python dynamic module to use that. #614 - Support
+name-onlyfor Lua sync filter. #612 - Add
g:ClapProviderHistoryCustomFilterfor customizing the source ofhistoryprovider. #615 - Add a bonus for the match in the filename when the source item is a path, but you can only have this when you are using Python dynamic module or the Rust backend. #614.
- Add a bonus for the files you opened since you enter vim. #622
- Add async preview support for
help_tagsprovider, the Rust binary is required. #630 Add(Seeg:clap_always_open_previewto open the preview always if the provider implson_move_asyncg:clap_open_preview), it's on by the default which changes the behavior before. #625- Add
g:clap_preview_directionfor opening the preview window on the right of the display window, and the default behavior has been changed toLRif your screen'scolumnsis less than 80. #634 - Add
g:clap_open_previewto control the opening of preview window, you can set it toneverto fully disable the preview feature. #636
- Add
--color=neverto the default grep option. #609 - Show create new file entry when in empty directory. #624
- Introduce
MatchTextfor passing more match context easier later. #626
- Add
g:clap_enable_background_shadowto render a transparent shadow (neovim-only) #546, #550 - Add
g:clap_popup_move_managerso that Vim users can override the default mappings easily. #536 - Allow user to always download the prebuilt binary. #531
- Support smartcase fitlering for fzy algo and it's the default behavior. #541 @romgrk
- Add initial support for fzy lua, neovim-nightly or vim compiled with lua is required. #599
- Add the providers defined via global variable into the
providersprovider, which means you can see the global variable type providers when you call:Clapnow. But you have to definedescriptionexplicitly otherwise they won't be found. #605let g:clap_provider_tasks = { \ 'source': function('TaskListSource'), \ 'sink': function('TaskListSink'), \ 'description': 'List various tasks', \ }
- Command provider has a better rendering and let's the user add arguments #570
- Fix the sluggish of vim when the preview lines are awfully long. #543
- Fix the installer on Windows. #529 @Grueslayer
- Fix the condition of vim8 job exists or not. #566
- Add the missing
ClapOnExitforg:clap_open_actionoperation. #576
- Keybindings for
filer:<CR>now expands directory instead of editing it - Make the grep opts work as normal in the command line. #595
- New shortcut for
+no-cache,:Clap files!is equivalent to:Clap!! filesand:Clap files +no-cache. (#509) - Add
g:clap_enable_debug, useful when you find vim-clap is problematic and want to debug vim-clap.
- The open action
ctrl-t,ctrl-v,ctrl-tnow supports the multiple files. (#496) - Check if the ctags has the JSON output feature. (#491)
- Fix
:Clap install-binarydoes not work correctly on Windows. (#494) @Bakudankun - Fix #306, note the signature of
bs_actionare different between vim and neovim now. (#503) - Fix filer issue on Windows #370. @Grueslayer
- Handle the maple error in the filer provider, fix #500, #501.
- Fix regression #513
- Fix #515
- Fix #517
- Fix #526
- Python dynamic module now can be compiled using stable Rust. (#471)
- Add
windowspreview support. (#473) - Impl
commitsandbcommitsprovider. (#477) @ray-x - Add new provider property
on_move_async. (#481) - Support expanding
%now, e.g.,:Clap files %:p:h. - Build static Rust binary for Linux. #469
- Fix
historyprovideropen_actionsupport. (#474)
- Remove
noautocmdwhen closing neovim's floating win for clap. #472
- Add
clap#run(provider)which is similar tofzf#run(). The argumentprovideris a Dict likeg:clap_provider_foowith an optional extra field specifying the provider id. It can used for adhoc running, don't use it with asourcethat probably has a fair mount of items as it's normally undeveloped in performance. #433 - Impl async preview for
git_filesandhistoryprovider.
- Make the indicator winwidth a bit adpative when using the
relativelayout. - Ensure the sign always visiable when running maple via job.
- Fixed the win contexted
execute()forjumpsandmarksprovider when clap window is not yet visible.
- Try loading the clap theme having a same name with the current colorscheme when
g:clap_themedoes not exist.
- Implement async preview for
blines,tagsandproj_tagsprovider. (#457) - Add icon support for
proj_tagsprovider. (#461) - Add
g:clap_preview_sizefor configuring the number of preview lines. (#444) - Add
g:clap_provider_buffers_cur_tab_only. (#439)
- Fix the
sink*args inselection.vim, convert the truncated lines to the original full lines.
- Add
g:clap_provider_yanks_history. (#438) - Async
on_moveimpl forfiler,files,grepandgrep2provider in Rust binary, no delay for the preview function. (#437)
- Decrease the max number of candidates for running in sync from 100000 to 30000, which means once the total number of candidates is larger than 30000, the async filter will be used, otherwise use the builtin sync one.
fileruses the daemon job which requires the latest binary. Download the latest binary if you uses the prebuilt binary.
- Support substring matcher for dyn filter, used when the query contains space. (#411)
- Add progress bar support for the download feature of maple. (#419)
- Add instructions for building the Rust binary via Docker in case of some users run into the libssl error when using the prebuilt binary, see more info in INSTALL.md.
- Reset handler state. (#418)
- Add new
check-releasecommand, you can usemaple check-release --downloadto download the latest release binary tobindirectory. And:Clap install-binary!will run this command when possible. (#410)
- When cmd in
job(cmd)is a String, the path containing spaces could be problematic on Windows(GVim). Use List instead. (#407) - The positions of matched items in Rust fzy implementation
extracted_fzycrate is incorrect. The pure Python fzy impl is consistent with the original fzy C implementation. (#409)
- New provider
:Clap proj_tagsfor project-wide tags.(#391) - Allow
:Clap files +name-onlyto filter the file name only instead of the full file path. Require you have built the Python dynamic module or uses in the cached mode. (#389) - Add provider
actionproperty, you can delete the buffer in:Clap buffersusing the action dialog triggered by<S-Tab>. (#396)
- List all the autoloaded providers instead of the builtin ones in
:Clap providers. - Handle the icon highlight offset on Python and Rust side.
- Now
:Clap tagswill filter the tag name column only, same with:Clap proj_tags. - Change truncated dots from
...to..for displaying one more useful char.
- Fix installer on Windows and some other job related issues. Thanks to @TissueFluid. (#405)
- Add default value when
ClapSearchTexthighlight group misses some attributes. #390 - The final result of dyn filter is not ordered, ref liuchengxu#385 (comment) .
- Make use of command line
--winwidthoption, fix the unsuitable truncation for long matched lines.
- Add
--content-filteringin maple. You can use:Clap files +name-only ~to filter the file name instead of full file path, but you can only use it when clap is using the cached tempfile inside vim.
- icon highlight for truncated grep text.
grep2will not match the file path by default. (#385)
ITEMS_TO_SHOWis fixed at the moment, only 30 rows can be shown correctly for dyn filter. liuchengxu#385 (comment)- Fix wrong icon for dyn filter when the text is truncated.
-
New provider
:Clap grep2with cache and dynamic refresh support.grep2is much faster than the previousgrepprovider as it'll reuse the cached contents from previous run and do the filtering with dynamic results.grep2is not a typical grep tool but a fuzzy filter tool, for it tries to collect all the output and then filtering on the results.grepis merely to dispatch the rg command and show the results returned by rg directly, no fuzzy filter actually. (#383) -
Double bang version of
:Clap!!, shortcut for:Clap [provider_id_or_alias] +no-cache, e.g.,:Clap!! files ~is same to:Clap files +no-cache ~.
- Change
ITEMS_TO_SHOWfrom100to 30,UPDATE_INTERVALfrom 200ms to 300ms. A normal screen can only show about 50 rows, 30 rows should look like the same to 100 rows as the default clap window size is 1/3 of the screen height, but it reduces the overhead of communication between vim and maple significantly. - Add
using_cachestatus tog:clap_forerunner_status_sign, the default sign is*, which indicates clap is using the cached file which could be outdated. Use+no-cacheto run without cache and also rebuild the cache accordingly, e.g.,:Clap files +no-cache /. - The cache directory name changed to
vim.clapfromclap_cachein your systemtemp_dir.
- [perf]Try using the cached file when rerunning the same command under the same directory. The cache directory uses https://doc.rust-lang.org/std/env/fn.temp_dir.html which will be purged when you restart the computer. Or you can use
maple cache --listto list the current cached info.
has('gui_running')does not work for neovim. #378- Wrong Vim job stop API usage.(#377)
- liuchengxu#371 (comment)
- The postponed preview action can be triggered when the main window is closed. #382
- Add
initforClap grep, fill the content when query is empty for git repo.(#347) - Add
g:clap_popup_borderfor adding the border for the preview popup. (#349)
- Print a note about Rust nightly is requred for building the Python dynamic module.
- Refine the syntax of
Clap lineswithClapLinesBufnameandClapLinesNumbergroup added. - [perf] Use const table instead of
lazy_staticfor the icons, more info. Thanks to @ImmemorConsultrixContrarie . - [perf] Major improvement 🎉 support the filter dynamic support, contribution by @ImmemorConsultrixContrarie. (#364)
Clap fileralways selects the first entry when you narrow down and navigate the list. (#348)
- Support multi-byte input for vim's popup thanks to @Bakudankun. You need patch 8.2.0329 to make it work as expected. (#320)
- Add new option
g:clap_insert_mode_onlyto disable the feature of other mode, use the insert mode only. (#335) - Add new option
g:clap_providers_relaunch_code(@@default). You can input@@or use C-L to invoke:Clapto reselect another provider at any time.(#328) - Add new keymapping C-L.(#328)
- Add preview support for
Clap filer. - Add
blinessubcommand in maple for always prepending the line number even there are 1M+ lines.
- Now you can use
:Clap grep ++query=@visualto search the visual selection. (#336) - Ensure the long matched elements from the filter always at least partially visible. (#330)
- Use file name as the preview header for
Clap grep,Clap blines,Clap tags,Clap marksandClap jumps. - Make
<Del>work in vim's popup.
- Change the default value of
g:clap_popup_cursor_shapefrom'|'to''for using the new block-style cursor in vim's popup By @Bakudankun. (#340)
- Add new clap theme
let g:clap_theme = 'atom_dark'by @GoldsteinE. - Add new provider
:Clap search_historyby @markwu. (#289) - Add new provider
:Clap mapsby @markwu. (#293) - Add
g:clap_project_root_markersfor specifing how vim-clap intentify a project root. Previously only the git-based project is supported, i.e.,g:clap_project_root_markers = ['.git', '.git/']. The default value ofg:clap_project_root_markersis['.root', '.git', '.git/']you can add.rootfile under the directory you want to the project root.(#290) - Add preview support for
yanks,buffers,files,git_filesandhistoryprovider. - Add new highlight group
ClapSelectedSignandClapCurrentSelectionSignfor the signtexthl, they are linked toWarningMsgby default. - Add multi-selection support for
:Clap blines. - [neovim] normal mappings: j/k, gg/G,
<C-d>/<C-u>and seeftplugin/clap_input.vim.
- Add
ClapDefaultPreviewfor the light theme. - Open quickfix window at the exact size of entries if there are only a few ones.
- The minimal requred version for neovim is v0.4.2 as v0.4.0 does not work.
- More robust fpath detection for grep preview.#321
- Add
<nowait>to neovim's open action mappinngs. - Change the default icon for
filerto . - Set
&foldcoloumnto 0 for neovim by default. - Decrease the default
g:clap_popup_input_delayfrom 200ms to 100ms, use the Rust binary. - Update
clap_tagssyntax due to liuchengxu/vista.vim#231. - Use a standalone floating win instead of virtual text for the matches count.(#315)
- [neovim]
<Esc>won't exit clap but enter the normal mode.#322
- Add new provider
:Clap filerfor ivy-like file explorer, this also introduces a new type of clap provider: stdio-based RPC provider. (#272) - Add new provider
:Clap help_tagsby @markwu. (#248) - Add
maple versionto get the detailed maple info and include it in:Clap debug.(#262) - Add
g:clap_forerunner_status_signand deprecateg:clap_forerunner_status_sign_doneandg:clap_forerunner_status_sign_running. - Support skim as the external filter, ref skim-rs/skim#225 . (#269)
- Add a new property
source_typefor non-pure-async provider.(#270) - Add
g:ClapPromptwhich is Funcref to give more control of the prompt of clap, please see liuchengxu#134 (comment) for the usage.(#265) - Add
initproperty for each provider, which will be invoked when initializing the display window.(#280)
- Split out the native VimScript filter implementation in favor of the potential vim9 improvement.(#267)
- Use as the icon of markdown.
- Change the default spinner frames to
['⠋', '⠙', '⠚', '⠞', '⠖', '⠦', '⠴', '⠲', '⠳', '⠓']. - Change the default prompt format to
' %spinner%%forerunner_status%%provider_id%:'. - Disable
coc_pairs.
- New provider
:Clap loclistfor listing the entries of current window's location list.(#244) - New provider
:Clap providersfor listing all the providers by splitting out the previous anonymous_provider.(#242) - Add
g:clap_layoutto control the size and position of clap window. Now the default behaviour has been changed to window relative. If you prefer the previous behaviour, uselet g:clap_layout = { 'relative': 'editor' }. - Add multi-select support for
Clap filesandClap git_files.(#258) - Add
g:clap_themefor changing the clap theme easily, the themematerial_design_darkis shipped by default.#259
- Now
mapleuse subcommand instead of option for the various function, this refactor also makes adding new features easier.(#255)
- Refine
:Clap debugand require it in the bug report. (#241)
- Wrong async threshold in impl.vim.(liuchengxu#248 (comment))
- Add icon support for
historyprovider. - Provide the prebuilt binary support since Release v0.4.
- Add script for downloading the prebuilt binary easily and support downloading via plugin manager directly.(#222)
- Push the current position to the jumplist for
blinesprovider so that you can jump back using<C-O>.(#227) - Add
<PageDown>and<PageUp>keybindings. (#232) - Add icon for exact matched file name and more file-extension based icons.(#233)
- Make the display window compact when there are too few results for grep provider.
- Do not apply the offset for matched items when using substring filter.
- Git submodule detection.(#175)
- Regression of using neovim job without maple.(#234)
- Add icon for files provider.(#195)
- Add
syntaxproperty for provider to make enable the syntax highlight easier.(#217) - Add an option
g:clap_disable_bottom_top(0by default) for disabling wrapping top-to-bottom when pressing ctrl-j/ctrl-k at the bottom/top of the results. - Add open action support for
:Clap buffers. - Add open action support for
:Clap git_files. - Add
<C-U>mapping for clearning the input.
- Make the helper function for building the extra Rust tools more friendly and smarter. (#202)
- Optimize for
Clap blinesprovider in case of the buffer has 1 million lines.(#210)
- 🎉 Fix the flicker of running asynchronously using
job.(#185)
The major feature of 0.3 is the performance problem has been soloved, see #140.
- Add Python version subscorer fuzzy filter.(#159)
- Add Rust version subscorer fuzzy filter.(#176)
- New provider
:Clap quickfixby @kit494way. - New provider
:Clap git_diff_filesby @kit494way. - Add the preview support for
:Clap registers. If the content of some register is too much to fit on one line, then it will be shown in the preview window, otherwise do nothing. - Add the preview support for
:Clap tags. - Add the helper function for building Rust extension easily. Now you can use
:call clap#helper#build_all()to build the optional Rust dependency. - Make the built-in fuzzy filter 10x faster using Rust.(#147)
- Cache the result of forerunner job into a temp file if it's larger than the threshold of built-in sync filter can handle.(#177)
- Decrease the overhead of async job significantly.(#181)
- Set
syntaxinstead offiletypefor the highlight as settingfiletypecan start some unexpected filetype related services.
- Fix vim popup sign not showing.(#141)
- Fix performance issue of async job.(#140)
- Fix rff can't work on Windows thanks to @ImmemorConsultrixContrarie.(#180)
- New provider
:Clap registers. - New provider
:Clap command. - Add a brief description for each provider used in
:Clap. - Add syntax for
:Clap jumps. - Add the option
g:clap_spinner_frames. - Add the option
g:clap_prompt_format. - Add the option
g:clap_enable_iconfor configuring the icon functionality globally. - Add the option
g:clap_popup_cursor_shapefor configuring the mocked cursor shape. - Add the options
g:clap_fuzzy_match_hl_groupsfor configuring the color of fuzzy matched items easier. - Add an utility function
clap#helper#build_maple()for building maple easily in vim. Use:call clap#helper#build_maple()to install maple inside vim. - Add the preview support for
:Clap grep. - Add the preview support for
:Clap blines. - Support running from any specified directory by passing it via the last argument for
:Clap filesand:Clap grep. - Add limited fzf like search syntax(#127) for
:Clap grep.(#150)
- Put
call g:clap.provider.on_exit()just beforesilent doautocmd <nomodeline> User ClapOnExitinclap#_exit().
- Reverse the original order of
jumpsto make the newer jump appear first.
- sink of
:Clap command_history.(#109) - Apply
redrawwhen navigating and selecting via tab in vim's popup. - Fix
bgof icon highlight(#132) - Use absolute directory for
g:__clap_provider_cwd(#137).
- New provider
:Clap lines. - New provider
:Clap history. - New provider
:Clap yanksthanks to @ratheesh. - Support
:Claplisting all the builtin providers, thanks to @wookayin implementing the sink of it. - Add the preview support for
:Clap marksand:Clap jumps.
- Rework the
buffersprovider source to make it look more fancy.(#71)
- New built-in fzy finder implemented in python.(#92)
- New external filter
fzyandfzf. Every provider could run async if you have one of the external filters installed. - Add the substring filter mode.
- Support opening the selected file via ctrl-t, ctrl-x, ctrl-v if the provider supports, and add
g:clap_open_actionfor configuring the default keybindings. - Support opening files from the git base directory. See
:h g:clap_disable_run_rooterif you don't like this behavior. - Add search box border symbols support, see
:h g:clap_search_box_border_style.(#85) - Add the option
g:clap_provider_grep_enable_iconfor disabling the icon drawing in:Clap grep. - Add
g:clap_provider_grep_optsfor globally configuring the used command line options of rg, thanks to @Olical. - Support searching the hidden files via
:Clap files --hidden. - Support using any other finder tools for the files provider via
:Clap files ++finder=[YOUR FINDER] [FINDER ARGS].
- Do not try using the default async filter implementation if none of the external filters are avaliable.(#61)
- Always use the sign to indicate the selected and current selection.
Various fixes.
- Rename
g:clap_selected_sign_definitiontog:clap_selected_sign. - Rename
g:clap_current_selection_sign_definitiontog:clap_current_selection_sign. - Rename
g:clap_disable_run_from_project_roottog:clap_disable_run_rooter. :Clap grep <cword>is changed to:Clap grep ++query=<cword>.- Rework
g:clap.contextandg:clap.provider.args.