[!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.luafor 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.luafor 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 |
| 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:
good first issue are ideal if you're new to contributing.git checkout -b feature/<short-name> or fix/<short-name>.plenary.nvim, nui.nvim, telescope.nvim.:SpringInitializr and :SpringGenerateProject.git commit -m "Add toggle for X (#123)"main.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.