refactor(tree-sitter): put keys on ts-mode-map

- move map definition and binding into
  evil-textobj-tree-sitter :config body

- replace +tree-sitter-keys-mode  with
  tree-sitter-mode as bind site

- remove +tree-sitter-keys-mode from tree-sitter! autodef
This commit is contained in:
Jeetaditya Chatterjee 2022-04-03 18:21:34 +01:00
parent 7f814e5d99
commit 45ed981b41
No known key found for this signature in database
GPG key ID: 09D54CECD2132B91
2 changed files with 12 additions and 24 deletions

View file

@ -2,8 +2,8 @@
;;;###autodef ;;;###autodef
(defun tree-sitter! () (defun tree-sitter! ()
(turn-on-tree-sitter-mode) (interactive)
(+tree-sitter-keys-mode)) (turn-on-tree-sitter-mode))
;;;###autoload ;;;###autoload
(defun +tree-sitter-goto-textobj (group &optional previous end query) (defun +tree-sitter-goto-textobj (group &optional previous end query)

View file

@ -8,34 +8,22 @@
;; and this highlights the entire sub tree in your code ;; and this highlights the entire sub tree in your code
tree-sitter-debug-highlight-jump-region t)) tree-sitter-debug-highlight-jump-region t))
(use-package! evil-textobj-tree-sitter
:when (featurep! :editor evil +everywhere)
:after tree-sitter
:config
(when (featurep! :editor evil +everywhere)
(defvar +tree-sitter-inner-text-objects-map (make-sparse-keymap)) (defvar +tree-sitter-inner-text-objects-map (make-sparse-keymap))
(defvar +tree-sitter-outer-text-objects-map (make-sparse-keymap)) (defvar +tree-sitter-outer-text-objects-map (make-sparse-keymap))
(defvar +tree-sitter-goto-previous-map (make-sparse-keymap)) (defvar +tree-sitter-goto-previous-map (make-sparse-keymap))
(defvar +tree-sitter-goto-next-map (make-sparse-keymap)) (defvar +tree-sitter-goto-next-map (make-sparse-keymap))
(defvar +tree-sitter-keys-mode-map (evil-define-key '(visual operator) 'tree-sitter-mode
(let ((keymap (make-sparse-keymap))) "i" +tree-sitter-inner-text-objects-map
;; ts text objects "a" +tree-sitter-outer-text-objects-map)
(evil-define-key '(visual operator) '+tree-sitter-keys-mode (evil-define-key 'normal 'tree-sitter-mode
"i" +tree-sitter-inner-text-objects-map "[g" +tree-sitter-goto-previous-map
"a" +tree-sitter-outer-text-objects-map) "]g" +tree-sitter-goto-next-map)
;; ts goto nodes
(evil-define-key 'normal '+tree-sitter-keys-mode
"[g" +tree-sitter-goto-previous-map
"]g" +tree-sitter-goto-next-map)
keymap)
"Basic keymap for tree sitter text objects")
(define-minor-mode +tree-sitter-keys-mode
"A minor mode with tree sitter keybinds."
:keymap +tree-sitter-keys-mode-map))
(use-package! evil-textobj-tree-sitter
:when (featurep! :editor evil +everywhere)
:after tree-sitter
:config
(map! (:map +tree-sitter-inner-text-objects-map (map! (:map +tree-sitter-inner-text-objects-map
"A" (evil-textobj-tree-sitter-get-textobj ("parameter.inner" "call.inner")) "A" (evil-textobj-tree-sitter-get-textobj ("parameter.inner" "call.inner"))