diff options
| author | Kyle <50718101+kylesower@users.noreply.github.com> | 2026-06-28 12:20:56 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-28 13:20:56 -0400 |
| commit | f34ee3da80e864ff545169bc2ced856bf5822260 (patch) | |
| tree | c2df99a0bb3373efbc88cd3e0d66da26e328087f /runtime/lua/vim/_meta | |
| parent | a5aa62e37b82214a1d4d1e0a54d193b155fb340c (diff) | |
| download | rneovim-f34ee3da80e864ff545169bc2ced856bf5822260.tar.gz rneovim-f34ee3da80e864ff545169bc2ced856bf5822260.tar.bz2 rneovim-f34ee3da80e864ff545169bc2ced856bf5822260.zip | |
feat(api): nvim_set_option_value(operation=...) #39849
Problem:
`nvim_set_option_value` cannot "update" options similar to `:set opt=`,
`:set opt+=`, etc. The Lua impls of "vim.opt" / "vim.o" have incomplete,
bespoke reimplementations of those operations.
ref #38420
Solution:
- Add `operation` param to `nvim_set_option_value`, which may be "set",
"append", "prepend", or "remove".
- Use this feature to implement `vim.opt` / `vim.o`.
Diffstat (limited to 'runtime/lua/vim/_meta')
| -rw-r--r-- | runtime/lua/vim/_meta/api.gen.lua | 6 | ||||
| -rw-r--r-- | runtime/lua/vim/_meta/api_keysets.gen.lua | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/runtime/lua/vim/_meta/api.gen.lua b/runtime/lua/vim/_meta/api.gen.lua index c596bee759..fcfe124b26 100644 --- a/runtime/lua/vim/_meta/api.gen.lua +++ b/runtime/lua/vim/_meta/api.gen.lua @@ -2305,12 +2305,18 @@ function vim.api.nvim_set_option(name, value) end --- @param value any New option value --- @param opts vim.api.keyset.option Optional parameters --- - buf: Buffer number. Used for setting buffer local option. +--- - dry_run: (`boolean?`, default: false) If true, then the +--- option value won't be set. +--- - operation: One of "set", "append", "prepend", or "remove". +--- Corresponds to `:set=`, `:set+=`, `:set^=`, and `:set-=`. +--- Default is "set". --- - scope: One of "global" or "local". Analogous to --- `:setglobal` and `:setlocal`, respectively. --- - tab: `tab-ID` for tab-local options (currently only 'cmdheight'). Tabpage 0 --- means the current tabpage. If a non-current tab is given, the value will take --- effect when it is switched-to. --- - win: `window-ID`. Used for setting window local option. +--- @return any # Option value function vim.api.nvim_set_option_value(name, value, opts) end --- Sets a global (g:) variable. diff --git a/runtime/lua/vim/_meta/api_keysets.gen.lua b/runtime/lua/vim/_meta/api_keysets.gen.lua index 3f5a465984..905d908811 100644 --- a/runtime/lua/vim/_meta/api_keysets.gen.lua +++ b/runtime/lua/vim/_meta/api_keysets.gen.lua @@ -381,7 +381,9 @@ error('Cannot require a meta file') --- @class vim.api.keyset.option --- @field buf? integer +--- @field dry_run? boolean --- @field filetype? string +--- @field operation? string --- @field scope? string --- @field tab? integer --- @field win? integer |