Ejecutar el proyecto (F5)
Pulsa F5 y Context Code arranca tu proyecto. No una lista de cosas compilables: una configuración concreta, la que hayas marcado como proyecto de inicio, igual que en Visual Studio.
Configuraciones de lanzamiento
Sección titulada «Configuraciones de lanzamiento»Al abrir un proyecto, la app recorre sus carpetas (hasta tres niveles, saltándose node_modules, target, dist, build, .git…) y deduce todo lo que se puede ejecutar:
| Pista en el disco | Configuración que se ofrece |
|---|---|
*.sln | una por cada proyecto ejecutable de la solución (OutputType Exe o SDK Web/Worker) |
*.csproj / *.fsproj / *.vbproj | dotnet run --project … |
package.json con dev, start o serve | pnpm/npm/yarn/bun run <script> (el gestor se decide por el lockfile más cercano) |
src-tauri/tauri.conf.json | tauri dev |
angular.json / ionic.config.json | ng serve / ionic serve |
vite.config.* sin script dev | vite |
Cargo.toml | cargo run, o un cargo run --bin <bin> por cada binario |
manage.py, main.py, app.py, pyproject.toml | manage.py runserver, python <archivo>, python -m uvicorn main:app --reload, python -m <módulo> |
go.mod | go run . y un go run ./cmd/<x> por cada cmd/* |
pom.xml / build.gradle | mvn spring-boot:run (o exec:java), gradlew bootRun (o run) |
pubspec.yaml | flutter run |
.vscode/launch.json | las entradas launch de tipo node, coreclr, python o go, traducidas a comando |
Una línea por configuración
Sección titulada «Una línea por configuración»En un ERP con veinte proyectos la lista tiene que leerse de un vistazo, así que cada configuración es una sola línea:
[C#] Security · [Node] Mobile start · [Ionic] Mobile ionic serve
- El icono del lenguaje —el mismo del árbol de archivos: C#, TypeScript, Angular, Ionic, Node, Gradle, Maven, Rust, Python, Go, Dart, Tauri— sustituye al viejo chip de texto («DOTNET», «ANGULAR»). El tipo exacto está en su tooltip.
- El nombre corto es solo el proyecto:
ApiGateway,Security,Frontend,Mobile,android. Nunca «Security · dotnet run · Security». - El verbo (atenuado, a la derecha) sale solo si hace falta distinguir: si en
Mobilehay tres formas de arrancar verás start, ng serve e ionic serve; si un proyecto .NET es único en su solución, no se repite «dotnet run» en seis filas. - El comando completo, la carpeta y el archivo de origen ya no ocupan la lista: están en el tooltip de la fila y en el panel de detalle del selector, que sigue a la fila resaltada — «Comando:
dotnet run --project Security.csproj· Carpeta:Backend/Security· Solución:Backend/AspidaERP.sln».
Grupos: solución y paquete, no subcarpeta
Sección titulada «Grupos: solución y paquete, no subcarpeta»Los encabezados son la unidad real del proyecto, con su icono y el número de configuraciones:
- .NET agrupa por
.sln: la app lee las líneasProject(…) = "…", "ruta.csproj"de cada solución, así que los seis servicios deAspidaERP.slnvan juntos aunque vivan en seis carpetas. Cuando un.csprojaparece en dos soluciones (una anidada), gana la más externa. Lo que no está en ninguna cae en «Sin solución». - Node / Angular / Ionic / Tauri y Rust agrupan por el manifiesto raíz (
package.json,Cargo.toml), no por el paquete suelto. Gradle agrupa por elsettings.gradlemás externo, que es la raíz real del proyecto Android. - Los grupos se pliegan, y lo que dejes plegado se recuerda por proyecto.
- Lo poco útil se esconde por defecto tras «Mostrar todo (N)»: proyectos de pruebas, carpetas
e2e, elgradle rundecapacitor-cordova-android-plugins,bin,obj.
Proyecto de inicio
Sección titulada «Proyecto de inicio»El botón ▶ de la barra del modo IDE muestra el icono y el nombre corto del proyecto de inicio (▶ Security), y F5 lo ejecuta.
- Si solo hay una configuración, esa es el proyecto de inicio y F5 la lanza sin preguntar.
- Si hay varias y todavía no has elegido, F5 abre el selector: la lista agrupada por solución o paquete, con buscador y la casilla «Establecer como proyecto de inicio» (marcada por defecto). Al aceptar, se ejecuta y queda fijada; las siguientes veces F5 va directo.
- El desplegable de al lado del ▶ cambia el proyecto de inicio en cualquier momento. Usa las mismas filas compactas (icono + nombre corto, con el ✓ en el de inicio) y ofrece Volver a detectar, Elegir proyecto de inicio… y Editar configuraciones….
La elección se guarda por proyecto, en .context/run.json. Cambiar de proyecto de inicio no toca nada más.
| Atajo | Qué hace |
|---|---|
| F5 | ejecuta el proyecto de inicio. Si ya está corriendo no lo duplica: enfoca su pestaña de salida |
| Mayús+F5 | detiene todo lo que esté en ejecución |
| Ctrl+F5 | abre el selector para ejecutar otra configuración sin cambiar el proyecto de inicio (aquí no hay depurador, así que este es el equivalente útil de «Iniciar sin depurar») |
| Ctrl+Mayús+B | compilar los targets de build, que es lo que antes se disparaba con F5 |
Salida del proyecto
Sección titulada «Salida del proyecto»La ejecución va al panel Salida del proyecto, con una pestaña por configuración en marcha. Cada pestaña tiene ⏹ detener, ↺ reiniciar, 🗑 limpiar, y cierra con ✕ cuando el proceso ya terminó. El punto de color dice si sigue viva (verde), acabó bien (gris) o falló (rojo).
La pestaña Problemas analiza esa misma salida y saca los archivo:línea:columna de los formatos habituales (rustc, tsc, gcc/clang, webpack): un vite dev o un cargo run que fallan al compilar se leen ahí, sin rebuscar en el log.
Preguntar siempre
Sección titulada «Preguntar siempre»En el desplegable del ▶ está «Preguntar siempre qué ejecutar» (apagado por defecto). Con esto activo, F5 abre el selector cada vez, aunque haya proyecto de inicio. Útil cuando trabajas a la vez en dos servicios del mismo monorepo.
run.json: configuraciones a mano
Sección titulada «run.json: configuraciones a mano»Editar configuraciones… abre .context/run.json en el editor, creándolo si no existía. El archivo admite comentarios (//) y comas finales, y su cabecera documenta el formato:
{ "proyectoDeInicio": "node:apps/web:pnpm-run-dev", "preguntarSiempre": false, "configuraciones": [ { "id": "api-local", "nombre": "API (local)", "cwd": "servicios/api", "comando": "node", "args": ["server.js"], "env": { "PORT": "3001" } } ]}proyectoDeInicio— elidde la configuración que arranca con F5.preguntarSiempre—truehace que F5 abra siempre el selector.configuraciones— las tuyas, que se suman a las detectadas (aparecen marcadas comomanual). De cada una soloidycomandoson obligatorios:nombrecae en elid,cwden la raíz del proyecto ytipoencustom.cwdes relativo a la raíz del proyecto ("."es la raíz) yargsva ya separado, sin comillas de shell.
Una entrada mal escrita se descarta sola: el resto del archivo —y tu proyecto de inicio— siguen funcionando.