summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Chalmer <micah@micahchalmer.net>2015-02-23 20:21:49 -0500
committerMicah Chalmer <micah@micahchalmer.net>2015-02-23 20:21:49 -0500
commit766bd8279b18bcbf6af0b8fea370c85414e407c4 (patch)
tree3b9d1722ac646cf59c911dd2bf5801d3e6496d7c
parent22c8cfaccf6012dd6e753a10cc5fe5c8867f5c7d (diff)
downloadrust-mode-766bd8279b18bcbf6af0b8fea370c85414e407c4.tar.gz
Parse '\\' and '\"' as char literals
-rw-r--r--rust-mode-tests.el16
-rw-r--r--rust-mode.el2
2 files changed, 17 insertions, 1 deletions
diff --git a/rust-mode-tests.el b/rust-mode-tests.el
index 007d116..3510d69 100644
--- a/rust-mode-tests.el
+++ b/rust-mode-tests.el
@@ -927,6 +927,22 @@ list of substrings of `STR' each followed by its face."
"let" font-lock-keyword-face
"'\\''" font-lock-string-face)))
+(ert-deftest font-lock-escaped-double-quote-character-literal ()
+ (rust-test-font-lock
+ "fn main() { let ch = '\\\"'; }"
+ '("fn" font-lock-keyword-face
+ "main" font-lock-function-name-face
+ "let" font-lock-keyword-face
+ "'\\\"'" font-lock-string-face)))
+
+(ert-deftest font-lock-escaped-backslash-character-literal ()
+ (rust-test-font-lock
+ "fn main() { let ch = '\\\\'; }"
+ '("fn" font-lock-keyword-face
+ "main" font-lock-function-name-face
+ "let" font-lock-keyword-face
+ "'\\\\'" font-lock-string-face)))
+
(ert-deftest font-lock-raw-strings-no-hashes ()
(rust-test-font-lock
"r\"No hashes\";"
diff --git a/rust-mode.el b/rust-mode.el
index c82a484..9a6eb5f 100644
--- a/rust-mode.el
+++ b/rust-mode.el
@@ -423,7 +423,7 @@
;; Handle single quoted character literals:
(mapcar (lambda (re) (list re '(1 "\"") '(2 "\"")))
'("\\('\\)[^']\\('\\)"
- "\\('\\)\\\\['nrt]\\('\\)"
+ "\\('\\)\\\\['nrt\"\\]\\('\\)"
"\\('\\)\\\\x[[:xdigit:]]\\{2\\}\\('\\)"
"\\('\\)\\\\u[[:xdigit:]]\\{4\\}\\('\\)"
"\\('\\)\\\\U[[:xdigit:]]\\{8\\}\\('\\)"))