diff options
author | Noah Peart <noah.v.peart@gmail.com> | 2024-04-19 10:27:10 -0700 |
---|---|---|
committer | Yuan Fu <casouri@gmail.com> | 2024-04-21 21:49:19 -0700 |
commit | ac2a4f61bdd0dc3a71a544d25de7cb36d37f44f9 (patch) | |
tree | 6b9352c6d30c4f388ccc877967cdcfc25f8f3553 /test | |
parent | 5c51bc934ebb88dd9dd8b228e99c39518c92c54b (diff) | |
download | emacs-ac2a4f61bdd0dc3a71a544d25de7cb36d37f44f9.tar.gz |
Add rust-ts-mode font-locking tests (bug#70464)
* test/lisp/progmodes/rust-ts-mode-tests.el: New file for rust-ts-mode
tests.
* test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs: New file
with rust-ts-mode font-locking tests. New tests added for macro
font-locking (bug#70464) and function signatures
(bug#70465).
Diffstat (limited to 'test')
-rw-r--r-- | test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs | 25 | ||||
-rw-r--r-- | test/lisp/progmodes/rust-ts-mode-tests.el | 34 |
2 files changed, 59 insertions, 0 deletions
diff --git a/test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs b/test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs new file mode 100644 index 00000000000..377cda0e3b9 --- /dev/null +++ b/test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs @@ -0,0 +1,25 @@ +// -*- rust-ts-mode-indent-offset: 0 -*- +// Trait with function signature +trait Foo { + fn foo(); +// ^ font-lock-function-name-face +} + +// Macros +macro_rules! unsafe_foo { + ($env:expr, $name:ident $(, $args:expr)*) => { +// ^ font-lock-variable-name-face +// ^ font-lock-type-face +// ^ font-lock-variable-name-face +// ^ font-lock-type-face +// ^ font-lock-operator-face +// ^ font-lock-variable-name-face +// ^ font-lock-type-face +// ^ font-lock-operator-face + { + foo!($env, $name $(, $args)*); +// ^ font-lock-variable-use-face +// ^ font-lock-operator-face +// ^ font-lock-operator-face + } + }; diff --git a/test/lisp/progmodes/rust-ts-mode-tests.el b/test/lisp/progmodes/rust-ts-mode-tests.el new file mode 100644 index 00000000000..f718a57fc9e --- /dev/null +++ b/test/lisp/progmodes/rust-ts-mode-tests.el @@ -0,0 +1,34 @@ +;;; rust-ts-mode-tests.el --- Tests for rust-ts-mode -*- lexical-binding: t; -*- + +;; Copyright (C) 2023-2024 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + +;;; Code: + +(require 'ert) +(require 'ert-font-lock) +(require 'ert-x) +(require 'treesit) + +(ert-deftest rust-ts-test-font-lock () + (skip-unless (treesit-ready-p 'rust)) + (let ((treesit-font-lock-level 4)) + (ert-font-lock-test-file (ert-resource-file "font-lock.rs") 'rust-ts-mode))) + +(provide 'rust-ts-mode-tests) + +;;; rust-ts-mode-tests.el ends here |