nix-community.nixvim/plugins/by-name/jdtls/default.nix

54 lines
1.2 KiB
Nix

{
lib,
pkgs,
...
}:
lib.nixvim.plugins.mkNeovimPlugin {
name = "jdtls";
packPathName = "nvim-jdtls";
package = "nvim-jdtls";
maintainers = [ lib.maintainers.GaetanLepage ];
# TODO: Added 2025-04-07; remove after 25.05
inherit (import ./deprecations.nix lib)
imports
deprecateExtraOptions
;
extraOptions = {
jdtLanguageServerPackage = lib.mkPackageOption pkgs "jdt-language-server" {
nullable = true;
};
};
setup = ".start_or_attach"; # only used settingsDescription
callSetup = false;
extraConfig = cfg: {
extraPackages = [ cfg.jdtLanguageServerPackage ];
autoCmd = [
{
event = "FileType";
pattern = "java";
callback.__raw = ''
function ()
require('jdtls').start_or_attach(${lib.nixvim.toLuaObject cfg.settings})
end
'';
}
];
};
settingsOptions = import ./settings-options.nix lib;
settingsExample = {
cmd = [
"jdtls"
{ __raw = "'--jvm-arg='..vim.api.nvim_eval('g:NVIM_LOMBOK')"; }
];
root_dir.__raw = ''
vim.fs.dirname(vim.fs.find({'gradlew', '.git', 'mvnw'}, { upward = true })[1])
'';
};
}