mirror of
https://github.com/apple/pkl.git
synced 2026-04-17 05:59:46 +02:00
Adjust formatting of qualified access chains (#1252)
This adjusts formatting of qualified access chains so that leading dot calls are kept in the same line if possible.
This commit is contained in:
@@ -679,6 +679,10 @@ public class GenericParser {
|
||||
ff(children);
|
||||
expect(Token.RBRACK, children, "unexpectedToken", "]");
|
||||
}
|
||||
case DOT, QDOT -> {
|
||||
nodeType = NodeType.QUALIFIED_ACCESS_EXPR;
|
||||
children.add(parseUnqualifiedAccessExpr());
|
||||
}
|
||||
case NON_NULL -> nodeType = NodeType.NON_NULL_EXPR;
|
||||
default -> children.add(parseExpr(expectation, nextMinPrec));
|
||||
}
|
||||
@@ -719,6 +723,16 @@ public class GenericParser {
|
||||
};
|
||||
}
|
||||
|
||||
private Node parseUnqualifiedAccessExpr() {
|
||||
var children = new ArrayList<Node>();
|
||||
children.add(parseIdentifier());
|
||||
if (lookahead() == Token.LPAREN && noSemicolonInbetween() && _lookahead.newLinesBetween == 0) {
|
||||
ff(children);
|
||||
children.add(parseArgumentList());
|
||||
}
|
||||
return new Node(NodeType.UNQUALIFIED_ACCESS_EXPR, children);
|
||||
}
|
||||
|
||||
private Node parseExprAtom(@Nullable String expectation) {
|
||||
var expr =
|
||||
switch (lookahead) {
|
||||
@@ -884,16 +898,7 @@ public class GenericParser {
|
||||
case FLOAT -> new Node(NodeType.FLOAT_LITERAL_EXPR, next().span);
|
||||
case STRING_START -> parseSingleLineStringLiteralExpr();
|
||||
case STRING_MULTI_START -> parseMultiLineStringLiteralExpr();
|
||||
case IDENTIFIER -> {
|
||||
var children = new ArrayList<Node>();
|
||||
children.add(parseIdentifier());
|
||||
if (lookahead == Token.LPAREN
|
||||
&& noSemicolonInbetween()
|
||||
&& _lookahead.newLinesBetween == 0) {
|
||||
children.add(parseArgumentList());
|
||||
}
|
||||
yield new Node(NodeType.UNQUALIFIED_ACCESS_EXPR, children);
|
||||
}
|
||||
case IDENTIFIER -> parseUnqualifiedAccessExpr();
|
||||
case EOF ->
|
||||
throw parserError(
|
||||
ErrorMessages.create("unexpectedEndOfFile"), prev().span.stopSpan());
|
||||
|
||||
@@ -110,6 +110,7 @@ public enum NodeType {
|
||||
SUPER_SUBSCRIPT_EXPR(NodeKind.EXPR),
|
||||
SUPER_ACCESS_EXPR(NodeKind.EXPR),
|
||||
SUBSCRIPT_EXPR(NodeKind.EXPR),
|
||||
QUALIFIED_ACCESS_EXPR(NodeKind.EXPR),
|
||||
IF_EXPR(NodeKind.EXPR),
|
||||
IF_HEADER,
|
||||
IF_CONDITION,
|
||||
|
||||
Reference in New Issue
Block a user