diff options
author | Evgeni Kolev <evgenysw@gmail.com> | 2017-03-27 09:30:10 +0300 |
---|---|---|
committer | Noam Postavsky <npostavs@gmail.com> | 2017-04-01 17:32:18 -0400 |
commit | a184a7edc58e1e053aa317a0f162df7e225597e1 (patch) | |
tree | eba0ab1b3f93daf19e5470eb6f1042d3d0256e41 /lisp/progmodes/perl-mode.el | |
parent | f4ecb65f335e450dfa8f0ee8a496ac78cbbfdc51 (diff) | |
download | emacs-a184a7edc58e1e053aa317a0f162df7e225597e1.tar.gz |
Propertize only perl prototype chars `][$%&*;+@\' as punctuation
This prevents variables in signatures such as `sub add ($a, $b)' from
being treated as punctuation.
* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
Strictly match only prototype characters as punctuation. (Bug#26037)
Copyright-paperwork-exempt: yes
Diffstat (limited to 'lisp/progmodes/perl-mode.el')
-rw-r--r-- | lisp/progmodes/perl-mode.el | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index a516f07e72f..b75f32ee200 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el @@ -255,9 +255,11 @@ ;; format statements ("^[ \t]*format.*=[ \t]*\\(\n\\)" (1 (prog1 "\"" (perl-syntax-propertize-special-constructs end)))) - ;; Funny things in `sub' arg-specs like `sub myfun ($)' or `sub ($)'. - ;; Be careful not to match "sub { (...) ... }". - ("\\<sub\\(?:[\s\t\n]+\\(?:\\sw\\|\\s_\\)+\\)?[\s\t\n]*(\\([^)]+\\))" + ;; Propertize perl prototype chars `$%&*;+@\[]' as punctuation + ;; in `sub' arg-specs like `sub myfun ($)' and `sub ($)'. But + ;; don't match subroutine signatures like `sub add ($a, $b)', or + ;; anonymous subs like "sub { (...) ... }". + ("\\<sub\\(?:[\s\t\n]+\\(?:\\sw\\|\\s_\\)+\\)?[\s\t\n]*(\\([][$%&*;+@\\]+\\))" (1 ".")) ;; Turn __DATA__ trailer into a comment. ("^\\(_\\)_\\(?:DATA\\|END\\)__[ \t]*\\(?:\\(\n\\)#.-\\*-.*perl.*-\\*-\\|\n.*\\)" |