Skip to content

jkeresman01/spring-initializr.nvim

spring-initializr.nvim

Mentioned in Awesome Neovim

The easiest way to generate Spring Boot projects

A Neovim plugin that lets you build and download fully configured Spring Boot projects inside the editor.

Lua Neovim 0.10

Note

The UI has been significantly improved since this initial demo video. See the Preview section below for current screenshots.

asciicast

Preview

image image image

📁 Project Structure

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.nvim
  • plenary.nvim
  • telescope.nvim

Installation

Tip

If you want to add instructions for your plugin manager of preference please raise a [ISSUE_REQUEST].

Vim Plug

Plug 'nvim-lua/plenary.nvim'
Plug 'MunifTanjim/nui.nvim'
Plug 'nvim-telescope/telescope.nvim'
Plug 'jkeresman01/spring-initializr.nvim'

Packer

use {
  'jkeresman01/spring-initializr.nvim',
  requires = {
    'nvim-lua/plenary.nvim',
    'MunifTanjim/nui.nvim',
    'nvim-telescope/telescope.nvim'
  }
}

Lazy.nvim

{
  'jkeresman01/spring-initializr.nvim',
  dependencies = {
    'nvim-lua/plenary.nvim',
    'MunifTanjim/nui.nvim',
    'nvim-telescope/telescope.nvim',
  },
  config = function()
    require('spring-initializr').setup()
  end
}

pckr.nvim

 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,
    };
  })

paq-nvim

local paq = require('paq')

paq({
  'jkeresman01/spring-initializr.nvim',

  'nvim-lua/plenary.nvim',
  'MunifTanjim/nui.nvim',
  'nvim-telescope/telescope.nvim',
})

require('spring-initializr').setup()

Commands

These are the user commands you can call from the cmdline:

:SpringInitializr

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.

:SpringGenerateProject

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

Setup ⚙️

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

Contributing

Important

Contributions are very welcome

You can help by:

  • Picking up an existing issue.
    • Issues marked with the label good first issue are ideal if you're new to contributing.
  • Opening a new bug report or feature request with clear details.
  • Submitting a focused pull request that improves code, docs, or UX.

How to get started

  1. Fork the repo and clone your fork.
  2. Create a topic branch: git checkout -b feature/<short-name> or fix/<short-name>.
  3. Develop and test locally in Neovim:
    • Ensure dependencies are installed: plenary.nvim, nui.nvim, telescope.nvim.
    • Load the plugin and verify :SpringInitializr and :SpringGenerateProject.
  4. Commit with clear messages and reference any related issues:
    git commit -m "Add toggle for X (#123)"
  5. Push and open a pull request against main.

Filing issues

  • 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.

🧱 Supporters Wall

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

License

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.

Buy Me a Coffee