Tim Pope
200593827e
Adjust handling of 'buftype' during detection
2022-04-19 18:35:15 -04:00
Tim Pope
4b0f2b6045
Default g:ceiling_directories to parent of $HOME
...
References: https://github.com/tpope/vim-fugitive/issues/1457
2022-04-14 02:31:49 -04:00
Tim Pope
a252be79c0
Check for ch_close_in() to ensure full Vim jobs support
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1973
2022-04-12 19:51:42 -04:00
Tim Pope
cba863444c
Move unpushed sections above unpulled, again
...
This reverts commit 279d56eb47
(effectively).
References: https://github.com/tpope/vim-fugitive/issues/1963
2022-04-05 12:13:40 -04:00
Tim Pope
d725ef529e
Turn remaining deprecated commands into error stubs
2022-04-01 18:27:49 -04:00
Tim Pope
8f169a84ff
Allow simultaneous blames in diffed buffers
...
References: https://github.com/tpope/vim-fugitive/pull/1327
2022-04-01 18:27:49 -04:00
Tim Pope
d9a914b14d
Replace 'cursorbind' in blame with manual line syncing
...
This is the only way to sync the line without also syncing the column.
Syncing the column is particularly problematic when it causes the blame
window to vertically scroll while typing.
2022-04-01 18:27:44 -04:00
Tim Pope
c0701f7a0e
Fix expansion of SSH host aliases
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1962
2022-03-30 11:08:14 -04:00
Tim Pope
321328c6c5
Avoid I/O from ":p" when handling temp files
...
This isn't a big deal for temp files themselves, but if we're checking
an arbitrary buffer, it's possible we'll end up hitting a slow network
share just to find out if the path is relative.
This new s:AbsoluteVimPath() helper could potentially be reused in a lot
of places. But this diff is big enough as is; save that for later.
2022-03-26 15:41:55 -04:00
Tim Pope
8157efff49
Provide g:fugitive_defer_to_existing_maps
...
References: https://github.com/tpope/vim-fugitive/issues/1425
2022-03-25 18:08:01 -04:00
Tim Pope
b6405d8908
Provide literally named <Plug> maps
...
For every map X, also provide a map <Plug>fugitive:X.
References: https://github.com/tpope/vim-fugitive/issues/1425
2022-03-25 17:50:32 -04:00
Tim Pope
5716e11776
Fix line wrap in README
2022-03-24 08:02:43 -04:00
Tim Pope
46652a304f
Add :GUnlink, like in eunuch.vim
...
This currently mirrors :GRemove, but gives us the option to add a third
variant.
2022-03-09 10:50:24 -05:00
Tim Pope
afd6c13c6b
Fix infinite loop when summary window contains no sections
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1954
2022-03-01 07:35:31 -05:00
Tim Pope
485ce07c27
Match FugitiveRemote() interface to window.location in JS
2022-02-11 13:02:45 -05:00
Tim Pope
c29ef11cd6
Parse anchor in remote URL
...
I've never seen this in practice, but if it does happen, we shouldn't
include it in the value for "path".
2022-02-11 13:02:45 -05:00
Tim Pope
6c19f1ddfb
More robut escaping of +cmd arguments
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1938
2022-02-02 11:53:01 -05:00
Tim Pope
a443104489
Add czs as :Git stash push --staged
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1941
2022-02-02 05:49:09 -05:00
Tim Pope
a93ceff61f
Support extensions.worktreeConfig
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1898
2022-01-13 14:06:42 -05:00
Tim Pope
f4d94c5985
Move CommonDir() from autoload to plugin
2022-01-11 18:47:38 -05:00
Tim Pope
bb4f9e660b
Add core.worktree to FAQ
2022-01-11 18:39:40 -05:00
Tim Pope
189e3c406e
Eliminate filereadable() guards by catching readfile() error
2022-01-11 18:36:36 -05:00
Tim Pope
944dc602c6
Require core.bare=true for bare repositories
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1920
2022-01-11 13:50:55 -05:00
Tim Pope
fa20e5e77c
Remove :silent from all :checktime uses
...
This can appear to hang with 'noautoread', or if the buffer has changed
in memory. In reality it's not hanging, it's just silenced the
interactive prompt.
Resolves: https://github.com/tpope/vim-fugitive/issues/1917
2022-01-10 11:08:29 -05:00
Tim Pope
57968b63c2
Support tab complete of :Git push remote \+branch
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1916
2022-01-05 11:10:57 -05:00
Tim Pope
88a97127d1
Account for optional escaping in tab complete
...
Tab complete results are always passed to fnameescape(), which can
result in the output having more backslashes than the input, causing
those results to be filtered out. Attempt to reconcile this.
References: https://github.com/tpope/vim-fugitive/issues/1916
2022-01-05 11:08:38 -05:00
Tim Pope
b6dbb97759
Extend lazy detection to netrw
...
The requires dropping support for b:netrw_curdir, which was added in
fecd42864a for the vague reason of
handling "unusually named netrw buffers". I'll figure out what to do
about those alleged buffers when one of them surfaces again.
2022-01-05 11:07:15 -05:00
Tim Pope
b1c3cdffc9
Fix status reload after staging entire section
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1912
2021-12-29 16:50:00 -05:00
Tim Pope
ee992c808c
Narrow application of broken jobwait() workaround
...
Neovim seemlingly forces a redraw if :sleep is called while defocused,
but only if at least one FocusGained/FocusLost autocommand is defined.
The purpose of this :sleep is to force the exit callback to run when
jobwait() erroneously refuses to do the job. Our exit callback removes
the job from the dictionary, so we can use the lack of a job key in any
dictionary as a signal that we can skip it. Hacks on top of hacks.
Resolves: https://github.com/tpope/vim-fugitive/issues/1909
References: https://github.com/tpope/vim-fugitive/issues/1857
2021-12-28 16:03:34 -05:00
Tim Pope
831fdab983
Simplify extraction of directory of buffer name
...
The behavior of :p is more predictable than I realized when I first
wrote this.
2021-12-28 16:03:34 -05:00
Tim Pope
da30818d17
Resize EDITOR window automatically when necessary
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1907
2021-12-24 12:53:00 -05:00
Tim Pope
ab57abf1d0
Don't feedkeys() into terminal window
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1908
2021-12-23 21:47:29 -05:00
Tim Pope
f18571e647
Remove redundant ":p" modification during detection
...
Every ":p" does I/O to check for a directory, so let's do away with the
belt-and-suspenders usage.
2021-12-23 15:00:14 -05:00
Tim Pope
3fb9beacbc
Fix possible infinite loop
2021-12-12 13:28:20 -05:00
Tim Pope
365231384c
Don't treat buftype=nofile buffer names as file names
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1905
2021-12-08 16:17:41 -05:00
Tim Pope
c04e80c6eb
Fix accidental :execute 0
2021-12-08 16:13:28 -05:00
Tim Pope
79c2b3f48d
Try nested autocmds for ReadCmd/WriteCmd
...
I'm trying to leverage OptionSet for something. Let's see if this
causes issues for anybody.
2021-12-07 09:17:47 -05:00
Tim Pope
2064312ad7
Don't reject invalid Git dir when detecting common dir
...
Consumers of this function should be giving us a valid Git dir, and if
they don't, returning an empty string will only make matters worse.
References: https://github.com/tpope/vim-fugitive/pull/1898
2021-12-01 20:05:47 -05:00
Tim Pope
c666c86882
Fix blame from stage buffer
...
References: https://github.com/tpope/vim-fugitive/issues/1892
2021-12-01 19:48:43 -05:00
Tim Pope
a099a2631c
Disable diff.suppressBlankEmpty for summary window diff
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1897
2021-12-01 19:27:29 -05:00
Tim Pope
82f2841bdf
Fix gf error in commit message outside of repository
2021-11-28 15:36:44 -05:00
Tim Pope
5a24c25275
fugitive.vim 3.6
...
* Fix support for older Vim 7 patch levels.
* Support copies on :Gclog --follow.
2021-11-25 14:53:57 -05:00
Tim Pope
e82332ee9e
Try to avoid trailing newline blame issues
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1892
2021-11-22 13:24:21 -05:00
Tim Pope
64bc1a3431
Remove dead code
...
The use of remove() here wouldn't actually work as it expects an index,
not a value.
2021-11-19 17:42:33 -05:00
Tim Pope
4a8db6b856
Support copies with :Gclog --follow
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1891
2021-11-19 17:19:30 -05:00
Tim Pope
3d5d23fe80
Remove q map stubs
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1890
2021-11-19 17:16:36 -05:00
Tim Pope
2dfaf17f9e
Use dummy events to prevent "No matching autocommands" message
...
This list of events was hand-curated to eliminate events already defined
elsewhere in the autoload file.
Resolves: https://github.com/tpope/vim-fugitive/issues/1887
2021-11-16 16:09:59 -05:00
Tim Pope
69ae31d402
Fix command execution on Vim 7
...
This worked on my test environment of 7.4.888, but did not work on
7.4.000.
References: https://github.com/tpope/vim-fugitive/issues/1889
2021-11-16 13:44:55 -05:00
Tim Pope
f9c0b8eafe
Fix readfile() usage
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1886
2021-11-15 20:54:19 -05:00
Tim Pope
e47121f8fd
Fix typo
2021-11-15 00:31:32 -05:00
Tim Pope
cd67d087df
fugitive.vim 3.5
...
* Lazy initialization.
* Make status buffer diff retrieval asynchronous.
* Support jump to diff from :Git log --name-status.
* Use smudge filters when viewing blobs.
* Provide User FugitiveEditor event.
* Provide FugitiveRemote() API function.
2021-11-15 00:17:52 -05:00
Tim Pope
b736e457b3
Provide FugitiveRemote()
2021-11-13 16:25:36 -05:00
Tim Pope
2e4ee0b5d6
Don't scroll :Git! window for paginated commands
...
References: https://github.com/tpope/vim-fugitive/issues/1832
2021-11-11 00:44:14 -05:00
Tim Pope
a6b823b8d0
Fix race condition on nvim 0.4
...
I could have sworn this wasn't necessary on 0.4, which is why I added
the extra clause, but I can consistently reproduce E716 now.
Resolves: https://github.com/tpope/vim-fugitive/issues/1881
2021-11-02 14:07:58 -04:00
Tim Pope
174fd6a39b
Revert "Use :redrawstatus rather than &ro = &ro"
...
Turns out :redrawstatus is a lot more aggressive and can prevent seeing
Fugitive output.
This reverts commit 6ad15506cc .
References: https://github.com/tpope/vim-fugitive/issues/1180
2021-10-27 03:17:44 -04:00
Tim Pope
6ad15506cc
Use :redrawstatus rather than &ro = &ro
...
References: https://github.com/tpope/vim-fugitive/issues/1180
2021-10-26 09:22:33 -04:00
Tim Pope
30933405bb
Support blame maps without filetype plugin on
...
References: https://github.com/tpope/vim-fugitive/issues/1745
2021-10-19 11:44:22 -04:00
Tim Pope
4d29c1d6a0
Provide for retrieving parsed remote URL
...
The plan is to expose this as FugitiveRemote(), but let's give it some
bake time before making it official.
2021-10-17 20:25:23 -04:00
Tim Pope
93f41ace7d
Move to beginning of line in "(" map
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1867
2021-10-17 11:22:10 -04:00
Tim Pope
d5a6419fcf
Guard against parallel status reload
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1863
2021-10-17 11:22:10 -04:00
Tim Pope
88c7f867cf
Further decouple #BufReadStatus() from v:cmdbang
2021-10-16 12:58:13 -04:00
Tim Pope
0615cd2baf
Ignore v:cmdbang when not in autocommand
2021-10-16 10:57:04 -04:00
Tim Pope
ca61174e9d
Remove leading slash when parsing scpremote:/~user
2021-10-16 10:43:42 -04:00
Tim Pope
a4c6fb74ee
Help file formatting fix
2021-10-16 10:43:42 -04:00
Tim Pope
2e66b3ad05
Don't show diff on root commits
...
The diff on a root commit is often large and seldom helpful, so let's
get rid of it. This will also be one less thing to worry about when
changing to a fugitive file type.
2021-10-12 12:34:43 -04:00
Tim Pope
e38d029500
Adjust encapsulation of escaped completion handling
...
Most calls to s:FilterEscape() pass the original escaped argument, so
we should fix the callers that don't.
2021-10-11 00:38:57 -04:00
Tim Pope
69f5fcbd45
Allow escaped characters in tab complete
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1859
2021-10-10 13:24:20 -04:00
Tim Pope
b540332a3e
Improve parallelism of status buffer with earlier diff
...
This is a trivial gain, but also trivial to implement.
2021-10-08 19:05:18 -04:00
Tim Pope
ae93dbea2e
Ensure jobstart on_exit runs when waiting
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1857
2021-10-08 19:05:18 -04:00
Tim Pope
bcf7478e6b
Make status buffer diff retrieval asynchronous
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1856
2021-10-06 14:45:36 -04:00
Tim Pope
a67854368e
Collapse all status buffer diffs on :edit!
...
References: https://github.com/tpope/vim-fugitive/issues/1563
2021-10-01 14:28:13 -04:00
Tim Pope
e2883a5426
Support reload on custom chmod and unlink events
...
These were recently added to eunuch.vim, but other plugins may use them
as well.
2021-09-30 12:43:23 -04:00
Tim Pope
194d63da4f
Restore laziness of status reload after write
...
This got lost in a refactor.
2021-09-30 12:43:23 -04:00
Tim Pope
dd39902e3d
Minor performance improvement to global map definition
2021-09-30 12:43:23 -04:00
Tim Pope
7e483dc60d
Show overflow sections as 255+ not 256
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1853
2021-09-29 16:59:38 -04:00
Tim Pope
7b05afd548
Add experimental behavior for X on commit line
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1847
2021-09-25 10:21:58 -04:00
Tim Pope
915c050724
Fix :GBrowse - destination
2021-09-25 10:20:09 -04:00
Tim Pope
142a0dc0c4
Fix wrong variable name in fugitive#RemoteUrl()
...
Resolves: https://github.com/tpope/vim-fugitive/pull/1843
2021-09-23 04:39:47 -04:00
Tim Pope
1352646890
Extract helper to parse fugitive#RemoteUrl() arguments
2021-09-19 14:44:42 -04:00
Tim Pope
e1d382b3e7
Fix resolution of scp style URLs
2021-09-19 14:44:42 -04:00
Tim Pope
3d67d23f47
Normalize path when parsing remote URL
...
Change an empty path to "/" as is the standard interpretation. And for
git:// and ssh:// URLs, change a leading "/~" to "~", like Git itself
does.
2021-09-19 12:26:14 -04:00
Tim Pope
f02217b776
Avoid repeat config retrieval in :GBrowse
2021-09-19 12:26:12 -04:00
Tim Pope
12c40427a0
Separate remote resolution from URL reassembly
2021-09-19 08:29:40 -04:00
Tim Pope
bb89a7a497
Invert flag for lazy initialization
...
I think this second argument might become an optional buffer number at
some point, so change the special value for lazy to an invalid buffer
number.
2021-09-19 07:54:03 -04:00
Tim Pope
a67e1f8189
Try to avoid interference by $GIT_DIR and $GIT_WORK_TREE
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1841
2021-09-17 06:16:58 -04:00
Tim Pope
27abc3f1bd
Respect 'splitright' instead of 'splitbelow' for :vertical
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1839
2021-09-16 08:13:00 -04:00
Tim Pope
67c4c031fa
Support jump to diff from :Git log --name-status
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1838
2021-09-14 18:19:16 -04:00
Tim Pope
79a6a1941d
Fix typo
2021-09-14 14:04:42 -04:00
Tim Pope
ba52c2b446
Make RemoteUrl() option parsing a bit less convoluted
2021-09-14 03:38:26 -04:00
Tim Pope
529311cec7
Fix check for wrong executable
2021-09-14 02:12:50 -04:00
Tim Pope
5f387d4783
Fix FugitiveRemoteUrl('origin', FugitiveConfig())
2021-09-14 00:06:58 -04:00
Tim Pope
5be8263f16
Override GPG_TTY to prevent terminal garbling
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1836
2021-09-13 21:05:03 -04:00
Tim Pope
1651cd7f20
Extract helper to determine PTY availability
...
I constantly have to ask about this to troubleshoot bug reports, so make
it easier to determine.
Also rename g:fugitive_pty to make it clearer that it's not a preference
but a debugging tool.
2021-09-13 16:58:42 -04:00
Tim Pope
e2927fb467
Force current buffer number for FugitiveStatusline()
...
This is normally the default, but might be different during an event
like FugitiveChanged.
2021-09-10 16:13:51 -04:00
Tim Pope
1a652c0cdf
Tab complete :Git ++options and --options
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1833
2021-09-10 16:11:39 -04:00
Tim Pope
6b1d90251e
Support lazy initialization in statusline indicator
...
Resolves: https://github.com/tpope/vim-fugitive/issues/1834
2021-09-10 15:51:47 -04:00
Tim Pope
bb4d1dd9a8
Eliminate internal use of FugitiveCommonDir()
...
Lead by example.
2021-09-10 15:51:41 -04:00
Tim Pope
b6545ad389
Fix inconsistency when scrolling :Git! preview window
...
Scrolling with win_execute() works fine while the command is running,
but once the job has finished, it fails to update the viewport until the
window is focused. I don't get it. It's not like the window knows a
job is running. The only obvious trigger I could find is that
'nobuflisted' is set once once the job completes, but even disabling
that behavior fails to rectify the problem. Screw it, manual focus
bouncing for everyone.
References: https://github.com/tpope/vim-fugitive/issues/1832
2021-09-10 02:47:21 -04:00
Tim Pope
be0abe0b21
Standardize <mods> handling for quickfix commands
...
Use <mods> for :copen rather than :cfirst, as that seems to be the more
useful of the two.
When I call :vertical copen, I get a window that is initially 10
columns wide, but which resizes to 20 columns upon blurring and
refocusing. Not sure what's up with that, but 10 columns is comically
narrow, so let's go ahead and open at 20 columns to begin with.
Resolves: https://github.com/tpope/vim-fugitive/issues/1831
2021-09-08 16:04:35 -04:00
Tim Pope
02eb2e871c
Fix typo in error message
2021-09-07 14:16:27 -04:00