1diff --git a/init.lua b/init.lua
2index cd12bf659a725a503e3c6051d4193558364839f1..cb0e376b5135f5d6dfb7989e4e625a8727e86d59 100644
3--- a/init.lua
4+++ b/init.lua
5@@ -25,7 +25,6 @@ "folke/trouble.nvim", -- diagnostics
6 "mfussenegger/nvim-dap", -- add dap support
7 "nvim-neotest/nvim-nio", -- async support library
8 "rcarriga/nvim-dap-ui", -- dap ui
9- "leoluz/nvim-dap-go", -- dap go
10 "nvim-lua/plenary.nvim", -- base lib
11 "nvim-telescope/telescope.nvim", -- telescope
12 "nvim-telescope/telescope-file-browser.nvim", -- telescope file browser
13@@ -36,8 +35,9 @@ "echasnovski/mini.nvim", -- provides many things
14 "mhartington/formatter.nvim", -- provider formatter
15 "mfussenegger/nvim-lint", -- general linter
16 "nvim-treesitter/nvim-treesitter-context", -- show context of where it is at the code
17+ "theHamsta/nvim-dap-virtual-text", -- support lib from tree sitter
18 "mbbill/undotree", -- keep track of undos
19- "simrat39/symbols-outline.nvim", -- symbols tree (lsp aware)
20+ "hedyhli/outline.nvim", -- symbols tree (lsp aware)
21 "akinsho/toggleterm.nvim", -- terminal
22 "RRethy/vim-illuminate", -- hightlight use of the same word (lsp aware)
23 "sainnhe/edge", -- light theme
24@@ -46,6 +46,7 @@ "williamboman/mason.nvim", -- manages many things
25 "williamboman/mason-lspconfig.nvim", -- glue mason and lspconfig
26 "neovim/nvim-lspconfig", -- lsp support
27 "vimwiki/vimwiki", -- wiki
28+ "ray-x/go.nvim", -- go things
29 }
30 -- stylua: ignore end
31
32@@ -57,14 +58,16 @@ vim.cmd("TSUpdate")
33 end,
34 },
35 })
36-add({
37- source = "fatih/vim-go",
38- hooks = {
39- post_checkout = function()
40- vim.cmd("GoUpdateBinaries")
41- end,
42- },
43-})
44+
45+-- work related ai plugins
46+if vim.fn.executable("copilot") == 1 then
47+ table.insert(pkgs, "github/copilot.vim") -- copilot
48+end
49+
50+if vim.fn.executable("claude") == 1 then
51+ table.insert(pkgs, "coder/claudecode.nvim") -- claude
52+end
53+
54 for _, value in ipairs(pkgs) do
55 add({ source = value })
56 end
57diff --git a/lua/gabrielgio/ai.lua b/lua/gabrielgio/ai.lua
58new file mode 100644
59index 0000000000000000000000000000000000000000..08a49a639bcb3d6cf9bc06d799f2b3aae5e929e7
60--- /dev/null
61+++ b/lua/gabrielgio/ai.lua
62@@ -0,0 +1,5 @@
63+local ok, claudecode = pcall(require, "claudecode")
64+
65+if ok then
66+ claudecode.setup()
67+end
68diff --git a/lua/gabrielgio/dap.lua b/lua/gabrielgio/dap.lua
69index 4d55ca6d4527e000f9d4473f1eb9d8e15b9bc643..e4a29239c35f49a5f500347e5777a726c8c8af85 100644
70--- a/lua/gabrielgio/dap.lua
71+++ b/lua/gabrielgio/dap.lua
72@@ -1,9 +1,6 @@
73-local dap = require("dap")
74 local key = require("gabrielgio.key")
75+local dap = require("dap")
76 local dapui = require("dapui")
77-local dapgo = require("dap-go")
78-
79-dapgo.setup()
80
81 key.nnoremap("<F5>", ":lua require'dap'.continue()<CR>")
82 key.nnoremap("<F10>", ":lua require'dap'.step_over()<CR>")
83diff --git a/lua/gabrielgio/go.lua b/lua/gabrielgio/go.lua
84index e0b27b7e74ca76abcba37f63e3c8f52fa1e29da1..e95c6417025400b57ff68cf9007f685c9f6d407a 100644
85--- a/lua/gabrielgio/go.lua
86+++ b/lua/gabrielgio/go.lua
87@@ -1,11 +1,10 @@
88 local key = require("gabrielgio.key")
89
90+require("go").setup()
91+
92 vim.g["go_def_mode"] = "gopls"
93 vim.g["go_info_mode"] = "gopls"
94-key.nnoremap("<leader>r", ":GoReferrers<cr>")
95-key.nnoremap("<leader>a", ":GoAlternate<cr>")
96 key.nnoremap("<leader>s", ":GoRename<cr>")
97-key.nnoremap("<leader>i", ":GoImplements<cr>")
98 key.nnoremap("<leader>o", ":GoIfErr<cr>")
99 key.nnoremap("<leader>gs", ":GoDebugStart .<cr>")
100 key.nnoremap("<leader>gc", ":GoDebugContinue<cr>")
101diff --git a/lua/gabrielgio/init.lua b/lua/gabrielgio/init.lua
102index 2c146cfc6d62fce3b790b5dd24e35d048e145128..fcdce8cfb35dc0d7d21d885839bcd9a5ccb31110 100644
103--- a/lua/gabrielgio/init.lua
104+++ b/lua/gabrielgio/init.lua
105@@ -23,3 +23,4 @@ later(require_func("gabrielgio.trouble"))
106 later(require_func("gabrielgio.dap"))
107 later(require_func("gabrielgio.term"))
108 later(require_func("gabrielgio.neovide"))
109+later(require_func("gabrielgio.ai"))
110diff --git a/lua/gabrielgio/lazy.lua b/lua/gabrielgio/lazy.lua
111index 1354b76f98fcb158b916dee07583e14bcb7acf41..e8b76ccb0895af00a90fde2401abaa276e4c9263 100644
112--- a/lua/gabrielgio/lazy.lua
113+++ b/lua/gabrielgio/lazy.lua
114@@ -3,17 +3,19 @@ -- config file and will be lazily loaded
115 require("gitblame").setup()
116 require("neogit").setup()
117 require("mason").setup()
118+require("nvim-dap-virtual-text").setup()
119+require("treesitter-context").setup()
120 require("mason-lspconfig").setup({
121 ensure_installed = {
122 "cssls",
123 "emmet_ls",
124- "gopls",
125+ -- "gopls",
126 "html",
127 "lua_ls",
128 "pylsp",
129 "rust_analyzer",
130 "tsserver",
131 "zls",
132- -- "clangd" not working on alpine
133+ -- "clangd" not working on alpine
134 },
135 })
136diff --git a/lua/gabrielgio/lsp.lua b/lua/gabrielgio/lsp.lua
137index 36a3c25d7756c9f93e2007ed698eac9781d57d6e..3c169c428ce011566499f963551e27e6a67b7984 100644
138--- a/lua/gabrielgio/lsp.lua
139+++ b/lua/gabrielgio/lsp.lua
140@@ -10,6 +10,7 @@ set_key("n", "gD", vim.lsp.buf.declaration, bufopts)
141 set_key("n", "gd", vim.lsp.buf.definition, bufopts)
142 set_key("n", "K", vim.lsp.buf.hover, bufopts)
143 set_key("n", "gi", vim.lsp.buf.implementation, bufopts)
144+ set_key("n", "gr", vim.lsp.buf.references, bufopts)
145 set_key("n", "<C-s>", vim.lsp.buf.signature_help, bufopts)
146 set_key("n", "<space>rn", vim.lsp.buf.declaration, bufopts)
147 set_key("n", "<space>ca", vim.lsp.buf.code_action, bufopts)
148diff --git a/lua/gabrielgio/so.lua b/lua/gabrielgio/so.lua
149index df04319ba3d33feb24f54dca88172a346cdb89ce..d699646579ecc1dbaba90cbc703f23deaae085da 100644
150--- a/lua/gabrielgio/so.lua
151+++ b/lua/gabrielgio/so.lua
152@@ -1,6 +1,6 @@
153 local key = require("gabrielgio.key")
154-local symbols = require("symbols-outline")
155+local symbols = require("outline")
156
157-key.nnoremap("<leader>to", ":SymbolsOutline<cr>")
158+key.nnoremap("<leader>to", ":Outline<cr>")
159
160 symbols.setup()