From 5f5e280e14efde7c576c282fc7ee3a2c734eb8c5 Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Thu, 27 Mar 2014 17:35:07 -0400 Subject: [PATCH] misc/emacs: do not highlight built-in function if not followed by '(' Name of built-in function is not reserved word in Go, and you can use it as variable name. "new" is often used as local variable, for instance. This patch is to apply font-lock-builtin-face only when built-in function name is followed by '(', so that it doesn't highlight non-function variable that happen to have the same name as built-in function. LGTM=dominik.honnef R=golang-codereviews, dominik.honnef, adonovan CC=golang-codereviews https://golang.org/cl/79260043 --- misc/emacs/go-mode.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/emacs/go-mode.el b/misc/emacs/go-mode.el index a536a17d2c..29b1fa4423 100644 --- a/misc/emacs/go-mode.el +++ b/misc/emacs/go-mode.el @@ -262,7 +262,7 @@ For mode=set, all covered lines will have this weight." ;; doesn't understand that (append `((,(go--regexp-enclose-in-symbol (regexp-opt go-mode-keywords t)) . font-lock-keyword-face) - (,(go--regexp-enclose-in-symbol (regexp-opt go-builtins t)) . font-lock-builtin-face) + (,(concat "\\(" (go--regexp-enclose-in-symbol (regexp-opt go-builtins t)) "\\)[[:space:]]*(") 1 font-lock-builtin-face) (,(go--regexp-enclose-in-symbol (regexp-opt go-constants t)) . font-lock-constant-face) (,go-func-regexp 1 font-lock-function-name-face)) ;; function (not method) name -- 2.50.0