uqbar-project / wollok-ts

TypeScript based Wollok language implementation
GNU General Public License v3.0
20 stars 15 forks source link

Re-pensar la API #156

Closed PalumboN closed 6 months ago

PalumboN commented 1 year ago

Fijarse cómo se usa la VM en otros proyectos y ofrecer una mejor API.

CLI

LSP

Mobile

fdodino commented 7 months ago

@PalumboN , creo que faltaría encarar solamente la parte Mobile. La parte de LSP que quedaba la empecé a mover en otro PR que va a salir, por ahí lo puedo renombrar usando este ticket.

fdodino commented 6 months ago

Respecto a la implementación de los helpers de Mobile:

export function allVariables(node: Method | Test): List<Variable> {
    return node.sentences().filter(is('Variable'))
}
const globalSingletons = environment.descendants.filter((node: Node): node is Singleton => node.is(Singleton) && !!node.name)
export function methodLabel(method: Method): string {
    return `${method.name}(${method.parameters.map(_ => _.name).join(',')})`
}
export function literalClassFQN(literal: Literal): Name {
    return `wollok.lang.${upperCaseFirst(typeof literal.value)}`
}

para mí se reemplaza por literalValueToClass en helpers

return node.is(Method) ? node.label : node.name // sacarle ' al is

Ahora estoy haciendo una última revisión.

fdodino commented 6 months ago

Cierro el issue, voy a abrir otro para migrar las 4 funciones que quedan.