Poder navegar al código de lang
Opened this issue · 3 comments
Una versión barata de esto es navegar al repo de wollok-language (si es posible al archivo / línea de código) en la versión que está usando TS.
Después otras ideas mejores son:
- Que TS venga con el source de Lang
- Generar el código a partir del WRE (printter)
Hoy hablaba con Nahue y me dijo que la idea de Ivo fácil de implementar sería navegar a github/master de wollok-ts (con el simple browser se puede embeber). La otra es tener resources y navegar esos archivos. La más loca es generar el texto en base al AST.
Update:
- si generás una carpeta
wollok
y pegás lang.wlk, lib.wlk, etc. ya comienza a funcionar
la desventaja: no se puede ocultar del menú de navegación, se puede definir una carpeta oculta como .wollok
pero si vos vas a la definición de Date, vscode lo agrega a la navegación. También es fácil escribir código y pisarlo, por más que lo definas como read-only (permisos 644), te aparece un mensaje de advertencia pero te pregunta si lo querés sobreescribir:
Lo cual es una UX rara, cualquier alumne pensaría que puede cambiar lang.wlk en su local.
Otra cosa mala es que ensucia el código de les alumnes. Se puede agregar en el init del wollok-ts-cli, incorporar la carpeta wollok
dentro del gitignore, pero verlo ahí se siente raro.
Lo bueno, es fácil a nivel programación y cuesta poco.
- quisimos implementar el Simple Browser, pero por un tema posiblemente de CORS no funciona:
es decir, funca con páginas simples como xkcd.com pero no para https://github.com/uqbar-project/wollok-language/blob/master/src/wollok/lang.wlk#L2885
El error interno que tira cuando levantás vscode con code --verbose
es CodeWindow: failed to load (reason: ERR_BLOCKED_BY_RESPONSE, code: -27)
, lo que según ChatGPT indica que el navegador integrado de VS Code (Simple Browser) no pudo cargar la página debido a una respuesta bloqueada. Esto ocurre comúnmente por restricciones de seguridad como las políticas de CSP (Content Security Policy) que GitHub y otros servicios aplican para evitar ser incrustados en iframes o navegadores embebidos.
La alternativa sería abrir un navegador afuera de la página, lo que en UX de IDE es un poco limitante, pero es más claro que no forma parte del proyecto del alumne y que tampoco es la idea sobreescribirlo.
Voy a seguir buscando variantes: una que es una paja es que generemos el código nosotros aplicando markdown pero sin tener que usar github como server.