From 1b6b2a7001ff079d81af7d42c7ee98e8e7318390 Mon Sep 17 00:00:00 2001 From: Noah Peart Date: Sun, 26 May 2024 05:34:34 -0700 Subject: [PATCH] Add font-locking for variables in go-ts-mode range clauses * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings): Add font-locking rule for variable names in range clauses. * test/lisp/progmodes/go-ts-mode-tests.el (go-ts-test-font-lock): Add font-locking test for go-ts-mode. * test/lisp/progmodes/go-ts-mode-resources/font-lock.go: New file for go-ts-mode font-locking tests. --- lisp/progmodes/go-ts-mode.el | 5 ++++- test/lisp/progmodes/go-ts-mode-resources/font-lock.go | 5 +++++ test/lisp/progmodes/go-ts-mode-tests.el | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 test/lisp/progmodes/go-ts-mode-resources/font-lock.go diff --git a/lisp/progmodes/go-ts-mode.el b/lisp/progmodes/go-ts-mode.el index aef224ab3fa..43f7e042590 100644 --- a/lisp/progmodes/go-ts-mode.el +++ b/lisp/progmodes/go-ts-mode.el @@ -180,7 +180,10 @@ go-ts-mode--font-lock-settings (identifier) @font-lock-variable-name-face ("," (identifier) @font-lock-variable-name-face)*)) (var_spec name: (identifier) @font-lock-variable-name-face - ("," name: (identifier) @font-lock-variable-name-face)*)) + ("," name: (identifier) @font-lock-variable-name-face)*) + (range_clause + left: (expression_list + (identifier) @font-lock-variable-name-face))) :language 'go :feature 'function diff --git a/test/lisp/progmodes/go-ts-mode-resources/font-lock.go b/test/lisp/progmodes/go-ts-mode-resources/font-lock.go new file mode 100644 index 00000000000..4e7a8e1710b --- /dev/null +++ b/test/lisp/progmodes/go-ts-mode-resources/font-lock.go @@ -0,0 +1,5 @@ +for idx, val := range arr {} +// ^ font-lock-variable-name-face +// ^ font-lock-variable-name-face +for idx := 0; idx < n; idx++ {} +// ^ font-lock-variable-name-face diff --git a/test/lisp/progmodes/go-ts-mode-tests.el b/test/lisp/progmodes/go-ts-mode-tests.el index fd9b57e8691..f36dbde5103 100644 --- a/test/lisp/progmodes/go-ts-mode-tests.el +++ b/test/lisp/progmodes/go-ts-mode-tests.el @@ -27,5 +27,10 @@ go-ts-mode-test-indentation (skip-unless (treesit-ready-p 'go)) (ert-test-erts-file (ert-resource-file "indent.erts"))) +(ert-deftest go-ts-test-font-lock () + (skip-unless (treesit-ready-p 'go)) + (let ((treesit-font-lock-level 4)) + (ert-font-lock-test-file (ert-resource-file "font-lock.go") 'go-ts-mode))) + (provide 'go-ts-mode-tests) ;;; go-ts-mode-tests.el ends here -- 2.34.1