[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/indent-bars dab18627aa 1/3: no-descend-lists: recognize
From: |
ELPA Syncer |
Subject: |
[elpa] externals/indent-bars dab18627aa 1/3: no-descend-lists: recognize list-of-characters to refine what counts |
Date: |
Wed, 25 Sep 2024 15:58:13 -0400 (EDT) |
branch: externals/indent-bars
commit dab18627aa0ea2890ac812772f219bcf45719cd7
Author: JD Smith <93749+jdtsmith@users.noreply.github.com>
Commit: JD Smith <93749+jdtsmith@users.noreply.github.com>
no-descend-lists: recognize list-of-characters to refine what counts
E.g. in c-modes {} starts a list context, usually unwanted.
---
indent-bars.el | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/indent-bars.el b/indent-bars.el
index 4459bd4eb0..980233f6aa 100644
--- a/indent-bars.el
+++ b/indent-bars.el
@@ -417,9 +417,16 @@ than the indent level of the string's starting line."
(defcustom indent-bars-no-descend-lists t
"Configure bar behavior inside lists.
If non-nil, displayed bars will go no deeper than the indent
-level at the starting line of the innermost containing list."
+level at the starting line of the innermost containing list. If
+t, any list recognized by the active syntax table will be used to
+identify enclosing list contexts. If set to a list of
+characters, only opening characters on this list will activate
+bar suppression."
:local t
- :type 'boolean
+ :type '(choice
+ (const :tag "Disabled" nil)
+ (const :tag "Any list element" t)
+ (repeat :tag "List of open paren chars" character))
:set #'indent-bars--custom-set
:group 'indent-bars)
@@ -962,7 +969,11 @@ and can return an updated depth."
(let* ((p (prog1 (point) (forward-line 0)))
(ppss (syntax-ppss)) ; moves point!
(ss (and indent-bars-no-descend-string (nth 8 ppss)))
- (sl (and indent-bars-no-descend-lists (nth 1 ppss))))
+ (sl (when-let
+ ((ndl indent-bars-no-descend-lists)
+ (open (nth 1 ppss))
+ ((or (not (consp ndl)) (memq (char-after open) ndl))))
+ open)))
(when (setq ppss-ind (if (and ss sl) (max ss sl) (or ss sl)))
(goto-char ppss-ind)
(let* ((cnew (current-indentation))