Skip to content
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

Feature Request: Completion with TinyGo machine package #3671

Open
marcofeltmann opened this issue Jun 18, 2024 · 1 comment
Open

Feature Request: Completion with TinyGo machine package #3671

marcofeltmann opened this issue Jun 18, 2024 · 1 comment

Comments

@marcofeltmann
Copy link

Hacking with TinyGo lacks Auto-Completion support for machine package

I hacked a little with Tiny Go and got rid of a bunch of linter warnings using the tinygo.nvim plugin to set the target.

But the gd keystrokes for Go Definition won't work, the C-x C-o for completion neither works.

Note
I skipped the nvim and vim-go configuration section as it's not a bug, vim-go behaves pretty well.
The issue is related to how TinyGo and the machine package behave!

Vim version (first three lines from :version):

NVIM v0.10.0

Go version (go version):

go version go1.22.3 linux/amd64
tinygo version 0.31.2 linux/amd64 (using go version go1.22.3 and LLVM version 17.0.6)

Go environment

go env Output:
{
	"AR": "ar",
	"CC": "gcc",
	"CGO_CFLAGS": "-O2 -g",
	"CGO_CPPFLAGS": "",
	"CGO_CXXFLAGS": "-O2 -g",
	"CGO_ENABLED": "0",
	"CGO_FFLAGS": "-O2 -g",
	"CGO_LDFLAGS": "-O2 -g",
	"CXX": "g++",
	"GCCGO": "gccgo",
	"GO111MODULE": "",
	"GOAMD64": "v1",
	"GOARCH": "amd64",
	"GOBIN": "",
	"GOCACHE": "/home/mafe/.cache/go-build",
	"GOENV": "/home/mafe/.config/go/env",
	"GOEXE": "",
	"GOEXPERIMENT": "",
	"GOFLAGS": "",
	"GOGCCFLAGS": "-fPIC -m64 -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build4078892123=/tmp/go-build -gno-record-gcc-switches",
	"GOHOSTARCH": "amd64",
	"GOHOSTOS": "linux",
	"GOINSECURE": "",
	"GOMOD": "/dev/null",
	"GOMODCACHE": "/home/mafe/go/pkg/mod",
	"GONOPROXY": "",
	"GONOSUMDB": "",
	"GOOS": "linux",
	"GOPATH": "/home/mafe/go",
	"GOPRIVATE": "",
	"GOPROXY": "https://proxy.golang.org,direct",
	"GOROOT": "/nix/store/vz8d6wmfcf38l3h3vymwqr6c5zxp5jmp-go-1.22.3/share/go",
	"GOSUMDB": "sum.golang.org",
	"GOTMPDIR": "",
	"GOTOOLCHAIN": "auto",
	"GOTOOLDIR": "/nix/store/vz8d6wmfcf38l3h3vymwqr6c5zxp5jmp-go-1.22.3/share/go/pkg/tool/linux_amd64",
	"GOVCS": "",
	"GOVERSION": "go1.22.3",
	"GOWORK": "",
	"PKG_CONFIG": "pkg-config"
}

gopls version

gopls version Output:
golang.org/x/tools/gopls v0.15.3

I'd love some hints on how to tackle this and would be happy to try to solve it on my own. :)

@bhcleek
Copy link
Collaborator

bhcleek commented Jun 18, 2024

It looks like it's a matter of setting GOROOT and maybe GOFLAGS correctly when Vim is started, and maybe using :GoBuildTags afterwards: https://github.com/pcolladosoto/tinygo.nvim/blob/main/lua/tinygo/init.lua.

I don't know that there's anything to be done here to change vim-go. If I'm reading tinygo.nvim correctly, it seems like everything you need is already in place. I'm happy to help you work through it to verify.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants