diff --git a/resources/functionalTests/expression/4assign-unary-numerical/input.p b/resources/functionalTests/expression/4assign-unary-numerical/input.p new file mode 100644 index 00000000..0e0a8212 --- /dev/null +++ b/resources/functionalTests/expression/4assign-unary-numerical/input.p @@ -0,0 +1,4 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.expressionFormatting": true}*/ + +a = -c. \ No newline at end of file diff --git a/resources/functionalTests/expression/4assign-unary-numerical/target.p b/resources/functionalTests/expression/4assign-unary-numerical/target.p new file mode 100644 index 00000000..f661ade5 --- /dev/null +++ b/resources/functionalTests/expression/4assign-unary-numerical/target.p @@ -0,0 +1,4 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.expressionFormatting": true}*/ + +a = -c. \ No newline at end of file diff --git a/src/formatters/expression/ExpressionFormatter.ts b/src/formatters/expression/ExpressionFormatter.ts index 394030cf..da3195e0 100644 --- a/src/formatters/expression/ExpressionFormatter.ts +++ b/src/formatters/expression/ExpressionFormatter.ts @@ -33,7 +33,8 @@ export class ExpressionFormatter extends AFormatter implements IFormatter { node.type === SyntaxNodeType.ParenthesizedExpression || node.type === SyntaxNodeType.AdditiveExpression || node.type === SyntaxNodeType.MultiplicativeExpression || - node.type === SyntaxNodeType.UnaryExpression + (node.type === SyntaxNodeType.UnaryExpression && + node.child(0)?.type === SyntaxNodeType.Not) ) { if (this.hasWhilePhraseParent(node)) { return false; diff --git a/src/model/SyntaxNodeType.ts b/src/model/SyntaxNodeType.ts index 40736684..221632fd 100644 --- a/src/model/SyntaxNodeType.ts +++ b/src/model/SyntaxNodeType.ts @@ -93,6 +93,7 @@ export enum SyntaxNodeType { Divide = "/", Modulus = "%", EqualsSign = "=", + Not = "NOT", // comparison operators EqualTo = "EQ", NotEqualTo = "NE",