all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#19740: 25.0.50; Bad comment indentation by `C-M-q' in `emacs-lisp-mode'
@ 2015-02-01  4:19 Drew Adams
  2017-06-14 23:54 ` npostavs
  0 siblings, 1 reply; 3+ messages in thread
From: Drew Adams @ 2015-02-01  4:19 UTC (permalink / raw)
  To: 19740

This is a regression introduced after Emacs 20 (perhaps after 21).

Emacs should not indent the first `;;' comment line here by a space.
That does no good and interferes with alignment of a multi-line
comments and multiple separate comments that are on the same level.

(let* ( ;; If FOOBAR then blah the blahdy blah and other blahs if blah,
       ;; blah, or blah.  Unless, that is, blah, blah, or blah.
       (the-tatas (bar-bar-toto-babar foo1 foo2 foo3))
       ...)

In Emacs 20, this is the result - no extra space inserted.  The two
comment lines, which are logically at the same level, and in this case
are part of a single multi-line comment, are aligned vertically.

(let* (;; If FOOBAR then blah the blahdy blah and other blahs if blah,
       ;; blah, or blah.  Unless, that is, blah, blah, or blah.
       (the-tatas (bar-bar-toto-babar foo1 foo2 foo3))
       ...)

In GNU Emacs 25.0.50.1 (i686-pc-mingw32)
 of 2014-10-20 on LEG570
Bzr revision: 118168 rgm@gnu.org-20141020195941-icp42t8ttcnud09g
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --enable-checking=yes,glyphs CPPFLAGS=-DGLYPH_DEBUG=1'





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#19740: 25.0.50; Bad comment indentation by `C-M-q' in `emacs-lisp-mode'
  2015-02-01  4:19 bug#19740: 25.0.50; Bad comment indentation by `C-M-q' in `emacs-lisp-mode' Drew Adams
@ 2017-06-14 23:54 ` npostavs
  2017-07-06  3:00   ` npostavs
  0 siblings, 1 reply; 3+ messages in thread
From: npostavs @ 2017-06-14 23:54 UTC (permalink / raw)
  To: Drew Adams; +Cc: 19740

[-- Attachment #1: Type: text/plain, Size: 1323 bytes --]

# I accidentally tagged this bug instead of #385 before
tags 385 + patch
quit

Drew Adams <drew.adams@oracle.com> writes:

> This is a regression introduced after Emacs 20 (perhaps after 21).
>
> Emacs should not indent the first `;;' comment line here by a space.
> That does no good and interferes with alignment of a multi-line
> comments and multiple separate comments that are on the same level.
>
> (let* ( ;; If FOOBAR then blah the blahdy blah and other blahs if blah,
>        ;; blah, or blah.  Unless, that is, blah, blah, or blah.
>        (the-tatas (bar-bar-toto-babar foo1 foo2 foo3))
>        ...)
>
> In Emacs 20, this is the result - no extra space inserted.  The two
> comment lines, which are logically at the same level, and in this case
> are part of a single multi-line comment, are aligned vertically.
>
> (let* (;; If FOOBAR then blah the blahdy blah and other blahs if blah,
>        ;; blah, or blah.  Unless, that is, blah, blah, or blah.
>        (the-tatas (bar-bar-toto-babar foo1 foo2 foo3))
>        ...)


This was introduced in [1: bdbe3a8995].  I think in most contexts, it
makes sense to put the space, but it definitely looks wrong in a lisp
let.  Here's patch to override the alignment for comments following an
open in paren in lisp modes.  It requires the patch I posted for #385.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 1979 bytes --]

From f314ec8ee3b99bb6adc5ee789ef07b8b834b5c57 Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Wed, 14 Jun 2017 00:13:06 -0400
Subject: [PATCH v1] Don't put whitespace between open paren and comment in
 Lisp modes (Bug#19740)

* lisp/emacs-lisp/lisp-mode.el (lisp-comment-indent): If current
line's code ends in open paren, set comment indentation exactly to
column following it.
(lisp-mode-variables): Set `comment-indent-function' to
`lisp-comment-indent'.
---
 lisp/emacs-lisp/lisp-mode.el | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 59db00d5f9..985b7513a3 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -602,6 +602,7 @@ (defun lisp-mode-variables (&optional lisp-syntax keywords-case-insensitive
   ;;(set (make-local-variable 'adaptive-fill-mode) nil)
   (setq-local indent-line-function 'lisp-indent-line)
   (setq-local indent-region-function 'lisp-indent-region)
+  (setq-local comment-indent-function #'lisp-comment-indent)
   (setq-local outline-regexp ";;;\\(;* [^ \t\n]\\|###autoload\\)\\|(")
   (setq-local outline-level 'lisp-outline-level)
   (setq-local add-log-current-defun-function #'lisp-current-defun-name)
@@ -735,9 +736,15 @@ (defalias 'common-lisp-mode 'lisp-mode)
 
 (autoload 'lisp-eval-defun "inf-lisp" nil t)
 
-;; May still be used by some external Lisp-mode variant.
-(define-obsolete-function-alias 'lisp-comment-indent
-    'comment-indent-default "22.1")
+(defun lisp-comment-indent ()
+  "Like `comment-indent-default', but don't put space after open paren."
+  (let ((pt (point)))
+    (skip-syntax-backward " ")
+    (if (eq (preceding-char) ?\()
+        (cons (current-column) (current-column))
+      (goto-char pt)
+      (comment-indent-default))))
+
 (define-obsolete-function-alias 'lisp-mode-auto-fill 'do-auto-fill "23.1")
 
 (defcustom lisp-indent-offset nil
-- 
2.11.1


[-- Attachment #3: Type: text/plain, Size: 268 bytes --]



[1: bdbe3a8995]: 2000-09-29 19:11:42 +0000
  (comment-indent-function): Use 0 for ;;; and %%%. (comment-indent): Make sure there's a space between code and comment[...]
  http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=bdbe3a8995c5f1dae126acd4be4872f6af687cd1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* bug#19740: 25.0.50; Bad comment indentation by `C-M-q' in `emacs-lisp-mode'
  2017-06-14 23:54 ` npostavs
@ 2017-07-06  3:00   ` npostavs
  0 siblings, 0 replies; 3+ messages in thread
From: npostavs @ 2017-07-06  3:00 UTC (permalink / raw)
  To: Drew Adams; +Cc: 19740

tags 19740 fixed
close 19740 26.1
quit

npostavs@users.sourceforge.net writes:

>> This is a regression introduced after Emacs 20 (perhaps after 21).
>>
>> Emacs should not indent the first `;;' comment line here by a space.
>> That does no good and interferes with alignment of a multi-line
>> comments and multiple separate comments that are on the same level.
>>
>> (let* ( ;; If FOOBAR then blah the blahdy blah and other blahs if blah,
>>        ;; blah, or blah.  Unless, that is, blah, blah, or blah.
>>        (the-tatas (bar-bar-toto-babar foo1 foo2 foo3))
>>        ...)
>>
>> In Emacs 20, this is the result - no extra space inserted.  The two
>> comment lines, which are logically at the same level, and in this case
>> are part of a single multi-line comment, are aligned vertically.
>>
>> (let* (;; If FOOBAR then blah the blahdy blah and other blahs if blah,
>>        ;; blah, or blah.  Unless, that is, blah, blah, or blah.
>>        (the-tatas (bar-bar-toto-babar foo1 foo2 foo3))
>>        ...)
>
>
> This was introduced in [1: bdbe3a8995].  I think in most contexts, it
> makes sense to put the space, but it definitely looks wrong in a lisp
> let.  Here's patch to override the alignment for comments following an
> open in paren in lisp modes.

Pushed: [2: 7a0170de20] 

[2: 7a0170de20]: 2017-07-05 22:52:36 -0400
  Don't put whitespace between open paren and comment in Lisp modes (Bug#19740)
  http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=7a0170de20fe1225d3eeac099d1e61a0c0410bf3





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-07-06  3:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-01  4:19 bug#19740: 25.0.50; Bad comment indentation by `C-M-q' in `emacs-lisp-mode' Drew Adams
2017-06-14 23:54 ` npostavs
2017-07-06  3:00   ` npostavs

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.