diff options
author | Famiu Haque <famiuhaque@proton.me> | 2023-10-14 22:19:11 +0600 |
---|---|---|
committer | Famiu Haque <famiuhaque@proton.me> | 2023-10-30 21:38:02 +0600 |
commit | e19cc9c9b715d8171f7940632b8855104b5290b6 (patch) | |
tree | ce65d9beead39176451840b631556eabe7e5a0b3 /runtime | |
parent | 8405649f92a8a8eb254944eca15e8b0169cbb6fb (diff) | |
download | rneovim-e19cc9c9b715d8171f7940632b8855104b5290b6.tar.gz rneovim-e19cc9c9b715d8171f7940632b8855104b5290b6.tar.bz2 rneovim-e19cc9c9b715d8171f7940632b8855104b5290b6.zip |
refactor(options)!: unify `set_option` and `set_string_option`
While the interfaces for setting number and boolean options are now unified by #25394, there is still a separate `set_string_option` function that is used for setting a string option. This PR removes that function and merges it with set_option.
BREAKING CHANGE: `v:option_old` is now the old global value for all global-local options, instead of just string global-local options. Local value for a global-local number/boolean option is now unset when the option is set (e.g. using `:set` or `nvim_set_option_value`) without a scope, which means they now behave the same way as string options.
Ref: #25672
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/doc/autocmd.txt | 9 | ||||
-rw-r--r-- | runtime/doc/news.txt | 7 | ||||
-rw-r--r-- | runtime/doc/vim_diff.txt | 7 |
3 files changed, 16 insertions, 7 deletions
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index 7ca9996e15..4b36a7d4ec 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -778,11 +778,10 @@ OptionSet After setting an option (except during This does not set |<abuf>|, you could use |bufnr()|. - Note that when setting a |global-local| string - option with |:set|, then |v:option_old| is the - old global value. However, for all other kinds - of options (local string options, global-local - number options, ...) it is the old local + Note that when setting a |global-local| option + with |:set|, then |v:option_old| is the old + global value. However, for all options that + are not global-local it is the old local value. OptionSet is not triggered on startup and for diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index c090cfe166..d1191bef9a 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -73,7 +73,12 @@ The following changes may require adaptations in user config or plugins. • |OptionSet| autocommand args |v:option_new|, |v:option_old|, |v:option_oldlocal|, |v:option_oldglobal| now have the type of the option - instead of always being strings. + instead of always being strings. |v:option_old| is now the old global value + for all global-local options, instead of just string global-local options. + +• Local value for a global-local number/boolean option is now unset when + the option is set (e.g. using |:set| or |nvim_set_option_value()|) without a + scope, which means they now behave the same way as string options. ============================================================================== NEW FEATURES *news-features* diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 7d0047bb1d..8249179187 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -289,6 +289,10 @@ Normal commands: |Q| replays the last recorded macro instead of switching to Ex mode (|gQ|). Options: + Local values for global-local number/boolean options are unset when the + option is set without a scope (e.g. by using |:set|), similarly to how + global-local string options work. + 'autoread' works in the terminal (if it supports "focus" events) 'cpoptions' flags: |cpo-_| 'diffopt' "linematch" feature @@ -381,7 +385,8 @@ Variables: |v:windowid| is always available (for use by external UIs) |OptionSet| autocommand args |v:option_new|, |v:option_old|, |v:option_oldlocal|, |v:option_oldglobal| have the type of the option - instead of always being strings. + instead of always being strings. |v:option_old| is now the old global value + for all global-local options, instead of just string global-local options. Vimscript: |:redir| nested in |execute()| works. |