Skip to content

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

@didrocks

Description

@didrocks

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.ToolsThis label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions