mirror of
https://github.com/neovim/neovim.git
synced 2026-05-04 04:55:16 +00:00
vim-patch:9.1.1473: inconsistent range arg for :diffget/diffput (#34588)
Problem: inconsistent range arg for :diffget/diffput
Solution: fix the range specification, place the cursor for :diffput and
:diffget consistently on the last line (Yee Cheng Chin)
Previously, `:<range>diffget` only allowed using 1 or above in the range
value, making it impossible to use the command for a diff block at the
beginning of the file. Fix the range specification so the user can now
use 0 to specify the space before the first line. This allows
`:0,$+1diffget` to work to retrieve all the changes from the other file
instead of missing the first diff block. Also do this for `:diffput`.
Also, make `:diffput` work more similar to `:diffget`. Make it so that
if the cursor is on the last line and a new line is inserted in the
other file, doing `:diffput` will select that diff block below the line,
just like `:diffget` would.
Also clean up the logic a little bit for edge cases and for handling
line matched diff blocks better.
closes: vim/vim#17579
d75ab0cbf5
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
This commit is contained in:
@@ -752,7 +752,7 @@ M.cmds = {
|
||||
},
|
||||
{
|
||||
command = 'diffget',
|
||||
flags = bit.bor(RANGE, EXTRA, TRLBAR, MODIFY),
|
||||
flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, MODIFY),
|
||||
addr_type = 'ADDR_LINES',
|
||||
func = 'ex_diffgetput',
|
||||
},
|
||||
@@ -770,7 +770,7 @@ M.cmds = {
|
||||
},
|
||||
{
|
||||
command = 'diffput',
|
||||
flags = bit.bor(RANGE, EXTRA, TRLBAR),
|
||||
flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR),
|
||||
addr_type = 'ADDR_LINES',
|
||||
func = 'ex_diffgetput',
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user