|
4 | 4 | "If you want to provide a fix or improvement, please create a pull request against the original repository.", |
5 | 5 | "Once accepted there, we are happy to receive an update request." |
6 | 6 | ], |
7 | | - "version": "https://github.com/ionide/ionide-fsgrammar/commit/67c9f45ebbbd5a12d89ffad1661caf8452f1d552", |
| 7 | + "version": "https://github.com/ionide/ionide-fsgrammar/commit/eb210da2bfea65a7dff46d22c97a0e9e410a9469", |
8 | 8 | "name": "fsharp", |
9 | 9 | "scopeName": "source.fsharp", |
10 | 10 | "patterns": [ |
|
64 | 64 | "generic_declaration": { |
65 | 65 | "patterns": [ |
66 | 66 | { |
67 | | - "match": "([^<>,])", |
| 67 | + "match": "([^<>,*()-])", |
68 | 68 | "captures": { |
69 | 69 | "1": { |
70 | 70 | "name": "entity.name.type.fsharp" |
|
86 | 86 | }, |
87 | 87 | "patterns": [ |
88 | 88 | { |
89 | | - "match": "([^<>,])", |
| 89 | + "match": "([^<>,*()-])", |
90 | 90 | "captures": { |
91 | 91 | "1": { |
92 | 92 | "name": "entity.name.type.fsharp" |
93 | 93 | } |
94 | 94 | } |
95 | 95 | }, |
| 96 | + { |
| 97 | + "include": "#tuple_signature" |
| 98 | + }, |
96 | 99 | { |
97 | 100 | "include": "#generic_declaration" |
98 | 101 | } |
|
151 | 154 | } |
152 | 155 | ] |
153 | 156 | }, |
| 157 | + "tuple_signature": { |
| 158 | + "patterns": [ |
| 159 | + { |
| 160 | + "match": "(([?[:alpha:]0-9'`^._ ]+))+", |
| 161 | + "captures": { |
| 162 | + "1": { |
| 163 | + "name": "entity.name.type.fsharp" |
| 164 | + } |
| 165 | + } |
| 166 | + }, |
| 167 | + { |
| 168 | + "begin": "(\\()", |
| 169 | + "end": "(\\))", |
| 170 | + "beginCaptures": { |
| 171 | + "1": { |
| 172 | + "name": "keyword.symbol.fsharp" |
| 173 | + } |
| 174 | + }, |
| 175 | + "endCaptures": { |
| 176 | + "1": { |
| 177 | + "name": "keyword.symbol.fsharp" |
| 178 | + } |
| 179 | + }, |
| 180 | + "patterns": [ |
| 181 | + { |
| 182 | + "match": "(([?[:alpha:]0-9'`^._ ]+))+", |
| 183 | + "captures": { |
| 184 | + "1": { |
| 185 | + "name": "entity.name.type.fsharp" |
| 186 | + } |
| 187 | + } |
| 188 | + }, |
| 189 | + { |
| 190 | + "include": "#tuple_signature" |
| 191 | + } |
| 192 | + ] |
| 193 | + }, |
| 194 | + { |
| 195 | + "include": "#keywords" |
| 196 | + } |
| 197 | + ] |
| 198 | + }, |
154 | 199 | "anonymous_functions": { |
155 | 200 | "patterns": [ |
156 | 201 | { |
|
351 | 396 | { |
352 | 397 | "name": "binding.fsharp", |
353 | 398 | "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)*)?", |
354 | | - "end": "\\s*(with\\b|=|\\n+=)", |
| 399 | + "end": "\\s*(with\\b|=|\\n+=|(?<=\\=))", |
355 | 400 | "beginCaptures": { |
356 | 401 | "1": { |
357 | 402 | "name": "keyword.fsharp" |
|
379 | 424 | "include": "#comments" |
380 | 425 | }, |
381 | 426 | { |
382 | | - "match": "(:)\\s*(\\()?\\s*(([?[:alpha:]0-9'`^._ ]+))*", |
383 | | - "captures": { |
| 427 | + "include": "#attributes" |
| 428 | + }, |
| 429 | + { |
| 430 | + "begin": "(:)\\s*(\\()", |
| 431 | + "beginCaptures": { |
384 | 432 | "1": { |
385 | 433 | "name": "keyword.symbol.fsharp" |
386 | 434 | }, |
387 | 435 | "2": { |
388 | 436 | "name": "keyword.symbol.fsharp" |
| 437 | + } |
| 438 | + }, |
| 439 | + "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)", |
| 440 | + "endCaptures": { |
| 441 | + "1": { |
| 442 | + "name": "keyword.symbol.fsharp" |
389 | 443 | }, |
390 | | - "3": { |
| 444 | + "2": { |
391 | 445 | "name": "entity.name.type.fsharp" |
392 | 446 | } |
393 | | - } |
| 447 | + }, |
| 448 | + "patterns": [ |
| 449 | + { |
| 450 | + "include": "#tuple_signature" |
| 451 | + } |
| 452 | + ] |
394 | 453 | }, |
395 | 454 | { |
396 | | - "match": "(\\*\\s*\\()\\s*(([?[:alpha:]0-9'`^._ ]+))*", |
| 455 | + "match": "(:)\\s*([?[:alpha:]0-9'`^._ ]+)*", |
397 | 456 | "captures": { |
398 | 457 | "1": { |
399 | 458 | "name": "keyword.symbol.fsharp" |
|
417 | 476 | } |
418 | 477 | } |
419 | 478 | }, |
| 479 | + { |
| 480 | + "begin": "(\\*)\\s*(\\()", |
| 481 | + "beginCaptures": { |
| 482 | + "1": { |
| 483 | + "name": "keyword.symbol.fsharp" |
| 484 | + }, |
| 485 | + "2": { |
| 486 | + "name": "keyword.symbol.fsharp" |
| 487 | + } |
| 488 | + }, |
| 489 | + "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)", |
| 490 | + "endCaptures": { |
| 491 | + "1": { |
| 492 | + "name": "keyword.symbol.fsharp" |
| 493 | + }, |
| 494 | + "2": { |
| 495 | + "name": "entity.name.type.fsharp" |
| 496 | + } |
| 497 | + }, |
| 498 | + "patterns": [ |
| 499 | + { |
| 500 | + "include": "#tuple_signature" |
| 501 | + } |
| 502 | + ] |
| 503 | + }, |
420 | 504 | { |
421 | 505 | "match": "(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*", |
422 | 506 | "captures": { |
|
429 | 513 | } |
430 | 514 | }, |
431 | 515 | { |
432 | | - "begin": "(<)", |
| 516 | + "begin": "(<(?![[:space:]]*\\)))", |
433 | 517 | "end": "(>)", |
434 | 518 | "beginCaptures": { |
435 | 519 | "1": { |
|
717 | 801 | "patterns": [ |
718 | 802 | { |
719 | 803 | "name": "entity.name.type.format.specifier.fsharp", |
720 | | - "match": "(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o)|(s|b|O)|(\\+?A)))", |
| 804 | + "match": "(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))", |
721 | 805 | "captures": { |
722 | 806 | "1": { |
723 | 807 | "name": "keyword.format.specifier.fsharp" |
|
734 | 818 | }, |
735 | 819 | { |
736 | 820 | "name": "variable.parameter.fsharp", |
737 | | - "match": "[[:alpha:]0-9'`<>^._ ]\\w*" |
| 821 | + "match": "``[[:alpha:]0-9'`^:,._ ]+``|[[:alpha:]0-9'`<>^._ ]\\w*" |
738 | 822 | } |
739 | 823 | ] |
740 | 824 | }, |
|
774 | 858 | ] |
775 | 859 | }, |
776 | 860 | { |
777 | | - "match": "\\s*(->)\\s*([[:alpha:]0-9'`^._ ]+)", |
| 861 | + "match": "\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)", |
778 | 862 | "captures": { |
779 | 863 | "1": { |
780 | 864 | "name": "keyword.symbol.fsharp" |
|
888 | 972 | "patterns": [ |
889 | 973 | { |
890 | 974 | "name": "record.fsharp", |
891 | | - "begin": "\\b(type)[\\s]+(private|internal|public)?(\\s*\\[\\<.*\\>\\])?[\\s]*([[:alpha:]0-9'`^:,._]+|``[[:alpha:]0-9'`^:,._ ]+``)(<)", |
| 975 | + "begin": "\\b(type)[\\s]+(private|internal|public)?\\s*", |
892 | 976 | "end": "\\s*((with)|((as)\\s*([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))", |
893 | 977 | "beginCaptures": { |
894 | 978 | "1": { |
|
899 | 983 | }, |
900 | 984 | "3": { |
901 | 985 | "name": "support.function.attribute.fsharp" |
902 | | - }, |
903 | | - "4": { |
904 | | - "name": "entity.name.type.fsharp" |
905 | | - }, |
906 | | - "5": { |
907 | | - "name": "keyword.symbol.fsharp" |
908 | 986 | } |
909 | 987 | }, |
910 | 988 | "endCaptures": { |
|
931 | 1009 | { |
932 | 1010 | "include": "#comments" |
933 | 1011 | }, |
| 1012 | + { |
| 1013 | + "include": "#attributes" |
| 1014 | + }, |
| 1015 | + { |
| 1016 | + "match": "([[:alpha:]0-9'`^:,._]+|``[[:alpha:]0-9'`^:,._ ]+``)(<)", |
| 1017 | + "captures": { |
| 1018 | + "1": { |
| 1019 | + "name": "entity.name.type.fsharp" |
| 1020 | + }, |
| 1021 | + "2": { |
| 1022 | + "name": "keyword.symbol.fsharp" |
| 1023 | + } |
| 1024 | + } |
| 1025 | + }, |
934 | 1026 | { |
935 | 1027 | "match": "\\s*(>)\\s*(private|internal|public)?", |
936 | 1028 | "captures": { |
|
957 | 1049 | "include": "#keywords" |
958 | 1050 | } |
959 | 1051 | ] |
960 | | - }, |
961 | | - { |
962 | | - "name": "record.fsharp", |
963 | | - "begin": "\\b(type)[\\s]+(private|internal|public)?(\\s*\\[\\<.*\\>\\])?[\\s]*([[:alpha:]0-9'`^:,._]+<(.*)>|[[:alpha:]0-9'^:,._]+|``[[:alpha:]0-9'`^:,._ ]+``)[\\s]?(private|internal|public)?[\\s]*", |
964 | | - "end": "\\s*((with)|((as)\\s*([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))", |
965 | | - "beginCaptures": { |
966 | | - "1": { |
967 | | - "name": "keyword.fsharp" |
968 | | - }, |
969 | | - "2": { |
970 | | - "name": "keyword.fsharp" |
971 | | - }, |
972 | | - "3": { |
973 | | - "name": "support.function.attribute.fsharp" |
974 | | - }, |
975 | | - "4": { |
976 | | - "name": "entity.name.type.fsharp" |
977 | | - }, |
978 | | - "6": { |
979 | | - "name": "keyword.fsharp" |
980 | | - } |
981 | | - }, |
982 | | - "endCaptures": { |
983 | | - "2": { |
984 | | - "name": "keyword.fsharp" |
985 | | - }, |
986 | | - "3": { |
987 | | - "name": "keyword.fsharp" |
988 | | - }, |
989 | | - "4": { |
990 | | - "name": "keyword.fsharp" |
991 | | - }, |
992 | | - "5": { |
993 | | - "name": "variable.parameter.fsharp" |
994 | | - }, |
995 | | - "6": { |
996 | | - "name": "keyword.symbol.fsharp" |
997 | | - }, |
998 | | - "7": { |
999 | | - "name": "constant.language.unit.fsharp" |
1000 | | - } |
1001 | | - }, |
1002 | | - "patterns": [ |
1003 | | - { |
1004 | | - "include": "#comments" |
1005 | | - }, |
1006 | | - { |
1007 | | - "include": "#member_declaration" |
1008 | | - } |
1009 | | - ] |
1010 | 1052 | } |
1011 | 1053 | ] |
1012 | 1054 | }, |
|
0 commit comments