Smarter delete-trailing-whitespace

This commit is contained in:
Henrik Lissner 2015-08-01 14:38:41 +02:00
parent 81c58e0efa
commit 9577ec28c7
2 changed files with 4 additions and 13 deletions

View file

@ -71,11 +71,11 @@
(defadvice delete-trailing-whitespace (around delete-trailing-whitespace-ignore-line activate)
"Don't delete trailing whitespace on current line, if in insert mode."
(let ((spaces (current-column))
(first-col (1+ (save-excursion (evil-first-non-blank) (current-column)))))
(let ((spaces (1- (current-column)))
(linestr (buffer-substring-no-properties (line-beginning-position) (line-end-position))))
ad-do-it
(when (= spaces first-col)
(insert (make-string (abs spaces) ? )))))
(when (string-match-p "^[\s\t]*$" linestr)
(insert linestr))))
;; Line wrapping
(add-hook! text-mode 'narf|enable-hard-wrap)

View file

@ -157,14 +157,5 @@ spaces on either side of the point if so. Resorts to
(align-regexp beg end
(concat "\\(\\s-*\\)" (rxt-pcre-to-elisp regexp)) 1 1)))
;;;###autoload
(defun narf:toggle-delete-trailing-whitespace ()
(interactive)
(if (memq 'delete-trailing-whitespace before-save-hook)
(progn (message "Remove trailing whitespace: OFF")
(remove-hook 'before-save-hook 'delete-trailing-whitespace))
(message "Remove trailing whitespace: ON")
(add-hook 'before-save-hook 'delete-trailing-whitespace)))
(provide 'defuns-whitespace)
;;; defuns-whitespace.el ends here