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) (defadvice delete-trailing-whitespace (around delete-trailing-whitespace-ignore-line activate)
"Don't delete trailing whitespace on current line, if in insert mode." "Don't delete trailing whitespace on current line, if in insert mode."
(let ((spaces (current-column)) (let ((spaces (1- (current-column)))
(first-col (1+ (save-excursion (evil-first-non-blank) (current-column))))) (linestr (buffer-substring-no-properties (line-beginning-position) (line-end-position))))
ad-do-it ad-do-it
(when (= spaces first-col) (when (string-match-p "^[\s\t]*$" linestr)
(insert (make-string (abs spaces) ? ))))) (insert linestr))))
;; Line wrapping ;; Line wrapping
(add-hook! text-mode 'narf|enable-hard-wrap) (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 (align-regexp beg end
(concat "\\(\\s-*\\)" (rxt-pcre-to-elisp regexp)) 1 1))) (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) (provide 'defuns-whitespace)
;;; defuns-whitespace.el ends here ;;; defuns-whitespace.el ends here