go: x/tools/cmd/gopls: CL 178724 results in "no package found" parse error
What version of Go are you using (go version)?
$ go version go version devel +385b2e0cac Fri May 24 21:34:53 2019 +0000 linux/amd64 $ go list -m golang.org/x/tools golang.org/x/tools v0.0.0-20190530184349-ce1a3806b557
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env GO111MODULE="on" GOARCH="amd64" GOBIN="/home/myitcv/gostuff/src/github.com/myitcv/govim/cmd/govim/.bin" GOCACHE="/home/myitcv/.cache/go-build" GOENV="/home/myitcv/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/myitcv/gostuff" GOPROXY="https://proxy.golang.org/" GOROOT="/home/myitcv/gos" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/myitcv/gos/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/home/myitcv/gostuff/src/github.com/myitcv/govim/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build347064954=/tmp/go-build -gno-record-gcc-switches"
What did you do?
I have a test that passes normally, but fails following https://go-review.googlesource.com/c/tools/+/178724; the error message I get back is:
unable to check package for file:///tmp/go-test-script992386908/script-complete_watched/const.go: parse: no package found for /tmp/go-test-script992386908/script-complete_watched/const.go
The test is https://github.com/myitcv/govim/blob/latest_tools/cmd/govim/testdata/complete_watched.txt. The scope of the test is roughly:
- load
main.goin Vim - wait for diagnostics for
main.go - change a file (
const.go) that is not loaded in Vim (but watched via agovimfile watcher); thegovimfile watcher then callsdidOpen/didChangeas required - wait for diagnostics for
const.go - attempt completion that depends on the contents of
const.go
Following https://go-review.googlesource.com/c/tools/+/178724, however, I now get an error back when the govim file watcher first tells gopls about the file via didOpen:
unable to check package for file:///tmp/go-test-script992386908/script-complete_watched/const.go: parse: no package found for /tmp/go-test-script992386908/script-complete_watched/const.go
But as you can see from the log, the file contents sent to gopls are valid Go.
govim log
gopls server start =======================
gopls.Initialize() call; params:
&protocol.InitializeParams{
ProcessID: 0,
RootPath: "",
RootURI: "file:///tmp/go-test-script020120554/script-complete_watched",
Capabilities: protocol.ClientCapabilities{
Workspace: struct { ApplyEdit bool "json:\"applyEdit,omitempty\""; WorkspaceEdit struct { DocumentChanges bool "json:\"documentChanges,omitempty\""; ResourceOperations []protocol.ResourceOperationKind "json:\"resourceOperations,omitempty\""; FailureHandling protocol.FailureHandlingKind "json:\"failureHandling,omitempty\"" } "json:\"workspaceEdit,omitempty\""; DidChangeConfiguration struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"didChangeConfiguration,omitempty\""; DidChangeWatchedFiles struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"didChangeWatchedFiles,omitempty\""; Symbol struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; SymbolKind struct { ValueSet []protocol.SymbolKind "json:\"valueSet,omitempty\"" } "json:\"symbolKind,omitempty\"" } "json:\"symbol,omitempty\""; ExecuteCommand struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"executeCommand,omitempty\""; WorkspaceFolders bool "json:\"workspaceFolders,omitempty\""; Configuration bool "json:\"configuration,omitempty\"" }{
ApplyEdit: false,
WorkspaceEdit: struct { DocumentChanges bool "json:\"documentChanges,omitempty\""; ResourceOperations []protocol.ResourceOperationKind "json:\"resourceOperations,omitempty\""; FailureHandling protocol.FailureHandlingKind "json:\"failureHandling,omitempty\"" }{},
DidChangeConfiguration: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{DynamicRegistration:true},
DidChangeWatchedFiles: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{},
Symbol: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; SymbolKind struct { ValueSet []protocol.SymbolKind "json:\"valueSet,omitempty\"" } "json:\"symbolKind,omitempty\"" }{},
ExecuteCommand: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{},
WorkspaceFolders: false,
Configuration: true,
},
TextDocument: struct { Synchronization struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; WillSave bool "json:\"willSave,omitempty\""; WillSaveWaitUntil bool "json:\"willSaveWaitUntil,omitempty\""; DidSave bool "json:\"didSave,omitempty\"" } "json:\"synchronization,omitempty\""; Completion struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; CompletionItem struct { SnippetSupport bool "json:\"snippetSupport,omitempty\""; CommitCharactersSupport bool "json:\"commitCharactersSupport,omitempty\""; DocumentationFormat []protocol.MarkupKind "json:\"documentationFormat,omitempty\""; DeprecatedSupport bool "json:\"deprecatedSupport,omitempty\""; PreselectSupport bool "json:\"preselectSupport,omitempty\"" } "json:\"completionItem,omitempty\""; CompletionItemKind struct { ValueSet []protocol.CompletionItemKind "json:\"valueSet,omitempty\"" } "json:\"completionItemKind,omitempty\""; ContextSupport bool "json:\"contextSupport,omitempty\"" } "json:\"completion,omitempty\""; Hover struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; ContentFormat []protocol.MarkupKind "json:\"contentFormat,omitempty\"" } "json:\"hover,omitempty\""; SignatureHelp struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; SignatureInformation struct { DocumentationFormat []protocol.MarkupKind "json:\"documentationFormat,omitempty\""; ParameterInformation struct { LabelOffsetSupport bool "json:\"labelOffsetSupport,omitempty\"" } "json:\"parameterInformation,omitempty\"" } "json:\"signatureInformation,omitempty\"" } "json:\"signatureHelp,omitempty\""; References struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"references,omitempty\""; DocumentHighlight struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"documentHighlight,omitempty\""; DocumentSymbol struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; SymbolKind struct { ValueSet []protocol.SymbolKind "json:\"valueSet,omitempty\"" } "json:\"symbolKind,omitempty\""; HierarchicalDocumentSymbolSupport bool "json:\"hierarchicalDocumentSymbolSupport,omitempty\"" } "json:\"documentSymbol,omitempty\""; Formatting struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"formatting,omitempty\""; RangeFormatting struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"rangeFormatting,omitempty\""; OnTypeFormatting struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"onTypeFormatting,omitempty\""; Definition struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; LinkSupport bool "json:\"linkSupport,omitempty\"" } "json:\"definition,omitempty\""; CodeAction struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; CodeActionLiteralSupport struct { CodeActionKind struct { ValueSet []protocol.CodeActionKind "json:\"valueSet\"" } "json:\"codeActionKind\"" } "json:\"codeActionLiteralSupport,omitempty\"" } "json:\"codeAction,omitempty\""; CodeLens struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"codeLens,omitempty\""; DocumentLink struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"documentLink,omitempty\""; Rename struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; PrepareSupport bool "json:\"prepareSupport,omitempty\"" } "json:\"rename,omitempty\""; PublishDiagnostics struct { RelatedInformation bool "json:\"relatedInformation,omitempty\""; TagSupport bool "json:\"tagSupport,omitempty\"" } "json:\"publishDiagnostics,omitempty\""; Implementation struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; LinkSupport bool "json:\"linkSupport,omitempty\"" } "json:\"implementation,omitempty\""; TypeDefinition struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; LinkSupport bool "json:\"linkSupport,omitempty\"" } "json:\"typeDefinition,omitempty\""; ColorProvider struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" } "json:\"colorProvider,omitempty\""; FoldingRange struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; RangeLimit float64 "json:\"rangeLimit,omitempty\""; LineFoldingOnly bool "json:\"lineFoldingOnly,omitempty\"" } "json:\"foldingRange,omitempty\""; Declaration struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; LinkSupport bool "json:\"linkSupport,omitempty\"" } "json:\"declaration,omitempty\"" }{
Synchronization: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; WillSave bool "json:\"willSave,omitempty\""; WillSaveWaitUntil bool "json:\"willSaveWaitUntil,omitempty\""; DidSave bool "json:\"didSave,omitempty\"" }{},
Completion: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; CompletionItem struct { SnippetSupport bool "json:\"snippetSupport,omitempty\""; CommitCharactersSupport bool "json:\"commitCharactersSupport,omitempty\""; DocumentationFormat []protocol.MarkupKind "json:\"documentationFormat,omitempty\""; DeprecatedSupport bool "json:\"deprecatedSupport,omitempty\""; PreselectSupport bool "json:\"preselectSupport,omitempty\"" } "json:\"completionItem,omitempty\""; CompletionItemKind struct { ValueSet []protocol.CompletionItemKind "json:\"valueSet,omitempty\"" } "json:\"completionItemKind,omitempty\""; ContextSupport bool "json:\"contextSupport,omitempty\"" }{},
Hover: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; ContentFormat []protocol.MarkupKind "json:\"contentFormat,omitempty\"" }{
DynamicRegistration: false,
ContentFormat: {"plaintext"},
},
SignatureHelp: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; SignatureInformation struct { DocumentationFormat []protocol.MarkupKind "json:\"documentationFormat,omitempty\""; ParameterInformation struct { LabelOffsetSupport bool "json:\"labelOffsetSupport,omitempty\"" } "json:\"parameterInformation,omitempty\"" } "json:\"signatureInformation,omitempty\"" }{},
References: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{},
DocumentHighlight: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{},
DocumentSymbol: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; SymbolKind struct { ValueSet []protocol.SymbolKind "json:\"valueSet,omitempty\"" } "json:\"symbolKind,omitempty\""; HierarchicalDocumentSymbolSupport bool "json:\"hierarchicalDocumentSymbolSupport,omitempty\"" }{},
Formatting: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{},
RangeFormatting: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{},
OnTypeFormatting: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{},
Definition: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; LinkSupport bool "json:\"linkSupport,omitempty\"" }{},
CodeAction: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; CodeActionLiteralSupport struct { CodeActionKind struct { ValueSet []protocol.CodeActionKind "json:\"valueSet\"" } "json:\"codeActionKind\"" } "json:\"codeActionLiteralSupport,omitempty\"" }{},
CodeLens: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{},
DocumentLink: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{},
Rename: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; PrepareSupport bool "json:\"prepareSupport,omitempty\"" }{},
PublishDiagnostics: struct { RelatedInformation bool "json:\"relatedInformation,omitempty\""; TagSupport bool "json:\"tagSupport,omitempty\"" }{},
Implementation: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; LinkSupport bool "json:\"linkSupport,omitempty\"" }{},
TypeDefinition: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; LinkSupport bool "json:\"linkSupport,omitempty\"" }{},
ColorProvider: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{},
FoldingRange: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; RangeLimit float64 "json:\"rangeLimit,omitempty\""; LineFoldingOnly bool "json:\"lineFoldingOnly,omitempty\"" }{},
Declaration: struct { DynamicRegistration bool "json:\"dynamicRegistration,omitempty\""; LinkSupport bool "json:\"linkSupport,omitempty\"" }{},
},
Window: protocol.WindowClientCapabilities{},
Experimental: nil,
},
InitializationOptions: map[string]interface {}{
"noDocsOnHover": bool(true),
},
Trace: "",
WorkspaceFolders: nil,
}
gopls server end =======================
gopls server start =======================
gopls.Initialize() return; err: <nil>; res:
&protocol.InitializeResult{
Capabilities: protocol.ServerCapabilities{
TextDocumentSync: map[string]interface {}{
"change": float64(1),
"openClose": bool(true),
},
HoverProvider: true,
CompletionProvider: &protocol.CompletionOptions{
TriggerCharacters: {"."},
AllCommitCharacters: nil,
ResolveProvider: false,
},
SignatureHelpProvider: &protocol.SignatureHelpOptions{
TriggerCharacters: {"(", ","},
},
DefinitionProvider: true,
ReferencesProvider: false,
DocumentHighlightProvider: true,
DocumentSymbolProvider: true,
WorkspaceSymbolProvider: false,
CodeActionProvider: true,
CodeLensProvider: (*protocol.CodeLensOptions)(nil),
DocumentFormattingProvider: true,
DocumentRangeFormattingProvider: false,
DocumentOnTypeFormattingProvider: (*struct { FirstTriggerCharacter string "json:\"firstTriggerCharacter\""; MoreTriggerCharacter []string "json:\"moreTriggerCharacter,omitempty\"" })(nil),
RenameProvider: (*protocol.RenameOptions)(nil),
DocumentLinkProvider: &protocol.DocumentLinkOptions{},
ExecuteCommandProvider: (*protocol.ExecuteCommandOptions)(nil),
Experimental: nil,
ImplementationProvider: false,
TypeDefinitionProvider: true,
Workspace: &struct { WorkspaceFolders *struct { Supported bool "json:\"supported,omitempty\""; ChangeNotifications string "json:\"changeNotifications,omitempty\"" } "json:\"workspaceFolders,omitempty\"" }{
WorkspaceFolders: &struct { Supported bool "json:\"supported,omitempty\""; ChangeNotifications string "json:\"changeNotifications,omitempty\"" }{Supported:true, ChangeNotifications:"workspace/didChangeWorkspaceFolders"},
},
ColorProvider: false,
FoldingRangeProvider: false,
DeclarationProvider: false,
},
Custom: {},
}
gopls server end =======================
gopls server start =======================
gopls.Initialized() call; params:
&protocol.InitializedParams{}
gopls server end =======================
gopls server start =======================
gopls.Initialized() return; err: <nil>
gopls server end =======================
gopls client start =======================
RegisterCapability: &protocol.RegistrationParams{
Registrations: {
{
ID: "workspace/didChangeConfiguration",
Method: "workspace/didChangeConfiguration",
RegisterOptions: nil,
},
{
ID: "workspace/didChangeWorkspaceFolders",
Method: "workspace/didChangeWorkspaceFolders",
RegisterOptions: nil,
},
},
}
gopls client end =======================
gopls client start =======================
Configuration: &protocol.ConfigurationParams{
Items: {
{ScopeURI:"file:///tmp/go-test-script020120554/script-complete_watched", Section:"gopls"},
},
}
gopls client end =======================
gopls server start =======================
gopls.DidOpen() call; params:
&protocol.DidOpenTextDocumentParams{
TextDocument: protocol.TextDocumentItem{URI:"file:///tmp/go-test-script020120554/script-complete_watched/main.go", LanguageID:"", Version:0, Text:"package main\n\nimport \"fmt\"\n\nfunc main() {\n\tfmt.Println()\n}\n"},
}
gopls server end =======================
gopls server start =======================
gopls.DidOpen() return; err: <nil>
gopls server end =======================
gopls client start =======================
LogMessage callback: &protocol.LogMessageParams{Type:3, Message:"#### Build info\n\ngolang.org/x/tools/cmd/gopls\n golang.org/x/tools@v0.0.0-20190530215528-75312fb06703 h1:hWZbwSZGNRstOAFCxoof73JLIo3O4N6UiBNKX73eJ8Q=\n golang.org/x/sync@v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=\n\n\n#### Go info\n\ngo version devel +385b2e0cac Fri May 24 21:34:53 2019 +0000 linux/amd64\n\nGO111MODULE=\"on\"\nGOARCH=\"amd64\"\nGOBIN=\"/home/myitcv/gostuff/src/github.com/myitcv/govim/cmd/govim/.bin\"\nGOCACHE=\"/home/myitcv/.cache/go-build\"\nGOENV=\"/home/myitcv/.config/go/env\"\nGOEXE=\"\"\nGOFLAGS=\"\"\nGOHOSTARCH=\"amd64\"\nGOHOSTOS=\"linux\"\nGONOPROXY=\"\"\nGONOSUMDB=\"\"\nGOOS=\"linux\"\nGOPATH=\"/home/myitcv/gostuff\"\nGOPROXY=\"https://proxy.golang.org/\"\nGOROOT=\"/home/myitcv/gos\"\nGOSUMDB=\"sum.golang.org\"\nGOTMPDIR=\"\"\nGOTOOLDIR=\"/home/myitcv/gos/pkg/tool/linux_amd64\"\nGCCGO=\"gccgo\"\nAR=\"ar\"\nCC=\"gcc\"\nCXX=\"g++\"\nCGO_ENABLED=\"1\"\nGOMOD=\"/home/myitcv/gostuff/src/github.com/myitcv/govim/go.mod\"\nCGO_CFLAGS=\"-g -O2\"\nCGO_CPPFLAGS=\"\"\nCGO_CXXFLAGS=\"-g -O2\"\nCGO_FFLAGS=\"-g -O2\"\nCGO_LDFLAGS=\"-g -O2\"\nPKG_CONFIG=\"pkg-config\"\nGOGCCFLAGS=\"-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build209897307=/tmp/go-build -gno-record-gcc-switches\"\n"}
gopls client end =======================
gopls client start =======================
PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
URI: "file:///tmp/go-test-script020120554/script-complete_watched/main.go",
Version: 0,
Diagnostics: {
},
}
gopls client end =======================
gopls server start =======================
gopls.DidOpen() call; params:
&protocol.DidOpenTextDocumentParams{
TextDocument: protocol.TextDocumentItem{URI:"file:///tmp/go-test-script020120554/script-complete_watched/const.go", LanguageID:"", Version:0, Text:"package main\n\nconst (\n\tConst1 = 1\n\tConst2 = 2\n)\n"},
}
gopls server end =======================
gopls server start =======================
gopls.DidOpen() return; err: <nil>
gopls server end =======================
gopls server start =======================
gopls.DidChange() call; params:
&protocol.DidChangeTextDocumentParams{
TextDocument: protocol.VersionedTextDocumentIdentifier{
Version: 1,
TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///tmp/go-test-script020120554/script-complete_watched/const.go"},
},
ContentChanges: {
{
Range: (*protocol.Range)(nil),
RangeLength: 0,
Text: "package main\n\nconst (\n\tConst1 = 1\n\tConst2 = 2\n)\n",
},
},
}
gopls server end =======================
gopls server start =======================
gopls.DidChange() return; err: <nil>
gopls server end =======================
gopls client start =======================
LogMessage callback: &protocol.LogMessageParams{Type:1, Message:"unable to check package for file:///tmp/go-test-script020120554/script-complete_watched/const.go: parse: no package found for /tmp/go-test-script020120554/script-complete_watched/const.go"}
gopls client end =======================
gopls client start =======================
LogMessage callback: &protocol.LogMessageParams{Type:1, Message:"unable to check package for file:///tmp/go-test-script020120554/script-complete_watched/const.go: parse: no package found for /tmp/go-test-script020120554/script-complete_watched/const.go"}
gopls client end =======================
gopls client start =======================
PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
URI: "file:///tmp/go-test-script020120554/script-complete_watched/const.go",
Version: 0,
Diagnostics: {
{
Range: protocol.Range{},
Severity: 1,
Code: nil,
Source: "LSP",
Message: "file:///tmp/go-test-script020120554/script-complete_watched/const.go is not part of a package",
Tags: nil,
RelatedInformation: nil,
},
},
}
gopls client end =======================
gopls client start =======================
LogMessage callback: &protocol.LogMessageParams{Type:1, Message:"unable to check package for file:///tmp/go-test-script020120554/script-complete_watched/const.go: parse: no package found for /tmp/go-test-script020120554/script-complete_watched/const.go"}
gopls client end =======================
gopls client start =======================
LogMessage callback: &protocol.LogMessageParams{Type:1, Message:"unable to check package for file:///tmp/go-test-script020120554/script-complete_watched/const.go: parse: no package found for /tmp/go-test-script020120554/script-complete_watched/const.go"}
gopls client end =======================
gopls client start =======================
PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
URI: "file:///tmp/go-test-script020120554/script-complete_watched/const.go",
Version: 0,
Diagnostics: {
{
Range: protocol.Range{},
Severity: 1,
Code: nil,
Source: "LSP",
Message: "file:///tmp/go-test-script020120554/script-complete_watched/const.go is not part of a package",
Tags: nil,
RelatedInformation: nil,
},
},
}
gopls client end =======================
gopls server start =======================
gopls.Completion() call; params:
&protocol.CompletionParams{
Context: (*protocol.CompletionContext)(nil),
TextDocumentPositionParams: protocol.TextDocumentPositionParams{
TextDocument: protocol.TextDocumentIdentifier{URI:"file:///tmp/go-test-script020120554/script-complete_watched/main.go"},
Position: protocol.Position{Line:5, Character:13},
},
}
gopls server end =======================
gopls server start =======================
gopls.Completion() return; err: <nil>; res:
&protocol.CompletionList{
IsIncomplete: false,
Items: {
{
Label: "fmt",
Kind: 9,
Detail: "\"fmt\"",
Documentation: "",
Deprecated: false,
Preselect: true,
SortText: "00000",
FilterText: "fmt",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "fmt",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "main()",
Kind: 3,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00001",
FilterText: "main",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "main",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "append(slice []Type, elems ...Type)",
Kind: 3,
Detail: "[]Type",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00002",
FilterText: "append",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "append",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "bool",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00003",
FilterText: "bool",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "bool",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "byte",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00004",
FilterText: "byte",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "byte",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "cap(v Type)",
Kind: 3,
Detail: "int",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00005",
FilterText: "cap",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "cap",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "close(c chan<- Type)",
Kind: 3,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00006",
FilterText: "close",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "close",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "complex(r float64, i float64)",
Kind: 3,
Detail: "complex128",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00007",
FilterText: "complex",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "complex",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "complex128",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00008",
FilterText: "complex128",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "complex128",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "complex64",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00009",
FilterText: "complex64",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "complex64",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "copy(dst []Type, src []Type)",
Kind: 3,
Detail: "int",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00010",
FilterText: "copy",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "copy",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "delete(m map[Type]Type1, key Type)",
Kind: 3,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00011",
FilterText: "delete",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "delete",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "error",
Kind: 8,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00012",
FilterText: "error",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "error",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "false",
Kind: 21,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00013",
FilterText: "false",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "false",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "float32",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00014",
FilterText: "float32",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "float32",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "float64",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00015",
FilterText: "float64",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "float64",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "imag(c complex128)",
Kind: 3,
Detail: "float64",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00016",
FilterText: "imag",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "imag",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "int",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00017",
FilterText: "int",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "int",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "int16",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00018",
FilterText: "int16",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "int16",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "int32",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00019",
FilterText: "int32",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "int32",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "int64",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00020",
FilterText: "int64",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "int64",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "int8",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00021",
FilterText: "int8",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "int8",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "iota",
Kind: 21,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00022",
FilterText: "iota",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "iota",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "len(v Type)",
Kind: 3,
Detail: "int",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00023",
FilterText: "len",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "len",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "make(t Type, size ...int)",
Kind: 3,
Detail: "Type",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00024",
FilterText: "make",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "make",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "new(Type)",
Kind: 3,
Detail: "*Type",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00025",
FilterText: "new",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "new",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "nil",
Kind: 6,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00026",
FilterText: "nil",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "nil",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "panic(v interface{})",
Kind: 3,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00027",
FilterText: "panic",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "panic",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "print(args ...Type)",
Kind: 3,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00028",
FilterText: "print",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "print",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "println(args ...Type)",
Kind: 3,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00029",
FilterText: "println",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "println",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "real(c complex128)",
Kind: 3,
Detail: "float64",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00030",
FilterText: "real",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "real",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "recover()",
Kind: 3,
Detail: "interface{}",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00031",
FilterText: "recover",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "recover",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: &protocol.Command{
Title: "",
Command: "editor.action.triggerParameterHints",
Arguments: nil,
},
Data: nil,
},
{
Label: "rune",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00032",
FilterText: "rune",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "rune",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "string",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00033",
FilterText: "string",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "string",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "true",
Kind: 21,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00034",
FilterText: "true",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "true",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "uint",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00035",
FilterText: "uint",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "uint",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "uint16",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00036",
FilterText: "uint16",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "uint16",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "uint32",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00037",
FilterText: "uint32",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "uint32",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "uint64",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00038",
FilterText: "uint64",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "uint64",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "uint8",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00039",
FilterText: "uint8",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "uint8",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
{
Label: "uintptr",
Kind: 25,
Detail: "",
Documentation: "",
Deprecated: false,
Preselect: false,
SortText: "00040",
FilterText: "uintptr",
InsertText: "",
InsertTextFormat: 1,
TextEdit: &protocol.TextEdit{
Range: protocol.Range{
Start: protocol.Position{Line:5, Character:13},
End: protocol.Position{Line:5, Character:13},
},
NewText: "uintptr",
},
AdditionalTextEdits: nil,
CommitCharacters: nil,
Command: (*protocol.Command)(nil),
Data: nil,
},
},
}
gopls server end =======================
gopls server start =======================
gopls.CodeAction() call; params:
&protocol.CodeActionParams{
TextDocument: protocol.TextDocumentIdentifier{URI:"file:///tmp/go-test-script020120554/script-complete_watched/main.go"},
Range: protocol.Range{},
Context: protocol.CodeActionContext{},
}
gopls server end =======================
gopls server start =======================
gopls.CodeAction() return; err: <nil>; res:
[]protocol.CodeAction(nil)
gopls server end =======================
gopls server start =======================
gopls.Shutdown() call
gopls server end =======================
gopls server start =======================
gopls.Shutdown() return; err: <nil>
gopls server end =======================
This worked consistently prior to https://go-review.googlesource.com/c/tools/+/178724 and fails consistently after it.
What did you expect to see?
A passing test.
What did you see instead?
The parse error above, and hence a failing test (because the completion fails).
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Reactions: 1
- Comments: 17 (7 by maintainers)
Thanks @muirrn, this was indeed addressed by one of those many CLs!