GNU bug report logs -
#30549
25.2; perl-mode: font lock improvement
Previous Next
Reported by: Evgeni Kolev <evgeni.d.kolev <at> gmail.com>
Date: Tue, 20 Feb 2018 16:21:02 UTC
Severity: minor
Tags: patch
Found in version 25.2
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 03 Mar 2018 13:09:11 +0200
with message-id <837eqtv2js.fsf <at> gnu.org>
and subject line Re: bug#30549: 25.2; perl-mode: font lock improvement
has caused the debbugs.gnu.org bug report #30549,
regarding 25.2; perl-mode: font lock improvement
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
30549: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=30549
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
I'm reporting an issue with perl-mode's font lock for perl keywords, and
suggesting a fix.
To reproduce:
- emacs -Q
- clear the scratch buffer
- M-x perl-mode
- enter the following text:
use Fake;
my $use = 123;
my $var = 123;
- observe the issue: `$use` is incorrectly highlighted - it should be
highlighted with the same color as `$var`, but it's highlighted with the
same color as `use` (on the first line).
The fix I suggest is borrowed from cperl-mode - extend the font lock regex
to *not* match keywords if they start with a perl sigil.
The diff is below, please let me know if it can be improved. I've signed
the copyright assignment.
From 8d1977cfc6c4884b231270c33c3bdabbd16b14aa Mon Sep 17 00:00:00 2001
From: Evgeni Kolev <evgenysw <at> gmail.com>
Date: Tue, 20 Feb 2018 18:14:29 +0200
Subject: [PATCH] lisp/progmodes/perl-mode.el: keyword regex must not match
sigils
---
lisp/progmodes/perl-mode.el | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index 9948078..c1d94ac 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -165,7 +165,7 @@ perl-font-lock-keywords-1
;; Fontify function and package names in declarations.
("\\<\\(package\\|sub\\)\\>[ \t]*\\(\\sw+\\)?"
(1 font-lock-keyword-face) (2 font-lock-function-name-face nil t))
- ("\\<\\(import\\|no\\|require\\|use\\)\\>[ \t]*\\(\\sw+\\)?"
+ ("\\(^\\|[^$@%&\\]\\)\\<\\(import\\|no\\|require\\|use\\)\\>[
\t]*\\(\\sw+\\)?"
(1 font-lock-keyword-face) (2 font-lock-constant-face nil t)))
"Subdued level highlighting for Perl mode.")
--
2.9.0
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
> From: Evgeni Kolev <evgeni.d.kolev <at> gmail.com>
> Date: Tue, 20 Feb 2018 18:19:55 +0200
>
> I'm reporting an issue with perl-mode's font lock for perl keywords, and
> suggesting a fix.
>
> To reproduce:
>
> - emacs -Q
> - clear the scratch buffer
> - M-x perl-mode
> - enter the following text:
>
> use Fake;
> my $use = 123;
> my $var = 123;
>
> - observe the issue: `$use` is incorrectly highlighted - it should be
> highlighted with the same color as `$var`, but it's highlighted with the
> same color as `use` (on the first line).
>
> The fix I suggest is borrowed from cperl-mode - extend the font lock regex
> to *not* match keywords if they start with a perl sigil.
Thanks, pushed to the master branch.
In the future, please accompany your contributions with a Git log
message formatted like ChangeLog, see CONTRIBUTE for the details.
This bug report was last modified 7 years and 83 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.