[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/indent-bars 327ace5493 162/431: ts-node-query: add FIRS
From: |
ELPA Syncer |
Subject: |
[elpa] externals/indent-bars 327ace5493 162/431: ts-node-query: add FIRST-SPANNING flag to insist top node encloses |
Date: |
Mon, 16 Sep 2024 12:59:24 -0400 (EDT) |
branch: externals/indent-bars
commit 327ace549381e57e5aa1bf47ca63cea9d09c79a3
Author: JD Smith <93749+jdtsmith@users.noreply.github.com>
Commit: JD Smith <93749+jdtsmith@users.noreply.github.com>
ts-node-query: add FIRST-SPANNING flag to insist top node encloses
The query match returns ANY nodes which overlap the start..end range,
even children and other sub-nodes. Insist that the first (topmost
node) fully spans the node's range.
---
indent-bars.el | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/indent-bars.el b/indent-bars.el
index b36c2fa694..4ecb65c2af 100644
--- a/indent-bars.el
+++ b/indent-bars.el
@@ -825,15 +825,24 @@ see `indent-bars-prefer-character')."
(defvar-local indent-bars--ts-query nil)
(defvar-local indent-bars--ts-string-query nil)
-(defsubst indent-bars--ts-node-query (node query &optional start-only)
+(defun indent-bars--ts-node-query (node query &optional start-only
first-spanning)
"Capture node(s) spanning NODE matching QUERY.
QUERY is a compiled treesit query. If START-ONLY is non-nil, the
query searches for matching nodes spanning the start of the node
-at point."
+at point. If FIRST-SPANNING is non-nil, return the first
+matching node, but only if it fully spans the start and end range
+of NODE."
(let* ((start (treesit-node-start node))
- (end (if start-only start (treesit-node-end node))))
- (treesit-query-capture indent-bars--ts-parser query
- start end t)))
+ (end (if start-only start (treesit-node-end node)))
+ (nodes (treesit-query-capture indent-bars--ts-parser query
+ start end t)))
+ (when (and first-spanning nodes)
+ (let ((n (car nodes)))
+ (setq nodes
+ (and (<= (treesit-node-start n) start)
+ (>= (treesit-node-end n) end)
+ n))))
+ nodes))
(defsubst indent-bars--indent-at-node (node)
"Return the current indentation at the start of NODE."
@@ -863,9 +872,9 @@ than the starting line's depth."
node indent-bars--ts-string-query t))
(1+ (indent-bars--depth (indent-bars--indent-at-node
node)))
(when-let ((ctx (indent-bars--ts-node-query
- node indent-bars--ts-query)))
+ node indent-bars--ts-query nil t)))
(1+ (indent-bars--depth
- (indent-bars--indent-at-node (car ctx)))))))))
+ (indent-bars--indent-at-node ctx))))))))
(if dnew (setq d (min dnew d)))
(if (and on-bar (= c (+ indent-bars--offset (* d indent-bars-spacing))))
(1+ d) d)))
- [elpa] externals/indent-bars 6f0f2bf5ce 092/431: Update README.md, (continued)
- [elpa] externals/indent-bars 6f0f2bf5ce 092/431: Update README.md, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 55d8ef1711 096/431: Update README.md, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 180b6ab95c 053/431: Mention stipple compatibility, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 5eb33cc94f 085/431: Update README.md, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 7da1a4a2a4 107/431: Update examples.md, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 54d15a437d 122/431: customize and var name tweaks, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 77aec85ad0 124/431: Merge branch 'treesit' into dev, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars a7bfe31d59 131/431: display-line: offset start if no tabs, invent with correct bar count, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars f1404b31fe 151/431: Added what's new, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 3a9ffd9176 142/431: Add cobol-mode support, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 327ace5493 162/431: ts-node-query: add FIRST-SPANNING flag to insist top node encloses,
ELPA Syncer <=
- [elpa] externals/indent-bars 858de2c124 184/431: Update README.md, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 8a4ea0ab83 187/431: Update README.md, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 3cebc7d7fb 177/431: Resize iamge, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars beaaf4d359 003/431: Improve docstrings, comments, custom messages, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 6d98c4597f 004/431: re-organize and cleanup, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 6f054692ef 008/431: Generalize to stipple "pad" and "rot", ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 0769d70591 010/431: add window-state-change hooks for recalculating stipple, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 471b0920b0 012/431: improve comments, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars 4e31151a0d 015/431: improve comments, ELPA Syncer, 2024/09/16
- [elpa] externals/indent-bars f8d5e25527 030/431: bug fix for long patterns, ELPA Syncer, 2024/09/16