feat(tree-sitter): bind textobjects to maps
Instead of binding all of the tree sitter text objects to every map we only bind them to modes in the major-mode-language-alist
This commit is contained in:
parent
3fdd688356
commit
400d8d4116
1 changed files with 10 additions and 1 deletions
|
@ -1,9 +1,17 @@
|
|||
;;; tools/tree-sitter/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
|
||||
|
||||
(use-package! tree-sitter
|
||||
:hook (prog-mode . turn-on-tree-sitter-mode)
|
||||
;; :hook (prog-mode . turn-on-tree-sitter-mode)
|
||||
:defer t ;; loading is handled by individual modes
|
||||
:hook (tree-sitter-after-on . tree-sitter-hl-mode)
|
||||
:config
|
||||
(defvar +tree-sitter-enabled-mode-maps (seq-map (lambda (mode)
|
||||
(intern (concat
|
||||
(symbol-name (car mode)) "-map")))
|
||||
tree-sitter-major-mode-language-alist)
|
||||
"List of mode hooks for tree sitter enabled modes.")
|
||||
;; This makes every node a link to a section of code
|
||||
(setq tree-sitter-debug-jump-buttons t
|
||||
;; and this highlights the entire sub tree in your code
|
||||
|
@ -21,6 +29,7 @@
|
|||
:config
|
||||
;; FIXME: only bind when using a supported major mode
|
||||
(map!
|
||||
:map +tree-sitter-enabled-mode-maps
|
||||
:textobj "f" nil nil
|
||||
:textobj "f" (evil-textobj-tree-sitter-get-textobj "function.inner") (evil-textobj-tree-sitter-get-textobj "function.outer") ;; redef
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue