diff options
| -rw-r--r-- | init.lua | 52 | ||||
| -rw-r--r-- | lua/gabrielgio/ai.lua | 5 | ||||
| -rw-r--r-- | lua/gabrielgio/dap.lua | 20 | ||||
| -rw-r--r-- | lua/gabrielgio/formatter.lua | 1 | ||||
| -rw-r--r-- | lua/gabrielgio/go.lua | 5 | ||||
| -rw-r--r-- | lua/gabrielgio/init.lua | 2 | ||||
| -rw-r--r-- | lua/gabrielgio/lazy.lua | 32 | ||||
| -rw-r--r-- | lua/gabrielgio/linter.lua | 1 | ||||
| -rw-r--r-- | lua/gabrielgio/lsp.lua | 33 | ||||
| -rw-r--r-- | lua/gabrielgio/mini.lua | 53 | ||||
| -rw-r--r-- | lua/gabrielgio/settable.lua | 2 | ||||
| -rw-r--r-- | lua/gabrielgio/so.lua | 4 | ||||
| -rw-r--r-- | lua/gabrielgio/telescope.lua | 31 |
13 files changed, 137 insertions, 104 deletions
@@ -1,14 +1,17 @@ -local path_package = vim.fn.stdpath('data') .. '/site/' -local mini_path = path_package .. 'pack/deps/start/mini.nvim' +local path_package = vim.fn.stdpath("data") .. "/site/" +local mini_path = path_package .. "pack/deps/start/mini.nvim" if not vim.loop.fs_stat(mini_path) then - vim.cmd('echo "Installing `mini.nvim`" | redraw') - local clone_cmd = { - 'git', 'clone', '--filter=blob:none', - 'https://github.com/echasnovski/mini.nvim', mini_path - } - vim.fn.system(clone_cmd) - vim.cmd('packadd mini.nvim | helptags ALL') - vim.cmd('echo "Installed `mini.nvim`" | redraw') + vim.cmd('echo "Installing `mini.nvim`" | redraw') + local clone_cmd = { + "git", + "clone", + "--filter=blob:none", + "https://github.com/echasnovski/mini.nvim", + mini_path, + } + vim.fn.system(clone_cmd) + vim.cmd("packadd mini.nvim | helptags ALL") + vim.cmd('echo "Installed `mini.nvim`" | redraw') end local mini_deps = require("mini.deps") @@ -22,27 +25,19 @@ local pkgs = { "mfussenegger/nvim-dap", -- add dap support "nvim-neotest/nvim-nio", -- async support library "rcarriga/nvim-dap-ui", -- dap ui - "leoluz/nvim-dap-go", -- dap go + "theHamsta/nvim-dap-virtual-text", -- dap in line text "nvim-lua/plenary.nvim", -- base lib - "nvim-telescope/telescope.nvim", -- telescope - "nvim-telescope/telescope-file-browser.nvim", -- telescope file browser - "TimUntersberger/neogit", -- magit - "vimwiki/vimwiki", -- wiki "f-person/git-blame.nvim", -- more git info - "echasnovski/mini.nvim", -- provides many things + "nvim-mini/mini.nvim", -- provides many things "mhartington/formatter.nvim", -- provider formatter "mfussenegger/nvim-lint", -- general linter "nvim-treesitter/nvim-treesitter-context", -- show context of where it is at the code "mbbill/undotree", -- keep track of undos - "simrat39/symbols-outline.nvim", -- symbols tree (lsp aware) + "hedyhli/outline.nvim", -- symbols tree (lsp aware) "akinsho/toggleterm.nvim", -- terminal - "RRethy/vim-illuminate", -- hightlight use of the same word (lsp aware) "sainnhe/edge", -- light theme - "ellisonleao/gruvbox.nvim", -- light theme - "williamboman/mason.nvim", -- manages many things - "williamboman/mason-lspconfig.nvim", -- glue mason and lspconfig "neovim/nvim-lspconfig", -- lsp support - "vimwiki/vimwiki", -- wiki + "ray-x/go.nvim", -- go things } -- stylua: ignore end @@ -54,14 +49,11 @@ add({ end, }, }) -add({ - source = "fatih/vim-go", - hooks = { - post_checkout = function() - vim.cmd("GoUpdateBinaries") - end, - }, -}) + +if vim.fn.executable("claude") == 1 then + table.insert(pkgs, "coder/claudecode.nvim") +end + for _, value in ipairs(pkgs) do add({ source = value }) end diff --git a/lua/gabrielgio/ai.lua b/lua/gabrielgio/ai.lua new file mode 100644 index 0000000..08a49a6 --- /dev/null +++ b/lua/gabrielgio/ai.lua @@ -0,0 +1,5 @@ +local ok, claudecode = pcall(require, "claudecode") + +if ok then + claudecode.setup() +end diff --git a/lua/gabrielgio/dap.lua b/lua/gabrielgio/dap.lua index 4d55ca6..42a6e06 100644 --- a/lua/gabrielgio/dap.lua +++ b/lua/gabrielgio/dap.lua @@ -1,9 +1,6 @@ -local dap = require("dap") local key = require("gabrielgio.key") +local dap = require("dap") local dapui = require("dapui") -local dapgo = require("dap-go") - -dapgo.setup() key.nnoremap("<F5>", ":lua require'dap'.continue()<CR>") key.nnoremap("<F10>", ":lua require'dap'.step_over()<CR>") @@ -14,6 +11,21 @@ key.nnoremap("<leader>B", ":lua require'dap'.set_breakpoint(vim.fn.input('Condit key.nnoremap("<leader>dr", ":lua require'dap'.repl.open()<CR>") key.nnoremap("<Alt-k>", "<Cmd>lua require'dapui'.eval()<CR>") +dap.listeners.before.attach.dapui_config = function() + dapui.open() +end +dap.listeners.before.launch.dapui_config = function() + dapui.open() +end +dap.listeners.before.event_terminated.dapui_config = function() + dapui.close() +end +dap.listeners.before.event_exited.dapui_config = function() + dapui.close() +end + +vim.keymap.set("n", "<leader>di", require("dap.ui.widgets").hover) + dap.adapters.delve = { type = "server", host = "127.0.0.1", diff --git a/lua/gabrielgio/formatter.lua b/lua/gabrielgio/formatter.lua index 893b837..cf5f849 100644 --- a/lua/gabrielgio/formatter.lua +++ b/lua/gabrielgio/formatter.lua @@ -34,6 +34,7 @@ formatter.setup({ go = { go.gofumpt, go.goimports }, terraform = { terraformfmt }, yaml = { require("formatter.filetypes.yaml").yamlfmt }, + zig = { require("formatter.filetypes.zig").zigfmt }, typespec = { tspfmt }, }, ["*"] = { diff --git a/lua/gabrielgio/go.lua b/lua/gabrielgio/go.lua index e0b27b7..e95c641 100644 --- a/lua/gabrielgio/go.lua +++ b/lua/gabrielgio/go.lua @@ -1,11 +1,10 @@ local key = require("gabrielgio.key") +require("go").setup() + vim.g["go_def_mode"] = "gopls" vim.g["go_info_mode"] = "gopls" -key.nnoremap("<leader>r", ":GoReferrers<cr>") -key.nnoremap("<leader>a", ":GoAlternate<cr>") key.nnoremap("<leader>s", ":GoRename<cr>") -key.nnoremap("<leader>i", ":GoImplements<cr>") key.nnoremap("<leader>o", ":GoIfErr<cr>") key.nnoremap("<leader>gs", ":GoDebugStart .<cr>") key.nnoremap("<leader>gc", ":GoDebugContinue<cr>") diff --git a/lua/gabrielgio/init.lua b/lua/gabrielgio/init.lua index 2c146cf..5864ae7 100644 --- a/lua/gabrielgio/init.lua +++ b/lua/gabrielgio/init.lua @@ -16,10 +16,10 @@ later(require_func("gabrielgio.formatter")) later(require_func("gabrielgio.treesitter")) later(require_func("gabrielgio.mini")) later(require_func("gabrielgio.go")) -later(require_func("gabrielgio.telescope")) later(require_func("gabrielgio.undotree")) later(require_func("gabrielgio.so")) later(require_func("gabrielgio.trouble")) later(require_func("gabrielgio.dap")) later(require_func("gabrielgio.term")) later(require_func("gabrielgio.neovide")) +later(require_func("gabrielgio.ai")) diff --git a/lua/gabrielgio/lazy.lua b/lua/gabrielgio/lazy.lua index 1354b76..77762b1 100644 --- a/lua/gabrielgio/lazy.lua +++ b/lua/gabrielgio/lazy.lua @@ -1,19 +1,23 @@ -- this file is an amalgamation of configurations that don't have its own -- config file and will be lazily loaded require("gitblame").setup() -require("neogit").setup() -require("mason").setup() -require("mason-lspconfig").setup({ - ensure_installed = { - "cssls", - "emmet_ls", - "gopls", - "html", - "lua_ls", - "pylsp", - "rust_analyzer", - "tsserver", - "zls", - -- "clangd" not working on alpine +require("treesitter-context").setup() + +vim.diagnostic.config({ + signs = { + text = { + [vim.diagnostic.severity.ERROR] = "", + [vim.diagnostic.severity.WARN] = "", + [vim.diagnostic.severity.INFO] = "", + [vim.diagnostic.severity.HINT] = "", + }, }, + virtual_text = false, + virtual_lines = { + format = function(d) + return d.message + end, + current_line = true, + }, + severity_sort = true, }) diff --git a/lua/gabrielgio/linter.lua b/lua/gabrielgio/linter.lua index 8828f73..66c7233 100644 --- a/lua/gabrielgio/linter.lua +++ b/lua/gabrielgio/linter.lua @@ -1,7 +1,6 @@ local lint = require("lint") lint.linters_by_ft = { - go = { "golangcilint" }, lua = { "luacheck" }, fish = { "fish" }, markdown = { "vale" }, diff --git a/lua/gabrielgio/lsp.lua b/lua/gabrielgio/lsp.lua index 36a3c25..f659684 100644 --- a/lua/gabrielgio/lsp.lua +++ b/lua/gabrielgio/lsp.lua @@ -1,5 +1,3 @@ -local lsp_config = require("lspconfig") - local function set_key(mode, keys, v, opts) return vim.keymap.set(mode, keys, v, opts) end @@ -10,6 +8,7 @@ local function on_attach(client, bufnr) set_key("n", "gd", vim.lsp.buf.definition, bufopts) set_key("n", "K", vim.lsp.buf.hover, bufopts) set_key("n", "gi", vim.lsp.buf.implementation, bufopts) + set_key("n", "gr", vim.lsp.buf.references, bufopts) set_key("n", "<C-s>", vim.lsp.buf.signature_help, bufopts) set_key("n", "<space>rn", vim.lsp.buf.declaration, bufopts) set_key("n", "<space>ca", vim.lsp.buf.code_action, bufopts) @@ -17,7 +16,8 @@ local function on_attach(client, bufnr) end local function setup(f) - return f({ on_attach = on_attach }) + vim.lsp.enable(f) + return vim.lsp.config(f, { on_attach = on_attach }) end local function load_all(l) @@ -28,24 +28,25 @@ local function load_all(l) end load_all({ - lsp_config.rust_analyzer.setup, - lsp_config.clangd.setup, - lsp_config.cssls.setup, - lsp_config.html.setup, - lsp_config.emmet_ls.setup, - lsp_config.pylsp.setup, - lsp_config.zls.setup, - lsp_config.ts_ls.setup, - lsp_config.terraformls.setup, - lsp_config.tsp_server.setup, + "rust_analyzer", + "clangd", + "cssls", + "html", + "emmet_ls", + "pylsp", + "zls", + "ts_ls", + "terraformls", + "tsp_server", }) -lsp_config.gopls.setup({ +vim.lsp.enable("gopls") +vim.lsp.config("gopls", { cmd_env = { GOFLAGS = "-tags=unit,integration,e2e" }, on_attach = on_attach, }) - -lsp_config.lua_ls.setup({ +vim.lsp.enable("lua_ls") +vim.lsp.config("lua_ls", { on_attach = on_attach, settings = { Lua = { diff --git a/lua/gabrielgio/mini.lua b/lua/gabrielgio/mini.lua index c04c196..b52152a 100644 --- a/lua/gabrielgio/mini.lua +++ b/lua/gabrielgio/mini.lua @@ -1,13 +1,64 @@ +local key = require("gabrielgio.key") + +local ai = require("mini.ai") local cmp = require("mini.completion") +local cursorword = require("mini.cursorword") local diff = require("mini.diff") +local files = require("mini.files") +local hipatterns = require("mini.hipatterns") local icons = require("mini.icons") +local indentscope = require("mini.indentscope") local notify = require("mini.notify") +local pairs = require("mini.pairs") +local pick = require("mini.pick") +local snippets = require("mini.snippets") local status = require("mini.statusline") local tabline = require("mini.tabline") +local trailspace = require("mini.trailspace") -cmp.setup() +ai.setup() +cursorword.setup() diff.setup({ view = { style = "sign" } }) +files.setup() icons.setup() +indentscope.setup({ draw = { animation = indentscope.gen_animation.none() } }) notify.setup() +pairs.setup() +pick.setup() +snippets.setup() status.setup() tabline.setup() +trailspace.setup() + +hipatterns.setup({ + highlighters = { + fixme = { pattern = "%f[%w]()FIXME()%f[%W]", group = "MiniHipatternsFixme" }, + hack = { pattern = "%f[%w]()HACK()%f[%W]", group = "MiniHipatternsHack" }, + todo = { pattern = "%f[%w]()TODO()%f[%W]", group = "MiniHipatternsTodo" }, + note = { pattern = "%f[%w]()NOTE()%f[%W]", group = "MiniHipatternsNote" }, + hex_color = hipatterns.gen_highlighter.hex_color(), + }, +}) + +cmp.setup({ lsp_completition = { + snippet_isert = vim.snippet.expand, +} }) + +key.nnoremap("<leader>ff", ":Pick files<CR>") +key.nnoremap("<leader>fs", ":Pick grep_live<CR>") +key.nnoremap("<leader>n", ":Telescope file_browser<CR>") + +local minifiles_toggle = function() + if not MiniFiles.close() then + MiniFiles.open(nil, false) + end +end + +local minifiles_toggle_dir = function() + if not MiniFiles.close() then + MiniFiles.open(vim.api.nvim_buf_get_name(0), false) + end +end + +key.nnoremap("<leader>n", minifiles_toggle) +key.nnoremap("<leader>m", minifiles_toggle_dir) diff --git a/lua/gabrielgio/settable.lua b/lua/gabrielgio/settable.lua index 76aa8d6..238a05f 100644 --- a/lua/gabrielgio/settable.lua +++ b/lua/gabrielgio/settable.lua @@ -47,6 +47,7 @@ vim.opt.updatetime = 100 vim.opt.foldmethod = "expr" vim.opt.foldexpr = "nvim_treesitter#foldexpr()" vim.opt.foldenable = false +vim.o.shell = "fish" vim.o.background = "light" if 1 == 1 then vim.cmd("colorscheme edge") @@ -66,7 +67,6 @@ vim.opt.compatible = false vim.opt.syntax = "on" vim.cmd("filetype plugin indent on") -key.nnoremap("<leader>w", "<C-w>w") key.nnoremap("<TAB>", ":bnext<CR>") key.nnoremap("<S-TAB>", ":bprevious<CR>") key.nnoremap("<C-TAB>", ":bd<CR>") diff --git a/lua/gabrielgio/so.lua b/lua/gabrielgio/so.lua index df04319..d699646 100644 --- a/lua/gabrielgio/so.lua +++ b/lua/gabrielgio/so.lua @@ -1,6 +1,6 @@ local key = require("gabrielgio.key") -local symbols = require("symbols-outline") +local symbols = require("outline") -key.nnoremap("<leader>to", ":SymbolsOutline<cr>") +key.nnoremap("<leader>to", ":Outline<cr>") symbols.setup() diff --git a/lua/gabrielgio/telescope.lua b/lua/gabrielgio/telescope.lua deleted file mode 100644 index d8089d1..0000000 --- a/lua/gabrielgio/telescope.lua +++ /dev/null @@ -1,31 +0,0 @@ -local key = require("gabrielgio.key") -local builtins = require("telescope.builtin") -local telescope = require("telescope") - -telescope.setup{ - defaults = { - file_ignore_patterns = { - 'vendor/', - '\\.git/' - }, - vimgrep_arguments = { - "rg", - "--color=never", - "--no-heading", - "--with-filename", - "--line-number", - "--column", - "--smart-case", - "--hidden" - } - }, -} - -telescope.load_extension("file_browser") - -key.nnoremap("<leader>ff", builtins.find_files) -key.nnoremap("<leader>fs", builtins.live_grep) -key.nnoremap("<leader>fc", ":Telescope lsp_dynamic_workspace_symbols<CR>") -key.nnoremap("<leader>fd", ":Telescope buffers<CR>") -key.nnoremap("<leader>n", ":Telescope file_browser<CR>") -key.nnoremap("<leader>m", ":Telescope file_browser path=%:p:h select_buffer=true<CR>") |
