Smarter dumb indentation

This commit is contained in:
Henrik Lissner 2015-07-24 13:06:19 +02:00
parent 628e495536
commit 22c82d63e6

View file

@ -75,13 +75,14 @@ whitespace as possible, or just one char if that's not possible."
(t (backward-delete-char-untabify 1)))) (t (backward-delete-char-untabify 1))))
;;;###autoload ;;;###autoload
(defun narf/dumb-indent () (defun narf/dumb-indent (&optional smart)
"Inserts a tab character (or spaces x tab-width). Checks if the "Inserts a tab character (or spaces x tab-width). Checks if the
auto-complete window is open." auto-complete window is open."
(interactive) (interactive)
(if indent-tabs-mode (if (or (and smart (looking-back "^[\s\t]*"))
(insert "\t") indent-tabs-mode)
(let* ((movement (% (current-column) tab-width)) (insert "\t")
(let* ((movement (% (current-column) tab-width))
(spaces (if (zerop movement) tab-width (- tab-width movement)))) (spaces (if (zerop movement) tab-width (- tab-width movement))))
(insert (s-repeat spaces " "))))) (insert (s-repeat spaces " ")))))