I have indeed had conversations with Zach Oakes (developer of Nightcode) 
about the required use of Parinfer.

If I understand correctly, the fact that Parinfer always maintains matching 
brackets makes his life significantly easier in developing other aspects of 
his editor, I guess because he can always read the contents of the buffer 
as a sequence of expressions. This makes sense to me, although it does mean 
that Nightcode no longer meets my needs.

FWIW I've used parinfer for longer than 5 minutes and not gotten to used 
it, and I've seen students get quite cranky fighting with it. I also think 
that the initial experience is particularly important for beginners, who 
may, in some of the contexts in which I teach, already be intimidated by 
all of the other things being thrown at them. Messing with their ability to 
type, or their ability to understand what their editor is doing, is 
something that I really don't want to do, *especially* in their initial 
experience. 

Bigger picture -- and I'm sure some will disagree with this! -- I think the 
mindset encouraged by parinfer is actually antithetical to the way that 
students should understand their code. It's brackets that have meaning, not 
spacing, and to the extent that students have to focus on syntax as they 
type I want them to focus on brackets, not spacing. 

That said, I do think it's essential to have a re-indentation function that 
shows what structure  is implied by the brackets in the code. I find that 
this surfaces most beginner bugs quite nicely, and I'm super happy to have 
learned in this thread that the atom-beautify package does this in Atom.

 -Lee

