uqbar-project/wollok-lsp-ide

Poder navegar al código de lang

Opened this issue · 3 comments

Estaba navegando entre mensajes y me topé con que no puedo ver el código de lang (ni de nada que viene con wollok).

image

Esto era algo piola que tenía la versión de Eclipse

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

navegar

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:

image

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:

image

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

image

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.