Expand description
TypeScript / JavaScript plugin. One grammar family, two language tags:
JavaScript is TypeScript with the types taken out, so both share a walk and
-x ts / -x js still mean what you’d expect.
Extracts class → class, interface → trait (a named contract, like Go’s),
type → struct (a named shape), enum → enum, namespace → module,
function → function, and the members a class, interface, or object type
declares → method. A
const f = () => … is a function too — in modern JS that is how functions
are declared. parent is .-joined, so a method renders as deposit · Account.
Visibility: a class member takes its private/protected modifier (or #
prefix); anything module-level reads public when exported and private when
not. That last convention is ESM’s — a CommonJS file (module.exports = …)
exports nothing the grammar can see, so its definitions all read private.
Visibility is only ever a small ranking nudge, so the mislabel costs little.