On Wednesday, August 29, 2018 at 12:09:42 PM UTC-4, Phillip Lord wrote:
>
>
> Have you asked the developer to provide an option? 
>
> From my experience is that parinfer is weird for the first 5 mins. Then 
> it gets less confusing than trying to work out why the indentation is 
> wrong. In paren mode, it does allow adding and removing brackets also. 
>
> Phil 
>
> "'Lee' via Clojure" <clo...@googlegroups.com <javascript:>> writes: 
>
> > Alas, current Nightcode forces use of parinfer, unless something has 
> > changed very recently. 
> > 
> > Previous versions of Nightcode met all of my requirements and I used 
> them 
> > for teaching, and liked it quite a lot. 
> > 
> > But parinfer is a problem. One of my requirements is that the editor 
> acts 
> > mostly like a normal text editor, aside from bracket matching and 
> > user-triggered re-indentation. Auto-insertion of closing brackets is 
> okay 
> > too, if they can be erased. My students know how to type and to cut and 
> > paste text, and I want them to be able to rely on those skills working 
> as 
> > they expect them to work as they learn to program. I've seen parinfer 
> > confuse and frustrate some of my students, and it also happens to clash 
> > badly with my own ways of editing code. 
> > 
> >  -Lee 
> > 
> > 
> > On Monday, August 27, 2018 at 4:36:33 PM UTC-4, Erik Assum wrote: 
> >> 
> >> Have you had a look at Nightcode? 
> >> https://sekao.net/nightcode/ 
> >> 
> >> Erik. 
> >> -- 
> >> i farta 
> >> 
> >> 27. aug. 2018 kl. 22:00 skrev Nando Breiter <na...@aria-media.com 
> >> <javascript:>>: 
> >> 
> >> Lee, 
> >> 
> >> Perhaps https://atom.io/packages/atom-beautify will do what you want. 
> >> 
> >> With Parinfer disabled, I can select and shift-tab all code to the left 
> >> margin, removing all indentation. Then when I run Atom Beautify on the 
> >> file, all indentation is restored. 
> >> 
> >> 
> >> 
> >> Aria Media Sagl 
> >> +41 (0)76 303 4477 cell 
> >> skype: ariamedia 
> >> 
> >> On Mon, Aug 27, 2018 at 9:18 PM, 'Lee' via Clojure < 
> >> clo...@googlegroups.com <javascript:>> wrote: 
> >> 
> >>> 
> >>> Ah -- thank you! 
> >>> 
> >>> Now I can re-indent in Cursive, although it doesn't do the right thing 
> >>> after defn, etc. What do Cursive users do to get standard indentation? 
> >>> 
> >>> Playing a bit more I see some other with basic editing, even in 
> >>> "Structural Off" mode. Like if you type "(defn foo" and hit return, 
> then 
> >>> foo changes into some strange autocompleted symbol. Shift-return 
> avoids 
> >>> this, but the idea is to let people use their pre-existing typing 
> skills. 
> >>> It also won't let you delete to the left of the indentation point (it 
> jumps 
> >>> you up to the previous line), etc. I'm not sure how problematic these 
> >>> issues would be. 
> >>> 
> >>> 
> >>> 
> >>> On Monday, August 27, 2018 at 3:01:37 PM UTC-4, ri...@chartbeat.com 
> >>> wrote: 
> >>>> 
> >>>> It’s under one of the code or refactor menus, you can auto-format or 
> >>>> auto-indent. 
> >>>> 
> >>>> On Aug 27, 2018, at 11:30 AM, 'Lee' via Clojure <
> clo...@googlegroups.com> 
> >>>> wrote: 
> >>>> 
> >>>> 
> >>>> Probably true that my requirements are a bigger challenge for 
> >>>> multi-language IDEs. I thought Eclipse/Counterclockwise did a 
> reasonable 
> >>>> job of it back when that was an active project, but it was a bit 
> rough too, 
> >>>> since there was a lot of incidental and distracting complexity in 
> dealing 
> >>>> with Eclipse in general. 
> >>>> 
> >>>> I did see the "off" setting for parinfer/paredit in Cursive, but it's 
> >>>> not really "off" in the sense of behaving like a normal text editor, 
> and I 
> >>>> don't see re-indentation anywhere. FWIW since this is for teaching 
> I'm not 
> >>>> really interested in customization, just reasonable behavior out of 
> the box. 
> >>>> 
> >>>> 
> >>>> On Monday, August 27, 2018 at 11:21:47 AM UTC-4, Rick Mangi wrote: 
> >>>>> 
> >>>>> Yeah, I actually just create projects with lein. If you right click 
> on 
> >>>>> a project.clj you can just fire up a repl via lein and it works 
> really 
> >>>>> well. There's 3 choices for parenthesis, there's again a little 
> button on 
> >>>>> the bottom right to switch between parinfer/paredit and off. You can 
> >>>>> customize all of the code reformatting and you can even alias things 
> like 
> >>>>> defnp and other macros to evaluate correctly. 
> >>>>> 
> >>>>> That said, a tool that supports dozens of languages isn't going to 
> do 
> >>>>> any of them particularly easily :) 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> On Mon, Aug 27, 2018 at 11:18 AM 'Lee' via Clojure < 
> >>>>> clo...@googlegroups.com> wrote: 
> >>>>> 
> >>>>>> Thanks Rick. 
> >>>>>> 
> >>>>>> Just tried Cursive again but it still seems to fail pretty badly on 
> >>>>>> newbie setup and usability, which is what has hung me up in the 
> past. 
> >>>>>> 
> >>>>>> tldr: A half hour or so after a fresh install and going through the 
> >>>>>> Getting Started instructions I still don't have a REPL (confused 
> about Run 
> >>>>>> Configurations and what I'm seeing doesn't match the website pics), 
> and 
> >>>>>> although I can edit code in an existing project with drag and drop 
> (can't 
> >>>>>> yet create a project with a core.clj), even the "Structural Off" 
> editing 
> >>>>>> mode behaves oddly and doesn't appear to support structure-aware 
> >>>>>> re-indentation (again, unless I'm missing it). And the indentation 
> that it 
> >>>>>> prefers after a newline appears to be non-standard (e.g. after 
> "(defn foo"). 
> >>>>>> 
> >>>>>> I follow the Cursive mailing list and I know that a lot of people 
> find 
> >>>>>> it to be a wonderful tool, but I don't think it meets my 
> requirements. 
> >>>>>> 
> >>>>>>  -Lee 
> >>>>>> 
> >>>>>> 
> >>>>>> On Monday, August 27, 2018 at 10:43:36 AM UTC-4, Rick Mangi wrote: 
> >>>>>>> 
> >>>>>>> I find intellij + cursive to be pretty darn easy to use, and the 
> repl 
> >>>>>>> has an option to turn off parinfer. That said, I'm not a beginner. 
> The only 
> >>>>>>> drawback that I can think of other than price is that the clojure 
> >>>>>>> functionality is mostly put under a single menu and it's sometimes 
> awkward 
> >>>>>>> to navigate to subcommands. 
> >>>>>>> 
> >>>>>>> 
> >>>>>>> 
> >>>>>>> On Mon, Aug 27, 2018 at 9:48 AM Alex Miller <al...@puredanger.com> 
>
> >>>>>>> wrote: 
> >>>>>>> 
> >>>>>>>> I think Atom and VSCode are probably the two additional ones you 
> >>>>>>>> might want to look into? 
> >>>>>>>> 
> >>>>>>>> On Monday, August 27, 2018 at 8:45:34 AM UTC-5, Lee wrote: 
> >>>>>>>>> 
> >>>>>>>>> This is my roughly-annual check-in to see if there are new good 
> >>>>>>>>> editing/execution options for me to use in my Clojure teaching 
> and coding. 
> >>>>>>>>> 
> >>>>>>>>> My requirements are: 
> >>>>>>>>> 
> >>>>>>>>> - Simple installation/setup, even for new programmers, on 
> >>>>>>>>> Mac/Win/Linux 
> >>>>>>>>> 
> >>>>>>>>> - Usable by new programmers without significant training or 
> >>>>>>>>> learning curve 
> >>>>>>>>> 
> >>>>>>>>> - Syntax-aware re-indentation 
> >>>>>>>>> 
> >>>>>>>>> - Visual indication of matching brackets (e.g. matching bracket 
> >>>>>>>>> highlighted, or rainbow brackets, etc.) 
> >>>>>>>>> 
> >>>>>>>>> - No required use of paredit or parinfer 
> >>>>>>>>> 
> >>>>>>>>> Bells and whistles that would help but aren't as critical as the 
> >>>>>>>>> requirements listed above: 
> >>>>>>>>> 
> >>>>>>>>> - Access to argument lists, documentation, and symbol completion 
> >>>>>>>>> while typing 
> >>>>>>>>> 
> >>>>>>>>> - Integrated REPL, although a command-line REPL paired with an 
> >>>>>>>>> editor that met the requirements above would work 
> >>>>>>>>> 
> >>>>>>>>> I would be interested in solutions that work for Clojure and 
> >>>>>>>>> Clojurescript, or just Clojure, or just Clojurescript. 
> >>>>>>>>> 
> >>>>>>>>> Recent developments of which I'm aware but fall short of my 
> >>>>>>>>> requirements: 
> >>>>>>>>> 
> >>>>>>>>> - Nightcode and Lightmod, which would be fabulous if not for the 
> >>>>>>>>> required use of parinfer 
> >>>>>>>>> 
> >>>>>>>>> - Jupyter-based approaches, which also seem great except I see 
> none 
> >>>>>>>>> with syntax-aware re-indentation for Clojure 
> >>>>>>>>> 
> >>>>>>>>> FYI what I'm currently using is a combination of Gorilla REPL 
> and 
> >>>>>>>>> leiningen at the command line. This is quite nice although 
> >>>>>>>>> installation/setup is not as easy or foolproof as I would like 
> (I've had 
> >>>>>>>>> students who tried and failed to get it working on their Windows 
> laptops 
> >>>>>>>>> for an entire semester, messing with Java versions etc.), 
> Gorilla REPL is 
> >>>>>>>>> not very actively maintained, and the requirement to do some 
> things at the 
> >>>>>>>>> command line isn't ideal. 
> >>>>>>>>> 
> >>>>>>>>> Options I've used in the past, which more-or-less met my 
> >>>>>>>>> requirements but are no longer viable, include Clooj, Nightcode 
> (old 
> >>>>>>>>> versions, before parinfer), and Counterclockwise. 
> >>>>>>>>> 
> >>>>>>>>> I also try to keep an eye on "high-end" IDEs like Emacs and 
> >>>>>>>>> Cursive, but so far haven't found any that really meet my 
> requirements for 
> >>>>>>>>> simple installation/setup and usability for beginners. 
> >>>>>>>>> 
> >>>>>>>>> Any pointers would be very much appreciated! 
> >>>>>>>>> 
> >>>>>>>>> Thanks, 
> >>>>>>>>> 
> >>>>>>>>>  -Lee 
> >>>>>>>>> 
> >>>>>>>>> -- 
> >>>>>>>>> Lee Spector, Professor of Computer Science 
> >>>>>>>>> Director, Institute for Computational Intelligence 
> >>>>>>>>> Hampshire College, Amherst, Massachusetts, 01002, USA 
> >>>>>>>>> lspe...@hampshire.edu, http://hampshire.edu/lspector/, 
> 413-559-5352 
> >>>>>>>>> 
> >>>>>>>>> -- 
> >>>>>>>> You received this message because you are subscribed to the 
> Google 
> >>>>>>>> Groups "Clojure" group. 
> >>>>>>>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com. 
> >>>>>>>> For more options, visit https://groups.google.com/d/optout. 
> >>>>>>>> 
> >>>>>>> -- 
> >>>>>> You received this message because you are subscribed to the Google 
> >>>>>> Groups "Clojure" group. 
> >>>>>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com. 
> >>>>>> For more options, visit https://groups.google.com/d/optout. 
> >>>>>> 
> >>>>> -- 
> >>>> You received this message because you are subscribed to the Google 
> >>>> Groups "Clojure" group. 
> >>>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com. 
>

-- 
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/d/optout.

Reply via email to