Dusk.nvim is a blazing fast Lua config suited for Full-stack Java development.
Optimized with Spring Boot && Angular projects in mind.
Dusk.nvim is designed to be:
dusk.nvim
nvim
├── init.lua
└── lua
├── optional
│ └── optionalfeatures.lua
├── pluginconfigs
│ ├── cmp.lua
│ ├── dadbod.lua
│ ├── dap.lua
│ ├── dashboard.lua
│ ├── jdtls.lua
│ ├── lsp.lua
│ ├── treesitter.lua
│ └── whichkey.lua
└── settings
├── autocommands.lua
├── keymaps.lua
└── options.lua
The project structure is very simple:
For Dusk.nvim to perform as intended, you need to have the following dependencies installed:
NOTE: Run :checkhealth command to see what other dependencies you might be missing and to receive help if you have problems with installation.
Platform | Supported |
---|---|
Windows | ✅ |
macOS | ✅ |
Linux | ✅ |
nvim
directory (~/.config/nvim
), if it exists.git clone https://github.com/imbacraft/dusk.nvim
nvim
folder from the cloned dusk.nvim project (not the dusk.nvim folder!) to your ~/.config/
folder.
In the end, your folder should look like this: ~/.config/nvim
. Please note, depending on your OS, neovim might search for configuration in a different folder. In this case, run the :checkhealth
command inside neovim, to see where it looks for configuration and place the nvim folder inside that.nvim
command and wait for the plugins to be installed.:qa!
command to exit neovim.nvim
command and enter SPC p s
to update the package manager (if it's not done automatically). In general, you might have to do a lot of restarts of nvim until all the packages are installed. It can take quite some time.:checkhealth
command and check the dependencies section above to see what you might be missing.Dusk.nvim provides a java development experience with the following advantages:
Features curently not supported (these are what you will miss from your IDE - but also shows the room for improvement):
In jdtls.lua, you will find the following snippet. Here you can configure your multiple java runtimes.
Example:
settings = {
java = {
configuration = {
runtimes = {
{
name = "JavaSE-1.8",
path = "/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home",
},
{
name = "JavaSE-11",
path = "/opt/homebrew/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home",
default = true
},
{
name = "JavaSE-19",
path = "/opt/homebrew/Cellar/openjdk/19.0.2/libexec/openjdk.jdk/Contents/Home",
},
}
}
}
}