Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
a9bc137f
Commit
a9bc137f
authored
Jun 03, 2008
by
Stefan Monnier
Browse files
(perl-font-lock-syntactic-keywords): Try to be
yet a bit more clever at distinguishing / from /.
parent
acc12ef7
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
4 deletions
+24
-4
lisp/ChangeLog
lisp/ChangeLog
+5
-0
lisp/progmodes/perl-mode.el
lisp/progmodes/perl-mode.el
+19
-4
No files found.
lisp/ChangeLog
View file @
a9bc137f
2008-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/perl-mode.el (perl-font-lock-syntactic-keywords): Try to be
yet a bit more clever at distinguishing / from /.
2008-06-03 Kenichi Handa <handa@m17n.org>
* Makefile.in (ELCFILES): Add $(lisp)/language/hanja-util.elc.
...
...
lisp/progmodes/perl-mode.el
View file @
a9bc137f
...
...
@@ -252,7 +252,7 @@ The expansion is entirely correct because it uses the C preprocessor."
;; <file*glob>
(defvar perl-font-lock-syntactic-keywords
;; TODO: here-documents ("
<<\\
(
\\sw\\|['\"]\\)")
'
(;; Turn POD into b-style comments
`
(;; Turn POD into b-style comments
("^\\(=\\)\\sw" (1 "< b"))
("^=cut[ \t]*\\(\n\\)" (1 "> b"))
;; Catch ${ so that ${var} doesn't screw up indentation.
...
...
@@ -267,12 +267,27 @@ The expansion is entirely correct because it uses the C preprocessor."
;; Be careful not to match "sub { (...) ... }".
("\\<sub\\(?:[[:space:]]+[^{}[:punct:][:space:]]+\\)?[[:space:]]*(\\([^)]+\\))"
1 '(1))
;; Regexp and funny quotes.
("\\(?:[?:.,;=!~({[]\\|\\
(
^\\
)
\\
)
[
\t\n]*\\
(
/\\
)
"
;; Regexp and funny quotes. Distinguishing a / that starts a regexp
;; match from the division operator is ...interesting.
;; Basically, / is a regexp match if it's preceded by an infix operator
;; (or some similar separator), or by one of the special keywords
;; corresponding to builtin functions that can take their first arg
;; without parentheses. Of course, that presume we're looking at the
;; *opening* slash. We can mis-match the closing ones, because they are
;; treated separately later in
;; perl-font-lock-special-syntactic-constructs.
(,(concat "\\(?:\\(?:\\(?:^\\|[^$@&%[:word:]]\\
)
"
(regexp-opt '("
split
" "
if
" "
unless
" "
until
" "
while
" "
split
"
"
grep
" "
map
" "
not
" "
or
" "
and
"))
"
\\
)
\\|[?:.,;=!~({[]\\|\\
(
^\\
)
\\
)
[
\t\n]*\\
(
/\\
)
")
(2 (if (and (match-end 1)
(save-excursion
(goto-char (match-end 1))
(skip-chars-backward "
\t\n
")
;; Not 100% correct since we haven't finished setting up
;; the syntax-table before point, but better than nothing.
(forward-comment (- (point-max)))
(put-text-property (point) (match-end 2)
'jit-lock-multiline t)
(not (memq (char-before)
'(?? ?: ?. ?, ?\; ?= ?! ?~ ?\( ?\[)))))
nil ;; A division sign instead of a regexp-match.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment