aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init.lua52
-rw-r--r--lua/gabrielgio/ai.lua5
-rw-r--r--lua/gabrielgio/dap.lua20
-rw-r--r--lua/gabrielgio/formatter.lua1
-rw-r--r--lua/gabrielgio/go.lua5
-rw-r--r--lua/gabrielgio/init.lua2
-rw-r--r--lua/gabrielgio/lazy.lua32
-rw-r--r--lua/gabrielgio/linter.lua1
-rw-r--r--lua/gabrielgio/lsp.lua33
-rw-r--r--lua/gabrielgio/mini.lua53
-rw-r--r--lua/gabrielgio/settable.lua2
-rw-r--r--lua/gabrielgio/so.lua4
-rw-r--r--lua/gabrielgio/telescope.lua31
13 files changed, 137 insertions, 104 deletions
diff --git a/init.lua b/init.lua
index c8e7ba7..1467fdf 100644
--- a/init.lua
+++ b/init.lua
@@ -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>")