1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-23 07:19:15 +00:00

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).
This commit is contained in:
Noah Peart 2024-04-19 10:27:10 -07:00 committed by Yuan Fu
parent 5c51bc934e
commit ac2a4f61bd
No known key found for this signature in database
GPG Key ID: 56E19BC57664A442
2 changed files with 59 additions and 0 deletions

View File

@ -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
}
};

View File

@ -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