Commit bcb2e2c82ca86cbeeff435901be9f8ca35604163

Wei Ting 2022-01-24T21:26:02

AutoIt: Allow hyphen in directive (#3308)

diff --git a/components/prism-autoit.js b/components/prism-autoit.js
index 2eb1f1e..151c657 100644
--- a/components/prism-autoit.js
+++ b/components/prism-autoit.js
@@ -19,7 +19,7 @@ Prism.languages.autoit = {
 		}
 	},
 	'directive': {
-		pattern: /(^[\t ]*)#\w+/m,
+		pattern: /(^[\t ]*)#[\w-]+/m,
 		lookbehind: true,
 		alias: 'keyword'
 	},
diff --git a/components/prism-autoit.min.js b/components/prism-autoit.min.js
index 93e922c..a732842 100644
--- a/components/prism-autoit.min.js
+++ b/components/prism-autoit.min.js
@@ -1 +1 @@
-Prism.languages.autoit={comment:[/;.*/,{pattern:/(^[\t ]*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:ce|comments-end)/m,lookbehind:!0}],url:{pattern:/(^[\t ]*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^[\t ]*)#\w+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:False|True)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Not|Or)\b/i,punctuation:/[\[\]().,:]/};
\ No newline at end of file
+Prism.languages.autoit={comment:[/;.*/,{pattern:/(^[\t ]*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:ce|comments-end)/m,lookbehind:!0}],url:{pattern:/(^[\t ]*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^[\t ]*)#[\w-]+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:False|True)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Not|Or)\b/i,punctuation:/[\[\]().,:]/};
\ No newline at end of file
diff --git a/tests/languages/autoit/directive_feature.test b/tests/languages/autoit/directive_feature.test
index 9219f70..af7e4ec 100644
--- a/tests/languages/autoit/directive_feature.test
+++ b/tests/languages/autoit/directive_feature.test
@@ -1,13 +1,17 @@
 #NoTrayIcon
 #OnAutoItStartRegister "Example"
+#include-once
+#include <MsgBoxConstants.au3>
 
 ----------------------------------------------------
 
 [
 	["directive", "#NoTrayIcon"],
-	["directive", "#OnAutoItStartRegister"], ["string", ["\"Example\""]]
+	["directive", "#OnAutoItStartRegister"], ["string", ["\"Example\""]],
+	["directive", "#include-once"],
+	["directive", "#include"], ["url", "<MsgBoxConstants.au3>"]
 ]
 
 ----------------------------------------------------
 
-Checks for directives.
\ No newline at end of file
+Checks for directives.