diff --git a/README.md b/README.md index 81458d5..76299b7 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ Note that in order for a language to be highlighted properly, you must have the * `go` * `lodash` * `handlebars|hbs`: requires the Sublime Text [Handlebars](https://github.com/daaain/Handlebars) package +* `haskell` * `html|html5` * `ini` * `jade` diff --git a/Syntaxes/Markdown Extended.JSON-tmLanguage b/Syntaxes/Markdown Extended.JSON-tmLanguage index 71ee7a7..bf1e25a 100644 --- a/Syntaxes/Markdown Extended.JSON-tmLanguage +++ b/Syntaxes/Markdown Extended.JSON-tmLanguage @@ -863,6 +863,27 @@ } } }, + { + "name": "markup.raw.block.markdown markup.raw.block.fenced.markdown", + "end": "(```|~~~|{%\\s*endhighlight\\s*%})\\n", + "begin": "(```|~~~|{%\\s*highlight)\\s*(haskell)\\s*((?:linenos\\s*)?%})?$", + "patterns": [ + { + "include": "source.haskell" + } + ], + "captures": { + "1": { + "name": "punctuation.definition.fenced.markdown" + }, + "2": { + "name": "variable.language.fenced.markdown" + }, + "3": { + "name": "punctuation.definition.fenced.markdown" + } + } + }, { "name": "markup.raw.block.markdown markup.raw.block.fenced.markdown", "end": "(```|~~~|{%\\s*endhighlight\\s*%})\\n", diff --git a/Syntaxes/Markdown Extended.sublime-syntax b/Syntaxes/Markdown Extended.sublime-syntax index e52749a..3c4d36a 100644 --- a/Syntaxes/Markdown Extended.sublime-syntax +++ b/Syntaxes/Markdown Extended.sublime-syntax @@ -186,6 +186,21 @@ contexts: 3: punctuation.definition.fenced.markdown pop: true - include: scope:source.erlang + - match: '(```|~~~|{%\s*highlight)\s*(haskell)\s*((?:linenos\s*)?%})?$' + captures: + 1: punctuation.definition.fenced.markdown + 2: variable.language.fenced.markdown + 3: punctuation.definition.fenced.markdown + push: + - meta_scope: markup.raw.block.markdown markup.raw.block.fenced.markdown + - meta_content_scope: source.haskell + - match: '(```|~~~|{%\s*endhighlight\s*%})\n' + captures: + 1: punctuation.definition.fenced.markdown + 2: variable.language.fenced.markdown + 3: punctuation.definition.fenced.markdown + pop: true + - include: scope:source.haskell - match: '(```|~~~|{%\s*highlight)\s*(diff)\s*((?:linenos\s*)?%})?$' captures: 1: punctuation.definition.fenced.markdown diff --git a/Syntaxes/Markdown Extended.tmLanguage b/Syntaxes/Markdown Extended.tmLanguage index 30ae83c..944ac15 100644 --- a/Syntaxes/Markdown Extended.tmLanguage +++ b/Syntaxes/Markdown Extended.tmLanguage @@ -1,5 +1,5 @@ - + fileTypes @@ -380,6 +380,39 @@ + + begin + (```|~~~|{%\s*highlight)\s*(haskell)\s*((?:linenos\s*)?%})?$ + captures + + 1 + + name + punctuation.definition.fenced.markdown + + 2 + + name + variable.language.fenced.markdown + + 3 + + name + punctuation.definition.fenced.markdown + + + end + (```|~~~|{%\s*endhighlight\s*%})\n + name + markup.raw.block.markdown markup.raw.block.fenced.markdown + patterns + + + include + source.haskell + + + begin (```|~~~|{%\s*highlight)\s*(diff)\s*((?:linenos\s*)?%})?$