github-linguist 7.4.0 → 7.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +5 -5
  2. data/grammars/annotation.liquidhaskell.haskell.json +15 -4
  3. data/grammars/hint.haskell.json +15 -4
  4. data/grammars/hint.message.haskell.json +15 -4
  5. data/grammars/hint.type.haskell.json +15 -4
  6. data/grammars/source.abap.json +14 -3
  7. data/grammars/source.apl.json +19 -2
  8. data/grammars/source.ats.json +17 -87
  9. data/grammars/source.ballerina.json +14 -19
  10. data/grammars/source.crystal.json +14 -2
  11. data/grammars/source.csound.json +37 -0
  12. data/grammars/source.css.json +25 -1
  13. data/grammars/source.css.scss.json +1724 -0
  14. data/grammars/source.gf.json +51 -0
  15. data/grammars/source.glsl.json +1 -1
  16. data/grammars/source.hack.json +2523 -0
  17. data/grammars/source.haskell.json +15 -4
  18. data/grammars/source.hc.json +709 -0
  19. data/grammars/source.hsig.json +15 -4
  20. data/grammars/source.hx.json +10 -6
  21. data/grammars/source.jolie.json +1 -1
  22. data/grammars/source.julia.json +114 -6
  23. data/grammars/source.m68k.json +412 -0
  24. data/grammars/source.mcfunction.json +62 -18
  25. data/grammars/source.objectscript.json +309 -0
  26. data/grammars/source.objectscript_class.json +674 -0
  27. data/grammars/source.objectscript_csp.json +19 -0
  28. data/grammars/source.objectscript_macros.json +226 -0
  29. data/grammars/source.powershell.json +21 -57
  30. data/grammars/source.rust.json +1 -1
  31. data/grammars/source.sass.json +836 -142
  32. data/grammars/source.sassdoc.json +346 -0
  33. data/grammars/source.scala.json +110 -10
  34. data/grammars/source.sqf.json +2 -1
  35. data/grammars/source.svelte.json +827 -0
  36. data/grammars/source.ts.json +8 -4
  37. data/grammars/source.tsql.json +507 -0
  38. data/grammars/source.tsx.json +8 -4
  39. data/grammars/source.viml.json +1 -1
  40. data/grammars/source.vtt.json +702 -0
  41. data/grammars/source.wollok.json +100 -0
  42. data/grammars/source.xojo.json +85 -0
  43. data/grammars/source.yara.json +3 -2
  44. data/grammars/source.zeek.json +412 -0
  45. data/grammars/source.zenscript.json +282 -0
  46. data/grammars/source.zig.json +2 -11
  47. data/grammars/text.haml.json +1 -1
  48. data/grammars/text.html.php.blade.json +3 -3
  49. data/grammars/text.html.vue.json +41 -1
  50. data/grammars/text.slim.json +1 -1
  51. data/grammars/text.tex.latex.haskell.json +15 -4
  52. data/grammars/version +1 -1
  53. data/lib/linguist/VERSION +1 -1
  54. data/lib/linguist/blob_helper.rb +5 -10
  55. data/lib/linguist/generated.rb +10 -2
  56. data/lib/linguist/heuristics.yml +14 -3
  57. data/lib/linguist/language.rb +3 -2
  58. data/lib/linguist/languages.json +1 -1
  59. data/lib/linguist/languages.yml +151 -16
  60. data/lib/linguist/samples.json +9844 -1711
  61. data/lib/linguist/samples.rb +8 -5
  62. data/lib/linguist/shebang.rb +6 -0
  63. data/lib/linguist/vendor.yml +3 -0
  64. metadata +25 -10
  65. data/grammars/source.bro.json +0 -403
  66. data/grammars/source.scss.json +0 -1287
@@ -2019,7 +2019,7 @@
2019
2019
  "patterns": [
2020
2020
  {
2021
2021
  "begin": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))\\s*(?!\\{))",
