uqbar-project / wollok

Wollok Programming Language
GNU General Public License v3.0
60 stars 16 forks source link

Indentar constantes globales #1794

Closed PalumboN closed 5 years ago

PalumboN commented 5 years ago

Si le paso el formatter a este código:

const a = new Sobreviviente()
const b = new Sobreviviente()

Me lo deja:

const a = new Sobreviviente()const b = new Sobreviviente()

:disappointed:

npasserini commented 5 years ago

Me gustaría tomar este issue así aprendo a usar el formatter. @fdodino me das una mano?

fdodino commented 5 years ago

Buenísimo, sí. Tenés que toquetear WollokDslFormatter, armando un método dispatch

def dispatch void format(??????, extension IFormattableDocument document) {

Reemplazando ???? por la construcción del AST que corresponda, el tema es engancharlo tanto en los tests como en los programas y las definiciones wlk.

El prepend, append, etc. está bastante piola... Avisame si te trabás.

fdodino commented 5 years ago

Bueno, estuve jugando un poco y el método que tendrías que tocar es

def dispatch void format(WFile file, extension IFormattableDocument document) {

Ahí se llama al main, a los tests, o a los suite, etc.

Otra ayuda: AbstractWollokFormatterTestCase tiene esta definición

    def assertFormatting(String program, String expected) {
        //program.parse.eContents.show(1)
        Assert.assertEquals(expected,
        program.parse.serialize(SaveOptions.newBuilder.format().getOptions()))      
    }

La primera línea la podés descomentar y te muestra el AST tal cual lo procesa el formatter.

Nota mental para mí: fix-#1794-indentar-constantes-globales es un branch local por si me olvido

fdodino commented 5 years ago

Bueno, antes de que me olvide ahí subí el fix.

npasserini commented 5 years ago

Ok, gracias.

El dom., 6 de oct. de 2019 a la(s) 23:00, Fernando Dodino ( notifications@github.com) escribió:

Bueno, antes de que me olvide ahí subí el fix.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/uqbar-project/wollok/issues/1794?email_source=notifications&email_token=ABDLKOKPYKN6DEACPZWTSG3QNKJ5TA5CNFSM4IWX3IEKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAO2TUQ#issuecomment-538814930, or mute the thread https://github.com/notifications/unsubscribe-auth/ABDLKOIRANG7TH3GYSNVKLLQNKJ5TANCNFSM4IWX3IEA .