* 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.