grammars/hint.haskell.json in github-linguist-7.5.1 vs grammars/hint.haskell.json in github-linguist-7.6.0
- old
+ new
@@ -7,10 +7,18 @@
{
"include": "#ctor_type_declaration"
}
],
"repository": {
+ "arrow": {
+ "patterns": [
+ {
+ "name": "keyword.other.arrow.haskell",
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
+ }
+ ]
+ },
"assignment_op": {
"patterns": [
{
"match": "=",
"captures": {
@@ -27,10 +35,18 @@
"name": "entity.other.attribute-name.haskell",
"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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
}
]
},
+ "big_arrow": {
+ "patterns": [
+ {
+ "name": "keyword.other.big-arrow.haskell",
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
+ }
+ ]
+ },
"block_comment": {
"patterns": [
{
"name": "comment.block.haddock.haskell",
"begin": "\\{-\\s*[|^]",
@@ -263,30 +279,16 @@
},
{
"include": "#assignment_op"
},
{
- "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}']*)*)\\s*)(?:((?:(?!deriving)(?:[\\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{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}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|-\u003e|=\u003e)+\\s*)+))(?:(?:\\s+)(?:(?!deriving)(?:[\\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{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}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|-\u003e|=\u003e)+\\s*)+)))*)?))",
- "captures": {
- "1": {
- "patterns": [
- {
- "include": "#type_ctor"
- }
- ]
- },
- "2": {
- "name": "meta.type-signature.haskell",
- "patterns": [
- {
- "include": "#type_signature"
- }
- ]
- }
- }
+ "include": "#type_ctor_forall"
},
{
+ "include": "#type_ctor_alt"
+ },
+ {
"match": "\\|",
"captures": {
"0": {
"name": "punctuation.separator.pipe.haskell"
}
@@ -1409,10 +1411,101 @@
}
}
}
]
},
+ "type_ctor_alt": {
+ "patterns": [
+ {
+ "contentName": "meta.type-signature.haskell",
+ "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}']*)*)\\s*",
+ "end": "^(?!^[ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))",
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#type_signature"
+ }
+ ],
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#type_ctor"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "type_ctor_forall": {
+ "patterns": [
+ {
+ "contentName": "meta.type-signature.haskell",
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
+ "end": "^(?!^[ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))",
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "match": "\\G.*?(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#type_signature"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "\\G.*?\\.",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#type_signature"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "include": "#big_arrow"
+ },
+ {
+ "include": "#type_variable"
+ },
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "patterns": [
+ {
+ "include": "#type_signature"
+ }
+ ]
+ },
+ {
+ "include": "#type_ctor_alt"
+ }
+ ],
+ "beginCaptures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#type_signature"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
"type_name": {
"patterns": [
{
"name": "entity.name.type.haskell",
"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}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
@@ -1482,16 +1575,14 @@
},
{
"include": "#string"
},
{
- "name": "keyword.other.arrow.haskell",
- "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
+ "include": "#arrow"
},
{
- "name": "keyword.other.big-arrow.haskell",
- "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
+ "include": "#big_arrow"
},
{
"name": "keyword.operator.promoted.haskell",
"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![(),;\\[\\]`{}_\"']))+)",
"captures": {
@@ -1506,12 +1597,11 @@
},
{
"include": "#operator"
},
{
- "name": "variable.other.generic-type.haskell",
- "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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
+ "include": "#type_variable"
},
{
"name": "entity.name.type.promoted.haskell",
"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}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
"captures": {
@@ -1527,9 +1617,17 @@
{
"include": "#type_name"
},
{
"include": "#lit_num"
+ }
+ ]
+ },
+ "type_variable": {
+ "patterns": [
+ {
+ "name": "variable.other.generic-type.haskell",
+ "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{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
}
]
},
"unit": {
"patterns": [