diff --git a/README.md b/README.md index ca1316b..76712f4 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ echo "šŸµ OOK! šŸµ"; ?> CODE; +// Use UTF-8 as the encoding to preserve the emojis. $element = dW\Lit\Highlight::toElement($code, 'text.html.php', null, 'UTF-8'); $element->setAttribute('class', 'highlighted'); @@ -178,3 +179,72 @@ Of course Lit can simply output a string, too: ... $string = dW\Lit\Highlight::toString($code, 'text.html.php'); ``` + +Lit has quite a long list of out-of-the-bag supported languages, but sometimes other languages need to be highlighted: + +```php +... +// Import a hypothetical Ook Atom JSON language grammar into a Grammar object +// and add it to the registry. +$grammar = new dW\Lit\Grammar; +$grammar->loadJSON('/path/to/source.ook.json'); +dW\Lit\GrammarRegistry::set($grammar->scopeName, $grammar); + +// Now the grammar can be used to highlight code +$element = dW\Lit\Highlight::toElement($code, $grammar->scopeName); +``` + + +## Supported Languages & Formats ## + +* AppleScript +* C +* C# +* C# Cake file +* C# Script file +* C++ +* CoffeeScript +* CSS +* Diff +* Github Flavored Markdown +* Git config +* Go +* Go modules +* Go templates +* Java +* Java expression language +* Java properties +* JavaScript +* JavaScript Regular Expressions +* JSDoc +* JSON +* Less +* Lua +* Makefile +* Markdown (CommonMark) +* Objective C +* Perl +* Perl 6 +* PHP +* Plist +* Plist (XML, old-style) +* Python +* Python console +* Python Regular Expressions +* Python traceback +* Ruby +* Ruby gemfile +* Ruby on Rails (RJS) +* Rust +* Sass +* SassDoc +* SCSS +* Shell (Bash) +* Shell session (Bash) +* Smarty +* SQL +* SQL (Mustache) +* Textile +* Todo +* XML +* XSL \ No newline at end of file diff --git a/data/source.litcoffee.json b/data/source.litcoffee.json deleted file mode 100644 index 9de44bf..0000000 --- a/data/source.litcoffee.json +++ /dev/null @@ -1,668 +0,0 @@ -{ - "comment": "CoffeeScript (Literate)", - "fileTypes": [ - "litcoffee", - "litcoffee.erb", - "coffee.md" - ], - "name": "CoffeeScript (Literate)", - "scopeName": "source.litcoffee", - "firstLineMatch": "(?x)\n# Hashbang\n^\\#!.*(?:\\s|\\/)\n coffee(?:\\s.+?)?\\s(?:-l|--literate)\n(?:\\s|$)\n|\n# Modeline\n(?i:\n # Emacs\n -\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n litcoffee\n (?=[\\s;]|(?]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n litcoffee\n (?=\\s|:|$)\n)", - "patterns": [ - { - "begin": "^(?=([ ]{4}|\\t)(?!$))", - "end": "^(?!([ ]{4}|\\t))", - "name": "markup.raw.block.markdown", - "patterns": [ - { - "include": "#block_raw" - } - ] - }, - { - "begin": "(?x)^\n(?= [ ]{0,3}>.\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?[-*_])([ ]{0,2}\\k){2,}[ \\t]*+$\n)", - "comment": "We could also use an empty end match and set applyEndPatternLast, but then we must be sure that the begin pattern will only match stuff matched by the sub-patterns.", - "end": "(?x)^\n(?! [ ]{0,3}>.\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?[-*_])([ ]{0,2}\\k){2,}[ \\t]*+$\n)", - "name": "meta.block-level.markdown", - "patterns": [ - { - "include": "#block_quote" - }, - { - "include": "#heading" - }, - { - "include": "#separator" - } - ] - }, - { - "begin": "^[ ]{0,3}([*+-])(?=\\s)", - "captures": { - "1": { - "name": "punctuation.definition.list_item.markdown" - } - }, - "end": "^(?=\\S|[ ]{4,})|(?!\\G)", - "name": "markup.list.unnumbered.markdown", - "patterns": [ - { - "include": "#list-paragraph" - } - ] - }, - { - "begin": "^[ ]{0,3}([0-9]+\\.)(?=\\s)", - "captures": { - "1": { - "name": "punctuation.definition.list_item.markdown" - } - }, - "end": "^(?=\\S|[ ]{4,})|(?!\\G)", - "name": "markup.list.numbered.markdown", - "patterns": [ - { - "include": "#list-paragraph" - } - ] - }, - { - "begin": "^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)(?!.*?)", - "comment": "Markdown formatting is disabled inside block-level tags.", - "end": "(?<=^$\\n)", - "name": "meta.disable-markdown", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)", - "comment": "Same rule but for one line disables.", - "end": "$\\n?", - "name": "meta.disable-markdown", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.markdown" - }, - "2": { - "name": "constant.other.reference.link.markdown" - }, - "3": { - "name": "punctuation.definition.constant.markdown" - }, - "4": { - "name": "punctuation.separator.key-value.markdown" - }, - "5": { - "name": "punctuation.definition.link.markdown" - }, - "6": { - "name": "markup.underline.link.markdown" - }, - "7": { - "name": "punctuation.definition.link.markdown" - }, - "8": { - "name": "string.other.link.description.title.markdown" - }, - "9": { - "name": "punctuation.definition.string.begin.markdown" - }, - "10": { - "name": "punctuation.definition.string.end.markdown" - }, - "11": { - "name": "string.other.link.description.title.markdown" - }, - "12": { - "name": "punctuation.definition.string.begin.markdown" - }, - "13": { - "name": "punctuation.definition.string.end.markdown" - } - }, - "match": "(?x)\n\\s* # Leading whitespace\n(\\[)(.+?)(\\])(:) # Reference name\n[ \\t]* # Optional whitespace\n(?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in quotesā€¦\n | ((\").+?(\")) # or in parens.\n)? # Title is optional\n\\s* # Optional whitespace\n$", - "name": "meta.link.reference.def.markdown" - }, - { - "begin": "^(?=\\S)(?![=-]{3,}(?=$))", - "end": "^(?:\\s*$|(?=[ ]{0,3}>.))|(?=[ \\t]*\\n)(?<=^===|^====|=====|^---|^----|-----)[ \\t]*\\n|(?=^#)", - "name": "meta.paragraph.markdown", - "patterns": [ - { - "include": "#inline" - }, - { - "include": "text.html.basic" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.heading.markdown" - } - }, - "match": "^(={3,})(?=[ \\t]*$)", - "name": "markup.heading.1.markdown" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.heading.markdown" - } - }, - "match": "^(-{3,})(?=[ \\t]*$)", - "name": "markup.heading.2.markdown" - } - ] - } - ], - "repository": { - "ampersand": { - "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.", - "match": "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)", - "name": "meta.other.valid-ampersand.markdown" - }, - "block_quote": { - "begin": "\\G[ ]{0,3}(>)(?!$)[ ]?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.blockquote.markdown" - } - }, - "comment": " We terminate the block quote when seeing an empty line, a separator or a line with leading > characters. The latter is to ā€œresetā€ the quote level for quoted lines.", - "end": "(?x)^\n(?= \\s*$\n| [ ]{0,3}(?[-*_])([ ]{0,2}\\k){2,}[ \\t]*+$\n| [ ]{0,3}>.\n)", - "name": "markup.quote.markdown", - "patterns": [ - { - "begin": "(?x)\\G\n(?= [ ]{0,3}>.\n)", - "end": "^", - "patterns": [ - { - "include": "#block_quote" - } - ] - }, - { - "applyEndPatternLast": 1, - "begin": "(?x)\\G\n(?= ([ ]{4}|\\t)\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?[-*_])([ ]{0,2}\\k){2,}[ \\t]*+$\n)", - "end": "^", - "patterns": [ - { - "include": "#block_raw" - }, - { - "include": "#heading" - }, - { - "include": "#separator" - } - ] - }, - { - "begin": "(?x)\\G\n(?! $\n| [ ]{0,3}>.\n| ([ ]{4}|\\t)\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?[-*_])([ ]{0,2}\\k){2,}[ \\t]*+$\n)", - "end": "$|(?<=\\n)", - "patterns": [ - { - "include": "#inline" - } - ] - } - ] - }, - "block_raw": { - "name": "markup.raw.block.markdown", - "patterns": [ - { - "include": "#coffee_script" - } - ] - }, - "bold": { - "begin": "(?x)\n(\\*\\*|__)(?=\\S) # Open\n(?=\n (\n <[^>]*+> # HTML tags\n | (?`+)([^`]|(?!(?(?!`))`)*+\\k # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (? # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n |\n ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n ? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | (?!(?<=\\S)\\1). # Everything besides\n )++\n (?<=\\S)\\1 # Close\n)", - "captures": { - "1": { - "name": "punctuation.definition.bold.markdown" - } - }, - "end": "(?<=\\S)(\\1)", - "name": "markup.bold.markdown", - "patterns": [ - { - "applyEndPatternLast": 1, - "begin": "(?=<[^>]*?>)", - "end": "(?<=>)", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "include": "#escape" - }, - { - "include": "#ampersand" - }, - { - "include": "#bracket" - }, - { - "include": "#raw" - }, - { - "include": "#italic" - }, - { - "include": "#image-inline" - }, - { - "include": "#link-inline" - }, - { - "include": "#link-inet" - }, - { - "include": "#link-email" - }, - { - "include": "#image-ref" - }, - { - "include": "#link-ref-literal" - }, - { - "include": "#link-ref" - } - ] - }, - "bracket": { - "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.", - "match": "<(?![a-z/?\\$!])", - "name": "meta.other.valid-bracket.markdown" - }, - "coffee_script": { - "patterns": [ - { - "include": "source.coffee" - } - ] - }, - "escape": { - "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\>]", - "name": "constant.character.escape.markdown" - }, - "heading": { - "begin": "\\G(#{1,6})(?!#)\\s*(?=\\S)", - "captures": { - "1": { - "name": "punctuation.definition.heading.markdown" - } - }, - "contentName": "entity.name.section.markdown", - "end": "\\s*(#*)$\\n?", - "name": "markup.heading.markdown", - "patterns": [ - { - "include": "#inline" - } - ] - }, - "image-inline": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.description.markdown" - }, - "3": { - "name": "punctuation.definition.string.end.markdown" - }, - "5": { - "name": "invalid.illegal.whitespace.markdown" - }, - "6": { - "name": "punctuation.definition.metadata.markdown" - }, - "7": { - "name": "punctuation.definition.link.markdown" - }, - "8": { - "name": "markup.underline.link.image.markdown" - }, - "9": { - "name": "punctuation.definition.link.markdown" - }, - "10": { - "name": "string.other.link.description.title.markdown" - }, - "11": { - "name": "punctuation.definition.string.markdown" - }, - "12": { - "name": "punctuation.definition.string.markdown" - }, - "13": { - "name": "string.other.link.description.title.markdown" - }, - "14": { - "name": "punctuation.definition.string.markdown" - }, - "15": { - "name": "punctuation.definition.string.markdown" - }, - "16": { - "name": "punctuation.definition.metadata.markdown" - } - }, - "match": "(?x)\n\\! # Images start with !\n(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) # Match the link text\n([ ])? # Space not allowed\n(\\() # Opening paren for url\n(<?)(\\S+?)(>?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in parensā€¦\n | ((\").+?(\")) # or in quotes.\n)? # Title is optional\n\\s* # Optional whitespace\n(\\))", - "name": "meta.image.inline.markdown" - }, - "image-ref": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.description.markdown" - }, - "4": { - "name": "punctuation.definition.string.begin.markdown" - }, - "5": { - "name": "punctuation.definition.constant.markdown" - }, - "6": { - "name": "constant.other.reference.link.markdown" - }, - "7": { - "name": "punctuation.definition.constant.markdown" - } - }, - "match": "\\!(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])", - "name": "meta.image.reference.markdown" - }, - "inline": { - "patterns": [ - { - "include": "#escape" - }, - { - "include": "#ampersand" - }, - { - "include": "#bracket" - }, - { - "include": "#raw" - }, - { - "include": "#bold" - }, - { - "include": "#italic" - }, - { - "include": "#line-break" - }, - { - "include": "#image-inline" - }, - { - "include": "#link-inline" - }, - { - "include": "#link-inet" - }, - { - "include": "#link-email" - }, - { - "include": "#image-ref" - }, - { - "include": "#link-ref-literal" - }, - { - "include": "#link-ref" - } - ] - }, - "italic": { - "begin": "(?x)\n(\\*|_)(?=\\S) # Open\n(?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw> # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n |\n ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | \\1\\1 # Must be bold closer\n | (?!(?<=\\S)\\1). # Everything besides\n )++\n (?<=\\S)\\1 # Close\n)", - "captures": { - "1": { - "name": "punctuation.definition.italic.markdown" - } - }, - "end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))", - "name": "markup.italic.markdown", - "patterns": [ - { - "applyEndPatternLast": 1, - "begin": "(?=<[^>]*?>)", - "end": "(?<=>)", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "include": "#escape" - }, - { - "include": "#ampersand" - }, - { - "include": "#bracket" - }, - { - "include": "#raw" - }, - { - "include": "#bold" - }, - { - "include": "#image-inline" - }, - { - "include": "#link-inline" - }, - { - "include": "#link-inet" - }, - { - "include": "#link-email" - }, - { - "include": "#image-ref" - }, - { - "include": "#link-ref-literal" - }, - { - "include": "#link-ref" - } - ] - }, - "line-break": { - "match": " {2,}$", - "name": "meta.dummy.line-break" - }, - "link-email": { - "captures": { - "1": { - "name": "punctuation.definition.link.markdown" - }, - "2": { - "name": "markup.underline.link.markdown" - }, - "4": { - "name": "punctuation.definition.link.markdown" - } - }, - "match": "(<)((?:mailto:)?[-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(>)", - "name": "meta.link.email.lt-gt.markdown" - }, - "link-inet": { - "captures": { - "1": { - "name": "punctuation.definition.link.markdown" - }, - "2": { - "name": "markup.underline.link.markdown" - }, - "3": { - "name": "punctuation.definition.link.markdown" - } - }, - "match": "(<)((?:https?|ftp)://.*?)(>)", - "name": "meta.link.inet.markdown" - }, - "link-inline": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.title.markdown" - }, - "4": { - "name": "punctuation.definition.string.end.markdown" - }, - "5": { - "name": "invalid.illegal.whitespace.markdown" - }, - "6": { - "name": "punctuation.definition.metadata.markdown" - }, - "7": { - "name": "punctuation.definition.link.markdown" - }, - "8": { - "name": "markup.underline.link.markdown" - }, - "9": { - "name": "punctuation.definition.link.markdown" - }, - "10": { - "name": "string.other.link.description.title.markdown" - }, - "11": { - "name": "punctuation.definition.string.begin.markdown" - }, - "12": { - "name": "punctuation.definition.string.end.markdown" - }, - "13": { - "name": "string.other.link.description.title.markdown" - }, - "14": { - "name": "punctuation.definition.string.begin.markdown" - }, - "15": { - "name": "punctuation.definition.string.end.markdown" - }, - "16": { - "name": "punctuation.definition.metadata.markdown" - } - }, - "match": "(?x)\n(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) # Match the link text.\n([ ])? # Space not allowed\n(\\() # Opening paren for url\n(<?)(.*?)(>?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in parensā€¦\n | ((\").+?(\")) # or in quotes.\n)? # Title is optional\n\\s* # Optional whitespace\n(\\))", - "name": "meta.link.inline.markdown" - }, - "link-ref": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.title.markdown" - }, - "4": { - "name": "punctuation.definition.string.end.markdown" - }, - "5": { - "name": "punctuation.definition.constant.begin.markdown" - }, - "6": { - "name": "constant.other.reference.link.markdown" - }, - "7": { - "name": "punctuation.definition.constant.end.markdown" - } - }, - "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)([^\\]]*+)(\\])", - "name": "meta.link.reference.markdown" - }, - "link-ref-literal": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.title.markdown" - }, - "4": { - "name": "punctuation.definition.string.end.markdown" - }, - "5": { - "name": "punctuation.definition.constant.begin.markdown" - }, - "6": { - "name": "punctuation.definition.constant.end.markdown" - } - }, - "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])", - "name": "meta.link.reference.literal.markdown" - }, - "list-paragraph": { - "patterns": [ - { - "begin": "\\G\\s+(?=\\S)", - "end": "^\\s*$", - "name": "meta.paragraph.list.markdown", - "patterns": [ - { - "include": "#inline" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.list_item.markdown" - } - }, - "comment": "Match the list punctuation", - "match": "^\\s*([*+-]|[0-9]+\\.)" - } - ] - } - ] - }, - "raw": { - "captures": { - "1": { - "name": "punctuation.definition.raw.markdown" - }, - "3": { - "name": "punctuation.definition.raw.markdown" - } - }, - "match": "(`+)([^`]|(?!(?<!`)\\1(?!`))`)*+(\\1)", - "name": "markup.raw.inline.markdown" - }, - "separator": { - "match": "\\G[ ]{0,3}([-*_])([ ]{0,2}\\1){2,}[ \\t]*$\\n?", - "name": "meta.separator.markdown" - } - } -} diff --git a/data/text.hyperlink.json b/data/text.hyperlink.json deleted file mode 100644 index 8a718b5..0000000 --- a/data/text.hyperlink.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "scopeName": "text.hyperlink", - "injectionSelector": "text - string.regexp, string - string.regexp, comment, source.gfm", - "patterns": [ - { - "match": "(?x)\\b(https?|s?ftp|ftps|file|smb|afp|nfs|(?:x-)?man(?:-page)?|gopher|txmt|issue|atom)://((?!(\\#[[:word:]]*\\#))(?:[-:@[:word:].,~%+_/?=&#;|!]|\\((?:(?!(\\#[[:word:]]*\\#))[-:@[:word:].,~%+_/?=&#;|!])*\\)))+(?<![-.,?:#;])", - "name": "markup.underline.link.$1.hyperlink" - }, - { - "match": "(?x)\\b(mailto):((?!(\\#[[:word:]]*\\#))(?:[-:@[:word:].,~%+_/?=&#;|!]))+(?<![-.,?:#;])", - "name": "markup.underline.link.$1.hyperlink" - }, - { - "match": "(?i)\\bRFC(?: |(?<= RFC))(\\d+)\\b", - "name": "markup.underline.link.rfc.$1.hyperlink" - } - ] -} diff --git a/data/text.junit-test-report.json b/data/text.junit-test-report.json deleted file mode 100644 index c3fe5f0..0000000 --- a/data/text.junit-test-report.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "scopeName": "text.junit-test-report", - "name": "JUnit Test Report", - "firstLineMatch": "^Testsuite:", - "patterns": [ - { - "captures": { - "1": { - "name": "meta.testsuite.label.junit-test-report" - }, - "2": { - "name": "entity.name.testsuite.junit-test-report" - } - }, - "match": "(Testsuite:) (.+)$\\n", - "name": "meta.testsuite.name.junit-test-report" - }, - { - "captures": { - "1": { - "name": "meta.testcase.label.junit-test-report" - }, - "2": { - "name": "entity.name.testcase.junit-test-report" - } - }, - "match": "(Testcase:) (.+) took ([\\d\\.]+) sec$\\n", - "name": "meta.testcase.name.junit-test-report" - }, - { - "begin": "at\\s+(?=.+?\\(.+?\\)$)", - "end": "$\\n", - "name": "meta.stackframe.junit-test-report", - "patterns": [ - { - "match": "(?<=\\.)[^\\.]+?(?=\\()", - "name": "meta.stackframe.method.junit-test-report" - }, - { - "captures": { - "1": { - "name": "meta.stackframe.source.junit-test-report" - }, - "3": { - "name": "meta.stackframe.source.line.junit-test-report" - } - }, - "match": "\\((.+)(:)(.+)\\)$" - } - ] - }, - { - "begin": "------------- Standard Output ---------------$\\n", - "end": "------------- ---------------- ---------------$\\n", - "name": "meta.section.output.junit-test-report", - "patterns": [ - { - "begin": "--Output from (.+?)--$\\n", - "beginCaptures": { - "1": { - "name": "entity.name.testcase.junit-test-report" - } - }, - "contentName": "meta.output.content.junit-test-report", - "end": "(?=--Output from|------------- ---------------- ---------------)", - "name": "meta.output.junit-test-report" - } - ] - }, - { - "begin": "------------- Standard Error -----------------$\\n", - "contentName": "meta.error.junit-test-report", - "end": "------------- ---------------- ---------------$\\n", - "name": "meta.section.error.junit-test-report", - "patterns": [ - { - "begin": "--Output from (.+?)--$\\n", - "beginCaptures": { - "1": { - "name": "entity.name.testcase.junit-test-report" - } - }, - "contentName": "meta.error.content.junit-test-report", - "end": "(?=--Output from|------------- ---------------- ---------------)", - "name": "meta.error.junit-test-report" - } - ] - } - ] -} diff --git a/data/text.plain.json b/data/text.plain.json deleted file mode 100644 index 428abe9..0000000 --- a/data/text.plain.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "fileTypes": [ - "txt" - ], - "name": "Plain Text", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.item.text" - } - }, - "match": "^\\s*(ā€¢).*$\\n?", - "name": "meta.bullet-point.strong.text" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.item.text" - } - }, - "match": "^\\s*(Ā·).*$\\n?", - "name": "meta.bullet-point.light.text" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.item.text" - } - }, - "match": "^\\s*(\\*).*$\\n?", - "name": "meta.bullet-point.star.text" - }, - { - "begin": "^([ \\t]*)(?=\\S)", - "contentName": "meta.paragraph.text", - "end": "^(?!\\1(?=\\S))" - } - ], - "scopeName": "text.plain" -}