]> code.delx.au - gnu-emacs-elpa/commitdiff
Better sexp uncommenting
authorArtur Malabarba <bruce.connor.am@gmail.com>
Fri, 25 Sep 2015 23:06:35 +0000 (00:06 +0100)
committerArtur Malabarba <bruce.connor.am@gmail.com>
Fri, 25 Sep 2015 23:06:35 +0000 (00:06 +0100)
sotlisp.el

index 5bba0ca0e21e32448c87f0ed4e64c76030ecdcb9..bb2e8a1a8ca5207c998b0aeafcb60bee6d61d353 100644 (file)
@@ -620,17 +620,21 @@ With a prefix argument, defines a `defvar' instead of a `defcustom'."
                                     (line-beginning-position)
                                     t)
                 (ignore-errors
-                  (while (looking-at-p comment-start-skip)
-                    (forward-char -1)))
+                  (while (looking-at comment-start-skip)
+                    (forward-char -1))
+                  (unless (looking-at "[\n\r[:blank]]")
+                    (forward-char 1)))
                 (point-marker))))
     (unless (= beg end)
       (uncomment-region beg end)
       (goto-char p)
       ;; Indentify the "top-level" sexp inside the comment.
-      (while (and (ignore-errors (backward-up-list) t)
-                  (>= (point) beg))
-        (skip-chars-backward (rx (syntax expression-prefix)))
-        (setq p (point-marker)))
+      (ignore-errors
+        (while (>= (point) beg)
+          (backward-prefix-chars)
+          (skip-chars-backward "\r\n[:blank:]")
+          (setq p (point-marker))
+          (backward-up-list)))
       ;; Re-comment everything before it. 
       (ignore-errors
         (comment-region beg p))