Author: Kyle Fuller <kyle@fuller.li> 2024-03-08 22:06:03 +0000 +0000
Committer: Kyle Fuller <kyle@fuller.li> 2024-03-08 22:06:44 +0000 +0000
Commit: 571c277a321db1ab09adcd373dbf1384f2287f34
Parent: 0931184de831398079fa61629dc37a8554619e98
feat(vim): setup jdtls for java projects
diff --git a/.config/home-manager/home.nix b/.config/home-manager/home.nix
index 5a7758495b5069a61d995193d65f112181c558fc..b70d9e583bcf820b5972fe34efae9d7887d47c0b 100644
--- a/.config/home-manager/home.nix
+++ b/.config/home-manager/home.nix
@@ -109,6 +109,7 @@ vim-ledger
vim-nix
vim-terraform
vim-toml
+ nvim-jdtls
# lsp
nvim-lspconfig
diff --git a/.config/nvim/ftplugin/java.lua b/.config/nvim/ftplugin/java.lua
new file mode 100644
index 0000000000000000000000000000000000000000..e4a52db2cf237d008355c63fb002acef3988f5fd
--- /dev/null
+++ b/.config/nvim/ftplugin/java.lua
@@ -0,0 +1,13 @@
+local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t')
+
+local config = {
+ cmd = {
+ 'jdt-language-server',
+ '-data',
+ vim.fn.expand('$HOME/.cache/jdtls/') .. project_name,
+ },
+
+ root_dir = vim.fs.dirname(vim.fs.find({'pom.xml', '.git'}, { upward = true })[1]),
+}
+
+require('jdtls').start_or_attach(config)
diff --git a/.vim/templates/shell.nix b/.vim/templates/shell.nix
deleted file mode 100644
index ef0930a15024264dea5b0a0279228a6f976798fd..0000000000000000000000000000000000000000
--- a/.vim/templates/shell.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ pkgs ? import <nixpkgs> {} }:
-
-pkgs.mkShell {
- packages = with pkgs; [
- go
- gopls
- ];
-}
diff --git a/.vim/vimrc b/.vim/vimrc
index ddeb18ea133e850e7f034508b87d87246aaaf6ff..3d3ccad48a464231f89fb9e549e8897a58bebd5e 100644
--- a/.vim/vimrc
+++ b/.vim/vimrc
@@ -22,7 +22,6 @@ nnoremap <C-p> :tabp<cr>
nnoremap <C-c> :tabnew<cr>
" Git
-
nnoremap <Leader>gs :Git status<cr>
nnoremap <Leader>gc :Git commit<cr>
nnoremap <Leader>gS :Git commit --amend<cr>
diff --git a/.vsnip/nix.json b/.vsnip/nix.json
index 259812dcc55846f712db61b271ac0bf2fb3b6a6d..980e64b9f12ded7af5fc0c74399b7e87ce2ccdd8 100644
--- a/.vsnip/nix.json
+++ b/.vsnip/nix.json
@@ -60,5 +60,23 @@ " terraform-ls",
" ];",
"}"
]
+ },
+ "maven project": {
+ "prefix": ["sh-maven"],
+ "body": [
+ "{ pkgs ? import <nixpkgs> {} }:",
+ "",
+ "pkgs.mkShell {",
+ " packages = with pkgs; [",
+ " graalvm-ce",
+ " jdt-language-server",
+ " lombok",
+ " maven",
+ " ];",
+ " shellHook = ''",
+ " export JAVA_OPTS=\"-javaagent:\\${pkgs.lombok}/share/java/lombok.jar\"",
+ " '';",
+ "}"
+ ]
}
}