[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/rainbow-delimiters 6a68bdb9e3 024/188: Inherit from curren
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/rainbow-delimiters 6a68bdb9e3 024/188: Inherit from current major-mode syntax table upon activation of mode. |
Date: |
Sat, 1 Jan 2022 00:58:49 -0500 (EST) |
branch: elpa/rainbow-delimiters
commit 6a68bdb9e371cfd253519fc94b2436a86ed6523b
Author: Jeremy L. Rayman <jeremy.rayman@gmail.com>
Commit: Jeremy L. Rayman <jeremy.rayman@gmail.com>
Inherit from current major-mode syntax table upon activation of mode.
This corrects problems seen in various modes (perl, c++, lua) caused by
basing the syntax table(s) used in rainbow-delimiters on
emacs-lisp-mode-syntax-table. Delimiters should now colorize correctly taking
into account the specifics of the syntax of whatever language or major-mode the
buffer is in.
---
rainbow-delimiters.el | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/rainbow-delimiters.el b/rainbow-delimiters.el
index e6366fa2b8..071d88bcc5 100644
--- a/rainbow-delimiters.el
+++ b/rainbow-delimiters.el
@@ -308,24 +308,32 @@ e.g. 'rainbow-delimiters-depth-1-face'."
;;; Nesting level
+(defvar rainbow-delimiters-all-delimiters-syntax-table nil
+ "Syntax table (inherited from buffer major-mode) which uses all delimiters.
+
+When rainbow-delimiters-minor-mode is activated, it sets this variable and
+the other rainbow-delmiters specific syntax tables based on the current
+major-mode. This syntax table is constructed by function
+rainbow-delimiters-make-syntax-table-all-delimiters.")
+
;; syntax-table: used with parse-partial-sexp for determining current depth.
-(defvar rainbow-delimiters-delim-syntax-table
- (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table)))
+(defun rainbow-delimiters-make-syntax-table-all-delimiters (syntax-table)
+ "Syntax table for recognizing all supported delimiter types."
+ (let ((table (copy-syntax-table syntax-table)))
(modify-syntax-entry ?\( "() " table)
(modify-syntax-entry ?\) ")( " table)
(modify-syntax-entry ?\[ "(]" table)
(modify-syntax-entry ?\] ")[" table)
(modify-syntax-entry ?\{ "(}" table)
(modify-syntax-entry ?\} "){" table)
- table)
- "Syntax table for recognizing all supported delimiter types.")
+ table))
(defun rainbow-delimiters-depth (point)
"Return # of nested levels of parens, brackets, braces POINT is inside of."
(save-excursion
(beginning-of-defun)
(let ((depth
- (with-syntax-table rainbow-delimiters-delim-syntax-table
+ (with-syntax-table rainbow-delimiters-all-delimiters-syntax-table
(car (parse-partial-sexp (point) point)))))
(if (>= depth 0)
depth
@@ -463,7 +471,10 @@ Used by jit-lock for dynamic highlighting."
(progn
(jit-lock-unregister 'rainbow-delimiters-propertize-region)
(rainbow-delimiters-unpropertize-region (point-min) (point-max)))
- (jit-lock-register 'rainbow-delimiters-propertize-region t)))
+ (jit-lock-register 'rainbow-delimiters-propertize-region t)
+ ;; Create necessary syntax tables inheriting from current major-mode.
+ (set (make-local-variable 'rainbow-delimiters-all-delimiters-syntax-table)
+ (rainbow-delimiters-make-syntax-table-all-delimiters
(syntax-table)))))
;;;###autoload
(define-globalized-minor-mode global-rainbow-delimiters-mode
- [nongnu] branch elpa/rainbow-delimiters created (now d576e6694a), ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 13deb06eab 005/188: Use markdown syntax in the README file., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters a99e69234a 022/188: Make (global-rainbow-delimiters-mode 1) work as intended., ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters e6f14c2273 023/188: Merge pull request #2 from immerrr/patch-1, ELPA Syncer, 2022/01/01
- [nongnu] elpa/rainbow-delimiters 6a68bdb9e3 024/188: Inherit from current major-mode syntax table upon activation of mode.,
ELPA Syncer <=
- [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