[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/rust-mode 34cc528 319/486: Highlight question mark operato
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/rust-mode 34cc528 319/486: Highlight question mark operator using new `rust-question-mark-face'. |
Date: |
Sat, 7 Aug 2021 09:25:44 -0400 (EDT) |
branch: elpa/rust-mode
commit 34cc528f04574068e1d222c8122354fb4a9278ab
Author: Aankhen <Aankhen@users.noreply.github.com>
Commit: Aankhen <Aankhen@users.noreply.github.com>
Highlight question mark operator using new `rust-question-mark-face'.
---
rust-mode-tests.el | 32 ++++++++++++++++++++++++++++++++
rust-mode.el | 8 ++++++++
2 files changed, 40 insertions(+)
diff --git a/rust-mode-tests.el b/rust-mode-tests.el
index b1d51c9..614340c 100644
--- a/rust-mode-tests.el
+++ b/rust-mode-tests.el
@@ -1510,6 +1510,38 @@ this_is_not_a_string();)"
;; Only the i32 should have been highlighted.
'("i32" font-lock-type-face)))
+(ert-deftest font-lock-question-mark ()
+ "Ensure question mark operator is highlighted."
+ (rust-test-font-lock
+ "?"
+ '("?" rust-question-mark-face))
+ (rust-test-font-lock
+ "foo\(\)?;"
+ '("?" rust-question-mark-face))
+ (rust-test-font-lock
+ "foo\(bar\(\)?\);"
+ '("?" rust-question-mark-face))
+ (rust-test-font-lock
+ "\"?\""
+ '("\"?\"" font-lock-string-face))
+ (rust-test-font-lock
+ "foo\(\"?\"\);"
+ '("\"?\"" font-lock-string-face))
+ (rust-test-font-lock
+ "// ?"
+ '("// " font-lock-comment-delimiter-face
+ "?" font-lock-comment-face))
+ (rust-test-font-lock
+ "/// ?"
+ '("/// ?" font-lock-doc-face))
+ (rust-test-font-lock
+ "foo\(\"?\"\);"
+ '("\"?\"" font-lock-string-face))
+ (rust-test-font-lock
+ "foo\(\"?\"\)?;"
+ '("\"?\"" font-lock-string-face
+ "?" rust-question-mark-face)))
+
(ert-deftest rust-test-default-context-sensitive ()
(rust-test-font-lock
"let default = 7; impl foo { default fn f() { } }"
diff --git a/rust-mode.el b/rust-mode.el
index 2c58545..eac246f 100644
--- a/rust-mode.el
+++ b/rust-mode.el
@@ -165,6 +165,11 @@ function or trait. When nil, where will be aligned with
fn or trait."
"Face for the `unsafe' keyword."
:group 'rust-mode)
+(defface rust-question-mark-face
+ '((t :weight bold :inherit font-lock-builtin-face))
+ "Face for the question mark operator."
+ :group 'rust-mode)
+
(defun rust-paren-level () (nth 0 (syntax-ppss)))
(defun rust-in-str-or-cmnt () (nth 8 (syntax-ppss)))
(defun rust-rewind-past-str-cmnt () (goto-char (nth 8 (syntax-ppss))))
@@ -603,6 +608,9 @@ the desired identifiers), but does not match type
annotations \"foo::<\"."
;; CamelCase Means Type Or Constructor
(,rust-re-type-or-constructor 1 font-lock-type-face)
+
+ ;; Question mark operator
+ ("\\?" . 'rust-question-mark-face)
)
;; Item definitions
- [nongnu] elpa/rust-mode 85befb9 296/486: Merge pull request #201 from tromey/question-indentation, (continued)
- [nongnu] elpa/rust-mode 85befb9 296/486: Merge pull request #201 from tromey/question-indentation, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 5469d9b 297/486: fix rust indentation bug, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 367a89c 299/486: Allow formatting with long lines, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 610fe1f 305/486: Address review comments, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 72c479b 311/486: Add `rust-run-clippy' and `rust-buffer-project' with testing paraphernalia., ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 4ec735e 300/486: Add stderr output from rustfmt on exit code 3, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 9afe997 313/486: Declare `rust-buffer-project' and require `json' at runtime., ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode b4077f8 314/486: Add `rust-cargo-bin' custom variable., ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode d2bb17c 315/486: Skip `rust-test-project-located' without cargo and avoid `find-file' in test., ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 0985f5f 318/486: Merge pull request #217 from Aankhen/add-clippy-command, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 34cc528 319/486: Highlight question mark operator using new `rust-question-mark-face'.,
ELPA Syncer <=
- [nongnu] elpa/rust-mode 2a9fcd0 321/486: Add syntax highlighting and imenu support for `union`, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 89320ad 323/486: Highlight interpolation in arguments to print! &c., ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode e48a650 329/486: Merge pull request #225 from Aankhen/add-var-colours, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 6e9db46 331/486: Merge pull request #230 from tromey/fix-indentation-bug, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 0e832ec 340/486: Remove `float`, `int`, and `uint` as built-in types., ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 302b537 344/486: Revert #216 and Add Suggestions from #226, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode b8e4908 345/486: Merge pull request #243 from iwillspeak/rust-compile-command, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 6bcb82b 350/486: Merge pull request #249 from brotzeit/rust--format-call, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 705f3e4 352/486: Improved font-locking for print macros, ELPA Syncer, 2021/08/07
- [nongnu] elpa/rust-mode 2fe1f9d 355/486: add dyn to keywords, ELPA Syncer, 2021/08/07