aboutsummaryrefslogtreecommitdiff
path: root/scripts/genoptions.lua
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-12-03 16:49:30 +0300
committerZyX <kp-pav@yandex.ru>2017-12-03 16:49:30 +0300
commitc49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57 (patch)
treeb7e59c416d1435725c65f8952b6e55c70544d97e /scripts/genoptions.lua
parent62108c3b0be46936c83f6d4c98b44ceb5e6f77fd (diff)
parent27a577586eace687c47e7398845178208cae524a (diff)
downloadrneovim-c49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57.tar.gz
rneovim-c49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57.tar.bz2
rneovim-c49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57.zip
Merge branch 'master' into s-dash-stdin
Diffstat (limited to 'scripts/genoptions.lua')
-rw-r--r--scripts/genoptions.lua190
1 files changed, 0 insertions, 190 deletions
diff --git a/scripts/genoptions.lua b/scripts/genoptions.lua
deleted file mode 100644
index 9d7f235a3b..0000000000
--- a/scripts/genoptions.lua
+++ /dev/null
@@ -1,190 +0,0 @@
-if arg[1] == '--help' then
- print('Usage: genoptions.lua src/nvim options_file')
- os.exit(0)
-end
-
-local nvimsrcdir = arg[1]
-local options_file = arg[2]
-
-package.path = nvimsrcdir .. '/?.lua;' .. package.path
-
-local opt_fd = io.open(options_file, 'w')
-
-local w = function(s)
- if s:match('^ %.') then
- opt_fd:write(s .. ',\n')
- else
- opt_fd:write(s .. '\n')
- end
-end
-
-local options = require('options')
-
-cstr = options.cstr
-
-local type_flags={
- bool='P_BOOL',
- number='P_NUM',
- string='P_STRING',
-}
-
-local redraw_flags={
- statuslines='P_RSTAT',
- current_window='P_RWIN',
- current_window_only='P_RWINONLY',
- current_buffer='P_RBUF',
- all_windows='P_RALL',
- everything='P_RCLR',
- curswant='P_CURSWANT',
-}
-
-local list_flags={
- comma='P_COMMA',
- onecomma='P_ONECOMMA',
- flags='P_FLAGLIST',
- flagscomma='P_COMMA|P_FLAGLIST',
-}
-
-local get_flags = function(o)
- local ret = {type_flags[o.type]}
- local add_flag = function(f)
- ret[1] = ret[1] .. '|' .. f
- end
- if o.list then
- add_flag(list_flags[o.list])
- end
- if o.redraw then
- for _, r_flag in ipairs(o.redraw) do
- add_flag(redraw_flags[r_flag])
- end
- end
- if o.expand then
- add_flag('P_EXPAND')
- if o.expand == 'nodefault' then
- add_flag('P_NO_DEF_EXP')
- end
- end
- for _, flag_desc in ipairs({
- {'alloced'},
- {'nodefault'},
- {'no_mkrc'},
- {'vi_def'},
- {'vim'},
- {'secure'},
- {'gettext'},
- {'noglob'},
- {'normal_fname_chars', 'P_NFNAME'},
- {'pri_mkrc'},
- {'deny_in_modelines', 'P_NO_ML'},
- {'deny_duplicates', 'P_NODUP'},
- }) do
- local key_name = flag_desc[1]
- local def_name = flag_desc[2] or ('P_' .. key_name:upper())
- if o[key_name] then
- add_flag(def_name)
- end
- end
- return ret[1]
-end
-
-local get_cond
-get_cond = function(c, base_string)
- local cond_string = base_string or '#if '
- if type(c) == 'table' then
- cond_string = cond_string .. get_cond(c[1], '')
- for i, subc in ipairs(c) do
- if i > 1 then
- cond_string = cond_string .. ' && ' .. get_cond(subc, '')
- end
- end
- elseif c:sub(1, 1) == '!' then
- cond_string = cond_string .. '!defined(' .. c:sub(2) .. ')'
- else
- cond_string = cond_string .. 'defined(' .. c .. ')'
- end
- return cond_string
-end
-
-value_dumpers = {
- ['function']=function(v) return v() end,
- string=cstr,
- boolean=function(v) return v and 'true' or 'false' end,
- number=function(v) return ('%iL'):format(v) end,
- ['nil']=function(v) return '0L' end,
-}
-
-local get_value = function(v)
- return '(char_u *) ' .. value_dumpers[type(v)](v)
-end
-
-local get_defaults = function(d)
- return '{' .. get_value(d.vi) .. ', ' .. get_value(d.vim) .. '}'
-end
-
-local defines = {}
-
-local dump_option = function(i, o)
- w(' [' .. ('%u'):format(i - 1) .. ']={')
- w(' .fullname=' .. cstr(o.full_name))
- if o.abbreviation then
- w(' .shortname=' .. cstr(o.abbreviation))
- end
- w(' .flags=' .. get_flags(o))
- if o.enable_if then
- w(get_cond(o.enable_if))
- end
- if o.varname then
- w(' .var=(char_u *)&' .. o.varname)
- elseif #o.scope == 1 and o.scope[1] == 'window' then
- w(' .var=VAR_WIN')
- end
- if o.enable_if then
- w('#endif')
- end
- if #o.scope == 1 and o.scope[1] == 'global' then
- w(' .indir=PV_NONE')
- else
- assert (#o.scope == 1 or #o.scope == 2)
- assert (#o.scope == 1 or o.scope[1] == 'global')
- local min_scope = o.scope[#o.scope]
- local varname = o.pv_name or o.varname or (
- 'p_' .. (o.abbreviation or o.full_name))
- local pv_name = (
- 'OPT_' .. min_scope:sub(1, 3):upper() .. '(' .. (
- min_scope:sub(1, 1):upper() .. 'V_' .. varname:sub(3):upper()
- ) .. ')'
- )
- if #o.scope == 2 then
- pv_name = 'OPT_BOTH(' .. pv_name .. ')'
- end
- defines['PV_' .. varname:sub(3):upper()] = pv_name
- w(' .indir=' .. pv_name)
- end
- if o.defaults then
- if o.defaults.condition then
- w(get_cond(o.defaults.condition))
- end
- w(' .def_val=' .. get_defaults(o.defaults.if_true))
- if o.defaults.condition then
- if o.defaults.if_false then
- w('#else')
- w(' .def_val=' .. get_defaults(o.defaults.if_false))
- end
- w('#endif')
- end
- end
- w(' },')
-end
-
-w('static vimoption_T options[] = {')
-for i, o in ipairs(options.options) do
- dump_option(i, o)
-end
-w(' [' .. ('%u'):format(#options.options) .. ']={.fullname=NULL}')
-w('};')
-w('')
-
-for k, v in pairs(defines) do
- w('#define ' .. k .. ' ' .. v)
-end
-opt_fd:close()