summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/essentials/nvim/after/plugin/luasnip.lua33
-rw-r--r--config/essentials/nvim/ftplugin/java.lua56
-rw-r--r--config/essentials/nvim/lua/user/cmp/java.lua2
-rw-r--r--config/essentials/nvim/lua/user/packer.lua4
l---------config/extra/mutt/muttrc2
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