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
	 Dimitry Ivanov
						Dimitry Ivanov