From e34671ddaae2d36af92dd92101a2449a2863e098 Mon Sep 17 00:00:00 2001 From: Fernando Schauenburg Date: Sun, 18 Feb 2024 02:31:02 +0100 Subject: [PATCH] vim: better structure for utils --- config/nvim/after/ftplugin/lua.lua | 2 +- config/nvim/lua/fschauen/diagnostic.lua | 2 +- .../nvim/lua/fschauen/plugins/completion.lua | 2 +- config/nvim/lua/fschauen/plugins/fidget.lua | 2 +- .../lua/fschauen/plugins/indent-blankline.lua | 2 +- config/nvim/lua/fschauen/plugins/lualine.lua | 2 +- config/nvim/lua/fschauen/plugins/neogit.lua | 2 +- .../nvim/lua/fschauen/plugins/nvim-notify.lua | 2 +- .../nvim/lua/fschauen/plugins/nvim-tree.lua | 2 +- .../nvim/lua/fschauen/plugins/telescope.lua | 2 +- .../lua/fschauen/plugins/todo-comments.lua | 2 +- .../nvim/lua/fschauen/plugins/virt-column.lua | 2 +- config/nvim/lua/fschauen/{ => util}/icons.lua | 0 config/nvim/lua/fschauen/util/init.lua | 9 +++++ .../lua/fschauen/{util.lua => util/lua.lua} | 38 +++++++------------ 15 files changed, 34 insertions(+), 37 deletions(-) rename config/nvim/lua/fschauen/{ => util}/icons.lua (100%) create mode 100644 config/nvim/lua/fschauen/util/init.lua rename config/nvim/lua/fschauen/{util.lua => util/lua.lua} (59%) diff --git a/config/nvim/after/ftplugin/lua.lua b/config/nvim/after/ftplugin/lua.lua index d8826fb..7dc0901 100644 --- a/config/nvim/after/ftplugin/lua.lua +++ b/config/nvim/after/ftplugin/lua.lua @@ -1,6 +1,6 @@ vim.bo.tabstop = 2 -local lua = require('fschauen.util').lua +local lua = require('fschauen.util.lua') local opts = function(desc) return { desc = desc, buffer = true } diff --git a/config/nvim/lua/fschauen/diagnostic.lua b/config/nvim/lua/fschauen/diagnostic.lua index 1039019..04f78f5 100644 --- a/config/nvim/lua/fschauen/diagnostic.lua +++ b/config/nvim/lua/fschauen/diagnostic.lua @@ -1,6 +1,6 @@ local M = {} -local icons = require('fschauen.icons') +local icons = require('fschauen.util.icons') -- Show/navigate warning and errors by default. M.severity = vim.diagnostic.severity.WARN diff --git a/config/nvim/lua/fschauen/plugins/completion.lua b/config/nvim/lua/fschauen/plugins/completion.lua index 3aae9f6..e2b12c2 100644 --- a/config/nvim/lua/fschauen/plugins/completion.lua +++ b/config/nvim/lua/fschauen/plugins/completion.lua @@ -89,7 +89,7 @@ M.config = function(--[[plugin]]_, --[[opts]]_) path = '', }, - symbol_map = require('fschauen.icons').kind, + symbol_map = require('fschauen.util.icons').kind, }, }, diff --git a/config/nvim/lua/fschauen/plugins/fidget.lua b/config/nvim/lua/fschauen/plugins/fidget.lua index e8b5a39..621e06b 100644 --- a/config/nvim/lua/fschauen/plugins/fidget.lua +++ b/config/nvim/lua/fschauen/plugins/fidget.lua @@ -6,7 +6,7 @@ M.event = 'LspAttach' M.opts = { text = { - done = require('fschauen.icons').ui.Checkmark, + done = require('fschauen.util.icons').ui.Checkmark, spinner = { '▱▱▱▱▱▱▱', '▰▱▱▱▱▱▱', diff --git a/config/nvim/lua/fschauen/plugins/indent-blankline.lua b/config/nvim/lua/fschauen/plugins/indent-blankline.lua index 1f533ae..52c70e5 100644 --- a/config/nvim/lua/fschauen/plugins/indent-blankline.lua +++ b/config/nvim/lua/fschauen/plugins/indent-blankline.lua @@ -17,7 +17,7 @@ M.keys = { M.main = 'ibl' M.opts = function(--[[plugin]]_, opts) - local icons = require('fschauen.icons') + local icons = require('fschauen.util.icons') return vim.tbl_deep_extend('force', opts, { enabled = false, indent = { diff --git a/config/nvim/lua/fschauen/plugins/lualine.lua b/config/nvim/lua/fschauen/plugins/lualine.lua index 7faf350..89ac4b5 100644 --- a/config/nvim/lua/fschauen/plugins/lualine.lua +++ b/config/nvim/lua/fschauen/plugins/lualine.lua @@ -1,6 +1,6 @@ local M = { 'nvim-lualine/lualine.nvim' } -local icons = require('fschauen.icons') +local icons = require('fschauen.util.icons') local orange = '#d65d0e' local bright = '#ffffff' -- alternative: '#f9f5d7' diff --git a/config/nvim/lua/fschauen/plugins/neogit.lua b/config/nvim/lua/fschauen/plugins/neogit.lua index 4166738..6343d5f 100644 --- a/config/nvim/lua/fschauen/plugins/neogit.lua +++ b/config/nvim/lua/fschauen/plugins/neogit.lua @@ -9,7 +9,7 @@ M.keys = { } M.opts = function(--[[plugin]]_, opts) - local icons = require('fschauen.icons') + local icons = require('fschauen.util.icons') return vim.tbl_deep_extend('force', opts, { disable_hint = true, signs = { diff --git a/config/nvim/lua/fschauen/plugins/nvim-notify.lua b/config/nvim/lua/fschauen/plugins/nvim-notify.lua index 3205640..c297967 100644 --- a/config/nvim/lua/fschauen/plugins/nvim-notify.lua +++ b/config/nvim/lua/fschauen/plugins/nvim-notify.lua @@ -21,7 +21,7 @@ M.keys = { M.lazy = false M.opts = function(--[[plugin]]_, opts) - local icons = require('fschauen.icons') + local icons = require('fschauen.util.icons') return vim.tbl_deep_extend('force', opts, { icons = { ERROR = icons.diagnostics_bold.Error, diff --git a/config/nvim/lua/fschauen/plugins/nvim-tree.lua b/config/nvim/lua/fschauen/plugins/nvim-tree.lua index e6ee4af..62c7d85 100644 --- a/config/nvim/lua/fschauen/plugins/nvim-tree.lua +++ b/config/nvim/lua/fschauen/plugins/nvim-tree.lua @@ -10,7 +10,7 @@ M.keys = { } M.opts = function(--[[plugin]]_, opts) - local icons = require('fschauen.icons') + local icons = require('fschauen.util.icons') return vim.tbl_deep_extend('force', opts, { disable_netrw = true, -- replace netrw with nvim-tree hijack_cursor = true, -- keep the cursor on begin of the filename diff --git a/config/nvim/lua/fschauen/plugins/telescope.lua b/config/nvim/lua/fschauen/plugins/telescope.lua index 979baf7..1e8924d 100644 --- a/config/nvim/lua/fschauen/plugins/telescope.lua +++ b/config/nvim/lua/fschauen/plugins/telescope.lua @@ -125,7 +125,7 @@ M.keys = { M.opts = function(--[[plugin]]_, opts) local actions = require('telescope.actions') local layout = require('telescope.actions.layout') - local icons = require('fschauen.icons') + local icons = require('fschauen.util.icons') local trouble = vim.F.npcall(require, 'trouble.providers.telescope') or {} local mappings = { diff --git a/config/nvim/lua/fschauen/plugins/todo-comments.lua b/config/nvim/lua/fschauen/plugins/todo-comments.lua index eedbf5c..35a0def 100644 --- a/config/nvim/lua/fschauen/plugins/todo-comments.lua +++ b/config/nvim/lua/fschauen/plugins/todo-comments.lua @@ -12,7 +12,7 @@ M.keys = { } M.opts = function(--[[plugin]]_, opts) - local icons = require('fschauen.icons') + local icons = require('fschauen.util.icons') return vim.tbl_deep_extend('force', opts, { keywords = { TODO = { icon = icons.ui.Checkbox }, diff --git a/config/nvim/lua/fschauen/plugins/virt-column.lua b/config/nvim/lua/fschauen/plugins/virt-column.lua index 725be64..7b92018 100644 --- a/config/nvim/lua/fschauen/plugins/virt-column.lua +++ b/config/nvim/lua/fschauen/plugins/virt-column.lua @@ -16,7 +16,7 @@ M.keys = { M.config = function(--[[plugin]]_, --[[opts]]_) require('virt-column').setup { - char = require('fschauen.icons').ui.LineMiddle, + char = require('fschauen.util.icons').ui.LineMiddle, } end diff --git a/config/nvim/lua/fschauen/icons.lua b/config/nvim/lua/fschauen/util/icons.lua similarity index 100% rename from config/nvim/lua/fschauen/icons.lua rename to config/nvim/lua/fschauen/util/icons.lua diff --git a/config/nvim/lua/fschauen/util/init.lua b/config/nvim/lua/fschauen/util/init.lua new file mode 100644 index 0000000..6d8c7d7 --- /dev/null +++ b/config/nvim/lua/fschauen/util/init.lua @@ -0,0 +1,9 @@ +local M = {} + +M.exists = function(path) + local stat = vim.loop.fs_stat(path) + return (stat and stat.type) or false +end + +return M + diff --git a/config/nvim/lua/fschauen/util.lua b/config/nvim/lua/fschauen/util/lua.lua similarity index 59% rename from config/nvim/lua/fschauen/util.lua rename to config/nvim/lua/fschauen/util/lua.lua index f8f13db..06f7c45 100644 --- a/config/nvim/lua/fschauen/util.lua +++ b/config/nvim/lua/fschauen/util/lua.lua @@ -1,17 +1,9 @@ local M = {} -M.file_exists = function(path) - local stat = vim.loop.fs_stat(path) - return stat and stat.type == 'file' -end +local util = require('fschauen.util') +local exists = util.exists -M.edit_file = function(path) - if not pcall(vim.api.nvim_command, string.format('edit %s', path)) then - vim.notify('Could not open ' .. path, vim.log.levels.ERROR) - end -end - -local find_lua_module_sources = function(modname) +local find_module_sources = function(modname) modname = modname:gsub('^%.+', ''):gsub('/', '.') local base = 'lua/' .. modname:gsub('%.', '/') local candidates = { base .. '.lua', base .. '/init.lua' } @@ -20,7 +12,7 @@ local find_lua_module_sources = function(modname) for _, directory in ipairs(vim.opt.runtimepath:get()) do for _, candidate in ipairs(candidates) do local path = directory .. '/' .. candidate - if M.file_exists(path) then + if exists(path) then table.insert(results, path) end end @@ -28,47 +20,43 @@ local find_lua_module_sources = function(modname) return results end -local lua = {} - -lua.execute_lines = function(first, last) +M.execute_lines = function(first, last) first = first or vim.fn.line('.') last = last or first local code = vim.fn.join(vim.fn.getline(first, last), '\n') loadstring(code)() end -lua.execute_selection = function() +M.execute_selection = function() local selection = { vim.fn.line('v'), vim.fn.line('.') } table.sort(selection) - lua.execute_lines(unpack(selection)) + M.execute_lines(unpack(selection)) end -lua.execute_file = function(path) +M.execute_file = function(path) if path then vim.cmd.luafile(path) else - lua.execute_lines(1, vim.fn.line('$')) + M.execute_lines(1, vim.fn.line('$')) end end -lua.go_to_module = function(modname) +M.go_to_module = function(modname) modname = modname or vim.fn.expand('') - local sources = find_lua_module_sources(modname) + local sources = find_module_sources(modname) if #sources == 0 then vim.notify('Not found: ' .. modname, vim.log.levels.WARN) elseif #sources == 1 then - M.edit_file(sources[1]) + vim.cmd.edit(sources[1]) else vim.ui.select(sources, { prompt = 'Which one?' }, function(choice) if choice then - M.edit_file(choice) + vim.cmd.edit(choice) end end) end end -M.lua = lua - return M