Closed sillydong closed 5 years ago
@sillydong
I am very sorry that I have planned not continue to maintain this project.
please use gopls
ok, thanks!
Sorry but saibing/tools does not support issue.
I recently updated local saibing/tools source to the latest commit and reinstalled. After that, vscode starts to give out errors while starting gopls.
In OUTPUT info of gopls, the GOPATH is right but GOMOD is wrong. It seeks go.mod from the root directory of workspace.
~
|-project
|--go
|---bin
|---pkg
|---tools
|---src
|----pkg.sillydong.com
|-----app
|------cmd
|-------main.go
|-----lib
|-----vendor
|-----go.mod
|-----go.sum
.vscode/settings.json
{
"go.gopath": "${workspaceRoot}/go",
}
OUTPUT of gopls
[Info - 6:45:28 PM] #### Build info
golang.org/x/tools/cmd/gopls
golang.org/x/tools@(devel)
golang.org/x/sync@v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
#### Go info
go version go1.12.1 darwin/amd64
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/foo/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/foo/Src/project/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/opt/go/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/foo/Src/project/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/jc/wjk1kxrs3vn541l6vf8x0_2c0000gn/T/go-build628197722=/tmp/go-build -gno-record-gcc-switches -fno-common"
2019/05/20 18:45:28 get token failed: go [list -f {{context.GOARCH}} {{context.Compiler}} -- unsafe]: exit status 1: go: cannot determine module path for source directory /Users/foo/Src/project (outside GOPATH, no import comments)
2019/05/20 18:45:28 get package failed: go [list -f {{context.GOARCH}} {{context.Compiler}} -- unsafe]: exit status 1: go: cannot determine module path for source directory /Users/foo/Src/project (outside GOPATH, no import comments)
2019/05/20 18:45:28 get ast file failed: go [list -f {{context.GOARCH}} {{context.Compiler}} -- unsafe]: exit status 1: go: cannot determine module path for source directory /Users/foo/Src/project (outside GOPATH, no import comments)
2019/05/20 18:45:28 get package failed: go [list -f {{context.GOARCH}} {{context.Compiler}} -- unsafe]: exit status 1: go: cannot determine module path for source directory /Users/foo/Src/project (outside GOPATH, no import comments)
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x1357fc4]
goroutine 19 [running]:
golang.org/x/tools/internal/lsp/source.qualifier(0x0, 0x0, 0x0, 0x8)
/Users/foo/Src/Go/src/github.com/saibing/tools/internal/lsp/source/completion_format.go:173 +0x34
golang.org/x/tools/internal/lsp/source.getSymbols(0xc000202800, 0x0, 0x176bb00, 0xc00017c000, 0xc00017c000, 0xc0000a2750, 0xc0000d2d80)
/Users/foo/Src/Go/src/github.com/saibing/tools/internal/lsp/source/symbols.go:55 +0x143
golang.org/x/tools/internal/lsp/source.DocumentSymbols(0x17640a0, 0xc000037280, 0x176a160, 0xc0000d2d80, 0xc000242080, 0x76, 0x176a160)
/Users/foo/Src/Go/src/github.com/saibing/tools/internal/lsp/source/symbols.go:47 +0xd9
golang.org/x/tools/internal/lsp.(*Server).documentSymbol(0xc0001c60e0, 0x17640a0, 0xc000037280, 0xc0001fc150, 0xc0001fc150, 0x0, 0x0, 0x0, 0xc0000ce1e0)
/Users/foo/Src/Go/src/github.com/saibing/tools/internal/lsp/symbols.go:22 +0x138
golang.org/x/tools/internal/lsp.(*Server).DocumentSymbol(0xc0001c60e0, 0x17640a0, 0xc000037280, 0xc0001fc150, 0xc0001fc150, 0x0, 0x0, 0x0, 0x0)
/Users/foo/Src/Go/src/github.com/saibing/tools/internal/lsp/server.go:198 +0x4d
golang.org/x/tools/internal/lsp/protocol.serverHandler.func1(0x17640a0, 0xc000037280, 0xc0001c6150, 0xc00000fe40)
/Users/foo/Src/Go/src/github.com/saibing/tools/internal/lsp/protocol/tsserver.go:346 +0x4adb
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc000098360, 0xc0001c6150)
/Users/foo/Src/Go/src/github.com/saibing/tools/internal/jsonrpc2/jsonrpc2.go:276 +0xda
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
/Users/foo/Src/Go/src/github.com/saibing/tools/internal/jsonrpc2/jsonrpc2.go:270 +0xba
[Info - 6:45:28 PM] Connection to server got closed. Server will restart.
[Error - 6:45:28 PM] Request textDocument/documentSymbol failed.
Error: Connection got disposed.
at Object.dispose (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/main.js:876:25)
at Object.dispose (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-languageclient/lib/client.js:57:35)
at LanguageClient.handleConnectionClosed (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-languageclient/lib/client.js:2036:42)
at LanguageClient.handleConnectionClosed (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-languageclient/lib/main.js:127:15)
at closeHandler (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-languageclient/lib/client.js:2023:18)
at CallbackList.invoke (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/events.js:62:39)
at Emitter.fire (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/events.js:120:36)
at closeHandler (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/main.js:226:26)
at CallbackList.invoke (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/events.js:62:39)
at Emitter.fire (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/events.js:120:36)
at StreamMessageReader.fireClose (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/messageReader.js:111:27)
at Socket.listen.readable.on (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/messageReader.js:151:46)
at Socket.emit (events.js:187:15)
at Pipe.Socket._destroy._handle.close [as _onclose] (net.js:596:12)
[Error - 6:45:28 PM] Request textDocument/documentLink failed.
Error: Connection got disposed.
at Object.dispose (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/main.js:876:25)
at Object.dispose (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-languageclient/lib/client.js:57:35)
at LanguageClient.handleConnectionClosed (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-languageclient/lib/client.js:2036:42)
at LanguageClient.handleConnectionClosed (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-languageclient/lib/main.js:127:15)
at closeHandler (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-languageclient/lib/client.js:2023:18)
at CallbackList.invoke (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/events.js:62:39)
at Emitter.fire (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/events.js:120:36)
at closeHandler (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/main.js:226:26)
at CallbackList.invoke (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/events.js:62:39)
at Emitter.fire (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/events.js:120:36)
at StreamMessageReader.fireClose (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/messageReader.js:111:27)
at Socket.listen.readable.on (/Users/foo/.vscode/extensions/ms-vscode.go-0.10.2/node_modules/vscode-jsonrpc/lib/messageReader.js:151:46)
at Socket.emit (events.js:187:15)
at Pipe.Socket._destroy._handle.close [as _onclose] (net.js:596:12)
/Users/foo/Src/project/go/pkg/mod/github.com/bradfitz/gomemcache@v0.0.0-20190329173943-551aad21a668/go.mod
/Users/foo/Src/project/go/pkg/mod/github.com/gin-contrib/gzip@v0.0.1/go.mod
/Users/foo/Src/project/go/pkg/mod/github.com/jmoiron/sqlx@v1.2.0/go.mod
/Users/foo/Src/project/go/pkg/mod/github.com/lib/pq@v1.0.0/go.mod
/Users/foo/Src/project/go/pkg/mod/github.com/stretchr/testify@v1.3.0/go.mod
/Users/foo/Src/project/go/pkg/mod/github.com/ugorji/go/codec@v0.0.0-20181022190402-e5e69e061d4f/go.mod
/Users/foo/Src/project/go/pkg/mod/google.golang.org/appengine@v1.5.0/go.mod
/Users/foo/Src/project/go/pkg/mod/gopkg.in/yaml.v2@v2.2.1/go.mod
/Users/foo/Src/project/go/src/git.sillydong.com/go.mod
@sillydong
vscode needs to open the directory where the go.mod file is located, ie /Users/foo/Src/project/go/src/git.sillydong.com
could it be configured?
@sillydong
I'm sorry, it cannot be configured
In usual case, when I open projects under gopath, I can get importPath, but when I open projects not under gopath and defined itself as gopath, I can not get importPath, instead it returnd "%s is out of GOPATH workspace %v"
directory structure ~ |-project |--bin |--pkg |--tools |--src |---pkg.sillydong.com |----app |----lib |----vendor
I used
${workspaceRoot}
as its gopath(~/project
)I reviewed the code following
rootDIr
is~/project
srcDir
is~/project/src
thus I can not get importPath.
Is there any way to fix the importPath under this circumstance?
PS:
GO111MODULE
is off