Closed lowjoel closed 6 years ago
The solution is good, thank you! Although implementation and UX might be improved.
GoCoverageRunner
and GoCoverageProgramRunner
PATH
.As a solution of the second bullet, we can actually bundle package-coverage
executable.
Also, if you're going to continue on this PR, please sign https://www.jetbrains.com/agreements/cla/ first. Thank you.
Hi @zolotov yep, I've signed the CLA.
I'll try to refactor the code to solve Point 1; I think for Point 2 I'd need some guidance from you because that process is pretty unfamiliar to me. We can talk over Gitter if that's good for you.
I'm trying everything out on a Windows machine right now, I'll post updates here.
@zolotov: I've done some refactoring to the code, hope this is better :)
This works quite well on Windows, once the package-coverage binary is in place.
One more change to display a notification when the package-coverage
binary isn't installed.
Thank you, looks much better. Please make some updates in PR and I'll happily merge it
@zolotov I've tried my best to address your comments, have a look at one last question in the review.
@zolotov let me know if the final point is a deal breaker. If it is, I'll close it and will wait for you all to implement coverage.
@zolotov: strangely after running the IDE today, subsequent builds fail with Cannot add a configuration with name 'idea' as a configuration with that name already exists.
I've already cleared my Gradle caches... any idea what's up? Google doesn't come up with anything useful.
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'intellij-go'.
> A problem occurred configuring project ':google-app-engine:google-app-engine-yaml'.
> Cannot add a configuration with name 'idea' as a configuration with that name already exists.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
OK, upgrading the Gradle Intellij plugin seems to work.
@zolotov: I've removed the process listener and the coverage merger, since goverage handles that internally. How does this look now?
Looks good so far. I need to take a look how good it work and will merge it after that. Thank you!
Sorry, I really didn't have the time to work on this. Since 1.10 will fix this, let's use your implementation in GoLand. Thanks for the review!
@lowjoel sure. Thanks for an attempt!
As requested in https://youtrack.jetbrains.com/issue/GO-3620 by @zolotov, this implements support for recursive package coverage with line annotations.
This uses the package-coverage tool: https://github.com/corsc/go-tools/tree/master/package-coverage