Commit 4172ab6f84f6a69cf258523d679f9a6b636ee1ec

Caijinglong 2020-05-06T15:52:21

Dart: Added missing keywords (#2355)

diff --git a/components/prism-dart.js b/components/prism-dart.js
index 9b2b2e0..cd4230a 100644
--- a/components/prism-dart.js
+++ b/components/prism-dart.js
@@ -11,7 +11,7 @@ Prism.languages.dart = Prism.languages.extend('clike', {
 	],
 	'keyword': [
 		/\b(?:async|sync|yield)\*/,
-		/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/
+		/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extension|external|extends|factory|final|finally|for|Function|get|hide|if|implements|interface|import|in|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/
 	],
 	'operator': /\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/
 });
@@ -21,4 +21,4 @@ Prism.languages.insertBefore('dart','function',{
 		pattern: /@\w+/,
 		alias: 'symbol'
 	}
-});
\ No newline at end of file
+});
diff --git a/components/prism-dart.min.js b/components/prism-dart.min.js
index e038386..1a6bfbd 100644
--- a/components/prism-dart.min.js
+++ b/components/prism-dart.min.js
@@ -1 +1 @@
-Prism.languages.dart=Prism.languages.extend("clike",{string:[{pattern:/r?("""|''')[\s\S]*?\1/,greedy:!0},{pattern:/r?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/],operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),Prism.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}});
\ No newline at end of file
+Prism.languages.dart=Prism.languages.extend("clike",{string:[{pattern:/r?("""|''')[\s\S]*?\1/,greedy:!0},{pattern:/r?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extension|external|extends|factory|final|finally|for|Function|get|hide|if|implements|interface|import|in|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/],operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),Prism.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}});
\ No newline at end of file
diff --git a/tests/languages/dart/keyword_feature.test b/tests/languages/dart/keyword_feature.test
index a5e3c6c..bc78ce3 100644
--- a/tests/languages/dart/keyword_feature.test
+++ b/tests/languages/dart/keyword_feature.test
@@ -3,19 +3,22 @@ abstract assert async await
 break case catch
 class;
 const
-continue default deferred
+continue covariant default deferred
 do dynamic else enum
-export external
+export extension external
 extends;
-factory final finally for
-get if
+factory final finally for Function
+get hide if
 implements;
+interface;
 import
-in library
+in
+library
+mixin
 new;
 null
-operator part rethrow return
-set static super switch this
+on operator part rethrow return
+set show static super switch sync this
 throw try typedef var
 void while with yield
 
@@ -27,19 +30,21 @@ void while with yield
 	["keyword", "break"], ["keyword", "case"], ["keyword", "catch"],
 	["keyword", "class"], ["punctuation", ";"],
 	["keyword", "const"],
-	["keyword", "continue"], ["keyword", "default"], ["keyword", "deferred"],
+	["keyword", "continue"], ["keyword", "covariant"], ["keyword", "default"], ["keyword", "deferred"],
 	["keyword", "do"], ["keyword", "dynamic"], ["keyword", "else"], ["keyword", "enum"],
-	["keyword", "export"], ["keyword", "external"],
+	["keyword", "export"], ["keyword", "extension"], ["keyword", "external"],
 	["keyword", "extends"], ["punctuation", ";"],
-	["keyword", "factory"], ["keyword", "final"], ["keyword", "finally"], ["keyword", "for"],
-	["keyword", "get"], ["keyword", "if"],
+	["keyword", "factory"], ["keyword", "final"], ["keyword", "finally"], ["keyword", "for"], ["keyword", "Function"],
+	["keyword", "get"], ["keyword", "hide"], ["keyword", "if"],
 	["keyword", "implements"], ["punctuation", ";"],
+	["keyword", "interface"], ["punctuation", ";"],
 	["keyword", "import"],
 	["keyword", "in"], ["keyword", "library"],
+	["keyword", "mixin"],
 	["keyword", "new"], ["punctuation", ";"],
 	["keyword", "null"],
-	["keyword", "operator"], ["keyword", "part"], ["keyword", "rethrow"], ["keyword", "return"],
-	["keyword", "set"], ["keyword", "static"], ["keyword", "super"], ["keyword", "switch"], ["keyword", "this"],
+	["keyword", "on"], ["keyword", "operator"], ["keyword", "part"], ["keyword", "rethrow"], ["keyword", "return"],
+	["keyword", "set"], ["keyword", "show"], ["keyword", "static"], ["keyword", "super"], ["keyword", "switch"],  ["keyword", "sync"], ["keyword", "this"],
 	["keyword", "throw"], ["keyword", "try"], ["keyword", "typedef"], ["keyword", "var"],
 	["keyword", "void"], ["keyword", "while"], ["keyword", "with"], ["keyword", "yield"]
 ]