From 5b61521e30d7ea69dcc8e259f2360a04706c5dce Mon Sep 17 00:00:00 2001 From: Dimitry Ivanov Date: Sun, 2 Dec 2018 15:09:15 +0300 Subject: [PATCH] Remove increment/decrement blockIndent from visitor --- .../markwon/ext/tasklist/TaskListPlugin.java | 22 ++++++++++----- .../ru/noties/markwon/MarkwonVisitor.java | 12 -------- .../ru/noties/markwon/MarkwonVisitorImpl.java | 28 ------------------- .../core/visitor/BlockQuoteNodeVisitor.java | 3 +- .../core/visitor/ListItemNodeVisitor.java | 2 -- 5 files changed, 16 insertions(+), 51 deletions(-) diff --git a/markwon-ext-tasklist/src/main/java/ru/noties/markwon/ext/tasklist/TaskListPlugin.java b/markwon-ext-tasklist/src/main/java/ru/noties/markwon/ext/tasklist/TaskListPlugin.java index 4efe4892..31a61a1b 100644 --- a/markwon-ext-tasklist/src/main/java/ru/noties/markwon/ext/tasklist/TaskListPlugin.java +++ b/markwon-ext-tasklist/src/main/java/ru/noties/markwon/ext/tasklist/TaskListPlugin.java @@ -8,6 +8,7 @@ import android.support.annotation.ColorInt; import android.support.annotation.NonNull; import android.util.TypedValue; +import org.commonmark.node.Node; import org.commonmark.parser.Parser; import ru.noties.markwon.AbstractMarkwonPlugin; @@ -70,9 +71,7 @@ public class TaskListPlugin extends AbstractMarkwonPlugin { visitor.ensureNewLine(); - visitor.incrementBlockIndent(); visitor.visitChildren(taskListBlock); - visitor.decrementBlockIndent(); if (visitor.hasNext(taskListBlock)) { visitor.ensureNewLine(); @@ -86,20 +85,16 @@ public class TaskListPlugin extends AbstractMarkwonPlugin { final int length = visitor.length(); - final int indent = visitor.blockIndent(); - visitor.blockIntent(indent + taskListItem.indent()); visitor.visitChildren(taskListItem); visitor.setSpans(length, new TaskListSpan( visitor.theme(), drawable, - visitor.blockIndent(), + indent(taskListItem) + taskListItem.indent(), taskListItem.done())); if (visitor.hasNext(taskListItem)) { visitor.ensureNewLine(); } - - visitor.blockIntent(indent); } }); } @@ -114,4 +109,17 @@ public class TaskListPlugin extends AbstractMarkwonPlugin { typedArray.recycle(); } } + + private static int indent(@NonNull Node node) { + int indent = 0; + Node parent = node.getParent(); + if (parent != null) { + parent = parent.getParent(); + while (parent != null) { + indent += 1; + parent = parent.getParent(); + } + } + return indent; + } } diff --git a/markwon/src/main/java/ru/noties/markwon/MarkwonVisitor.java b/markwon/src/main/java/ru/noties/markwon/MarkwonVisitor.java index 1b72218c..3a8587f1 100644 --- a/markwon/src/main/java/ru/noties/markwon/MarkwonVisitor.java +++ b/markwon/src/main/java/ru/noties/markwon/MarkwonVisitor.java @@ -19,10 +19,6 @@ public interface MarkwonVisitor extends Visitor { @NonNull Builder on(@NonNull Class node, @Nullable NodeVisitor nodeVisitor); - // to obtain currently registered one - @Nullable - NodeVisitor registeredVisitor(@NonNull Class node); - @NonNull MarkwonVisitor build(@NonNull MarkwonConfiguration configuration); } @@ -43,14 +39,6 @@ public interface MarkwonVisitor extends Visitor { boolean hasNext(@NonNull Node node); - void incrementBlockIndent(); - - void decrementBlockIndent(); - - void blockIntent(int blockIndent); - - int blockIndent(); - void incrementListLevel(); void decrementListLevel(); diff --git a/markwon/src/main/java/ru/noties/markwon/MarkwonVisitorImpl.java b/markwon/src/main/java/ru/noties/markwon/MarkwonVisitorImpl.java index 70684e00..d7ed0e8a 100644 --- a/markwon/src/main/java/ru/noties/markwon/MarkwonVisitorImpl.java +++ b/markwon/src/main/java/ru/noties/markwon/MarkwonVisitorImpl.java @@ -43,7 +43,6 @@ class MarkwonVisitorImpl implements MarkwonVisitor { private final SpannableBuilder builder = new SpannableBuilder(); - private int blockQuoteIndent; private int listLevel; private MarkwonVisitorImpl( @@ -216,26 +215,6 @@ class MarkwonVisitorImpl implements MarkwonVisitor { return node.getNext() != null; } - @Override - public void incrementBlockIndent() { - blockQuoteIndent += 1; - } - - @Override - public void decrementBlockIndent() { - blockQuoteIndent -= 1; - } - - @Override - public void blockIntent(int blockIndent) { - this.blockQuoteIndent = blockIndent; - } - - @Override - public int blockIndent() { - return blockQuoteIndent; - } - @Override public void incrementListLevel() { listLevel += 1; @@ -292,13 +271,6 @@ class MarkwonVisitorImpl implements MarkwonVisitor { return this; } - @Nullable - @Override - public NodeVisitor registeredVisitor(@NonNull Class node) { - //noinspection unchecked - return (NodeVisitor) nodes.get(node); - } - @NonNull @Override public MarkwonVisitor build(@NonNull MarkwonConfiguration configuration) { diff --git a/markwon/src/main/java/ru/noties/markwon/core/visitor/BlockQuoteNodeVisitor.java b/markwon/src/main/java/ru/noties/markwon/core/visitor/BlockQuoteNodeVisitor.java index 08681545..1c236c42 100644 --- a/markwon/src/main/java/ru/noties/markwon/core/visitor/BlockQuoteNodeVisitor.java +++ b/markwon/src/main/java/ru/noties/markwon/core/visitor/BlockQuoteNodeVisitor.java @@ -13,10 +13,9 @@ public class BlockQuoteNodeVisitor implements MarkwonVisitor.NodeVisitor final int length = visitor.length(); - visitor.incrementBlockIndent(); visitor.incrementListLevel(); final Node parent = listItem.getParent(); @@ -38,7 +37,6 @@ public class ListItemNodeVisitor implements MarkwonVisitor.NodeVisitor } - visitor.decrementBlockIndent(); visitor.decrementListLevel(); if (visitor.hasNext(listItem)) {