Hi Marc,

The prevention of typing brackets is related to the concept of
"structural editing". You aren't editing text you are editing
s-expressions (e.g. lists). The most common implementation of this is
called "paredit", Cursive calls it "structural editing". It is
incredibly frustrating and annoying until it clicks and then it is
invaluable :).

However, to turn it off you can click on the toolbar at the bottom
right which says "Structural: On". To 'work around' it you can always
type the opening bracket which will insert the closing bracket, then
highlight and delete the closing bracket. The whole point of
structural editing however is that you never need to do this as it
won't ever let you get out of balance.

In terms of nested defns - yeah, Clojure really wants you to define
them at the top level. You can have lexically scoped functions using
(letfn [...]) or (let [my-fn (fn...)]) but nested defs/defns is bad
form.

Give structural editing a go - it really does make things a whole lot easier ;).

On 17 February 2015 at 16:19, Marc Fawzi <[email protected]> wrote:
>
> I did try it! and I was impressed, but one thing it did wasn't right for me.
> Here is my story:
>
> I had to give it up because, being a noob, I wanted to be able to
> accidentally type extra parenthesis and see that I did make a mistake (red
> underline or something like that) as opposed to being prevented from typing
> the extra parenthesis. It's a somewhat surprising approach to disable
> keyboard input, although I admit I did take the same approach in my self
> built special-purpose editor, but then learned that it wasn't the best way.
> I thought IntelliJ died on me and wasn't responding, so I restarted it and
> still couldn't type that extra parenthesis. Being a noob I had no idea that
> wat I was trying to do was wrong. Cursive is preemptive like that and it can
> be surprising and even interruptive if your style is to paint with a think
> brush then refine/remove errors. Is that a configurable thing?
>
> Also, when I had functions defined within a main function (I am still
> thinking in JS way and it's probably not best practice to do that in Clojure
> but I wanted to make some functions private in a library I was building) and
> Cursive was not able to detect the definitions of the inner functions so
> somewhere below the definitions where I actually call the functions they
> were getting highlighted as unknown. That's what I had tweeted
> @cursiveclojure about on Friday, but I failed to floow up (sorry)
>
> I'd rather use locally produced software and tools :) but that's my feedback
> and I hope to reevaluate based on your response.
>
> Thanks for the good work and for sharing it!
>
> Marc
>
> On Tue, Feb 17, 2015 at 7:53 AM, Colin Yates <[email protected]> wrote:
>>
>> I think you mean https://cursiveclojure.com/ :)
>>
>> On 17 February 2015 at 15:28, Alan Moore <[email protected]> wrote:
>> > Marc,
>> >
>> > You mention using La Clojure - while I have nothing against it you
>> > should really check out Cursive. Colin has done a fantastic job with it.
>> > See:
>> >
>> > www.cursiveclijure.com
>> >
>> > Just be sure to uninstall La Clojure first. If you have questions there
>> > is a mailing list for it:
>> >
>> > https://cursiveclojure.com/mailinglist.html
>> >
>> > Alan
>> >
>> > --
>> > Note that posts from new members are moderated - please be patient with
>> > your first post.
>> > ---
>> > You received this message because you are subscribed to the Google
>> > Groups "ClojureScript" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> > an email to [email protected].
>> > To post to this group, send email to [email protected].
>> > Visit this group at http://groups.google.com/group/clojurescript.
>>
>> --
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "ClojureScript" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/clojurescript.
>
>
> --
> Note that posts from new members are moderated - please be patient with your
> first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/clojurescript.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to