[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/rainbow-delimiters 3d6de240fb 043/188: Merge pull request
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/rainbow-delimiters 3d6de240fb 043/188: Merge pull request #12 from crlf0710/master |
Date: |
Sat, 1 Jan 2022 00:58:51 -0500 (EST) |
branch: elpa/rainbow-delimiters
commit 3d6de240fb921e1aaf422d642125f6a30fe5a2a6
Merge: 6345c1fa4b 73b15f1b77
Author: jlr <jeremy.rayman@gmail.com>
Commit: jlr <jeremy.rayman@gmail.com>
Merge pull request #12 from crlf0710/master
Language 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 898a2754f0 012/188: Interim Changelog update., (continued)
- [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, 2022/01/01
- [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 <=
- [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
- [nongnu] elpa/rainbow-delimiters 164b55be80 036/188: Double the speed of main jit-lock highlighting fn (see commit msg for benchmarks); eliminate bottleneck in large files., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 1d71bda98c 035/188: Rename syntax-table functions to be clearer., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 6345c1fa4b 040/188: Release rainbow-delimiters version 1.3.4 (2012-04-27)., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 9d0683d77d 034/188: 6-15x Speed improvement by enhancing two key functions, see commit message for benchmarks., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 89b748e401 065/188: Make rainbow-delimiters-outermost-only-face-count customizable., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 4eae4bc56f 068/188: Reduce the amount of copy and paste in rainbow-delimiters-propertize-region., ELPA Syncer, 2022/01/01