Commit f8dc6f0d7f67

Vincent Demeester <vincent@sbr.pm>
2015-04-17 09:08:34
Update ident & untabify function (region & buffer)
1 parent 943f8a0
Changed files (1)
.emacs.d
.emacs.d/emacs.org
@@ -398,6 +398,10 @@
 
      #+begin_src emacs-lisp
        (setq-default indent-tabs-mode nil)
+       (defcustom indent-sensitive-modes
+         '(coffee-mode python-mode haml-mode yaml-mode)
+         "Modes for which auto-indenting is suppressed."
+         :type 'list)
      #+end_src
 
      Let's define a few /cleaning/ functions :
@@ -406,16 +410,46 @@
 
 #+begin_src emacs-lisp
   (defun my/untabify-buffer ()
+    "Untabify the currently visited buffer."
     (interactive)
     (untabify (point-min) (point-max)))
+
+  (defun my/untabify-region-or-buffer ()
+    "Untabify a region if selected, otherwise the whole buffer."
+    (interactive)
+    (unless (member major-mode indent-sensitive-modes)
+      (save-excursion
+        (if (region-active-p)
+            (progn
+              (untabify (region-beginning) (region-end))
+              (message "Untabify selected region."))
+          (progn
+            (my/untabify-buffer)
+            (message "Untabify buffer.")))
+        )))
 #+end_src
 
 - ident the buffer, using the mode indentation stuff
 
 #+begin_src emacs-lisp
   (defun my/indent-buffer ()
+    "Indent the currently visited buffer."
     (interactive)
     (indent-region (point-min) (point-max)))
+
+  (defun my/indent-region-or-buffer ()
+    "Indent a region if selected, otherwise the whole buffer."
+    (interactive)
+    (unless (member major-mode indent-sensitive-modes)
+      (save-excursion
+        (if (region-active-p)
+            (progn
+              (indent-region (region-beginning) (region-end))
+              (message "Indented selected region."))
+          (progn
+            (my/indent-buffer)
+            (message "Indented buffer.")))
+        (whitespace-cleanup))))
 #+end_src
 
 - cleanup the buffer
@@ -442,8 +476,9 @@
 And bind =cleanup-buffer= and =cleanup-region=.
 
 #+begin_src emacs-lisp
-(global-set-key (kbd "C-x M-t") 'my/cleanup-region)
-(global-set-key (kbd "C-c n") 'my/cleanup-buffer)
+  (global-set-key (kbd "C-x M-t") 'my/cleanup-region)
+  (global-set-key (kbd "C-c n") 'my/cleanup-buffer)
+  (global-set-key (kbd "C-C i") 'my/indent-region-or-buffer)
 #+end_src
 
 For writing text, I prefer Emacs to do line wrapping for me.Also, superfluous