From 906e76ea4765b57e93c5ec2d59b5906e41daf4ab Mon Sep 17 00:00:00 2001 From: Sei Lisa Date: Wed, 23 Aug 2017 14:34:00 +0200 Subject: [PATCH] Format LIST nodes; don't add indent to CONST list in calc mode LIST nodes will be pretty-printed with newlines between elements if they have 5 elements or more. List constants won't be indented when in calc mode. --- lslopt/lsloutput.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/lslopt/lsloutput.py b/lslopt/lsloutput.py index c71b595..3acde8d 100644 --- a/lslopt/lsloutput.py +++ b/lslopt/lsloutput.py @@ -161,7 +161,7 @@ class outscript(object): return ret ret = '' if lslcommon.IsCalc else '\n' first = True - self.indentlevel += 1 + self.indentlevel += 0 if lslcommon.IsCalc else 1 for entry in value: ret += self.dent() + ('[ ' if first else ', ') save_listmode = self.listmode @@ -169,8 +169,9 @@ class outscript(object): ret += self.Value2LSL(entry) + '\n' self.listmode = save_listmode first = False - self.indentlevel -= 1 - return ret + self.dent() + self.indent + ']' + ret += self.dent() + self.indentlevel -= 0 if lslcommon.IsCalc else 1 + return ret + ']' assert False, u'Value of unknown type in Value2LSL: ' + repr(value) @@ -291,7 +292,18 @@ class outscript(object): if nt == 'LIST': self.listmode = True - ret = '[' + self.OutExprList(child) + ']' + if len(child) < 5: + ret = '[' + self.OutExprList(child) + ']' + else: + self.indentlevel += 0 if lslcommon.IsCalc else 1 + ret = '' if lslcommon.IsCalc else '\n' + first = True + for elem in child: + ret += self.dent() + ('[ ' if first else ', ') + ret += self.OutExpr(elem) + '\n' + first = False + ret += self.dent() + ']' + self.indentlevel -= 0 if lslcommon.IsCalc else 1 self.listmode = False return ret