golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
123.63k stars 17.61k forks source link

x/tools/gopls: no completion/suggestion/linting working on large projects #66787

Open didrocks opened 6 months ago

didrocks commented 6 months ago

What version of Go, VS Code & VS Code Go extension are you using?

Version Information
* Run `go version` to get version of Go from _the VS Code integrated terminal_. `go version go1.22.1 linux/amd64` * Run `gopls -v version` to get version of Gopls from _the VS Code integrated terminal_. ``` Build info ---------- golang.org/x/tools/gopls v0.15.2 golang.org/x/tools/gopls@v0.15.2 h1:4JKt4inO8JaFW3l/Fh9X1k/5JQn+iUOpdc4/Lpi0mOs= github.com/BurntSushi/toml@v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/google/go-cmp@v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= golang.org/x/exp/typeparams@v0.0.0-20221212164502-fae10dda9338 h1:2O2DON6y3XMJiQRAS1UWU+54aec2uopH3x7MAiqGW6Y= golang.org/x/mod@v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= golang.org/x/sync@v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= golang.org/x/telemetry@v0.0.0-20240209200032-7b892fcb8a78 h1:vcVnuftN4J4UKLRcgetjzfU9FjjgXUUYUc3JhFplgV4= golang.org/x/text@v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/tools@v0.18.1-0.20240311201521-78fbdeb61842 h1:No0LMXYFkp3j4oEsPdtY8LUQz33gu79Rm9DE+izMeGQ= golang.org/x/vuln@v1.0.1 h1:KUas02EjQK5LTuIx1OylBQdKKZ9jeugs+HiqO5HormU= honnef.co/go/tools@v0.4.6 h1:oFEHCKeID7to/3autwsWfnuv69j3NsfcXbvJKuIcep8= mvdan.cc/gofumpt@v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo= mvdan.cc/xurls/v2@v2.5.0 h1:lyBNOm8Wo71UknhUs4QTFUNNMyxy2JEIaKKo0RWOh+8= go: go1.21.3 ``` * Run `code -v` or `code-insiders -v` to get version of VS Code or VS Code Insiders. ``` 1.87.2 863d2581ecda6849923a2118d93a088b0745d9d6 x64 ``` * Check your installed extensions to get the version of the VS Code Go extension `v0.41.2` * Run Ctrl+Shift+P (Cmd+Shift+P on Mac OS) > `Go: Locate Configured Go Tools` command. ``` # Tools Configuration ## Environment GOBIN: undefined toolsGopath: gopath: /home/didrocks/.go GOROOT: /usr/local/go PATH: /home/didrocks/.go/bin:/usr/lib/ccache:/home/didrocks/tools/bin:/usr/local/go/bin:/home/didrocks/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/didrocks/development/flutter/bin ## Tools go: /usr/local/go/bin/go: go version go1.21.3 linux/amd64 gopls: /home/didrocks/.go/bin/gopls (version: v0.15.2 built with go: go1.21.3) gotests: not installed gomodifytags: not installed impl: not installed goplay: not installed dlv: not installed staticcheck: /home/didrocks/.go/bin/staticcheck (version: v0.4.7 built with go: go1.21.3) ## Go env Workspace Folder (no folder): undefined GO111MODULE='' GOARCH='amd64' GOBIN='' GOCACHE='/home/didrocks/.cache/go-build' GOENV='/home/didrocks/.config/go/env' GOEXE='' GOEXPERIMENT='' GOFLAGS='' GOHOSTARCH='amd64' GOHOSTOS='linux' GOINSECURE='' GOMODCACHE='/home/didrocks/.go/pkg/mod' GONOPROXY='github.com/canonical/ubuntu-pro-for-wsl' GONOSUMDB='github.com/canonical/ubuntu-pro-for-wsl' GOOS='linux' GOPATH='/home/didrocks/.go' GOPRIVATE='github.com/canonical/ubuntu-pro-for-wsl' GOPROXY='https://proxy.golang.org,direct' GOROOT='/usr/local/go' GOSUMDB='sum.golang.org' GOTMPDIR='' GOTOOLCHAIN='auto' GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64' GOVCS='' GOVERSION='go1.21.3' GCCGO='gccgo' GOAMD64='v1' AR='ar' CC='gcc' CXX='g++' CGO_ENABLED='1' GOMOD='/dev/null' GOWORK='' CGO_CFLAGS='-O2 -g' CGO_CPPFLAGS='' CGO_CXXFLAGS='-O2 -g' CGO_FFLAGS='-O2 -g' CGO_LDFLAGS='-O2 -g' PKG_CONFIG='pkg-config' GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build3505542839=/tmp/go-build -gno-record-gcc-switches' ```

Share the Go related settings you have added/edited

I did reset all go related settings in the editor after noticing first the first time completion /suggestion/autoimport didn’t work. The remaining settings left (for those debug traces) are:

    "go.languageServerFlags": [
        "-rpc.trace"
    ],
    "go.toolsManagement.autoUpdate": true,
    "gopls": {
        "verboseOutput": true,
    },

Note that I also tried adding semantictokens, but this didn’t improve anything.

Describe the bug

On a large project (hello world completion works on the same machine), gopls/vscode extension stops suggesting anything. One of those is for instance https://github.com/ubuntu/authd, but it’s not limited to it on my setup.

In the following reproducible step, I’m trying to request completion from an App struct instance to get its field. This is the same for anything else (methods or functions completion), refactoring, auto importing…

Note that the project is successfully building. If I run go build ./cmd/authd/, there is no error and the binary is produced.

I also tried to remove the gopls and go entire cache in my HOME directory, and having gopls rebuilt (then, with the default go version on the system, which is 1.21.3, which is autoupdate to 1.22.1 inside this project)

Steps to reproduce the behavior:

  1. Go to 'cmd/authd/daemon.go' we have the surroundings lines:

    
    type App struct {
    rootCmd cobra.Command
    viper   *viper.Viper
    config  daemonConfig
    
    daemon *daemon.Daemon
    
    ready chan struct{}
    }

[…] func New() *App { a := App{ready: make(chan struct{})}

Log recording start with the cursor after the last line
2. Type carriage return, then `a.`
3. See that nothing is proposed, no field or methods of a.

The logs starting when I type a return carriage, then `a.` on line 49 (which is an `App` instance), expecting completion:

[Trace - 07:59:09.260 AM] Sending notification 'textDocument/didChange'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go","version":30},"contentChanges":[{"range":{"start":{"line":47,"character":37},"end":{"line":47,"character":37}},"rangeLength":0,"text":"\n\t"}]}

[Trace - 07:59:09.286 AM] Received notification 'textDocument/publishDiagnostics'. Params: {"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go","version":30,"diagnostics":[]}

[Trace - 07:59:09.412 AM] Sending request 'textDocument/semanticTokens/range - (220)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"},"range":{"start":{"line":14,"character":0},"end":{"line":96,"character":0}}}

[Error - Received] 07:59:09.412 AM golang/vscode-go#220 semantictokens are disabled

[Error - 07:59:09] Request textDocument/semanticTokens/range failed. Message: semantictokens are disabled Code: 0 [Trace - 07:59:09.580 AM] Sending request 'textDocument/codeAction - (221)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"},"range":{"start":{"line":48,"character":1},"end":{"line":48,"character":1}},"context":{"diagnostics":[],"triggerKind":2}}

[Trace - 07:59:09.581 AM] Received notification 'window/logMessage'. Params: {"type":3,"message":"2024/04/03 07:59:09 fixImports(filename=\"/home/didrocks/work/authd/cmd/authd/daemon/daemon.go\"), abs=\"/home/didrocks/work/authd/cmd/authd/daemon/daemon.go\", srcDir=\"/home/didrocks/work/authd/cmd/authd/daemon\" ...\n"}

[Trace - 07:59:09.581 AM] Sending request 'textDocument/foldingRange - (222)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Info - 07:59:09] 2024/04/03 07:59:09 fixImports(filename="/home/didrocks/work/authd/cmd/authd/daemon/daemon.go"), abs="/home/didrocks/work/authd/cmd/authd/daemon/daemon.go", srcDir="/home/didrocks/work/authd/cmd/authd/daemon" ...

[Trace - 07:59:09.583 AM] Received response 'textDocument/codeAction - (221)' in 3ms. Result: null

[Trace - 07:59:09.584 AM] Received response 'textDocument/foldingRange - (222)' in 2ms. Result: [{"startLine":3,"startCharacter":8,"endLine":14,"endCharacter":29,"kind":"imports"},{"startLine":21,"startCharacter":17,"endLine":28,"endCharacter":20},{"startLine":32,"startCharacter":25,"endLine":35,"endCharacter":19},{"startLine":39,"startCharacter":26,"endLine":42,"endCharacter":22},{"startLine":46,"startCharacter":17,"endLine":97,"endCharacter":10},{"startLine":49,"startCharacter":27,"endLine":85,"endCharacter":21},{"startLine":54,"startCharacter":68,"endLine":79,"endCharacter":13},{"startLine":60,"startCharacter":27,"endLine":65,"endCharacter":5},{"startLine":61,"startCharacter":23,"endLine":64,"endCharacter":20},{"startLine":69,"startCharacter":72,"endLine":70,"endCharacter":14},{"startLine":72,"startCharacter":55,"endLine":73,"endCharacter":76},{"startLine":81,"startCharacter":55,"endLine":82,"endCharacter":27},{"startLine":101,"startCharacter":48,"endLine":133,"endCharacter":25},{"startLine":105,"startCharacter":59,"endLine":107,"endCharacter":82},{"startLine":111,"startCharacter":16,"endLine":113,"endCharacter":12},{"startLine":120,"startCharacter":22,"endLine":121,"endCharacter":68},{"startLine":125,"startCharacter":16,"endLine":127,"endCharacter":12},{"startLine":137,"startCharacter":72,"endLine":140,"endCharacter":9},{"startLine":144,"startCharacter":27,"endLine":145,"endCharacter":27},{"startLine":149,"startCharacter":32,"endLine":150,"endCharacter":31},{"startLine":154,"startCharacter":38,"endLine":158,"endCharacter":13},{"startLine":162,"startCharacter":22,"endLine":167,"endCharacter":43},{"startLine":164,"startCharacter":21,"endLine":165,"endCharacter":8},{"startLine":170,"startCharacter":45,"endLine":171,"endCharacter":119,"kind":"comment"},{"startLine":172,"startCharacter":27,"endLine":173,"endCharacter":10},{"startLine":177,"startCharacter":38,"endLine":178,"endCharacter":17}]

[Trace - 07:59:09.618 AM] Sending request 'textDocument/documentSymbol - (223)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:09.619 AM] Received response 'textDocument/documentSymbol - (223)' in 0ms. Result: [{"name":"cmdName","kind":14,"range":{"start":{"line":18,"character":6},"end":{"line":18,"character":23}},"selectionRange":{"start":{"line":18,"character":6},"end":{"line":18,"character":13}}},{"name":"App","detail":"struct{...}","kind":23,"range":{"start":{"line":21,"character":5},"end":{"line":29,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":8}},"children":[{"name":"rootCmd","detail":"cobra.Command","kind":8,"range":{"start":{"line":22,"character":1},"end":{"line":22,"character":22}},"selectionRange":{"start":{"line":22,"character":1},"end":{"line":22,"character":8}}},{"name":"viper","detail":"viper.Viper","kind":8,"range":{"start":{"line":23,"character":1},"end":{"line":23,"character":21}},"selectionRange":{"start":{"line":23,"character":1},"end":{"line":23,"character":6}}},{"name":"config","detail":"daemonConfig","kind":8,"range":{"start":{"line":24,"character":1},"end":{"line":24,"character":21}},"selectionRange":{"start":{"line":24,"character":1},"end":{"line":24,"character":7}}},{"name":"daemon","detail":"daemon.Daemon","kind":8,"range":{"start":{"line":26,"character":1},"end":{"line":26,"character":22}},"selectionRange":{"start":{"line":26,"character":1},"end":{"line":26,"character":7}}},{"name":"ready","detail":"chan struct{}","kind":8,"range":{"start":{"line":28,"character":1},"end":{"line":28,"character":20}},"selectionRange":{"start":{"line":28,"character":1},"end":{"line":28,"character":6}}}]},{"name":"systemPaths","detail":"struct{...}","kind":23,"range":{"start":{"line":32,"character":5},"end":{"line":36,"character":1}},"selectionRange":{"start":{"line":32,"character":5},"end":{"line":32,"character":16}},"children":[{"name":"BrokersConf","detail":"string","kind":8,"range":{"start":{"line":33,"character":1},"end":{"line":33,"character":19}},"selectionRange":{"start":{"line":33,"character":1},"end":{"line":33,"character":12}}},{"name":"Cache","detail":"string","kind":8,"range":{"start":{"line":34,"character":1},"end":{"line":34,"character":19}},"selectionRange":{"start":{"line":34,"character":1},"end":{"line":34,"character":6}}},{"name":"Socket","detail":"string","kind":8,"range":{"start":{"line":35,"character":1},"end":{"line":35,"character":19}},"selectionRange":{"start":{"line":35,"character":1},"end":{"line":35,"character":7}}}]},{"name":"daemonConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":39,"character":5},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":39,"character":5},"end":{"line":39,"character":17}},"children":[{"name":"Brokers","detail":"[]string","kind":8,"range":{"start":{"line":40,"character":1},"end":{"line":40,"character":19}},"selectionRange":{"start":{"line":40,"character":1},"end":{"line":40,"character":8}}},{"name":"Verbosity","detail":"int","kind":8,"range":{"start":{"line":41,"character":1},"end":{"line":41,"character":14}},"selectionRange":{"start":{"line":41,"character":1},"end":{"line":41,"character":10}}},{"name":"Paths","detail":"systemPaths","kind":8,"range":{"start":{"line":42,"character":1},"end":{"line":42,"character":22}},"selectionRange":{"start":{"line":42,"character":1},"end":{"line":42,"character":6}}}]},{"name":"New","detail":"func() App","kind":12,"range":{"start":{"line":46,"character":0},"end":{"line":98,"character":1}},"selectionRange":{"start":{"line":46,"character":5},"end":{"line":46,"character":8}}},{"name":"(App).serve","detail":"func(config daemonConfig) error","kind":6,"range":{"start":{"line":101,"character":0},"end":{"line":134,"character":1}},"selectionRange":{"start":{"line":101,"character":14},"end":{"line":101,"character":19}}},{"name":"installVerbosityFlag","detail":"func(cmd cobra.Command, viper viper.Viper) int","kind":12,"range":{"start":{"line":137,"character":0},"end":{"line":141,"character":1}},"selectionRange":{"start":{"line":137,"character":5},"end":{"line":137,"character":25}}},{"name":"(App).Run","detail":"func() error","kind":6,"range":{"start":{"line":144,"character":0},"end":{"line":146,"character":1}},"selectionRange":{"start":{"line":144,"character":14},"end":{"line":144,"character":17}}},{"name":"(App).UsageError","detail":"func() bool","kind":6,"range":{"start":{"line":149,"character":0},"end":{"line":151,"character":1}},"selectionRange":{"start":{"line":149,"character":13},"end":{"line":149,"character":23}}},{"name":"(App).Hup","detail":"func() (shouldQuit bool)","kind":6,"range":{"start":{"line":154,"character":0},"end":{"line":159,"character":1}},"selectionRange":{"start":{"line":154,"character":13},"end":{"line":154,"character":16}}},{"name":"(App).Quit","detail":"func()","kind":6,"range":{"start":{"line":162,"character":0},"end":{"line":168,"character":1}},"selectionRange":{"start":{"line":162,"character":14},"end":{"line":162,"character":18}}},{"name":"(App).WaitReady","detail":"func()","kind":6,"range":{"start":{"line":172,"character":0},"end":{"line":174,"character":1}},"selectionRange":{"start":{"line":172,"character":14},"end":{"line":172,"character":23}}},{"name":"(App).RootCmd","detail":"func() cobra.Command","kind":6,"range":{"start":{"line":177,"character":0},"end":{"line":179,"character":1}},"selectionRange":{"start":{"line":177,"character":13},"end":{"line":177,"character":20}}}]

[Trace - 07:59:09.637 AM] Sending request 'textDocument/codeLens - (224)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:09.638 AM] Received response 'textDocument/codeLens - (224)' in 0ms. Result: null

[Trace - 07:59:09.710 AM] Sending request 'textDocument/semanticTokens/full - (225)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Error - Received] 07:59:09.710 AM golang/vscode-go#225 semantictokens are disabled

[Error - 07:59:09] Request textDocument/semanticTokens/full failed. Message: semantictokens are disabled Code: 0 [Trace - 07:59:09.788 AM] Sending request 'textDocument/documentSymbol - (226)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:09.788 AM] Received response 'textDocument/documentSymbol - (226)' in 0ms. Result: [{"name":"cmdName","kind":14,"range":{"start":{"line":18,"character":6},"end":{"line":18,"character":23}},"selectionRange":{"start":{"line":18,"character":6},"end":{"line":18,"character":13}}},{"name":"App","detail":"struct{...}","kind":23,"range":{"start":{"line":21,"character":5},"end":{"line":29,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":8}},"children":[{"name":"rootCmd","detail":"cobra.Command","kind":8,"range":{"start":{"line":22,"character":1},"end":{"line":22,"character":22}},"selectionRange":{"start":{"line":22,"character":1},"end":{"line":22,"character":8}}},{"name":"viper","detail":"viper.Viper","kind":8,"range":{"start":{"line":23,"character":1},"end":{"line":23,"character":21}},"selectionRange":{"start":{"line":23,"character":1},"end":{"line":23,"character":6}}},{"name":"config","detail":"daemonConfig","kind":8,"range":{"start":{"line":24,"character":1},"end":{"line":24,"character":21}},"selectionRange":{"start":{"line":24,"character":1},"end":{"line":24,"character":7}}},{"name":"daemon","detail":"daemon.Daemon","kind":8,"range":{"start":{"line":26,"character":1},"end":{"line":26,"character":22}},"selectionRange":{"start":{"line":26,"character":1},"end":{"line":26,"character":7}}},{"name":"ready","detail":"chan struct{}","kind":8,"range":{"start":{"line":28,"character":1},"end":{"line":28,"character":20}},"selectionRange":{"start":{"line":28,"character":1},"end":{"line":28,"character":6}}}]},{"name":"systemPaths","detail":"struct{...}","kind":23,"range":{"start":{"line":32,"character":5},"end":{"line":36,"character":1}},"selectionRange":{"start":{"line":32,"character":5},"end":{"line":32,"character":16}},"children":[{"name":"BrokersConf","detail":"string","kind":8,"range":{"start":{"line":33,"character":1},"end":{"line":33,"character":19}},"selectionRange":{"start":{"line":33,"character":1},"end":{"line":33,"character":12}}},{"name":"Cache","detail":"string","kind":8,"range":{"start":{"line":34,"character":1},"end":{"line":34,"character":19}},"selectionRange":{"start":{"line":34,"character":1},"end":{"line":34,"character":6}}},{"name":"Socket","detail":"string","kind":8,"range":{"start":{"line":35,"character":1},"end":{"line":35,"character":19}},"selectionRange":{"start":{"line":35,"character":1},"end":{"line":35,"character":7}}}]},{"name":"daemonConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":39,"character":5},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":39,"character":5},"end":{"line":39,"character":17}},"children":[{"name":"Brokers","detail":"[]string","kind":8,"range":{"start":{"line":40,"character":1},"end":{"line":40,"character":19}},"selectionRange":{"start":{"line":40,"character":1},"end":{"line":40,"character":8}}},{"name":"Verbosity","detail":"int","kind":8,"range":{"start":{"line":41,"character":1},"end":{"line":41,"character":14}},"selectionRange":{"start":{"line":41,"character":1},"end":{"line":41,"character":10}}},{"name":"Paths","detail":"systemPaths","kind":8,"range":{"start":{"line":42,"character":1},"end":{"line":42,"character":22}},"selectionRange":{"start":{"line":42,"character":1},"end":{"line":42,"character":6}}}]},{"name":"New","detail":"func() App","kind":12,"range":{"start":{"line":46,"character":0},"end":{"line":98,"character":1}},"selectionRange":{"start":{"line":46,"character":5},"end":{"line":46,"character":8}}},{"name":"(App).serve","detail":"func(config daemonConfig) error","kind":6,"range":{"start":{"line":101,"character":0},"end":{"line":134,"character":1}},"selectionRange":{"start":{"line":101,"character":14},"end":{"line":101,"character":19}}},{"name":"installVerbosityFlag","detail":"func(cmd cobra.Command, viper viper.Viper) int","kind":12,"range":{"start":{"line":137,"character":0},"end":{"line":141,"character":1}},"selectionRange":{"start":{"line":137,"character":5},"end":{"line":137,"character":25}}},{"name":"(App).Run","detail":"func() error","kind":6,"range":{"start":{"line":144,"character":0},"end":{"line":146,"character":1}},"selectionRange":{"start":{"line":144,"character":14},"end":{"line":144,"character":17}}},{"name":"(App).UsageError","detail":"func() bool","kind":6,"range":{"start":{"line":149,"character":0},"end":{"line":151,"character":1}},"selectionRange":{"start":{"line":149,"character":13},"end":{"line":149,"character":23}}},{"name":"(App).Hup","detail":"func() (shouldQuit bool)","kind":6,"range":{"start":{"line":154,"character":0},"end":{"line":159,"character":1}},"selectionRange":{"start":{"line":154,"character":13},"end":{"line":154,"character":16}}},{"name":"(App).Quit","detail":"func()","kind":6,"range":{"start":{"line":162,"character":0},"end":{"line":168,"character":1}},"selectionRange":{"start":{"line":162,"character":14},"end":{"line":162,"character":18}}},{"name":"(App).WaitReady","detail":"func()","kind":6,"range":{"start":{"line":172,"character":0},"end":{"line":174,"character":1}},"selectionRange":{"start":{"line":172,"character":14},"end":{"line":172,"character":23}}},{"name":"(App).RootCmd","detail":"func() cobra.Command","kind":6,"range":{"start":{"line":177,"character":0},"end":{"line":179,"character":1}},"selectionRange":{"start":{"line":177,"character":13},"end":{"line":177,"character":20}}}]

[Trace - 07:59:10.501 AM] Sending notification 'textDocument/didChange'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go","version":31},"contentChanges":[{"range":{"start":{"line":48,"character":1},"end":{"line":48,"character":1}},"rangeLength":0,"text":"a"}]}

[Trace - 07:59:10.532 AM] Sending request 'textDocument/completion - (227)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"},"position":{"line":48,"character":2},"context":{"triggerKind":1}}

[Trace - 07:59:10.535 AM] Received notification 'textDocument/publishDiagnostics'. Params: {"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go","version":31,"diagnostics":[]}

[Trace - 07:59:10.538 AM] Received response 'textDocument/completion - (227)' in 5ms. Result: {"isIncomplete":true,"items":[{"label":"any","kind":8,"documentation":{"kind":"markdown","value":""},"preselect":true,"sortText":"00000","filterText":"any","insertTextFormat":2,"textEdit":{"range":{"start":{"line":48,"character":1},"end":{"line":48,"character":2}},"newText":"any"}},{"label":"append","kind":3,"detail":"func(slice []Type, elems ...Type) []Type","documentation":{"kind":"markdown","value":""},"sortText":"00001","filterText":"append","insertTextFormat":2,"textEdit":{"range":{"start":{"line":48,"character":1},"end":{"line":48,"character":2}},"newText":"append(${1:})"}},{"label":"adler32","kind":9,"detail":"\"hash/adler32\"","documentation":{"kind":"markdown","value":""},"sortText":"00002","filterText":"adler32","insertTextFormat":2,"textEdit":{"range":{"start":{"line":48,"character":1},"end":{"line":48,"character":2}},"newText":"adler32"},"additionalTextEdits":[{"range":{"start":{"line":5,"character":5},"end":{"line":5,"character":5}},"newText":"\"\n\t\"hash/adler32"}]},{"label":"aes","kind":9,"detail":"\"crypto/aes\"","documentation":{"kind":"markdown","value":""},"sortText":"00003","filterText":"aes","insertTextFormat":2,"textEdit":{"range":{"start":{"line":48,"character":1},"end":{"line":48,"character":2}},"newText":"aes"},"additionalTextEdits":[{"range":{"start":{"line":4,"character":8},"end":{"line":4,"character":8}},"newText":"t\"\n\t\"cryp"},{"range":{"start":{"line":4,"character":9},"end":{"line":4,"character":9}},"newText":"o/aes"}]},{"label":"asn1","kind":9,"detail":"\"encoding/asn1\"","documentation":{"kind":"markdown","value":""},"sortText":"00004","filterText":"asn1","insertTextFormat":2,"textEdit":{"range":{"start":{"line":48,"character":1},"end":{"line":48,"character":2}},"newText":"asn1"},"additionalTextEdits":[{"range":{"start":{"line":4,"character":9},"end":{"line":4,"character":9}},"newText":"\"\n\t\"encoding/asn1"}]},{"label":"atomic","kind":9,"detail":"\"sync/atomic\"","documentation":{"kind":"markdown","value":""},"sortText":"00005","filterText":"atomic","insertTextFormat":2,"textEdit":{"range":{"start":{"line":48,"character":1},"end":{"line":48,"character":2}},"newText":"atomic"},"additionalTextEdits":[{"range":{"start":{"line":6,"character":9},"end":{"line":6,"character":9}},"newText":"\"\n\t\"sync/atomic"}]},{"label":"authd","kind":9,"detail":"\"github.com/ubuntu/authd\"","documentation":{"kind":"markdown","value":""},"sortText":"00006","filterText":"authd","insertTextFormat":2,"textEdit":{"range":{"start":{"line":48,"character":1},"end":{"line":48,"character":2}},"newText":"authd"},"additionalTextEdits":[{"range":{"start":{"line":9,"character":24},"end":{"line":9,"character":24}},"newText":"\"\n\t\"github.com/ubuntu/authd"}]}]}

[Trace - 07:59:10.651 AM] Sending request 'textDocument/semanticTokens/range - (228)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"},"range":{"start":{"line":14,"character":0},"end":{"line":96,"character":0}}}

[Error - Received] 07:59:10.651 AM golang/vscode-go#228 semantictokens are disabled

[Error - 07:59:10] Request textDocument/semanticTokens/range failed. Message: semantictokens are disabled Code: 0 [Trace - 07:59:10.751 AM] Sending request 'textDocument/codeAction - (229)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"},"range":{"start":{"line":48,"character":2},"end":{"line":48,"character":2}},"context":{"diagnostics":[],"triggerKind":2}}

[Trace - 07:59:10.752 AM] Received notification 'window/logMessage'. Params: {"type":3,"message":"2024/04/03 07:59:10 fixImports(filename=\"/home/didrocks/work/authd/cmd/authd/daemon/daemon.go\"), abs=\"/home/didrocks/work/authd/cmd/authd/daemon/daemon.go\", srcDir=\"/home/didrocks/work/authd/cmd/authd/daemon\" ...\n"}

[Trace - 07:59:10.753 AM] Received response 'textDocument/codeAction - (229)' in 1ms. Result: null

[Info - 07:59:10] 2024/04/03 07:59:10 fixImports(filename="/home/didrocks/work/authd/cmd/authd/daemon/daemon.go"), abs="/home/didrocks/work/authd/cmd/authd/daemon/daemon.go", srcDir="/home/didrocks/work/authd/cmd/authd/daemon" ...

[Trace - 07:59:10.801 AM] Sending request 'textDocument/foldingRange - (230)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:10.801 AM] Received response 'textDocument/foldingRange - (230)' in 0ms. Result: [{"startLine":3,"startCharacter":8,"endLine":14,"endCharacter":29,"kind":"imports"},{"startLine":21,"startCharacter":17,"endLine":28,"endCharacter":20},{"startLine":32,"startCharacter":25,"endLine":35,"endCharacter":19},{"startLine":39,"startCharacter":26,"endLine":42,"endCharacter":22},{"startLine":46,"startCharacter":17,"endLine":97,"endCharacter":10},{"startLine":49,"startCharacter":27,"endLine":85,"endCharacter":21},{"startLine":54,"startCharacter":68,"endLine":79,"endCharacter":13},{"startLine":60,"startCharacter":27,"endLine":65,"endCharacter":5},{"startLine":61,"startCharacter":23,"endLine":64,"endCharacter":20},{"startLine":69,"startCharacter":72,"endLine":70,"endCharacter":14},{"startLine":72,"startCharacter":55,"endLine":73,"endCharacter":76},{"startLine":81,"startCharacter":55,"endLine":82,"endCharacter":27},{"startLine":101,"startCharacter":48,"endLine":133,"endCharacter":25},{"startLine":105,"startCharacter":59,"endLine":107,"endCharacter":82},{"startLine":111,"startCharacter":16,"endLine":113,"endCharacter":12},{"startLine":120,"startCharacter":22,"endLine":121,"endCharacter":68},{"startLine":125,"startCharacter":16,"endLine":127,"endCharacter":12},{"startLine":137,"startCharacter":72,"endLine":140,"endCharacter":9},{"startLine":144,"startCharacter":27,"endLine":145,"endCharacter":27},{"startLine":149,"startCharacter":32,"endLine":150,"endCharacter":31},{"startLine":154,"startCharacter":38,"endLine":158,"endCharacter":13},{"startLine":162,"startCharacter":22,"endLine":167,"endCharacter":43},{"startLine":164,"startCharacter":21,"endLine":165,"endCharacter":8},{"startLine":170,"startCharacter":45,"endLine":171,"endCharacter":119,"kind":"comment"},{"startLine":172,"startCharacter":27,"endLine":173,"endCharacter":10},{"startLine":177,"startCharacter":38,"endLine":178,"endCharacter":17}]

[Trace - 07:59:10.861 AM] Sending request 'textDocument/documentSymbol - (231)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:10.862 AM] Received response 'textDocument/documentSymbol - (231)' in 1ms. Result: [{"name":"cmdName","kind":14,"range":{"start":{"line":18,"character":6},"end":{"line":18,"character":23}},"selectionRange":{"start":{"line":18,"character":6},"end":{"line":18,"character":13}}},{"name":"App","detail":"struct{...}","kind":23,"range":{"start":{"line":21,"character":5},"end":{"line":29,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":8}},"children":[{"name":"rootCmd","detail":"cobra.Command","kind":8,"range":{"start":{"line":22,"character":1},"end":{"line":22,"character":22}},"selectionRange":{"start":{"line":22,"character":1},"end":{"line":22,"character":8}}},{"name":"viper","detail":"viper.Viper","kind":8,"range":{"start":{"line":23,"character":1},"end":{"line":23,"character":21}},"selectionRange":{"start":{"line":23,"character":1},"end":{"line":23,"character":6}}},{"name":"config","detail":"daemonConfig","kind":8,"range":{"start":{"line":24,"character":1},"end":{"line":24,"character":21}},"selectionRange":{"start":{"line":24,"character":1},"end":{"line":24,"character":7}}},{"name":"daemon","detail":"daemon.Daemon","kind":8,"range":{"start":{"line":26,"character":1},"end":{"line":26,"character":22}},"selectionRange":{"start":{"line":26,"character":1},"end":{"line":26,"character":7}}},{"name":"ready","detail":"chan struct{}","kind":8,"range":{"start":{"line":28,"character":1},"end":{"line":28,"character":20}},"selectionRange":{"start":{"line":28,"character":1},"end":{"line":28,"character":6}}}]},{"name":"systemPaths","detail":"struct{...}","kind":23,"range":{"start":{"line":32,"character":5},"end":{"line":36,"character":1}},"selectionRange":{"start":{"line":32,"character":5},"end":{"line":32,"character":16}},"children":[{"name":"BrokersConf","detail":"string","kind":8,"range":{"start":{"line":33,"character":1},"end":{"line":33,"character":19}},"selectionRange":{"start":{"line":33,"character":1},"end":{"line":33,"character":12}}},{"name":"Cache","detail":"string","kind":8,"range":{"start":{"line":34,"character":1},"end":{"line":34,"character":19}},"selectionRange":{"start":{"line":34,"character":1},"end":{"line":34,"character":6}}},{"name":"Socket","detail":"string","kind":8,"range":{"start":{"line":35,"character":1},"end":{"line":35,"character":19}},"selectionRange":{"start":{"line":35,"character":1},"end":{"line":35,"character":7}}}]},{"name":"daemonConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":39,"character":5},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":39,"character":5},"end":{"line":39,"character":17}},"children":[{"name":"Brokers","detail":"[]string","kind":8,"range":{"start":{"line":40,"character":1},"end":{"line":40,"character":19}},"selectionRange":{"start":{"line":40,"character":1},"end":{"line":40,"character":8}}},{"name":"Verbosity","detail":"int","kind":8,"range":{"start":{"line":41,"character":1},"end":{"line":41,"character":14}},"selectionRange":{"start":{"line":41,"character":1},"end":{"line":41,"character":10}}},{"name":"Paths","detail":"systemPaths","kind":8,"range":{"start":{"line":42,"character":1},"end":{"line":42,"character":22}},"selectionRange":{"start":{"line":42,"character":1},"end":{"line":42,"character":6}}}]},{"name":"New","detail":"func() App","kind":12,"range":{"start":{"line":46,"character":0},"end":{"line":98,"character":1}},"selectionRange":{"start":{"line":46,"character":5},"end":{"line":46,"character":8}}},{"name":"(App).serve","detail":"func(config daemonConfig) error","kind":6,"range":{"start":{"line":101,"character":0},"end":{"line":134,"character":1}},"selectionRange":{"start":{"line":101,"character":14},"end":{"line":101,"character":19}}},{"name":"installVerbosityFlag","detail":"func(cmd cobra.Command, viper viper.Viper) int","kind":12,"range":{"start":{"line":137,"character":0},"end":{"line":141,"character":1}},"selectionRange":{"start":{"line":137,"character":5},"end":{"line":137,"character":25}}},{"name":"(App).Run","detail":"func() error","kind":6,"range":{"start":{"line":144,"character":0},"end":{"line":146,"character":1}},"selectionRange":{"start":{"line":144,"character":14},"end":{"line":144,"character":17}}},{"name":"(App).UsageError","detail":"func() bool","kind":6,"range":{"start":{"line":149,"character":0},"end":{"line":151,"character":1}},"selectionRange":{"start":{"line":149,"character":13},"end":{"line":149,"character":23}}},{"name":"(App).Hup","detail":"func() (shouldQuit bool)","kind":6,"range":{"start":{"line":154,"character":0},"end":{"line":159,"character":1}},"selectionRange":{"start":{"line":154,"character":13},"end":{"line":154,"character":16}}},{"name":"(App).Quit","detail":"func()","kind":6,"range":{"start":{"line":162,"character":0},"end":{"line":168,"character":1}},"selectionRange":{"start":{"line":162,"character":14},"end":{"line":162,"character":18}}},{"name":"(App).WaitReady","detail":"func()","kind":6,"range":{"start":{"line":172,"character":0},"end":{"line":174,"character":1}},"selectionRange":{"start":{"line":172,"character":14},"end":{"line":172,"character":23}}},{"name":"(App).RootCmd","detail":"func() cobra.Command","kind":6,"range":{"start":{"line":177,"character":0},"end":{"line":179,"character":1}},"selectionRange":{"start":{"line":177,"character":13},"end":{"line":177,"character":20}}}]

[Trace - 07:59:10.903 AM] Sending request 'textDocument/codeLens - (232)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:10.903 AM] Received response 'textDocument/codeLens - (232)' in 0ms. Result: null

[Trace - 07:59:10.948 AM] Sending request 'textDocument/semanticTokens/full - (233)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Error - Received] 07:59:10.949 AM golang/vscode-go#233 semantictokens are disabled

[Error - 07:59:10] Request textDocument/semanticTokens/full failed. Message: semantictokens are disabled Code: 0 [Trace - 07:59:11.001 AM] Sending notification 'textDocument/didChange'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go","version":32},"contentChanges":[{"range":{"start":{"line":48,"character":2},"end":{"line":48,"character":2}},"rangeLength":0,"text":"."}]}

[Trace - 07:59:11.004 AM] Sending request 'textDocument/completion - (234)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"},"position":{"line":48,"character":3},"context":{"triggerKind":2,"triggerCharacter":"."}}

[Trace - 07:59:11.024 AM] Received notification 'textDocument/publishDiagnostics'. Params: {"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go","version":32,"diagnostics":[]}

[Trace - 07:59:11.105 AM] Received response 'textDocument/completion - (234)' in 101ms. Result: {"isIncomplete":true,"items":[]}

[Trace - 07:59:11.152 AM] Sending request 'textDocument/semanticTokens/range - (235)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"},"range":{"start":{"line":14,"character":0},"end":{"line":96,"character":0}}}

[Error - Received] 07:59:11.153 AM golang/vscode-go#235 semantictokens are disabled

[Error - 07:59:11] Request textDocument/semanticTokens/range failed. Message: semantictokens are disabled Code: 0 [Trace - 07:59:11.253 AM] Sending request 'textDocument/codeAction - (236)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"},"range":{"start":{"line":48,"character":3},"end":{"line":48,"character":3}},"context":{"diagnostics":[],"triggerKind":2}}

[Trace - 07:59:11.254 AM] Received notification 'window/logMessage'. Params: {"type":3,"message":"2024/04/03 07:59:11 fixImports(filename=\"/home/didrocks/work/authd/cmd/authd/daemon/daemon.go\"), abs=\"/home/didrocks/work/authd/cmd/authd/daemon/daemon.go\", srcDir=\"/home/didrocks/work/authd/cmd/authd/daemon\" ...\n"}

[Trace - 07:59:11.254 AM] Received response 'textDocument/codeAction - (236)' in 1ms. Result: null

[Info - 07:59:11] 2024/04/03 07:59:11 fixImports(filename="/home/didrocks/work/authd/cmd/authd/daemon/daemon.go"), abs="/home/didrocks/work/authd/cmd/authd/daemon/daemon.go", srcDir="/home/didrocks/work/authd/cmd/authd/daemon" ...

[Trace - 07:59:11.304 AM] Sending request 'textDocument/foldingRange - (237)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:11.305 AM] Received response 'textDocument/foldingRange - (237)' in 1ms. Result: [{"startLine":3,"startCharacter":8,"endLine":14,"endCharacter":29,"kind":"imports"},{"startLine":21,"startCharacter":17,"endLine":28,"endCharacter":20},{"startLine":32,"startCharacter":25,"endLine":35,"endCharacter":19},{"startLine":39,"startCharacter":26,"endLine":42,"endCharacter":22},{"startLine":46,"startCharacter":17,"endLine":97,"endCharacter":10},{"startLine":49,"startCharacter":27,"endLine":85,"endCharacter":21},{"startLine":54,"startCharacter":68,"endLine":79,"endCharacter":13},{"startLine":60,"startCharacter":27,"endLine":65,"endCharacter":5},{"startLine":61,"startCharacter":23,"endLine":64,"endCharacter":20},{"startLine":69,"startCharacter":72,"endLine":70,"endCharacter":14},{"startLine":72,"startCharacter":55,"endLine":73,"endCharacter":76},{"startLine":81,"startCharacter":55,"endLine":82,"endCharacter":27},{"startLine":101,"startCharacter":48,"endLine":133,"endCharacter":25},{"startLine":105,"startCharacter":59,"endLine":107,"endCharacter":82},{"startLine":111,"startCharacter":16,"endLine":113,"endCharacter":12},{"startLine":120,"startCharacter":22,"endLine":121,"endCharacter":68},{"startLine":125,"startCharacter":16,"endLine":127,"endCharacter":12},{"startLine":137,"startCharacter":72,"endLine":140,"endCharacter":9},{"startLine":144,"startCharacter":27,"endLine":145,"endCharacter":27},{"startLine":149,"startCharacter":32,"endLine":150,"endCharacter":31},{"startLine":154,"startCharacter":38,"endLine":158,"endCharacter":13},{"startLine":162,"startCharacter":22,"endLine":167,"endCharacter":43},{"startLine":164,"startCharacter":21,"endLine":165,"endCharacter":8},{"startLine":170,"startCharacter":45,"endLine":171,"endCharacter":119,"kind":"comment"},{"startLine":172,"startCharacter":27,"endLine":173,"endCharacter":10},{"startLine":177,"startCharacter":38,"endLine":178,"endCharacter":17}]

[Trace - 07:59:11.352 AM] Sending request 'textDocument/documentSymbol - (238)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:11.352 AM] Received response 'textDocument/documentSymbol - (238)' in 0ms. Result: [{"name":"cmdName","kind":14,"range":{"start":{"line":18,"character":6},"end":{"line":18,"character":23}},"selectionRange":{"start":{"line":18,"character":6},"end":{"line":18,"character":13}}},{"name":"App","detail":"struct{...}","kind":23,"range":{"start":{"line":21,"character":5},"end":{"line":29,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":8}},"children":[{"name":"rootCmd","detail":"cobra.Command","kind":8,"range":{"start":{"line":22,"character":1},"end":{"line":22,"character":22}},"selectionRange":{"start":{"line":22,"character":1},"end":{"line":22,"character":8}}},{"name":"viper","detail":"viper.Viper","kind":8,"range":{"start":{"line":23,"character":1},"end":{"line":23,"character":21}},"selectionRange":{"start":{"line":23,"character":1},"end":{"line":23,"character":6}}},{"name":"config","detail":"daemonConfig","kind":8,"range":{"start":{"line":24,"character":1},"end":{"line":24,"character":21}},"selectionRange":{"start":{"line":24,"character":1},"end":{"line":24,"character":7}}},{"name":"daemon","detail":"daemon.Daemon","kind":8,"range":{"start":{"line":26,"character":1},"end":{"line":26,"character":22}},"selectionRange":{"start":{"line":26,"character":1},"end":{"line":26,"character":7}}},{"name":"ready","detail":"chan struct{}","kind":8,"range":{"start":{"line":28,"character":1},"end":{"line":28,"character":20}},"selectionRange":{"start":{"line":28,"character":1},"end":{"line":28,"character":6}}}]},{"name":"systemPaths","detail":"struct{...}","kind":23,"range":{"start":{"line":32,"character":5},"end":{"line":36,"character":1}},"selectionRange":{"start":{"line":32,"character":5},"end":{"line":32,"character":16}},"children":[{"name":"BrokersConf","detail":"string","kind":8,"range":{"start":{"line":33,"character":1},"end":{"line":33,"character":19}},"selectionRange":{"start":{"line":33,"character":1},"end":{"line":33,"character":12}}},{"name":"Cache","detail":"string","kind":8,"range":{"start":{"line":34,"character":1},"end":{"line":34,"character":19}},"selectionRange":{"start":{"line":34,"character":1},"end":{"line":34,"character":6}}},{"name":"Socket","detail":"string","kind":8,"range":{"start":{"line":35,"character":1},"end":{"line":35,"character":19}},"selectionRange":{"start":{"line":35,"character":1},"end":{"line":35,"character":7}}}]},{"name":"daemonConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":39,"character":5},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":39,"character":5},"end":{"line":39,"character":17}},"children":[{"name":"Brokers","detail":"[]string","kind":8,"range":{"start":{"line":40,"character":1},"end":{"line":40,"character":19}},"selectionRange":{"start":{"line":40,"character":1},"end":{"line":40,"character":8}}},{"name":"Verbosity","detail":"int","kind":8,"range":{"start":{"line":41,"character":1},"end":{"line":41,"character":14}},"selectionRange":{"start":{"line":41,"character":1},"end":{"line":41,"character":10}}},{"name":"Paths","detail":"systemPaths","kind":8,"range":{"start":{"line":42,"character":1},"end":{"line":42,"character":22}},"selectionRange":{"start":{"line":42,"character":1},"end":{"line":42,"character":6}}}]},{"name":"New","detail":"func() App","kind":12,"range":{"start":{"line":46,"character":0},"end":{"line":98,"character":1}},"selectionRange":{"start":{"line":46,"character":5},"end":{"line":46,"character":8}}},{"name":"(App).serve","detail":"func(config daemonConfig) error","kind":6,"range":{"start":{"line":101,"character":0},"end":{"line":134,"character":1}},"selectionRange":{"start":{"line":101,"character":14},"end":{"line":101,"character":19}}},{"name":"installVerbosityFlag","detail":"func(cmd cobra.Command, viper viper.Viper) int","kind":12,"range":{"start":{"line":137,"character":0},"end":{"line":141,"character":1}},"selectionRange":{"start":{"line":137,"character":5},"end":{"line":137,"character":25}}},{"name":"(App).Run","detail":"func() error","kind":6,"range":{"start":{"line":144,"character":0},"end":{"line":146,"character":1}},"selectionRange":{"start":{"line":144,"character":14},"end":{"line":144,"character":17}}},{"name":"(App).UsageError","detail":"func() bool","kind":6,"range":{"start":{"line":149,"character":0},"end":{"line":151,"character":1}},"selectionRange":{"start":{"line":149,"character":13},"end":{"line":149,"character":23}}},{"name":"(App).Hup","detail":"func() (shouldQuit bool)","kind":6,"range":{"start":{"line":154,"character":0},"end":{"line":159,"character":1}},"selectionRange":{"start":{"line":154,"character":13},"end":{"line":154,"character":16}}},{"name":"(App).Quit","detail":"func()","kind":6,"range":{"start":{"line":162,"character":0},"end":{"line":168,"character":1}},"selectionRange":{"start":{"line":162,"character":14},"end":{"line":162,"character":18}}},{"name":"(App).WaitReady","detail":"func()","kind":6,"range":{"start":{"line":172,"character":0},"end":{"line":174,"character":1}},"selectionRange":{"start":{"line":172,"character":14},"end":{"line":172,"character":23}}},{"name":"(App).RootCmd","detail":"func() cobra.Command","kind":6,"range":{"start":{"line":177,"character":0},"end":{"line":179,"character":1}},"selectionRange":{"start":{"line":177,"character":13},"end":{"line":177,"character":20}}}]

[Trace - 07:59:11.380 AM] Sending request 'textDocument/codeLens - (239)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:11.381 AM] Received response 'textDocument/codeLens - (239)' in 0ms. Result: null

[Trace - 07:59:11.451 AM] Sending request 'textDocument/semanticTokens/full - (240)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Error - Received] 07:59:11.452 AM golang/vscode-go#240 semantictokens are disabled

[Error - 07:59:11] Request textDocument/semanticTokens/full failed. Message: semantictokens are disabled Code: 0 [Trace - 07:59:11.528 AM] Sending request 'textDocument/documentSymbol - (241)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:11.528 AM] Received response 'textDocument/documentSymbol - (241)' in 0ms. Result: [{"name":"cmdName","kind":14,"range":{"start":{"line":18,"character":6},"end":{"line":18,"character":23}},"selectionRange":{"start":{"line":18,"character":6},"end":{"line":18,"character":13}}},{"name":"App","detail":"struct{...}","kind":23,"range":{"start":{"line":21,"character":5},"end":{"line":29,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":8}},"children":[{"name":"rootCmd","detail":"cobra.Command","kind":8,"range":{"start":{"line":22,"character":1},"end":{"line":22,"character":22}},"selectionRange":{"start":{"line":22,"character":1},"end":{"line":22,"character":8}}},{"name":"viper","detail":"viper.Viper","kind":8,"range":{"start":{"line":23,"character":1},"end":{"line":23,"character":21}},"selectionRange":{"start":{"line":23,"character":1},"end":{"line":23,"character":6}}},{"name":"config","detail":"daemonConfig","kind":8,"range":{"start":{"line":24,"character":1},"end":{"line":24,"character":21}},"selectionRange":{"start":{"line":24,"character":1},"end":{"line":24,"character":7}}},{"name":"daemon","detail":"daemon.Daemon","kind":8,"range":{"start":{"line":26,"character":1},"end":{"line":26,"character":22}},"selectionRange":{"start":{"line":26,"character":1},"end":{"line":26,"character":7}}},{"name":"ready","detail":"chan struct{}","kind":8,"range":{"start":{"line":28,"character":1},"end":{"line":28,"character":20}},"selectionRange":{"start":{"line":28,"character":1},"end":{"line":28,"character":6}}}]},{"name":"systemPaths","detail":"struct{...}","kind":23,"range":{"start":{"line":32,"character":5},"end":{"line":36,"character":1}},"selectionRange":{"start":{"line":32,"character":5},"end":{"line":32,"character":16}},"children":[{"name":"BrokersConf","detail":"string","kind":8,"range":{"start":{"line":33,"character":1},"end":{"line":33,"character":19}},"selectionRange":{"start":{"line":33,"character":1},"end":{"line":33,"character":12}}},{"name":"Cache","detail":"string","kind":8,"range":{"start":{"line":34,"character":1},"end":{"line":34,"character":19}},"selectionRange":{"start":{"line":34,"character":1},"end":{"line":34,"character":6}}},{"name":"Socket","detail":"string","kind":8,"range":{"start":{"line":35,"character":1},"end":{"line":35,"character":19}},"selectionRange":{"start":{"line":35,"character":1},"end":{"line":35,"character":7}}}]},{"name":"daemonConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":39,"character":5},"end":{"line":43,"character":1}},"selectionRange":{"start":{"line":39,"character":5},"end":{"line":39,"character":17}},"children":[{"name":"Brokers","detail":"[]string","kind":8,"range":{"start":{"line":40,"character":1},"end":{"line":40,"character":19}},"selectionRange":{"start":{"line":40,"character":1},"end":{"line":40,"character":8}}},{"name":"Verbosity","detail":"int","kind":8,"range":{"start":{"line":41,"character":1},"end":{"line":41,"character":14}},"selectionRange":{"start":{"line":41,"character":1},"end":{"line":41,"character":10}}},{"name":"Paths","detail":"systemPaths","kind":8,"range":{"start":{"line":42,"character":1},"end":{"line":42,"character":22}},"selectionRange":{"start":{"line":42,"character":1},"end":{"line":42,"character":6}}}]},{"name":"New","detail":"func() App","kind":12,"range":{"start":{"line":46,"character":0},"end":{"line":98,"character":1}},"selectionRange":{"start":{"line":46,"character":5},"end":{"line":46,"character":8}}},{"name":"(App).serve","detail":"func(config daemonConfig) error","kind":6,"range":{"start":{"line":101,"character":0},"end":{"line":134,"character":1}},"selectionRange":{"start":{"line":101,"character":14},"end":{"line":101,"character":19}}},{"name":"installVerbosityFlag","detail":"func(cmd cobra.Command, viper viper.Viper) int","kind":12,"range":{"start":{"line":137,"character":0},"end":{"line":141,"character":1}},"selectionRange":{"start":{"line":137,"character":5},"end":{"line":137,"character":25}}},{"name":"(App).Run","detail":"func() error","kind":6,"range":{"start":{"line":144,"character":0},"end":{"line":146,"character":1}},"selectionRange":{"start":{"line":144,"character":14},"end":{"line":144,"character":17}}},{"name":"(App).UsageError","detail":"func() bool","kind":6,"range":{"start":{"line":149,"character":0},"end":{"line":151,"character":1}},"selectionRange":{"start":{"line":149,"character":13},"end":{"line":149,"character":23}}},{"name":"(App).Hup","detail":"func() (shouldQuit bool)","kind":6,"range":{"start":{"line":154,"character":0},"end":{"line":159,"character":1}},"selectionRange":{"start":{"line":154,"character":13},"end":{"line":154,"character":16}}},{"name":"(App).Quit","detail":"func()","kind":6,"range":{"start":{"line":162,"character":0},"end":{"line":168,"character":1}},"selectionRange":{"start":{"line":162,"character":14},"end":{"line":162,"character":18}}},{"name":"(App).WaitReady","detail":"func()","kind":6,"range":{"start":{"line":172,"character":0},"end":{"line":174,"character":1}},"selectionRange":{"start":{"line":172,"character":14},"end":{"line":172,"character":23}}},{"name":"(App).RootCmd","detail":"func() cobra.Command","kind":6,"range":{"start":{"line":177,"character":0},"end":{"line":179,"character":1}},"selectionRange":{"start":{"line":177,"character":13},"end":{"line":177,"character":20}}}]

[Trace - 07:59:12.254 AM] Sending request 'textDocument/inlayHint - (242)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"},"range":{"start":{"line":0,"character":0},"end":{"line":126,"character":0}}}

[Trace - 07:59:12.255 AM] Received response 'textDocument/inlayHint - (242)' in 0ms. Result: null

[Trace - 07:59:12.504 AM] Sending request 'textDocument/documentLink - (243)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"}}

[Trace - 07:59:12.531 AM] Received response 'textDocument/documentLink - (243)' in 26ms. Result: [{"range":{"start":{"line":4,"character":2},"end":{"line":4,"character":9}},"target":"https://pkg.go.dev/context"},{"range":{"start":{"line":5,"character":2},"end":{"line":5,"character":5}},"target":"https://pkg.go.dev/fmt"},{"range":{"start":{"line":6,"character":2},"end":{"line":6,"character":9}},"target":"https://pkg.go.dev/runtime"},{"range":{"start":{"line":8,"character":2},"end":{"line":8,"character":24}},"target":"https://pkg.go.dev/github.com/spf13/cobra@v1.8.0"},{"range":{"start":{"line":9,"character":2},"end":{"line":9,"character":24}},"target":"https://pkg.go.dev/github.com/spf13/viper@v1.18.2"},{"range":{"start":{"line":10,"character":2},"end":{"line":10,"character":41}},"target":"https://pkg.go.dev/github.com/ubuntu/authd/internal/consts"},{"range":{"start":{"line":11,"character":2},"end":{"line":11,"character":41}},"target":"https://pkg.go.dev/github.com/ubuntu/authd/internal/daemon"},{"range":{"start":{"line":12,"character":2},"end":{"line":12,"character":38}},"target":"https://pkg.go.dev/github.com/ubuntu/authd/internal/log"},{"range":{"start":{"line":13,"character":2},"end":{"line":13,"character":43}},"target":"https://pkg.go.dev/github.com/ubuntu/authd/internal/services"},{"range":{"start":{"line":14,"character":2},"end":{"line":14,"character":28}},"target":"https://pkg.go.dev/github.com/ubuntu/decorate@v0.0.0-20230606064312-bc4ac83958d6"}]

[Trace - 07:59:15.999 AM] Sending request 'textDocument/completion - (244)'. Params: {"textDocument":{"uri":"file:///home/didrocks/work/authd/cmd/authd/daemon/daemon.go"},"position":{"line":48,"character":3},"context":{"triggerKind":1}}

[Trace - 07:59:16.105 AM] Received response 'textDocument/completion - (244)' in 106ms. Result: {"isIncomplete":true,"items":[]}



### Additional logs

Please find attached additional logs when opening the project.

[open-project-traces.txt](https://github.com/golang/vscode-go/files/14847934/open-project-traces.txt)
didrocks commented 6 months ago

I got it worked again by removing ~/.go/pkg/ directory. This one didn’t have github.com/ubuntu/authd in it, but some directories where owned by root. It seems that gopls silently failed and stop indexing, or did I miss this info in the above log?

findleyr commented 6 months ago

Hmm. In your RPC logs, I see VS Code shutting down your LSP session, with about a second of initialization. Is that expected? Did you close the session very quickly?

didrocks commented 6 months ago

@findleyr No, I did wait a good 30 seconds after opening vscode.

Could it be an issue due to ~/.go/pkg/ permission I was mentioning (weird that gopls would need write access while go build just pass), and a lack of warning/debug info to hilight it?

findleyr commented 6 months ago

@didrocks in your logs, I see the LSP client sending a shutdown message to gopls 1s after it is started.

Specifically, these trace logs:


[Trace - 08:02:34.075 AM] Sending request 'initialize - (0)'.

[Trace - 08:02:34.867 AM] Sending request 'shutdown - (10)'.
Params: 

[Trace - 08:02:34.967 AM] Sending request 'initialize - (0)'.

It looks like gopls crashed on its first startup (but I don't see a stack). However, the second time, it didn't crash. It looks like gopls was stuck on fixImports, which may be related to https://go.dev/issue/66647.

findleyr commented 6 months ago

@didrocks did you by any chance reinstall gopls during this process? Does your project have go 1.22.x in its go.mod file?

didrocks commented 6 months ago

@findley: maybe that’s the run log after I removed gopls to ensure that I test with a new fresh install of gopls (through the vscode plugin). I can’t be 100% certain. But even with this, this didn’t fix it. The only thing that helped fixing it, as said previously, is removing .go/pkg.

Yes, the project has go 1.22.0 and a targeted toolchain of 1.22.1 at the time.

findleyr commented 4 months ago

I believe this may be related to ##67289.