From 9b7e0b6ce4fe7e1f18e7c6b8c705d2184ff246dd Mon Sep 17 00:00:00 2001 From: Bin Huang Date: Sat, 31 May 2014 01:52:30 +0800 Subject: [PATCH] 1. Rename prelude-indent-region-or-buffer to prelude-indent-buffer-or-region. 2. Add prelude-cleanup-buffer-or-region. 3. Add prelude-untabify-buffer-or-region. 4. Update menus and kbds. --- core/prelude-core.el | 31 +++++++++++++++++++++++++++++-- core/prelude-mode.el | 7 +++++-- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/core/prelude-core.el b/core/prelude-core.el index 0d71ee4..538ea54 100644 --- a/core/prelude-core.el +++ b/core/prelude-core.el @@ -163,7 +163,7 @@ point reaches the beginning or end of the buffer, stop there." (interactive) (indent-region (point-min) (point-max))) -(defun prelude-indent-region-or-buffer () +(defun prelude-indent-buffer-or-region () "Indent a region if selected, otherwise the whole buffer." (interactive) (save-excursion @@ -291,11 +291,38 @@ there's a region, all lines that region covers will be duplicated." (interactive) (untabify (point-min) (point-max))) +(defun prelude-untabify-buffer-or-region () + "Untabify a region if selected, otherwise the whole buffer." + (interactive) + (save-excursion + (if (region-active-p) + (progn + (untabify (region-beginning) (region-end)) + (message "Untabify selected region.")) + (progn + (prelude-untabify-buffer) + (message "Untabify buffer."))))) + (defun prelude-cleanup-buffer () "Perform a bunch of operations on the whitespace content of a buffer." (interactive) - (prelude-indent-buffer) (prelude-untabify-buffer) + (prelude-indent-buffer) + (whitespace-cleanup)) + +(defun prelude-cleanup-buffer-or-region () + "Cleanup a region if selected, otherwise the whole buffer." + (interactive) + (save-excursion + (if (region-active-p) + (progn + (untabify (region-beginning) (region-end)) + (indent-region (region-beginning) (region-end)) + (message "Cleanup selected region.")) + (progn + (prelude-untabify-buffer) + (prelude-indent-buffer) + (message "Cleanup buffer.")))) (whitespace-cleanup)) (defun prelude-eval-and-replace () diff --git a/core/prelude-mode.el b/core/prelude-mode.el index 0a172df..2e2b4d0 100644 --- a/core/prelude-mode.el +++ b/core/prelude-mode.el @@ -48,9 +48,9 @@ (define-key map [(control shift down)] 'move-text-down) (define-key map [(meta shift up)] 'move-text-up) (define-key map [(meta shift down)] 'move-text-down) - (define-key map (kbd "C-c n") 'prelude-cleanup-buffer) + (define-key map (kbd "C-c n") 'prelude-cleanup-buffer-or-region) (define-key map (kbd "C-c f") 'prelude-recentf-ido-find-file) - (define-key map (kbd "C-M-\\") 'prelude-indent-region-or-buffer) + (define-key map (kbd "C-M-\\") 'prelude-indent-buffer-or-region) (define-key map (kbd "C-M-z") 'prelude-indent-defun) (define-key map (kbd "C-c u") 'prelude-view-url) (define-key map (kbd "C-c e") 'prelude-eval-and-replace) @@ -95,6 +95,7 @@ ("Buffers" ["Clean up buffer" prelude-cleanup-buffer] + ["Clean up buffer or region" prelude-cleanup-buffer-or-region] ["Kill other buffers" prelude-kill-other-buffers]) ("Editing" @@ -103,6 +104,8 @@ ["Move line down" prelude-move-line-down] ["Indent buffer" prelude-indent-buffer] ["Indent buffer or region" prelude-indent-buffer-or-region] + ["Untabify buffer" prelude-untabify-buffer] + ["Untabify buffer or region" prelude-untabify-buffer-or-region] ["Duplicate line or region" prelude-duplicate-current-line-or-region] ["Indent rigidly and copy to clipboard" prelude-indent-rigidly-and-copy-to-clipboard] ["Insert date" prelude-insert-date]