Commit 64642716b5968b424edcf514d6cc6389c4078212

matildepark 2022-06-14T00:09:32

Hoon: Fixed escaped strings (#3473)

diff --git a/components/prism-hoon.js b/components/prism-hoon.js
index 400a1bd..57d1dd7 100644
--- a/components/prism-hoon.js
+++ b/components/prism-hoon.js
@@ -4,7 +4,7 @@ Prism.languages.hoon = {
 		greedy: true
 	},
 	'string': {
-		pattern: /"[^"]*"|'[^']*'/,
+		pattern: /"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/,
 		greedy: true
 	},
 	'constant': /%(?:\.[ny]|[\w-]+)/,
diff --git a/components/prism-hoon.min.js b/components/prism-hoon.min.js
index 168915a..7ffbe14 100644
--- a/components/prism-hoon.min.js
+++ b/components/prism-hoon.min.js
@@ -1 +1 @@
-Prism.languages.hoon={comment:{pattern:/::.*/,greedy:!0},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},constant:/%(?:\.[ny]|[\w-]+)/,"class-name":/@(?:[a-z0-9-]*[a-z0-9])?|\*/i,function:/(?:\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,keyword:/\.[\^\+\*=\?]|![><:\.=\?!]|=[>|:,\.\-\^<+;/~\*\?]|\?[>|:\.\-\^<\+&~=@!]|\|[\$_%:\.\-\^~\*=@\?]|\+[|\$\+\*]|:[_\-\^\+~\*]|%[_:\.\-\^\+~\*=]|\^[|:\.\-\+&~\*=\?]|\$[|_%:<>\-\^&~@=\?]|;[:<\+;\/~\*=]|~[>|\$_%<\+\/&=\?!]|--|==/};
\ No newline at end of file
+Prism.languages.hoon={comment:{pattern:/::.*/,greedy:!0},string:{pattern:/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/,greedy:!0},constant:/%(?:\.[ny]|[\w-]+)/,"class-name":/@(?:[a-z0-9-]*[a-z0-9])?|\*/i,function:/(?:\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,keyword:/\.[\^\+\*=\?]|![><:\.=\?!]|=[>|:,\.\-\^<+;/~\*\?]|\?[>|:\.\-\^<\+&~=@!]|\|[\$_%:\.\-\^~\*=@\?]|\+[|\$\+\*]|:[_\-\^\+~\*]|%[_:\.\-\^\+~\*=]|\^[|:\.\-\+&~\*=\?]|\$[|_%:<>\-\^&~@=\?]|;[:<\+;\/~\*=]|~[>|\$_%<\+\/&=\?!]|--|==/};
\ No newline at end of file
diff --git a/tests/languages/hoon/strings_with_escapes.test b/tests/languages/hoon/strings_with_escapes.test
new file mode 100644
index 0000000..5691f4f
--- /dev/null
+++ b/tests/languages/hoon/strings_with_escapes.test
@@ -0,0 +1,7 @@
+"blah\"blah"
+
+----------------------------------------------------
+
+[
+	["string", "\"blah\\\"blah\""]
+]