diff options
| author | Tom Tromey <tom@tromey.com> | 2017-08-22 06:33:48 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-22 06:33:48 -0600 |
| commit | 7ff04a8d26104c2e2c0737e219b320ecaeaafd9d (patch) | |
| tree | 82ff4eefb3ddb5329457d056480bb871956d3245 | |
| parent | f57a8ebfc33de72e0ca6fe61ed3d7a622510b5b3 (diff) | |
| parent | 6550d942eca7ce145c95aaaca9c44dd138b14623 (diff) | |
| download | rust-mode-7ff04a8d26104c2e2c0737e219b320ecaeaafd9d.tar.gz | |
Merge pull request #234 from jjwest/master
Types get correct font-lock in if-let statements
| -rw-r--r-- | rust-mode-tests.el | 9 | ||||
| -rw-r--r-- | rust-mode.el | 6 |
2 files changed, 12 insertions, 3 deletions
diff --git a/rust-mode-tests.el b/rust-mode-tests.el index aab82df..f0a73a2 100644 --- a/rust-mode-tests.el +++ b/rust-mode-tests.el @@ -1317,6 +1317,15 @@ list of substrings of `STR' each followed by its face." "mut" font-lock-keyword-face "bar" font-lock-variable-name-face))) +(ert-deftest font-lock-if-let-binding () + (rust-test-font-lock + "if let Some(var) = some_var { /* no-op */ }" + '("if" font-lock-keyword-face + "let" font-lock-keyword-face + "Some" font-lock-type-face + "/* " font-lock-comment-delimiter-face + "no-op */" font-lock-comment-face))) + (ert-deftest font-lock-single-quote-character-literal () (rust-test-font-lock "fn main() { let ch = '\\''; }" diff --git a/rust-mode.el b/rust-mode.el index 97b5c3c..72109e5 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -682,6 +682,9 @@ match data if found. Returns nil if not within a Rust string." ;; Field names like `foo:`, highlight excluding the : (,(concat (rust-re-grab rust-re-ident) ":[^:]") 1 font-lock-variable-name-face) + ;; CamelCase Means Type Or Constructor + (,rust-re-type-or-constructor 1 font-lock-type-face) + ;; Type-inferred binding (,(concat "\\_<\\(?:let\\|ref\\)\\s-+\\(?:mut\\s-+\\)?" (rust-re-grab rust-re-ident) "\\_>") 1 font-lock-variable-name-face) @@ -694,9 +697,6 @@ match data if found. Returns nil if not within a Rust string." ;; Lifetimes like `'foo` (,(concat "'" (rust-re-grab rust-re-ident) "[^']") 1 font-lock-variable-name-face) - ;; CamelCase Means Type Or Constructor - (,rust-re-type-or-constructor 1 font-lock-type-face) - ;; Question mark operator ("\\?" . 'rust-question-mark-face) ) |
