@@ -10,14 +10,17 @@ vim.lsp.enable 'lua_ls'
1010
1111vim .lsp .enable ' gopls'
1212vim .lsp .enable ' templ'
13- vim .lsp .enable ' htmx'
1413
15- vim .lsp .enable ' jsonls '
16- vim .lsp .enable ' html '
14+ vim .lsp .enable ' dartls '
15+ -- vim.lsp.enable 'htmx '
1716
18- vim .lsp .enable ' ts_ls'
17+ -- vim.lsp.enable 'jsonls'
18+ -- vim.lsp.enable 'html'
19+
20+ vim .lsp .enable ' tsserver'
1921vim .lsp .enable ' eslint'
2022
23+ -- vim.lsp.enable 'tsserver'
2124vim .lsp .enable ' tailwindcss'
2225
2326local capabilities = vim .lsp .protocol .make_client_capabilities ()
@@ -27,103 +30,47 @@ capabilities.textDocument.foldingRange = {
2730}
2831
2932local function on_attach (bufnr )
33+ -- 'opts' table to avoid repetition for buffer and remap settings
3034 local opts = { buffer = bufnr , remap = false }
3135
32- vim .keymap .set (' n' , ' gD' , vim .lsp .buf .declaration , opts )
33- vim .keymap .set (' n' , ' K' , vim .lsp .buf .hover , opts )
34- vim .keymap .set (' n' , ' <leader>vws' , vim .lsp .buf .workspace_symbol , opts )
35- vim .keymap .set (' n' , ' <leader>vd' , vim .diagnostic .open_float , opts )
36- vim .keymap .set (' n' , ' [d' , vim .diagnostic .goto_next , opts )
37- vim .keymap .set (' n' , ' ]d' , vim .diagnostic .goto_prev , opts )
38- vim .keymap .set (' n' , ' <leader>dd' , vim .diagnostic .setloclist , opts )
39- vim .keymap .set (' n' , ' <leader>do' , vim .diagnostic .open_float , opts )
40- vim .keymap .set (' n' , ' <leader>ca' , vim .lsp .buf .code_action , opts )
41- vim .keymap .set (' n' , ' gd' , require (' telescope.builtin' ).lsp_definitions , opts )
42- vim .keymap .set (' n' , ' gr' , require (' telescope.builtin' ).lsp_references , opts )
43- vim .keymap .set (' n' , ' <leader>rn' , vim .lsp .buf .rename , opts )
36+ -- Require Telescope for LSP-related functions
37+ local tele = require ' telescope.builtin'
38+
39+ -- Set up keymaps with clear descriptions
40+ vim .keymap .set (' n' , ' gD' , vim .lsp .buf .declaration , { desc = ' Lsp: Goto Declaration' , buffer = bufnr , remap = false })
41+ vim .keymap .set (' n' , ' K' , vim .lsp .buf .hover , { desc = ' Lsp: Hover Documentation' , buffer = bufnr , remap = false })
42+ vim .keymap .set (' n' , ' <leader>vws' , vim .lsp .buf .workspace_symbol , { desc = ' Lsp: Workspace Symbols' , buffer = bufnr , remap = false })
43+ vim .keymap .set (' n' , ' <leader>vd' , vim .diagnostic .open_float , { desc = ' Lsp: View Line Diagnostic' , buffer = bufnr , remap = false })
44+ vim .keymap .set (' n' , ' [d' , vim .diagnostic .goto_next , { desc = ' Lsp: Next Diagnostic' , buffer = bufnr , remap = false })
45+ vim .keymap .set (' n' , ' ]d' , vim .diagnostic .goto_prev , { desc = ' Lsp: Previous Diagnostic' , buffer = bufnr , remap = false })
46+ vim .keymap .set (' n' , ' <leader>dd' , vim .diagnostic .setloclist , { desc = ' Lsp: List Diagnostics' , buffer = bufnr , remap = false })
47+ vim .keymap .set (' n' , ' <leader>do' , vim .diagnostic .open_float , { desc = ' Lsp: Open Diagnostic Float' , buffer = bufnr , remap = false })
48+ vim .keymap .set (' n' , ' <leader>ca' , vim .lsp .buf .code_action , { desc = ' Lsp: Code Action' , buffer = bufnr , remap = false })
49+ vim .keymap .set (' n' , ' gd' , require (' telescope.builtin' ).lsp_definitions , { desc = ' Lsp: Goto Definition' , buffer = bufnr , remap = false })
50+ vim .keymap .set (' n' , ' gr' , require (' telescope.builtin' ).lsp_references , { desc = ' Lsp: Goto References' , buffer = bufnr , remap = false })
51+ vim .keymap .set (' n' , ' <leader>rn' , vim .lsp .buf .rename , { desc = ' Lsp: Rename Symbol' , buffer = bufnr , remap = false })
52+
4453 vim .keymap .set (' n' , ' <leader>lf' , function ()
45- require (' conform' ).format ()
46- end , { buffer = bufnr , desc = ' Format Buffer' })
47- vim .keymap .set (' n' , ' <leader>wa' , vim .lsp .buf .add_workspace_folder , opts )
48- vim .keymap .set (' n' , ' <leader>wr' , vim .lsp .buf .remove_workspace_folder , opts )
54+ require (' conform' ).format { bufnr = bufnr }
55+ end , { buffer = bufnr , desc = ' Lsp: Format Buffer' })
56+
57+ vim .keymap .set (' n' , ' <leader>wa' , vim .lsp .buf .add_workspace_folder , { desc = ' Lsp: Add Workspace Folder' , buffer = bufnr , remap = false })
58+ vim .keymap .set (' n' , ' <leader>wr' , vim .lsp .buf .remove_workspace_folder , { desc = ' Lsp: Remove Workspace Folder' , buffer = bufnr , remap = false })
4959 vim .keymap .set (' n' , ' <leader>wl' , function ()
5060 print (vim .inspect (vim .lsp .buf .list_workspace_folders ()))
51- end , opts )
61+ end , { desc = ' Lsp: List Workspace Folders' , buffer = bufnr , remap = false })
62+
63+ local tele = require ' telescope.builtin'
64+
65+ vim .keymap .set (' n' , ' <leader>fs' , tele .lsp_document_symbols , { desc = ' Lsp: Document Symbols (Current File)' , buffer = bufnr , remap = false })
66+ vim .keymap .set (' n' , ' <leader>fS' , tele .lsp_dynamic_workspace_symbols , { desc = ' Lsp: Workspace Symbols (Dynamic)' , buffer = bufnr , remap = false })
67+ vim .keymap .set (' n' , ' <leader>ft' , tele .lsp_type_definitions , { desc = ' Lsp: Goto Type Definition' , buffer = bufnr , remap = false })
68+ vim .keymap .set (' n' , ' <leader>fi' , tele .lsp_implementations , { desc = ' Lsp: Goto Implementations' , buffer = bufnr , remap = false })
5269end
5370
5471vim .api .nvim_create_autocmd (' LspAttach' , {
5572 group = vim .api .nvim_create_augroup (' UserLspConfig' , {}),
5673 callback = function (ev )
5774 on_attach (ev .buf )
58- -- local map = function(keys, func, desc)
59- -- vim.keymap.set('n', keys, func, { buffer = ev.buf, desc = 'Lsp: ' .. desc })
60- -- end
61-
62- -- local tele = require 'telescope.builtin'
63- -- map('gd', tele.lsp_definitions, 'Goto Definition')
64- -- map('gr', tele.lsp_references, 'Goto References')
65- --
66- -- map('K', vim.lsp.buf.hover, 'hover')
67- --
68- -- map('n', '<leader>vws', vim.lsp.buf.workspace_symbol, 'Workspace Symbols')
69- --
70- -- map('n', '<leader>vd', vim.diagnostic.open_float, 'View Diagnostic')
71- --
72- -- map('n', '[d', vim.diagnostic.goto_next, 'Goto Next Diagnostic')
73- -- map('n', ']d', vim.diagnostic.goto_prev, 'Goto Preview Diagnostic')
74- -- map('n', '<leader>dd', vim.diagnostic.setloclist, 'List Diagnostics')
75- -- map('n', '<leader>do', vim.diagnostic.open_float, 'List All Diagnostics')
76- -- map('n', '<leader>ca', vim.lsp.buf.code_action, 'Code Action')
77- --
78- -- map('<leader>fs', tele.lsp_document_symbols, 'Doc Symbols')
79- -- map('<leader>fS', tele.lsp_dynamic_workspace_symbols, 'Dynamic Symbols')
80- -- map('<leader>ft', tele.lsp_type_definitions, 'Goto Type')
81- -- map('<leader>fi', tele.lsp_implementations, 'Goto Impl')
82- --
83- -- map('n', '<leader>rn', vim.lsp.buf.rename, 'Rename')
84- -- map('n', '<leader>lf', function()
85- -- require('conform').format()
86- -- end, 'Format Buffer')
87- --
88- -- map('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, 'Add WorkSpace')
89- -- map('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, 'Remove WorkSpace')
90- -- map('n', '<leader>wl', function()
91- -- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
92- -- end, 'List Work Spaces')
9375 end ,
9476})
95- -- vim.lsp.on_attach(on_attach)
96- -- vim.lsp.setup()
97- --
98- -- vim.diagnostic.config {
99- -- virtual_text = true,
100- -- }
101-
102- -- Fix Undefined global 'vim'
103- -- vim.lsp.nvim_workspace()
104-
105- -- local cmp = require 'cmp'
106- -- local cmp_select = { behavior = cmp.SelectBehavior.Select }
107- -- local cmp_mappings = vim.lsp.defaults.cmp_mappings {
108- -- ['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
109- -- ['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
110- -- ['<C-y>'] = cmp.mapping.confirm { select = true },
111- -- ['<C-Space>'] = cmp.mapping.complete(),
112- -- }
113-
114- -- cmp_mappings['<Tab>'] = nil
115- -- cmp_mappings['<S-Tab>'] = nil
116-
117- -- vim.lsp.setup_nvim_cmp {
118- -- mapping = cmp_mappings,
119- -- }
120-
121- -- vim.lsp.set_preferences {
122- -- suggest_lsp_servers = false,
123- -- sign_icons = {
124- -- error = '⛔️',
125- -- warn = '⚠️',
126- -- hint = '🧐',
127- -- info = 'I',
128- -- },
129- -- }
0 commit comments