From: Peter Kleiweg Date: Tue, 29 May 2012 16:40:12 +0000 (-0400) Subject: Emacs go-mode: fix Emacs freeze-up when copy/pasting from string or comment. X-Git-Tag: go1.1rc2~3090 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=28e9e15802aba9caef309edc5568c48c2965a19f;p=gostls13.git Emacs go-mode: fix Emacs freeze-up when copy/pasting from string or comment. Fixes #3509. Fixes #2767. R=golang-dev, sameer CC=golang-dev https://golang.org/cl/6139066 --- diff --git a/misc/emacs/go-mode.el b/misc/emacs/go-mode.el index b2e2d3ab2b..783d1a8bb5 100644 --- a/misc/emacs/go-mode.el +++ b/misc/emacs/go-mode.el @@ -182,6 +182,10 @@ to and including character (1- go-mode-mark-comment-end)).") marked from the beginning up to this point.") (make-variable-buffer-local 'go-mode-mark-nesting-end) +(defun go-mode-mark-clear-cs (b e l) + "An after-change-function that removes the go-mode-cs text property" + (remove-text-properties b e '(go-mode-cs))) + (defun go-mode-mark-clear-cache (b e) "A before-change-function that clears the comment/string and nesting caches from the modified point on." @@ -709,6 +713,7 @@ functions, and some types. It also provides indentation that is (setq go-mode-mark-cs-end 1 go-mode-mark-nesting-end 1) (add-hook 'before-change-functions #'go-mode-mark-clear-cache nil t) + (add-hook 'after-change-functions #'go-mode-mark-clear-cs nil t) ;; Indentation (set (make-local-variable 'indent-line-function)