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
52 lines
1.0 KiB
TOML
52 lines
1.0 KiB
TOML
id = "django"
|
|
name = "Django"
|
|
group = "Python"
|
|
icon = "project-django"
|
|
order = 1
|
|
description = "A Django site, with its environment managed by uv."
|
|
|
|
[[requires]]
|
|
program = "uv"
|
|
hint = "Install uv: https://docs.astral.sh/uv/getting-started/installation/"
|
|
|
|
[[fields]]
|
|
id = "python"
|
|
label = "Python version:"
|
|
type = "text"
|
|
placeholder = "Latest installed"
|
|
hint = "A version such as 3.13; uv downloads it when missing."
|
|
|
|
[[fields]]
|
|
id = "module"
|
|
label = "Project module:"
|
|
type = "text"
|
|
pattern = '^[A-Za-z_][A-Za-z0-9_]*$'
|
|
default = "{{name|snake}}"
|
|
|
|
[[steps]]
|
|
label = "Running uv init"
|
|
program = "uv"
|
|
args = [
|
|
"init", "--bare", "--name", "{{name|kebab}}", "--vcs", "none", "--no-workspace",
|
|
{ if-set = "python", args = ["--python", "{{python}}"] },
|
|
]
|
|
|
|
[[steps]]
|
|
label = "Adding Django"
|
|
program = "uv"
|
|
args = ["add", "django"]
|
|
|
|
[[steps]]
|
|
label = "Running django-admin startproject"
|
|
program = "uv"
|
|
args = ["run", "django-admin", "startproject", "{{module}}", "."]
|
|
|
|
[[files]]
|
|
path = ".gitignore"
|
|
content = '''
|
|
.venv/
|
|
__pycache__/
|
|
*.pyc
|
|
db.sqlite3
|
|
'''
|