work you slob

elliott/add-variadic-snippets
S. Elliott Johnson 10 months ago
parent f10c6ffd9a
commit 99c844a964

@ -597,10 +597,6 @@ function special(parser) {
error(expression, 'TODO', 'expected an identifier followed by (...)');
}
if (expression.arguments.length > 1) {
error(expression.arguments[1], 'TODO', 'expected at most one argument');
}
parser.allow_whitespace();
parser.eat('}', true);
@ -610,7 +606,7 @@ function special(parser) {
start,
end: parser.index,
expression: expression.callee,
argument: expression.arguments[0] ?? null
arguments: expression.arguments
})
);
}

@ -1755,9 +1755,9 @@ export const template_visitors = {
/** @type {import('estree').Expression[]} */
const args = [context.state.node];
if (node.argument) {
args.push(b.thunk(/** @type {import('estree').Expression} */ (context.visit(node.argument))));
}
node.arguments.forEach((arg) =>
args.push(b.thunk(/** @type {import('estree').Expression} */ (context.visit(arg))))
);
let snippet_function = /** @type {import('estree').Expression} */ (
context.visit(node.expression)

@ -13,7 +13,8 @@ import type {
Node,
ObjectExpression,
Pattern,
Program
Program,
SpreadElement
} from 'estree';
export interface BaseNode {
@ -147,7 +148,7 @@ export interface DebugTag extends BaseNode {
export interface RenderTag extends BaseNode {
type: 'RenderTag';
expression: Identifier;
argument: null | Expression;
arguments: (Expression | SpreadElement)[];
}
type Tag = ExpressionTag | HtmlTag | ConstTag | DebugTag | RenderTag;

Loading…
Cancel
Save