summaryrefslogtreecommitdiff
path: root/config/emacs.org
diff options
context:
space:
mode:
Diffstat (limited to 'config/emacs.org')
-rw-r--r--config/emacs.org45
1 files changed, 31 insertions, 14 deletions
diff --git a/config/emacs.org b/config/emacs.org
index ce61b4a..2970ca3 100644
--- a/config/emacs.org
+++ b/config/emacs.org
@@ -894,6 +894,10 @@ First, some small configurations and some evil-mode initilaization because I lik
:config
(evil-multiedit-default-keybinds))
+ (use-package evil-indent-plus
+ :ensure t
+ :config (evil-indent-plus-default-bindings))
+
(use-package evil-textobj-tree-sitter
:ensure t
;; Ensure Evil is loaded first so the text-object maps exist
@@ -903,12 +907,16 @@ First, some small configurations and some evil-mode initilaization because I lik
:bind ((:map evil-outer-text-objects-map
("f" . my-treesit-outer-function)
("c" . my-treesit-outer-class)
- ("a" . my-treesit-outer-arg))
-
+ ("a" . my-treesit-outer-arg)
+ ("s" . my-treesit-outer-statement) ;; Added Statement
+ ("b" . my-treesit-outer-block)) ;; Added Block (Great for SCSS/CSS)
+
(:map evil-inner-text-objects-map
("f" . my-treesit-inner-function)
("c" . my-treesit-inner-class)
- ("a" . my-treesit-inner-arg))
+ ("a" . my-treesit-inner-arg)
+ ("s" . my-treesit-inner-statement) ;; Added Statement
+ ("b" . my-treesit-inner-block)) ;; Added Block
(:map evil-normal-state-map
("] f" . my-treesit-goto-next-function)
@@ -919,15 +927,23 @@ First, some small configurations and some evil-mode initilaization because I lik
;; 2. The Command Definitions
:config
;; Link the custom names we bound above to the actual Tree-sitter closures
- (defalias 'my-treesit-outer-function (evil-textobj-tree-sitter-get-textobj "function.outer"))
- (defalias 'my-treesit-inner-function (evil-textobj-tree-sitter-get-textobj "function.inner"))
+ (defalias 'my-treesit-outer-function (evil-textobj-tree-sitter-get-textobj "function.outer"))
+ (defalias 'my-treesit-inner-function (evil-textobj-tree-sitter-get-textobj "function.inner"))
- (defalias 'my-treesit-outer-class (evil-textobj-tree-sitter-get-textobj "class.outer"))
- (defalias 'my-treesit-inner-class (evil-textobj-tree-sitter-get-textobj "class.inner"))
+ (defalias 'my-treesit-outer-class (evil-textobj-tree-sitter-get-textobj "class.outer"))
+ (defalias 'my-treesit-inner-class (evil-textobj-tree-sitter-get-textobj "class.inner"))
;; "a" is standard Vim terminology for "argument" (parameter)
- (defalias 'my-treesit-outer-arg (evil-textobj-tree-sitter-get-textobj "parameter.outer"))
- (defalias 'my-treesit-inner-arg (evil-textobj-tree-sitter-get-textobj "parameter.inner"))
+ (defalias 'my-treesit-outer-arg (evil-textobj-tree-sitter-get-textobj "parameter.outer"))
+ (defalias 'my-treesit-inner-arg (evil-textobj-tree-sitter-get-textobj "parameter.inner"))
+
+ ;; Added Statement definitions
+ (defalias 'my-treesit-outer-statement (evil-textobj-tree-sitter-get-textobj "statement.outer"))
+ (defalias 'my-treesit-inner-statement (evil-textobj-tree-sitter-get-textobj "statement.inner"))
+
+ ;; Added Block definitions (Targets {} blocks in SCSS, C, TS, etc.)
+ (defalias 'my-treesit-outer-block (evil-textobj-tree-sitter-get-textobj "block.outer"))
+ (defalias 'my-treesit-inner-block (evil-textobj-tree-sitter-get-textobj "block.inner"))
;; Navigation commands are standard interactive functions, so we wrap them cleanly
(defun my-treesit-goto-next-function ()
@@ -946,7 +962,6 @@ First, some small configurations and some evil-mode initilaization because I lik
(interactive)
(evil-textobj-tree-sitter-goto-textobj "class.outer" t)))
-
(use-package general
:after (evil evil-collection)
:config
@@ -1143,6 +1158,10 @@ We use org-alert in order to give us notifications based on our org-agenda.
** LSP
We set up eglot, the LSP manager for emacs, now built in:
#+begin_src emacs-lisp :tangle ../nix/init.el
+(use-package envrc
+ :demand t
+ :hook (after-init . envrc-global-mode))
+
(use-package python
:after lsp-mode
:hook (python-ts-mode . lsp-deferred))
@@ -1873,10 +1892,8 @@ I use tabs because sometimes I like using the mouse (it's actually more efficien
** Lean4
For some reason, lean4-mode is not in MELPA currently so I have to do this ugly thing:
#+begin_src emacs-lisp :tangle ../nix/init.el
-(unless noninteractive (use-package lean4-mode
- :commands lean4-mode
- :vc (:url "https://github.com/leanprover-community/lean4-mode.git"
- :rev "76895d8939111654a472cfc617cfd43fbf5f1eb6")))
+(use-package lean4-mode
+ :commands lean4-mode)
#+end_src
and actually pull something from the internet instead of pinning. Thankfully this reproduction issue is probably localized to lean files. Also,
we're pulling a specific commit so it is still pinned. If it fails to fetch, lean4 is broken I guess.