@@ -12,10 +12,33 @@ local function root_dir(patterns)
1212 upward = true ,
1313 })[1 ])
1414end
15+
16+ -- remove defaults
17+ vim .keymap .del (" n" , " gO" )
18+ vim .keymap .del (" n" , " gra" )
19+ vim .keymap .del (" n" , " gri" )
20+ vim .keymap .del (" n" , " grn" )
21+ vim .keymap .del (" n" , " grr" )
22+
23+ -- add my own
24+ vim .keymap .set (" n" , " <leader>r" , vim .lsp .buf .rename , { desc = " lsp: rename symbol" })
25+ vim .keymap .set (" n" , " <leader>?" , vim .lsp .buf .code_action , { desc = " lsp: run code action" })
26+ vim .keymap .set (" n" , " go" , vim .lsp .buf .document_symbol , { desc = " lsp: show symbols" })
27+ vim .keymap .set (" n" , " gO" , vim .lsp .buf .workspace_symbol , { desc = " lsp: show workspacesymbols" })
28+ vim .keymap .set (" n" , " gd" , vim .lsp .buf .definition , { desc = " lsp: show definition" })
29+ vim .keymap .set (" n" , " gD" , vim .lsp .buf .type_definition , { desc = " lsp: show type definition" })
30+ vim .keymap .set (" n" , " gi" , vim .lsp .buf .implementation , { desc = " lsp: show implementations" })
31+ vim .keymap .set (" n" , " gr" , function ()
32+ vim .lsp .buf .references ({ includeDeclaration = false })
33+ end , { desc = " lsp: show references" })
34+ vim .keymap .set (" n" , " gh" , vim .lsp .buf .incoming_calls , { desc = " lsp: show callers" })
35+ vim .keymap .set (" n" , " gH" , vim .lsp .buf .outgoing_calls , { desc = " lsp: show callees" })
36+ vim .keymap .set (" n" , " <leader>sd" , vim .diagnostic .setqflist , { desc = " lsp: list diagnostics" })
37+
1538vim .lsp .config (" gopls" , {
1639 cmd = { " gopls" },
1740 filetypes = { " go" , " gomod" , " gowork" , " gotmpl" },
18- on_attach = function (client , _ )
41+ on_attach = function (_ , _ )
1942 -- modify some semantic tokens
2043 vim .api .nvim_create_autocmd (" LspTokenUpdate" , {
2144 callback = function (args )
@@ -58,11 +81,13 @@ vim.lsp.config("gopls", {
5881 },
5982 },
6083})
84+
6185vim .lsp .config (" templ" , {
6286 cmd = { " templ" , " lsp" },
6387 filetypes = { " templ" },
6488 root_dir = root_dir ({ " go.mod" , " go.sum" }),
6589})
90+
6691vim .lsp .config (" javascript" , {
6792 init_options = {
6893 hostInfo = " neovim" ,
@@ -79,6 +104,7 @@ vim.lsp.config("javascript", {
79104 root_dir = root_dir (),
80105 single_file_support = true ,
81106})
107+
82108vim .lsp .config (" lua_ls" , {
83109 cmd = { " lua-language-server" },
84110 filetypes = { " lua" },
@@ -94,22 +120,21 @@ vim.lsp.config("lua_ls", {
94120 },
95121 },
96122})
123+
97124vim .lsp .config (" nixd" , {
98125 cmd = { " nixd" },
99126 filetypes = { " nix" },
100127 single_file_support = true ,
101128 root_dir = root_dir (),
102129})
103130
104- vim .lsp .enable ({ " gopls" , " nixd" , " templ" , " javascript" , " lua_ls" })
105-
106- vim .api .nvim_create_autocmd (" LspAttach" , {
107- group = vim .api .nvim_create_augroup (" on_lsp_attach" , {}),
108- callback = function (event )
109- -- commands
110- vim .api .nvim_buf_create_user_command (event .buf , " LspRestart" , function (_ )
111- vim .lsp .stop_client (vim .lsp .get_clients (), true )
112- vim .cmd (" edit!" )
113- end , { desc = " Restart all active LSP clients" })
114- end ,
131+ vim .lsp .config (" typos-lsp" , {
132+ cmd = { " typos-lsp" },
133+ root_dir = root_dir (),
134+ single_file_support = true ,
135+ init_options = {
136+ diagnosticSeverity = " hint" ,
137+ },
115138})
139+
140+ vim .lsp .enable ({ " gopls" , " typos-lsp" , " nixd" , " templ" , " javascript" , " lua_ls" })
0 commit comments