81 lines
2.2 KiB
EmacsLisp
81 lines
2.2 KiB
EmacsLisp
;; -*- lexical-binding: t; -*-
|
|
|
|
;; General text editing configuration
|
|
|
|
;; Better isearch
|
|
(use-package ctrlf
|
|
:config
|
|
(ctrlf-mode 1))
|
|
|
|
;; "pair" management, where pairs are parentheses, braces, etc.
|
|
(use-package smartparens
|
|
:config
|
|
(require 'smartparens-config)
|
|
(smartparens-global-mode)
|
|
(defun sp-wrap-double-quote ()
|
|
(interactive)
|
|
(sp-wrap-with-pair "\""))
|
|
(defun sp-wrap-single-quote ()
|
|
(interactive)
|
|
(sp-wrap-with-pair "'"))
|
|
:hook
|
|
(prog-mode . smartparens-strict-mode)
|
|
(eshell-mode . smartparens-strict-mode)
|
|
:general
|
|
;; Wrapping
|
|
(leader-map
|
|
"s(" #'sp-wrap-round
|
|
"s{" #'sp-wrap-curly
|
|
"s'" #'sp-wrap-single-quote
|
|
"s\"" #'sp-wrap-double-quote
|
|
"sW" #'sp-unwrap-sexp
|
|
"sl" #'sp-next-sexp
|
|
"sh" #'sp-backward-sexp
|
|
"sj" #'sp-down-sexp
|
|
"sk" #'sp-backward-up-sexp
|
|
"sL" #'sp-forward-symbol
|
|
"sH" #'sp-backward-symbol
|
|
"s^" #'sp-beginning-of-sexp
|
|
"s$" #'sp-end-of-sexp
|
|
"st" #'sp-transpose-sexp
|
|
"su" #'undo-tree-undo
|
|
"sy" #'sp-copy-sexp
|
|
"sd" #'sp-kill-sexp
|
|
"ss" #'sp-forward-slurp-sexp
|
|
"sS" #'sp-backward-slurp-sexp
|
|
"sb" #'sp-forward-barf-sexp
|
|
"sB" #'sp-backward-barf-sexp
|
|
"sv" #'sp-select-next-thing
|
|
"sV" #'sp-select-previous-thing)
|
|
(normal "g(" #'sp-wrap-round
|
|
"g[" #'sp-wrap-square
|
|
"g{" #'sp-wrap-curly
|
|
"g\"" #'sp-wrap-double-quote
|
|
"g'" #'sp-wrap-single-quote))
|
|
|
|
(use-package evil-smartparens
|
|
:after (evil smartparens)
|
|
:hook (smartparens-enabled . evil-smartparens-mode))
|
|
|
|
;; Automagical indent
|
|
(use-package aggressive-indent
|
|
:hook ((lisp-mode . aggressive-indent-mode)
|
|
(emacs-lisp-mode . aggressive-indent-mode)
|
|
(clojure-mode . aggressive-indent-mode)))
|
|
|
|
;; Highlight indent level for whitespace-sensitive languages
|
|
(use-package highlight-indent-guides
|
|
:commands highlight-indent-guides-mode
|
|
:custom
|
|
(highlight-indent-guides-method 'character)
|
|
(highlight-indent-guides-auto-character-face-perc 7)
|
|
(highlight-indent-guides-responsive 'stack)
|
|
(highlight-indent-guides-auto-stack-character-face-perc 10))
|
|
|
|
;; Handy mode for prose writing and reading
|
|
(use-package olivetti
|
|
:general
|
|
("C-c o" #'olivetti-mode))
|
|
|
|
(provide 'init-editing)
|