Fork me on GitHub
#cursive
<
2017-11-07
>
cfleming01:11:02

@kenny Here’s the fix for your problem (and others) in the next build:

cfleming01:11:47

You can now resolve any macro as any other with a decent UI to select them.

kenny01:11:55

That is awesome!!

cfleming01:11:49

The one other issue is how those customisations get shared across a team - I’ll check that’s working ok.

kenny01:11:45

We aren't doing that right now but that seems quite valuable. Are you suggesting there is a way to do that right now?

cfleming01:11:23

No, I’m suggesting that there should be 🙂

cfleming01:11:57

Right now I think they’re IDE specific, and there’s no good way to make them project-specific.

cfleming01:11:22

In your case, these customisations are specific to the project you define your wrappers in, so that’s what you’d want.

cfleming01:11:05

But if you were defining that for something that came from a lib you use in many projects, it would be annoying to have to re-define it in each one.

kenny01:11:42

Isn't it fair to say that namespaces should be global?

kenny01:11:57

Therefore these resolve-as settings should also be global

cfleming01:11:03

Well, there are two sorts of global, or two things which are global in different ways. IDE settings are global to any project you open in your IDE. Project settings are global to anyone opening that project, assuming you’re checking the relevant config file in.

cfleming01:11:29

Things either have to be stored with your IDE or your project, they can’t be both.

cfleming01:11:36

Most config falls pretty clearly into one or the other, but sometimes things like this require both depending on how you use it.

kenny01:11:36

Makes sense. What I was suggesting was is that this sort of setting is global to any project you open.

cfleming01:11:11

Yeah, I think there’s scope for something you configure in your IDE that gets copied to any project you open, but IntelliJ doesn’t have anything like that.

cfleming01:11:24

Default run configs would be another good candidate for that.

kenny01:11:22

Don't the current symbol resolutions get copied to every project?

kenny01:11:36

Or are somehow treated as global.

cfleming01:11:59

No. Because they’re associated with your IDE, you will see them in all projects, but your co-workers will not.

kenny01:11:38

Ah I see. Because they are not stored in the .idea project folder?

cfleming01:11:13

The issue with an IDE config that got synced to projects you opened would be if you and a co-worker had different, say, indentation settings for a particular form. Then each time one of you checked in that setting would get overwritten for the other person.

cfleming01:11:25

Yes, that’s right. Because project config is stored in .idea, you can check it in and co-workers will see it, but then it won’t apply to any other projects you may have.

cfleming01:11:27

That would make sense if you’re customising a macro defined in that project, since anyone using the project will need that customisation and you’ll never need it in any other project.

cap10morgan22:11:47

Cursive bundles its own leiningen, yes?

cfleming22:11:34

@cap10morgan Not quite, but it does download it automatically to ~/.lein/self-installs on first use of a particular version.

cap10morgan22:11:00

oh, hmm. I'm trying to get it to use 2.8.1, but not quite seeing how.

cfleming22:11:06

So the only time that you might notice that is if you try to use it when not connected to the internet yet.

cap10morgan22:11:17

I found a version drop down list in the settings, but it maxes out at 2.7.1

cfleming22:11:55

Ugh, sorry, I forgot to add that to the latest EAP. I filed https://github.com/cursive-ide/cursive/issues/1882 and I’ll add it to the next one, hopefully in a couple of days.