diff options
author | Daniel Hahler <git@thequod.de> | 2019-08-26 08:47:37 +0200 |
---|---|---|
committer | Daniel Hahler <git@thequod.de> | 2019-08-26 09:39:00 +0200 |
commit | b2d6a6891e52254700ee2d81a8651c3e50466d84 (patch) | |
tree | d8b7939ac0e22274616f8729d58305b92143914d | |
parent | e3e0574cb3feac4f539383d47f82d0b6e04d8c9b (diff) | |
download | rneovim-b2d6a6891e52254700ee2d81a8651c3e50466d84.tar.gz rneovim-b2d6a6891e52254700ee2d81a8651c3e50466d84.tar.bz2 rneovim-b2d6a6891e52254700ee2d81a8651c3e50466d84.zip |
findoption_len: treat viminfo/viminfofile as aliases
Ref: https://github.com/neovim/neovim/pull/10672#issuecomment-524716824
-rw-r--r-- | src/nvim/option.c | 9 | ||||
-rw-r--r-- | src/nvim/options.lua | 15 | ||||
-rw-r--r-- | test/functional/options/defaults_spec.lua | 6 |
3 files changed, 19 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/test/functional/options/defaults_spec.lua b/test/functional/options/defaults_spec.lua index 415b526051..490a04186d 100644 --- a/test/functional/options/defaults_spec.lua +++ b/test/functional/options/defaults_spec.lua @@ -178,6 +178,12 @@ describe('startup defaults', function() eq({ f }, eval('v:oldfiles')) os.remove('Xtest-foo') rmdir('Xtest-userdata') + + -- Handles viminfo/viminfofile as alias for shada/shadafile. + eq('\n shadafile=', eval('execute("set shadafile?")')) + eq('\n shadafile=', eval('execute("set viminfofile?")')) + eq("\n shada=!,'100,<50,s10,h", eval('execute("set shada?")')) + eq("\n shada=!,'100,<50,s10,h", eval('execute("set viminfo?")')) end) it("'packpath'", function() |