Commit Graph

310 Commits

Author SHA1 Message Date
Junegunn Choi
fe362d413a Restore the behavior of custom actions on Ag/Rg/Tags/Commits
Fix #1505
2023-09-16 19:36:06 +09:00
Junegunn Choi
937f430ce3 Add :Changes command
Close #1478
Close #1479
2023-09-14 22:45:00 +09:00
jiz4oh
587f55bf50 Use fzf#shellescape instead (#1503) 2023-09-07 11:31:15 +09:00
Junegunn Choi
7ba5be32bc [Buffers] Do not preview '[No Name]' 2023-09-06 18:26:23 +09:00
Junegunn Choi
2c501dc5a2 [Windows] Add preview
Close #1487
2023-09-06 18:26:23 +09:00
Nikita Kouevda
19dec6c038 Use s:conf for preview_bash and files_options (#1502)
Follow-up to 832a090870.
2023-09-06 11:14:08 +09:00
Junegunn Choi
5c218e982d [Lines] Allow multiple selections 2023-09-06 00:46:24 +09:00
Junegunn Choi
832a090870 Add option to use location list instead of quickfix list
Close #432
Close #448
Close #846
Close #1095
Close #1500
2023-09-06 00:46:24 +09:00
Frederick Zhang
811f34b70b [[B]Commits] Bump Git commit hash length limit to 40 (#1495)
When working in large repositories, 9 characters can be ambiguous.
Bumping it to 40, which is the length of SHA-1. (The algorithm is not
that relevant though. Even when SHA-256 takes over, 40 characters should
still be enough for most repositories.)
2023-08-10 20:30:57 +09:00
Edwin Steiner
1dcdb21db6 [Helptags] Remove dependencies of grep and sort (#1482)
* Remove dependency of fzf#vim#helptags on grep.

The grep command was used here only to dump file contents prefixed
with the filename and a colon. Since the function generates a temporary
Perl script anyway, it is simpler to do this directly in the Perl
script. This removes the dependency on grep and makes it easier to get
:Helptags to work on Windows.

A subsequent commit will also move the sorting of the helptags into the
Perl script. I did not do it in this commit, since the OS's "sort"
command can give a different sort order than Perl's sort function,
so I'm not sure what is preferred here.

Note: 'use autodie' is recommended over 'use Fatal' but the autodie
module has only been in Perl core since v5.10.1 (2009-08-22) while
Fatal is in core since 1996. The three-argument open requires v5.6
(2000).

* Remove dependency of fzf#vim#helptags on external sort command.

This moves the sorting of helptags into the generated Perl script and
thereby removes the dependency on an external "sort" command.

Note that Perl's sort function used here may give a different sort
order than the OS's sort command. (It does so for me on Windows but
I actually like Perl's ASCII sort order better, anyway.)

---------

Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2023-06-09 16:46:50 +09:00
Kevin Ushey
5d87ac1fe8 Add :Jumps (#710)
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2023-06-04 16:21:37 +09:00
Junegunn Choi
fd812b5710 [fzf#vim#grep[2]] Deprecate has_column argument
The boolean value tells the function if the output of the command
contains column numbers, but we can just see the selected lines if they
contain column numbers.

The argument is now removed from the documentation, and will be silently
ignored for backward compatibility.

Close #1480
2023-06-04 15:49:16 +09:00
Junegunn Choi
87b60bb133 Add :RG command and fzf#vim#grep2 function 2023-06-04 15:27:45 +09:00
Junegunn Choi
dc71692255 Update documentation and comments 2023-01-27 10:42:13 +09:00
Julian Prein
ca542801a1 [[B]Commits] Support arguments for git-log (#1455)
* [[B]Commits] Support arguments for git-log

Add support for command arguments that are passed to git-log (e.g.
:Commits -S foo -3).

The place of insertion is relevant. Generally the arguments should come
at the end to overwrite existing flags if necessary, but need to come
before the pathspec (i.e. `fzf#shellescape(current)`) in BCommits.

* [[B]Commits] Make sure all positional arguments are optional

Test cases:

    " With default options
    %call fzf#vim#commits()

    " Full screen
    %call fzf#vim#commits(1)

    " Not full screen
    %call fzf#vim#commits(0)

    " With extra fzf options
    %call fzf#vim#commits({ 'up': '50%', 'options': '--no-color' })

    " With extra fzf options (with preview) and in full screen
    %call fzf#vim#commits(fzf#vim#with_preview({ 'options': '--no-color', 'placeholder': '' }), 1)

    " With extra git log options
    %call fzf#vim#commits('-S foo')

    " With extra git log options in full screen
    %call fzf#vim#commits('-S foo', 1)

    " With extra git log options and fzf options
    %call fzf#vim#commits('-S foo', { 'options': '--no-color' })

    " In full-screen
    %call fzf#vim#commits('-S foo', { 'options': '--no-color' }, 1)

    " Command form
    Commits
    Commits!
    Commits -S foo
    Commits! -S foo

* [Commits] Enable file completion for arguments

This gets handy when BCommits is too narrow (e.g. multiple files or a
folder is specified).

Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2023-01-27 10:40:32 +09:00
psyngw
bdf48c282a Fix: Windows preview window logic, including git diff preview (#1452)
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2023-01-16 13:41:07 +09:00
ksmai
0f03107bc9 fix: GFiles is ignoring args (#1447)
The commit linked below removed `a:args` from the `git ls-files` command, making it
unable to take any options like `--cached`, `--others` and
`--exclude-standard`

531dd67350
2022-12-31 12:41:48 +09:00
Junegunn Choi
fd7fab77b2 [GFiles] Use ls-files --deduplicate only on git 2.31 or above
Close #1446
2022-12-24 10:34:55 +09:00
Nathan Thomas
7434543270 Add support for nushell (#1300)
Nushell doesn't allow programs surrounded in quotes to be executed.
2022-12-22 17:37:50 +09:00
Marc Mezzarobba
531dd67350 Make :GFiles work with "unusual" filenames (#1200)
git ls-files quotes file names containing "unusual" (non-ASCII?)
characters by default, breaking :GFiles

Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2022-12-22 17:31:38 +09:00
JohanChane
9ceac71802 Fix ctags language force for C++ (#1425)
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2022-09-22 17:30:41 +09:00
Junegunn Choi
c491d702b7 [GFiles] Fix opening files from subdirectory
https://github.com/junegunn/fzf.vim/pull/1290#issuecomment-1208759166
2022-08-09 13:47:50 +09:00
Junegunn Choi
c6b59d8ad7 [GFiles] fzf#vim#gitfiles should respect 'dir'
https://github.com/junegunn/fzf.vim/pull/1290#issuecomment-1207832597
2022-08-08 23:47:20 +09:00
Frederick Zhang
2f3e29fc37 Change git working directory according to the current buffer (#1290)
* Commits
* BCommits
* GFiles
2022-08-03 22:24:13 +09:00
Junegunn Choi
a4617a7291 Use ASCII non-breaking space 2022-08-02 13:56:15 +09:00
Emilv2
c311c0a95f [[B]Commits] Show current file first in preview (#1402)
Close #802
2022-06-28 14:33:15 +09:00
jiz4oh
b23e4bb8f8 [fzf#vim#complete#word] Respect &dictionary option (#1373) 2022-03-07 17:35:08 +09:00
Tomáš Janoušek
1f7bfa4007 [[B]Commits] Use --color=always with delta as well (#1362)
With some delta configurations (e.g. color-only = true, diff-highlight =
true), delta doesn't add its own coloring and keeps that from git diff,
and thus we need to turn that on.

Additionally, delta doesn't do its own detection of moved lines and
relies on git diff's colorMoved, which also needs enabling of colors.
2022-02-01 15:34:48 +09:00
Tomáš Janoušek
70541d2ee0 [Commands] Fix hit-enter/more-prompt with terminal buffer fzf (#1363)
Since 85ae745910,
fzf opens in a terminal buffer (in my setup) and that breaks commands
that end up showing the hit-enter or more prompt, such as :scriptnames
or :ALEInfo. No idea why those commands break (I tried to diagnose this
but gave up unfortunately), but executing them using feedkeys fixes
this.
2022-01-30 13:28:24 +09:00
Melandel
91332acb1c [GFiles?] Fix preview on windows (wsl bash + git_install_folder/usr/bash) (#1360)
* Fix preview on GFiles? on Windows+WSL
* Fix preview on GFiles? on Windows using gitInstallFolder\usr/bin\bash.exe

Co-authored-by: Minh-Tam TRAN <c_mtran@capsuletech.com>
Co-authored-by: Minh-Tam TRAN <minh-tam.tran@younited-credit.fr>
2022-01-24 18:02:50 +09:00
Philip Kannegaard Hayes
66cb8b8264 [Helptags] add preview window to :Helptags command (#1357)
+ In `fzf#vim#helptags`, we now also parse out the ex-command in the
  perl script so it's available for the preview (this is just an
  extra `\t(.*)` appended to the original regex).

+ Add the `--tag` placeholder to `:Helptags` with corresponding
  arguments.
2022-01-16 21:33:29 +09:00
magras
a4ce66d725 Set jump if the target is in the current file (#1195)
Adding a record to the jump list allows to go back to the cursor
position before jump with CTRL-O.

Fix #595
2021-10-08 17:26:38 +09:00
Junegunn Choi
e393108bfa Simplify version checking
Fix #1329
2021-09-29 20:22:47 +09:00
Kevin Lin
980cd07439 [fzf#vim#with_preview] Set --no-unicode if ambiwidth is 'double' (#1322)
Fix #1320

Append fzf argument `--no-unicode` when ambiwidth is `double` to keep the
preview window rendering correctly.
2021-09-03 06:46:54 +09:00
Ben
b1afeca8cc Unfold jumped line in grep sink (#1277) 2021-08-17 16:17:51 +09:00
Frederick Zhang
e34f6c129d [[B]Commits] Preserve window view (#1289)
In 161da95, [B]Commits were changed to range commands with -range=%, now
Vim jumps to the first line when these two commands are called directly
without specifying range.

This fixes it by saving window view in a temporary variable and
restoring it later. Reference: [1].

[1] https://vi.stackexchange.com/a/6037/33583
2021-05-25 13:30:41 +09:00
Junegunn Choi
161da95640 [[B]Commits] Allow tracking changes in the line range
Thanks to @anhpt379

Close #898
Close #1288
2021-05-24 19:38:51 +09:00
Junegunn Choi
d7211d0f61 Set delta width
Fix #1219
2021-05-24 16:29:31 +09:00
Stefan Kanev
a88311b222 Don't mutate args to fzf#vim#files() (#1282)
As the code was written before, if we do this:

   let s:opts = {
   \ 'window': {'width': 0.6, 'height': 0.6, 'relative': v:false},
   \ 'options': ['--layout=reverse', '--info=inline'],
   \}

   call fzf#vim#files('', s:opts, 0)

...then s:opts will get mutated by the call to fzf#vim#files, cloberring
any persistent configuration established this way.

Making a defensive copy solves the problem.
2021-05-09 13:45:33 +09:00
Eddie
ee91c93d4c [Snippets] Do not limit search scope (#1217) 2021-04-15 05:38:19 +09:00
Junegunn Choi
caf7754b26 [Buffers] Increase tabstop according to the string length of bufno
e.g. vim {1..1000} +'silent 1bd'

Fix #1237
2021-03-25 01:16:02 +09:00
Junegunn Choi
711fb41e39 Respect preview-window value in FZF_DEFAULT_OPTS
when g:fzf_preview_window is not set, instead of overriding it with `right`.

Close #2378
2021-03-06 16:34:25 +09:00
Junegunn Choi
02a192ea0b [Buffers] Increase tabstop if the number of buffers >= 1000
Fix #1237
2021-02-02 11:11:20 +09:00
Grueslayer
68ab645574 Fix preview support for MS Windows (WSL and Git bash) (#1215)
* Fixes #1212

* Path translation only when containing backslash.

- lower letters also allowed for drive

Co-authored-by: Jan Stocker <Jan.Stocker@cosmoconsult.com>
2021-02-01 19:48:25 +09:00
Junegunn Choi
707f5b6269 Make fzf#vim#preview process g:fzf_preview_window
Related #1023
Related #1225
2021-01-27 10:53:14 +09:00
Ingo Meyer
1fcdee55cc [Tags] Add a tag preview with a custom tagpreview.sh script (#1223)
* Add a tag preview with a custom `tagpreview.sh` script

* [Tags] Respect g:fzf_preview_window

Co-authored-by: Ingo Meyer <IJ_M@gmx.de>
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
2021-01-17 22:36:02 +09:00
Junegunn Choi
d43df0ea2f [fzf#vim#complete] Keep insert mode after completion
https://github.com/junegunn/fzf.vim/issues/303#issuecomment-755965141

Fix a bug where completion ends in normal mode instead of in insert mode
when a terminal buffer is used to render fzf in regular Vim (layout != down).
2021-01-07 18:12:10 +09:00
Junegunn Choi
811b8607c6 [Buffers] Do not apply --header-lines when the current buffer is unlisted
Fix #1211
2020-12-30 23:43:54 +09:00
Junegunn Choi
e9d62b4c87 delta: Remove invalid flag 2020-12-14 14:20:58 +09:00
Junegunn Choi
dfc318b2be delta: Only disable --side-by-side (#1205) 2020-12-14 14:09:09 +09:00