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/
β βββ events/
β βββ 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.
The :SpringInitializrConfig command displays the current plugin configuration in a floating window, showing all settings with their current and default values.
Tip
See commands.lua for more info.
The :SpringInitializrLog command opens the plugin log file in a buffer, making it easy to view logs for debugging and troubleshooting without leaving Neovim.
:SpringInitializrLog " Open in current window
:SpringInitializrLog split " Open in horizontal split
:SpringInitializrLog vsplit " Open in vertical split
:SpringInitializrLog clear " Clear log fileTip
See commands.lua for more info.
Important
This is the list of planned commands that will be available soon:
:SpringInitalizrHistory: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 |
| Keybinding | Action |
|---|---|
<Tab> |
Navigate forward between fields |
<S-Tab> |
Navigate backward between fields |
j / <Down> |
Move down in radio options or cards |
k / <Up> |
Move up in radio options or cards |
| Keybinding | Action |
|---|---|
<CR> |
Confirm field selection or submit |
<Ctrl-r> |
Reset the form (selections & deps) |
<Ctrl-b> |
Open dependency picker |
<Ctrl-d> |
Reset selected dependencies |
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
Here is the list of similar projects that might fit your use case better, show them some love:
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.