aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/generators/gen_options.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/generators/gen_options.lua')
-rw-r--r--src/nvim/generators/gen_options.lua17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/nvim/generators/gen_options.lua b/src/nvim/generators/gen_options.lua
index 3a355634f3..2b17add7ba 100644
--- a/src/nvim/generators/gen_options.lua
+++ b/src/nvim/generators/gen_options.lua
@@ -1,4 +1,5 @@
local options_file = arg[1]
+local options_enum_file = arg[2]
local opt_fd = assert(io.open(options_file, 'w'))
@@ -41,6 +42,12 @@ local list_flags = {
flagscomma = 'P_COMMA|P_FLAGLIST',
}
+--- @param s string
+--- @return string
+local title_case = function(s)
+ return s:sub(1, 1):upper() .. s:sub(2):lower()
+end
+
--- @param o vim.option_meta
--- @return string
local function get_flags(o)
@@ -229,4 +236,14 @@ w('')
for _, v in ipairs(defines) do
w('#define ' .. v[1] .. ' ' .. v[2])
end
+
+-- Generate options enum file
+opt_fd = assert(io.open(options_enum_file, 'w'))
+
+w('typedef enum {')
+for i, o in ipairs(options.options) do
+ w((' kOpt%s = %u,'):format(title_case(o.full_name), i - 1))
+end
+w('} OptIndex;')
+
opt_fd:close()