microsoft / microsoft/vscode-cpptools-api
Improve UX if CustomConfigurationProvider is not ready yet
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 33
- Forks
- 20
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Hi,
Glad to discuss how could we improve PlatformIO's developer experience when using VSCode + "cpptools" extension. See scenarios below when is clear what to do for the end developer who faces the first time with VSCode/PlatformIO:
- Developer installs PlatformIO IDE for VSCode which depends on the "cpptools"
- Developer opens PlatformIO project downloaded from Git/Internet. At this stage, project dependencies (toolchains, frameworks, libraries) are not installed/ready.
- PlatformIO resolves all dependencies automatically by pulling packages from the PlatformIO Registry. It can take a few minutes depending on the project complexity.
- Developer tries to open any C/C++ files from the project AND!!! receives warnings about unresolved headers, broken syntax, etc. Of course, "cpptools" extension is right here because PlatformIO has not been provided configuration yet. It is still in progress, we download it...
- Developer STARTS filling
c_cpp_properties.jsonbecause the "cpptools" extension forces him to do it. The developer does not understand what to do. No clue about toolchains, etc. Developer contacts PlatformIO forum or team and asks for help. Very often, developers even leave 1-star review as "it does not work".
So, how could we improve this API? The ideal scenario is to inform the "cpptools" that WE ARE ELIGIBLE to provide configuration but it can take us some time. See proposed workflow:
- PlatformIO extension starts and initiates
api = getCppToolsApi - At this moment, "cpptools" knows that there is someone responsible for the configuration and DOES NOT START its IntelliSense service waiting for the "command" when the provider is ready
- PlatformIO extension resolves all project dependencies, toolchains, and
api.notifyReady(provider). - Starting from this moment "cpptools" can complain about unresolved includes and syntax errors.
Your ideas?
P.S: As a workaround, I see that we can make a face configuration provider and provider "infinite sleep" to the provideConfigurations and other methods. Nevertheless, it is not useful from a technical perspective.
Related issue:
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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.
Línea de trabajo
Comienza con el flujo de trabajo propuesto de getCppToolsApi, notifyReady(provider) y provideConfigurations; después, revisa las issues enlazadas de PlatformIO para obtener contexto. Se considerará completado cuando se defina un comportamiento de la API que permita a un proveedor indicar que no está listo mientras se resuelven las dependencias, de modo que las quejas de IntelliSense comiencen solo después de que el proveedor esté listo.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript, vscode
- Área
- developer-experience, tooling
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100