C-u M-x indent-pp-sexp

On Thu, Feb 14, 2013 at 6:06 PM, Mayank Jain <firesof...@gmail.com> wrote:
> @Feng
> It doesn't clean up the way John is looking to clean some code like this:
>
>
>> (defun func1 [a b c d] (func5 (let [f (func3 c)] (func2 a b f)) (let
>> [e 5] (func4 c d e))))
>
>
>
>
> On Tue, Feb 12, 2013 at 9:11 AM, Feng Shen <shen...@gmail.com> wrote:
>>
>>
>>
>> (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.
>>
>>
>
>
>
>
> --
> Regards,
> Mayank.
>
> --
> --
> 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.
>
>

-- 
-- 
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.


Reply via email to