Skip to content

Instantly share code, notes, and snippets.

@pbaille
Last active March 28, 2023 12:26
Show Gist options
  • Save pbaille/76c4dc4b64ac2429c3daac86cba5ab46 to your computer and use it in GitHub Desktop.
Save pbaille/76c4dc4b64ac2429c3daac86cba5ab46 to your computer and use it in GitHub Desktop.
bunch of elisp functions to tweak indentation of lisp code
(defun pb/shift-expression (delta)
(setq evil-shift-width 1)
(let ((p (point)))
(evil-shift-right (if (< delta 0) (- p 1) p)
(save-excursion (evil-jump-item))
delta nil)
(goto-char (+ delta p))))
(defun pb/shift-expression-right ()
(interactive)
(pb/shift-expression 1))
(defun pb/shift-expression-left ()
(interactive)
(pb/shift-expression -1))
(defun pb/indent-sexpr ()
(interactive)
(let ((beg (point)))
(indent-region beg (save-excursion (evil-jump-item)))
(pb/shift-expression (- beg (point)))))
(defun pb/shift-expressions (delta)
(let ((p (point)))
(while (not (symex--point-at-last-symex-p))
(pb/shift-expression delta)
(symex-go-forward 1))
(pb/shift-expression delta)
(goto-char (+ p delta))))
(defun pb/shift-expressions-right ()
(interactive)
(pb/shift-expressions 1))
(defun pb/shift-expressions-left ()
(interactive)
(pb/shift-expressions -1))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment