* bug#15004: 24.3; fill-paragraph on perl-mode indented comment at start of buffer
@ 2013-08-01 23:43 Kevin Ryde
2022-09-21 12:32 ` Mauro Aranda
0 siblings, 1 reply; 2+ messages in thread
From: Kevin Ryde @ 2013-08-01 23:43 UTC (permalink / raw)
To: 15004
Starting from emacs -Q,
(progn
(switch-to-buffer "xx")
(erase-buffer)
(insert " # aa aa\n")
(insert " # bb bb\n")
(insert " # cc cc\n")
(insert " # dd dd\n")
(goto-char (point-min))
(perl-mode)
(fill-paragraph nil))
gives
# aa aa
# bb bb cc cc dd dd
whereas I hoped the fill-paragraph would include the first line too,
# aa aa bb bb cc cc dd dd
The problem is only if the lines are at the start of the buffer.
I noticed this under filladapt which narrows to its desired target
region and fills that. The problem occurs both at actual start of
buffer and when narrowed.
I couldn't tell where it might go wrong except that it might be related
to perl-mode using comment-start-skip "\\(^\\|\\s-\\);?#+ *" which has a
\\(\\) group to demand preceding whitespace if not at start of line.
If you change it to
(set (make-local-variable 'comment-start-skip) ";?#+[ \t]*")
then the fill correctly includes the first line.
In GNU Emacs 24.3.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2013-05-29 on blah.blah, modified by Debian
System Description: Debian GNU/Linux 7.0 (wheezy)
Configured using:
`configure '--build' 'i486-linux-gnu' '--build' 'i486-linux-gnu'
'--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
'--localstatedir=/var/lib' '--infodir=/usr/share/info'
'--mandir=/usr/share/man' '--with-pop=yes'
'--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
'--with-crt-dir=/usr/lib/i386-linux-gnu' '--with-x=yes'
'--with-x-toolkit=lucid' '--with-toolkit-scroll-bars' '--without-gconf'
'build_alias=i486-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall'
'LDFLAGS=-Wl,-z,relro -Wl,-znocombreloc'
'CPPFLAGS=-D_FORTIFY_SOURCE=2''
Important settings:
value of $LANG: en_AU
locale-coding-system: iso-latin-1-unix
default enable-multibyte-characters: t
^ permalink raw reply [flat|nested] 2+ messages in thread
* bug#15004: 24.3; fill-paragraph on perl-mode indented comment at start of buffer
2013-08-01 23:43 bug#15004: 24.3; fill-paragraph on perl-mode indented comment at start of buffer Kevin Ryde
@ 2022-09-21 12:32 ` Mauro Aranda
0 siblings, 0 replies; 2+ messages in thread
From: Mauro Aranda @ 2022-09-21 12:32 UTC (permalink / raw)
To: 15004; +Cc: Kevin Ryde
Kevin Ryde <user42@zip.com.au> writes:
> Starting from emacs -Q,
>
> (progn
> (switch-to-buffer "xx")
> (erase-buffer)
> (insert " # aa aa\n")
> (insert " # bb bb\n")
> (insert " # cc cc\n")
> (insert " # dd dd\n")
> (goto-char (point-min))
> (perl-mode)
> (fill-paragraph nil))
>
> gives
>
> # aa aa
> # bb bb cc cc dd dd
>
> whereas I hoped the fill-paragraph would include the first line too,
>
> # aa aa bb bb cc cc dd dd
I can reproduce this on current master.
> The problem is only if the lines are at the start of the buffer.
Indeed, but that seems to be out of sheer luck: somehow the narrowing
goes from the newline previous to the start of comment when the lines
are not at the start of the buffer.
> I couldn't tell where it might go wrong except that it might be related
> to perl-mode using comment-start-skip "\\(^\\|\\s-\\);?#+ *" which has a
> \\(\\) group to demand preceding whitespace if not at start of line.
> If you change it to
>
> (set (make-local-variable 'comment-start-skip) ";?#+[ \t]*")
>
> then the fill correctly includes the first line.
>
I don't know why comment-start-skip is set this way in perl-mode. It
tries to do something more than just match the start of a comment and
skip to the body, and that confuses me.
Maybe it can be simplified to just "#+[ \t]*". Light testing shows no
problem with doing that. In fact, by no demanding preceding whitespace,
the following works as expected:
sub foo {
$bar = shift;#Just testing.
}
With point anywhere inside the function, C-M-q moves the comment to
comment-column.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-09-21 12:32 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-01 23:43 bug#15004: 24.3; fill-paragraph on perl-mode indented comment at start of buffer Kevin Ryde
2022-09-21 12:32 ` Mauro Aranda
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).