- Add
dumb_jump
provider, which will fall back to the normal grep way when the regexp approach fails. #659
- Move
stdio_server
crate into a module ofmaple_cli
crate for reusing the utilities inmaple_cli
easily.
- Add user autocmd
ClapOnInitialize
, can be used to ignore some buffers when opening clap. #653 - Add
g:clap_provider_colors_ignore_default
to ignore the default colors inVIMRUNTIME
. #632 - Support neovim floating_win based action menu. #655
- Truncate the lines of
grep
provider. #650 - Support unordered substring query. #652
- Add
hi default link ClapIndicator ClapInput
for the default theme.
- Cannot open files with pipe in file path. #643
- Fix the grep preview when
g:clap_enable_icon
is enabled andg:clap_provider_grep_enable_icon
is 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_matchfuzzy
to use the builtinmatchfuzzy()
when filtering in sync way. #607 - Add
g:clap_force_python
to 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-only
for Lua sync filter. #612 - Add
g:ClapProviderHistoryCustomFilter
for customizing the source ofhistory
provider. #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_tags
provider, the Rust binary is required. #630 Add(Seeg:clap_always_open_preview
to open the preview always if the provider implson_move_async
g:clap_open_preview
), it's on by the default which changes the behavior before. #625- Add
g:clap_preview_direction
for opening the preview window on the right of the display window, and the default behavior has been changed toLR
if your screen'scolumns
is less than 80. #634 - Add
g:clap_open_preview
to control the opening of preview window, you can set it tonever
to fully disable the preview feature. #636
- Add
--color=never
to the default grep option. #609 - Show create new file entry when in empty directory. #624
- Introduce
MatchText
for passing more match context easier later. #626
- Add
g:clap_enable_background_shadow
to render a transparent shadow (neovim-only) #546, #550 - Add
g:clap_popup_move_manager
so 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
providers
provider, which means you can see the global variable type providers when you call:Clap
now. But you have to definedescription
explicitly 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
ClapOnExit
forg:clap_open_action
operation. #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!! files
and: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-t
now supports the multiple files. (#496) - Check if the ctags has the JSON output feature. (#491)
- Fix
:Clap install-binary
does not work correctly on Windows. (#494) @Bakudankun - Fix #306, note the signature of
bs_action
are 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
windows
preview support. (#473) - Impl
commits
andbcommits
provider. (#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
history
provideropen_action
support. (#474)
- Remove
noautocmd
when closing neovim's floating win for clap. #472
- Add
clap#run(provider)
which is similar tofzf#run()
. The argumentprovider
is a Dict likeg:clap_provider_foo
with an optional extra field specifying the provider id. It can used for adhoc running, don't use it with asource
that probably has a fair mount of items as it's normally undeveloped in performance. #433 - Impl async preview for
git_files
andhistory
provider.
- Make the indicator winwidth a bit adpative when using the
relative
layout. - Ensure the sign always visiable when running maple via job.
- Fixed the win contexted
execute()
forjumps
andmarks
provider when clap window is not yet visible.
- Try loading the clap theme having a same name with the current colorscheme when
g:clap_theme
does not exist.
- Implement async preview for
blines
,tags
andproj_tags
provider. (#457) - Add icon support for
proj_tags
provider. (#461) - Add
g:clap_preview_size
for 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_move
impl forfiler
,files
,grep
andgrep2
provider 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.
filer
uses 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-release
command, you can usemaple check-release --download
to download the latest release binary tobin
directory. 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_fzy
crate is incorrect. The pure Python fzy impl is consistent with the original fzy C implementation. (#409)
- New provider
:Clap proj_tags
for project-wide tags.(#391) - Allow
:Clap files +name-only
to 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
action
property, you can delete the buffer in:Clap buffers
using 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 tags
will 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
ClapSearchText
highlight group misses some attributes. #390 - The final result of dyn filter is not ordered, ref liuchengxu#385 (comment) .
- Make use of command line
--winwidth
option, fix the unsuitable truncation for long matched lines.
- Add
--content-filtering
in 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.
grep2
will not match the file path by default. (#385)
ITEMS_TO_SHOW
is 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 grep2
with cache and dynamic refresh support.grep2
is much faster than the previousgrep
provider as it'll reuse the cached contents from previous run and do the filtering with dynamic results.grep2
is not a typical grep tool but a fuzzy filter tool, for it tries to collect all the output and then filtering on the results.grep
is 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_SHOW
from100
to 30,UPDATE_INTERVAL
from 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_cache
status tog:clap_forerunner_status_sign
, the default sign is*
, which indicates clap is using the cached file which could be outdated. Use+no-cache
to run without cache and also rebuild the cache accordingly, e.g.,:Clap files +no-cache /
. - The cache directory name changed to
vim.clap
fromclap_cache
in 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 --list
to 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
init
forClap grep
, fill the content when query is empty for git repo.(#347) - Add
g:clap_popup_border
for 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 lines
withClapLinesBufname
andClapLinesNumber
group added. - [perf] Use const table instead of
lazy_static
for the icons, more info. Thanks to @ImmemorConsultrixContrarie . - [perf] Major improvement 🎉 support the filter dynamic support, contribution by @ImmemorConsultrixContrarie. (#364)
Clap filer
always 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_only
to 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:Clap
to reselect another provider at any time.(#328) - Add new keymapping C-L.(#328)
- Add preview support for
Clap filer
. - Add
blines
subcommand in maple for always prepending the line number even there are 1M+ lines.
- Now you can use
:Clap grep ++query=@visual
to 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 marks
andClap jumps
. - Make
<Del>
work in vim's popup.
- Change the default value of
g:clap_popup_cursor_shape
from'|'
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_history
by @markwu. (#289) - Add new provider
:Clap maps
by @markwu. (#293) - Add
g:clap_project_root_markers
for 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_markers
is['.root', '.git', '.git/']
you can add.root
file under the directory you want to the project root.(#290) - Add preview support for
yanks
,buffers
,files
,git_files
andhistory
provider. - Add new highlight group
ClapSelectedSign
andClapCurrentSelectionSign
for the signtexthl
, they are linked toWarningMsg
by 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
ClapDefaultPreview
for 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
filer
to . - Set
&foldcoloumn
to 0 for neovim by default. - Decrease the default
g:clap_popup_input_delay
from 200ms to 100ms, use the Rust binary. - Update
clap_tags
syntax 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 filer
for ivy-like file explorer, this also introduces a new type of clap provider: stdio-based RPC provider. (#272) - Add new provider
:Clap help_tags
by @markwu. (#248) - Add
maple version
to get the detailed maple info and include it in:Clap debug
.(#262) - Add
g:clap_forerunner_status_sign
and deprecateg:clap_forerunner_status_sign_done
andg:clap_forerunner_status_sign_running
. - Support skim as the external filter, ref skim-rs/skim#225 . (#269)
- Add a new property
source_type
for non-pure-async provider.(#270) - Add
g:ClapPrompt
which is Funcref to give more control of the prompt of clap, please see liuchengxu#134 (comment) for the usage.(#265) - Add
init
property 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 loclist
for listing the entries of current window's location list.(#244) - New provider
:Clap providers
for listing all the providers by splitting out the previous anonymous_
provider.(#242) - Add
g:clap_layout
to 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 files
andClap git_files
.(#258) - Add
g:clap_theme
for changing the clap theme easily, the themematerial_design_dark
is shipped by default.#259
- Now
maple
use subcommand instead of option for the various function, this refactor also makes adding new features easier.(#255)
- Refine
:Clap debug
and require it in the bug report. (#241)
- Wrong async threshold in impl.vim.(liuchengxu#248 (comment))
- Add icon support for
history
provider. - 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
blines
provider 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
syntax
property for provider to make enable the syntax highlight easier.(#217) - Add an option
g:clap_disable_bottom_top
(0
by 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 blines
provider 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 quickfix
by @kit494way. - New provider
:Clap git_diff_files
by @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
syntax
instead offiletype
for the highlight as settingfiletype
can 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_icon
for configuring the icon functionality globally. - Add the option
g:clap_popup_cursor_shape
for configuring the mocked cursor shape. - Add the options
g:clap_fuzzy_match_hl_groups
for 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 files
and: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 ClapOnExit
inclap#_exit()
.
- Reverse the original order of
jumps
to make the newer jump appear first.
- sink of
:Clap command_history
.(#109) - Apply
redraw
when navigating and selecting via tab in vim's popup. - Fix
bg
of icon highlight(#132) - Use absolute directory for
g:__clap_provider_cwd
(#137).
- New provider
:Clap lines
. - New provider
:Clap history
. - New provider
:Clap yanks
thanks to @ratheesh. - Support
:Clap
listing all the builtin providers, thanks to @wookayin implementing the sink of it. - Add the preview support for
:Clap marks
and:Clap jumps
.
- Rework the
buffers
provider source to make it look more fancy.(#71)
- New built-in fzy finder implemented in python.(#92)
- New external filter
fzy
andfzf
. 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_action
for configuring the default keybindings. - Support opening files from the git base directory. See
:h g:clap_disable_run_rooter
if 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_icon
for disabling the icon drawing in:Clap grep
. - Add
g:clap_provider_grep_opts
for 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_definition
tog:clap_selected_sign
. - Rename
g:clap_current_selection_sign_definition
tog:clap_current_selection_sign
. - Rename
g:clap_disable_run_from_project_root
tog:clap_disable_run_rooter
. :Clap grep <cword>
is changed to:Clap grep ++query=<cword>
.- Rework
g:clap.context
andg:clap.provider.args
.