mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-22 17:48:56 +01:00
Update grammars
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
|
||||
"Once accepted there, we are happy to receive an update request."
|
||||
],
|
||||
"version": "https://github.com/ionide/ionide-fsgrammar/commit/eb210da2bfea65a7dff46d22c97a0e9e410a9469",
|
||||
"version": "https://github.com/ionide/ionide-fsgrammar/commit/a20d836fa67d6daf81fd63e8baa97aa5e1516006",
|
||||
"name": "fsharp",
|
||||
"scopeName": "source.fsharp",
|
||||
"patterns": [
|
||||
@@ -48,10 +48,13 @@
|
||||
"include": "#record_declaration"
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
"include": "#records"
|
||||
},
|
||||
{
|
||||
"include": "#records"
|
||||
"include": "#strp_inlined"
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
},
|
||||
{
|
||||
"include": "#cexprs"
|
||||
@@ -61,10 +64,173 @@
|
||||
}
|
||||
],
|
||||
"repository": {
|
||||
"strp_inlined_body": {
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#comments"
|
||||
},
|
||||
{
|
||||
"include": "#anonymous_functions"
|
||||
},
|
||||
{
|
||||
"match": "(\\^[[:alpha:]0-9'._]+)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "keyword.fsharp",
|
||||
"match": "\\b(and|when|or)\\b"
|
||||
},
|
||||
{
|
||||
"begin": "(\\()",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\))",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#strp_inlined_body"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"match": "(static member|member)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "variable.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"include": "#constants"
|
||||
},
|
||||
{
|
||||
"include": "#strings"
|
||||
},
|
||||
{
|
||||
"include": "#chars"
|
||||
},
|
||||
{
|
||||
"include": "#double_tick"
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
},
|
||||
{
|
||||
"include": "#text"
|
||||
}
|
||||
]
|
||||
},
|
||||
"strp_inlined": {
|
||||
"patterns": [
|
||||
{
|
||||
"begin": "(\\()",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\))",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#strp_inlined_body"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"generic_declaration": {
|
||||
"patterns": [
|
||||
{
|
||||
"match": "([^<>,*()-])",
|
||||
"comments": "SRTP syntax support",
|
||||
"begin": "(:)\\s*(\\()\\s*(static member|member)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "keyword.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\))",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"begin": "(\\()",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\))",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#member_declaration"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"match": "(('|\\^)[[:alpha:]0-9'._]+)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"include": "#variables"
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "keyword.fsharp",
|
||||
"match": "\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|property|union|enum|member|try|finally|and|when|use|use\\!|struct|while|mutable)(?!')\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.fsharp",
|
||||
"match": ":"
|
||||
},
|
||||
{
|
||||
"include": "#constants"
|
||||
},
|
||||
{
|
||||
"match": "(('|\\^)[[:alpha:]0-9'._]+)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
@@ -86,7 +252,7 @@
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"match": "([^<>,*()-])",
|
||||
"match": "(('|\\^)[[:alpha:]0-9'._]+)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
@@ -101,6 +267,15 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"match": "(?!when|and|or\\b)\\b([\\w0-9'`^._]+)",
|
||||
"comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
}
|
||||
@@ -217,18 +392,23 @@
|
||||
"include": "#comments"
|
||||
},
|
||||
{
|
||||
"include": "#member_declaration"
|
||||
},
|
||||
{
|
||||
"match": "(:)(\\s*([?[:alpha:]0-9'`<>^._ ]+))*",
|
||||
"captures": {
|
||||
"begin": "(\\()",
|
||||
"end": "\\s*(?=(->))",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#member_declaration"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"include": "#variables"
|
||||
@@ -364,15 +544,18 @@
|
||||
"include": "#common_declaration"
|
||||
},
|
||||
{
|
||||
"match": "\\?{0,1}([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)){0,1}",
|
||||
"match": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([[:alpha:]0-9'`^._ ]+)){0,1}",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "variable.parameter.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "variable.parameter.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"4": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
@@ -391,11 +574,232 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"common_binding_definition": {
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#comments"
|
||||
},
|
||||
{
|
||||
"include": "#attributes"
|
||||
},
|
||||
{
|
||||
"comments": "SRTP syntax support",
|
||||
"begin": "(:)\\s*(\\()\\s*(static member|member)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "keyword.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\))\\s*((?=,)|(?=\\=))",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"match": "(\\^[[:alpha:]0-9'._]+)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"include": "#variables"
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"begin": "(:)\\s*(\\()",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#tuple_signature"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"begin": "(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "keyword.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(?=:)",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"name": "keyword.fsharp",
|
||||
"match": "\\b(and|when|or)\\b"
|
||||
},
|
||||
{
|
||||
"comment": "Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition",
|
||||
"match": "([[:alpha:]0-9'^._]+)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "keyword.symbol.fsharp",
|
||||
"match": "(\\(|\\))"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"match": "(:)\\s*([?[:alpha:]0-9'`^._ ]+)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"match": "(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"begin": "(\\*)\\s*(\\()",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#tuple_signature"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"match": "(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"begin": "(<(?![[:space:]]*\\)))",
|
||||
"beginComment": "The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)",
|
||||
"end": "((?<!:)>)",
|
||||
"endComment": "The group (?<!:) prevent us from stopping on :> when using SRTP synthax",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#generic_declaration"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"begin": "({)",
|
||||
"end": "(})",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#record_signature"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"include": "#definition"
|
||||
},
|
||||
{
|
||||
"include": "#variables"
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
}
|
||||
]
|
||||
},
|
||||
"definition": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "binding.fsharp",
|
||||
"begin": "\\b(val mutable|val|let mutable|let inline|let|member val|member|static member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?",
|
||||
"begin": "\\b(let mutable|let inline|let|member val|static member inline|static member|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?",
|
||||
"end": "\\s*(with\\b|=|\\n+=|(?<=\\=))",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
@@ -421,140 +825,34 @@
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#comments"
|
||||
"include": "#common_binding_definition"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "binding.fsharp",
|
||||
"begin": "\\b(static val mutable|val mutable|val)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?",
|
||||
"end": "\\n$",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.fsharp"
|
||||
},
|
||||
{
|
||||
"include": "#attributes"
|
||||
"2": {
|
||||
"name": "keyword.fsharp"
|
||||
},
|
||||
{
|
||||
"begin": "(:)\\s*(\\()",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#tuple_signature"
|
||||
}
|
||||
]
|
||||
"3": {
|
||||
"name": "support.function.attribute.fsharp"
|
||||
},
|
||||
{
|
||||
"match": "(:)\\s*([?[:alpha:]0-9'`^._ ]+)*",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
"4": {
|
||||
"name": "keyword.fsharp"
|
||||
},
|
||||
"5": {
|
||||
"name": "variable.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"match": "(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"begin": "(\\*)\\s*(\\()",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#tuple_signature"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"match": "(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"begin": "(<(?![[:space:]]*\\)))",
|
||||
"end": "(>)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#generic_declaration"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"begin": "({)",
|
||||
"end": "(})",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#record_signature"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"include": "#variables"
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
"include": "#common_binding_definition"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -613,7 +911,7 @@
|
||||
"patterns": [
|
||||
{
|
||||
"name": "keyword.fsharp",
|
||||
"match": "\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|property|union|enum|member|try|finally|and|when|use|use\\!|struct|while|mutable)(?!')\\b"
|
||||
"match": "\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|property|union|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable)(?!')\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.symbol.fsharp",
|
||||
@@ -817,8 +1115,15 @@
|
||||
"match": "\\(\\)"
|
||||
},
|
||||
{
|
||||
"name": "variable.parameter.fsharp",
|
||||
"match": "``[[:alpha:]0-9'`^:,._ ]+``|[[:alpha:]0-9'`<>^._ ]\\w*"
|
||||
"match": "(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|[[:alpha:]0-9'`<>^._ ]\\w*)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "variable.parameter.fsharp"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -869,19 +1174,22 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"begin": "\\?{0,1}([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))",
|
||||
"begin": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))",
|
||||
"end": "(>)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "variable.parameter.fsharp"
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
"name": "variable.parameter.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"4": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"5": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
},
|
||||
@@ -909,13 +1217,26 @@
|
||||
"member_declaration": {
|
||||
"patterns": [
|
||||
{
|
||||
"begin": "(\\()",
|
||||
"end": "(\\))",
|
||||
"include": "#comments"
|
||||
},
|
||||
{
|
||||
"include": "#common_declaration"
|
||||
},
|
||||
{
|
||||
"comments": "SRTP syntax support",
|
||||
"begin": "(:)\\s*(\\()\\s*(static member|member)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "keyword.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\))\\s*((?=,)|(?=\\=))",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
@@ -923,29 +1244,75 @@
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#comments"
|
||||
"begin": "(\\()",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"end": "(\\))",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#member_declaration"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"include": "#common_declaration"
|
||||
},
|
||||
{
|
||||
"match": "\\?{0,1}([[:alpha:]0-9'`^._ ]+)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>^._ ]+)){0,1}",
|
||||
"match": "(\\^[[:alpha:]0-9'._]+)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "variable.parameter.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"include": "#variables"
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"match": "(\\^[[:alpha:]0-9'._]+)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "keyword.fsharp",
|
||||
"match": "\\b(and|when|or)\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.symbol.fsharp",
|
||||
"match": "(\\(|\\))"
|
||||
},
|
||||
{
|
||||
"match": "(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>._ ]+)){0,1}",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "variable.parameter.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
},
|
||||
"4": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -973,16 +1340,13 @@
|
||||
{
|
||||
"name": "record.fsharp",
|
||||
"begin": "\\b(type)[\\s]+(private|internal|public)?\\s*",
|
||||
"end": "\\s*((with)|((as)\\s*([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))",
|
||||
"end": "\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.fsharp"
|
||||
},
|
||||
"3": {
|
||||
"name": "support.function.attribute.fsharp"
|
||||
}
|
||||
},
|
||||
"endCaptures": {
|
||||
@@ -1013,18 +1377,82 @@
|
||||
"include": "#attributes"
|
||||
},
|
||||
{
|
||||
"match": "([[:alpha:]0-9'`^:,._]+|``[[:alpha:]0-9'`^:,._ ]+``)(<)",
|
||||
"match": "([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
},
|
||||
"2": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"match": "\\s*(>)\\s*(private|internal|public)?",
|
||||
"begin": "(<)",
|
||||
"end": "((?<!:)>)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.fsharp"
|
||||
}
|
||||
},
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"match": "(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "keyword.fsharp",
|
||||
"match": "\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b"
|
||||
},
|
||||
{
|
||||
"begin": "(\\()",
|
||||
"end": "(\\))",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"match": "(static member|member|new)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"include": "#common_binding_definition"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"match": "([\\w0-9'`^._]+)",
|
||||
"comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"match": "\\s*(private|internal|public)",
|
||||
"captures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
@@ -1035,15 +1463,23 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"match": "([[:alpha:]0-9'`^._ ]+)",
|
||||
"captures": {
|
||||
"begin": "(\\()",
|
||||
"end": "\\s*(?=(=)|[\\n=]|(\\(\\))|(as))",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "entity.name.type.fsharp"
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"include": "#member_declaration"
|
||||
},
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "keyword.symbol.fsharp"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "#member_declaration"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"include": "#keywords"
|
||||
@@ -1099,9 +1535,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"include": "#chars"
|
||||
},
|
||||
{
|
||||
"include": "#compiler_directives"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user