Hello, I had a question regarding using Ultimate vs Community version of IDEA with Cursive. Does anyone know what (if any) features I will not get if I use the community version? Would love answers about what features you all regularly use that would not be possible in the community version.
Ultimate has nicer support for exploring JS stuff around React, etc. Been using Ultimate for a couple of years, but as far as I remember the Community didn’t “understand” JS files very well or at all. If you just focus on server side Clojure, you’re just fine with Community most likely (since Community has almost identical pure Java support with Ultimate, as far as I remember). I would start with Community and see if you miss anything. Relatively painless to upgrade.
You should be able to copy over your custom settings, etc over to Ultimate without much issue. I don’t recall any problems.
There are no Cursive features that require the Ultimate edition at the moment. Obviously you would not have the IntelliJ features (web stuff is probably the main one people miss) but Cursive will be exactly the same in both.
That may change in the future, especially around better JS support for CLJS, but that’s still unknown at this point.
Thank you for the clear answer 😄
@cfleming I read that there's a new version out but my intellij doesn't seem to see it. I'm on 1.10.2-eap2-2020.3
Hmm, I'm not sure - I just checked the repo page, and it should definitely be there even for EAP users.
Thanks for checking. Managed to update now via idea properly
tried checking for updates a number of times but no luck
Is there a Cursive setting that lets you have autocomplete prefer (or only) use unaliased keywords even if an alias for that ns exists?
There isn't at the moment, but it's something I've considered.
I’ve really started to dislike aliases for keywords. The only alternative is to type the whole thing out. It’d be great to have this as an option 🙂
I'm curious - why don't you like them?
They tie data to code. Copy pasting code does not work. Renaming a namespace breaks all keywords (bad if that data went into a DB).
I've started to think of them as an anti-pattern.
It's really hard to move away from it when autocomplete so strongly wants me to use them, haha.
Interesting. I’m actually planning to fix the copy paste issue, for keywords and also for symbols referring to vars. In the case of data, systems wouldn’t store them as aliased anyway normally, would they? I’d assume they’d be using a semantic kw object with ns and name parts. The alias thing is really just a reader shortcut, and doesn’t exist in e.g. EDN.
It is recommended for all data stored in Datomic to be qualified keywords. Data is inputted and outputted in keywords.
Sure, but what I mean is that Datomic won’t store it with the alias, it’ll store it with the full ns/name combo, right?
Oh, haha. Yes - that is correct. The reader always expands first.
It still seems to be mixing my data with my code. I have no need to require a namespace simply to refer to my data (I'm assuming that's the thought on how to fix it). I only want to work with the data.
I’m not proposing a solution, just trying to understand the problem better. Is there a case where the aliasing causes a problem? I get the copy/paste issue. Renaming namespaces shouldn’t be a problem, renaming aliases might if Cursive doesn’t handle that properly.
This isn’t a problem with Cursive, just aliases. I don’t like that it’s depending on the context of the namespace. Since it’s just data, I prefer to have it be exactly that — no implicit context involved.