GNU bug report logs -
#64190
30.0.50; cperl-mode.el: bad recognition of multiline declarations
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 01 Jul 2023 20:20:21 +0000
with message-id <87o7kvo03e.fsf <at> oook.m.uunet.de>
and subject line Multiline declarations in cperl-mode are fixed in the repository.
has caused the debbugs.gnu.org bug report #64190,
regarding 30.0.50; cperl-mode.el: bad recognition of multiline declarations
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
64190: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64190
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Owner: haj <at> posteo.de
In CPerl mode, several constructs aren't recognized when they span
several lines, leading to bad fontification and indentation. "Modern"
Perl declarations like subroutine signatures and class attributes are
more likely to span more than one line, so this should be fixed.
Example 1 (copy to a buffer and run M-x cperl-mode):
Only the first line is fontified here:
----------------------------------------------------------------------
my ($var1,
$var2,
$var3)
----------------------------------------------------------------------
Example 2 (copy to a buffer and run M-x cperl-mode):
The package name isn't fontified.
----------------------------------------------------------------------
package Foo
0.1;
----------------------------------------------------------------------
Example 3 (this happens only while entering that code): When you type in
a subroutine like this, the subroutine name isn't fontified.
----------------------------------------------------------------------
sub do_stuff
{
...;
}
----------------------------------------------------------------------
Example 4 (this happens only while typing): Put the cursor at the
beginning of the second line and enter a space. The rest of the buffer
is fontified as string.
----------------------------------------------------------------------
sub do_stuff ($param1,
$param2)
{
...;
}
sub oops { ...; }
----------------------------------------------------------------------
Examples 3 and 4 can be recovered from by running M-x cperl-find-pods-heres
or by restarting M-x cperl-mode: They are caused by cperl-mode not
reacting correctly to calls from jit-lock.
--
Cheers,
haj
[Message part 3 (message/rfc822, inline)]
Fontification of multiline signatures has been fixed in the Emacs master
branch. cperl-mode.el as available in the repository can be used with
Emacs 28 and 27 (and could be backported to Emacs 26 if there is
interest).
--
Cheers,
haj
This bug report was last modified 2 years and 19 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.