diff --git a/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jSyntaxHighlight.java b/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jSyntaxHighlight.java index cc57b56a..4f3c1c04 100644 --- a/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jSyntaxHighlight.java +++ b/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jSyntaxHighlight.java @@ -2,9 +2,9 @@ package ru.noties.markwon.syntax; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.text.SpannableStringBuilder; import android.text.TextUtils; -import ru.noties.markwon.SpannableBuilder; import ru.noties.markwon.SyntaxHighlight; import ru.noties.prism4j.Prism4j; @@ -82,10 +82,10 @@ public class Prism4jSyntaxHighlight implements SyntaxHighlight { @NonNull protected CharSequence highlight(@NonNull String language, @NonNull Prism4j.Grammar grammar, @NonNull String code) { - final SpannableBuilder builder = new SpannableBuilder(); + final SpannableStringBuilder builder = new SpannableStringBuilder(); final Prism4jSyntaxVisitor visitor = new Prism4jSyntaxVisitor(language, theme, builder); visitor.visit(prism4j.tokenize(code, grammar)); - return builder.text(); + return builder; } @NonNull diff --git a/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jSyntaxVisitor.java b/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jSyntaxVisitor.java index 93bf2646..cd7f2f04 100644 --- a/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jSyntaxVisitor.java +++ b/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jSyntaxVisitor.java @@ -1,8 +1,8 @@ package ru.noties.markwon.syntax; import android.support.annotation.NonNull; +import android.text.SpannableStringBuilder; -import ru.noties.markwon.SpannableBuilder; import ru.noties.prism4j.AbsVisitor; import ru.noties.prism4j.Prism4j; @@ -10,12 +10,12 @@ class Prism4jSyntaxVisitor extends AbsVisitor { private final String language; private final Prism4jTheme theme; - private final SpannableBuilder builder; + private final SpannableStringBuilder builder; Prism4jSyntaxVisitor( @NonNull String language, @NonNull Prism4jTheme theme, - @NonNull SpannableBuilder builder) { + @NonNull SpannableStringBuilder builder) { this.language = language; this.theme = theme; this.builder = builder; diff --git a/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jTheme.java b/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jTheme.java index 0f456cb1..5d168a7a 100644 --- a/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jTheme.java +++ b/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jTheme.java @@ -2,8 +2,8 @@ package ru.noties.markwon.syntax; import android.support.annotation.ColorInt; import android.support.annotation.NonNull; +import android.text.SpannableStringBuilder; -import ru.noties.markwon.SpannableBuilder; import ru.noties.prism4j.Prism4j; public interface Prism4jTheme { @@ -14,7 +14,7 @@ public interface Prism4jTheme { void apply( @NonNull String language, @NonNull Prism4j.Syntax syntax, - @NonNull SpannableBuilder builder, + @NonNull SpannableStringBuilder builder, int start, int end ); diff --git a/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jThemeBase.java b/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jThemeBase.java index fe915cc8..5cf784df 100644 --- a/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jThemeBase.java +++ b/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jThemeBase.java @@ -5,11 +5,12 @@ import android.support.annotation.FloatRange; import android.support.annotation.IntRange; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.text.SpannableStringBuilder; +import android.text.Spanned; import android.text.style.ForegroundColorSpan; import java.util.HashMap; -import ru.noties.markwon.SpannableBuilder; import ru.noties.prism4j.Prism4j; public abstract class Prism4jThemeBase implements Prism4jTheme { @@ -55,7 +56,7 @@ public abstract class Prism4jThemeBase implements Prism4jTheme { public void apply( @NonNull String language, @NonNull Prism4j.Syntax syntax, - @NonNull SpannableBuilder builder, + @NonNull SpannableStringBuilder builder, int start, int end) { @@ -74,10 +75,10 @@ public abstract class Prism4jThemeBase implements Prism4jTheme { @NonNull String type, @Nullable String alias, @ColorInt int color, - @NonNull SpannableBuilder builder, + @NonNull SpannableStringBuilder builder, int start, int end) { - builder.setSpan(new ForegroundColorSpan(color), start, end); + builder.setSpan(new ForegroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } protected static class Color { diff --git a/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jThemeDefault.java b/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jThemeDefault.java index 7b9728a5..ebb1bf2a 100644 --- a/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jThemeDefault.java +++ b/library-syntax/src/main/java/ru/noties/markwon/syntax/Prism4jThemeDefault.java @@ -3,9 +3,10 @@ package ru.noties.markwon.syntax; import android.support.annotation.ColorInt; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.text.SpannableStringBuilder; +import android.text.Spanned; import android.text.style.BackgroundColorSpan; -import ru.noties.markwon.SpannableBuilder; import ru.noties.markwon.spans.EmphasisSpan; import ru.noties.markwon.spans.StrongEmphasisSpan; @@ -36,13 +37,13 @@ public class Prism4jThemeDefault extends Prism4jThemeBase { @NonNull String type, @Nullable String alias, @ColorInt int color, - @NonNull SpannableBuilder builder, + @NonNull SpannableStringBuilder builder, int start, int end) { if ("css".equals(language) && isOfType("string", type, alias)) { super.applyColor(language, type, alias, 0xFF9a6e3a, builder, start, end); - builder.setSpan(new BackgroundColorSpan(0x80ffffff), start, end); + builder.setSpan(new BackgroundColorSpan(0x80ffffff), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return; } @@ -54,11 +55,11 @@ public class Prism4jThemeDefault extends Prism4jThemeBase { if (isOfType("important", type, alias) || isOfType("bold", type, alias)) { - builder.setSpan(new StrongEmphasisSpan(), start, end); + builder.setSpan(new StrongEmphasisSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } if (isOfType("italic", type, alias)) { - builder.setSpan(new EmphasisSpan(), start, end); + builder.setSpan(new EmphasisSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } }