github-linguist 7.6.1 → 7.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/bin/github-linguist +17 -4
- data/grammars/annotation.liquidhaskell.haskell.json +58 -11
- data/grammars/etc.json +212 -3
- data/grammars/hidden.manref.json +29 -0
- data/grammars/hint.haskell.json +58 -11
- data/grammars/hint.message.haskell.json +58 -11
- data/grammars/hint.type.haskell.json +58 -11
- data/grammars/injections.etc.json +601 -1
- data/grammars/markdown.plantuml.codeblock.json +26 -0
- data/grammars/source.4dm.json +1100 -0
- data/grammars/source.abap.json +7 -7
- data/grammars/source.abnf.json +23 -1
- data/grammars/source.agda.json +32 -202
- data/grammars/source.ahk.json +9 -5
- data/grammars/source.angelscript.json +1 -1
- data/grammars/source.ballerina.json +54 -18
- data/grammars/source.chapel.json +4 -4
- data/grammars/source.csound.json +1 -1
- data/grammars/source.css.json +2 -2
- data/grammars/source.css.scss.json +164 -15
- data/grammars/source.curlrc.json +869 -65
- data/grammars/source.dart.json +58 -32
- data/grammars/source.dircolors.json +137 -0
- data/grammars/source.direct-x.json +135 -0
- data/grammars/source.ebnf.json +67 -39
- data/grammars/source.editorconfig.json +23 -5
- data/grammars/source.elixir.json +51 -0
- data/grammars/source.elm.json +1 -1
- data/grammars/source.emacs.lisp.json +10 -0
- data/grammars/source.faust.json +119 -0
- data/grammars/source.gcode.json +166 -8
- data/grammars/source.gfm.json +1 -1
- data/grammars/source.gitconfig.json +1 -1
- data/grammars/source.hack.json +200 -98
- data/grammars/source.haskell.json +58 -11
- data/grammars/source.hlsl.json +9 -5
- data/grammars/source.hosts.json +40 -0
- data/grammars/source.hsig.json +58 -11
- data/grammars/source.hx.json +4 -0
- data/grammars/source.igor.json +46 -2
- data/grammars/source.ini.npmrc.json +311 -0
- data/grammars/source.inno.json +133 -0
- data/grammars/source.inputrc.json +500 -0
- data/grammars/source.js.json +4 -4
- data/grammars/source.julia.json +69 -23
- data/grammars/source.kotlin.json +1 -1
- data/grammars/source.lean.json +19 -3
- data/grammars/source.lean.markdown.json +2598 -0
- data/grammars/source.lex.json +4 -4
- data/grammars/source.m4.json +141 -99
- data/grammars/source.man-conf.json +46 -34
- data/grammars/source.matlab.json +437 -184
- data/grammars/source.mcfunction-snapshot.json +21388 -561
- data/grammars/source.mcfunction.json +55 -5
- data/grammars/source.meson.json +1 -1
- data/grammars/source.mlir.json +37 -317
- data/grammars/source.mrc.json +740 -0
- data/grammars/source.nasl.json +155 -0
- data/grammars/source.nextflow.json +2 -2
- data/grammars/source.odin-ehr.json +806 -0
- data/grammars/source.odin.json +402 -0
- data/grammars/source.opts.json +12 -2
- data/grammars/source.p4.json +21 -5
- data/grammars/source.prisma.json +435 -0
- data/grammars/source.python.json +2 -0
- data/grammars/source.qasm.json +66 -0
- data/grammars/source.ql.json +1408 -0
- data/grammars/source.reason.json +28 -16
- data/grammars/source.rego.json +124 -0
- data/grammars/source.sass.json +158 -3
- data/grammars/source.scala.json +53 -18
- data/grammars/source.ssh-config.json +1 -14
- data/grammars/source.swift.json +162 -2
- data/grammars/source.sy.json +2088 -183
- data/grammars/source.terraform.json +576 -132
- data/grammars/source.tnsaudit.json +256 -0
- data/grammars/source.ts.json +159 -51
- data/grammars/source.tsx.json +160 -52
- data/grammars/source.v.json +559 -764
- data/grammars/source.vim-snippet.json +645 -0
- data/grammars/source.viml.json +6 -6
- data/grammars/source.webassembly.json +10 -0
- data/grammars/source.wgetrc.json +1640 -0
- data/grammars/source.wsd.json +775 -0
- data/grammars/source.zig.json +169 -304
- data/grammars/text.html.php.blade.json +1 -1
- data/grammars/text.html.riot.json +788 -0
- data/grammars/text.muse.json +1471 -0
- data/grammars/text.tex.latex.haskell.json +58 -11
- data/grammars/text.vim-help.json +383 -0
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/blob_helper.rb +4 -2
- data/lib/linguist/file_blob.rb +1 -1
- data/lib/linguist/generated.rb +60 -13
- data/lib/linguist/heuristics.yml +64 -4
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +336 -45
- data/lib/linguist/lazy_blob.rb +10 -10
- data/lib/linguist/linguist.bundle +0 -0
- data/lib/linguist/samples.json +43560 -31457
- data/lib/linguist/shebang.rb +5 -3
- data/lib/linguist/vendor.yml +9 -0
- metadata +29 -10
- data/grammars/source.LS.json +0 -85
- data/grammars/source.MCPOST.json +0 -54
- data/grammars/source.MOD.json +0 -55
- data/grammars/source.apt.json +0 -18
- data/grammars/source.jlex.json +0 -322
- data/grammars/source.yaml-ext.json +0 -324
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: e83ceb8bf77137817f34d6e9f7f03c98848810f05d5b302041890d0cec6d8a10
         | 
| 4 | 
            +
              data.tar.gz: 5958359cc33f77f56c59166000692ce9f48f8b502520f1d1b1fcfd5ff27e1e93
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: da8c5a07b3b3bbb1e9beefa1d968fbfb6af90ce4da450d7993f53d72bda4f7cfd50acb5d24b248f7042370c025049dca3bc97a005c9ebe331f8db5cf3bc05675
         | 
| 7 | 
            +
              data.tar.gz: 689b968ac78b67169813cceba5a2cc8471ba844b8e040eadf3560d6f0ba651e47a1448877fc2c34ade13f99905a302ad12b6d631c4fb2deb85f0b18c3b560be6
         | 
    
        data/bin/github-linguist
    CHANGED
    
    | @@ -26,6 +26,7 @@ json_breakdown = true if ARGV[0] == "--json" | |
| 26 26 | 
             
            if File.directory?(path)
         | 
| 27 27 | 
             
              rugged = Rugged::Repository.new(path)
         | 
| 28 28 | 
             
              repo = Linguist::Repository.new(rugged, rugged.head.target_id)
         | 
| 29 | 
            +
             | 
| 29 30 | 
             
              if !json_breakdown
         | 
| 30 31 | 
             
                repo.languages.sort_by { |_, size| size }.reverse.each do |language, size|
         | 
| 31 32 | 
             
                  percentage = ((size / repo.size.to_f) * 100)
         | 
| @@ -48,6 +49,7 @@ if File.directory?(path) | |
| 48 49 | 
             
              end
         | 
| 49 50 | 
             
            elsif File.file?(path)
         | 
| 50 51 | 
             
              blob = Linguist::FileBlob.new(path, Dir.pwd)
         | 
| 52 | 
            +
             | 
| 51 53 | 
             
              type = if blob.text?
         | 
| 52 54 | 
             
                'Text'
         | 
| 53 55 | 
             
              elsif blob.image?
         | 
| @@ -56,10 +58,21 @@ elsif File.file?(path) | |
| 56 58 | 
             
                'Binary'
         | 
| 57 59 | 
             
              end
         | 
| 58 60 |  | 
| 59 | 
            -
               | 
| 60 | 
            -
             | 
| 61 | 
            -
             | 
| 62 | 
            -
             | 
| 61 | 
            +
              if json_breakdown
         | 
| 62 | 
            +
                puts JSON.generate( { blob.name =>  {
         | 
| 63 | 
            +
                                                      :lines => blob.loc,
         | 
| 64 | 
            +
                                                      :sloc => blob.sloc,
         | 
| 65 | 
            +
                                                      :type => type,
         | 
| 66 | 
            +
                                                      :mime_type => blob.mime_type,
         | 
| 67 | 
            +
                                                      :language => blob.language
         | 
| 68 | 
            +
                                                    }
         | 
| 69 | 
            +
                                    } )
         | 
| 70 | 
            +
              else
         | 
| 71 | 
            +
                puts "#{blob.name}: #{blob.loc} lines (#{blob.sloc} sloc)"
         | 
| 72 | 
            +
                puts "  type:      #{type}"
         | 
| 73 | 
            +
                puts "  mime type: #{blob.mime_type}"
         | 
| 74 | 
            +
                puts "  language:  #{blob.language}"
         | 
| 75 | 
            +
              end
         | 
| 63 76 |  | 
| 64 77 | 
             
              if blob.large?
         | 
| 65 78 | 
             
                puts "  blob is too large to be shown"
         | 
| @@ -251,7 +251,7 @@ | |
| 251 251 | 
             
                    {
         | 
| 252 252 | 
             
                      "name": "meta.ctor.type-declaration.haskell",
         | 
| 253 253 | 
             
                      "contentName": "meta.type-signature.haskell",
         | 
| 254 | 
            -
                      "begin": "(?:\\G(?:\\s*\\w+\\s)?|^)([ \\t]*)(?:(?:((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))",
         | 
| 254 | 
            +
                      "begin": "(?:\\G(?:\\s*\\w+\\s)?|^)([ \\t]*)(?:(?:((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))",
         | 
| 255 255 | 
             
                      "end": "(?:^(?!\\1[ \\t]|[ \\t]*$)|(?=@-}))",
         | 
| 256 256 | 
             
                      "patterns": [
         | 
| 257 257 | 
             
                        {
         | 
| @@ -286,6 +286,9 @@ | |
| 286 286 | 
             
                        {
         | 
| 287 287 | 
             
                          "include": "#comments"
         | 
| 288 288 | 
             
                        },
         | 
| 289 | 
            +
                        {
         | 
| 290 | 
            +
                          "include": "#string"
         | 
| 291 | 
            +
                        },
         | 
| 289 292 | 
             
                        {
         | 
| 290 293 | 
             
                          "include": "#where"
         | 
| 291 294 | 
             
                        },
         | 
| @@ -590,7 +593,7 @@ | |
| 590 593 | 
             
                    {
         | 
| 591 594 | 
             
                      "name": "meta.function.type-declaration.haskell",
         | 
| 592 595 | 
             
                      "contentName": "meta.type-signature.haskell",
         | 
| 593 | 
            -
                      "begin": "(?:\\G(?:\\s*\\w+\\s)?|^)([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))",
         | 
| 596 | 
            +
                      "begin": "(?:\\G(?:\\s*\\w+\\s)?|^)([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))",
         | 
| 594 597 | 
             
                      "end": "(?:^(?!\\1[ \\t]|[ \\t]*$)|(?=@-}))|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))",
         | 
| 595 598 | 
             
                      "patterns": [
         | 
| 596 599 | 
             
                        {
         | 
| @@ -812,7 +815,7 @@ | |
| 812 815 | 
             
                  "patterns": [
         | 
| 813 816 | 
             
                    {
         | 
| 814 817 | 
             
                      "name": "entity.name.function.operator.haskell",
         | 
| 815 | 
            -
                      "match": "(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))",
         | 
| 818 | 
            +
                      "match": "(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))",
         | 
| 816 819 | 
             
                      "captures": {
         | 
| 817 820 | 
             
                        "0": {
         | 
| 818 821 | 
             
                          "patterns": [
         | 
| @@ -886,7 +889,7 @@ | |
| 886 889 | 
             
                    {
         | 
| 887 890 | 
             
                      "name": "meta.function.type-declaration.haskell",
         | 
| 888 891 | 
             
                      "contentName": "meta.type-signature.haskell",
         | 
| 889 | 
            -
                      "begin": "(?:\\G(?:\\s*\\w+\\s)?|^)([ \\t]*)(((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*))\\s*$",
         | 
| 892 | 
            +
                      "begin": "(?:\\G(?:\\s*\\w+\\s)?|^)([ \\t]*)(((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*))\\s*$",
         | 
| 890 893 | 
             
                      "end": "(?:^(?!\\1[ \\t]|[ \\t]*$)|(?=@-}))",
         | 
| 891 894 | 
             
                      "patterns": [
         | 
| 892 895 | 
             
                        {
         | 
| @@ -1070,9 +1073,12 @@ | |
| 1070 1073 | 
             
                        {
         | 
| 1071 1074 | 
             
                          "include": "#comma"
         | 
| 1072 1075 | 
             
                        },
         | 
| 1076 | 
            +
                        {
         | 
| 1077 | 
            +
                          "include": "#infix_op"
         | 
| 1078 | 
            +
                        },
         | 
| 1073 1079 | 
             
                        {
         | 
| 1074 1080 | 
             
                          "name": "meta.other.constructor-list.haskell",
         | 
| 1075 | 
            -
                          "begin": " | 
| 1081 | 
            +
                          "begin": "\\(",
         | 
| 1076 1082 | 
             
                          "end": "\\)",
         | 
| 1077 1083 | 
             
                          "patterns": [
         | 
| 1078 1084 | 
             
                            {
         | 
| @@ -1098,9 +1104,6 @@ | |
| 1098 1104 | 
             
                              "include": "#infix_op"
         | 
| 1099 1105 | 
             
                            }
         | 
| 1100 1106 | 
             
                          ]
         | 
| 1101 | 
            -
                        },
         | 
| 1102 | 
            -
                        {
         | 
| 1103 | 
            -
                          "include": "#infix_op"
         | 
| 1104 1107 | 
             
                        }
         | 
| 1105 1108 | 
             
                      ],
         | 
| 1106 1109 | 
             
                      "applyEndPatternLast": true
         | 
| @@ -1242,8 +1245,8 @@ | |
| 1242 1245 | 
             
                    {
         | 
| 1243 1246 | 
             
                      "name": "meta.record-field.type-declaration.haskell",
         | 
| 1244 1247 | 
             
                      "contentName": "meta.type-signature.haskell",
         | 
| 1245 | 
            -
                      "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))",
         | 
| 1246 | 
            -
                      "end": "(?=(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))|})",
         | 
| 1248 | 
            +
                      "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))",
         | 
| 1249 | 
            +
                      "end": "(?=(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))|})",
         | 
| 1247 1250 | 
             
                      "patterns": [
         | 
| 1248 1251 | 
             
                        {
         | 
| 1249 1252 | 
             
                          "include": "#type_signature"
         | 
| @@ -1335,7 +1338,7 @@ | |
| 1335 1338 | 
             
                "scoped_type_override": {
         | 
| 1336 1339 | 
             
                  "patterns": [
         | 
| 1337 1340 | 
             
                    {
         | 
| 1338 | 
            -
                      "match": "(?:\\G(?:\\s*\\w+\\s)?|^)([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))).|{-.*?-})*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))",
         | 
| 1341 | 
            +
                      "match": "(?:\\G(?:\\s*\\w+\\s)?|^)([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))).|{-.*?-})*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))",
         | 
| 1339 1342 | 
             
                      "captures": {
         | 
| 1340 1343 | 
             
                        "2": {
         | 
| 1341 1344 | 
             
                          "patterns": [
         | 
| @@ -1716,6 +1719,12 @@ | |
| 1716 1719 | 
             
                    {
         | 
| 1717 1720 | 
             
                      "include": "#via_list"
         | 
| 1718 1721 | 
             
                    },
         | 
| 1722 | 
            +
                    {
         | 
| 1723 | 
            +
                      "include": "#via_list_newline"
         | 
| 1724 | 
            +
                    },
         | 
| 1725 | 
            +
                    {
         | 
| 1726 | 
            +
                      "include": "#via_indent"
         | 
| 1727 | 
            +
                    },
         | 
| 1719 1728 | 
             
                    {
         | 
| 1720 1729 | 
             
                      "include": "#via_simple"
         | 
| 1721 1730 | 
             
                    },
         | 
| @@ -1724,6 +1733,25 @@ | |
| 1724 1733 | 
             
                    }
         | 
| 1725 1734 | 
             
                  ]
         | 
| 1726 1735 | 
             
                },
         | 
| 1736 | 
            +
                "via_indent": {
         | 
| 1737 | 
            +
                  "patterns": [
         | 
| 1738 | 
            +
                    {
         | 
| 1739 | 
            +
                      "name": "meta.via.haskell",
         | 
| 1740 | 
            +
                      "begin": "(?:\\G(?:\\s*\\w+\\s)?|^)([ \\t]*)(via)\\s*",
         | 
| 1741 | 
            +
                      "end": "(?:^(?!\\1|[ \\t]*$)|(?=@-}))",
         | 
| 1742 | 
            +
                      "patterns": [
         | 
| 1743 | 
            +
                        {
         | 
| 1744 | 
            +
                          "include": "#type_signature"
         | 
| 1745 | 
            +
                        }
         | 
| 1746 | 
            +
                      ],
         | 
| 1747 | 
            +
                      "beginCaptures": {
         | 
| 1748 | 
            +
                        "2": {
         | 
| 1749 | 
            +
                          "name": "keyword.other.haskell"
         | 
| 1750 | 
            +
                        }
         | 
| 1751 | 
            +
                      }
         | 
| 1752 | 
            +
                    }
         | 
| 1753 | 
            +
                  ]
         | 
| 1754 | 
            +
                },
         | 
| 1727 1755 | 
             
                "via_keyword": {
         | 
| 1728 1756 | 
             
                  "patterns": [
         | 
| 1729 1757 | 
             
                    {
         | 
| @@ -1756,6 +1784,25 @@ | |
| 1756 1784 | 
             
                    }
         | 
| 1757 1785 | 
             
                  ]
         | 
| 1758 1786 | 
             
                },
         | 
| 1787 | 
            +
                "via_list_newline": {
         | 
| 1788 | 
            +
                  "patterns": [
         | 
| 1789 | 
            +
                    {
         | 
| 1790 | 
            +
                      "name": "meta.via.haskell",
         | 
| 1791 | 
            +
                      "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*",
         | 
| 1792 | 
            +
                      "end": "$",
         | 
| 1793 | 
            +
                      "patterns": [
         | 
| 1794 | 
            +
                        {
         | 
| 1795 | 
            +
                          "include": "#type_signature"
         | 
| 1796 | 
            +
                        }
         | 
| 1797 | 
            +
                      ],
         | 
| 1798 | 
            +
                      "beginCaptures": {
         | 
| 1799 | 
            +
                        "1": {
         | 
| 1800 | 
            +
                          "name": "keyword.other.haskell"
         | 
| 1801 | 
            +
                        }
         | 
| 1802 | 
            +
                      }
         | 
| 1803 | 
            +
                    }
         | 
| 1804 | 
            +
                  ]
         | 
| 1805 | 
            +
                },
         | 
| 1759 1806 | 
             
                "via_simple": {
         | 
| 1760 1807 | 
             
                  "patterns": [
         | 
| 1761 1808 | 
             
                    {
         | 
    
        data/grammars/etc.json
    CHANGED
    
    | @@ -27,9 +27,6 @@ | |
| 27 27 | 
             
                },
         | 
| 28 28 | 
             
                {
         | 
| 29 29 | 
             
                  "include": "#dot"
         | 
| 30 | 
            -
                },
         | 
| 31 | 
            -
                {
         | 
| 32 | 
            -
                  "include": "#bareword"
         | 
| 33 30 | 
             
                }
         | 
| 34 31 | 
             
              ],
         | 
| 35 32 | 
             
              "repository": {
         | 
| @@ -41,6 +38,42 @@ | |
| 41 38 | 
             
                  "name": "constant.logical.bool.boolean.${1:/downcase}",
         | 
| 42 39 | 
             
                  "match": "\\b(true|false|TRUE|FALSE)\\b"
         | 
| 43 40 | 
             
                },
         | 
| 41 | 
            +
                "bracket": {
         | 
| 42 | 
            +
                  "patterns": [
         | 
| 43 | 
            +
                    {
         | 
| 44 | 
            +
                      "name": "punctuation.definition.bracket.curly.brace.begin",
         | 
| 45 | 
            +
                      "match": "\\{"
         | 
| 46 | 
            +
                    },
         | 
| 47 | 
            +
                    {
         | 
| 48 | 
            +
                      "name": "punctuation.definition.bracket.curly.brace.end",
         | 
| 49 | 
            +
                      "match": "\\}"
         | 
| 50 | 
            +
                    },
         | 
| 51 | 
            +
                    {
         | 
| 52 | 
            +
                      "name": "punctuation.definition.bracket.square.begin",
         | 
| 53 | 
            +
                      "match": "\\["
         | 
| 54 | 
            +
                    },
         | 
| 55 | 
            +
                    {
         | 
| 56 | 
            +
                      "name": "punctuation.definition.bracket.square.end",
         | 
| 57 | 
            +
                      "match": "\\]"
         | 
| 58 | 
            +
                    },
         | 
| 59 | 
            +
                    {
         | 
| 60 | 
            +
                      "name": "punctuation.definition.bracket.round.parenthesis.begin",
         | 
| 61 | 
            +
                      "match": "\\("
         | 
| 62 | 
            +
                    },
         | 
| 63 | 
            +
                    {
         | 
| 64 | 
            +
                      "name": "punctuation.definition.bracket.round.parenthesis.end",
         | 
| 65 | 
            +
                      "match": "\\)"
         | 
| 66 | 
            +
                    },
         | 
| 67 | 
            +
                    {
         | 
| 68 | 
            +
                      "name": "punctuation.definition.bracket.angle.begin",
         | 
| 69 | 
            +
                      "match": "\u003c"
         | 
| 70 | 
            +
                    },
         | 
| 71 | 
            +
                    {
         | 
| 72 | 
            +
                      "name": "punctuation.definition.bracket.angle.end",
         | 
| 73 | 
            +
                      "match": "\u003e"
         | 
| 74 | 
            +
                    }
         | 
| 75 | 
            +
                  ]
         | 
| 76 | 
            +
                },
         | 
| 44 77 | 
             
                "colon": {
         | 
| 45 78 | 
             
                  "name": "keyword.operator.assignment.key-value.colon",
         | 
| 46 79 | 
             
                  "match": ":"
         | 
| @@ -50,6 +83,13 @@ | |
| 50 83 | 
             
                  "match": ","
         | 
| 51 84 | 
             
                },
         | 
| 52 85 | 
             
                "comment": {
         | 
| 86 | 
            +
                  "patterns": [
         | 
| 87 | 
            +
                    {
         | 
| 88 | 
            +
                      "include": "#commentHash"
         | 
| 89 | 
            +
                    }
         | 
| 90 | 
            +
                  ]
         | 
| 91 | 
            +
                },
         | 
| 92 | 
            +
                "commentHash": {
         | 
| 53 93 | 
             
                  "name": "comment.line.number-sign",
         | 
| 54 94 | 
             
                  "begin": "#",
         | 
| 55 95 | 
             
                  "end": "$",
         | 
| @@ -59,10 +99,59 @@ | |
| 59 99 | 
             
                    }
         | 
| 60 100 | 
             
                  }
         | 
| 61 101 | 
             
                },
         | 
| 102 | 
            +
                "commentSemi": {
         | 
| 103 | 
            +
                  "name": "comment.line.semicolon",
         | 
| 104 | 
            +
                  "begin": ";+",
         | 
| 105 | 
            +
                  "end": "$",
         | 
| 106 | 
            +
                  "beginCaptures": {
         | 
| 107 | 
            +
                    "0": {
         | 
| 108 | 
            +
                      "name": "punctuation.definition.comment"
         | 
| 109 | 
            +
                    }
         | 
| 110 | 
            +
                  }
         | 
| 111 | 
            +
                },
         | 
| 112 | 
            +
                "commentSlash": {
         | 
| 113 | 
            +
                  "name": "comment.line.double-slash",
         | 
| 114 | 
            +
                  "begin": "//",
         | 
| 115 | 
            +
                  "end": "$",
         | 
| 116 | 
            +
                  "beginCaptures": {
         | 
| 117 | 
            +
                    "0": {
         | 
| 118 | 
            +
                      "name": "punctuation.definition.comment"
         | 
| 119 | 
            +
                    }
         | 
| 120 | 
            +
                  }
         | 
| 121 | 
            +
                },
         | 
| 122 | 
            +
                "dash": {
         | 
| 123 | 
            +
                  "name": "punctuation.delimiter.separator.dash.hyphen",
         | 
| 124 | 
            +
                  "match": "-"
         | 
| 125 | 
            +
                },
         | 
| 62 126 | 
             
                "dot": {
         | 
| 63 127 | 
             
                  "name": "punctuation.delimiter.separator.property.period.dot",
         | 
| 64 128 | 
             
                  "match": "\\."
         | 
| 65 129 | 
             
                },
         | 
| 130 | 
            +
                "dotPair": {
         | 
| 131 | 
            +
                  "name": "keyword.operator.punctuation.dots.splat.range.spread.rest",
         | 
| 132 | 
            +
                  "match": "\\.\\.|‥"
         | 
| 133 | 
            +
                },
         | 
| 134 | 
            +
                "dotTrail": {
         | 
| 135 | 
            +
                  "name": "punctuation.delimiter.separator.dotted.border.leader.dots",
         | 
| 136 | 
            +
                  "match": "\\.{4,}"
         | 
| 137 | 
            +
                },
         | 
| 138 | 
            +
                "dots": {
         | 
| 139 | 
            +
                  "patterns": [
         | 
| 140 | 
            +
                    {
         | 
| 141 | 
            +
                      "include": "#ellipsis"
         | 
| 142 | 
            +
                    },
         | 
| 143 | 
            +
                    {
         | 
| 144 | 
            +
                      "include": "#dotPair"
         | 
| 145 | 
            +
                    },
         | 
| 146 | 
            +
                    {
         | 
| 147 | 
            +
                      "include": "#dot"
         | 
| 148 | 
            +
                    }
         | 
| 149 | 
            +
                  ]
         | 
| 150 | 
            +
                },
         | 
| 151 | 
            +
                "ellipsis": {
         | 
| 152 | 
            +
                  "name": "keyword.operator.punctuation.ellipsis.splat.range.spread.rest",
         | 
| 153 | 
            +
                  "match": "\\.{3}|…"
         | 
| 154 | 
            +
                },
         | 
| 66 155 | 
             
                "eql": {
         | 
| 67 156 | 
             
                  "name": "keyword.operator.assignment.key-value.equals-sign",
         | 
| 68 157 | 
             
                  "match": "="
         | 
| @@ -94,6 +183,14 @@ | |
| 94 183 | 
             
                  "name": "constant.numeric.float.real.decimal.dec",
         | 
| 95 184 | 
             
                  "match": "[-+]?(?:[0-9]*\\.[0-9]+|[0-9]+\\.)++"
         | 
| 96 185 | 
             
                },
         | 
| 186 | 
            +
                "hex": {
         | 
| 187 | 
            +
                  "name": "constant.numeric.integer.int.hexadecimal.hex",
         | 
| 188 | 
            +
                  "match": "[-+]?[A-Fa-f0-9]+"
         | 
| 189 | 
            +
                },
         | 
| 190 | 
            +
                "hexNoSign": {
         | 
| 191 | 
            +
                  "name": "constant.numeric.integer.int.hexadecimal.hex",
         | 
| 192 | 
            +
                  "match": "[A-Fa-f0-9]+"
         | 
| 193 | 
            +
                },
         | 
| 97 194 | 
             
                "int": {
         | 
| 98 195 | 
             
                  "patterns": [
         | 
| 99 196 | 
             
                    {
         | 
| @@ -112,6 +209,19 @@ | |
| 112 209 | 
             
                  "name": "constant.numeric.integer.int.decimal.dec",
         | 
| 113 210 | 
             
                  "match": "[-+]?[0-9]+"
         | 
| 114 211 | 
             
                },
         | 
| 212 | 
            +
                "ip": {
         | 
| 213 | 
            +
                  "name": "constant.numeric.other.ip-address",
         | 
| 214 | 
            +
                  "match": "(?:\\d+\\.){3,}\\d+(?=\\s|$)",
         | 
| 215 | 
            +
                  "captures": {
         | 
| 216 | 
            +
                    "0": {
         | 
| 217 | 
            +
                      "patterns": [
         | 
| 218 | 
            +
                        {
         | 
| 219 | 
            +
                          "include": "#dot"
         | 
| 220 | 
            +
                        }
         | 
| 221 | 
            +
                      ]
         | 
| 222 | 
            +
                    }
         | 
| 223 | 
            +
                  }
         | 
| 224 | 
            +
                },
         | 
| 115 225 | 
             
                "num": {
         | 
| 116 226 | 
             
                  "patterns": [
         | 
| 117 227 | 
             
                    {
         | 
| @@ -171,6 +281,105 @@ | |
| 171 281 | 
             
                      "name": "punctuation.definition.string.end"
         | 
| 172 282 | 
             
                    }
         | 
| 173 283 | 
             
                  }
         | 
| 284 | 
            +
                },
         | 
| 285 | 
            +
                "url": {
         | 
| 286 | 
            +
                  "patterns": [
         | 
| 287 | 
            +
                    {
         | 
| 288 | 
            +
                      "match": "(?x)\n(\"|'|\\b)\n(\n\t# Protocol\n\t( https?\n\t| s?ftp\n\t| ftps\n\t| file\n\t| wss?\n\t| smb\n\t| git (?:\\+https?)?\n\t| ssh\n\t| rsync\n\t| afp\n\t| nfs\n\t| (?:x-)?man(?:-page)?\n\t| gopher\n\t| txmt\n\t| issue\n\t| atom\n\t) ://\n\t\n\t# Path specifier\n\t(?:\n\t\t(?! \\#\\w*\\#)\n\t\t(?: [-:\\@\\w.,~%+_/?=\u0026\\#;|!])\n\t)+\n\t\n\t# Don't include trailing punctuation\n\t(?\u003c![-.,?:\\#;])\n)\n(\\1)",
         | 
| 289 | 
            +
                      "captures": {
         | 
| 290 | 
            +
                        "1": {
         | 
| 291 | 
            +
                          "name": "punctuation.definition.link.begin.url"
         | 
| 292 | 
            +
                        },
         | 
| 293 | 
            +
                        "2": {
         | 
| 294 | 
            +
                          "name": "constant.other.reference.link.underline.$3.url"
         | 
| 295 | 
            +
                        },
         | 
| 296 | 
            +
                        "4": {
         | 
| 297 | 
            +
                          "name": "punctuation.definition.link.end.url"
         | 
| 298 | 
            +
                        }
         | 
| 299 | 
            +
                      }
         | 
| 300 | 
            +
                    },
         | 
| 301 | 
            +
                    {
         | 
| 302 | 
            +
                      "match": "(?x)\n(\"|'|\\b)\n(\n\tmailto (:)\n\t(?:\n\t\t(?! \\#\\w*\\#)\n\t\t(?: [-:@\\w.,~%+_/?=\u0026\\#;|!])\n\t)+\n\t(?\u003c![-.,?:\\#;])\n)\n(\\1)",
         | 
| 303 | 
            +
                      "captures": {
         | 
| 304 | 
            +
                        "1": {
         | 
| 305 | 
            +
                          "name": "punctuation.definition.link.begin.url"
         | 
| 306 | 
            +
                        },
         | 
| 307 | 
            +
                        "2": {
         | 
| 308 | 
            +
                          "name": "constant.other.reference.link.underline.mailto.url"
         | 
| 309 | 
            +
                        },
         | 
| 310 | 
            +
                        "3": {
         | 
| 311 | 
            +
                          "name": "punctuation.separator.delimiter.scheme.url"
         | 
| 312 | 
            +
                        },
         | 
| 313 | 
            +
                        "4": {
         | 
| 314 | 
            +
                          "name": "punctuation.definition.link.end.url"
         | 
| 315 | 
            +
                        }
         | 
| 316 | 
            +
                      }
         | 
| 317 | 
            +
                    }
         | 
| 318 | 
            +
                  ]
         | 
| 319 | 
            +
                },
         | 
| 320 | 
            +
                "version": {
         | 
| 321 | 
            +
                  "name": "constant.other.version-string",
         | 
| 322 | 
            +
                  "match": "(?x)\n(\"|'|\\b)\n([vV]?)\n(0 | [1-9]\\d*) (\\.)\n(0 | [1-9]\\d*) (\\.)\n(0 | [1-9]\\d*)\n(?:\n\t(-)\n\t(\n\t\t(?: 0\n\t\t| [1-9]\\d*\n\t\t| \\d*[a-zA-Z-][0-9a-zA-Z-]*\n\t\t)\n\t\t\n\t\t(?:\n\t\t\t\\.\n\t\t\t(?: 0\n\t\t\t| [1-9]\\d*\n\t\t\t| \\d*[a-zA-Z-][0-9a-zA-Z-]*\n\t\t\t)\n\t\t)*\n\t)\n)?\n(?:\n\t(\\+)\n\t(\n\t\t[0-9a-zA-Z-]+\n\t\t(?:\\.[0-9a-zA-Z-]+)*\n\t)\n)?\n(\\1)",
         | 
| 323 | 
            +
                  "captures": {
         | 
| 324 | 
            +
                    "1": {
         | 
| 325 | 
            +
                      "name": "punctuation.definition.version-string.begin"
         | 
| 326 | 
            +
                    },
         | 
| 327 | 
            +
                    "10": {
         | 
| 328 | 
            +
                      "name": "punctuation.delimiter.separator.plus"
         | 
| 329 | 
            +
                    },
         | 
| 330 | 
            +
                    "11": {
         | 
| 331 | 
            +
                      "name": "meta.build-metadata",
         | 
| 332 | 
            +
                      "patterns": [
         | 
| 333 | 
            +
                        {
         | 
| 334 | 
            +
                          "include": "#dot"
         | 
| 335 | 
            +
                        }
         | 
| 336 | 
            +
                      ]
         | 
| 337 | 
            +
                    },
         | 
| 338 | 
            +
                    "12": {
         | 
| 339 | 
            +
                      "name": "punctuation.definition.version-string.end"
         | 
| 340 | 
            +
                    },
         | 
| 341 | 
            +
                    "2": {
         | 
| 342 | 
            +
                      "name": "punctuation.definition.version-prefix"
         | 
| 343 | 
            +
                    },
         | 
| 344 | 
            +
                    "3": {
         | 
| 345 | 
            +
                      "name": "meta.major.release-number"
         | 
| 346 | 
            +
                    },
         | 
| 347 | 
            +
                    "4": {
         | 
| 348 | 
            +
                      "patterns": [
         | 
| 349 | 
            +
                        {
         | 
| 350 | 
            +
                          "include": "#dot"
         | 
| 351 | 
            +
                        }
         | 
| 352 | 
            +
                      ]
         | 
| 353 | 
            +
                    },
         | 
| 354 | 
            +
                    "5": {
         | 
| 355 | 
            +
                      "name": "meta.minor.release-number"
         | 
| 356 | 
            +
                    },
         | 
| 357 | 
            +
                    "6": {
         | 
| 358 | 
            +
                      "patterns": [
         | 
| 359 | 
            +
                        {
         | 
| 360 | 
            +
                          "include": "#dot"
         | 
| 361 | 
            +
                        }
         | 
| 362 | 
            +
                      ]
         | 
| 363 | 
            +
                    },
         | 
| 364 | 
            +
                    "7": {
         | 
| 365 | 
            +
                      "name": "meta.patch.release-number"
         | 
| 366 | 
            +
                    },
         | 
| 367 | 
            +
                    "8": {
         | 
| 368 | 
            +
                      "patterns": [
         | 
| 369 | 
            +
                        {
         | 
| 370 | 
            +
                          "include": "#dash"
         | 
| 371 | 
            +
                        }
         | 
| 372 | 
            +
                      ]
         | 
| 373 | 
            +
                    },
         | 
| 374 | 
            +
                    "9": {
         | 
| 375 | 
            +
                      "name": "meta.prerelease.release-number",
         | 
| 376 | 
            +
                      "patterns": [
         | 
| 377 | 
            +
                        {
         | 
| 378 | 
            +
                          "include": "#dot"
         | 
| 379 | 
            +
                        }
         | 
| 380 | 
            +
                      ]
         | 
| 381 | 
            +
                    }
         | 
| 382 | 
            +
                  }
         | 
| 174 383 | 
             
                }
         | 
| 175 384 | 
             
              }
         | 
| 176 385 | 
             
            }
         |