Add clear after markdown render action and SpannableBuilder#clear
This commit is contained in:
parent
eabe1d9994
commit
c58c31d5fd
@ -63,10 +63,12 @@ class MarkwonImpl extends Markwon {
|
||||
plugin.afterRender(node, visitor);
|
||||
}
|
||||
|
||||
// clear render props after rending
|
||||
renderProps.clearAll();
|
||||
final Spanned spanned = visitor.builder().spannableStringBuilder();
|
||||
|
||||
return visitor.builder().spannableStringBuilder();
|
||||
// clear render props and builder after rending
|
||||
visitor.clear();
|
||||
|
||||
return spanned;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
@ -88,6 +88,11 @@ public interface MarkwonVisitor extends Visitor {
|
||||
*/
|
||||
void setSpans(int start, @Nullable Object spans);
|
||||
|
||||
/**
|
||||
* Clears state of visitor (both {@link RenderProps} and {@link SpannableBuilder} will be cleared
|
||||
*/
|
||||
void clear();
|
||||
|
||||
/**
|
||||
* Helper method to obtain and apply spans for supplied Node. Internally queries {@link SpanFactory}
|
||||
* for the node (via {@link MarkwonSpansFactory#require(Node)} thus throwing an exception
|
||||
|
@ -231,6 +231,12 @@ class MarkwonVisitorImpl implements MarkwonVisitor {
|
||||
SpannableBuilder.setSpans(builder, spans, start, builder.length());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
renderProps.clearAll();
|
||||
builder.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <N extends Node> void setSpansForNode(@NonNull N node, int start) {
|
||||
setSpans(start, configuration.spansFactory().require(node).getSpans(configuration, renderProps));
|
||||
|
@ -325,6 +325,14 @@ public class SpannableBuilder implements Appendable, CharSequence {
|
||||
return reversed;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 3.0.0
|
||||
*/
|
||||
public void clear() {
|
||||
builder.setLength(0);
|
||||
spans.clear();
|
||||
}
|
||||
|
||||
private void copySpans(final int index, @Nullable CharSequence cs) {
|
||||
|
||||
// we must identify already reversed Spanned...
|
||||
|
Loading…
x
Reference in New Issue
Block a user