Re: IDE feature
Le vendredi 9 août 2013, Sean Corfield a écrit : On Thu, Aug 8, 2013 at 5:00 PM, Mark Engelberg mark.engelb...@gmail.comjavascript:; wrote: Getting back to the point of the original post, one of the nice features of DrRacket is that when you type `]`, it automatically puts either ']' or ')' Having used DrRacket quite a bit lately, I do not find its handling of parens to be particularly good. Regardless of whether I set it to auto-close each opening paren or not, I constantly find myself with a missing paren or an extra paren, or an incorrect mix of closing ))]))] somewhere. It's not a problem I ever have in Emacs working on Clojure - with paredit. this is like closing off a thought. Paren matching is currently more arduous in Clojure, because you really do have to pay attention to which kind of delimiter you're closing off and type the right one, so I would love Well, that's why folks advocate paredit - that problem simply goes away. Yes, paredit is a bit of a pain to get used to at first, but it really does remove a whole slew of issues around parentheses in code, and it really does make you a lot more productive, especially once you learn the structural editing commands (I am surprised at how many times I use paredit-convolute-sexpr What does it do? (first time I encounter it) to help reorganize code - I'm almost at the point of binding it to a key sequence!). -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.comjavascript:; 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 javascript:; 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 javascript:;. 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.
Re: IDE feature
On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com wrote: What does it do? (first time I encounter it) DrRacket? It's the standard IDE for the Racket language (and all of its teaching subsets etc). -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- 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.
Re: IDE feature
I'll bet Laurent means paredit-convolute-sexpr :-) Ambrose On Fri, Aug 9, 2013 at 11:09 PM, Sean Corfield seancorfi...@gmail.comwrote: On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com wrote: What does it do? (first time I encounter it) DrRacket? It's the standard IDE for the Racket language (and all of its teaching subsets etc). -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- 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.
Re: IDE feature
Ah, yes... it turns this ( | represents the cursor ): (f a b (g c d |e f)) into this: (g c d (f a b e f)) I find I use it most often when moving `let` forms around, but also for other constructs occasionally. Sean On Fri, Aug 9, 2013 at 8:15 AM, Ambrose Bonnaire-Sergeant abonnaireserge...@gmail.com wrote: I'll bet Laurent means paredit-convolute-sexpr :-) Ambrose On Fri, Aug 9, 2013 at 11:09 PM, Sean Corfield seancorfi...@gmail.com wrote: On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com wrote: What does it do? (first time I encounter it) DrRacket? It's the standard IDE for the Racket language (and all of its teaching subsets etc). -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- 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. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- 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.
Re: IDE feature
Suppose I start out writing this: (if some-expr (let [x (something y)] (process x)) (deal-with ...)) and I get to the ... and realize I need x in that expression as well. I just place my cursor before (process x) and do M-x conv RET and I get this code: (let [x (something y)] (if some-expr (process x) (deal-with x))) Similarly I can go from: (let [x (something y)] (if some-expr (process x) (deal-with y))) to: (if some-expr (let [x (something y)] (process x)) (deal-with y)) with a convolute (cursor in front of (process x) again) followed by a forward barf C-} after moving the cursor down two lines - convolute leaves it in front of (if ...). Sean On Fri, Aug 9, 2013 at 8:49 AM, Laurent PETIT laurent.pe...@gmail.com wrote: Le vendredi 9 août 2013, Sean Corfield a écrit : Ah, yes... it turns this ( | represents the cursor ): (f a b (g c d |e f)) into this: (g c d (f a b e f)) I find I use it most often when moving `let` forms around, but also for other constructs occasionally. Sorry, maybe it's just me, but I still fail to see how to use it to help with moving let. Could you elaborate a little example with let ? Sean On Fri, Aug 9, 2013 at 8:15 AM, Ambrose Bonnaire-Sergeant abonnaireserge...@gmail.com wrote: I'll bet Laurent means paredit-convolute-sexpr :-) Ambrose On Fri, Aug 9, 2013 at 11:09 PM, Sean Corfield seancorfi...@gmail.com wrote: On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com wrote: What does it do? (first time I encounter it) DrRacket? It's the standard IDE for the Racket language (and all of its teaching subsets etc). -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- 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. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- 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 -- -- 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. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to
Re: IDE feature
The vast majority of people who have tried paredit prefer using it, your reaction is very rare. So this is as far from YMMV as you can get. On Wed, Aug 7, 2013 at 9:58 PM, Lee Spector lspec...@hampshire.edu wrote: On Aug 7, 2013, at 2:06 PM, Norman Richards wrote: Structural editing, like paredit, is really the only sane way to do Clojure code. I honestly thing anyone who manually balances parenthesis or edits Clojure functions in a way that doesn't preserve the structural integrity of your expressions is just doing it wrong. (not just doing it poorly - but doing it wrong) What a spectacularly annoying thing to say. I've been coding in Lisp for close to 30 years and teaching Lisp off and on for about 20. I have used paredit many times over these decades but I dislike it intensely, both for my own coding and for my teaching. I have my reasons for this, which I could explain, but I have no interest in discouraging you or anyone else who finds it useful from using it. But I don't want to use it, and I don't see where you get off saying that I'm doing it wrong on account of this. So, of course, my advice to the original poster is to just jump in and learn paredit. It will probably seem awkward at first, but if you invest the effort (and it honestly doesn't take that much) to learn a better way to edit expressions, you'll be so much better off. Your mileage may vary! In fact, I've sold several people on Clojure just by showing them how paredit makes it significantly easier to lisp-style expressions than to edit C-style languages with their irregular syntax. I would jumped on lisp years ago if I had realized how easy it was to edit instead of remembering those painful university lisp assignments where I spent all my time balancing parenthesis and being afraid to make simple structural changes for fear of getting my code all messed up. In my own experience bracket-matching and auto-reindentation are indeed essential, and they make balancing parentheses and seeing the structure of the code almost effortless. I would personally have a hard time coding in any environment without these tools. But Paredit takes things further by interfering with the typing/cutting/pasting/sketching/brainstorming skills/habits that I've developed over my whole life and which I use in every other text-based application and environment, preventing me from treating programs as text -- which is how I sometimes really want to think of them, especially when I'm playing with ideas and sketching out code roughly. Your mileage may vary! But that doesn't mean that either of us is doing it wrong. -Lee -- Lee Spector, Professor of Computer Science Cognitive Science, Hampshire College 893 West Street, Amherst, MA 01002-3359 lspec...@hampshire.edu, http://hampshire.edu/lspector/ Phone: 413-559-5352, Fax: 413-559-5438 -- -- 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.
Re: IDE feature
Lee has a valid point. Lee's point is: let me decide. Put paredit in, but let me turn it off if I want. I agree that paredit is the only sane way for me and for anyone who doesn't have Lee's muscle memory to overcome. But for Lee, paredit is 'doing it wrong', because he doesn't enjoy it and he's unproductive that way. And that trumps any particular language, tool, paradigm, what-have-you. I mean, there are some people who are perfectly productive and happy in C++. If that's possible, then anything is :-) On Thursday, August 8, 2013 4:58:32 AM UTC+2, Lee wrote: On Aug 7, 2013, at 2:06 PM, Norman Richards wrote: Structural editing, like paredit, is really the only sane way to do Clojure code. I honestly thing anyone who manually balances parenthesis or edits Clojure functions in a way that doesn't preserve the structural integrity of your expressions is just doing it wrong. (not just doing it poorly - but doing it wrong) What a spectacularly annoying thing to say. I've been coding in Lisp for close to 30 years and teaching Lisp off and on for about 20. I have used paredit many times over these decades but I dislike it intensely, both for my own coding and for my teaching. I have my reasons for this, which I could explain, but I have no interest in discouraging you or anyone else who finds it useful from using it. But I don't want to use it, and I don't see where you get off saying that I'm doing it wrong on account of this. So, of course, my advice to the original poster is to just jump in and learn paredit. It will probably seem awkward at first, but if you invest the effort (and it honestly doesn't take that much) to learn a better way to edit expressions, you'll be so much better off. Your mileage may vary! In fact, I've sold several people on Clojure just by showing them how paredit makes it significantly easier to lisp-style expressions than to edit C-style languages with their irregular syntax. I would jumped on lisp years ago if I had realized how easy it was to edit instead of remembering those painful university lisp assignments where I spent all my time balancing parenthesis and being afraid to make simple structural changes for fear of getting my code all messed up. In my own experience bracket-matching and auto-reindentation are indeed essential, and they make balancing parentheses and seeing the structure of the code almost effortless. I would personally have a hard time coding in any environment without these tools. But Paredit takes things further by interfering with the typing/cutting/pasting/sketching/brainstorming skills/habits that I've developed over my whole life and which I use in every other text-based application and environment, preventing me from treating programs as text -- which is how I sometimes really want to think of them, especially when I'm playing with ideas and sketching out code roughly. Your mileage may vary! But that doesn't mean that either of us is doing it wrong. -Lee -- Lee Spector, Professor of Computer Science Cognitive Science, Hampshire College 893 West Street, Amherst, MA 01002-3359 lspe...@hampshire.edu javascript:, http://hampshire.edu/lspector/ Phone: 413-559-5352, Fax: 413-559-5438 -- -- 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.
Re: IDE feature
I've tried paredit several times and dislike it. I found that while editing the code, I spent a lot of mental energy trying to figure out how to edit the code within the constraints of the structure-preserving transformation key combos, which took away from my ability to concentrate on the problem at hand. I know plenty of others who feel the same way. So maybe the paredit folks are just a vocal minority. Do you have any evidence for your claim that paredit is preferred by the vast majority of people who have tried it? On Thu, Aug 8, 2013 at 12:20 AM, Steven Degutis sbdegu...@gmail.com wrote: The vast majority of people who have tried paredit prefer using it, your reaction is very rare. So this is as far from YMMV as you can get. -- -- 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.
Re: IDE feature
Mark Engelberg mark.engelb...@gmail.com writes: I've tried paredit several times and dislike it. I found that while editing the code, I spent a lot of mental energy trying to figure out how to edit the code within the constraints of the structure-preserving transformation key combos, which took away from my ability to concentrate on the problem at hand. That statement is also true for people new to emacs or even more vi. But after the key bindings mave made it into your muscle memory, there are probably no other editors that can be used that effectively for text editing as those two. When I started using paredit, I also found it awkward at first, but I kept on using it, and now I don't know how people can edit Lisp without it. Bye, Tassilo -- -- 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.
Re: IDE feature
Hi, Am Donnerstag, 8. August 2013 10:05:28 UTC+2 schrieb Tassilo Horn: now I don't know how people can edit Lisp without it. Quite simple: You type an (, you type some more code, you type ). Easy as that. Can we stop this arrogant smug paredit weenie discussion now? Writing great code would be a much better use of our time than calling other people insane. Meikel (who kept hundreds of vim users happy around the globe for more than four years with VimClojure (ranked 2nd after emacs in Chas' surveys) - without using paredit) -- -- 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.
Re: IDE feature
Meikel Brandmeyer (kotarak) m...@kotka.de writes: now I don't know how people can edit Lisp without it. Quite simple: You type an (, you type some more code, you type ). Easy as that. Writing is easy. IMO, paredit (or structural editing in general) shines when refactoring code. Can we stop this arrogant smug paredit weenie discussion now? Yes. Writing great code would be a much better use of our time than calling other people insane. I've never called anybody insane. I just wanted to transport that paredit and other tools need some time to get used to, but then the investment might be worth it. Bye, Tassilo -- -- 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.
Re: IDE feature
Hi, Am Donnerstag, 8. August 2013 10:45:34 UTC+2 schrieb Tassilo Horn: I've never called anybody insane. I just wanted to transport that paredit and other tools need some time to get used to, but then the investment might be worth it. I meant the overall discussion. Not you in person. From somewhere down the thread: Structural editing, like paredit, is really the only sane way to do Clojure code. So not using it is insane. I don't agree together with Lee and Mark. YMMV. Meikel -- -- 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.
Re: IDE feature
Tassilo Horn t...@gnu.org writes: Writing great code would be a much better use of our time than calling other people insane. I've never called anybody insane. I just wanted to transport that paredit and other tools need some time to get used to, but then the investment might be worth it. I didn't discover paredit till I started clojure, having spent many years writing emacs-lisp. For me, it was like learning to touch type many years ago; hard at first, but paid benefits within a week. I think part of the problem is that the commands that I used most frequently are classifed under Barfage and Slurpage -- names that are so ridiculous that it took me a week to find out what they do. Phil -- -- 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.
Re: IDE feature
On Aug 8, 2013, at 3:34 AM, Robert Stuttaford wrote: Lee has a valid point. Lee's point is: let me decide. Put paredit in, but let me turn it off if I want. I agree that paredit is the only sane way for me and for anyone who doesn't have Lee's muscle memory to overcome. But for Lee, paredit is 'doing it wrong', because he doesn't enjoy it and he's unproductive that way. And that trumps any particular language, tool, paradigm, what-have-you. I mean, there are some people who are perfectly productive and happy in C++. If that's possible, then anything is :-) I'm happy to drop this after this message too. I just couldn't let such an unnecessarily insulting email stand without a response, and BTW I also don't know where the alleged data about majorities/minorities is coming from (not that such data would even mean that the minority are doing it wrong). Before I do, though, I'd like to clarify: my dislike of paredit isn't just about muscle memory, although that's part of it. The biggest issue is that when I write code it is very often not structurally sound while I'm composing it, and that's intentional and important. Yes, it has to be structurally sound when I evaluate it, but along the way I often jump around non-linearly and add weird things when I think about them as I have new ideas, or copy chunks of code with unbalanced parentheses from someplace else because I know I need *something* related but I'm not yet sure how the pieces should fit into the new structure yet. Sort of like I'm composing this email (and like I compose most text), which had ungrammatical stuff at first but which I've rearranged and patched up (I hope :-) as I've proceeded. For me, paredit is like a straightjacket that prevents me from writing code in this free-form way, which is an important part of the way I work. And one other part of my dislike comes from my work teaching new programmers, who have enough to learn and overcome without having to rethink the concept of editing before turning (a b (c d)) into (a (b c d)), which they could do effortlessly in a normal editor. Okay. I'm done. -Lee -- -- 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.
Re: IDE feature
Lee Spector lspec...@hampshire.edu writes: On Aug 8, 2013, at 3:34 AM, Robert Stuttaford wrote: Lee has a valid point. Lee's point is: let me decide. Put paredit in, but let me turn it off if I want. I agree that paredit is the only sane way for me and for anyone who doesn't have Lee's muscle memory to overcome. But for Lee, paredit is 'doing it wrong', because he doesn't enjoy it and he's unproductive that way. And that trumps any particular language, tool, paradigm, what-have-you. I mean, there are some people who are perfectly productive and happy in C++. If that's possible, then anything is :-) I'm happy to drop this after this message too. I just couldn't let such an unnecessarily insulting email stand without a response I think he was trying to support you actually. He's saying it doesn't work for you, which means it's the wrong tool! And one other part of my dislike comes from my work teaching new programmers, who have enough to learn and overcome without having to rethink the concept of editing before turning (a b (c d)) into (a (b c d)), which they could do effortlessly in a normal editor. I can see this as a problem, although, there again new programmers are likely to have problems getting parens balanced. I've never taught lisp to new programmers, but given the difficult those I have taught Java have with brace/paren matching, I guess it's a problem. It's always hard to know when to bring in tools, especially the ones that are really useful, but have a learning curve. Phil -- -- 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.
Re: IDE feature
I can see this as a problem, although, there again new programmers are likely to have problems getting parens balanced. I've never taught lisp to new programmers, but given the difficult those I have taught Java have with brace/paren matching, I guess it's a problem. It's always hard to know when to bring in tools, especially the ones that are really useful, but have a learning curve. Smart Parens[1] looks interesting/useful. Seems like a less oppressive paredit without losing too many features and gaining others. This might be easier for beginners. [1] https://github.com/Fuco1/smartparens/wiki -- -- 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.
Re: IDE feature
On Aug 8, 2013, at 8:15 AM, Phillip Lord wrote: I'm happy to drop this after this message too. I just couldn't let such an unnecessarily insulting email stand without a response I think he was trying to support you actually. He's saying it doesn't work for you, which means it's the wrong tool! I was referring to Norman Richard's comment, which is what set me off: Structural editing, like paredit, is really the only sane way to do Clojure code. I honestly thing anyone who manually balances parenthesis or edits Clojure functions in a way that doesn't preserve the structural integrity of your expressions is just doing it wrong. (not just doing it poorly - but doing it wrong). And one other part of my dislike comes from my work teaching new programmers, who have enough to learn and overcome without having to rethink the concept of editing before turning (a b (c d)) into (a (b c d)), which they could do effortlessly in a normal editor. I can see this as a problem, although, there again new programmers are likely to have problems getting parens balanced. I've never taught lisp to new programmers, but given the difficult those I have taught Java have with brace/paren matching, I guess it's a problem. Agreed. But good brace/paren *matching* (highlighting the mate and/or unmatched brackets) solves this problem without all the downsides (IMHO) of paredit. -Lee -- -- 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.
Re: IDE feature
Just for the record: I've been coding in Lisp for close to 30 years make that 20 years in my case and I agree with Lee. Can't live without C-M-q, TAB, M-left/right, C-M-SPC but paredit is interfering too much for /my/ taste. stefan -- -- 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.
Re: IDE feature
Haha, I come back to this list after a good few months of not being able to keep up with the volume to find a rant about paredit - priceless! Seriously though, these things are all personal and as such clearly get people's backs up. So for what it's worth, let me throw my thoughts in... I wouldn't go so far as to say that not using paredit (or an equivalent) is the wrong way (although I probably would in the pub after a couple of pints). However, it *definitely* feels to me that using an editor that doesn't support paredit feels broken - and I always wind up writing broken code with missing parenthesis because my mind is used to not worrying about them. Also, moving forms around manually is pretty dreadful and syntax-error prone - paredit massively improves this. The analogy I think about is touch typing. People might also make a claim that programmers that don't touch type are doing it the wrong way. I personally definitely find that touch typing improves my ability to program as it frees my mind from having to worry about my finger placement and looking at the keyboard. Also, I can do an awful lot with key combos which all serves to improve my bandwidth of communication to the computer. However, this isn't an experience you can explain to someone - you have to be a touch typer to appreciate these benefits. Similarly, you have to be fluent with paredit to appreciate the benefits. With both, you have to go through a pretty dreadful learning curve where your productivity is reduced. Here's a challenge: Find me a person who touch typed fluently that stopped and reverted back to single finger typing. Find me a person who fluently used paredit that stopped and reverted back to manual parenthesis manipulation. Sam --- http://sam.aaron.name On 8 Aug 2013, at 14:09, Stefan Kamphausen ska2...@gmail.com wrote: Just for the record: I've been coding in Lisp for close to 30 years make that 20 years in my case and I agree with Lee. Can't live without C-M-q, TAB, M-left/right, C-M-SPC but paredit is interfering too much for /my/ taste. stefan -- -- 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.
Re: IDE feature
Find me a person who fluently used paredit that stopped and reverted back to manual parenthesis manipulation. /me raises my hand. Structural editing was useful in LispVM (on IBM mainframes) where the display was 12 lines by 40 characters. It might also be useful for the iPad lisping app. If your IDE uses 80% of your display for buttons, lines, and icons I can see where it would be useful, since most of the text area is gone. However, I've been programming in lisp for 42 years on everything from punched cards to mega-displays. I find that keeping structure and counting parens is like finishing a thought. It just happens. I don't remember the last time I had a paren-balance bug. I've spent the last 13 years rewriting and refactoring Axiom which is 1.2 million lines of lisp code so I have a fair sized sample as a test case. I find that programming occurs in my head and that the computer is only useful for recording the results. For me, smart editing and IDEs get in my way, like a helpful newbie in a metal shop. Then again I don't use IDEs. If it works for you, go for it. Tim -- -- 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.
Re: IDE feature
On 8 Aug 2013, at 16:29, Tim Daly d...@axiom-developer.org wrote: Find me a person who fluently used paredit that stopped and reverted back to manual parenthesis manipulation. /me raises my hand. Structural editing was useful in LispVM (on IBM mainframes) where the display was 12 lines by 40 characters. It might also be useful for the iPad lisping app. If your IDE uses 80% of your display for buttons, lines, and icons I can see where it would be useful, since most of the text area is gone. However, I've been programming in lisp for 42 years on everything from punched cards to mega-displays. I find that keeping structure and counting parens is like finishing a thought. It just happens. I don't remember the last time I had a paren-balance bug. I've spent the last 13 years rewriting and refactoring Axiom which is 1.2 million lines of lisp code so I have a fair sized sample as a test case. I find that programming occurs in my head and that the computer is only useful for recording the results. For me, smart editing and IDEs get in my way, like a helpful newbie in a metal shop. Then again I don't use IDEs. If it works for you, go for it. Super interesting - thanks for sharing this. The fact that this list contains such a broad range of such interesting people is a real asset to the Clojure community. Sam --- http://sam.aaron.name -- -- 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.
Re: IDE feature
On Thu, 08 Aug 2013, Sam Aaron wrote: Haha, I come back to this list after a good few months of not being able to keep up with the volume to find a rant about paredit - priceless! Seriously though, these things are all personal and as such clearly get people's backs up. So for what it's worth, let me throw my thoughts in... I'm very much of the can't we all just get along? school, too. One of my biggest resistance-points to paredit was that I hated the idea of the editor producing syntactically correct structures even though the partially written logic behind them was incomplete and broken. Unclosed parentheses were a visible marker of unfinished thoughts, and having them automatically closed was like chopping down signposts I was relying on. The switch from this mindset wasn't easy, and didn't happen until I'd been editing paredit-only for a good while. It still makes me nervous. One result is that I actively try to write shorter functions (which is good practice, anyway). I also more frequently put mental state that might be lost into FIXME comments or logging statements, so there is a visual (and, better, searchable) reminder of incompleteness if I switch contexts. A second stumbling-block was paredit's occasional tendency just to get something wrong and make it obnoxiously hard to fix. Being unable to delete a bad parenthesis or switch the nesting level of a square bracket is utterly rage-inducing. My early experiences with this were quite aggravating. Who would want to use a mode that breaks the backspace key? The realization that I could manually fix problems by killing/cutting the bad bits (C-SPACE at one end, positioning the cursor at the other, then C-w to kill the region) and, if necessary, yanking/pasting them to an appropriate location (C-y) meant that I could jump outside of paredit's straightjacket when the annoyance factor started rising, without losing ground by disabling it completely. I'd long before rebound C-q to something else so I never relied on the ability to C-q delimiter to force an insertion, but that option is there, too. I wouldn't go so far as to say that not using paredit (or an equivalent) is the wrong way (although I probably would in the pub after a couple of pints). However, it *definitely* feels to me that using an editor that doesn't support paredit feels broken - and I always wind up writing broken code with missing parenthesis because my mind is used to not worrying about them. Also, moving forms around manually is pretty dreadful and syntax-error prone - paredit massively improves this. I'd probably agree with you over those beers to the extent that trying to go non-paredit is deeply suboptimal if you're live-coding! There's a deeper issue that gets back to Lee's comment about thinking of code as text. If that is the mental model one is using, paredit's approach is almost offensive. That's the way I felt for quite a while, and I am deeply sympathetic to this perspective. When paredit finally started clicking with me, I realized that I was thinking about programming as editing and manipulating S-expressions rather than as editing text. I now find that this jump to a higher level of abstraction has reduced a certain level of friction between the code in my brain and the code that needs to appear on the screen. Tools are important, and the match between tools and mental models is critical. One of the marvelous things about Emacs is how easily you can adapt the tool to fit the shape of your mind (even though with paredit you might have to meet it halfway). What actually let me get paredit embedded into my work habits was that I changed my approach to keybindings. Rather than blithely learning and accepting the defaults, I began to optimize my entire environment. The best enabler for this was binding Hyper to the Caps Lock key. This has been absolutely brilliant. Hyper is a green field. You don't interfere with any existing bindings, and you can still rely on the normal keystroke documentation for any packages you might have installed. So, for example, I could never recall how barfage and slurpage were supposed to work but using H-M-n paredit-backward-slurp-sexp H-M-m paredit-backward-barf-sexp H-M-, paredit-forward-barf-sexp H-M-. paredit-forward-slurp-sexp feels completely natural. I also bind commonly used keys like delimiters to the Hyper plane, such as H-l for '(', H-; for ')'. The analogy I think about is touch typing. People might also make a claim that programmers that don't touch type are doing it the wrong way. I personally definitely find that touch typing improves my ability to program as it frees my mind from having to worry about my finger placement and looking at the keyboard. Also, I can do an awful lot with key combos which all serves to improve my bandwidth of communication to the computer. However, this isn't an experience you can explain to someone - you have to be a touch typer to appreciate these
Re: IDE feature
On Thu, Aug 8, 2013 at 7:44 AM, Lee Spector lspec...@hampshire.edu wrote: I was referring to Norman Richard's comment, which is what set me off: Structural editing, like paredit, is really the only sane way to do Clojure code. I honestly thing anyone who manually balances parenthesis or edits Clojure functions in a way that doesn't preserve the structural integrity of your expressions is just doing it wrong. (not just doing it poorly - but doing it wrong). I do stand by comment. You are free to disagree. It's so painful to watch people (experienced LISPers and newbies alike) manually balancing parenthesis and spending inordinate amounts of time to do the simplest tasks like pulling an expression up into a let or wrapping/unwrapping blocks. I've never once seen someone programming Clojure without paredit and thought to myself wow - that guy/gal really has this down. The scope of this statement is limited by the sadly small number of great Clojure coders I've had the pleasure of watching work. I would truly love to see some counter examples. If doing it by hand works for you, more power to you. I think you are doing it wrong, but my personal opinions thankfully don't really affect much of the world outside my head. -- -- 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.
Re: IDE feature
On Thu, Aug 8, 2013 at 4:50 PM, Norman Richards o...@nostacktrace.comwrote: I do stand by comment. You are free to disagree. It's so painful to watch people (experienced LISPers and newbies alike) manually balancing parenthesis and spending inordinate amounts of time to do the simplest tasks like pulling an expression up into a let or wrapping/unwrapping blocks. I've never once seen someone programming Clojure without paredit and thought to myself wow - that guy/gal really has this down. The scope of this statement is limited by the sadly small number of great Clojure coders I've had the pleasure of watching work. I would truly love to see some counter examples. Getting back to the point of the original post, one of the nice features of DrRacket is that when you type `]`, it automatically puts either ']' or ')' depending on which delimiter is required. In Clojure, you could extend this to `}`. When you have this feature, there's nothing arduous about matching parens. You just hit `]` repeatedly to close off the section that is now complete. I really like the analogy put forth earlier in this thread that this is like closing off a thought. Paren matching is currently more arduous in Clojure, because you really do have to pay attention to which kind of delimiter you're closing off and type the right one, so I would love to see this convenience feature implemented in one of the Clojure environments. -- -- 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.
Re: IDE feature
On Thu, Aug 8, 2013 at 5:00 PM, Mark Engelberg mark.engelb...@gmail.com wrote: Getting back to the point of the original post, one of the nice features of DrRacket is that when you type `]`, it automatically puts either ']' or ')' Having used DrRacket quite a bit lately, I do not find its handling of parens to be particularly good. Regardless of whether I set it to auto-close each opening paren or not, I constantly find myself with a missing paren or an extra paren, or an incorrect mix of closing ))]))] somewhere. It's not a problem I ever have in Emacs working on Clojure - with paredit. this is like closing off a thought. Paren matching is currently more arduous in Clojure, because you really do have to pay attention to which kind of delimiter you're closing off and type the right one, so I would love Well, that's why folks advocate paredit - that problem simply goes away. Yes, paredit is a bit of a pain to get used to at first, but it really does remove a whole slew of issues around parentheses in code, and it really does make you a lot more productive, especially once you learn the structural editing commands (I am surprised at how many times I use paredit-convolute-sexpr to help reorganize code - I'm almost at the point of binding it to a key sequence!). -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- 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.
Re: IDE feature
On Thu, Aug 8, 2013 at 7:20 PM, Sean Corfield seancorfi...@gmail.comwrote: Yes, paredit is a bit of a pain to get used to at first, but it really does remove a whole slew of issues around parentheses in code, and it really does make you a lot more productive, especially once you learn the structural editing commands (I am surprised at how many times I use paredit-convolute-sexpr to help reorganize code - I'm almost at the point of binding it to a key sequence!). It's almost like magic, when it fits the situation. I've been toying with the idea of starting a project to create a refactoring-like layer on top of paredit to give more of these types of operations - and hopefully with clearer names that convolute-sexpr... Is anyone else interested in working on refactoring tool? -- -- 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.
Re: IDE feature
On Aug 8, 2013, at 5:44 AM, Lee Spector lspec...@hampshire.edu wrote: Agreed. But good brace/paren *matching* (highlighting the mate and/or unmatched brackets) solves this problem without all the downsides (IMHO) of paredit. I too had a similar experience. Often when writing code I don't even produce it in the LISP form but more like a freehand drawing, and then, if the idea turned out to be valid, correct the syntax and put in the parenthesis. Paren matching helps me to do it without any effort by showing which parens are complimentary and, more importantly, without getting in the way. Having said that, paredit can be a great tool depending on your editing habits. One should definitely try it to see if it works for him, but saying it is a panacea for balancing parens/braces is a bit for stretch as other tools solve this problem as well. -- ST4096-RIPE -- -- 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.
Re: IDE feature
I don't think there's any IDE that does this out of the box, although I'm certain that if you're an elisp hacker, you could easily add this to emacs' clojure mode. I, too, miss that feature from DrRacket. -- -- 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.
Re: IDE feature
On Wed, 07 Aug 2013, Abraham wrote: Any IDE provides the feature found in DrRacket ,that is it auto completes the corresponding [ or ( . by pressing ) . Keep on pressing ) in DrRacket will autocomplete the square or round bracket. Clojure IDE feature shld be for completing { , [ , ( ... and so on. On Wed, 07 Aug 2013, Mark Engelberg wrote: I don't think there's any IDE that does this out of the box, although I'm certain that if you're an elisp hacker, you could easily add this to emacs' clojure mode. I, too, miss that feature from DrRacket. When using Emacs with paredit: paredit-close-parenthesis (or, in fact, any of paredit-close-round, paredit-close-square, and paredit-close-curly, which should be bound to the corresponding keys by default) will jump to past the closest closing delimiter, whether that closest delimiter is ')', ']', or '}'. This doesn't apply if you're in a string, comment, or character literal, of course. If paredit is a hard sell (it was for me, the first three or four times that I tried it), realizing that you can break the balance when needed by judicious use of kill and yank may be helpful during the transition to a structural editing mindset. Paul -- -- 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.
Re: IDE feature
On Wed, Aug 7, 2013 at 12:25 PM, Paul L. Snyder p...@pataprogramming.comwrote: If paredit is a hard sell (it was for me, the first three or four times that I tried it), realizing that you can break the balance when needed by judicious use of kill and yank may be helpful during the transition to a structural editing mindset. Structural editing, like paredit, is really the only sane way to do Clojure code. I honestly thing anyone who manually balances parenthesis or edits Clojure functions in a way that doesn't preserve the structural integrity of your expressions is just doing it wrong. (not just doing it poorly - but doing it wrong) So, of course, my advice to the original poster is to just jump in and learn paredit. It will probably seem awkward at first, but if you invest the effort (and it honestly doesn't take that much) to learn a better way to edit expressions, you'll be so much better off. In fact, I've sold several people on Clojure just by showing them how paredit makes it significantly easier to lisp-style expressions than to edit C-style languages with their irregular syntax. I would jumped on lisp years ago if I had realized how easy it was to edit instead of remembering those painful university lisp assignments where I spent all my time balancing parenthesis and being afraid to make simple structural changes for fear of getting my code all messed up. -- -- 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.
Re: IDE feature
On Aug 7, 2013, at 2:06 PM, Norman Richards wrote: Structural editing, like paredit, is really the only sane way to do Clojure code. I honestly thing anyone who manually balances parenthesis or edits Clojure functions in a way that doesn't preserve the structural integrity of your expressions is just doing it wrong. (not just doing it poorly - but doing it wrong) What a spectacularly annoying thing to say. I've been coding in Lisp for close to 30 years and teaching Lisp off and on for about 20. I have used paredit many times over these decades but I dislike it intensely, both for my own coding and for my teaching. I have my reasons for this, which I could explain, but I have no interest in discouraging you or anyone else who finds it useful from using it. But I don't want to use it, and I don't see where you get off saying that I'm doing it wrong on account of this. So, of course, my advice to the original poster is to just jump in and learn paredit. It will probably seem awkward at first, but if you invest the effort (and it honestly doesn't take that much) to learn a better way to edit expressions, you'll be so much better off. Your mileage may vary! In fact, I've sold several people on Clojure just by showing them how paredit makes it significantly easier to lisp-style expressions than to edit C-style languages with their irregular syntax. I would jumped on lisp years ago if I had realized how easy it was to edit instead of remembering those painful university lisp assignments where I spent all my time balancing parenthesis and being afraid to make simple structural changes for fear of getting my code all messed up. In my own experience bracket-matching and auto-reindentation are indeed essential, and they make balancing parentheses and seeing the structure of the code almost effortless. I would personally have a hard time coding in any environment without these tools. But Paredit takes things further by interfering with the typing/cutting/pasting/sketching/brainstorming skills/habits that I've developed over my whole life and which I use in every other text-based application and environment, preventing me from treating programs as text -- which is how I sometimes really want to think of them, especially when I'm playing with ideas and sketching out code roughly. Your mileage may vary! But that doesn't mean that either of us is doing it wrong. -Lee -- Lee Spector, Professor of Computer Science Cognitive Science, Hampshire College 893 West Street, Amherst, MA 01002-3359 lspec...@hampshire.edu, http://hampshire.edu/lspector/ Phone: 413-559-5352, Fax: 413-559-5438 -- -- 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.