1- import { insertBefore } from '../util/language-util.js' ;
21import clike from './clike.js' ;
32
43/** @type {import('../types.d.ts').LanguageProto<'dart'> } */
54export default {
65 id : 'dart' ,
76 base : clike ,
8- grammar ( { base } ) {
7+ grammar ( ) {
98 const keywords = [
109 / \b (?: a s y n c | s y n c | y i e l d ) \* / ,
1110 / \b (?: a b s t r a c t | a s s e r t | a s y n c | a w a i t | b r e a k | c a s e | c a t c h | c l a s s | c o n s t | c o n t i n u e | c o v a r i a n t | d e f a u l t | d e f e r r e d | d o | d y n a m i c | e l s e | e n u m | e x p o r t | e x t e n d s | e x t e n s i o n | e x t e r n a l | f a c t o r y | f i n a l | f i n a l l y | f o r | g e t | h i d e | i f | i m p l e m e n t s | i m p o r t | i n | i n t e r f a c e | l i b r a r y | m i x i n | n e w | n u l l | o n | o p e r a t o r | p a r t | r e t h r o w | r e t u r n | s e t | s h o w | s t a t i c | s u p e r | s w i t c h | s y n c | t h i s | t h r o w | t r y | t y p e d e f | v a r | v o i d | w h i l e | w i t h | y i e l d ) \b / ,
@@ -28,47 +27,6 @@ export default {
2827 } ,
2928 } ;
3029
31- insertBefore ( base , 'string' , {
32- 'string-literal' : {
33- pattern : / r ? (?: ( " " " | ' ' ' ) [ \s \S ] * ?\1| ( [ " ' ] ) (?: \\ .| (? ! \2) [ ^ \\ \r \n ] ) * \2(? ! \2) ) / ,
34- greedy : true ,
35- inside : {
36- 'interpolation' : {
37- pattern : / ( (?: ^ | [ ^ \\ ] ) (?: \\ { 2 } ) * ) \$ (?: \w + | \{ (?: [ ^ { } ] | \{ [ ^ { } ] * \} ) * \} ) / ,
38- lookbehind : true ,
39- inside : {
40- 'punctuation' : / ^ \$ \{ ? | \} $ / ,
41- 'expression' : {
42- pattern : / [ \s \S ] + / ,
43- inside : 'dart' ,
44- } ,
45- } ,
46- } ,
47- 'string' : / [ \s \S ] + / ,
48- } ,
49- } ,
50- 'string' : undefined ,
51- } ) ;
52-
53- insertBefore ( base , 'class-name' , {
54- 'metadata' : {
55- pattern : / @ \w + / ,
56- alias : 'function' ,
57- } ,
58- } ) ;
59-
60- insertBefore ( base , 'class-name' , {
61- 'generics' : {
62- pattern : / < (?: [ \w \s , . & ? ] | < (?: [ \w \s , . & ? ] | < (?: [ \w \s , . & ? ] | < [ \w \s , . & ? ] * > ) * > ) * > ) * > / ,
63- inside : {
64- 'class-name' : className ,
65- 'keyword' : keywords ,
66- 'punctuation' : / [ < > ( ) , . : ] / ,
67- 'operator' : / [ ? & | ] / ,
68- } ,
69- } ,
70- } ) ;
71-
7230 return {
7331 'class-name' : [
7432 className ,
@@ -83,6 +41,46 @@ export default {
8341 'keyword' : keywords ,
8442 'operator' :
8543 / \b i s ! | \b (?: a s | i s ) \b | \+ \+ | - - | & & | \| \| | < < = ? | > > = ? | ~ (?: \/ = ? ) ? | [ + \- * \/ % & ^ | = ! < > ] = ? | \? / ,
44+ $insertBefore : {
45+ 'string' : {
46+ 'string-literal' : {
47+ pattern : / r ? (?: ( " " " | ' ' ' ) [ \s \S ] * ?\1| ( [ " ' ] ) (?: \\ .| (? ! \2) [ ^ \\ \r \n ] ) * \2(? ! \2) ) / ,
48+ greedy : true ,
49+ inside : {
50+ 'interpolation' : {
51+ pattern :
52+ / ( (?: ^ | [ ^ \\ ] ) (?: \\ { 2 } ) * ) \$ (?: \w + | \{ (?: [ ^ { } ] | \{ [ ^ { } ] * \} ) * \} ) / ,
53+ lookbehind : true ,
54+ inside : {
55+ 'punctuation' : / ^ \$ \{ ? | \} $ / ,
56+ 'expression' : {
57+ pattern : / [ \s \S ] + / ,
58+ inside : 'dart' ,
59+ } ,
60+ } ,
61+ } ,
62+ 'string' : / [ \s \S ] + / ,
63+ } ,
64+ } ,
65+ 'string' : undefined ,
66+ } ,
67+ 'class-name' : {
68+ 'metadata' : {
69+ pattern : / @ \w + / ,
70+ alias : 'function' ,
71+ } ,
72+ 'generics' : {
73+ pattern :
74+ / < (?: [ \w \s , . & ? ] | < (?: [ \w \s , . & ? ] | < (?: [ \w \s , . & ? ] | < [ \w \s , . & ? ] * > ) * > ) * > ) * > / ,
75+ inside : {
76+ 'class-name' : className ,
77+ 'keyword' : keywords ,
78+ 'punctuation' : / [ < > ( ) , . : ] / ,
79+ 'operator' : / [ ? & | ] / ,
80+ } ,
81+ } ,
82+ } ,
83+ } ,
8684 } ;
8785 } ,
8886} ;
0 commit comments