A Neovim plugin for viewing Java project dependencies, inspired by vscode-java-dependency.
- View project dependencies in a tree structure.
- Expand and collapse dependency nodes.
- Use
jdtlsto get dependency information. - Use
snacks.nvimto build the UI.
Ensure that the com.microsoft.jdtls.ext.core extension jar from vscode-java-dependency is loaded into your jdtls.
- If you have
vscode-java-dependencyinstalled in VS Code, it is located at.vscode/extensions/vscjava.vscode-java-dependency-{{version}}-universal/server/com.microsoft.jdtls.ext.core-{{version}}.jar - Install the vscode-java-dependency package via mason.
local java_deps_path = require("mason-registry")
.get_package("vscode-java-dependency")
:get_install_path() .. "/extension/server/com.microsoft.jdtls.ext.core-*.jar"
-- or
local java_deps_path = ".vscode/extensions/vscjava.vscode-java-dependency-{{version}}-universal/server/com.microsoft.jdtls.ext.core-{{version}}.jar"-- Add the vscode-java-dependency jdtls extension jar
local jdtls_config = {
bundles = { java_deps_path }
}-- Add the vscode-java-dependency jdtls extension jar
require("lspconfig").jdtls.setup {
init_options = {
bundles = { java_deps_path },
},
}{
{
"g0ne150/java-deps.nvim",
dependencies = {
"folke/snacks.nvim",
{
"mason-org/mason.nvim",
opts = { ensure_installed = { "vscode-java-dependency" } },
},
},
config = function()
end,
},
}- Run
:JavaDepsViewto open the dependency view. - Run
:JavaDepsViewRefreshto clear the cache and refresh the dependency view. This is useful when you have updated your dependencies inpom.xmlorbuild.gradle.
h: Collapse the current node. If the current node is already collapsed or cannot be expanded, collapse the parent node.l/o/<CR>: Expand the current node.
- vscode-java-dependency: Provided the initial idea and the
jdtlsextension. - snacks.nvim: Provided the powerful picker UI framework.
