diff --git a/autoload/neoformat/formatters/powershell.vim b/autoload/neoformat/formatters/powershell.vim new file mode 100644 index 0000000..1e51803 --- /dev/null +++ b/autoload/neoformat/formatters/powershell.vim @@ -0,0 +1,29 @@ +function! neoformat#formatters#powershell#enabled() abort + return ['pwshfmt'] +endfunction + +function! neoformat#formatters#powershell#pwshfmt() abort + "if has('win32') || has('win64') + " let l:args = [ + " \ '-NoProfile', + " \ '-Command', + " \ 'Import-Module PSScriptAnalyzer; Invoke-Formatter -ScriptDefinition (\$input | Out-String)', + " \ ] + "else + " let l:args = [ + " \ '-NoProfile', + " \ '-Command', + " \ '"Import-Module (Resolve-Path \"/opt/powershell-editor-services/PSScriptAnalyzer/*/PSScriptAnalyzer.psd1\" | Select-Object -ExpandProperty Path); Invoke-Formatter -ScriptDefinition (\$input | Out-String)"' + " \ ] + "endif + " +return { + \ 'exe': 'pwsh', + \ 'args': [ + \ '-NoProfile', + \ '-Command', + \ 'Import-Module PSScriptAnalyzer; Invoke-Formatter -ScriptDefinition ($input | Out-String)' + \ ], + \ 'stdin': 1, + \ } +endfunction diff --git a/lua/autocmd.lua b/lua/autocmd.lua index 13f5885..adeeeff 100644 --- a/lua/autocmd.lua +++ b/lua/autocmd.lua @@ -1,40 +1,40 @@ local autocmd = vim.api.nvim_create_autocmd autocmd("LspAttach", { - callback = function(args) - local client = vim.lsp.get_client_by_id(args.data.client_id) - if client then - vim.lsp.document_color.enable(false, { bufnr = args.buf }) - end - end, + callback = function(args) + local client = vim.lsp.get_client_by_id(args.data.client_id) + if client then + vim.lsp.document_color.enable(false, { bufnr = args.buf }) + end + end, }) autocmd("VimLeave", { - command = "set guicursor=a:ver25-Cursor", + command = "set guicursor=a:ver25-Cursor", }) autocmd("BufWritePre", { - pattern = "*", - callback = function(args) - require("conform").format({ bufnr = args.buf }) - end, + pattern = "*", + callback = function(args) + require("conform").format({ bufnr = args.buf }) + end, }) -- fWindows autocmd("VimLeavePre", { - group = vim.api.nvim_create_augroup("fuck_shada_temp", { clear = true }), - pattern = { "*" }, - callback = function() - local status = 0 - for _, f in ipairs(vim.fn.globpath(vim.fn.stdpath "data" .. "/shada", "*tmp*", false, true)) do - if vim.tbl_isempty(vim.fn.readfile(f)) then - status = status + vim.fn.delete(f) - end - end - if status ~= 0 then - vim.notify("Could not delete empty temporary ShaDa files.", vim.log.levels.ERROR) - vim.fn.getchar() - end - end, - desc = "Delete empty temp ShaDa files", + group = vim.api.nvim_create_augroup("fuck_shada_temp", { clear = true }), + pattern = { "*" }, + callback = function() + local status = 0 + for _, f in ipairs(vim.fn.globpath(vim.fn.stdpath "data" .. "/shada", "*tmp*", false, true)) do + if vim.tbl_isempty(vim.fn.readfile(f)) then + status = status + vim.fn.delete(f) + end + end + if status ~= 0 then + vim.notify("Could not delete empty temporary ShaDa files.", vim.log.levels.ERROR) + vim.fn.getchar() + end + end, + desc = "Delete empty temp ShaDa files", }) diff --git a/lua/config/format/lspconfig.lua b/lua/config/format/lspconfig.lua index 22ddca9..5b6b9f7 100644 --- a/lua/config/format/lspconfig.lua +++ b/lua/config/format/lspconfig.lua @@ -3,302 +3,313 @@ local cmp_lsp = require "cmp_nvim_lsp" local cmp_kinds = require("assets.icons").icons.kinds local function flatten_to_array(t) - local res = {} - local function _flatten(tbl) - for _, v in ipairs(tbl) do - if type(v) == "table" then - _flatten(v) - else - table.insert(res, v) - end + local res = {} + local function _flatten(tbl) + for _, v in ipairs(tbl) do + if type(v) == "table" then + _flatten(v) + else + table.insert(res, v) + end + end end - end - _flatten(t) - return res + _flatten(t) + return res end local capabilities = - vim.tbl_deep_extend("force", {}, vim.lsp.protocol.make_client_capabilities(), cmp_lsp.default_capabilities()) + vim.tbl_deep_extend("force", {}, vim.lsp.protocol.make_client_capabilities(), cmp_lsp.default_capabilities()) require("fidget").setup {} require("mason-lspconfig").setup { - automatic_enable = false, - ensure_installed = { - "lua_ls", - "qmlls", - "rust_analyzer", - "powershell_es", - }, - handlers = { - function(server_name) -- default handler (optional) - require("lspconfig")[server_name].setup { - capabilities = capabilities, - } - end, + automatic_enable = false, + ensure_installed = { + "lua_ls", + "qmlls", + "rust_analyzer", + }, + handlers = { + function(server_name) -- default handler (optional) + require("lspconfig")[server_name].setup { + capabilities = capabilities, + } + end, - ["tailwindcss"] = function() - local lspconfig = require "lspconfig" - lspconfig.tailwindcss.setup { - capabilities = capabilities, - } - end, + ["tailwindcss"] = function() + local lspconfig = require "lspconfig" + lspconfig.tailwindcss.setup { + capabilities = capabilities, + } + end, - ["css-lsp"] = function() - local lspconfig = require "lspconfig" - lspconfig.cssls.setup { - capabilities = capabilities, - } - end, + ["css-lsp"] = function() + local lspconfig = require "lspconfig" + lspconfig.cssls.setup { + capabilities = capabilities, + } + end, - ["powershell_es"] = function() - local lspconfig = require "lspconfig" - lspconfig.powershell_es.setup { - capabilities = capabilities, - } - end, + ["rust_analyzer"] = function() + local lspconfig = require "lspconfig" + lspconfig.rust_analyzer.setup { + capabilities = capabilities, + settings = { + ["rust-analyzer"] = { + cargo = { allFeatures = true }, + checkOnSave = { command = "clippy" }, + }, + }, + } + end, - ["rust_analyzer"] = function() - local lspconfig = require "lspconfig" - lspconfig.rust_analyzer.setup { - capabilities = capabilities, - settings = { - ["rust-analyzer"] = { - cargo = { allFeatures = true }, - checkOnSave = { command = "clippy" }, - }, - }, - } - end, + zls = function() + local lspconfig = require "lspconfig" + lspconfig.zls.setup { + capabilities = capabilities, + root_dir = lspconfig.util.root_pattern(".git", "build.zig", "zls.json"), + settings = { + zls = { + enable_inlay_hints = true, + enable_snippets = true, + warn_style = true, + }, + }, + } + vim.g.zig_fmt_parse_errors = 0 + vim.g.zig_fmt_autosave = 0 + end, - zls = function() - local lspconfig = require "lspconfig" - lspconfig.zls.setup { - capabilities = capabilities, - root_dir = lspconfig.util.root_pattern(".git", "build.zig", "zls.json"), - settings = { - zls = { - enable_inlay_hints = true, - enable_snippets = true, - warn_style = true, - }, - }, - } - vim.g.zig_fmt_parse_errors = 0 - vim.g.zig_fmt_autosave = 0 - end, - - ["lua_ls"] = function() - local lspconfig = require "lspconfig" - lspconfig.lua_ls.setup { - capabilities = capabilities, - settings = { - Lua = { - runtime = { version = "Lua 5.1" }, - diagnostics = { - globals = { - "bit", - "vim", - "it", - "describe", - "before_each", - "after_each", - }, - }, - }, - }, - } - end, - }, + ["lua_ls"] = function() + local lspconfig = require "lspconfig" + lspconfig.lua_ls.setup { + capabilities = capabilities, + settings = { + Lua = { + runtime = { version = "Lua 5.1" }, + diagnostics = { + globals = { + "bit", + "vim", + "it", + "describe", + "before_each", + "after_each", + }, + }, + }, + }, + } + end, + }, } cmp.setup { - preselect = "None", - formatting = { - fields = { "kind", "abbr" }, - format = function(entry, vim_item) - vim_item.kind = cmp_kinds[vim_item.kind] or "" - if entry.completion_item.detail then - vim_item.menu = entry.completion_item.detail - end - return vim_item - end, - }, - completion = { completeopt = "menu,menuone" }, - snippet = { - expand = function(args) - require("luasnip").lsp_expand(args.body) - end, - }, - - window = { - completion = cmp.config.window.bordered(), - documentation = cmp.config.window.bordered(), - }, - - view = { - entries = "custom", - }, - - mapping = { - [""] = cmp.mapping.select_prev_item(), - [""] = cmp.mapping.select_next_item(), - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.close(), - [""] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Insert, - select = true, + preselect = "None", + formatting = { + fields = { "kind", "abbr" }, + format = function(entry, vim_item) + vim_item.kind = cmp_kinds[vim_item.kind] or "" + if entry.completion_item.detail then + vim_item.menu = entry.completion_item.detail + end + return vim_item + end, + }, + completion = { completeopt = "menu,menuone" }, + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, }, - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif require("luasnip").expand_or_jumpable() then - require("luasnip").expand_or_jump() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif require("luasnip").jumpable(-1) then - require("luasnip").jump(-1) - else - fallback() - end - end, { "i", "s" }), - }, - sources = cmp.config.sources { - { name = "path" }, - { name = "nvim_lsp" }, - { name = "luasnip" }, - { name = "buffer" }, - { name = "nvim_lua" }, - { name = "copilot" }, - }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + + view = { + entries = "custom", + }, + + mapping = { + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.close(), + [""] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Insert, + select = true, + }, + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif require("luasnip").expand_or_jumpable() then + require("luasnip").expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif require("luasnip").jumpable(-1) then + require("luasnip").jump(-1) + else + fallback() + end + end, { "i", "s" }), + }, + + sources = cmp.config.sources { + { name = "path" }, + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "buffer" }, + { name = "nvim_lua" }, + { name = "copilot" }, + }, } vim.diagnostic.config { - virtual_text = false, - virtual_lines = false, - signs = true, - underline = true, - float = { - focusable = false, - style = "minimal", - border = "rounded", - source = true, - header = "", - prefix = "", - }, + virtual_text = false, + virtual_lines = false, + signs = true, + underline = true, + float = { + focusable = false, + style = "minimal", + border = "rounded", + source = true, + header = "", + prefix = "", + }, } local lspconfig = vim.lsp.config lspconfig("texlab", { - cmd = { "texlab" }, - filetypes = { "tex", "bib", "plaintex" }, - root_markers = { - ".git", - ".latexmkrc", - "latexmkrc", - ".texlabroot", - "texlabroot", - "Tectonic.toml", - }, - settings = { - texlab = { - rootDirectory = nil, - build = { - executable = "latexmk", - args = { - "-pdf", - "-interaction=nonstopmode", - "-synctex=1", - "%f", - }, - onSave = true, - forwardSearchAfter = true, - }, - forwardSearch = { - executable = "zathura", - args = { - "--synctex-editor-command", - [[ nvim-texlabconfig -file '%%%{input}' -line %%%{line} -server ]] .. vim.v.servername, - "--synctex-forward", - "%l:1:%f", - "%p", - }, - }, - chktex = { - onEdit = false, - onOpenAndSave = true, - }, - diagnosticsDelay = 300, - latexFormatter = "latexindent", - latexindent = { - ["local"] = nil, - modifyLineBreaks = false, - }, - bibtexFormatter = "texlab", - formatterLineLength = 80, + cmd = { "texlab" }, + filetypes = { "tex", "bib", "plaintex" }, + root_markers = { + ".git", + ".latexmkrc", + "latexmkrc", + ".texlabroot", + "texlabroot", + "Tectonic.toml", + }, + settings = { + texlab = { + rootDirectory = nil, + build = { + executable = "latexmk", + args = { + "-pdf", + "-interaction=nonstopmode", + "-synctex=1", + "%f", + }, + onSave = true, + forwardSearchAfter = true, + }, + forwardSearch = { + executable = "zathura", + args = { + "--synctex-editor-command", + [[ nvim-texlabconfig -file '%%%{input}' -line %%%{line} -server ]] .. vim.v.servername, + "--synctex-forward", + "%l:1:%f", + "%p", + }, + }, + chktex = { + onEdit = false, + onOpenAndSave = true, + }, + diagnosticsDelay = 300, + latexFormatter = "latexindent", + latexindent = { + ["local"] = nil, + modifyLineBreaks = false, + }, + bibtexFormatter = "texlab", + formatterLineLength = 80, + }, }, - }, }) lspconfig("qmlls", { - cmd = { "qmlls6", "qmlls" }, - filetypes = { "qml", "qmljs" }, - root_markers = { ".git" }, + cmd = { "qmlls6", "qmlls" }, + filetypes = { "qml", "qmljs" }, + root_markers = { ".git" }, }) lspconfig("jsonls", { - settings = { - json = { - schemas = require("schemastore").json.schemas(), - validate = { enable = true }, + settings = { + json = { + schemas = require("schemastore").json.schemas(), + validate = { enable = true }, + }, + }, +}) + +lspconfig("powershell_es", { + settings = { + powershell = { + codeFormatting = { + preset = "Custom", + openBraceOnSameLine = true, + newLineAfterOpenBrace = false, + newLineAfterCloseBrace = true, + whitespaceBeforeOpenBrace = true, + whitespaceBeforeOpenParen = true, + whitespaceAroundOperator = true, + whitespaceAfterSeparator = true, + ignoreOneLineBlock = true, + pipelineIndentationStyle = "NoIndentation", + }, + }, }, - }, }) lspconfig("yamlls", { - settings = { - yaml = { - schemaStore = { - enable = false, - url = "", - }, - schemas = require("schemastore").yaml.schemas(), + settings = { + yaml = { + schemaStore = { + enable = false, + url = "", + }, + schemas = require("schemastore").yaml.schemas(), + }, }, - }, }) local lspenable = vim.lsp.enable local servers = { - "html", - "bashls", - "pyright", - "ts_ls", - "texlab", - "sourcekit", - "qmlls", - "tailwindcss", - -- "systemd-lsp", - require("mason-lspconfig").get_installed_servers(), + "html", + "bashls", + "pyright", + "ts_ls", + "texlab", + "sourcekit", + "qmlls", + "tailwindcss", + "systemd-lsp", + require("mason-lspconfig").get_installed_servers(), } local flat_servers = flatten_to_array(servers) for _, server in ipairs(flat_servers) do - lspconfig(server, { - on_attach = function(client) - if client.name == "typos_lsp" or client.name == "copilot" then - return - end - end, - capabilities = capabilities, - }) - lspenable(server) + lspconfig(server, { + on_attach = function(client) + if client.name == "typos_lsp" or client.name == "copilot" then + return + end + end, + capabilities = capabilities, + }) + lspenable(server) end diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 49ebc91..e19c5a9 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -1,227 +1,227 @@ return { - { - require "config.snacks", - }, - { - "nvim-treesitter/nvim-treesitter", - lazy = false, - build = ":TSUpdate", - branch = "main", - config = function() - require "config.modules.treesitter" - end, - }, - { - "sainnhe/edge", - lazy = false, - priority = 1000, - config = function() - vim.g.edge_enable_italic = 1 - vim.g.edge_style = "default" - vim.g.edge_menu_selection_background = "purple" - end, - }, - { - "rmagatti/auto-session", - config = function() - require "config.modules.autosession" - end, - }, - { - "lambdalisue/vim-suda", - init = function() - vim.g.suda_smart_edit = 1 - end, - }, - { - "nvim-tree/nvim-web-devicons", - }, - { - "akinsho/bufferline.nvim", - event = "VeryLazy", - config = function() - require "config.other.barbar" - end, - }, - { - "mawkler/modicator.nvim", - config = function() - require "config.gui.modicator" - end, - }, - { - "jiaoshijie/undotree", - config = function() - require "config.modules.undotree" - end, - }, - { - "hiphish/rainbow-delimiters.nvim", - enabled = true, - }, - { - "windwp/nvim-autopairs", - event = "InsertEnter", - config = function() - require "config.other.autopairs" - end, - }, - { - "tpope/vim-fugitive", - }, - { - "rcarriga/nvim-notify", - config = function() - require "config.other.notify" - end, - }, - { - "zbirenbaum/copilot.lua", - cmd = "Copilot", - event = "InsertEnter", - config = function() - require "config.ai.copilot" - end, - }, - { - "CopilotC-Nvim/CopilotChat.nvim", - dependencies = { - { "zbirenbaum/copilot.lua" }, - { "nvim-lua/plenary.nvim", branch = "master" }, + { + require "config.snacks", }, - build = "make tiktoken", - config = function() - require "config.ai.copilotchat" - end, - }, - { - "mfussenegger/nvim-dap", - config = function() - require "config.other.dapconf" - end, - }, - { - "mason-org/mason-lspconfig.nvim", - dependencies = { - { "mason-org/mason.nvim", opts = {} }, - "neovim/nvim-lspconfig", + { + "nvim-treesitter/nvim-treesitter", + lazy = false, + build = ":TSUpdate", + branch = "main", + config = function() + require "config.modules.treesitter" + end, }, - }, - { - "folke/lazydev.nvim", - ft = "lua", - opts = function() - require "config.lazydev" - end, - }, - { - "neovim/nvim-lspconfig", - enabled = true, - dependencies = { - -- "williamboman/mason.nvim", - -- "williamboman/mason-lspconfig.nvim", - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-buffer", - "hrsh7th/cmp-path", - "hrsh7th/cmp-cmdline", - "hrsh7th/nvim-cmp", - "L3MON4D3/LuaSnip", - "saadparwaiz1/cmp_luasnip", - "j-hui/fidget.nvim", - "b0o/schemastore.nvim", + { + "sainnhe/edge", + lazy = false, + priority = 1000, + config = function() + vim.g.edge_enable_italic = 1 + vim.g.edge_style = "default" + vim.g.edge_menu_selection_background = "purple" + end, }, - config = function() - require "config.format.lspconfig" - end, - }, - { - "smolck/command-completion.nvim", - opts = { - border = nil, - highlight_selection = true, - use_matchfuzzy = true, - tab_completion = true, + { + "rmagatti/auto-session", + config = function() + require "config.modules.autosession" + end, }, - }, - { - "andweeb/presence.nvim", - }, - { - "mfussenegger/nvim-jdtls", - }, - { - "ziglang/zig.vim", - }, - { - "mg979/vim-visual-multi", - branch = "master", - }, - { - "elkowar/yuck.vim", - }, - { - "f3fora/nvim-texlabconfig", - config = function() - require "config.format.texlab" - end, - build = "go build", - }, - { - "lancewilhelm/horizon-extended.nvim", - }, - { - "vimpostor/vim-tpipeline", - }, - { - "Yazeed1s/minimal.nvim", - config = function() - vim.g.minimal_italic_comments = true - vim.g.minimal_italic_functions = true - end, - }, - { - "aserowy/tmux.nvim", - config = function() - require "config.terminal.tmux" - end, - }, - { - "rachartier/tiny-inline-diagnostic.nvim", - config = function() - require "config.format.TID" - end, - }, - { - "ThePrimeagen/harpoon", - branch = "harpoon2", - dependencies = { - "nvim-lua/plenary.nvim", + { + "lambdalisue/vim-suda", + init = function() + vim.g.suda_smart_edit = 1 + end, + }, + { + "nvim-tree/nvim-web-devicons", + }, + { + "akinsho/bufferline.nvim", + event = "VeryLazy", + config = function() + require "config.other.barbar" + end, + }, + { + "mawkler/modicator.nvim", + config = function() + require "config.gui.modicator" + end, + }, + { + "jiaoshijie/undotree", + config = function() + require "config.modules.undotree" + end, + }, + { + "hiphish/rainbow-delimiters.nvim", + enabled = true, + }, + { + "windwp/nvim-autopairs", + event = "InsertEnter", + config = function() + require "config.other.autopairs" + end, + }, + { + "tpope/vim-fugitive", + }, + { + "rcarriga/nvim-notify", + config = function() + require "config.other.notify" + end, + }, + { + "zbirenbaum/copilot.lua", + cmd = "Copilot", + event = "InsertEnter", + config = function() + require "config.ai.copilot" + end, + }, + { + "CopilotC-Nvim/CopilotChat.nvim", + dependencies = { + { "zbirenbaum/copilot.lua" }, + { "nvim-lua/plenary.nvim", branch = "master" }, + }, + build = "make tiktoken", + config = function() + require "config.ai.copilotchat" + end, + }, + { + "mfussenegger/nvim-dap", + config = function() + require "config.other.dapconf" + end, + }, + { + "mason-org/mason-lspconfig.nvim", + dependencies = { + { "mason-org/mason.nvim", opts = {} }, + "neovim/nvim-lspconfig", + }, + }, + { + "folke/lazydev.nvim", + ft = "lua", + opts = function() + require "config.lazydev" + end, + }, + { + "neovim/nvim-lspconfig", + enabled = true, + dependencies = { + -- "williamboman/mason.nvim", + -- "williamboman/mason-lspconfig.nvim", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "hrsh7th/cmp-cmdline", + "hrsh7th/nvim-cmp", + "L3MON4D3/LuaSnip", + "saadparwaiz1/cmp_luasnip", + "j-hui/fidget.nvim", + "b0o/schemastore.nvim", + }, + config = function() + require "config.format.lspconfig" + end, + }, + { + "smolck/command-completion.nvim", + opts = { + border = nil, + highlight_selection = true, + use_matchfuzzy = true, + tab_completion = true, + }, + }, + { + "andweeb/presence.nvim", + }, + { + "mfussenegger/nvim-jdtls", + }, + { + "ziglang/zig.vim", + }, + { + "mg979/vim-visual-multi", + branch = "master", + }, + { + "elkowar/yuck.vim", + }, + { + "f3fora/nvim-texlabconfig", + config = function() + require "config.format.texlab" + end, + build = "go build", + }, + { + "lancewilhelm/horizon-extended.nvim", + }, + { + "vimpostor/vim-tpipeline", + }, + { + "Yazeed1s/minimal.nvim", + config = function() + vim.g.minimal_italic_comments = true + vim.g.minimal_italic_functions = true + end, + }, + { + "aserowy/tmux.nvim", + config = function() + require "config.terminal.tmux" + end, + }, + { + "rachartier/tiny-inline-diagnostic.nvim", + config = function() + require "config.format.TID" + end, + }, + { + "ThePrimeagen/harpoon", + branch = "harpoon2", + dependencies = { + "nvim-lua/plenary.nvim", + }, + config = function() + require "config.other.harpoon" + end, + }, + { + "aznhe21/actions-preview.nvim", + config = function() + require "config.other.actions-preview" + end, + }, + { + "Zacharias-Brohn/zterm-navigator.nvim", + config = function() + require "config.terminal.zterm-navigator" + end, + }, + { + "Fildo7525/pretty_hover", + event = "LspAttach", + opts = {}, + }, + { + "jiaoshijie/undotree", + config = function() + require "config.modules.undotree" + end, }, - config = function() - require "config.other.harpoon" - end, - }, - { - "aznhe21/actions-preview.nvim", - config = function() - require "config.other.actions-preview" - end, - }, - { - "Zacharias-Brohn/zterm-navigator.nvim", - config = function() - require "config.terminal.zterm-navigator" - end, - }, - { - "Fildo7525/pretty_hover", - event = "LspAttach", - opts = {}, - }, - { - "jiaoshijie/undotree", - config = function() - require "config.modules.undotree" - end, - }, }