{"id":22006337,"url":"https://github.com/javiorfo/nvim-springtime","last_synced_at":"2025-05-05T21:51:31.943Z","repository":{"id":71130052,"uuid":"596358636","full_name":"javiorfo/nvim-springtime","owner":"javiorfo","description":"Neovim plugin based on Spring Initializr","archived":false,"fork":false,"pushed_at":"2024-07-08T20:33:17.000Z","size":174,"stargazers_count":25,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-07-13T09:13:22.899Z","etag":null,"topics":["gradle","groovy","java","kotlin","maven","neovim","neovim-plugin","rust","spring-boot","spring-initializr"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javiorfo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-02T02:13:33.000Z","updated_at":"2024-07-13T09:13:33.852Z","dependencies_parsed_at":"2024-07-13T09:13:28.004Z","dependency_job_id":"5e6830ad-6839-4b76-a0c0-633ae18960e4","html_url":"https://github.com/javiorfo/nvim-springtime","commit_stats":null,"previous_names":["charkuils/nvim-springtime","javiorfo/nvim-springtime","caosystema/nvim-springtime","progrimorio/nvim-springtime","orfosys/nvim-springtime","chaosystema/nvim-springtime"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javiorfo%2Fnvim-springtime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javiorfo%2Fnvim-springtime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javiorfo%2Fnvim-springtime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javiorfo%2Fnvim-springtime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javiorfo","download_url":"https://codeload.github.com/javiorfo/nvim-springtime/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252584066,"owners_count":21771943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gradle","groovy","java","kotlin","maven","neovim","neovim-plugin","rust","spring-boot","spring-initializr"],"created_at":"2024-11-30T01:11:37.632Z","updated_at":"2025-05-05T21:51:31.924Z","avatar_url":"https://github.com/javiorfo.png","language":"Lua","funding_links":["https://www.paypal.com/donate/?hosted_button_id=FA7SGLSCT2H8G"],"categories":[],"sub_categories":[],"readme":"# nvim-springtime\n*Neovim plugin based on [Spring Initializr](https://start.spring.io) written in Lua*\n\n## Caveats\n- These dependencies are required to be installed: `curl`, `jq`, `unzip`. \n- Old Spring Boot and Java versions could be used in this plugin unlike [Spring Initializr](https://start.spring.io).\n- Default selected values could be changed by the user.\n- Dependencies with autocomplete libraries.\n- This plugin has been developed on and for `Linux` following open source philosophy.\n- Initially this plugin was made in Rust [here](https://github.com/javiorfo/nvim-springtime/tree/rust), but for simplicity it was migrated to Lua and Bash\n\n\u003cimg src=\"https://github.com/javiorfo/img/blob/master/nvim-springtime/springtime.png?raw=true\" alt=\"springtime\" /\u003e\n\n\n## Installation\n`Packer`\n```lua\nuse {\n    'javiorfo/nvim-springtime',\n    requires = {\n        \"javiorfo/nvim-popcorn\",\n        \"javiorfo/nvim-spinetta\",\n        \"hrsh7th/nvim-cmp\"\n    },\n    run = function()\n        require'springtime.core'.update()\n    end,\n}\n```\n\n`Lazy`\n```lua\n{ \n    'javiorfo/nvim-springtime',\n    lazy = true,\n    cmd = { \"Springtime\", \"SpringtimeUpdate\" },\n    dependencies = {\n        \"javiorfo/nvim-popcorn\",\n        \"javiorfo/nvim-spinetta\",\n        \"hrsh7th/nvim-cmp\"\n    },\n    build = function()\n        require'springtime.core'.update()\n    end,\n    opts = {\n        -- This section is optional\n        -- If you want to change default configurations\n        -- In packer.nvim use require'springtime'.setup { ... }\n        \n        -- Springtime popup section\n        spring = {\n            -- Project: Gradle, Gradle Kotlin and Maven (Gradle default)\n            project = {\n                selected = 1\n            },\n            -- Language: Java, Kotlin and Groovy (Java default)\n            language = {\n                selected = 1\n            },\n            -- Packaging: Jar and War (Jar default)\n            packaging = {\n                selected = 1\n            },\n            -- Project Metadata defaults:\n            -- Change the default values as you like\n            -- This can also be edited in the popup\n            project_metadata = {\n                group = \"com.example\",\n                artifact = \"demo\",\n                name = \"demo\",\n                package_name = \"com.example.demo\",\n                version = \"0.0.1-SNAPSHOT\"\n            }\n        },\n\n        -- Some popup options\n        dialog = {\n            -- The keymap used to select radio buttons (normal mode)\n            selection_keymap = \"\u003cC-Space\u003e\",\n\n            -- The keymap used to generate the Spring project (normal mode)\n            generate_keymap = \"\u003cC-CR\u003e\",\n\n            -- If you want confirmation before generate the Spring project\n            confirmation = true,\n\n            -- Highlight links to Title and sections for changing colors\n            style = {\n                title_link = \"Boolean\",\n                section_link = \"Type\"\n            }\n        },\n\n        -- Workspace is where the generated Spring project will be saved\n        workspace = {\n            -- Default where Neovim is open\n            path = vim.fn.expand(\"%:p:h\"),\n            \n            -- Spring Initializr generates a zip file\n            -- Decompress the file by default\n            decompress = true,\n\n            -- If after generation you want to open the folder\n            -- Opens the generated project in Neovim by default\n            open_auto = true\n        },\n\n        -- This could be enabled for debugging purposes\n        -- Generates a springtime.log with debug and errors.\n        internal = {\n            log_debug = false\n        }\n    }\n}\n```\n\n\n## Usage\n- Once **Springtime** is enabled. You can execute the command `:Springtime` to open the popup\n- **Considerations:**\n    - *Visual Mode* is disabled.\n    - *Insert Mode* is only enable to edit **Project Metadata** and **Dependencies** \n    - To select radio buttons use default **Ctrl + Space** in *Normal mode* (or configure it like opts above)\n    - To generate a project use default **Ctrl + CR** in *Normal mode* (or configure it like opts above)\n    - **Dependencies** has autocomplete libraries\n\n\u003cimg src=\"https://github.com/javiorfo/img/blob/master/nvim-springtime/springtime.gif?raw=true\" alt=\"springtime\" /\u003e\n\n**NOTE:** The colorscheme **umbra** from [nvim-nyctophilia](https://github.com/javiorfo/nvim-nyctophilia) is used in this image\n\n\n- By default Spring Boot versions and Java versions are extracted from [Spring Initializr](https://start.spring.io). For instance, if you want to use Spring Boot 2.X and Java 11 among others:\n```lua\n-- Example lazy.nvim\nopts = {\n    spring = {\n        spring_boot = {\n            selected = 3,\n            values = {\n                \"3.2.5\",\n                \"3.1.11\",\n                \"2.7.18\"\n            }\n        },\n        java_version = {\n            selected = 2,\n            values = { 17, 11, 8 }\n        }\n    }\n}\n```\n\n- You would get this:\n\n\u003cimg src=\"https://github.com/javiorfo/img/blob/master/nvim-springtime/springtime2.png?raw=true\" alt=\"springtime2\" /\u003e\n\n**NOTE:** The colorscheme **umbra** from [nvim-nyctophilia](https://github.com/javiorfo/nvim-nyctophilia) is used in this image\n\n\n\n### List of commands:\n| Command | Description                       |\n| -------------- | --------------------------------- |\n| `:Springtime`  | This command will open Springtime |\n| `:SpringtimeLogs`   | This command will open a buffer with the generated plugin logs |\n| `:SpringtimeUpdate` | This command will update the libraries and Spring settings |\n\n\n## Troubleshooting and recommendations\n#### Springtime update recommendation\nThis plugin will download all the Spring libraries names, Java versions and Spring Boot versions used at the time when building. There is no process to update these files daily, so to match always to [Spring Initializr](https://start.spring.io) you can do the following:\n- Execute the command `:SpringtimeUpdate` to update the aforementioned files every time you want.\n- Or delegates this updating process to the package manager. So the upgrade is made every time this plugin is loaded. Example in lazy.nvim:\n```lua\n-- lazy.nvim\nconfig = {\n    require'springtime.core'.update()\n}\n```\n\n#### Springtime problems\n- Check the logs with the command ':SpringtimeLogs'. \n- Enable the debug and errors log to check for any other problems. And please, report it [here](https://github.com/javiorfo/nvim-springtime/issues)\n- Enable logs:\n```lua\nrequire'springtime'.setup {\n    internal = {\n        log_debug = true\n    }\n}\n\n-- OR in lazy.nvim\nopts = {\n    internal = {\n        log_debug = true\n    }\n}\n```\n\n---\n\n\n### Donate\n- **Bitcoin** [(QR)](https://raw.githubusercontent.com/javiorfo/img/master/crypto/bitcoin.png)  `1GqdJ63RDPE4eJKujHi166FAyigvHu5R7v`\n- [Paypal](https://www.paypal.com/donate/?hosted_button_id=FA7SGLSCT2H8G)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaviorfo%2Fnvim-springtime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaviorfo%2Fnvim-springtime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaviorfo%2Fnvim-springtime/lists"}