diff options
-rw-r--r-- | config/essentials/nvim/after/plugin/luasnip.lua | 33 | ||||
-rw-r--r-- | config/essentials/nvim/ftplugin/java.lua | 56 | ||||
-rw-r--r-- | config/essentials/nvim/lua/user/cmp/java.lua | 2 | ||||
-rw-r--r-- | config/essentials/nvim/lua/user/packer.lua | 4 | ||||
l--------- | config/extra/mutt/muttrc | 2 |
5 files changed, 62 insertions, 35 deletions
diff --git a/config/essentials/nvim/after/plugin/luasnip.lua b/config/essentials/nvim/after/plugin/luasnip.lua index 083ccc0..671b9bb 100644 --- a/config/essentials/nvim/after/plugin/luasnip.lua +++ b/config/essentials/nvim/after/plugin/luasnip.lua @@ -71,7 +71,7 @@ ls.add_snippets("java", { -- function s("fn", fmt( [[ - {}{} {} ({}) + {}{} {}({}) {{ {} }} @@ -82,34 +82,7 @@ ls.add_snippets("java", { i(3, "f"), i(4), i(0) })), - -- constructor - s("cst", fmt( - [[ - public {} ({}) - {{ - {} - }}{} - ]], - { i(1), i(2), i(3), i(0) })), -- setter function - s("sfn", fmt( - [[ - {}void set_{} ({} {}) - {{ - this.{} = {}; - }}{} - ]], - { c(1, {t "public ", t "private ", t ""}), - i(2), i(3), rep(2), rep(2), rep(2), i(0) })), - -- getter function - s("gfn", fmt( - [[ - {}{} get_{} () - {{ - return this.{}; - }}{} - ]], - { c(1, {t "public ", t "private ", t ""}), i(2, "type"), i(3), rep(3), i(0)})), s("psv", fmt( [[ public class Main @@ -127,9 +100,9 @@ ls.add_snippets("java", { {}class {} {{ {} - }} + }}{} ]], - { c(1, {t "public ", t "private ", t ""}), i(2), i(0)})), + { c(1, {t "public ", t "private ", t ""}), i(2), i(3), i(0)})), -- StringBuilder s("sb", fmt( [[ diff --git a/config/essentials/nvim/ftplugin/java.lua b/config/essentials/nvim/ftplugin/java.lua index eeaff47..9cb52e1 100644 --- a/config/essentials/nvim/ftplugin/java.lua +++ b/config/essentials/nvim/ftplugin/java.lua @@ -1,3 +1,53 @@ -vim.keymap.set({"n", "i"}, "<LocalLeader>t", "<cmd>s/\\(\\s*\\)\\(.*\\)/\\1System.out.print(\"\\2\");<cr>") -vim.keymap.set({"n", "i"}, "<LocalLeader>i", "<cmd>s/\\(\\s*\\)\\(.*\\)/\\1System.out.print(\"\\2: \" + \\2);<cr>") -vim.keymap.set({"n", "i"}, "<LocalLeader>l", "<cmd>s/print(/println(/<cr>") +local home = os.getenv('HOME') +local root_markers = {'gradlew', 'mvnw', '.git'} +local root_dir = require('jdtls.setup').find_root(root_markers) +local workspace_folder = home .. "/.local/share/eclipse/" .. vim.fn.fnamemodify(root_dir, ":p:h:t") + +function nnoremap(rhs, lhs, bufopts, desc) + bufopts.desc = desc + vim.keymap.set("n", rhs, lhs, bufopts) +end + +local on_attach = function(client, bufnr) + -- Regular Neovim LSP client keymappings + local bufopts = { noremap=true, silent=true, buffer=bufnr } + nnoremap('gD', vim.lsp.buf.declaration, bufopts, "Go to declaration") + nnoremap('gd', vim.lsp.buf.definition, bufopts, "Go to definition") + nnoremap('gi', vim.lsp.buf.implementation, bufopts, "Go to implementation") + nnoremap('K', vim.lsp.buf.hover, bufopts, "Hover text") + nnoremap('<C-k>', vim.lsp.buf.signature_help, bufopts, "Show signature") + nnoremap('<space>wa', vim.lsp.buf.add_workspace_folder, bufopts, "Add workspace folder") + nnoremap('<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts, "Remove workspace folder") + nnoremap('<space>wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, bufopts, "List workspace folders") + nnoremap('<space>D', vim.lsp.buf.type_definition, bufopts, "Go to type definition") + nnoremap('<space>rn', vim.lsp.buf.rename, bufopts, "Rename") + nnoremap('<space>ca', vim.lsp.buf.code_action, bufopts, "Code actions") + vim.keymap.set('v', "<space>ca", "<ESC><CMD>lua vim.lsp.buf.range_code_action()<CR>", + { noremap=true, silent=true, buffer=bufnr, desc = "Code actions" }) + nnoremap('<space>f', function() vim.lsp.buf.format { async = true } end, bufopts, "Format file") + + -- Java extensions provided by jdtls + nnoremap("<C-o>", jdtls.organize_imports, bufopts, "Organize imports") + nnoremap("<space>ev", jdtls.extract_variable, bufopts, "Extract variable") + nnoremap("<space>ec", jdtls.extract_constant, bufopts, "Extract constant") + vim.keymap.set('v', "<space>em", [[<ESC><CMD>lua require('jdtls').extract_method(true)<CR>]], + { noremap=true, silent=true, buffer=bufnr, desc = "Extract method" }) +end + +local config = { + flags = { + debounce_text_changes = 80, + }, + cmd = { + 'jdtls', + '-Dlog.protocol=true', + '-Dlog.level=ALL', + '-Xms4g', + '-data', workspace_folder, + }, + on_attach = on_attach, + root_dir = root_dir, +} +require('jdtls').start_or_attach(config) diff --git a/config/essentials/nvim/lua/user/cmp/java.lua b/config/essentials/nvim/lua/user/cmp/java.lua index 7d13fb3..1027588 100644 --- a/config/essentials/nvim/lua/user/cmp/java.lua +++ b/config/essentials/nvim/lua/user/cmp/java.lua @@ -1 +1 @@ -require'lspconfig'.jdtls.setup{} +-- require'lspconfig'.jdtls.setup{} diff --git a/config/essentials/nvim/lua/user/packer.lua b/config/essentials/nvim/lua/user/packer.lua index 931e7d4..90ffa5b 100644 --- a/config/essentials/nvim/lua/user/packer.lua +++ b/config/essentials/nvim/lua/user/packer.lua @@ -48,6 +48,10 @@ return require('packer').startup(function(use) use('hrsh7th/cmp-cmdline') use('hrsh7th/cmp-nvim-lsp-signature-help') use('alvan/vim-closetag') + + -- java + use('mfussenegger/nvim-jdtls') + -- snippets use('L3MON4D3/LuaSnip') use('saadparwaiz1/cmp_luasnip') diff --git a/config/extra/mutt/muttrc b/config/extra/mutt/muttrc index 8f6a091..3c0e432 120000 --- a/config/extra/mutt/muttrc +++ b/config/extra/mutt/muttrc @@ -1 +1 @@ -configs/raymaekers.luca@gmail.com
\ No newline at end of file +configs/tlast723@gmail.com
\ No newline at end of file |