How do I share a local import in a way that GoLand understands it? (it shows non-existing errors)

Hi,

I want to create two projects, and they should share the same local import. If I don't share it between them but each project gets it's own copy, then there is no problem at all.

This on-the-fly-analysis in GoLand (the error markings in the code editor) is happy with imports like "./somelib". But it will show non-existing errors with "../somelib".

It looks like the GoLand analyzer can't find the directory when the import starts with dot dot. Whereas the golang compiler compiles just fine.

And I am .. well.. just irritated by the red text that GoLand shows. I though about changing the error color, but I didn't want to do that. It's really good for errors. Just not for non-existing errors.

Thanks!

1
8 comments

GoLand 2019.2.2
Build #GO-192.6603.35, built on September 11, 2019
Licensed to GoLand Evaluator
Expiration date: October 20, 2019
Runtime version: 11.0.3+12-b304.56 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 725M
Cores: 4
Registry: run.processes.with.pty=false, ide.completion.variant.limit=500, suggest.all.run.configurations.from.context=true
Non-Bundled Plugins:

0

To reproduce, create two projects, using Windows 10, and try to share code via an outer directory.

Btw, I did find a thread about non-existing errors in the editor and followed some solution, namely File -> Invalidate Cache, but that didn't help.

And I dismissed the idea of creating a library within the standard libraries, because I didn't want it to be organized wrongly, and differently from how I would organize it without GoLand.

And I couldn't find any feature like additional installed libraries in golang. I'm a beginner golang user, don't know many ways to do it.

0

Am I right that all three directories are located under GOPATH and you don't use Go Modules?

0

No, none of the directories is in GOPATH. I'm working on a "portable" project so to say. I mean, I sometimes use my notebook instead of my desktop, and so I don't want to make the project depend on a modified Go installation.

I'll try adding the directories to the GOPATH, as that is within the project settings, I understand. Will report if it helps. Thanks a lot!

-------

The whole thing consists only of this:
Fresh Windows 10 install
Download and install GoLand
Download and install Go

As project create three directories

projects/the_local_lib_package
projects/project_A
projects/project_B

And now it's possible to let both project A and B import from that local package by just doing import "../the_local_lib_package" in both.

It works without GoLand, by using just a batch file to compile for example. With GoLand it works, too, but I will get red text.

0

In general, it should work as GoLand supports relative import paths. Please check that you don't have any integration enabled under Settings | Go | Go Modules and Dep

0

Yep, this works, again thanks!

Settings -> Project Structure -> Add Content Root
There one just needs to add the directory that contains the shared package.

0

No, I don't think have the integration enabled willingly.

I just looked into it, "Enable Dep Integration" is currently unchecked, and I believe it always was.

But I did install Go seperately after installing GoLand, maybe something went wrong there and I could try to use the downloader in GoLand, the next time when I install the whole thing again.

0

What about Go Modules integration? Is it disabled as well?

0

Please sign in to leave a comment.