diff options
author | Daniel Hahler <git@thequod.de> | 2019-08-26 10:23:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-26 10:23:12 +0200 |
commit | b12b01a82890d4b2fb424ac9e2f8a0ad4c5d4706 (patch) | |
tree | 4d1a9a02382466c1ad05d606ec8c38bafea17373 /src | |
parent | f79079947411e39ae529f98e83204ee9f7e05300 (diff) | |
parent | 233597152a49748aff5e4851bd4bcdeabb4a66fd (diff) | |
download | rneovim-b12b01a82890d4b2fb424ac9e2f8a0ad4c5d4706.tar.gz rneovim-b12b01a82890d4b2fb424ac9e2f8a0ad4c5d4706.tar.bz2 rneovim-b12b01a82890d4b2fb424ac9e2f8a0ad4c5d4706.zip |
Merge pull request #10850 from blueyed/option-alias
findoption_len: treat viminfo/viminfofile as aliases
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/option.c | 9 | ||||
-rw-r--r-- | src/nvim/options.lua | 15 | ||||
-rw-r--r-- | src/nvim/testdir/test_mksession.vim | 42 |
3 files changed, 55 insertions, 11 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c index c109e4e521..fae4507f1e 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -4643,6 +4643,15 @@ int findoption_len(const char *const arg, const size_t len) } if (s == NULL) { opt_idx = -1; + } else { + // Nvim: handle option aliases. + if (STRNCMP(options[opt_idx].fullname, "viminfo", 7) == 0) { + if (STRLEN(options[opt_idx].fullname) == 7) { + return findoption_len("shada", 5); + } + assert(STRCMP(options[opt_idx].fullname, "viminfofile") == 0); + return findoption_len("shadafile", 9); + } } return opt_idx; } diff --git a/src/nvim/options.lua b/src/nvim/options.lua index 3280c92b2d..52e788944b 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -2659,21 +2659,14 @@ return { defaults={if_true={vi="folds,options,cursor,curdir"}} }, { + -- Alias for "shada". full_name='viminfo', abbreviation='vi', - type='string', list='onecomma', scope={'global'}, - deny_duplicates=true, - secure=true, - varname='p_shada', - defaults={if_true={vi="", vim="!,'100,<50,s10,h"}} + type='string', scope={'global'}, nodefault=true, }, { + -- Alias for "shadafile". full_name='viminfofile', abbreviation='vif', - type='string', list='onecomma', scope={'global'}, - deny_duplicates=true, - vi_def=true, - secure=true, - varname='p_shadafile', - defaults={if_true={vi=""}} + type='string', scope={'global'}, nodefault=true, }, { full_name='virtualedit', abbreviation='ve', diff --git a/src/nvim/testdir/test_mksession.vim b/src/nvim/testdir/test_mksession.vim index 4e6d96ee48..0e56ed2ff3 100644 --- a/src/nvim/testdir/test_mksession.vim +++ b/src/nvim/testdir/test_mksession.vim @@ -267,4 +267,46 @@ func Test_mksession_quote_in_filename() call delete('Xtest_mks_quoted.out') endfunc +func s:ClearMappings() + mapclear + omapclear + mapclear! + lmapclear + tmapclear +endfunc + +func Test_mkvimrc() + let entries = [ + \ ['', 'nothing', '<Nop>'], + \ ['n', 'normal', 'NORMAL'], + \ ['v', 'visual', 'VISUAL'], + \ ['s', 'select', 'SELECT'], + \ ['x', 'visualonly', 'VISUALONLY'], + \ ['o', 'operator', 'OPERATOR'], + \ ['i', 'insert', 'INSERT'], + \ ['l', 'lang', 'LANG'], + \ ['c', 'command', 'COMMAND'], + \ ['t', 'terminal', 'TERMINAL'], + \ ] + for entry in entries + exe entry[0] .. 'map ' .. entry[1] .. ' ' .. entry[2] + endfor + + mkvimrc Xtestvimrc + + call s:ClearMappings() + for entry in entries + call assert_equal('', maparg(entry[1], entry[0])) + endfor + + source Xtestvimrc + + for entry in entries + call assert_equal(entry[2], maparg(entry[1], entry[0])) + endfor + + call s:ClearMappings() + call delete('Xtestvimrc') +endfunc + " vim: shiftwidth=2 sts=2 expandtab |