emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/go-mode 71c7f59 101/495: use correct regexps for labels


From: ELPA Syncer
Subject: [nongnu] elpa/go-mode 71c7f59 101/495: use correct regexps for labels
Date: Sat, 7 Aug 2021 09:04:52 -0400 (EDT)

branch: elpa/go-mode
commit 71c7f595be952934f06fe3be752eced0b1e7c8fc
Author: Dominik Honnef <dominikh@fork-bomb.org>
Commit: Dominik Honnef <dominikh@fork-bomb.org>

    use correct regexps for labels
    
    labels don't only consist of word characters but also unicode and 
underscores
---
 go-mode.el | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/go-mode.el b/go-mode.el
index ba1c8ef..3f9bdb9 100644
--- a/go-mode.el
+++ b/go-mode.el
@@ -13,6 +13,7 @@
 (defconst go-dangling-operators-regexp "[^-]-\\|[^+]\\+\\|[/*&><.=|^]")
 (defconst gofmt-stdin-tag "<standard input>")
 (defconst go-identifier-regexp "[[:word:][:multibyte:]_]+")
+(defconst go-label-regexp go-identifier-regexp)
 (defconst go-type-regexp "[[:word:][:multibyte:]_*]+")
 (defconst go-func-regexp (concat "\\<func\\>\\s *\\(" go-identifier-regexp 
"\\)"))
 (defconst go-func-meth-regexp (concat "\\<func\\>\\s *\\(?:(\\s *" 
go-identifier-regexp "\\s +" go-type-regexp "\\s *)\\s *\\)?\\(" 
go-identifier-regexp "\\)("))
@@ -95,8 +96,8 @@
      ;; Like the original go-mode this also marks compound literal
      ;; fields. There, it was marked as to fix, but I grew quite
      ;; accustomed to it, so it'll stay for now.
-     (,(concat "^[[:space:]]*\\(" go-identifier-regexp 
"\\)[[:space:]]*:\\(\\S.\\|$\\)") 1 font-lock-constant-face) ;; Labels and 
compound literal fields
-     ("\\<\\(goto\\|break\\|continue\\)\\>[[:space:]]*\\(\\w+\\)" 2 
font-lock-constant-face)))) ;; labels in goto/break/continue
+     (,(concat "^[[:space:]]*\\(" go-label-regexp 
"\\)[[:space:]]*:\\(\\S.\\|$\\)") 1 font-lock-constant-face) ;; Labels and 
compound literal fields
+     (,(concat "\\<\\(goto\\|break\\|continue\\)\\>[[:space:]]*\\(" 
go-label-regexp "\\)") 2 font-lock-constant-face)))) ;; labels in 
goto/break/continue
 
 (defvar go-mode-map
   (let ((m (make-sparse-keymap)))
@@ -150,7 +151,7 @@ STOP-AT-STRING is not true, over strings."
         (go-goto-beginning-of-string-or-comment))
     (setq pos (point))
     (beginning-of-line)
-    (if (or (looking-at "^[[:word:]]+:") (looking-at "^[[:space:]]*\\(case 
.+\\|default\\):"))
+    (if (or (looking-at (concat "^" go-label-regexp ":")) (looking-at 
"^[[:space:]]*\\(case .+\\|default\\):"))
         (end-of-line 0)
       (goto-char pos))
     (if (/= start-pos (point))
@@ -228,7 +229,7 @@ STOP-AT-STRING is not true, over strings."
     (if (go-in-string-or-comment-p)
         (goto-char point)
       (setq indent (go-indentation-at-point))
-      (if (looking-at "[[:word:]]+:\\([[:space:]]*/.+\\)?$\\|case 
.+:\\|default:")
+      (if (looking-at (concat go-label-regexp ":\\([[:space:]]*/.+\\)?$\\|case 
.+:\\|default:"))
           (decf indent tab-width))
       (setq shift-amt (- indent (current-column)))
       (if (zerop shift-amt)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]