-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cursive doesn't recognize multiple "classifier" jars from dependencies #978
Comments
Ok, that sounds pretty bad. There are clearly a lot of issues with the way Cursive handles lein - I'm planning to try a new approach very soon which will invoke lein more directly, and hopefully fix a lot of issues along the way. |
The situation has changed in that symbols from the production namespace are now recognized but symbols from the |
Tested with cursive 0.1.68 on IntelliJ 15.0. |
Well, drat. This worked properly for me on 0.1.65 - I would see both a test jar and a main jar in the 'External Libraries' list, and all of the completion worked properly. However, updating to 0.1.66 breaks it again, in the way that @mruzicka described :( |
This seems to be working for me again in 0.1.69. Hooray! |
It works for me too, yay! 👍 |
This is probably effectively a duplicate of #558 , which we thought was fixed at one point. I decided to open a new issue after a particularly painful day of dancing around this issue. :(
When a project specifies a dependency on multiple "classifier" jars from an upstream project, Cursive's symbol recognition / auto-completion / etc. only recognize one of the jars.
Here's a repro project:
https://github.com/cprice404/cursive-testjar-test
If you open that up in cursive and then go look at the single test namespace, you should see that it's recognizing the stuff from the testutils namespace (from test jar) but not the stuff from the production namespace.
Running things via lein / REPL works fine, so lein is obviously capable of putting both the main and test jar on the classpath. Not sure where the wires get crossed in Cursive, but if you look in the 'external libraries' section of the project explorer treeview, only the test jar shows up.
I've used this style of artifact classification with IDEA and maven in the past, so I think IntelliJ is capable of supporting it.
I had a case today where I had to add a test jar to one of our biggest projects, and now all of the downstream projects are kind of a nightmare to work with in Cursive because the test jar has superseded the main jar and thus Cursive is no longer able to recognize any symbols from the main jar. :(
If this does end up boiling down to lein wackiness, I'll again throw out the offer of assistance in working up a PR for lein.
I'm actually thinking about going through all of our projects and getting rid of the test jars and just putting the tests into the production jars to get around this because it's so painful :) But it feels like designing the code around the capabilities of the editor is probably not the best way to go.
Let me know if there's anything I can do to help!
The text was updated successfully, but these errors were encountered: