From b161ce069a001e446d09bb4d91d506748cf621e9 Mon Sep 17 00:00:00 2001 From: Chamal1120 Date: Mon, 21 Apr 2025 22:31:53 +0530 Subject: [PATCH 1/7] refactor(utils): update deprecated Neovim 0.11 APIs - Replaced vim.validate() with Lua-style type checks - Future-proofed utility functions for Neovim 0.11+ --- lua/dashboard/utils.lua | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/lua/dashboard/utils.lua b/lua/dashboard/utils.lua index 9285ce5..6ffce52 100644 --- a/lua/dashboard/utils.lua +++ b/lua/dashboard/utils.lua @@ -26,9 +26,7 @@ function utils.element_align(tbl) end function utils.get_max_len(contents) - vim.validate({ - contents = { contents, 't' }, - }) + assert(type(contents) == 'table', 'contents must be a table') local cells = {} for _, v in pairs(contents) do table.insert(cells, vim.api.nvim_strwidth(v)) @@ -37,11 +35,8 @@ function utils.get_max_len(contents) return cells[#cells] end --- draw the graphics into the screen center function utils.center_align(tbl) - vim.validate({ - tbl = { tbl, 'table' }, - }) + assert(type(tbl) == 'table', 'tbl must be a table') local function fill_sizes(lines) local fills = {} for _, line in pairs(lines) do @@ -100,7 +95,6 @@ function utils.disable_move_key(bufnr) end, keys) end ---- return the most recently files list function utils.get_mru_list() local mru = {} for _, file in pairs(vim.v.oldfiles or {}) do @@ -113,29 +107,26 @@ end function utils.get_package_manager_stats() local package_manager_stats = { name = '', count = 0, loaded = 0, time = 0 } - ---@diagnostic disable-next-line: undefined-global if packer_plugins then package_manager_stats.name = 'packer' - ---@diagnostic disable-next-line: undefined-global package_manager_stats.count = #vim.tbl_keys(packer_plugins) end local status, lazy = pcall(require, 'lazy') if status then package_manager_stats.name = 'lazy' - package_manager_stats.loaded = lazy.stats().loaded - package_manager_stats.count = lazy.stats().count - package_manager_stats.time = lazy.stats().startuptime + local stats = lazy.stats() + package_manager_stats.loaded = stats.loaded + package_manager_stats.count = stats.count + package_manager_stats.time = stats.startuptime end return package_manager_stats end ---- generate an empty table by length function utils.generate_empty_table(length) local empty_tbl = {} if length == 0 then return empty_tbl end - for _ = 1, length do table.insert(empty_tbl, '') end @@ -168,7 +159,7 @@ end function utils.buf_is_empty(bufnr) bufnr = bufnr or 0 return vim.api.nvim_buf_line_count(0) == 1 - and vim.api.nvim_buf_get_lines(0, 0, -1, false)[1] == '' + and vim.api.nvim_buf_get_lines(0, 0, -1, false)[1] == '' end local last_footer_size = nil @@ -190,7 +181,7 @@ function utils.add_update_footer_command(bufnr, footer) vim.bo[bufnr].modifiable = false vim.bo[bufnr].modified = false - last_footer_size = #args.fargs -- For future calculation of size + last_footer_size = #args.fargs end, { nargs = '*' }) end From d658a10a9f54179a8d271262d8202e7823f6b1a7 Mon Sep 17 00:00:00 2001 From: Chamal1120 Date: Mon, 21 Apr 2025 22:45:31 +0530 Subject: [PATCH 2/7] refactor(utils): switch to vim.validate() form 1 for Neovim 0.11+ Replaced custom assert() checks with official vim.validate() form 1, as recommended in Neovim 0.11+ to ensure better consistency with core APIs and forward compatibility. --- lua/dashboard/utils.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/dashboard/utils.lua b/lua/dashboard/utils.lua index 6ffce52..dbfbfbc 100644 --- a/lua/dashboard/utils.lua +++ b/lua/dashboard/utils.lua @@ -26,7 +26,7 @@ function utils.element_align(tbl) end function utils.get_max_len(contents) - assert(type(contents) == 'table', 'contents must be a table') + vim.validate('contents', contents, 'table') local cells = {} for _, v in pairs(contents) do table.insert(cells, vim.api.nvim_strwidth(v)) @@ -36,7 +36,7 @@ function utils.get_max_len(contents) end function utils.center_align(tbl) - assert(type(tbl) == 'table', 'tbl must be a table') + vim.validate('tbl', tbl, 'table') local function fill_sizes(lines) local fills = {} for _, line in pairs(lines) do From 5bf977344f44ffeb330032965585568171626625 Mon Sep 17 00:00:00 2001 From: Chamal1120 Date: Mon, 21 Apr 2025 23:41:16 +0530 Subject: [PATCH 3/7] refactor(utils): restore some deleted comments --- lua/dashboard/utils.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lua/dashboard/utils.lua b/lua/dashboard/utils.lua index dbfbfbc..0c9f154 100644 --- a/lua/dashboard/utils.lua +++ b/lua/dashboard/utils.lua @@ -35,6 +35,7 @@ function utils.get_max_len(contents) return cells[#cells] end +-- draw the graphics into the screen center function utils.center_align(tbl) vim.validate('tbl', tbl, 'table') local function fill_sizes(lines) @@ -95,6 +96,7 @@ function utils.disable_move_key(bufnr) end, keys) end +-- return the most recently files list function utils.get_mru_list() local mru = {} for _, file in pairs(vim.v.oldfiles or {}) do @@ -107,8 +109,10 @@ end function utils.get_package_manager_stats() local package_manager_stats = { name = '', count = 0, loaded = 0, time = 0 } + ---@diagnostic disable-next-line: undefined-global if packer_plugins then package_manager_stats.name = 'packer' + ---@diagnostic disable-next-line: undefined-global package_manager_stats.count = #vim.tbl_keys(packer_plugins) end local status, lazy = pcall(require, 'lazy') @@ -122,6 +126,7 @@ function utils.get_package_manager_stats() return package_manager_stats end +--- generate an empty table by length function utils.generate_empty_table(length) local empty_tbl = {} if length == 0 then @@ -181,7 +186,7 @@ function utils.add_update_footer_command(bufnr, footer) vim.bo[bufnr].modifiable = false vim.bo[bufnr].modified = false - last_footer_size = #args.fargs + last_footer_size = #args.fargs -- For future calculation of size end, { nargs = '*' }) end From df7c5229ce688525f725755ea43b0adf9c81030a Mon Sep 17 00:00:00 2001 From: Chamal1120 Date: Sun, 27 Apr 2025 00:30:21 +0530 Subject: [PATCH 4/7] feat(utils): Add a helper to handle validate table --- lua/dashboard/utils.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lua/dashboard/utils.lua b/lua/dashboard/utils.lua index fb4166e..1398ef9 100644 --- a/lua/dashboard/utils.lua +++ b/lua/dashboard/utils.lua @@ -2,12 +2,22 @@ local uv = vim.loop local utils = {} utils.is_win = uv.os_uname().version:match('Windows') +local is_nvim_11_or_newer = vim.version().minor >= 11 -- check nvim minor ver function utils.path_join(...) local path_sep = utils.is_win and '\\' or '/' return table.concat({ ... }, path_sep) end +-- dynamically use correct validate form method +local function validate_table(name, value) + if is_nvim_11_or_newer then + vim.validate(name, value, 'table') + else + vim.validate({ [name] = { value, 't' } }) + end +end + function utils.element_align(tbl) local lens = {} vim.tbl_map(function(k) @@ -26,7 +36,7 @@ function utils.element_align(tbl) end function utils.get_max_len(contents) - vim.validate('contents', contents, 'table') + validate_table('contents', contents) local cells = {} for _, v in pairs(contents) do table.insert(cells, vim.api.nvim_strwidth(v)) @@ -37,7 +47,7 @@ end -- draw the graphics into the screen center function utils.center_align(tbl) - vim.validate('tbl', tbl, 'table') + validate_table('tbl', tbl) local function fill_sizes(lines) local fills = {} for _, line in pairs(lines) do From 99f643baec2d2eb6af814895074261936962b004 Mon Sep 17 00:00:00 2001 From: Chamal1120 Date: Sun, 27 Apr 2025 20:06:40 +0530 Subject: [PATCH 5/7] refactor(util): change nvim 0.11 check function Co-authored-by: glepnir --- lua/dashboard/utils.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/dashboard/utils.lua b/lua/dashboard/utils.lua index 1398ef9..b47381b 100644 --- a/lua/dashboard/utils.lua +++ b/lua/dashboard/utils.lua @@ -2,7 +2,7 @@ local uv = vim.loop local utils = {} utils.is_win = uv.os_uname().version:match('Windows') -local is_nvim_11_or_newer = vim.version().minor >= 11 -- check nvim minor ver +local is_nvim_11_or_newer = vim.fn.has 'nvim-0.11' == 1 function utils.path_join(...) local path_sep = utils.is_win and '\\' or '/' From cfebe842a25ae5c99c8aa4a5b1d2afd7f420e5a7 Mon Sep 17 00:00:00 2001 From: Chamal1120 Date: Sun, 27 Apr 2025 20:44:27 +0530 Subject: [PATCH 6/7] format(util): format nvim 0.11 check function with stylua --- lua/dashboard/utils.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/dashboard/utils.lua b/lua/dashboard/utils.lua index b47381b..d93d483 100644 --- a/lua/dashboard/utils.lua +++ b/lua/dashboard/utils.lua @@ -2,7 +2,7 @@ local uv = vim.loop local utils = {} utils.is_win = uv.os_uname().version:match('Windows') -local is_nvim_11_or_newer = vim.fn.has 'nvim-0.11' == 1 +local is_nvim_11_or_newer = vim.fn.has ('nvim-0.11') == 1 function utils.path_join(...) local path_sep = utils.is_win and '\\' or '/' From 5dc6c419d84e2498ea8621504acc924e723266cd Mon Sep 17 00:00:00 2001 From: Chamal1120 Date: Sun, 27 Apr 2025 20:45:41 +0530 Subject: [PATCH 7/7] format(util): format nvim 0.11 check function with stylua --- lua/dashboard/utils.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/dashboard/utils.lua b/lua/dashboard/utils.lua index d93d483..9790a21 100644 --- a/lua/dashboard/utils.lua +++ b/lua/dashboard/utils.lua @@ -2,7 +2,7 @@ local uv = vim.loop local utils = {} utils.is_win = uv.os_uname().version:match('Windows') -local is_nvim_11_or_newer = vim.fn.has ('nvim-0.11') == 1 +local is_nvim_11_or_newer = vim.fn.has('nvim-0.11') == 1 function utils.path_join(...) local path_sep = utils.is_win and '\\' or '/'