[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#31656: 26.1; `fill-paragraph' malformats in emacs-lisp-mode
From: |
Noam Postavsky |
Subject: |
bug#31656: 26.1; `fill-paragraph' malformats in emacs-lisp-mode |
Date: |
Fri, 01 Jun 2018 05:39:39 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Stefan Guath <stefan@automata.se>
>> Date: Wed, 30 May 2018 14:50:01 +0200
>>
>> `emacs-lisp-docstring-fill-column' shadows `fill-column' in too many cases
>> in emacs-lisp-mode. The
>> documentation of `emacs-lisp-docstring-fill-column' states: "Value of
>> ‘fill-column’ to use when filling a
>> docstring". But it incorrectly seems to be used in a lot more cases than
>> just in a docstring (the only case that
>> I've found where ‘fill-column’ is actually respected is within comments). A
>> work-around is to set
>> `emacs-lisp-docstring-fill-column' to nil, but it would be nice to have it
>> working properly instead.
>>
>> I might be missing something, but think the incorrect behavior is to be
>> found in `lisp-fill-paragraph' that is
>> invoked by `fill-paragraph' through `fill-paragraph-function'. It seems like
>> `lisp-fill-paragraph' unconditionally
>> sets `fill-column' to `emacs-lisp-docstring-fill-column' without checking
>> whether point is within a doc string
>> first. The only requirements for enable shadowing currently seems to be
>> "(and (integerp
>> emacs-lisp-docstring-fill-column) (derived-mode-p 'emacs-lisp-mode))", which
>> doesn't seems sufficient.
>
> AFAICT, this behavior was in Emacs since about forever (since 1995, t
> be precise). So maybe we just need to adjust the doc string to
> reflect the reality?
>
> Or are there real-life use cases where this behavior is grossly
> inappropriate?
I don't think it makes sense to apply normal plain text filling rules to
code. Maybe it doesn't come up much because people don't usually call
M-q on code, and usually lines of code are kept short enough that they
wouldn't get filled anyway. But picking a random example from rgrep
^.\{100,\}$ on the Emacs code base:
(defun feedmail-default-date-generator (maybe-file)
"Default function for generating Date: header contents."
(feedmail-say-debug ">in-> feedmail-default-date-generator")
(when maybe-file
(feedmail-say-debug (concat "4 cre " (feedmail-rfc822-date (nth 4
(file-attributes maybe-file)))))
(feedmail-say-debug (concat "5 mod " (feedmail-rfc822-date (nth 5
(file-attributes maybe-file)))))
(feedmail-say-debug (concat "6 sta " (feedmail-rfc822-date (nth 6
(file-attributes maybe-file))))))
(let ((date-time))
(if (and (not feedmail-queue-use-send-time-for-date) maybe-file)
(setq date-time (nth 5 (file-attributes maybe-file))))
(feedmail-rfc822-date date-time))
)
Running M-q on every line turns it into this nonsense:
(defun feedmail-default-date-generator (maybe-file)
"Default function for generating Date: header contents."
(feedmail-say-debug ">in-> feedmail-default-date-generator")
(when maybe-file
(feedmail-say-debug (concat "4
cre " (feedmail-rfc822-date (nth 4 (file-attributes
maybe-file)))))
(feedmail-say-debug (concat "5
mod " (feedmail-rfc822-date (nth 5 (file-attributes
maybe-file)))))
(feedmail-say-debug (concat "6
sta " (feedmail-rfc822-date (nth 6 (file-attributes
maybe-file))))))
(let ((date-time))
(if (and (not feedmail-queue-use-send-time-for-date)
maybe-file)
(setq date-time (nth 5 (file-attributes maybe-file))))
(feedmail-rfc822-date date-time)) )
- bug#31656: 26.1; `fill-paragraph' malformats in emacs-lisp-mode, Eli Zaretskii, 2018/06/01
- bug#31656: 26.1; `fill-paragraph' malformats in emacs-lisp-mode,
Noam Postavsky <=
- bug#31656: 26.1; `fill-paragraph' malformats in emacs-lisp-mode, Eli Zaretskii, 2018/06/01
- bug#31656: 26.1; `fill-paragraph' malformats in emacs-lisp-mode, Noam Postavsky, 2018/06/01
- bug#31656: 26.1; `fill-paragraph' malformats in emacs-lisp-mode, Eli Zaretskii, 2018/06/02
- bug#31656: 26.1; `fill-paragraph' malformats in emacs-lisp-mode, Noam Postavsky, 2018/06/02
- bug#31656: 26.1; `fill-paragraph' malformats in emacs-lisp-mode, martin rudalics, 2018/06/02
- bug#31656: 26.1; `fill-paragraph' malformats in emacs-lisp-mode, Noam Postavsky, 2018/06/02