]> Cypherpunks repositories - gostls13.git/commitdiff
misc/emacs: update go-mode syntax table and comment handling as
authorSameer Ajmani <sameer@golang.org>
Wed, 9 Jan 2013 15:26:34 +0000 (10:26 -0500)
committerSameer Ajmani <sameer@golang.org>
Wed, 9 Jan 2013 15:26:34 +0000 (10:26 -0500)
suggested by pkleiweg.

Fixes #3471.

R=adonovan, pkleiweg, rsc
CC=golang-dev
https://golang.org/cl/7060056

misc/emacs/go-mode.el

index 960a3c6dc3021a864b1f7b81a06def8764f9c18e..a9d9ef5e00127784877083163fbed1486f24cfcb 100644 (file)
@@ -33,8 +33,8 @@
     ;; Operators (punctuation)
     (modify-syntax-entry ?+  "." st)
     (modify-syntax-entry ?-  "." st)
-    (modify-syntax-entry ?*  ". 23" st)                                    ; also part of comments
-    (modify-syntax-entry ?/ (if (featurep 'xemacs) ". 1456" ". 124b") st)  ; ditto
+    (modify-syntax-entry ?*  "." st)
+    (modify-syntax-entry ?/  "." st)
     (modify-syntax-entry ?%  "." st)
     (modify-syntax-entry ?&  "." st)
     (modify-syntax-entry ?|  "." st)
@@ -50,9 +50,6 @@
     (modify-syntax-entry ?`  "." st)
     (modify-syntax-entry ?\\ "." st)
 
-    ;; Newline is a comment-ender.
-    (modify-syntax-entry ?\n "> b" st)
-
     st)
   "Syntax table for Go mode.")
 
@@ -552,9 +549,8 @@ token on the line."
          (not (looking-at go-mode-non-terminating-keywords-regexp)))))))
 
 (defun go-mode-whitespace-p (char)
-  "Is newline, or char whitespace in the syntax table for go."
-  (or (eq char ?\n)
-      (= (char-syntax char) ?\ )))
+  "Is char whitespace in the syntax table for go."
+  (eq 32 (char-syntax char)))
 
 (defun go-mode-backward-skip-comments ()
   "Skip backward over comments and whitespace."
@@ -573,7 +569,7 @@ token on the line."
                ((go-mode-in-comment)
                 ;; move point to char preceeding current comment
                 (goto-char (1- (car (go-mode-in-comment)))))
-               
+
                ;; not in a comment or whitespace? we must be done.
                (t (setq loop-guard nil)
                   (forward-char 1)))))))
@@ -727,6 +723,8 @@ functions, and some types.  It also provides indentation that is
   ;; Comments
   (set (make-local-variable 'comment-start) "// ")
   (set (make-local-variable 'comment-end)   "")
+  (set (make-local-variable 'comment-use-syntax) nil)
+  (set (make-local-variable 'comment-start-skip) "\\([ \t]*\\)// ")
 
   ;; Go style
   (setq indent-tabs-mode t)