dotfiles

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\"",
+      "  '';",
+      "}"
+    ]
   }
 }