Note
The UI has been significantly improved since this initial demo video. See the Preview section below for current screenshots.
spring-initializr.nvim/
├── LICENSE
├── lua/
│ └── spring-initializr/
│ ├── algo/
│ ├── commands/
│ ├── config/
│ ├── constants/
│ ├── core/
│ ├── metadata/
│ ├── styles/
│ ├── telescope/
│ ├── ui/
│ ├── dao/
│ ├── trace/
│ ├── utils/
│ └── init.lua
├── scripts/
└── tests/Important
Requires Neovim 0.9+
Dependencies:
nui.nvimplenary.nvimtelescope.nvim
Tip
If you want to add instructions for your plugin manager of preference please raise a [ISSUE_REQUEST].
Plug 'nvim-lua/plenary.nvim'
Plug 'MunifTanjim/nui.nvim'
Plug 'nvim-telescope/telescope.nvim'
Plug 'jkeresman01/spring-initializr.nvim'use {
'jkeresman01/spring-initializr.nvim',
requires = {
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
'nvim-telescope/telescope.nvim'
}
}{
'jkeresman01/spring-initializr.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
'nvim-telescope/telescope.nvim',
},
config = function()
require('spring-initializr').setup()
end
} require('pckr').add({
{
'jkeresman01/spring-initializr.nvim',
requires = {
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
'nvim-telescope/telescope.nvim',
},
config = function()
require('spring-initializr').setup()
end,
};
})local paq = require('paq')
paq({
'jkeresman01/spring-initializr.nvim',
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
'nvim-telescope/telescope.nvim',
})
require('spring-initializr').setup()These are the user commands you can call from the cmdline:
The :SpringInitializr command will open a UI window pointing to all the useful operations
this plugin can provide.
Tip
See commands.lua for more info.
The :SpringGenerateProject command will scaffold a new Spring Boot Project with selections from the UI to your current working directory.
Tip
See commands.lua for more info.
Important
This is the list of planned commands that will be available soon:
:SpringInitalizrHistory:SpringInitalizrHealth:SpringInitalizrLog:SpringPreviewProject
To enable the plugin you must call setup():
require('spring-initializr').setup()Minimal setup and keybindings:
require("spring-initializr").setup()
vim.keymap.set("n", "<leader>si", "<CMD>SpringInitializr<CR>")
vim.keymap.set("n", "<leader>sg", "<CMD>SpringGenerateProject<CR>")| Keybinding | Action |
|---|---|
<leader>si |
Open Spring Initializr TUI |
<leader>sg |
Generate project to current directory |
<Tab> |
Navigate forward between fields |
<S-Tab> |
Navigate backward |
<Ctrl-r> |
Reset the form (selections && deps) |
<Ctrl-b> |
Open dependency picker |
<Ctrl-d> |
Reset selected dependencies |
j / k |
Move between radio options |
j / k |
Move between selected dependencies |
<CR> |
Confirm field selection or submit |
dd |
Remove selected dependency |
q |
Close Spring Initializr TUI |
Important
Contributions are very welcome
You can help by:
- Picking up an existing issue.
- Issues marked with the label
good first issueare ideal if you're new to contributing.
- Issues marked with the label
- Opening a new bug report or feature request with clear details.
- Submitting a focused pull request that improves code, docs, or UX.
- Fork the repo and clone your fork.
- Create a topic branch:
git checkout -b feature/<short-name>orfix/<short-name>. - Develop and test locally in Neovim:
- Ensure dependencies are installed:
plenary.nvim,nui.nvim,telescope.nvim. - Load the plugin and verify
:SpringInitializrand:SpringGenerateProject.
- Ensure dependencies are installed:
- Commit with clear messages and reference any related issues:
git commit -m "Add toggle for X (#123)" - Push and open a pull request against
main.
- Use the provided issue templates for bugs and features.
- For bugs, include Steps to Reproduce, Actual vs Expected Behavior, Environment, and logs if available.
- For features, describe the motivation, proposed solution, and alternatives considered.
If you are unsure where to start, open an issue to discuss an idea before coding.
Kevin Lopez
First Donation 💛 - Thanks Kevin we appreciate it a lot
“Hey bro thanks a lot for your spring plugin on nvim, I loved it - that was exactly what I was looking for. The best for your project, I'll come back later :D Greetings from Mexico!”
- Kevin Lopez
Copyright (C) 2025 Josip Keresman
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This project is licensed under the terms of the GNU General Public License v3.0.