emacs-diffs
[Top][All Lists]
Advanced

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

master 0870ebb: Allow commenting out white space lines in latex-mode


From: Lars Ingebrigtsen
Subject: master 0870ebb: Allow commenting out white space lines in latex-mode
Date: Thu, 28 Jan 2021 01:09:28 -0500 (EST)

branch: master
commit 0870ebb3cbfcb097d85eea5eacaf992dd88ed204
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Allow commenting out white space lines in latex-mode
    
    * lisp/newcomment.el (comment-region-default-1): Allow commenting
    out whitespace-only regions (bug#41793).
    
    * lisp/textmodes/tex-mode.el (latex--comment-region): Use it.
    (latex-mode): Set a comment style shim.
---
 lisp/newcomment.el         | 30 +++++++++++++++++++++---------
 lisp/textmodes/tex-mode.el |  7 ++++++-
 2 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index 5d0d105..4216fc1 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -1221,21 +1221,33 @@ changed with `comment-style'."
     ;; FIXME: maybe we should call uncomment depending on ARG.
     (funcall comment-region-function beg end arg)))
 
-(defun comment-region-default-1 (beg end &optional arg)
+(defun comment-region-default-1 (beg end &optional arg noadjust)
+  "Comment region between BEG and END.
+See `comment-region' for ARG.  If NOADJUST, do not skip past
+leading/trailing space when determining the region to comment
+out."
   (let* ((numarg (prefix-numeric-value arg))
         (style (cdr (assoc comment-style comment-styles)))
         (lines (nth 2 style))
         (block (nth 1 style))
         (multi (nth 0 style)))
 
-    ;; We use `chars' instead of `syntax' because `\n' might be
-    ;; of end-comment syntax rather than of whitespace syntax.
-    ;; sanitize BEG and END
-    (goto-char beg) (skip-chars-forward " \t\n\r") (beginning-of-line)
-    (setq beg (max beg (point)))
-    (goto-char end) (skip-chars-backward " \t\n\r") (end-of-line)
-    (setq end (min end (point)))
-    (if (>= beg end) (error "Nothing to comment"))
+    (if noadjust
+        (when (bolp)
+          (setq end (1- end)))
+      ;; We use `chars' instead of `syntax' because `\n' might be
+      ;; of end-comment syntax rather than of whitespace syntax.
+      ;; sanitize BEG and END
+      (goto-char beg)
+      (skip-chars-forward " \t\n\r")
+      (beginning-of-line)
+      (setq beg (max beg (point)))
+      (goto-char end)
+      (skip-chars-backward " \t\n\r")
+      (end-of-line)
+      (setq end (min end (point)))
+      (when (>= beg end)
+        (error "Nothing to comment")))
 
     ;; sanitize LINES
     (setq lines
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index c4e4864..ce665e6 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -1169,7 +1169,12 @@ subshell is initiated, `tex-shell-hook' is run."
   (setq-local outline-regexp latex-outline-regexp)
   (setq-local outline-level #'latex-outline-level)
   (setq-local forward-sexp-function #'latex-forward-sexp)
-  (setq-local skeleton-end-hook nil))
+  (setq-local skeleton-end-hook nil)
+  (setq-local comment-region-function #'latex--comment-region)
+  (setq-local comment-style 'plain))
+
+(defun latex--comment-region (beg end &optional arg)
+  (comment-region-default-1 beg end arg t))
 
 ;;;###autoload
 (define-derived-mode slitex-mode latex-mode "SliTeX"



reply via email to

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