mirror of
https://github.com/neovim/neovim.git
synced 2025-10-16 23:06:14 +00:00
vim-patch:9.1.0537: signed number detection for CTRL-X/A can be improved (#29590)
Problem: signed number detection for CTRL-X/A can be improved
(Chris Patuzzo)
Solution: Add the new "blank" value for the 'nrformat' setting. This
will make Vim assume a signed number only if there is a blank
in front of the sign.
(distobs)
fixes: vim/vim#15033
closes: vim/vim#15110
25ac6d67d9
Co-authored-by: distobs <cuppotatocake@gmail.com>
This commit is contained in:
@@ -841,6 +841,44 @@ func Test_increment_unsigned()
|
||||
set nrformats-=unsigned
|
||||
endfunc
|
||||
|
||||
" Try incrementing/decrementing a number when nrformats contains blank
|
||||
func Test_increment_blank()
|
||||
set nrformats+=blank
|
||||
|
||||
" Signed
|
||||
call setline(1, '0')
|
||||
exec "norm! gg0\<C-X>"
|
||||
call assert_equal('-1', getline(1))
|
||||
|
||||
call setline(1, '3')
|
||||
exec "norm! gg010\<C-X>"
|
||||
call assert_equal('-7', getline(1))
|
||||
|
||||
call setline(1, '-0')
|
||||
exec "norm! gg0\<C-X>"
|
||||
call assert_equal("-1", getline(1))
|
||||
|
||||
" Unsigned
|
||||
" NOTE: 18446744073709551615 == 2^64 - 1
|
||||
call setline(1, 'a-18446744073709551615')
|
||||
exec "norm! gg0\<C-A>"
|
||||
call assert_equal('a-18446744073709551615', getline(1))
|
||||
|
||||
call setline(1, 'a-18446744073709551615')
|
||||
exec "norm! gg0\<C-A>"
|
||||
call assert_equal('a-18446744073709551615', getline(1))
|
||||
|
||||
call setline(1, 'a-18446744073709551614')
|
||||
exec "norm! gg08\<C-A>"
|
||||
call assert_equal('a-18446744073709551615', getline(1))
|
||||
|
||||
call setline(1, 'a-1')
|
||||
exec "norm! gg0\<C-A>"
|
||||
call assert_equal('a-2', getline(1))
|
||||
|
||||
set nrformats-=blank
|
||||
endfunc
|
||||
|
||||
func Test_in_decrement_large_number()
|
||||
" NOTE: 18446744073709551616 == 2^64
|
||||
call setline(1, '18446744073709551616')
|
||||
|
Reference in New Issue
Block a user