Improve last change
* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Use ppss to check escaping and add help-echo.
This commit is contained in:
parent
4086d850dc
commit
46fcaf3361
1 changed files with 11 additions and 7 deletions
|
@ -412,13 +412,17 @@ This will generate compile-time constants from BINDINGS."
|
|||
(,(concat "\\\\\\\\\\[\\(" lisp-mode-symbol-regexp "\\)\\]")
|
||||
(1 font-lock-constant-face prepend))
|
||||
;; Ineffective backslashes (typically in need of doubling).
|
||||
("\\(?:[^\\]\\|^\\)\\(?:\\\\\\\\\\)*\\(\\(\\\\\\)\\([^\"\\]\\)\\)"
|
||||
(2 (and (nth 3 (syntax-ppss))
|
||||
(equal (ignore-errors
|
||||
(car (read-from-string
|
||||
(format "\"%s\"" (match-string 1)))))
|
||||
(match-string 3))
|
||||
font-lock-warning-face)
|
||||
("\\(\\\\\\)\\([^\"\\]\\)"
|
||||
(1 (let ((ppss (save-excursion (syntax-ppss (match-beginning 0)))))
|
||||
(and (nth 3 ppss) ;Inside a string.
|
||||
(not (nth 5 ppss)) ;The \ is not itself \-escaped.
|
||||
(equal (ignore-errors
|
||||
(car (read-from-string
|
||||
(format "\"%s\""
|
||||
(match-string-no-properties 0)))))
|
||||
(match-string-no-properties 2))
|
||||
`(face ,font-lock-warning-face
|
||||
help-echo "This \\ has no effect")))
|
||||
prepend))
|
||||
;; Words inside ‘’ and `' tend to be symbol names.
|
||||
(,(concat "[`‘]\\(\\(?:\\sw\\|\\s_\\|\\\\.\\)"
|
||||
|
|
Loading…
Add table
Reference in a new issue