@@ -12,7 +12,7 @@ lsp.ensure_installed {
1212 -- 'ruff_lsp',
1313 ' pyright' ,
1414 -- Java Stuffs
15- -- 'jdtls',
15+ ' jdtls' ,
1616 -- 'google-java-format',
1717 -- Golang
1818 -- 'gofumpt',
@@ -29,6 +29,12 @@ lsp.ensure_installed {
2929 ' tailwindcss' ,
3030}
3131
32+ local capabilities = vim .lsp .protocol .make_client_capabilities ()
33+ capabilities .textDocument .foldingRange = {
34+ dynamicRegistration = false ,
35+ lineFoldingOnly = true ,
36+ }
37+
3238-- Fix Undefined global 'vim'
3339lsp .nvim_workspace ()
3440
@@ -58,67 +64,71 @@ lsp.set_preferences {
5864 },
5965}
6066
61- lsp . on_attach (function ( _ , bufnr )
67+ local function on_attach (client , bufnr )
6268 local opts = { buffer = bufnr , remap = false }
6369
64- vim .keymap .set (' n' , ' gD' , function ( )
65- vim .lsp .buf .declaration ( )
66- end , opts )
67- vim .keymap .set (' n' , ' K ' , function ( )
68- vim .lsp . buf . hover ( )
69- end , opts )
70- vim .keymap .set (' n' , ' <leader>vws ' , function ( )
71- vim .lsp . buf . workspace_symbol ( )
72- end , opts )
73- vim .keymap .set (' n' , ' <leader>vd ' , function ( )
74- vim .diagnostic . open_float ( )
75- end , opts )
76-
77- vim . keymap . set ( ' n ' , ' [d ' , function ()
78- vim . diagnostic . goto_next ( )
79- end , opts )
80-
81- vim .keymap .set (' n' , ' ]d ' , function ()
82- vim .diagnostic . goto_prev ( )
70+ vim .keymap .set (' n' , ' gD' , vim . lsp . buf . declaration , opts )
71+ vim . keymap . set ( ' n ' , ' K ' , vim .lsp .buf .hover , opts )
72+ vim . keymap . set ( ' n ' , ' <leader>vws ' , vim . lsp . buf . workspace_symbol , opts )
73+ vim .keymap .set (' n' , ' <leader>vd ' , vim . diagnostic . open_float , opts )
74+ vim . keymap . set ( ' n ' , ' [d ' , vim .diagnostic . goto_next , opts )
75+ vim . keymap . set ( ' n ' , ' ]d ' , vim . diagnostic . goto_prev , opts )
76+ vim .keymap .set (' n' , ' <leader>dd ' , vim . diagnostic . setloclist , opts )
77+ vim . keymap . set ( ' n ' , ' <leader>do ' , vim .diagnostic . open_float , opts )
78+ vim . keymap . set ( ' n ' , ' <leader>ca ' , vim . lsp . buf . code_action , opts )
79+ vim .keymap .set (' n' , ' gd ' , require ( ' telescope.builtin ' ). lsp_definitions , opts )
80+ vim .keymap . set ( ' n ' , ' gr ' , require ( ' telescope.builtin ' ). lsp_references , opts )
81+ vim . keymap . set ( ' n ' , ' <leader>rn ' , vim . lsp . buf . rename , opts )
82+ vim . keymap . set ( ' n ' , ' <leader>lf ' , function ()
83+ require ( ' conform ' ). format ()
84+ end , { buffer = bufnr , desc = ' Format Buffer ' } )
85+ vim . keymap . set ( ' n ' , ' <leader>wa ' , vim . lsp . buf . add_workspace_folder , opts )
86+ vim . keymap . set ( ' n ' , ' <leader>wr ' , vim . lsp . buf . remove_workspace_folder , opts )
87+ vim .keymap .set (' n' , ' <leader>wl ' , function ()
88+ print ( vim .inspect ( vim . lsp . buf . list_workspace_folders ()) )
8389 end , opts )
90+ end
8491
85- vim .keymap .set (' n' , ' <leader>dd' , function ()
86- vim .diagnostic .setloclist ()
87- end , opts )
92+ lsp .on_attach (on_attach )
93+ lsp .setup ()
8894
89- vim .keymap . set ( ' n ' , ' <leader>do ' , function ()
90- vim . diagnostic . open_float ()
91- end , opts )
95+ vim .diagnostic . config {
96+ virtual_text = true ,
97+ }
9298
93- vim .keymap .set (' n' , ' <leader>ca' , function ()
94- vim .lsp .buf .code_action ()
95- end , opts )
99+ local function on_attach (client , bufnr )
100+ local opts = { buffer = bufnr , remap = false }
96101
102+ vim .keymap .set (' n' , ' gD' , vim .lsp .buf .declaration , opts )
103+ vim .keymap .set (' n' , ' K' , vim .lsp .buf .hover , opts )
104+ vim .keymap .set (' n' , ' <leader>vws' , vim .lsp .buf .workspace_symbol , opts )
105+ vim .keymap .set (' n' , ' <leader>vd' , vim .diagnostic .open_float , opts )
106+ vim .keymap .set (' n' , ' [d' , vim .diagnostic .goto_next , opts )
107+ vim .keymap .set (' n' , ' ]d' , vim .diagnostic .goto_prev , opts )
108+ vim .keymap .set (' n' , ' <leader>dd' , vim .diagnostic .setloclist , opts )
109+ vim .keymap .set (' n' , ' <leader>do' , vim .diagnostic .open_float , opts )
110+ vim .keymap .set (' n' , ' <leader>ca' , vim .lsp .buf .code_action , opts )
97111 vim .keymap .set (' n' , ' gd' , require (' telescope.builtin' ).lsp_definitions , opts )
98112 vim .keymap .set (' n' , ' gr' , require (' telescope.builtin' ).lsp_references , opts )
99-
100- vim .keymap .set (' n' , ' <leader>rn' , function ()
101- vim .lsp .buf .rename ()
102- end , opts )
103-
113+ vim .keymap .set (' n' , ' <leader>rn' , vim .lsp .buf .rename , opts )
104114 vim .keymap .set (' n' , ' <leader>lf' , function ()
105115 require (' conform' ).format ()
106- end , { desc = ' Format Buffer' })
107-
108- -- Add WorkSpace
116+ end , { buffer = bufnr , desc = ' Format Buffer' })
109117 vim .keymap .set (' n' , ' <leader>wa' , vim .lsp .buf .add_workspace_folder , opts )
110-
111- -- Remove WorkSpace
112118 vim .keymap .set (' n' , ' <leader>wr' , vim .lsp .buf .remove_workspace_folder , opts )
113-
114- -- List WorkSpace
115119 vim .keymap .set (' n' , ' <leader>wl' , function ()
116120 print (vim .inspect (vim .lsp .buf .list_workspace_folders ()))
117121 end , opts )
118- end )
122+ end
119123
124+ lsp .on_attach (on_attach )
120125lsp .setup ()
121126
122127vim .diagnostic .config {
123128 virtual_text = true ,
124129}
130+
131+ return {
132+ capabilities = capabilities ,
133+ on_attach = on_attach ,
134+ }
0 commit comments