2022
- "end": "(?=;|$)",
2022
+ "end": "(?=;|$|\\})",
2023
2023
  "patterns": [
2024
2024
  {
2025
2025
  "include": "#comment"
@@ -3961,7 +3961,7 @@
3961
3961
  },
3962
3962
  {
3963
3963
  "name": "string.regexp.tsx",
3964
- "begin": "(?\u003c![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
3964
+ "begin": "((?\u003c![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?\u003c=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
3965
3965
  "end": "(/)([gimsuy]*)",
3966
3966
  "patterns": [
3967
3967
  {
@@ -4773,8 +4773,12 @@
4773
4773
  "include": "#type-function-return-type"
4774
4774
  },
4775
4775
  {
4776
- "name": "storage.modifier.tsx",
4777
- "match": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"
4776
+ "match": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",
4777
+ "captures": {
4778
+ "1": {
4779
+ "name": "storage.modifier.tsx"
4780
+ }
4781
+ }
4778
4782
  },
4779
4783
  {
4780
4784
  "include": "#type-name"
@@ -1076,7 +1076,7 @@
1076
1076
  },
1077
1077
  "vimCommand": {
1078
1078
  "name": "support.function.command.viml",
1079
- "match": "\\b(a|ab|abc|abclear|abo|aboveleft|all?|ar|args|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|argu|argument|as|ascii|au|b|buffer|ba|ball|badd?|bd|bdelete|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|br|brewind|break?|breaka|breakadd|breakd|breakdel|breakl|breaklist|bro|browse|bufdo|buffers|bun|bunload|bw|bwipeout|c|change|cabc|cabclear|cad|caddbuffer|cadde|caddexpr|caddf|caddfile|call?|cat|catch|cb|cbuffer|cbo|cbottom|cc|ccl|cclose|cd|cdo|ce|center|cex|cexpr|cf|cfile|cfdo|cfir|cfirst|cg|cgetfile|cgetb|cgetbuffer|cgete|cgetexpr|changes|chd|chdir|che|checkpath|checkt|checktime|chi|chistory|cl|clist|cla|clast|cle|clearjumps|clo|close|cmapc|cmapclear|cn|cnext|cN|cNext|cnew|cnewer|cnf|cnfile|cNf|cNfile|co|copy|col|colder|colo|colorscheme|com|comc|comclear|comp|compiler|con|continue|conf|confirm|copen?|cp|cprevious|cpf|cpfile|cq|cquit|cr|crewind|cs|cscope|cstag|cuna|cunabbrev|cw|cwindow|d|delete|debug|debugg|debuggreedy|delc|delcommand|delel|delep|deletel|deletep|deletl|deletp|delf|delfunction|dell|delm|delmarks|delp|dep|di|display|dif|diffupdate|diffg|diffget|diffo|diffoff|diffp|diffpatch|diffput?|diffs|diffsplit|difft|diffthis|dig|digraphs|dir|dj|djump|dl|dli|dlist|do|doau|dp|dr|drop|ds|dsearch|dsp|dsplit|e|edit|ea|earlier|ec|echoe|echoerr|echom|echomsg|echon|el|else|elseif?|em|emenu|en|endif|endf|endfunction|endfor?|endt|endtry|endw|endwhile|enew?|ex|exit?|exu|exusage|f|file|files|filet|filetype|filt|filter|find?|fina|finally|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoopen|folddoc|folddoclosed|foldo|foldopen|for|fu|function|g|go|goto|gr|grep|grepa|grepadd|gui|gvim|h|help|ha|hardcopy|helpc|helpclose|helpf|helpfind|helpg|helpgrep|helpt|helptags|hi|hide?|his|history|i|ia|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|intro|is|isearch|isp|isplit|iuna|iunabbrev|j|join|ju|jumps|k|kee|keepmarks|keepa|keepalt|keepj|keepjumps|keepp|keeppatterns|l|list|la|last|lad|laddexpr|laddb|laddbuffer|laddf|laddfile|lan|language|lat|later|lb|lbuffer|lbo|lbottom|lcd?|lch|lchdir|lcl|lclose|lcs|lcscope|ldo?|le|left|lefta|leftabove|lex|lexpr|lf|lfile|lfdo|lfir|lfirst|lg|lgetfile|lgetb|lgetbuffer|lgete|lgetexpr|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|lhi|lhistory|ll|lla|llast|lli|llist|lmake?|lmapc|lmapclear|lN|lNext|lne|lnext|lnew|lnewer|lnf|lnfile|lNf|lNfile|lo|loadview|loadk|loadkeymap|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lprevious|lpf|lpfile|lr|lrewind|ls|lt|ltag|lua|luado|luafile|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|move|ma|mark|make?|marks|mat|match|menut|menutranslate|mes|messages|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvimrc|mkview?|mode?|mz|mzscheme|mzf|mzfile|n|next|nb|nbkey|nbc|nbclose|nbs|nbstart|new|nmapc|nmapclear|noa|noautocmd|noh|nohlsearch|nor|nore|nos|noswapfile|nu|number|o|open|ol|oldfiles|omapc|omapclear|on|only|opt|options|ownsyntax|p|print|pa|packadd|packl|packloadall|pc|pclose|pe|perl|ped|pedit|perldo?|pop?|popup?|pp|ppop|pre|preserve|prev|previous|pro|prof|profile|profd|profdel|promptf|promptfind|promptr|promptrepl|ps|psearch|ptag?|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|put?|pwd?|py|python|py3|py3do|pydo|pyf|pyfile|python3|pythonx|pyx|pyxdo|pyxfile|q|quit|qa|qall|quita|quitall|r|read|rec|recover|redo?|redir?|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|runtime|ruby?|rubydo?|rubyf|rubyfile|rundo|rv|rviminfo|sa|sargument|sall?|san|sandbox|sav|saveas|sb|sbuffer|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sc|sce|scg|sci|scI|scl|scp|scr|scriptnames|scripte|scriptencoding|scs|scscope|set?|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sg|sgc|sge|sgi|sgI|sgl|sgn|sgp|sgr|sh|shell|si|sI|sic|sIc|sie|sIe|sig|sIg|sign|sIl|sil|silent|sim|simalt|sin|sIn|sip|sIp|sir|sIr|sl|sleep|sla|slast|sm|smagic|sm|smap|sme|smenu|smile|sn|snext|sN|sNext|sno|snomagic|snoreme|snoremenu|so|source|sort?|sp|split|spe|spellgood|spelld|spelldump|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|spr|sprevious|sr|src|sre|srewind|srg|sri|srI|srl|srn|srp|st|stop|stag?|star|startinsert|startg|startgreplace|startr|startreplace|stj|stjump|stopi|stopinsert|sts|stselect|sun|sunhide|sunme|sunmenu|sus|suspend|sv|sview|sw|swapname|sy|syn|sync|syncbind|syntime|t|tag?|tab|tabc|tabclose|tabdo?|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnext|tabN|tabNext|tabnew|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tags|tcl?|tcldo?|tclf|tclfile|te|tearoff|ter|terminal|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tmap?|tmapc|tmapclear|tn|tnext|tN|tNext|tno|tnoremap|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|tunmap?|u|undo|una|unabbreviate|undoj|undojoin|undol|undolist|unh|unhide|unl|unlo|unlockvar|uns|unsilent|up|update|v|ve|version|verb|verbose|vert|vertical|vi|visual|view?|vim|vimgrep|vimgrepa|vimgrepadd|viu|viusage|vmapc|vmapclear|vnew?|vs|vsplit|w|write|wa|wall|wh|while|win|winsize|winc|wincmd|windo|winp|winpos|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|ws|wsverb|wundo|wv|wviminfo|x|xit|xa|xall|xmapc|xmapclear|xme|xmenu|xnoreme|xnoremenu|xprop|xunme|xunmenu|xwininfo|y|yank)\\b"
1079
+ "match": "\\b(a|ab|abc|abclear|abo|aboveleft|all?|ar|args|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|argu|argument|as|ascii|au|b|buffer|ba|ball|badd?|bd|bdelete|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|br|brewind|break?|breaka|breakadd|breakd|breakdel|breakl|breaklist|bro|browse|bufdo|buffers|bun|bunload|bw|bwipeout|c|change|cabc|cabclear|cad|caddbuffer|cadde|caddexpr|caddf|caddfile|call?|cat|catch|cb|cbuffer|cbo|cbottom|cc|ccl|cclose|cd|cdo|ce|center|cex|cexpr|cf|cfile|cfdo|cfir|cfirst|cg|cgetfile|cgetb|cgetbuffer|cgete|cgetexpr|changes|chd|chdir|che|checkpath|checkt|checktime|chi|chistory|cl|clist|cla|clast|cle|clearjumps|clo|close|cmapc|cmapclear|cn|cnext|cN|cNext|cnew|cnewer|cnf|cnfile|cNf|cNfile|co|copy|col|colder|colo|colorscheme|com|comc|comclear|comp|compiler|con|continue|conf|confirm|copen?|cp|cprevious|cpf|cpfile|cq|cquit|cr|crewind|cs|cscope|cstag|cuna|cunabbrev|cw|cwindow|d|delete|debug|debugg|debuggreedy|delc|delcommand|delel|delep|deletel|deletep|deletl|deletp|delf|delfunction|dell|delm|delmarks|delp|dep|di|display|dif|diffupdate|diffg|diffget|diffo|diffoff|diffp|diffpatch|diffput?|diffs|diffsplit|difft|diffthis|dig|digraphs|dir|dj|djump|dl|dli|dlist|do|doau|dp|dr|drop|ds|dsearch|dsp|dsplit|e|edit|ea|earlier|ec|echoe|echoerr|echom|echomsg|echon|el|else|elseif?|em|emenu|en|endif|endf|endfunction|endfor?|endt|endtry|endw|endwhile|enew?|ex|exit?|exu|exusage|f|file|files|filet|filetype|filt|filter|find?|fina|finally|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoopen|folddoc|folddoclosed|foldo|foldopen|for|fu|function|g|go|goto|gr|grep|grepa|grepadd|gui|gvim|h|help|ha|hardcopy|helpc|helpclose|helpf|helpfind|helpg|helpgrep|helpt|helptags|hi|hide?|his|history|i|ia|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|intro|is|isearch|isp|isplit|iuna|iunabbrev|j|join|ju|jumps|k|kee|keepmarks|keepa|keepalt|keepj|keepjumps|keepp|keeppatterns|l|list|la|last|lad|laddexpr|laddb|laddbuffer|laddf|laddfile|lan|language|lat|later|lb|lbuffer|lbo|lbottom|lcd?|lch|lchdir|lcl|lclose|lcs|lcscope|ldo?|le|left|lefta|leftabove|lex|lexpr|lf|lfile|lfdo|lfir|lfirst|lg|lgetfile|lgetb|lgetbuffer|lgete|lgetexpr|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|lhi|lhistory|ll|lla|llast|lli|llist|lmake?|lmapc|lmapclear|lN|lNext|lne|lnext|lnew|lnewer|lnf|lnfile|lNf|lNfile|lo|loadview|loadk|loadkeymap|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lprevious|lpf|lpfile|lr|lrewind|ls|lt|ltag|lua|luado|luafile|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|move|ma|mark|make?|marks|mat|match|menut|menutranslate|mes|messages|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvimrc|mkview?|mode?|mz|mzscheme|mzf|mzfile|n|next|nb|nbkey|nbc|nbclose|nbs|nbstart|new|nmapc|nmapclear|noa|noautocmd|noh|nohlsearch|nor|nore|nos|noswapfile|nu|number|o|open|ol|oldfiles|omapc|omapclear|on|only|opt|options|ownsyntax|p|print|pa|packadd|packl|packloadall|pc|pclose|pe|perl|ped|pedit|perldo?|pop?|popup?|pp|ppop|pre|preserve|prev|previous|pro|prof|profile|profd|profdel|promptf|promptfind|promptr|promptrepl|ps|psearch|ptag?|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|put?|pwd?|py|python|py3|py3do|pydo|pyf|pyfile|python3|pythonx|pyx|pyxdo|pyxfile|q|quit|qa|qall|quita|quitall|r|read|rec|recover|redo?|redir?|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|runtime|ruby?|rubydo?|rubyf|rubyfile|rundo|rv|rviminfo|sa|sargument|sall?|san|sandbox|sav|saveas|sb|sbuffer|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sc|sce|scg|sci|scI|scl|scp|scr|scriptnames|scripte|scriptencoding|scs|scscope|set?|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sg|sgc|sge|sgi|sgI|sgl|sgn|sgp|sgr|sh|shell|si|sI|sic|sIc|sie|sIe|sig|sIg|sign|sIl|sil|silent|sim|simalt|sin|sIn|sip|sIp|sir|sIr|sl|sleep|sla|slast|sm|smagic|sm|smap|sme|smenu|smile|sn|snext|sN|sNext|sno|snomagic|snoreme|snoremenu|so|source|sort?|sp|split|spe|spellgood|spelld|spelldump|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|spr|sprevious|sr|src|sre|srewind|srg|sri|srI|srl|srn|srp|st|stop|stag?|star|startinsert|startg|startgreplace|startr|startreplace|stj|stjump|stopi|stopinsert|sts|stselect|sun|sunhide|sunme|sunmenu|sus|suspend|sv|sview|sw|swapname|sy|syn|sync|syncbind|syntime|t|tag?|tab|tabc|tabclose|tabdo?|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnext|tabN|tabNext|tabnew|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tags|tcl?|tcd|tch|tchdir|tcldo?|tclf|tclfile|te|tearoff|ter|terminal|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tmap?|tmapc|tmapclear|tn|tnext|tN|tNext|tno|tnoremap|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|tunmap?|u|undo|una|unabbreviate|undoj|undojoin|undol|undolist|unh|unhide|unl|unlo|unlockvar|uns|unsilent|up|update|v|ve|version|verb|verbose|vert|vertical|vi|visual|view?|vim|vimgrep|vimgrepa|vimgrepadd|viu|viusage|vmapc|vmapclear|vnew?|vs|vsplit|w|write|wa|wall|wh|while|win|winsize|winc|wincmd|windo|winp|winpos|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|ws|wsverb|wundo|wv|wviminfo|x|xit|xa|xall|xmapc|xmapclear|xme|xmenu|xnoreme|xnoremenu|xprop|xunme|xunmenu|xwininfo|y|yank)\\b"
1080
1080
  },
1081
1081
  "vimErrSetting": {
1082
1082
  "name": "invalid.deprecated.legacy-setting.viml",
@@ -0,0 +1,702 @@
1
+ {
2
+ "name": "WebVTT",
3
+ "scopeName": "source.vtt",
4
+ "patterns": [
5
+ {
6
+ "include": "#file_body"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "_cue_timings_and_settings_list": {
11
+ "match": "^(.+?\\s+--\u003e\\s+.+?)(?:\\s+(.+))?$",
12
+ "captures": {
13
+ "1": {
14
+ "patterns": [
15
+ {
16
+ "include": "#cue_timings"
17
+ }
18
+ ]
19
+ },
20
+ "2": {
21
+ "patterns": [
22
+ {
23
+ "include": "#cue_settings_list"
24
+ }
25
+ ]
26
+ }
27
+ }
28
+ },
29
+ "alignment_cue_setting": {
30
+ "name": "meta.alignment-cue-setting.vtt",
31
+ "match": "(align)(:)([^\\s]+)",
32
+ "captures": {
33
+ "1": {
34
+ "name": "support.type.alignment-cue-setting.vtt"
35
+ },
36
+ "2": {
37
+ "name": "punctuation.definition.colon.vtt"
38
+ },
39
+ "3": {
40
+ "patterns": [
41
+ {
42
+ "name": "support.constant.alignment-cue-setting.vtt",
43
+ "match": "(?:^|\\G)(?:start|center|end|left|right)(?=$)"
44
+ },
45
+ {
46
+ "name": "invalid.illegal.vtt",
47
+ "match": ".+"
48
+ }
49
+ ]
50
+ }
51
+ }
52
+ },
53
+ "comment_block": {
54
+ "name": "meta.comment-block.vtt",
55
+ "begin": "^(NOTE)(?:\\s(.*))?$",
56
+ "end": "^$",
57
+ "patterns": [
58
+ {
59
+ "name": "comment.line.character.vtt",
60
+ "match": ".+"
61
+ }
62
+ ],
63
+ "beginCaptures": {
64
+ "1": {
65
+ "name": "entity.name.section.comment.vtt"
66
+ },
67
+ "2": {
68
+ "name": "comment.line.character.vtt"
69
+ }
70
+ }
71
+ },
72
+ "cue_block": {
73
+ "name": "meta.cue-block.vtt",
74
+ "begin": "^.+$",
75
+ "end": "^$",
76
+ "patterns": [
77
+ {
78
+ "include": "#_cue_timings_and_settings_list"
79
+ },
80
+ {
81
+ "include": "#cue_text"
82
+ }
83
+ ],
84
+ "beginCaptures": {
85
+ "0": {
86
+ "patterns": [
87
+ {
88
+ "include": "#cue_identifier"
89
+ },
90
+ {
91
+ "include": "#_cue_timings_and_settings_list"
92
+ },
93
+ {
94
+ "name": "invalid.illegal.vtt",
95
+ "match": ".+"
96
+ }
97
+ ]
98
+ }
99
+ }
100
+ },
101
+ "cue_bold_span": {
102
+ "name": "meta.cue-bold-span.vtt"
103
+ },
104
+ "cue_class_span": {
105
+ "name": "meta.cue-class-span.vtt"
106
+ },
107
+ "cue_components": {
108
+ "name": "meta.cue-components.vtt",
109
+ "patterns": [
110
+ {
111
+ "include": "#cue_class_span"
112
+ },
113
+ {
114
+ "include": "#cue_italics_span"
115
+ },
116
+ {
117
+ "include": "#cue_bold_span"
118
+ },
119
+ {
120
+ "include": "#cue_underline_span"
121
+ },
122
+ {
123
+ "include": "#cue_ruby_span"
124
+ },
125
+ {
126
+ "include": "#cue_voice_span"
127
+ },
128
+ {
129
+ "include": "#cue_language_span"
130
+ },
131
+ {
132
+ "include": "#cue_timestamp"
133
+ },
134
+ {
135
+ "include": "#cue_text_span"
136
+ },
137
+ {
138
+ "include": "#html_character_reference"
139
+ }
140
+ ]
141
+ },
142
+ "cue_identifier": {
143
+ "name": "meta.cue-identifier.vtt",
144
+ "match": "(?:^|\\G)(?!.*--\u003e).*$",
145
+ "captures": {
146
+ "0": {
147
+ "name": "variable.other.cue-identifier.vtt"
148
+ }
149
+ }
150
+ },
151
+ "cue_italics_span": {
152
+ "name": "meta.cue-italics-span.vtt"
153
+ },
154
+ "cue_language_span": {
155
+ "name": "meta.cue-language-span.vtt"
156
+ },
157
+ "cue_ruby_span": {
158
+ "name": "meta.cue-ruby-span.vtt"
159
+ },
160
+ "cue_settings_list": {
161
+ "name": "meta.cue-settings-list.vtt",
162
+ "patterns": [
163
+ {
164
+ "include": "#vertical_text_cue_setting"
165
+ },
166
+ {
167
+ "include": "#line_cue_setting"
168
+ },
169
+ {
170
+ "include": "#position_cue_setting"
171
+ },
172
+ {
173
+ "include": "#size_cue_setting"
174
+ },
175
+ {
176
+ "include": "#alignment_cue_setting"
177
+ },
178
+ {
179
+ "include": "#region_cue_setting"
180
+ }
181
+ ]
182
+ },
183
+ "cue_text": {
184
+ "name": "meta.cue-text.vtt",
185
+ "patterns": [
186
+ {
187
+ "include": "#cue_components"
188
+ },
189
+ {
190
+ "include": "text.html.basic"
191
+ }
192
+ ]
193
+ },
194
+ "cue_text_span": {
195
+ "name": "meta.cue-text-span.vtt"
196
+ },
197
+ "cue_timestamp": {
198
+ "name": "meta.cue-timestamp.vtt"
199
+ },
200
+ "cue_timings": {
201
+ "name": "meta.cue-timings.vtt",
202
+ "match": "(?:^|\\G)(.+?)\\s+(--\u003e)\\s+(.+?)(?=$)",
203
+ "captures": {
204
+ "1": {
205
+ "patterns": [
206
+ {
207
+ "include": "#timestamp"
208
+ },
209
+ {
210
+ "name": "invalid.illegal.vtt",
211
+ "match": ".+"
212
+ }
213
+ ]
214
+ },
215
+ "2": {
216
+ "name": "punctuation.separator.vtt"
217
+ },
218
+ "3": {
219
+ "patterns": [
220
+ {
221
+ "include": "#timestamp"
222
+ },
223
+ {
224
+ "name": "invalid.illegal.vtt",
225
+ "match": ".+"
226
+ }
227
+ ]
228
+ }
229
+ }
230
+ },
231
+ "cue_underline_span": {
232
+ "name": "meta.cue-underline-span.vtt"
233
+ },
234
+ "cue_voice_span": {
235
+ "name": "meta.cue-voice-span.vtt"
236
+ },
237
+ "file_body": {
238
+ "name": "meta.file-body.vtt",
239
+ "begin": "^(WEBVTT)(?:\\s+(.*))?$",
240
+ "patterns": [
241
+ {
242
+ "include": "#region_definition_block"
243
+ },
244
+ {
245
+ "include": "#style_block"
246
+ },
247
+ {
248
+ "include": "#comment_block"
249
+ },
250
+ {
251
+ "include": "#cue_block"
252
+ }
253
+ ],
254
+ "beginCaptures": {
255
+ "1": {
256
+ "name": "entity.name.section.webvtt.vtt"
257
+ },
258
+ "2": {
259
+ "name": "comment.line.character.vtt"
260
+ }
261
+ }
262
+ },
263
+ "html_character_reference": {
264
+ "name": "meta.html-character-reference.vtt"
265
+ },
266
+ "line_cue_setting": {
267
+ "name": "meta.line-cue-setting.vtt",
268
+ "match": "(line)(:)([^\\s]+)",
269
+ "captures": {
270
+ "1": {
271
+ "name": "support.type.line-cue-setting.vtt"
272
+ },
273
+ "2": {
274
+ "name": "punctuation.definition.colon.vtt"
275
+ },
276
+ "3": {
277
+ "patterns": [
278
+ {
279
+ "match": "(?:^|\\G)(.+?)(?:(,)(.+))?(?=$)",
280
+ "captures": {
281
+ "1": {
282
+ "patterns": [
283
+ {
284
+ "name": "constant.numeric.line-cue-setting.vtt",
285
+ "match": "(?:^|\\G)-?\\d+(?=$)"
286
+ },
287
+ {
288
+ "include": "#percentage"
289
+ },
290
+ {
291
+ "name": "invalid.illegal.vtt",
292
+ "match": ".+"
293
+ }
294
+ ]
295
+ },
296
+ "2": {
297
+ "name": "punctuation.separator.comma.vtt"
298
+ },
299
+ "3": {
300
+ "patterns": [
301
+ {
302
+ "name": "support.constant.line-cue-setting.vtt",
303
+ "match": "(?:^|\\G)(?:start|center|end)(?=$)"
304
+ },
305
+ {
306
+ "name": "invalid.illegal.vtt",
307
+ "match": ".+"
308
+ }
309
+ ]
310
+ }
311
+ }
312
+ }
313
+ ]
314
+ }
315
+ }
316
+ },
317
+ "percentage": {
318
+ "name": "meta.percentage.vtt",
319
+ "match": "(?:^|\\G)\\d+(?:\\.\\d+)?%(?=$)",
320
+ "captures": {
321
+ "0": {
322
+ "name": "constant.numeric.percentage.vtt"
323
+ }
324
+ }
325
+ },
326
+ "position_cue_setting": {
327
+ "name": "meta.position-cue-setting.vtt",
328
+ "match": "(position)(:)([^\\s]+)",
329
+ "captures": {
330
+ "1": {
331
+ "name": "support.type.position-cue-setting.vtt"
332
+ },
333
+ "2": {
334
+ "name": "punctuation.definition.colon.vtt"
335
+ },
336
+ "3": {
337
+ "patterns": [
338
+ {
339
+ "match": "(?:^|\\G)(.+?)(?:(,)(.+))?(?=$)",
340
+ "captures": {
341
+ "1": {
342
+ "patterns": [
343
+ {
344
+ "include": "#percentage"
345
+ },
346
+ {
347
+ "name": "invalid.illegal.vtt",
348
+ "match": ".+"
349
+ }
350
+ ]
351
+ },
352
+ "2": {
353
+ "name": "punctuation.separator.comma.vtt"
354
+ },
355
+ "3": {
356
+ "patterns": [
357
+ {
358
+ "name": "support.constant.position-cue-setting.vtt",
359
+ "match": "(?:^|\\G)(?:line-left|center|line-right)(?=$)"
360
+ },
361
+ {
362
+ "name": "invalid.illegal.vtt",
363
+ "match": ".+"
364
+ }
365
+ ]
366
+ }
367
+ }
368
+ }
369
+ ]
370
+ }
371
+ }
372
+ },
373
+ "region_anchor_setting": {
374
+ "name": "meta.region-anchor-setting.vtt",
375
+ "match": "(regionanchor)(:)([^\\s]+)",
376
+ "captures": {
377
+ "1": {
378
+ "name": "support.type.region-anchor-setting.vtt"
379
+ },
380
+ "2": {
381
+ "name": "punctuation.definition.colon.vtt"
382
+ },
383
+ "3": {
384
+ "patterns": [
385
+ {
386
+ "match": "(.+)(,)(.+)",
387
+ "captures": {
388
+ "1": {
389
+ "patterns": [
390
+ {
391
+ "include": "#percentage"
392
+ }
393
+ ]
394
+ },
395
+ "2": {
396
+ "name": "punctuation.separator.comma.vtt"
397
+ },
398
+ "3": {
399
+ "patterns": [
400
+ {
401
+ "include": "#percentage"
402
+ }
403
+ ]
404
+ }
405
+ }
406
+ },
407
+ {
408
+ "name": "invalid.illegal.vtt",
409
+ "match": ".+"
410
+ }
411
+ ]
412
+ }
413
+ }
414
+ },
415
+ "region_cue_setting": {
416
+ "name": "meta.region-cue-setting.vtt",
417
+ "match": "(region)(:)([^\\s]+)",
418
+ "captures": {
419
+ "1": {
420
+ "name": "support.type.region-cue-setting.vtt"
421
+ },
422
+ "2": {
423
+ "name": "punctuation.definition.colon.vtt"
424
+ },
425
+ "3": {
426
+ "patterns": [
427
+ {
428
+ "name": "invalid.illegal.vtt",
429
+ "match": ".*--\u003e.*"
430
+ },
431
+ {
432
+ "name": "string.unquoted.region-cue-setting.vtt",
433
+ "match": "[^\\s]+"
434
+ }
435
+ ]
436
+ }
437
+ }
438
+ },
439
+ "region_definition_block": {
440
+ "name": "meta.region-definition-block.vtt",
441
+ "begin": "^(REGION)\\s*",
442
+ "end": "^$",
443
+ "patterns": [
444
+ {
445
+ "include": "#region_settings_list"
446
+ }
447
+ ],
448
+ "beginCaptures": {
449
+ "1": {
450
+ "name": "entity.name.section.region.vtt"
451
+ }
452
+ }
453
+ },
454
+ "region_identifier_setting": {
455
+ "name": "meta.region-identifier-setting.vtt",
456
+ "match": "(id)(:)([^\\s]+)",
457
+ "captures": {
458
+ "1": {
459
+ "name": "support.type.region-identifier-setting.vtt"
460
+ },
461
+ "2": {
462
+ "name": "punctuation.definition.colon.vtt"
463
+ },
464
+ "3": {
465
+ "patterns": [
466
+ {
467
+ "name": "invalid.illegal.vtt",
468
+ "match": ".*--\u003e.*"
469
+ },
470
+ {
471
+ "name": "string.unquoted.region-identifier-setting.vtt",
472
+ "match": "[^\\s]+"
473
+ }
474
+ ]
475
+ }
476
+ }
477
+ },
478
+ "region_lines_setting": {
479
+ "name": "meta.region-lines-setting.vtt",
480
+ "match": "(lines)(:)([^\\s]+)",
481
+ "captures": {
482
+ "1": {
483
+ "name": "support.type.region-lines-setting.vtt"
484
+ },
485
+ "2": {
486
+ "name": "punctuation.definition.colon.vtt"
487
+ },
488
+ "3": {
489
+ "patterns": [
490
+ {
491
+ "name": "constant.numeric.region-lines-setting.vtt",
492
+ "match": "\\d+"
493
+ },
494
+ {
495
+ "name": "invalid.illegal.vtt",
496
+ "match": ".+"
497
+ }
498
+ ]
499
+ }
500
+ }
501
+ },
502
+ "region_scroll_setting": {
503
+ "name": "meta.region-scroll-setting.vtt",
504
+ "match": "(scroll)(:)([^\\s]+)",
505
+ "captures": {
506
+ "1": {
507
+ "name": "support.type.region-scroll-setting.vtt"
508
+ },
509
+ "2": {
510
+ "name": "punctuation.definition.colon.vtt"
511
+ },
512
+ "3": {
513
+ "patterns": [
514
+ {
515
+ "name": "support.constant.region-scroll-setting.vtt",
516
+ "match": "(?:^|\\G)up(?=$)"
517
+ },
518
+ {
519
+ "name": "invalid.illegal.vtt",
520
+ "match": ".+"
521
+ }
522
+ ]
523
+ }
524
+ }
525
+ },
526
+ "region_settings_list": {
527
+ "name": "meta.region-settings-list.vtt",
528
+ "patterns": [
529
+ {
530
+ "include": "#region_identifier_setting"
531
+ },
532
+ {
533
+ "include": "#region_width_setting"
534
+ },
535
+ {
536
+ "include": "#region_lines_setting"
537
+ },
538
+ {
539
+ "include": "#region_anchor_setting"
540
+ },
541
+ {
542
+ "include": "#region_viewport_anchor_setting"
543
+ },
544
+ {
545
+ "include": "#region_scroll_setting"
546
+ }
547
+ ]
548
+ },
549
+ "region_viewport_anchor_setting": {
550
+ "name": "meta.region-viewport-anchor-setting.vtt",
551
+ "match": "(viewportanchor)(:)([^\\s]+)",
552
+ "captures": {
553
+ "1": {
554
+ "name": "support.type.region-viewport-anchor-setting.vtt"
555
+ },
556
+ "2": {
557
+ "name": "punctuation.definition.colon.vtt"
558
+ },
559
+ "3": {
560
+ "patterns": [
561
+ {
562
+ "match": "(.*)(,)(.*)",
563
+ "captures": {
564
+ "1": {
565
+ "patterns": [
566
+ {
567
+ "include": "#percentage"
568
+ }
569
+ ]
570
+ },
571
+ "2": {
572
+ "name": "punctuation.separator.comma.vtt"
573
+ },
574
+ "3": {
575
+ "patterns": [
576
+ {
577
+ "include": "#percentage"
578
+ }
579
+ ]
580
+ }
581
+ }
582
+ },
583
+ {
584
+ "name": "invalid.illegal.vtt",
585
+ "match": ".+"
586
+ }
587
+ ]
588
+ }
589
+ }
590
+ },
591
+ "region_width_setting": {
592
+ "name": "meta.region-width-setting.vtt",
593
+ "match": "(width)(:)([^\\s]+)",
594
+ "captures": {
595
+ "1": {
596
+ "name": "support.type.region-width-setting.vtt"
597
+ },
598
+ "2": {
599
+ "name": "punctuation.definition.colon.vtt"
600
+ },
601
+ "3": {
602
+ "patterns": [
603
+ {
604
+ "include": "#percentage"
605
+ },
606
+ {
607
+ "name": "invalid.illegal.vtt",
608
+ "match": ".+"
609
+ }
610
+ ]
611
+ }
612
+ }
613
+ },
614
+ "size_cue_setting": {
615
+ "name": "meta.size-cue-setting.vtt",
616
+ "match": "(size)(:)([^\\s]+)",
617
+ "captures": {
618
+ "1": {
619
+ "name": "support.type.size-cue-setting.vtt"
620
+ },
621
+ "2": {
622
+ "name": "punctuation.definition.colon.vtt"
623
+ },
624
+ "3": {
625
+ "patterns": [
626
+ {
627
+ "include": "#percentage"
628
+ },
629
+ {
630
+ "name": "invalid.illegal.vtt",
631
+ "match": ".+"
632
+ }
633
+ ]
634
+ }
635
+ }
636
+ },
637
+ "style_block": {
638
+ "name": "meta.style-block.vtt",
639
+ "begin": "^(STYLE)\\s*",
640
+ "end": "^$",
641
+ "patterns": [
642
+ {
643
+ "name": "invalid.illegal.vtt",
644
+ "match": ".*--\u003e.*"
645
+ },
646
+ {
647
+ "include": "source.css"
648
+ }
649
+ ],
650
+ "beginCaptures": {
651
+ "1": {
652
+ "name": "entity.name.section.style.vtt"
653
+ }
654
+ }
655
+ },
656
+ "timestamp": {
657
+ "name": "meta.timestamp.vtt",
658
+ "match": "(?:^|\\G)(?:(\\d{2,})(:))?([0-5]\\d)(:)([0-5]\\d\\.\\d{3})(?=$)",
659
+ "captures": {
660
+ "1": {
661
+ "name": "constant.numeric.time.hour.vtt"
662
+ },
663
+ "2": {
664
+ "name": "punctuation.separator.colon.vtt"
665
+ },
666
+ "3": {
667
+ "name": "constant.numeric.time.minute.vtt"
668
+ },
669
+ "4": {
670
+ "name": "punctuation.separator.colon.vtt"
671
+ },
672
+ "5": {
673
+ "name": "constant.numeric.time.second.vtt"
674
+ }
675
+ }
676
+ },
677
+ "vertical_text_cue_setting": {
678
+ "name": "meta.vertical-text-cue-setting.vtt",
679
+ "match": "(vertical)(:)([^\\s]+)",
680
+ "captures": {
681
+ "1": {
682
+ "name": "support.type.vertical-text-cue-setting.vtt"
683
+ },
684
+ "2": {
685
+ "name": "punctuation.definition.colon.vtt"
686
+ },
687
+ "3": {
688
+ "patterns": [
689
+ {
690
+ "name": "support.constant.vertical-text-cue-setting.vtt",
691
+ "match": "(?:^|\\G)(?:rl|lr)(?=$)"
692
+ },
693
+ {
694
+ "name": "invalid.illegal.vtt",
695
+ "match": ".+"
696
+ }
697
+ ]
698
+ }
699
+ }
700
+ }
701
+ }
702
+ }