aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/_meta
diff options
context:
space:
mode:
authorKyle <50718101+kylesower@users.noreply.github.com>2026-06-28 12:20:56 -0500
committerGitHub <noreply@github.com>2026-06-28 13:20:56 -0400
commitf34ee3da80e864ff545169bc2ced856bf5822260 (patch)
treec2df99a0bb3373efbc88cd3e0d66da26e328087f /runtime/lua/vim/_meta
parenta5aa62e37b82214a1d4d1e0a54d193b155fb340c (diff)
downloadrneovim-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.lua6
-rw-r--r--runtime/lua/vim/_meta/api_keysets.gen.lua2
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