diff --git a/nix/neovim-overlay.nix b/nix/neovim-overlay.nix index 52be4e5..4107f00 100644 --- a/nix/neovim-overlay.nix +++ b/nix/neovim-overlay.nix @@ -99,7 +99,7 @@ with final.pkgs.lib; let # language servers, etc. lua-language-server clang-tools # provides clangd which is a c/c++ lsp - gcc + java-language-server nil # nix LSP # autoformatters @@ -109,6 +109,7 @@ with final.pkgs.lib; let # misc nodejs # eww + gcc ]; in { # This is the neovim derivation diff --git a/nvim/ftplugin/java.lua b/nvim/ftplugin/java.lua new file mode 100644 index 0000000..24c98a1 --- /dev/null +++ b/nvim/ftplugin/java.lua @@ -0,0 +1,16 @@ +-- Exit if the language server isn't available +if vim.fn.executable('java-language-server') ~= 1 then + return +end + +local root_files = { + '.git', + 'Main.java', +} + +vim.lsp.start { + name = 'java_language_server', + cmd = { 'java-language-server' }, + root_dir = vim.fs.dirname(vim.fs.find(root_files, { upward = true })[1]), + capabilities = require('user.lsp').make_client_capabilities(), +}