Use the CLI for runnable-project classification once it exposes a query API
Los mantenedores suelen responder en 11 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- cli, developer-experience, tooling
Línea de trabajo
Wait for the upstream CLI query API, then start with src/project-detection.ts and the run-target flow in src/run-target.ts and src/run-utils.ts. Run src/test/project-runnability.test.ts and update coverage for CLI discovery, fallback behavior, and auto-selection. Done means the extension prefers supported CLI results while retaining the current fallback for older bundled CLI versions.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Context
The run-target picker (WinApp: Run Application, Run Application (Advanced), and the F5 fallback) lists projects and solutions discovered across the workspace. To keep class libraries and test projects out of that list, src/project-detection.ts classifies each project file with a small static parse:
<IsTestProject>true</IsTestProject>→ test- a
Microsoft.NET.Test.SdkPackageReference → test - explicit
<OutputType>Library</OutputType>→ library - anything else, including a missing
OutputType→ unknown, and therefore still offered
This is deliberately one-sided and fails open (filterOfferableProjects returns the unfiltered list if filtering would remove every candidate), and the extension defers the real decision to the CLI: --project is only passed when two or more candidates survive, otherwise nothing is passed and winapp run resolves it.
Why this is a placeholder
winapp run already classifies authoritatively via full MSBuild evaluation, but exposes no way to query that result without building and launching. Filed upstream as microsoft/winappCli#957.
A static parse cannot see an OutputType that comes from an SDK default, Directory.Build.props, or a condition. When it disagrees with the CLI, the extension can narrow to a single candidate, skip the disambiguation prompt, pass no --project, and the run then fails with the CLI's ambiguity error. That error is clear and now surfaces in the WinApp output channel behind Show Output, so it is recoverable — but a correct list would avoid it.
What to do when the upstream API lands
- Prefer the CLI's discovery output (for example
winapp run <input> --list-projects --json) when the bundled CLI supports it. - Fall back to the current static heuristic when it does not — the extension currently downloads
latest, so it must tolerate both (see #250). - Use the CLI's reported auto-selection to decide whether to prompt at all, replacing the local "prompt only when ≥2 candidates" rule.
- Drop or reduce
classifyProjectRunnability/readProjectRunnability/isOfferableProjectonce the fallback is no longer needed.
Not worth doing
Parsing the candidate list out of winapp run's ambiguity message on stderr. It is an emoji-decorated, potentially localized console string, and it costs a failed run on every ambiguous launch.
Pointers
src/project-detection.ts—classifyProjectRunnability,readProjectRunnability,isOfferableProjectsrc/run-target.ts—filterOfferableProjects,filterOfferableCandidatessrc/run-utils.ts—pickRunTarget,pickSolutionProjectsrc/test/project-runnability.test.ts— classification tests, including the fail-open rule
- Lenguaje dominante
- TypeScript
- Estrellas
- 15
- Forks
- 4
- Merge medio
- 10 d 10 h
- PR fusionados (30 d)
- 9
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/WinAppVSCE
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
microsoft/WinAppVSCE#320 ·
Los mantenedores suelen responder en 11 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/WinAppVSCE#262 ·
Los mantenedores suelen responder en 11 días
-
[Feature]: Update WinUI templates to include launch.json + VSCE RecommendationPosiblemente ocupada @chiaramooney la tomó hace 17 días. Abiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/WinAppVSCE#219 · 1 asignado ·
Los mantenedores suelen responder en 11 días
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
microsoft/WinAppVSCE#160 ·
Los mantenedores suelen responder en 11 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
microsoft/WinAppVSCE#159 ·
Los mantenedores suelen responder en 11 días
Todos los issues de microsoft/WinAppVSCE
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
unocss/unocss#5421 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
needs-area
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Azure/typespec-azure#5936 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
vercel-labs/scriptc#2910 ·
Los mantenedores suelen responder en 1 día
-
automation missing-model model-sync provider:fireworks-ai
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
anomalyco/models.dev#12458 ·
Los mantenedores suelen responder en 1 día