package flow.netbeans.markdown;

import org.netbeans.api.lexer.InputAttributes;
import org.netbeans.api.lexer.Language;
import org.netbeans.api.lexer.LanguagePath;
import org.netbeans.api.lexer.Token;
import org.netbeans.spi.lexer.LanguageEmbedding;
import org.netbeans.spi.lexer.LanguageProvider;
import flow.netbeans.markdown.highlighter.MarkdownLanguageHierarchy;
import flow.netbeans.markdown.highlighter.MarkdownTokenId;

@org.openide.util.lookup.ServiceProvider(service = org.netbeans.spi.lexer.LanguageProvider.class)
public class MarkdownLanguageProvider extends LanguageProvider {

    public Language<MarkdownTokenId> findLanguage(String mimeType) {
        if ("text/x-markdown".equals(mimeType)) {
            return new MarkdownLanguageHierarchy().language();
        }
        return null;
    }

    @Override
    public LanguageEmbedding<?> findLanguageEmbedding(
            Token arg0,
            LanguagePath arg1,
            InputAttributes arg2) {
        return null;
    }
}

@@ -28,16 +28,205 @@
 own;%0D%0A%0D%0A
+import flow.netbeans.markdown.csl.MarkdownLanguageConfig;%0D%0Aimport flow.netbeans.markdown.highlighter.MarkdownLanguageHierarchy;%0D%0Aimport flow.netbeans.markdown.highlighter.MarkdownTokenId;%0D%0A
 import o
@@ -265,16 +265,16 @@
 butes;%0D%0A
-
 import o
@@ -491,138 +491,8 @@
 er;%0D
-%0Aimport flow.netbeans.markdown.highlighter.MarkdownLanguageHierarchy;%0D%0Aimport flow.netbeans.markdown.highlighter.MarkdownTokenId;%0D
 %0A%0D%0A@
@@ -653,24 +653,39 @@
 ovider %7B%0D%0A%0D%0A
+    @Override%0D%0A
     public L
@@ -758,25 +758,40 @@
 if (
-%22text/x-markdown%22
+MarkdownLanguageConfig.MIME_TYPE
 .equ

Make use of MarkdownLanguageConfig constants