mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-14 16:07:52 +00:00
File › New Project offers 38 generators grouped by language (Java, Spring Boot, Quarkus, Micronaut, Kotlin, Ktor, Scala, Python/Django/FastAPI/Flask, Node/Vite/Next.js/Nuxt/Angular/SvelteKit/Astro/NestJS/Express, Go, Rust, C/C++, Zig, .NET, PHP/Laravel/Symfony, Ruby/Rails, Dart/Flutter, Swift, Elixir/Phoenix, Haskell, static website, empty). Each is a declaration in generators/<id>.toml run by the new ide-scaffold crate: built-in templates, the framework's official CLI run non-interactively, or a project service zip (Spring Initializr, code.quarkus.io, Micronaut Launch) whose metadata becomes form fields. Projects are built in a staging directory and moved into place only on success. The dialog renders each form from its schema, flags missing toolchains with install hints and streams progress; created projects open trusted. New Project is also on the welcome screen and the title bar project menu. Closes #709
60 lines
1.2 KiB
TOML
60 lines
1.2 KiB
TOML
id = "angular"
|
|
name = "Angular"
|
|
group = "JavaScript"
|
|
icon = "project-angular"
|
|
order = 4
|
|
description = "An Angular app from the Angular CLI."
|
|
|
|
[[requires]]
|
|
program = "node"
|
|
min = "20.19"
|
|
hint = "Install Node.js 20.19 or later: https://nodejs.org"
|
|
|
|
[[requires]]
|
|
program = "{{pm}}"
|
|
when = { pm = ["pnpm", "yarn", "bun"] }
|
|
hint = "Install it, or choose npm."
|
|
|
|
[[fields]]
|
|
id = "style"
|
|
label = "Stylesheets:"
|
|
type = "choice"
|
|
segmented = true
|
|
options = [{ value = "css", label = "CSS" }, { value = "scss", label = "Sass (SCSS)" }, { value = "less", label = "Less" }]
|
|
default = "css"
|
|
|
|
[[fields]]
|
|
id = "ssr"
|
|
label = "Server-side rendering"
|
|
type = "checkbox"
|
|
default = "false"
|
|
|
|
[[fields]]
|
|
id = "pm"
|
|
label = "Package manager:"
|
|
type = "choice"
|
|
segmented = true
|
|
options = ["npm", "pnpm", "yarn", "bun"]
|
|
default = "npm"
|
|
|
|
[[fields]]
|
|
id = "install"
|
|
label = "Install dependencies"
|
|
type = "checkbox"
|
|
default = "true"
|
|
|
|
[[steps]]
|
|
label = "Running ng new"
|
|
package = "@angular/cli@latest"
|
|
cwd = "parent"
|
|
args = [
|
|
"new", "{{name}}", "--defaults", "--interactive=false", "--skip-git", "--skip-install",
|
|
"--style={{style}}", "--ssr={{ssr}}", "--package-manager={{pm}}",
|
|
]
|
|
|
|
[[after]]
|
|
label = "Installing dependencies"
|
|
program = "{{pm}}"
|
|
args = ["install"]
|
|
when = { install = "true" }
|