From 45ed981b41544de9ab02f33f17a3b67a034d95aa Mon Sep 17 00:00:00 2001 From: Jeetaditya Chatterjee Date: Sun, 3 Apr 2022 18:21:34 +0100 Subject: [PATCH] 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 --- modules/tools/tree-sitter/autoload.el | 4 ++-- modules/tools/tree-sitter/config.el | 32 +++++++++------------------ 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/modules/tools/tree-sitter/autoload.el b/modules/tools/tree-sitter/autoload.el index bb9194f4a..d1682b6a6 100644 --- a/modules/tools/tree-sitter/autoload.el +++ b/modules/tools/tree-sitter/autoload.el @@ -2,8 +2,8 @@ ;;;###autodef (defun tree-sitter! () - (turn-on-tree-sitter-mode) - (+tree-sitter-keys-mode)) + (interactive) + (turn-on-tree-sitter-mode)) ;;;###autoload (defun +tree-sitter-goto-textobj (group &optional previous end query) diff --git a/modules/tools/tree-sitter/config.el b/modules/tools/tree-sitter/config.el index 2648b4c51..6b588fee7 100644 --- a/modules/tools/tree-sitter/config.el +++ b/modules/tools/tree-sitter/config.el @@ -8,34 +8,22 @@ ;; and this highlights the entire sub tree in your code 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-outer-text-objects-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-keys-mode-map - (let ((keymap (make-sparse-keymap))) - ;; ts text objects - (evil-define-key '(visual operator) '+tree-sitter-keys-mode - "i" +tree-sitter-inner-text-objects-map - "a" +tree-sitter-outer-text-objects-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 + (evil-define-key '(visual operator) 'tree-sitter-mode + "i" +tree-sitter-inner-text-objects-map + "a" +tree-sitter-outer-text-objects-map) + (evil-define-key 'normal 'tree-sitter-mode + "[g" +tree-sitter-goto-previous-map + "]g" +tree-sitter-goto-next-map) (map! (:map +tree-sitter-inner-text-objects-map "A" (evil-textobj-tree-sitter-get-textobj ("parameter.inner" "call.inner"))