(defun indent-buffer () (interactive) (indent-region (point-min) (point-max))) (defun cleanup-buffer () (interactive) (indent-buffer) (untabify-buffer) (delete-trailing-whitespace)) ;; bind to other key if you like(global-set-key (kbd "M-q") 'cleanup-buffer)
cleanup-buffer is very fast, I hit it all the time. On Tuesday, February 12, 2013 10:28:43 AM UTC+8, John Fries wrote: > > Clojure Users, > > I'm relatively new to clojure and wanted to get some workflow advice. > > I often find myself staring at something like this: > (defun func1 [a b c d] (func5 (let [f (func3 c)] (func2 a b f)) (let > [e 5] (func4 c d e)))) > > and wishing for a function to automatically and idiomatically break it > up into multiple lines and indent it: > (defun func1 [a b c d] > (func5 > (let [f (func3 c)] > (func2 a b f)) > (let [e 5] > (func4 c d e)))) > > I find the latter form more readable, but inserting the newlines by > hand is getting repetitive (also, I am not always confident in my > choice of idiomatic breakpoints). Once I insert the newlines, I can > trigger auto-indentation by hitting M-q (which on my system is mapped > to paredit-reindent-defun) or by highlighting the region and hitting > M-C-\ (which on my system is indent-region). > > My question(s) is: > How are people currently handling this situation? Is it part of most > people's clojure/emacs workflow to > 1) Just insert the newlines by hand? (perhaps I'm the only one finding > this repetitive) > 2) Do people have some accepted pretty printing function they are > using within emacs? > 3) Is there some larger issue I'm not seeing that maybe makes this > whole idea irrelevant? > > I've seen this document: > http://richhickey.github.com/clojure/doc/clojure/pprint/PrettyPrinting.html > But I haven't found any guide to using that function *within emacs*. > If this is not a common thing to do, then why is it not common? > > Thanks, > John > > caveat: My init.el is an amalgam of ideas from ESK, prelude and emacs > live, so it could be the case that this functionality is provided out > of the box, if only I were configured properly. If people have some > way of doing this in their emacs environment, a clue as to the kit or > configuration you are using would be very much appreciated. > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.