tolkfmt-test-dev
Version:
Code formatter for the Tolk programming language
25 lines • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.format = void 0;
const parser_1 = require("./parser");
const render_1 = require("./render");
const comments_1 = require("./comments");
const node_1 = require("./print/node");
const format = async (code, opts) => {
const { maxWidth = 100, parser = await createAndInitTolkParser(), range, sortImports = false, } = opts ?? {};
const cst = parser.parse(code);
const rootNode = cst?.rootNode;
if (!rootNode)
return code;
const ctx = { comments: (0, comments_1.bindComments)(rootNode), range, sortImports };
const doc = (0, node_1.printNode)(rootNode, ctx);
if (!doc)
return code;
return (0, render_1.render)(doc, maxWidth);
};
exports.format = format;
async function createAndInitTolkParser() {
await (0, parser_1.initParser)(`${__dirname}/../wasm/tree-sitter.wasm`, `${__dirname}/../wasm/tree-sitter-tolk.wasm`);
return (0, parser_1.createTolkParser)();
}
//# sourceMappingURL=index.js.map