8000 GitHub - jkeresman01/spring-initializr.nvim: The Spring Initializr for Neovim.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

jkeresman01/spring-initializr.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spring-initializr.nvim

The easiest way to generate Spring Boot projects

Lua Neovim 0.10 Work In Progress


✨ Why spring-initializr.nvim?

Spring Boot project generation traditionally means switching to your browser or running CLI tools — breaking your flow.

spring-initializr.nvim lets you create, customize, and download Spring Boot projects entirely within Neovim.


📽️ Demo

asciicast


🔧 Features

✅ Full Spring Initializr metadata support
✅ TUI-based UI for selecting project options
✅ Fuzzy dependency selection with telescope.nvim
✅ Tab and key-based navigation
✅ Instant download and extraction to your current working directory


📁 Project Structure

spring-initializr.nvim/
├── LICENSE
├── README.md
├── lua
│   └── spring-initializr
│       ├── commands
│       │   └── commands.lua           # Neovim user commands
│       ├── core
│       │   └── core.lua               # Project generation logic
│       ├── init.lua                   # Plugin entry point
│       ├── metadata
│       │   └── metadata.lua           # Metadata fetching and state
│       ├── telescope
│       │   └── telescope.lua          # Telescope-based dependency picker
│       ├── ui
│       │   ├── deps.lua               # Dependencies panel and buttons
│       │   ├── focus.lua              # Focus management across windows
│       │   ├── init.lua               # UI mount/unmount setup
│       │   ├── inputs.lua             # Input fields (groupId, artifactId, etc.)
│       │   ├── layout.lua             # Full UI layout builder
│       │   └── radios.lua             # Radio-style selectors
│       └── utils
│           ├── file.lua               # File utilities
│           ├── highlights.lua         # Highlight group setup
│           ├── http.lua               # Project downloader
│           ├── message.lua            # Logging helpers
│           ├── url.lua                # URL query encoding
│           └── window.lua             # Popup window helpers

Functionalities ⛏️

  • Select project type, language, version, packaging, Java version....
  • Dependency picker using Telescope

Installation ⭐

Requires Neovim 0.9+
Dependencies:

  • nui.nvim
  • plenary.nvim
  • telescope.nvim (optional but recommended)

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',
    '
6CE0
nvim-telescope/telescope.nvim'
  }
}

Commands 🔧

:SpringInitializr             -- Launch the UI to configure project
:SpringGenerateProject        -- Download and extract Spring Boot project to current directory

Setup ⚙️

Basic 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
j / k Move between radio options
<CR> Confirm field selection or submit

0