uqbar-project / wollok-lsp-ide

IDE for Wollok - LSP node-based
GNU General Public License v3.0
7 stars 3 forks source link

Si me olvido paréntesis de un método, el error es feo y está en cualquier lado #82

Open asanzo opened 1 year ago

asanzo commented 1 year ago

Si me olvido paréntesis de un método, el error es feo y está en cualquier lado Con este código:

object pepita {
    method vola = 1
}

El error es: "La siguiente regla falló: malformed entity" image

Y en lugar de mostrarlo sobre el method lo muestra sobre la palabra "object". Estaría bueno que lo tire más cerca (x ejemplo en el nombre del método o en la palabra method).

fdodino commented 1 year ago

@PalumboN me parece que el problema es del parser, hay que confirmarlo con @nscarcella pero apostaría 20 euros...

nscarcella commented 1 year ago

Cuando se falla en parsear un miembro de un objeto el parser se recupera y agrega un error a la entidad padre. En este caso, el mètodo no está parseando, con lo cual el objeto pepita debe tener adentro un error que dice la causa y el rango de caracteres donde falló.

Pero no es el parser el que relaciona el error con la zona a subrallar, así que yo mirarìa si: a) El error de parseo que queda en el nodo Singleton está bien asociado al rango de caracteres que no se pudo parsear (Yo creo que debe estar bien, porque eso está testeado pero, de no ser así habría un problema en el parser). b) Estamos usando esa informaciòn para marcar el texto correcto en el IDE.

PalumboN commented 1 year ago

Después de https://github.com/uqbar-project/wollok-ts/pull/162 este código rompe el parser. Antes no lo hacía (se introdujo ahí para solucionar parte de este otro issue: https://github.com/uqbar-project/wollok-lsp-ide/issues/83).

Como consecuencia de eso, el IDE ahora marca todo el archivo en rojo:

image

Hace falta más laburo.

PalumboN commented 1 month ago

El estado actual de esto es este:

image

Marca el error donde queremos 👍 El/Los mensaje(s) que tira sigue siendo feo 👎