jkeresman01/spring-initializr.nvim

github github
externalboilerplate
stars 16
issues 104
subscribers 0
forks 1
CREATED

UPDATED


Mentioned in Awesome Neovim

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

πŸ“ Project Structure

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

:star: 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 :gear:

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>")

Keybindings

Global

Keybinding Action
<leader>si Open Spring Initializr TUI
<leader>sg Generate project to current directory

Navigation

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

Actions

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

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