Skip to content

Commit

Permalink
Wrap Long Ternary Expressions and String Concatenations
Browse files Browse the repository at this point in the history
  • Loading branch information
cwarden committed Dec 12, 2023
1 parent 096c738 commit 7ecaab0
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
12 changes: 12 additions & 0 deletions formatter/format_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,18 @@ func TestStatement(t *testing.T) {
'\n' +
'lorem' +
'ipsum';`},

{
`Id originalGroupId = ql.SBQQ__RenewedSubscription__r.SBQQ__QuoteLine__r.SBQQ__Group__c != null ? ql.SBQQ__RenewedSubscription__r.SBQQ__QuoteLine__r.SBQQ__Group__c : ql.SBQQ__UpgradedSubscription__r.SBQQ__QuoteLine__r.SBQQ__Group__c;`,
`Id originalGroupId = ql.SBQQ__RenewedSubscription__r.SBQQ__QuoteLine__r.SBQQ__Group__c != null ?
ql.SBQQ__RenewedSubscription__r.SBQQ__QuoteLine__r.SBQQ__Group__c :
ql.SBQQ__UpgradedSubscription__r.SBQQ__QuoteLine__r.SBQQ__Group__c;`},

{
`List<SBQQ__QuoteLineGroup__c> originalGroups = Database.query('SELECT ' + String.join(new List<String>(qlgfields.keySet()), ',') + ' FROM SBQQ__QuoteLineGroup__c WHERE Id IN :originalGroupIds');`,
`List<SBQQ__QuoteLineGroup__c> originalGroups = Database.query('SELECT ' +
String.join(new List<String>(qlgfields.keySet()), ',') +
' FROM SBQQ__QuoteLineGroup__c WHERE Id IN :originalGroupIds');`},
}
for _, tt := range tests {
input := antlr.NewInputStream(tt.input)
Expand Down
10 changes: 8 additions & 2 deletions formatter/visitors.go
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,12 @@ func (v *FormatVisitor) VisitAssignExpression(ctx *parser.AssignExpressionContex
}

func (v *FormatVisitor) VisitCondExpression(ctx *parser.CondExpressionContext) interface{} {
return fmt.Sprintf("%s ? %s : %s", v.visitRule(ctx.Expression(0)), v.visitRule(ctx.Expression(1)), v.visitRule(ctx.Expression(2)))
if len(ctx.Expression(0).GetText())+len(ctx.Expression(1).GetText())+len(ctx.Expression(2).GetText()) <= 60 {
return fmt.Sprintf("%s ? %s : %s", v.visitRule(ctx.Expression(0)), v.visitRule(ctx.Expression(1)), v.visitRule(ctx.Expression(2)))
}
return fmt.Sprintf("%s ?\n%s :\n%s", v.visitRule(ctx.Expression(0)),
v.indent(v.visitRule(ctx.Expression(1)).(string)),
v.indent(v.visitRule(ctx.Expression(2)).(string)))
}

func (v *FormatVisitor) VisitLogAndExpression(ctx *parser.LogAndExpressionContext) interface{} {
Expand Down Expand Up @@ -482,7 +487,8 @@ func (v *FormatVisitor) VisitArth2Expression(ctx *parser.Arth2ExpressionContext)
right := i.visitRule(ctx.Expression(1)).(int)
log.Debug(fmt.Sprintf("LEFT %d: %s ", left, ctx.Expression(0).GetText()))
log.Debug(fmt.Sprintf("RIGHT %d: %s ", right, ctx.Expression(1).GetText()))
wrap := v.wrap || left+right > 2
log.Debug(fmt.Sprintf("TEXT %d: %s ", len(ctx.GetText()), ctx.GetText()))
wrap := v.wrap || left+right > 2 || len(ctx.GetText()) > 40
if wrap {
sep = "\n\t"
defer restoreWrap(unwrap(v))
Expand Down

0 comments on commit 7ecaab0

Please sign in to comment.