]> git.eshelyaron.com Git - emacs.git/commitdiff
Add font-locking for variables in go-ts-mode range clauses (bug#71209)
authorNoah Peart <noah.v.peart@gmail.com>
Sun, 26 May 2024 12:34:34 +0000 (05:34 -0700)
committerEshel Yaron <me@eshelyaron.com>
Sat, 1 Jun 2024 17:05:01 +0000 (19:05 +0200)
* 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.

(cherry picked from commit 302142189222f4a1ba75bc2c8ce00307c2499689)

lisp/progmodes/go-ts-mode.el
test/lisp/progmodes/go-ts-mode-resources/font-lock.go [new file with mode: 0644]
test/lisp/progmodes/go-ts-mode-tests.el

index aef224ab3fa400b2e5759d48c7727aba58d571cc..43f7e0425908616fb008ba9b2dc857020b0d9d4d 100644 (file)
              (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 (file)
index 0000000..4e7a8e1
--- /dev/null
@@ -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
index fd9b57e869174b8aac3db2980c01b78712288aa4..f36dbde51038b6e51dac6999d7d58ee282e01eb9 100644 (file)
   (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