Previous implementation of placing the cursor on the first column of the
highlight failed to take into account that the highlighter can return
more than one data structure.
* feat(builtin.current_buffer_fuzzy_find): jump to first matched char
* use highlighter to detect column to jump to
* replace default select
* handle non 0 based column index
* handle no highlight scenario
---------
Co-authored-by: James Trew <j.trew10@gmail.com>
This implements a experimental interface for allowing prompts like this `file.txt:3:4`. It is already enabled on default for `find_files` and `git_files`.
Be wary of breaking changes for the interface if you plan to manually enable it.
Previously, using `string.find`, certain characters were taken as regex
special characters leading to bad matches.
New approach takes bufname truncated to the length of cwd and compares
the two strings.
closes#2843
Previously, bad partial matches between cwd and target buffer path would
result in non-cwd buffers showing up in the picker despite using
`only_cwd=true`.
eg.
cwd = `/foo/bar`
target buffer = `foo/bar1/baz.txt`
The target buffer starts with the cwd path.
This is fixed by appending a path separator before comparing/matching:
eg.
cwd = `/foo/bar/`
target buffer = `foo/bar1/baz.txt`
Previously, `git_status` with a prompt that has zero matches closes the
picker.
Only automatically close the picker if working tree is completely clean.
If working tree is not clean, and a prompt is given but no matches are
found, keep the picker open. This behavior is consistent with other
pickers where lack of matches doesn't result in the picker closing.
closes#2815
* feat(lsp_definitions): adding `tab drop` as `jump_type`
* feat(lsp-jump-types): `tab drop` for LSP features
Now, you're able to use `tab drop` as `jump_type` for these LSP
features: references, type definitions, definitions an implementations.
* fix(docs): reordering `tab drop` option
* feat: generate docs
* fix: nil problem with `vim.uri_to_fname`
* fix: removing warning about `file_uri` variable not being used
---------
Co-authored-by: Simon Hauser <simon.hauser@helsinki-systems.de>
The only possibility for having a table with different severities to
pass to `vim.diagnostics.get()` as opts is when setting a range (limit
and bound), so just check for an empty table when a range is set.
* fix: use nil for the default diagnostics severity
https://github.com/neovim/neovim/pull/24736 has introduced a new syntax
for severity format in `vim.diagnostic.get()`.
Fix#2661
* fix: fallback for 0.9.1
* fix: detect changes only when minor version > 9
When filtering is applied, `picker:get_index(picker:get_selection_row())` returns index relative to the filtered entry list rather than the original full results. This causes inaccurate indexing into the `cache_pickers` table.
* Filter bcommits by selection in visual mode
* Split bcommits_range into new picker
* Add option to run bcommits_range as operator
Starts operator-pending mode and shows commits in the range of lines
covered by the next text object or motion
* Rename range arguments to "first" and "last"
Can't use start/end, since end is an annoying keyword to use in lua
and start/stop doesn't fit as well
* Move operators functionality to new module
* Run bcommits if no range given to bcommits_range
* Make bcommits_range default to current line
Instead of calling bcommits
* Improve documentation of telescope.operators
* Add default value for last_operator
Default to a no-op callback
* Update bcommits_range for detached worktrees
See #2597
* Rename range arguments to "from" and "to"
* Move shared bcommits picker into single function