Skip to content

Commit c1bde2c

Browse files
committed
stable java
1 parent 44570ee commit c1bde2c

File tree

5 files changed

+296
-93
lines changed

5 files changed

+296
-93
lines changed

after/plugin/lsp-config.lua

Lines changed: 53 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -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'
3339
lsp.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)
120125
lsp.setup()
121126

122127
vim.diagnostic.config {
123128
virtual_text = true,
124129
}
130+
131+
return {
132+
capabilities = capabilities,
133+
on_attach = on_attach,
134+
}

after/plugin/nvim-java-config.lua

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,49 @@
1-
local java_21_home_dir = '/Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home/bin/java'
1+
local java_21_home_dir = '/Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home'
2+
local java_17_home_dir = '/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home'
3+
local java_11_home_dir = '/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home'
4+
5+
local function on_attach(client, bufnr)
6+
local opts = { buffer = bufnr, remap = false }
7+
8+
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
9+
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
10+
vim.keymap.set('n', '<leader>vws', vim.lsp.buf.workspace_symbol, opts)
11+
vim.keymap.set('n', '<leader>vd', vim.diagnostic.open_float, opts)
12+
vim.keymap.set('n', '[d', vim.diagnostic.goto_next, opts)
13+
vim.keymap.set('n', ']d', vim.diagnostic.goto_prev, opts)
14+
vim.keymap.set('n', '<leader>dd', vim.diagnostic.setloclist, opts)
15+
vim.keymap.set('n', '<leader>do', vim.diagnostic.open_float, opts)
16+
vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, opts)
17+
vim.keymap.set('n', 'gd', require('telescope.builtin').lsp_definitions, opts)
18+
vim.keymap.set('n', 'gr', require('telescope.builtin').lsp_references, opts)
19+
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
20+
vim.keymap.set('n', '<leader>lf', function()
21+
require('conform').format()
22+
end, { buffer = bufnr, desc = 'Format Buffer' })
23+
vim.keymap.set('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, opts)
24+
vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, opts)
25+
vim.keymap.set('n', '<leader>wl', function()
26+
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
27+
end, opts)
28+
end
29+
30+
local capabilities = vim.lsp.protocol.make_client_capabilities()
31+
capabilities.textDocument.foldingRange = {
32+
dynamicRegistration = false,
33+
lineFoldingOnly = true,
34+
}
235

336
require('java').setup()
437
require('lspconfig').jdtls.setup {
38+
on_attach = on_attach,
39+
capabilities = capabilities,
540
settings = {
641
java = {
742
configuration = {
843
runtimes = {
944
{
10-
name = 'JavaSE-21',
11-
path = java_21_home_dir .. '/bin/java',
45+
name = 'JavaSE-17',
46+
path = java_17_home_dir .. '/bin/java',
1247
default = true,
1348
},
1449
},
@@ -34,3 +69,7 @@ vim.keymap.set('n', '<leader>jd', function()
3469
vim.notify 'This keymap only works for Java files.'
3570
end
3671
end, { desc = 'Redeploy Wildfly' })
72+
73+
vim.diagnostic.config {
74+
virtual_text = true,
75+
}

after/plugin/nvim-ufo-config.lua

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@ vim.keymap.set('n', 'zR', require('ufo').openAllFolds)
88
vim.keymap.set('n', 'zM', require('ufo').closeAllFolds)
99

1010
vim.keymap.set('n', 'zK', function()
11-
local winid = require('ufo').peekFoldedLinesUnderCursor()
11+
local winid = ufo.peekFoldedLinesUnderCursor()
1212
if not winid then
13-
-- choose one of coc.nvim and nvim lsp
14-
-- vim.fn.CocActionAsync 'definitionHover' -- coc.nvim
1513
vim.lsp.buf.hover()
1614
end
1715
end)
@@ -22,15 +20,6 @@ capabilities.textDocument.foldingRange = {
2220
lineFoldingOnly = true,
2321
}
2422

25-
-- local language_servers = require('lspconfig').util.available_servers() -- or list servers manually like {'gopls', 'clangd'}
26-
-- print(language_servers)
27-
-- for _, ls in ipairs(language_servers) do
28-
-- require('lspconfig')[ls].setup {
29-
-- capabilities = capabilities,
30-
-- -- you can add other fields for setting up lsp server in this table
31-
-- }
32-
-- end
33-
3423
require('ufo').setup {
3524
provider_selector = function(bufnr, filetype, buftype)
3625
return { 'lsp', 'indent' }

0 commit comments

Comments
 (0)