2025-12-14 04:51:24 +11:00
|
|
|
;; -*- lexical-binding: t -*-
|
|
|
|
|
|
2025-12-15 03:20:45 +11:00
|
|
|
;; (use-package smartparens
|
|
|
|
|
;; :demand t
|
|
|
|
|
;; :hook (prog-mode text-mode markdown-mode)
|
|
|
|
|
;; :config
|
|
|
|
|
;; (require 'smartparens-config))
|
|
|
|
|
|
2025-12-22 10:51:46 +11:00
|
|
|
(setq electric-pair-inhibit-predicate 'electric-pair-conservative-inhibit)
|
2025-12-17 07:08:46 +11:00
|
|
|
(electric-pair-mode t)
|
2025-12-14 04:51:24 +11:00
|
|
|
|
2025-12-14 09:04:11 +11:00
|
|
|
;; Yasnippet settings
|
|
|
|
|
(use-package yasnippet
|
|
|
|
|
:ensure t
|
2025-12-15 18:20:19 +11:00
|
|
|
:hook (elpaca-after-init . yas-global-mode)
|
2025-12-14 09:04:11 +11:00
|
|
|
:hook ((LaTeX-mode . yas-minor-mode)
|
|
|
|
|
(post-self-insert . my/yas-try-expanding-auto-snippets))
|
|
|
|
|
:config
|
|
|
|
|
(use-package warnings
|
2025-12-15 18:20:19 +11:00
|
|
|
:ensure nil
|
2025-12-14 09:04:11 +11:00
|
|
|
:config
|
|
|
|
|
(cl-pushnew '(yasnippet backquote-change)
|
|
|
|
|
warning-suppress-types
|
|
|
|
|
:test 'equal))
|
|
|
|
|
|
|
|
|
|
(setq yas-triggers-in-field t)
|
|
|
|
|
|
|
|
|
|
;; Function that tries to autoexpand YaSnippets
|
|
|
|
|
;; The double quoting is NOT a typo!
|
|
|
|
|
(defun my/yas-try-expanding-auto-snippets ()
|
|
|
|
|
(when (and (boundp 'yas-minor-mode) yas-minor-mode)
|
|
|
|
|
(let ((yas-buffer-local-condition ''(require-snippet-condition . auto)))
|
|
|
|
|
(yas-expand)))))
|
2025-12-14 06:09:17 +11:00
|
|
|
|
2025-12-16 08:23:57 +11:00
|
|
|
(setq-default abbrev-mode t)
|
|
|
|
|
(setq abbrev-file-name (expand-file-name "abbrev.el" user-emacs-directory))
|
|
|
|
|
|
2025-12-22 10:51:46 +11:00
|
|
|
(use-package autorevert
|
|
|
|
|
:ensure nil
|
|
|
|
|
:diminish
|
|
|
|
|
:hook (after-init . global-auto-revert-mode))
|
|
|
|
|
|
|
|
|
|
(use-package multiple-cursors
|
|
|
|
|
:hook elpaca-after-init
|
|
|
|
|
:bind (("C-c m" . multiple-cursors-hydra/body)
|
|
|
|
|
("C-S-c C-S-c" . mc/edit-lines)
|
|
|
|
|
("C->" . mc/mark-next-like-this)
|
|
|
|
|
("C-<" . mc/mark-previous-like-this)
|
|
|
|
|
("C-c C-<" . mc/mark-all-like-this)
|
|
|
|
|
("C-M->" . mc/skip-to-next-like-this)
|
|
|
|
|
("C-M-<" . mc/skip-to-previous-like-this)
|
|
|
|
|
("s-<mouse-1>" . mc/add-cursor-on-click)
|
|
|
|
|
("C-S-<mouse-1>" . mc/add-cursor-on-click)
|
|
|
|
|
:map mc/keymap
|
|
|
|
|
("C-|" . mc/vertical-align-with-space))
|
|
|
|
|
:pretty-hydra
|
2025-12-22 12:30:25 +11:00
|
|
|
((:color amaranth :quit-key ("q" "C-g") :hint nil)
|
2025-12-22 10:51:46 +11:00
|
|
|
("Up"
|
|
|
|
|
(("p" mc/mark-previous-like-this "prev")
|
|
|
|
|
("P" mc/skip-to-previous-like-this "skip")
|
|
|
|
|
("M-p" mc/unmark-previous-like-this "unmark")
|
|
|
|
|
("|" mc/vertical-align "align with input CHAR"))
|
|
|
|
|
"Down"
|
|
|
|
|
(("n" mc/mark-next-like-this "next")
|
|
|
|
|
("N" mc/skip-to-next-like-this "skip")
|
|
|
|
|
("M-n" mc/unmark-next-like-this "unmark"))
|
|
|
|
|
"Misc"
|
|
|
|
|
(("l" mc/edit-lines "edit lines" :exit t)
|
|
|
|
|
("a" mc/mark-all-like-this "mark all" :exit t)
|
|
|
|
|
("s" mc/mark-all-in-region-regexp "search" :exit t)
|
|
|
|
|
("<mouse-1>" mc/add-cursor-on-click "click"))
|
|
|
|
|
"% 2(mc/num-cursors) cursor%s(if (> (mc/num-cursors) 1) \"s\" \"\")"
|
|
|
|
|
(("0" mc/insert-numbers "insert numbers" :exit t)
|
|
|
|
|
("A" mc/insert-letters "insert letters" :exit t)))))
|
|
|
|
|
|
|
|
|
|
(use-package smart-region
|
|
|
|
|
:hook (after-init . smart-region-on))
|
2025-12-14 04:51:24 +11:00
|
|
|
|
2025-12-22 12:30:25 +11:00
|
|
|
(use-package mwim
|
|
|
|
|
:bind (([remap move-beginning-of-line] . mwim-beginning)
|
|
|
|
|
([remap move-end-of-line] . mwim-end)))
|
|
|
|
|
|
2025-12-23 08:23:35 +11:00
|
|
|
(use-package avy
|
|
|
|
|
:bind
|
|
|
|
|
(("C-'" . avy-goto-char-timer)))
|
|
|
|
|
|
|
|
|
|
;; Treat undo history as a tree
|
|
|
|
|
(use-package vundo
|
|
|
|
|
:bind ("C-x u" . vundo)
|
|
|
|
|
:config (setq vundo-glyph-alist vundo-unicode-symbols))
|
|
|
|
|
|
2025-12-14 04:51:24 +11:00
|
|
|
(provide 'init-edit)
|