From 86b2144e22778bcd7a4c4da5f8b44ce1e0f8c3b5 Mon Sep 17 00:00:00 2001 From: Patrick Simpson Date: Wed, 31 May 2017 12:06:40 +0200 Subject: [PATCH] [KOE-117] Improved layout of reminders query trace logging --- .../AcaciaZPushPlugin/SearchQuery.cs | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/SearchQuery.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/SearchQuery.cs index c983843..9bce431 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/SearchQuery.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/SearchQuery.cs @@ -42,40 +42,50 @@ namespace Acacia private void Indent() { - _builder.Append(new String(' ', _indent)); + _builder.Append(new String(' ', _indent * 4)); } public void Encode(SearchQuery.And part) { - EncodeMulti("AND", part.Operands); + EncodeMulti("AND", false, part.Operands); } public void Encode(SearchQuery.Or part) { - EncodeMulti("OR", part.Operands); + EncodeMulti("OR", false, part.Operands); } public void Encode(SearchQuery.Not part) { - EncodeMulti("NOT", new[] { part.Operand }); + EncodeMulti("NOT", true, new[] { part.Operand }); } - private void EncodeMulti(string oper, IEnumerable parts) + private void EncodeMulti(string oper, bool prefix, IEnumerable parts) { Indent(); - _builder.Append(oper).Append("\n"); - Indent(); - _builder.Append("{\n"); + _builder.Append("(\n"); ++_indent; + bool first = !prefix; foreach (SearchQuery operand in parts) + { + if (first) + first = false; + else + { + --_indent; + Indent(); + _builder.Append(oper).Append("\n"); + ++_indent; + } operand.Encode(this); + } --_indent; Indent(); - _builder.Append("}\n"); + _builder.Append(")\n"); } public void Encode(SearchQuery.PropertyBitMask part)