[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/rainbow-delimiters 73b15f1b77 041/188: Use major-mode-spec
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/rainbow-delimiters 73b15f1b77 041/188: Use major-mode-specific escape character recognization |
Date: |
Sat, 1 Jan 2022 00:58:51 -0500 (EST) |
branch: elpa/rainbow-delimiters
commit 73b15f1b77d0ab69a7a6f3cc57f5f7f7055b6af8
Author: CrLF0710 <crlf0710@gmail.com>
Commit: CrLF0710 <crlf0710@gmail.com>
Use major-mode-specific escape character recognization
---
rainbow-delimiters.el | 30 +++++++++++++++++++++++++-----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/rainbow-delimiters.el b/rainbow-delimiters.el
index a2c74ad773..0e22431893 100644
--- a/rainbow-delimiters.el
+++ b/rainbow-delimiters.el
@@ -401,6 +401,27 @@ Sets text properties:
'(font-lock-face nil
rear-nonsticky nil))))
+(make-local-variable 'rainbow-delimiters-escaped-char-predicate)
+(setq rainbow-delimiters-escaped-char-predicate nil)
+
+(defvar rainbow-delimiters-escaped-char-predicate-list
+ '((emacs-lisp-mode . rainbow-delimiters-escaped-char-predicate-emacs-lisp)
+ (inferior-emacs-lisp-mode .
rainbow-delimiters-escaped-char-predicate-emacs-lisp)
+ (lisp-mode . rainbow-delimiters-escaped-char-predicate-lisp)
+ (scheme-mode . rainbow-delimiters-escaped-char-predicate-lisp)
+ (clojure-mode . rainbow-delimiters-escaped-char-predicate-lisp)
+ (inferior-scheme-mode . rainbow-delimiters-escaped-char-predicate-lisp)
+ ))
+
+(defun rainbow-delimiters-escaped-char-predicate-emacs-lisp (loc)
+ (and (eq (char-before loc) ?\\) ; escaped char, e.g. ?\) - not counted
+ (and (not (eq (char-before (1- loc)) ?\\)) ; special-case: ignore ?\\
+ (eq (char-before (1- loc)) ?\?))))
+;; NOTE: standard char read syntax '?)' is not tested for because emacs manual
+;; states punctuation such as delimiters should _always_ use escaped '?\)'
form.
+
+(defun rainbow-delimiters-escaped-char-predicate-lisp (loc)
+ (eq (char-before loc) ?\\))
(defsubst rainbow-delimiters-char-ineligible-p (loc)
"Return t if char at LOC should be skipped, e.g. if inside a comment.
@@ -413,11 +434,8 @@ Returns t if char at loc meets one of the following
conditions:
(or
(nth 3 parse-state) ; inside string?
(nth 4 parse-state) ; inside comment?
- (and (eq (char-before loc) ?\\) ; escaped char, e.g. ?\) - not counted
- (and (not (eq (char-before (1- loc)) ?\\)) ; special-case: ignore ?\\
- (eq (char-before (1- loc)) ?\?))))))
-;; NOTE: standard char read syntax '?)' is not tested for because emacs manual
-;; states punctuation such as delimiters should _always_ use escaped '?\)'
form.
+ (and rainbow-delimiters-escaped-char-predicate
+ (funcall rainbow-delimiters-escaped-char-predicate loc)))))
(defsubst rainbow-delimiters-apply-color (delim depth loc)
@@ -445,6 +463,8 @@ LOC is location of character (delimiter) to be colorized."
"Highlight delimiters in region between START and END.
Used by jit-lock for dynamic highlighting."
+ (setq rainbow-delimiters-escaped-char-predicate
+ (cdr (assoc major-mode
rainbow-delimiters-escaped-char-predicate-list)))
(save-excursion
(goto-char start)
;; START can be anywhere in buffer; determine the nesting depth at START
loc
- [nongnu] elpa/rainbow-delimiters 34a490a998 015/188: Remove workaround from documentation; problem has to be fixed in Emacs by now. Was step 5, (setq-default frame-background-mode 'dark), in order to work around rainbow-delimiters getting an incorrect frame-background-mode and using its light color scheme - causing washed-out looking colors on darker backgrounds., (continued)
- [nongnu] elpa/rainbow-delimiters 34a490a998 015/188: Remove workaround from documentation; problem has to be fixed in Emacs by now. Was step 5, (setq-default frame-background-mode 'dark), in order to work around rainbow-delimiters getting an incorrect frame-background-mode and using its light color scheme - causing washed-out looking colors on darker backgrounds., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 8d3f503cea 006/188: Release version 1.3.1, a bugfix release. Correct typo and revert light background color scheme., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 8acf9bd165 003/188: Update README to link to the appropriate locations at EmacsWiki., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 1d1af1b8df 009/188: Add a Contributors/Thanks session. Thank Satya Mishra for the initial idea to make rainbow-delimiters mode global., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 9fc9343631 014/188: Documentation updates reflecting presence of global-rainbow-delimiters-mode., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 5fe4b7b54d 017/188: Update README.markdown; include instructions re: global-rainbow-delimiters-mode., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 898a2754f0 012/188: Interim Changelog update., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 012a5937e3 020/188: Update README.markdown; include instructions re: global-rainbow-delimiters-mode., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters e302ab778c 026/188: Release rainbow-delimiters version 1.3.2 (2011-10-21)., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 2f17e9d735 053/188: Flush the ppss cache on mode activation., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 73b15f1b77 041/188: Use major-mode-specific escape character recognization,
ELPA Syncer <=
- [nongnu] elpa/rainbow-delimiters fcec6e0ee7 029/188: Update README., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters b9991fb222 047/188: Handle unescaped parentheses characters, e.g. ?(, ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 6e4efb11f0 055/188: Don't hard-code version in the elisp: rely on tags instead, ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 04ba26ead6 056/188: Revert "Don't hard-code version in the elisp: rely on tags instead"., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters d2c5b21464 038/188: Release rainbow-delimiters version 1.3.4., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 3d6de240fb 043/188: Merge pull request #12 from crlf0710/master, ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters d38744e945 045/188: Remove middle initial from my name., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 59d8d64a84 033/188: Merge pull request #9 from To1ne/patch-1, ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters df383f86f7 074/188: Clean up comments and whitespace., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 5a7d0131f8 050/188: README.markdown: minor wording changes., ELPA Syncer, 2022/01/01