[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master d61145cc8cf: More changes for treesitter support of outline-minor
From: |
Juri Linkov |
Subject: |
master d61145cc8cf: More changes for treesitter support of outline-minor-mode (bug#68824) |
Date: |
Tue, 13 Feb 2024 12:03:50 -0500 (EST) |
branch: master
commit d61145cc8cfb31ca170cd1b5deab59f0a5cbea63
Author: Juri Linkov <juri@linkov.net>
Commit: Juri Linkov <juri@linkov.net>
More changes for treesitter support of outline-minor-mode (bug#68824)
* lisp/treesit.el (treesit-outline-level): Set NAMED arg of
'treesit-node-at' to t. Don't set IGNORE-MISSING arg of
'treesit-node-match-p' to t.
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
Add "singleton_method" to 'treesit-thing-settings'.
Set 'treesit-outline-predicate'. Kill local variables
'outline-regexp' and 'outline-level'.
---
lisp/progmodes/ruby-ts-mode.el | 14 ++++++++++++++
lisp/treesit.el | 4 ++--
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/lisp/progmodes/ruby-ts-mode.el b/lisp/progmodes/ruby-ts-mode.el
index 598eaa461ff..426ae248cac 100644
--- a/lisp/progmodes/ruby-ts-mode.el
+++ b/lisp/progmodes/ruby-ts-mode.el
@@ -1133,6 +1133,7 @@ leading double colon is not added."
"singleton_class"
"module"
"method"
+ "singleton_method"
"array"
"hash"
"parenthesized_statements"
@@ -1178,6 +1179,19 @@ leading double colon is not added."
;; Imenu.
(setq-local imenu-create-index-function #'ruby-ts--imenu)
+ ;; Outline minor mode.
+ (setq-local treesit-outline-predicate
+ (rx bos (or "singleton_method"
+ "method"
+ "alias"
+ "class"
+ "module")
+ eos))
+ ;; Restore default values of outline variables
+ ;; to use `treesit-outline-predicate'.
+ (kill-local-variable 'outline-regexp)
+ (kill-local-variable 'outline-level)
+
(setq-local treesit-simple-indent-rules (ruby-ts--indent-rules))
;; Font-lock.
diff --git a/lisp/treesit.el b/lisp/treesit.el
index 25ac582276b..f811b8090bc 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -2918,8 +2918,8 @@ See the descriptions of arguments in
`outline-search-function'."
(defun treesit-outline-level ()
"Return the depth of the current outline heading."
- (let* ((node (treesit-node-at (point)))
- (level (if (treesit-node-match-p node treesit-outline-predicate t)
+ (let* ((node (treesit-node-at (point) nil t))
+ (level (if (treesit-node-match-p node treesit-outline-predicate)
1 0)))
(while (setq node (treesit-parent-until node treesit-outline-predicate))
(setq level (1+ level)))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master d61145cc8cf: More changes for treesitter support of outline-minor-mode (bug#68824),
Juri Linkov <=