work you slob

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

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

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

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

Loading…
Cancel
Save