diff options
author | Alan Pearce | 2023-05-14 21:57:31 +0200 |
---|---|---|
committer | Alan Pearce | 2023-05-14 21:57:31 +0200 |
commit | a8b77222abc943966a7113193367b6e1c4b6632c (patch) | |
tree | 96f4dd407ee6d815867b790b7fb77c1f04a7aa95 | |
parent | 491ed560454754936b2e37b3efcba371026abea2 (diff) | |
download | nixfiles-a8b77222abc943966a7113193367b6e1c4b6632c.tar.lz nixfiles-a8b77222abc943966a7113193367b6e1c4b6632c.tar.zst nixfiles-a8b77222abc943966a7113193367b6e1c4b6632c.zip |
emacs: configure tree-sitter based text objects
-rw-r--r-- | user/emacs/init.el | 27 | ||||
-rw-r--r-- | user/settings/emacs.nix | 1 |
2 files changed, 28 insertions, 0 deletions
diff --git a/user/emacs/init.el b/user/emacs/init.el index d91781fc..43c4571f 100644 --- a/user/emacs/init.el +++ b/user/emacs/init.el @@ -470,6 +470,33 @@ _p_rev _u_pper _=_: upper/lower _r_esolve :ghook ('org-mode-hook #'evil-org-mode) :gfhook #'evil-org-set-key-theme) +(defun etts/start-of-next-function () + (interactive) + (evil-textobj-tree-sitter-goto-textobj "function.outer" nil nil)) +(defun etts/start-of-prev-function () + (interactive) + (evil-textobj-tree-sitter-goto-textobj "function.outer" t nil)) +(defun etts/end-of-next-function () + (interactive) + (evil-textobj-tree-sitter-goto-textobj "function.outer" nil t)) +(defun etts/end-of-prev-function () + (interactive) + (evil-textobj-tree-sitter-goto-textobj "function.outer" t t)) +(use-package evil-textobj-tree-sitter + :after evil + :general + (:keymaps 'evil-outer-text-objects-map + "f" (evil-textobj-tree-sitter-get-textobj "function.outer") + "a" (evil-textobj-tree-sitter-get-textobj ("conditional.outer" "loop.outer"))) + (:keymaps 'evil-inner-text-objects-map + "f" (evil-textobj-tree-sitter-get-textobj "function.inner") + "a" (evil-textobj-tree-sitter-get-textobj ("conditional.inner" "loop.inner"))) + (:states 'normal + "]f" #'etts/start-of-next-function + "[f" #'etts/start-of-prev-function + "]F" #'etts/end-of-next-function + "[F" #'etts/end-of-prev-function)) + ;;; Completion (use-package company diff --git a/user/settings/emacs.nix b/user/settings/emacs.nix index e92ef01c..e9620121 100644 --- a/user/settings/emacs.nix +++ b/user/settings/emacs.nix @@ -117,6 +117,7 @@ in evil-quickscope evil-space evil-surround + evil-textobj-tree-sitter eyebrowse format-all flycheck |