From c3f6eb6ec16422575c2b262de0d8ac49ce54d756 Mon Sep 17 00:00:00 2001 From: Mat Jones Date: Fri, 15 Dec 2023 07:54:02 -0500 Subject: [PATCH] chore(nvim): Replace all vim.tbl_filter and vim.tbl_map with vim.iter variants --- nvim/lua/my/configure/heirline/shared.lua | 42 ++++++++++-------- nvim/lua/my/configure/heirline/statusline.lua | 17 +++++--- nvim/lua/my/configure/heirline/winbar.lua | 43 +++++++++++-------- nvim/lua/my/configure/mini_files.lua | 18 +++++--- nvim/lua/my/legendary/autocmds.lua | 14 +++--- nvim/lua/my/legendary/commands.lua | 4 +- nvim/lua/my/legendary/keymap.lua | 4 +- nvim/lua/my/lsp/filetypes.lua | 27 ++++++------ 8 files changed, 97 insertions(+), 72 deletions(-) diff --git a/nvim/lua/my/configure/heirline/shared.lua b/nvim/lua/my/configure/heirline/shared.lua index 73f4fb6c..c7039922 100644 --- a/nvim/lua/my/configure/heirline/shared.lua +++ b/nvim/lua/my/configure/heirline/shared.lua @@ -54,9 +54,12 @@ local diagnostics_base = { init = function(self) local all_diagnostics = vim.diagnostic.get(0) for key, severity in pairs(severities) do - self[key] = #vim.tbl_filter(function(d) - return d.severity == severity - end, all_diagnostics) + self[key] = #vim + .iter(all_diagnostics) + :filter(function(d) + return d.severity == severity + end) + :totable() end end, } @@ -65,22 +68,25 @@ function M.Diagnostics(is_winbar, bg) bg = bg or 'bg_statusline' return utils.insert( diagnostics_base, - unpack(vim.tbl_map(function(severity) - local component = { - provider = function(self) - return string.format('%s%s ', icons[severity], self[severity]) - end, - hl = function() - return { fg = utils.get_highlight(string.format('DiagnosticSign%s', severity_hl[severity])).fg, bg = bg } - end, - } - if is_winbar then - component.condition = function(self) - return self[severity] > 0 + unpack(vim + .iter(severities_order) + :map(function(severity) + local component = { + provider = function(self) + return string.format('%s%s ', icons[severity], self[severity]) + end, + hl = function() + return { fg = utils.get_highlight(string.format('DiagnosticSign%s', severity_hl[severity])).fg, bg = bg } + end, + } + if is_winbar then + component.condition = function(self) + return self[severity] > 0 + end end - end - return component - end, severities_order)) + return component + end) + :totable()) ) end diff --git a/nvim/lua/my/configure/heirline/statusline.lua b/nvim/lua/my/configure/heirline/statusline.lua index 909c23c2..4951c082 100644 --- a/nvim/lua/my/configure/heirline/statusline.lua +++ b/nvim/lua/my/configure/heirline/statusline.lua @@ -136,13 +136,16 @@ local function unsaved_count() if #vim.fn.expand('%') == 0 then return 0 else - return #vim.tbl_filter(function(buf) - return vim.bo[buf].ft ~= 'minifiles' - and vim.bo[buf].ft ~= 'dap-repl' - and vim.bo[buf].bt ~= 'acwrite' - and vim.bo[buf].modifiable - and vim.bo[buf].modified - end, vim.api.nvim_list_bufs()) + return #vim + .iter(vim.api.nvim_list_bufs()) + :filter(function(buf) + return vim.bo[buf].ft ~= 'minifiles' + and vim.bo[buf].ft ~= 'dap-repl' + and vim.bo[buf].bt ~= 'acwrite' + and vim.bo[buf].modifiable + and vim.bo[buf].modified + end) + :totable() end end diff --git a/nvim/lua/my/configure/heirline/winbar.lua b/nvim/lua/my/configure/heirline/winbar.lua index 5c2858e3..266580a3 100644 --- a/nvim/lua/my/configure/heirline/winbar.lua +++ b/nvim/lua/my/configure/heirline/winbar.lua @@ -2,22 +2,26 @@ local conditions = require('heirline.conditions') local sep = require('my.configure.heirline.separators') local function get_current_filenames() - local listed_buffers = vim.tbl_filter(function(bufnr) - return vim.bo[bufnr].buflisted and vim.api.nvim_buf_is_loaded(bufnr) - end, vim.api.nvim_list_bufs()) + local listed_buffers = vim + .iter(vim.api.nvim_list_bufs()) + :filter(function(bufnr) + return vim.bo[bufnr].buflisted and vim.api.nvim_buf_is_loaded(bufnr) + end) + :totable() - return vim.tbl_map(vim.api.nvim_buf_get_name, listed_buffers) + return vim.iter(listed_buffers):map(vim.api.nvim_buf_get_name):totable() end -- Get unique name for the current buffer local function get_unique_filename(filename) - local filenames = vim.tbl_filter(function(filename_other) - return filename_other ~= filename - end, get_current_filenames()) - - -- Reverse filenames in order to compare their names + local filenames = vim + .iter(get_current_filenames()) + :filter(function(filename_other) + return filename_other ~= filename + end) + :map(string.reverse) + :totable() -- Reverse filenames in order to compare their names filename = string.reverse(filename) - filenames = vim.tbl_map(string.reverse, filenames) local index @@ -25,15 +29,18 @@ local function get_unique_filename(filename) -- find the minimum index `i` where the i-th character is different for the two filenames -- After doing it for every filename, get the maximum value of `i` if next(filenames) then - index = math.max(unpack(vim.tbl_map(function(filename_other) - for i = 1, #filename do - -- Compare i-th character of both names until they aren't equal - if filename:sub(i, i) ~= filename_other:sub(i, i) then - return i + index = math.max(unpack(vim + .iter(filenames) + :map(function(filename_other) + for i = 1, #filename do + -- Compare i-th character of both names until they aren't equal + if filename:sub(i, i) ~= filename_other:sub(i, i) then + return i + end end - end - return 1 - end, filenames))) + return 1 + end) + :totable())) else index = 1 end diff --git a/nvim/lua/my/configure/mini_files.lua b/nvim/lua/my/configure/mini_files.lua index 638ac3c6..0bb3f85a 100644 --- a/nvim/lua/my/configure/mini_files.lua +++ b/nvim/lua/my/configure/mini_files.lua @@ -50,9 +50,12 @@ return { -- like I would have to in `content.filter` above is too slow. Here we can give it _all_ the entries -- at once, which is much more performant. local all_paths = table.concat( - vim.tbl_map(function(entry) - return entry.path - end, entries), + vim + .iter(entries) + :map(function(entry) + return entry.path + end) + :totable(), '\n' ) local output_lines = {} @@ -72,9 +75,12 @@ return { vim.fn.chansend(job_id, all_paths) vim.fn.chanclose(job_id, 'stdin') vim.fn.jobwait({ job_id }) - return require('mini.files').default_sort(vim.tbl_filter(function(entry) - return not vim.tbl_contains(output_lines, entry.path) - end, entries)) + return require('mini.files').default_sort(vim + .iter(entries) + :filter(function(entry) + return not vim.tbl_contains(output_lines, entry.path) + end) + :totable()) end, }, mappings = { diff --git a/nvim/lua/my/legendary/autocmds.lua b/nvim/lua/my/legendary/autocmds.lua index 5c5f9032..caeb683a 100644 --- a/nvim/lua/my/legendary/autocmds.lua +++ b/nvim/lua/my/legendary/autocmds.lua @@ -56,9 +56,9 @@ function M.lsp_autocmds(bufnr, server_name) } if - #vim.tbl_filter(function(autocmd) - return autocmd.buflocal == true and autocmd.buffer == bufnr and autocmd.event == 'CursorHold' - end, autocmds) == 0 + not vim.iter(autocmds):find(function(autocmd) + return autocmd.buflocal == true and autocmd.buffer == bufnr and autocmd.event == 'CursorHold' + end) then table.insert(augroup, { 'CursorHold', @@ -71,10 +71,10 @@ function M.lsp_autocmds(bufnr, server_name) }) end - if #vim.tbl_filter(function(autocmd) - return autocmd.buflocal == true and autocmd.buffer == bufnr and autocmd.event == 'BufWritePost' - end, autocmds) - == 0 + if + not vim.iter(autocmds):find(function(autocmd) + return autocmd.buflocal == true and autocmd.buffer == bufnr and autocmd.event == 'BufWritePost' + end) then table.insert(augroup, { 'BufWritePost', diff --git a/nvim/lua/my/legendary/commands.lua b/nvim/lua/my/legendary/commands.lua index 61f48ba6..48d49471 100644 --- a/nvim/lua/my/legendary/commands.lua +++ b/nvim/lua/my/legendary/commands.lua @@ -65,9 +65,9 @@ function M.default_commands() { ':Plugins', function() - local plugin_shorthands = vim.tbl_map(function(plugin) + local plugin_shorthands = vim.iter(require('lazy').plugins()):map(function(plugin) return plugin[1] - end, require('lazy').plugins()) + end) vim.ui.select(plugin_shorthands, { prompt = 'Select Plugin' }, function(selected) if not selected then return diff --git a/nvim/lua/my/legendary/keymap.lua b/nvim/lua/my/legendary/keymap.lua index 6a7f4451..918baa12 100644 --- a/nvim/lua/my/legendary/keymap.lua +++ b/nvim/lua/my/legendary/keymap.lua @@ -106,9 +106,9 @@ end function M.lsp_keymaps(bufnr) -- if the buffer already has LSP keymaps bound, do nothing if - #vim.tbl_filter(function(keymap) + vim.iter(vim.api.nvim_buf_get_keymap(bufnr, 'n')):find(function(keymap) return (keymap.desc or ''):lower() == 'rename symbol' - end, vim.api.nvim_buf_get_keymap(bufnr, 'n')) > 0 + end) then return {} end diff --git a/nvim/lua/my/lsp/filetypes.lua b/nvim/lua/my/lsp/filetypes.lua index 4662020d..bdf16aa7 100644 --- a/nvim/lua/my/lsp/filetypes.lua +++ b/nvim/lua/my/lsp/filetypes.lua @@ -100,18 +100,21 @@ local function load_efm_modules(mods, mod_type) -- normalize type to string[] mods = type(mods) == 'string' and { mods } or mods - return vim.tbl_map(function(mod) - if efm_customizations[mod] then - return efm_customizations[mod]() - end - - local ok, module = pcall(require, string.format('efmls-configs.%s.%s', mod_type, mod)) - if not ok then - vim.notify(string.format('Module efmls-configs.%s.%s not found', mod_type, mod)) - return nil - end - return module - end, mods) + return vim + .iter(mods) + :map(function(mod) + if efm_customizations[mod] then + return efm_customizations[mod]() + end + + local ok, module = pcall(require, string.format('efmls-configs.%s.%s', mod_type, mod)) + if not ok then + vim.notify(string.format('Module efmls-configs.%s.%s not found', mod_type, mod)) + return nil + end + return module + end) + :totable() end local function load_linters(linters)