diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/gen/gen_eval_files.lua | 12 | ||||
-rw-r--r-- | src/gen/gen_help_html.lua | 22 | ||||
-rw-r--r-- | src/nvim/CMakeLists.txt | 3 |
3 files changed, 7 insertions, 30 deletions
diff --git a/src/gen/gen_eval_files.lua b/src/gen/gen_eval_files.lua index 74e45507e5..f99f6bafbd 100755 --- a/src/gen/gen_eval_files.lua +++ b/src/gen/gen_eval_files.lua @@ -766,18 +766,8 @@ local function scope_more_doc(o) end --- @param x string ---- @return string local function dedent(x) - local xs = split(x) - local leading_ws = xs[1]:match('^%s*') --[[@as string]] - local leading_ws_pat = '^' .. leading_ws - - for i in ipairs(xs) do - local strip_pat = xs[i]:match(leading_ws_pat) and leading_ws_pat or '^%s*' - xs[i] = xs[i]:gsub(strip_pat, '') - end - - return table.concat(xs, '\n') + return (vim.text.indent(0, (x:gsub('\n%s-([\n]?)$', '\n%1')))) end --- @return table<string,vim.option_meta> diff --git a/src/gen/gen_help_html.lua b/src/gen/gen_help_html.lua index 53a65fd65f..57210f6ac1 100644 --- a/src/gen/gen_help_html.lua +++ b/src/gen/gen_help_html.lua @@ -148,10 +148,6 @@ local function url_encode(s) ) end -local function expandtabs(s) - return s:gsub('\t', (' '):rep(8)) --[[ @as string ]] -end - local function to_titlecase(s) local text = '' for w in vim.gsplit(s, '[ \t]+') do @@ -275,25 +271,13 @@ end --- --- Blank lines (empty or whitespace-only) are ignored. local function get_indent(s) - local min_indent = nil - for line in vim.gsplit(s, '\n') do - if line and not is_blank(line) then - local ws = expandtabs(line:match('^%s+') or '') - min_indent = (not min_indent or ws:len() < min_indent) and ws:len() or min_indent - end - end - return min_indent or 0 + local _, indent = vim.text.indent(0, s, { expandtab = 8 }) + return indent end --- Removes the common indent level, after expanding tabs to 8 spaces. local function trim_indent(s) - local indent_size = get_indent(s) - local trimmed = '' - for line in vim.gsplit(s, '\n') do - line = expandtabs(line) - trimmed = ('%s%s\n'):format(trimmed, line:sub(indent_size + 1)) - end - return trimmed:sub(1, -2) + return vim.text.indent(0, s, { expandtab = 8 }) end --- Gets raw buffer text in the node's range (+/- an offset), as a newline-delimited string. diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 8112045d11..36bcd5fbce 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -342,6 +342,7 @@ set(LUA_KEYMAP_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/keymap.lua) set(LUA_LOADER_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/loader.lua) set(LUA_OPTIONS_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/_options.lua) set(LUA_SHARED_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/shared.lua) +set(LUA_TEXT_MODULE_SOURCE ${NVIM_RUNTIME_DIR}/lua/vim/text.lua) file(GLOB API_HEADERS CONFIGURE_DEPENDS api/*.h) list(REMOVE_ITEM API_HEADERS ${CMAKE_CURRENT_LIST_DIR}/api/ui_events.in.h) @@ -624,6 +625,7 @@ add_custom_command( ${LUA_DEFAULTS_MODULE_SOURCE} "vim._defaults" ${LUA_OPTIONS_MODULE_SOURCE} "vim._options" ${LUA_SHARED_MODULE_SOURCE} "vim.shared" + ${LUA_TEXT_MODULE_SOURCE} "vim.text" DEPENDS ${CHAR_BLOB_GENERATOR} ${LUA_INIT_PACKAGES_MODULE_SOURCE} @@ -637,6 +639,7 @@ add_custom_command( ${LUA_DEFAULTS_MODULE_SOURCE} ${LUA_OPTIONS_MODULE_SOURCE} ${LUA_SHARED_MODULE_SOURCE} + ${LUA_TEXT_MODULE_SOURCE} VERBATIM ) |