-
-
Save peterbourgon/5a8eac80e44690b4d46460b3ed71923a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2019/08/12 11:59:51 Debug serving on port: 6060 | |
[Trace - 11:59:51 AM] Sending request 'initialize - (0)'. | |
Params: {"processId":15139,"rootPath":"/Users/peter/mod/REDACTED","rootUri":"file:///Users/peter/mod/REDACTED","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true},"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true},"textDocument":{"publishDiagnostics":{"relatedInformation":true},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"]}},"definition":{"dynamicRegistration":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true},"codeAction":{"dynamicRegistration":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true},"documentLink":{"dynamicRegistration":true},"typeDefinition":{"dynamicRegistration":true},"implementation":{"dynamicRegistration":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true}}},"initializationOptions":{"funcSnippetEnabled":false,"gocodeCompletionEnabled":true},"trace":"off","workspaceFolders":[{"uri":"file:///Users/peter/mod/REDACTED","name":"REDACTED"}]} | |
[Trace - 11:59:51 AM] Received response 'initialize - (0)' in 57ms. | |
Params: {"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"hoverProvider":true,"completionProvider":{"triggerCharacters":["."]},"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":true,"documentFormattingProvider":true,"renameProvider":true,"documentLinkProvider":{},"typeDefinitionProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"custom":null} | |
[Trace - 11:59:51 AM] Sending notification 'initialized'. | |
Params: {} | |
[Trace - 11:59:51 AM] Received request 'client/registerCapability - (1)'. | |
Params: {"registrations":[{"id":"workspace/didChangeConfiguration","method":"workspace/didChangeConfiguration"},{"id":"workspace/didChangeWorkspaceFolders","method":"workspace/didChangeWorkspaceFolders"}]} | |
[Trace - 11:59:51 AM] Sending response 'client/registerCapability - (1)' in 2ms. | |
Params: {} | |
[Trace - 11:59:51 AM] Received request 'workspace/configuration - (2)'. | |
Params: {"items":[{"scopeUri":"file:///Users/peter/mod/REDACTED","section":"gopls"}]} | |
[Trace - 11:59:51 AM] Sending response 'workspace/configuration - (2)' in 4ms. | |
Params: [{"usePlaceholders":true}] | |
[Trace - 11:59:52 AM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"Build info\n----------\ngolang.org/x/tools/gopls v0.1.2\n golang.org/x/tools/gopls@v0.1.3 h1:CB5ECiPysqZrwxcyRjN+exyZpY0gODTZvNiqQi3lpeo=\n golang.org/x/sync@v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=\n golang.org/x/tools@v0.0.0-20190710153321-831012c29e42 h1:4IOeC7p+OItq3+O5BWkcmVu2uBe3jekXau5S4QZX9DU=\n\nGo info\n-------\ngo version go1.12.6 darwin/amd64\n\nGOARCH=\"amd64\"\nGOBIN=\"\"\nGOCACHE=\"/Users/peter/Library/Caches/go-build\"\nGOEXE=\"\"\nGOFLAGS=\"\"\nGOHOSTARCH=\"amd64\"\nGOHOSTOS=\"darwin\"\nGOOS=\"darwin\"\nGOPATH=\"/Users/peter\"\nGOPROXY=\"\"\nGORACE=\"\"\nGOROOT=\"/usr/local/Cellar/go/1.12.6/libexec\"\nGOTMPDIR=\"\"\nGOTOOLDIR=\"/usr/local/Cellar/go/1.12.6/libexec/pkg/REDACTED/darwin_amd64\"\nGCCGO=\"gccgo\"\nCC=\"clang\"\nCXX=\"clang++\"\nCGO_ENABLED=\"1\"\nGOMOD=\"/Users/peter/mod/REDACTED/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 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/8s/kvkb2dzx37n057vk54y9b_ym0000gn/T/go-build615150215=/tmp/go-build -gno-record-gcc-switches -fno-common\"\n"} | |
[Trace - 11:59:52 AM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/ipsock.go","languageId":"go","version":1,"text":"// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage net\n\nimport (\n\t\"context\"\n\t\"internal/bytealg\"\n\t\"sync\"\n)\n\n// BUG(rsc,mikio): On DragonFly BSD and OpenBSD, listening on the\n// \"tcp\" and \"udp\" networks does not listen for both IPv4 and IPv6\n// connections. This is due to the fact that IPv4 traffic will not be\n// routed to an IPv6 socket - two separate sockets are required if\n// both address families are to be supported.\n// See inet6(4) for details.\n\ntype ipStackCapabilities struct {\n\tsync.Once // guards following\n\tipv4Enabled bool\n\tipv6Enabled bool\n\tipv4MappedIPv6Enabled bool\n}\n\nvar ipStackCaps ipStackCapabilities\n\n// supportsIPv4 reports whether the platform supports IPv4 networking\n// functionality.\nfunc supportsIPv4() bool {\n\tipStackCaps.Once.Do(ipStackCaps.probe)\n\treturn ipStackCaps.ipv4Enabled\n}\n\n// supportsIPv6 reports whether the platform supports IPv6 networking\n// functionality.\nfunc supportsIPv6() bool {\n\tipStackCaps.Once.Do(ipStackCaps.probe)\n\treturn ipStackCaps.ipv6Enabled\n}\n\n// supportsIPv4map reports whether the platform supports mapping an\n// IPv4 address inside an IPv6 address at transport layer\n// protocols. See RFC 4291, RFC 4038 and RFC 3493.\nfunc supportsIPv4map() bool {\n\tipStackCaps.Once.Do(ipStackCaps.probe)\n\treturn ipStackCaps.ipv4MappedIPv6Enabled\n}\n\n// An addrList represents a list of network endpoint addresses.\ntype addrList []Addr\n\n// isIPv4 reports whether addr contains an IPv4 address.\nfunc isIPv4(addr Addr) bool {\n\tswitch addr := addr.(type) {\n\tcase *TCPAddr:\n\t\treturn addr.IP.To4() != nil\n\tcase *UDPAddr:\n\t\treturn addr.IP.To4() != nil\n\tcase *IPAddr:\n\t\treturn addr.IP.To4() != nil\n\t}\n\treturn false\n}\n\n// isNotIPv4 reports whether addr does not contain an IPv4 address.\nfunc isNotIPv4(addr Addr) bool { return !isIPv4(addr) }\n\n// forResolve returns the most appropriate address in address for\n// a call to ResolveTCPAddr, ResolveUDPAddr, or ResolveIPAddr.\n// IPv4 is preferred, unless addr contains an IPv6 literal.\nfunc (addrs addrList) forResolve(network, addr string) Addr {\n\tvar want6 bool\n\tswitch network {\n\tcase \"ip\":\n\t\t// IPv6 literal (addr does NOT contain a port)\n\t\twant6 = count(addr, ':') > 0\n\tcase \"tcp\", \"udp\":\n\t\t// IPv6 literal. (addr contains a port, so look for '[')\n\t\twant6 = count(addr, '[') > 0\n\t}\n\tif want6 {\n\t\treturn addrs.first(isNotIPv4)\n\t}\n\treturn addrs.first(isIPv4)\n}\n\n// first returns the first address which satisfies strategy, or if\n// none do, then the first address of any kind.\nfunc (addrs addrList) first(strategy func(Addr) bool) Addr {\n\tfor _, addr := range addrs {\n\t\tif strategy(addr) {\n\t\t\treturn addr\n\t\t}\n\t}\n\treturn addrs[0]\n}\n\n// partition divides an address list into two categories, using a\n// strategy function to assign a boolean label to each address.\n// The first address, and any with a matching label, are returned as\n// primaries, while addresses with the opposite label are returned\n// as fallbacks. For non-empty inputs, primaries is guaranteed to be\n// non-empty.\nfunc (addrs addrList) partition(strategy func(Addr) bool) (primaries, fallbacks addrList) {\n\tvar primaryLabel bool\n\tfor i, addr := range addrs {\n\t\tlabel := strategy(addr)\n\t\tif i == 0 || label == primaryLabel {\n\t\t\tprimaryLabel = label\n\t\t\tprimaries = append(primaries, addr)\n\t\t} else {\n\t\t\tfallbacks = append(fallbacks, addr)\n\t\t}\n\t}\n\treturn\n}\n\n// filterAddrList applies a filter to a list of IP addresses,\n// yielding a list of Addr objects. Known filters are nil, ipv4only,\n// and ipv6only. It returns every address when the filter is nil.\n// The result contains at least one address when error is nil.\nfunc filterAddrList(filter func(IPAddr) bool, ips []IPAddr, inetaddr func(IPAddr) Addr, originalAddr string) (addrList, error) {\n\tvar addrs addrList\n\tfor _, ip := range ips {\n\t\tif filter == nil || filter(ip) {\n\t\t\taddrs = append(addrs, inetaddr(ip))\n\t\t}\n\t}\n\tif len(addrs) == 0 {\n\t\treturn nil, &AddrError{Err: errNoSuitableAddress.Error(), Addr: originalAddr}\n\t}\n\treturn addrs, nil\n}\n\n// ipv4only reports whether addr is an IPv4 address.\nfunc ipv4only(addr IPAddr) bool {\n\treturn addr.IP.To4() != nil\n}\n\n// ipv6only reports whether addr is an IPv6 address except IPv4-mapped IPv6 address.\nfunc ipv6only(addr IPAddr) bool {\n\treturn len(addr.IP) == IPv6len && addr.IP.To4() == nil\n}\n\n// SplitHostPort splits a network address of the form \"host:port\",\n// \"host%zone:port\", \"[host]:port\" or \"[host%zone]:port\" into host or\n// host%zone and port.\n//\n// A literal IPv6 address in hostport must be enclosed in square\n// brackets, as in \"[::1]:80\", \"[::1%lo0]:80\".\n//\n// See func Dial for a description of the hostport parameter, and host\n// and port results.\nfunc SplitHostPort(hostport string) (host, port string, err error) {\n\tconst (\n\t\tmissingPort = \"missing port in address\"\n\t\ttooManyColons = \"too many colons in address\"\n\t)\n\taddrErr := func(addr, why string) (host, port string, err error) {\n\t\treturn \"\", \"\", &AddrError{Err: why, Addr: addr}\n\t}\n\tj, k := 0, 0\n\n\t// The port starts after the last colon.\n\ti := last(hostport, ':')\n\tif i < 0 {\n\t\treturn addrErr(hostport, missingPort)\n\t}\n\n\tif hostport[0] == '[' {\n\t\t// Expect the first ']' just before the last ':'.\n\t\tend := bytealg.IndexByteString(hostport, ']')\n\t\tif end < 0 {\n\t\t\treturn addrErr(hostport, \"missing ']' in address\")\n\t\t}\n\t\tswitch end + 1 {\n\t\tcase len(hostport):\n\t\t\t// There can't be a ':' behind the ']' now.\n\t\t\treturn addrErr(hostport, missingPort)\n\t\tcase i:\n\t\t\t// The expected result.\n\t\tdefault:\n\t\t\t// Either ']' isn't followed by a colon, or it is\n\t\t\t// followed by a colon that is not the last one.\n\t\t\tif hostport[end+1] == ':' {\n\t\t\t\treturn addrErr(hostport, tooManyColons)\n\t\t\t}\n\t\t\treturn addrErr(hostport, missingPort)\n\t\t}\n\t\thost = hostport[1:end]\n\t\tj, k = 1, end+1 // there can't be a '[' resp. ']' before these positions\n\t} else {\n\t\thost = hostport[:i]\n\t\tif bytealg.IndexByteString(host, ':') >= 0 {\n\t\t\treturn addrErr(hostport, tooManyColons)\n\t\t}\n\t}\n\tif bytealg.IndexByteString(hostport[j:], '[') >= 0 {\n\t\treturn addrErr(hostport, \"unexpected '[' in address\")\n\t}\n\tif bytealg.IndexByteString(hostport[k:], ']') >= 0 {\n\t\treturn addrErr(hostport, \"unexpected ']' in address\")\n\t}\n\n\tport = hostport[i+1:]\n\treturn host, port, nil\n}\n\nfunc splitHostZone(s string) (host, zone string) {\n\t// The IPv6 scoped addressing zone identifier starts after the\n\t// last percent sign.\n\tif i := last(s, '%'); i > 0 {\n\t\thost, zone = s[:i], s[i+1:]\n\t} else {\n\t\thost = s\n\t}\n\treturn\n}\n\n// JoinHostPort combines host and port into a network address of the\n// form \"host:port\". If host contains a colon, as found in literal\n// IPv6 addresses, then JoinHostPort returns \"[host]:port\".\n//\n// See func Dial for a description of the host and port parameters.\nfunc JoinHostPort(host, port string) string {\n\t// We assume that host is a literal IPv6 address if host has\n\t// colons.\n\tif bytealg.IndexByteString(host, ':') >= 0 {\n\t\treturn \"[\" + host + \"]:\" + port\n\t}\n\treturn host + \":\" + port\n}\n\n// internetAddrList resolves addr, which may be a literal IP\n// address or a DNS name, and returns a list of internet protocol\n// family addresses. The result contains at least one address when\n// error is nil.\nfunc (r *Resolver) internetAddrList(ctx context.Context, net, addr string) (addrList, error) {\n\tvar (\n\t\terr error\n\t\thost, port string\n\t\tportnum int\n\t)\n\tswitch net {\n\tcase \"tcp\", \"tcp4\", \"tcp6\", \"udp\", \"udp4\", \"[Info - 11:59:52 AM] Build info | |
---------- | |
golang.org/x/tools/gopls v0.1.2 | |
golang.org/x/tools/gopls@v0.1.3 h1:CB5ECiPysqZrwxcyRjN+exyZpY0gODTZvNiqQi3lpeo= | |
golang.org/x/sync@v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= | |
golang.org/x/tools@v0.0.0-20190710153321-831012c29e42 h1:4IOeC7p+OItq3+O5BWkcmVu2uBe3jekXau5S4QZX9DU= | |
Go info | |
------- | |
go version go1.12.6 darwin/amd64 | |
GOARCH="amd64" | |
GOBIN="" | |
GOCACHE="/Users/peter/Library/Caches/go-build" | |
GOEXE="" | |
GOFLAGS="" | |
GOHOSTARCH="amd64" | |
GOHOSTOS="darwin" | |
GOOS="darwin" | |
GOPATH="/Users/peter" | |
GOPROXY="" | |
GORACE="" | |
GOROOT="/usr/local/Cellar/go/1.12.6/libexec" | |
GOTMPDIR="" | |
GOTOOLDIR="/usr/local/Cellar/go/1.12.6/libexec/pkg/REDACTED/darwin_amd64" | |
GCCGO="gccgo" | |
CC="clang" | |
CXX="clang++" | |
CGO_ENABLED="1" | |
GOMOD="/Users/peter/mod/REDACTED/go.mod" | |
CGO_CFLAGS="-g -O2" | |
CGO_CPPFLAGS="" | |
CGO_CXXFLAGS="-g -O2" | |
CGO_FFLAGS="-g -O2" | |
CGO_LDFLAGS="-g -O2" | |
PKG_CONFIG="pkg-config" | |
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/8s/kvkb2dzx37n057vk54y9b_ym0000gn/T/go-build615150215=/tmp/go-build -gno-record-gcc-switches -fno-common" | |
udp6\":\n\t\tif addr != \"\" {\n\t\t\tif host, port, err = SplitHostPort(addr); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif portnum, err = r.LookupPort(ctx, net, port); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\tcase \"ip\", \"ip4\", \"ip6\":\n\t\tif addr != \"\" {\n\t\t\thost = addr\n\t\t}\n\tdefault:\n\t\treturn nil, UnknownNetworkError(net)\n\t}\n\tinetaddr := func(ip IPAddr) Addr {\n\t\tswitch net {\n\t\tcase \"tcp\", \"tcp4\", \"tcp6\":\n\t\t\treturn &TCPAddr{IP: ip.IP, Port: portnum, Zone: ip.Zone}\n\t\tcase \"udp\", \"udp4\", \"udp6\":\n\t\t\treturn &UDPAddr{IP: ip.IP, Port: portnum, Zone: ip.Zone}\n\t\tcase \"ip\", \"ip4\", \"ip6\":\n\t\t\treturn &IPAddr{IP: ip.IP, Zone: ip.Zone}\n\t\tdefault:\n\t\t\tpanic(\"unexpected network: \" + net)\n\t\t}\n\t}\n\tif host == \"\" {\n\t\treturn addrList{inetaddr(IPAddr{})}, nil\n\t}\n\n\t// Try as a literal IP address, then as a DNS name.\n\tips, err := r.lookupIPAddr(ctx, net, host)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// Issue 18806: if the machine has halfway configured\n\t// IPv6 such that it can bind on \"::\" (IPv6unspecified)\n\t// but not connect back to that same address, fall\n\t// back to dialing 0.0.0.0.\n\tif len(ips) == 1 && ips[0].IP.Equal(IPv6unspecified) {\n\t\tips = append(ips, IPAddr{IP: IPv4zero})\n\t}\n\n\tvar filter func(IPAddr) bool\n\tif net != \"\" && net[len(net)-1] == '4' {\n\t\tfilter = ipv4only\n\t}\n\tif net != \"\" && net[len(net)-1] == '6' {\n\t\tfilter = ipv6only\n\t}\n\treturn filterAddrList(filter, ips, inetaddr, host)\n}\n\nfunc loopbackIP(net string) IP {\n\tif net != \"\" && net[len(net)-1] == '6' {\n\t\treturn IPv6loopback\n\t}\n\treturn IP{127, 0, 0, 1}\n}\n"}} | |
[Unrelated lines removed] | |
[Trace - 2:17:24 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/error.go","languageId":"go","version":1,"text":"package errors\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/pkg/errors\"\n)\n\n// Error is a general type for all errors that are produced and consumed by the\n// REDACTED server. Packages should define var ErrMyThing = errors.Error{...}.\ntype Error struct {\n\tStatusCode int `json:\"status_code\"`\n\tErr string `json:\"err\"`\n}\n\n// Error implements the error interface.\nfunc (e Error) Error() string {\n\treturn e.Err\n}\n\nfunc (e Error) encode(w http.ResponseWriter) {\n\tw.Header().Set(\"Content-Type\", \"application/json; charset=utf-8\")\n\tw.WriteHeader(e.StatusCode)\n\tbuf, err := json.MarshalIndent(e, \"\", \" \")\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"problem encoding an Error: %v\", err))\n\t}\n\tw.Write(buf)\n}\n\nfunc (e *Error) decode(r *http.Response) {\n\tif err := json.NewDecoder(r.Body).Decode(e); err != nil {\n\t\t(*e) = Error{\n\t\t\tStatusCode: http.StatusInternalServerError,\n\t\t\tErr: errors.Wrap(err, \"error decoding error from response\").Error(),\n\t\t}\n\t}\n}\n\n// Encode an error (hopefully but not necessarily an errors.Error) to an\n// http.ResponseWriter as JSON, in a way that can be later Decoded.\nfunc Encode(w http.ResponseWriter, err error) {\n\tperr, ok := err.(Error)\n\tif !ok {\n\t\tperr = Error{\n\t\t\tStatusCode: http.StatusInternalServerError,\n\t\t\tErr: err.Error(),\n\t\t}\n\t}\n\tperr.encode(w)\n}\n\n// Decode an error (hopefully but not necessarily an errors.Error) from an\n// http.Response.\nfunc Decode(r *http.Response) Error {\n\tvar err Error\n\terr.decode(r)\n\treturn err\n}\n\n//\n//\n//\n\n// New is a helper function that constructs a new Error with the given error\n// message and a default status code of 500 Internal Server Error. It roughly\n// emulates pkg/errors.New, so other REDACTED packages only need to import this\n// 'errors' package.\nfunc New(context string) Error {\n\treturn NewCode(http.StatusInternalServerError, context)\n}\n\n// NewCode is a helper function that constructs a new Error with the given\n// status code and error message. It roughly emulates pkg/errors.New, so other\n// REDACTED packages only need to import this 'errors' package.\nfunc NewCode(code int, context string) Error {\n\treturn ErrorfCode(code, context)\n}\n\n// Errorf is a helper function that constructs a new Error with the given\n// interpolated error message and a default status code of 500 Internal Server\n// Error. It roughly emulates pkg/errors.Errorf, so other REDACTED packages only\n// need to import this 'errors' package.\nfunc Errorf(context string, args ...interface{}) Error {\n\treturn ErrorfCode(http.StatusInternalServerError, context, args...)\n}\n\n// ErrorfCode is a helper function that constructs a new Error with the given\n// status code and interpolated error message. It roughly emulates\n// pkg/errors.Errorf, so other REDACTED packages only need to import this 'errors'\n// package.\nfunc ErrorfCode(code int, context string, args ...interface{}) Error {\n\treturn Error{\n\t\tStatusCode: code,\n\t\tErr: fmt.Sprintf(context, args...),\n\t}\n}\n\n// Wrap is a helper function that constructs a new Error by wrapping the given\n// error with the context as a prefix. If the provided error is of type Error,\n// Wrap will use that Error's status code, otherwise it will assign a default\n// status code of 500 Internal Server Error. This function roughly emulates\n// pkg/errors.Wrap, so other REDACTED packages only need to import this 'errors'\n// package.\nfunc Wrap(err error, context string) Error {\n\treturn Wrapf(err, context)\n}\n\n// Wrapf is a helper function that constructs a new Error by wrapping the given\n// error with the interpolated context message as a prefix. If the provided\n// error is of type Error, Wrap will use that Error's status code, otherwise it\n// will assign a default status code of 500 Internal Server Error. This function\n// roughly emulates pkg/errors.Wrapf, so other REDACTED packages only need to\n// import this 'errors' package.\nfunc Wrapf(err error, context string, args ...interface{}) Error {\n\tif perr, ok := err.(Error); ok {\n\t\treturn WrapfCode(perr.StatusCode, err, context, args...)\n\t}\n\treturn WrapfCode(http.StatusInternalServerError, err, context, args...)\n}\n\n// WrapCode is a helper function that constructs a new Error by wrapping the\n// given error with the context as a prefix, and assigns the given status code.\n// Note that if the provided error is of type Error, its status code is ignored.\n// This function roughly emulates pkg/errors.Wrap, so other REDACTED packages only\n// need to import this 'errors' package.\nfunc WrapCode(code int, err error, context string) Error {\n\treturn WrapfCode(code, err, context)\n}\n\n// WrapfCode is a helper function that constructs a new Error by wrapping the\n// given error with the interpolated context string as a prefix, and assigns the\n// given status code. Note that if the provided error is of type Error, its\n// status code is ignored. This function roughly emulates pkg/errors.Wrap, so\n// other REDACTED packages only need to import this 'errors' package.\nfunc WrapfCode(code int, err error, context string, args ...interface{}) Error {\n\treturn Error{\n\t\tStatusCode: code,\n\t\tErr: errors.Wrapf(err, context, args...).Error(),\n\t}\n}\n\n//\n//\n//\n\n// SomewhatEqual returns true if err is an Error and has the same status code as\n// the compare Error, and the compare's error text appears in err somewhere.\n// Useful to catch specific conditions in the public API.\nfunc SomewhatEqual(err error, compare Error) bool {\n\tif orig, ok := err.(Error); ok && orig.StatusCode == compare.StatusCode && strings.Contains(orig.Err, compare.Err) {\n\t\treturn true\n\t}\n\treturn false\n}\n"}} | |
[Trace - 2:17:24 PM] Sending request 'textDocument/documentLink - (162)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/error.go"}} | |
[Trace - 2:17:25 PM] Received response 'textDocument/documentLink - (162)' in 460ms. | |
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":16}},"target":"https://godoc.org/encoding/json"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":6}},"target":"https://godoc.org/fmt"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":11}},"target":"https://godoc.org/net/http"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":10}},"target":"https://godoc.org/strings"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":24}},"target":"https://godoc.org/github.com/pkg/errors"}] | |
[Trace - 2:17:25 PM] Sending request 'textDocument/codeAction - (163)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/error.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:17:25 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/error.go","diagnostics":[]} | |
[Trace - 2:17:25 PM] Received response 'textDocument/codeAction - (163)' in 454ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/error.go":[]}}}] | |
[Trace - 2:17:25 PM] Sending request 'textDocument/documentSymbol - (164)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/error.go"}} | |
[Trace - 2:17:25 PM] Received response 'textDocument/documentSymbol - (164)' in 260ms. | |
Params: [{"name":"Error","detail":"struct{...}","kind":23,"range":{"start":{"line":13,"character":5},"end":{"line":16,"character":1}},"selectionRange":{"start":{"line":13,"character":5},"end":{"line":13,"character":10}},"children":[{"name":"StatusCode","detail":"int","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":39}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":11}}},{"name":"Err","detail":"string","kind":8,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":31}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":4}}},{"name":"Error","detail":"()","kind":6,"range":{"start":{"line":19,"character":0},"end":{"line":21,"character":1}},"selectionRange":{"start":{"line":19,"character":15},"end":{"line":19,"character":20}}},{"name":"encode","detail":"(w http.ResponseWriter)","kind":6,"range":{"start":{"line":23,"character":0},"end":{"line":31,"character":1}},"selectionRange":{"start":{"line":23,"character":15},"end":{"line":23,"character":21}}},{"name":"decode","detail":"(r *http.Response)","kind":6,"range":{"start":{"line":33,"character":0},"end":{"line":40,"character":1}},"selectionRange":{"start":{"line":33,"character":16},"end":{"line":33,"character":22}}}]},{"name":"Encode","detail":"(w http.ResponseWriter, err error)","kind":12,"range":{"start":{"line":44,"character":0},"end":{"line":53,"character":1}},"selectionRange":{"start":{"line":44,"character":5},"end":{"line":44,"character":11}}},{"name":"Decode","detail":"(r *http.Response)","kind":12,"range":{"start":{"line":57,"character":0},"end":{"line":61,"character":1}},"selectionRange":{"start":{"line":57,"character":5},"end":{"line":57,"character":11}}},{"name":"New","detail":"(context string)","kind":12,"range":{"start":{"line":71,"character":0},"end":{"line":73,"character":1}},"selectionRange":{"start":{"line":71,"character":5},"end":{"line":71,"character":8}}},{"name":"NewCode","detail":"(code int, context string)","kind":12,"range":{"start":{"line":78,"character":0},"end":{"line":80,"character":1}},"selectionRange":{"start":{"line":78,"character":5},"end":{"line":78,"character":12}}},{"name":"Errorf","detail":"(context string, args []interface{})","kind":12,"range":{"start":{"line":86,"character":0},"end":{"line":88,"character":1}},"selectionRange":{"start":{"line":86,"character":5},"end":{"line":86,"character":11}}},{"name":"ErrorfCode","detail":"(code int, context string, args []interface{})","kind":12,"range":{"start":{"line":94,"character":0},"end":{"line":99,"character":1}},"selectionRange":{"start":{"line":94,"character":5},"end":{"line":94,"character":15}}},{"name":"Wrap","detail":"(err error, context string)","kind":12,"range":{"start":{"line":107,"character":0},"end":{"line":109,"character":1}},"selectionRange":{"start":{"line":107,"character":5},"end":{"line":107,"character":9}}},{"name":"Wrapf","detail":"(err error, context string, args []interface{})","kind":12,"range":{"start":{"line":117,"character":0},"end":{"line":122,"character":1}},"selectionRange":{"start":{"line":117,"character":5},"end":{"line":117,"character":10}}},{"name":"WrapCode","detail":"(code int, err error, context string)","kind":12,"range":{"start":{"line":129,"character":0},"end":{"line":131,"character":1}},"selectionRange":{"start":{"line":129,"character":5},"end":{"line":129,"character":13}}},{"name":"WrapfCode","detail":"(code int, err error, context string, args []interface{})","kind":12,"range":{"start":{"line":138,"character":0},"end":{"line":143,"character":1}},"selectionRange":{"start":{"line":138,"character":5},"end":{"line":138,"character":14}}},{"name":"SomewhatEqual","detail":"(err error, compare Error)","kind":12,"range":{"start":{"line":152,"character":0},"end":{"line":157,"character":1}},"selectionRange":{"start":{"line":152,"character":5},"end":{"line":152,"character":18}}}] | |
[Trace - 2:20:07 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","languageId":"go","version":1,"text":""}} | |
[Trace - 2:20:07 PM] Sending request 'textDocument/documentLink - (165)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:08 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Error - 2:20:08 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:08 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Error - 2:20:08 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:08 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Error - 2:20:08 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:08 PM] Sending request 'textDocument/documentSymbol - (166)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Error - 2:20:08 PM] send textDocument/documentLink#165 no AST for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Error - 2:20:08 PM] Request textDocument/documentLink failed. | |
Message: no AST for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
Code: 0 | |
[Trace - 2:20:08 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Error - 2:20:08 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:09 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Error - 2:20:09 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:09 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Error - 2:20:09 PM] send textDocument/documentSymbol#166 no AST for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Error - 2:20:09 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:09 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":2},"contentChanges":[{"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"rangeLength":0,"text":"p"}]} | |
[Trace - 2:20:09 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":3},"contentChanges":[{"range":{"start":{"line":0,"character":1},"end":{"line":0,"character":1}},"rangeLength":0,"text":"a"}]} | |
[Error - 2:20:09 PM] Request textDocument/documentSymbol failed. | |
Message: no AST for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
Code: 0 | |
[Trace - 2:20:09 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Error - 2:20:09 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:09 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Trace - 2:20:09 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":4},"contentChanges":[{"range":{"start":{"line":0,"character":2},"end":{"line":0,"character":2}},"rangeLength":0,"text":"c"}]} | |
[Trace - 2:20:09 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":5},"contentChanges":[{"range":{"start":{"line":0,"character":3},"end":{"line":0,"character":3}},"rangeLength":0,"text":"k"}]} | |
[Trace - 2:20:09 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":6},"contentChanges":[{"range":{"start":{"line":0,"character":4},"end":{"line":0,"character":4}},"rangeLength":0,"text":"a"}]} | |
[Error - 2:20:09 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Trace - 2:20:10 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":7},"contentChanges":[{"range":{"start":{"line":0,"character":5},"end":{"line":0,"character":5}},"rangeLength":0,"text":"g"}]} | |
[Trace - 2:20:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Error - 2:20:10 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Error - 2:20:10 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:10 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":8},"contentChanges":[{"range":{"start":{"line":0,"character":6},"end":{"line":0,"character":6}},"rangeLength":0,"text":"e"}]} | |
[Trace - 2:20:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"severity":1,"source":"LSP","message":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go is not part of a package"}]} | |
[Trace - 2:20:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Error - 2:20:10 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Trace - 2:20:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Error - 2:20:10 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:10 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":9},"contentChanges":[{"range":{"start":{"line":0,"character":7},"end":{"line":0,"character":7}},"rangeLength":0,"text":" "}]} | |
[Trace - 2:20:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"severity":1,"source":"LSP","message":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go is not part of a package"}]} | |
[Trace - 2:20:10 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":10},"contentChanges":[{"range":{"start":{"line":0,"character":8},"end":{"line":0,"character":8}},"rangeLength":0,"text":"a"}]} | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Error - 2:20:11 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"} | |
[Trace - 2:20:11 PM] Sending request 'textDocument/completion - (167)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":0,"character":9},"context":{"triggerKind":1}} | |
[Error - 2:20:11 PM] unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: go/packages.Load: no packages found for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"severity":1,"source":"LSP","message":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go is not part of a package"}]} | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:0:9: this is a definition"} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":11},"contentChanges":[{"range":{"start":{"line":0,"character":9},"end":{"line":0,"character":9}},"rangeLength":0,"text":"p"}]} | |
[Info - 2:20:11 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:0:9: this is a definition | |
[Trace - 2:20:11 PM] Received response 'textDocument/completion - (167)' in 2569ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":12},"contentChanges":[{"range":{"start":{"line":0,"character":10},"end":{"line":0,"character":10}},"rangeLength":0,"text":"i"}]} | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"failed to run analyses for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:11 PM] Sending request 'textDocument/codeAction - (168)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":0,"character":11},"end":{"line":0,"character":11}},"context":{"diagnostics":[]}} | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:20:11 PM] Received response 'textDocument/codeAction - (168)' in 2638ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":1,"character":0}},"newText":""},{"range":{"start":{"line":1,"character":0},"end":{"line":1,"character":0}},"newText":"package api\n"}]}}}] | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":13},"contentChanges":[{"range":{"start":{"line":0,"character":11},"end":{"line":0,"character":11}},"rangeLength":0,"text":"\n"}]} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:20:11 PM] Sending notification '$/cancelRequest'. | |
Params: {"id":168} | |
[Trace - 2:20:11 PM] Sending notification '$/cancelRequest'. | |
Params: {"id":167} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":14},"contentChanges":[{"range":{"start":{"line":1,"character":0},"end":{"line":1,"character":0}},"rangeLength":0,"text":"\n"}]} | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"failed to run analyses for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:11 PM] Sending request 'textDocument/documentLink - (169)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:20:11 PM] Received response 'textDocument/documentLink - (169)' in 2451ms. | |
Params: {} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":15},"contentChanges":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"rangeLength":0,"text":"f"}]} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:20:11 PM] Sending request 'textDocument/completion - (170)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":1},"context":{"triggerKind":1}} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"severity":1,"source":"LSP","message":"expected declaration, found f"}]} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":16},"contentChanges":[{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"rangeLength":0,"text":"u"}]} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":17},"contentChanges":[{"range":{"start":{"line":2,"character":2},"end":{"line":2,"character":2}},"rangeLength":0,"text":"n"}]} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"severity":1,"source":"LSP","message":"expected declaration, found fu"}]} | |
[Trace - 2:20:11 PM] Received response 'textDocument/completion - (170)' in 2226ms. | |
Params: {"isIncomplete":false,"items":[{"label":"append","kind":3,"detail":"func(slice []Type, elems ...Type) []Type","preselect":true,"sortText":"00000","filterText":"append","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"append(${1:slice []Type}, ${2:elems ...Type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"bool","kind":25,"sortText":"00001","filterText":"bool","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"bool"}},{"label":"byte","kind":25,"sortText":"00002","filterText":"byte","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"byte"}},{"label":"cap","kind":3,"detail":"func(v Type) int","sortText":"00003","filterText":"cap","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"cap(${1:v Type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"close","kind":3,"detail":"func(c chan\u003c- Type)","sortText":"00004","filterText":"close","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"close(${1:c chan\u003c- Type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"complex","kind":3,"detail":"func(r float64, i float64) complex128","sortText":"00005","filterText":"complex","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"complex(${1:r float64}, ${2:i float64})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"complex128","kind":25,"sortText":"00006","filterText":"complex128","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"complex128"}},{"label":"complex64","kind":25,"sortText":"00007","filterText":"complex64","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"complex64"}},{"label":"copy","kind":3,"detail":"func(dst []Type, src []Type) int","sortText":"00008","filterText":"copy","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"copy(${1:dst []Type}, ${2:src []Type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"delete","kind":3,"detail":"func(m map[Type]Type1, key Type)","sortText":"00009","filterText":"delete","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"delete(${1:m map[Type]Type1}, ${2:key Type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"error","kind":8,"sortText":"00010","filterText":"error","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"error"}},{"label":"false","kind":21,"sortText":"00011","filterText":"false","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"false"}},{"label":"float32","kind":25,"sortText":"00012","filterText":"float32","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"float32"}},{"label":"float64","kind":25,"sortText":"00013","filterText":"float64","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"float64"}},{"label":"imag","kind":3,"detail":"func(c complex128) float64","sortText":"00014","filterText":"imag","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"imag(${1:c complex128})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"int","kind":25,"sortText":"00015","filterText":"int","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"int"}},{"label":"int16","kind":25,"sortText":"00016","filterText":"int16","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"int16"}},{"label":"int32","kind":25,"sortText":"00017","filterText":"int32","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"int32"}},{"label":"int64","kind":25,"sortText":"00018","filterText":"int64","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"int64"}},{"label":"int8","kind":25,"sortText":"00019","filterText":"int8","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"int8"}},{"label":"iota","kind":21,"sortText":"00020","filterText":"iota","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"iota"}},{"label":"len","kind":3,"detail":"func(v Type) int","sortText":"00021","filterText":"len","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"len(${1:v Type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"make","kind":3,"detail":"func(t Type, size ...int) Type","sortText":"00022","filterText":"make","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"make(${1:t Type}, ${2:size ...int})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"new","kind":3,"detail":"func(Type) *Type","sortText":"00023","filterText":"new","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"new(${1:Type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"nil","kind":6,"sortText":"00024","filterText":"nil","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"nil"}},{"label":"panic","kind":3,"detail":"func(v interface{})","sortText":"00025","filterText":"panic","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"panic(${1:v interface{\\}})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"print","kind":3,"detail":"func(args ...Type)","sortText":"00026","filterText":"print","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"print(${1:args ...Type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"println","kind":3,"detail":"func(args ...Type)","sortText":"00027","filterText":"println","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"println(${1:args ...Type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"real","kind":3,"detail":"func(c complex128) float64","sortText":"00028","filterText":"real","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"real(${1:c complex128})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"recover","kind":3,"detail":"func() interface{}","sortText":"00029","filterText":"recover","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"recover()"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"rune","kind":25,"sortText":"00030","filterText":"rune","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"rune"}},{"label":"string","kind":25,"sortText":"00031","filterText":"string","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"string"}},{"label":"true","kind":21,"sortText":"00032","filterText":"true","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"true"}},{"label":"uint","kind":25,"sortText":"00033","filterText":"uint","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"uint"}},{"label":"uint16","kind":25,"sortText":"00034","filterText":"uint16","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"uint16"}},{"label":"uint32","kind":25,"sortText":"00035","filterText":"uint32","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"uint32"}},{"label":"uint64","kind":25,"sortText":"00036","filterText":"uint64","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"uint64"}},{"label":"uint8","kind":25,"sortText":"00037","filterText":"uint8","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"uint8"}},{"label":"uintptr","kind":25,"sortText":"00038","filterText":"uintptr","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":1}},"newText":"uintptr"}}]} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":18},"contentChanges":[{"range":{"start":{"line":2,"character":3},"end":{"line":2,"character":3}},"rangeLength":0,"text":"c"}]} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"severity":1,"source":"LSP","message":"expected declaration, found fun"}]} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":19},"contentChanges":[{"range":{"start":{"line":2,"character":4},"end":{"line":2,"character":4}},"rangeLength":0,"text":" "}]} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":4},"end":{"line":2,"character":4}},"severity":1,"source":"LSP","message":"expected '(', found 'EOF'"}]} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":20},"contentChanges":[{"range":{"start":{"line":2,"character":5},"end":{"line":2,"character":5}},"rangeLength":0,"text":"T"}]} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":5},"end":{"line":2,"character":5}},"severity":1,"source":"LSP","message":"expected '(', found 'EOF'"}]} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":21},"contentChanges":[{"range":{"start":{"line":2,"character":6},"end":{"line":2,"character":6}},"rangeLength":0,"text":"e"}]} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":6},"end":{"line":2,"character":6}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":22},"contentChanges":[{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":7}},"rangeLength":0,"text":"s"}]} | |
[Trace - 2:20:11 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":23},"contentChanges":[{"range":{"start":{"line":2,"character":8},"end":{"line":2,"character":8}},"rangeLength":0,"text":"t"}]} | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":7}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:11 PM] Sending request 'textDocument/documentLink - (171)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go: context canceled"} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":8},"end":{"line":2,"character":8}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:11 PM] Received response 'textDocument/documentLink - (171)' in 1245ms. | |
Params: {} | |
[Trace - 2:20:11 PM] Sending request 'textDocument/codeAction - (172)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"context":{"diagnostics":[]}} | |
[Trace - 2:20:11 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Error - 2:20:11 PM] send textDocument/codeAction#172 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:10: expected '(', found newline (and 3 more errors) | |
[Trace - 2:20:11 PM] Sending request 'textDocument/documentSymbol - (173)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:11 PM] Received response 'textDocument/documentSymbol - (173)' in 1111ms. | |
Params: [{"name":"Test","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":9}}}] | |
[Error - 2:20:11 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:10: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:11 PM] Sending request 'textDocument/completion - (174)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":9},"context":{"triggerKind":1}} | |
[Trace - 2:20:11 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:9: this is a definition, of func Test(invalid type)"} | |
[Trace - 2:20:11 PM] Received response 'textDocument/completion - (174)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:11 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:9: this is a definition, of func Test(invalid type) | |
[Trace - 2:20:12 PM] Sending request 'textDocument/codeAction - (175)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:12 PM] send textDocument/codeAction#175 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:10: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:12 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:10: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:13 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":24},"contentChanges":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"rangeLength":0,"text":"P"}]} | |
[Trace - 2:20:13 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:13 PM] Sending request 'textDocument/completion - (176)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":10},"context":{"triggerKind":1}} | |
[Trace - 2:20:13 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:10: this is a definition, of func TestP(invalid type)"} | |
[Trace - 2:20:13 PM] Received response 'textDocument/completion - (176)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:13 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:10: this is a definition, of func TestP(invalid type) | |
[Trace - 2:20:14 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":25},"contentChanges":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"rangeLength":0,"text":"U"}]} | |
[Trace - 2:20:14 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:14 PM] Sending request 'textDocument/completion - (177)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":11},"context":{"triggerKind":1}} | |
[Trace - 2:20:14 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:11: this is a definition, of func TestPU(invalid type)"} | |
[Trace - 2:20:14 PM] Received response 'textDocument/completion - (177)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:14 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:11: this is a definition, of func TestPU(invalid type) | |
[Trace - 2:20:14 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":26},"contentChanges":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"rangeLength":0,"text":"b"}]} | |
[Trace - 2:20:14 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:14 PM] Sending request 'textDocument/completion - (178)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":12},"context":{"triggerKind":1}} | |
[Trace - 2:20:14 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:12: this is a definition, of func TestPUb(invalid type)"} | |
[Trace - 2:20:14 PM] Received response 'textDocument/completion - (178)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:14 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:12: this is a definition, of func TestPUb(invalid type) | |
[Trace - 2:20:14 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":27},"contentChanges":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"rangeLength":0,"text":"l"}]} | |
[Trace - 2:20:14 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:14 PM] Sending request 'textDocument/completion - (179)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":13},"context":{"triggerKind":1}} | |
[Trace - 2:20:14 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:13: this is a definition, of func TestPUbl(invalid type)"} | |
[Trace - 2:20:14 PM] Received response 'textDocument/completion - (179)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:14 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:13: this is a definition, of func TestPUbl(invalid type) | |
[Trace - 2:20:14 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":28},"contentChanges":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"rangeLength":0,"text":"i"}]} | |
[Trace - 2:20:14 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:14 PM] Sending request 'textDocument/completion - (180)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":14},"context":{"triggerKind":1}} | |
[Trace - 2:20:14 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:14: this is a definition, of func TestPUbli(invalid type)"} | |
[Info - 2:20:14 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:14: this is a definition, of func TestPUbli(invalid type) | |
[Trace - 2:20:14 PM] Received response 'textDocument/completion - (180)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:14 PM] Sending request 'textDocument/codeAction - (181)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:14 PM] send textDocument/codeAction#181 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:15: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:14 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:15: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:14 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":29},"contentChanges":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":14}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:14 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:14 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":30},"contentChanges":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":13}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:14 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:14 PM] Sending request 'textDocument/documentLink - (182)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:14 PM] Received response 'textDocument/documentLink - (182)' in 0ms. | |
Params: {} | |
[Trace - 2:20:15 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":31},"contentChanges":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":12}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:15 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:15 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":32},"contentChanges":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":11}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:15 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:15 PM] Sending request 'textDocument/codeAction - (183)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:15 PM] send textDocument/codeAction#183 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:11: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:15 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:11: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:15 PM] Sending request 'textDocument/documentSymbol - (184)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:15 PM] Received response 'textDocument/documentSymbol - (184)' in 0ms. | |
Params: [{"name":"TestP","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":10}}}] | |
[Trace - 2:20:15 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":33},"contentChanges":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":10}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:15 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:16 PM] Sending request 'textDocument/documentLink - (185)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:16 PM] Received response 'textDocument/documentLink - (185)' in 0ms. | |
Params: {} | |
[Trace - 2:20:16 PM] Sending request 'textDocument/codeAction - (186)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:16 PM] send textDocument/codeAction#186 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:10: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:16 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:10: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:16 PM] Sending request 'textDocument/documentSymbol - (187)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:16 PM] Received response 'textDocument/documentSymbol - (187)' in 0ms. | |
Params: [{"name":"Test","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":9}}}] | |
[Trace - 2:20:16 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":34},"contentChanges":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"rangeLength":0,"text":"P"}]} | |
[Trace - 2:20:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:16 PM] Sending request 'textDocument/completion - (188)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":10},"context":{"triggerKind":1}} | |
[Trace - 2:20:16 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:10: this is a definition, of func TestP(invalid type)"} | |
[Trace - 2:20:16 PM] Received response 'textDocument/completion - (188)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:16 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:10: this is a definition, of func TestP(invalid type) | |
[Trace - 2:20:16 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":35},"contentChanges":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"rangeLength":0,"text":"u"}]} | |
[Trace - 2:20:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:16 PM] Sending request 'textDocument/completion - (189)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":11},"context":{"triggerKind":1}} | |
[Trace - 2:20:16 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:11: this is a definition, of func TestPu(invalid type)"} | |
[Info - 2:20:16 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:11: this is a definition, of func TestPu(invalid type) | |
[Trace - 2:20:16 PM] Received response 'textDocument/completion - (189)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:16 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":36},"contentChanges":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"rangeLength":0,"text":"b"}]} | |
[Trace - 2:20:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:16 PM] Sending request 'textDocument/completion - (190)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":12},"context":{"triggerKind":1}} | |
[Trace - 2:20:16 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:12: this is a definition, of func TestPub(invalid type)"} | |
[Trace - 2:20:16 PM] Received response 'textDocument/completion - (190)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:16 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:12: this is a definition, of func TestPub(invalid type) | |
[Trace - 2:20:16 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":37},"contentChanges":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"rangeLength":0,"text":"l"}]} | |
[Trace - 2:20:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:16 PM] Sending request 'textDocument/completion - (191)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":13},"context":{"triggerKind":1}} | |
[Trace - 2:20:16 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:13: this is a definition, of func TestPubl(invalid type)"} | |
[Info - 2:20:16 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:13: this is a definition, of func TestPubl(invalid type) | |
[Trace - 2:20:16 PM] Received response 'textDocument/completion - (191)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:16 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":38},"contentChanges":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"rangeLength":0,"text":"i"}]} | |
[Trace - 2:20:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:16 PM] Sending request 'textDocument/completion - (192)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":14},"context":{"triggerKind":1}} | |
[Trace - 2:20:16 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:14: this is a definition, of func TestPubli(invalid type)"} | |
[Info - 2:20:16 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:14: this is a definition, of func TestPubli(invalid type) | |
[Trace - 2:20:16 PM] Received response 'textDocument/completion - (192)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:16 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":39},"contentChanges":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"rangeLength":0,"text":"c"}]} | |
[Trace - 2:20:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:16 PM] Sending request 'textDocument/completion - (193)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":15},"context":{"triggerKind":1}} | |
[Trace - 2:20:16 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:15: this is a definition, of func TestPublic(invalid type)"} | |
[Trace - 2:20:16 PM] Received response 'textDocument/completion - (193)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:16 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:15: this is a definition, of func TestPublic(invalid type) | |
[Trace - 2:20:16 PM] Sending request 'textDocument/codeAction - (194)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:16 PM] send textDocument/codeAction#194 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:16: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:16 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:16: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:17 PM] Sending request 'textDocument/documentSymbol - (195)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:17 PM] Received response 'textDocument/documentSymbol - (195)' in 0ms. | |
Params: [{"name":"TestPublic","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":15}}}] | |
[Trace - 2:20:17 PM] Sending request 'textDocument/documentLink - (196)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:17 PM] Received response 'textDocument/documentLink - (196)' in 0ms. | |
Params: {} | |
[Trace - 2:20:18 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":40},"contentChanges":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":15}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:18 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:18 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":41},"contentChanges":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":14}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:18 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:18 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":42},"contentChanges":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":13}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:18 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:18 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":43},"contentChanges":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":12}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:18 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:18 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":44},"contentChanges":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":11}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:18 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:18 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":45},"contentChanges":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":10}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:18 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:19 PM] Sending request 'textDocument/codeAction - (197)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:19 PM] send textDocument/codeAction#197 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:10: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:19 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:10: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:19 PM] Sending request 'textDocument/documentSymbol - (198)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:19 PM] Received response 'textDocument/documentSymbol - (198)' in 0ms. | |
Params: [{"name":"Test","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":9}}}] | |
[Trace - 2:20:19 PM] Sending request 'textDocument/documentLink - (199)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:19 PM] Received response 'textDocument/documentLink - (199)' in 0ms. | |
Params: {} | |
[Trace - 2:20:20 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":46},"contentChanges":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"rangeLength":0,"text":"A"}]} | |
[Trace - 2:20:20 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:20 PM] Sending request 'textDocument/completion - (200)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":10},"context":{"triggerKind":1}} | |
[Trace - 2:20:20 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:10: this is a definition, of func TestA(invalid type)"} | |
[Info - 2:20:20 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:10: this is a definition, of func TestA(invalid type) | |
[Trace - 2:20:20 PM] Received response 'textDocument/completion - (200)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:20 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":47},"contentChanges":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"rangeLength":0,"text":"p"}]} | |
[Trace - 2:20:20 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:20 PM] Sending request 'textDocument/completion - (201)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":11},"context":{"triggerKind":1}} | |
[Trace - 2:20:20 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:11: this is a definition, of func TestAp(invalid type)"} | |
[Trace - 2:20:20 PM] Received response 'textDocument/completion - (201)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:20 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:11: this is a definition, of func TestAp(invalid type) | |
[Trace - 2:20:20 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":48},"contentChanges":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"rangeLength":0,"text":"p"}]} | |
[Trace - 2:20:20 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:20 PM] Sending request 'textDocument/completion - (202)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":12},"context":{"triggerKind":1}} | |
[Trace - 2:20:20 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:12: this is a definition, of func TestApp(invalid type)"} | |
[Info - 2:20:20 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:12: this is a definition, of func TestApp(invalid type) | |
[Trace - 2:20:20 PM] Received response 'textDocument/completion - (202)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:20 PM] Sending request 'textDocument/codeAction - (203)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:20 PM] send textDocument/codeAction#203 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:13: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:20 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:13: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:20 PM] Sending request 'textDocument/documentSymbol - (204)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:20 PM] Received response 'textDocument/documentSymbol - (204)' in 0ms. | |
Params: [{"name":"TestApp","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":12}}}] | |
[Trace - 2:20:21 PM] Sending request 'textDocument/documentLink - (205)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:21 PM] Received response 'textDocument/documentLink - (205)' in 0ms. | |
Params: {} | |
[Trace - 2:20:23 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":49},"contentChanges":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"rangeLength":0,"text":"A"}]} | |
[Trace - 2:20:23 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:23 PM] Sending request 'textDocument/completion - (206)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":13},"context":{"triggerKind":1}} | |
[Trace - 2:20:23 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:13: this is a definition, of func TestAppA(invalid type)"} | |
[Trace - 2:20:23 PM] Received response 'textDocument/completion - (206)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:23 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:13: this is a definition, of func TestAppA(invalid type) | |
[Trace - 2:20:24 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":50},"contentChanges":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"rangeLength":0,"text":"P"}]} | |
[Trace - 2:20:24 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:24 PM] Sending request 'textDocument/completion - (207)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":14},"context":{"triggerKind":1}} | |
[Trace - 2:20:24 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:14: this is a definition, of func TestAppAP(invalid type)"} | |
[Trace - 2:20:24 PM] Received response 'textDocument/completion - (207)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:24 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:14: this is a definition, of func TestAppAP(invalid type) | |
[Trace - 2:20:24 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":51},"contentChanges":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"rangeLength":0,"text":"I"}]} | |
[Trace - 2:20:24 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:24 PM] Sending request 'textDocument/completion - (208)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":15},"context":{"triggerKind":1}} | |
[Trace - 2:20:24 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:15: this is a definition, of func TestAppAPI(invalid type)"} | |
[Trace - 2:20:24 PM] Received response 'textDocument/completion - (208)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:24 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:15: this is a definition, of func TestAppAPI(invalid type) | |
[Trace - 2:20:24 PM] Sending request 'textDocument/codeAction - (209)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:24 PM] send textDocument/codeAction#209 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:16: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:24 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:16: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:24 PM] Sending request 'textDocument/documentSymbol - (210)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:24 PM] Received response 'textDocument/documentSymbol - (210)' in 0ms. | |
Params: [{"name":"TestAppAPI","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":15}}}] | |
[Trace - 2:20:24 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":52},"contentChanges":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":15}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:24 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:24 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":53},"contentChanges":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":14}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:24 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:24 PM] Sending request 'textDocument/documentLink - (211)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:24 PM] Received response 'textDocument/documentLink - (211)' in 0ms. | |
Params: {} | |
[Trace - 2:20:25 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":54},"contentChanges":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":13}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:25 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:25 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":55},"contentChanges":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"rangeLength":0,"text":"R"}]} | |
[Trace - 2:20:25 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:25 PM] Sending request 'textDocument/completion - (212)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":13},"context":{"triggerKind":1}} | |
[Trace - 2:20:25 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:13: this is a definition, of func TestAppR(invalid type)"} | |
[Trace - 2:20:25 PM] Received response 'textDocument/completion - (212)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:25 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:13: this is a definition, of func TestAppR(invalid type) | |
[Trace - 2:20:25 PM] Sending request 'textDocument/codeAction - (213)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:25 PM] send textDocument/codeAction#213 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:14: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:25 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:14: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:25 PM] Sending request 'textDocument/documentSymbol - (214)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:25 PM] Received response 'textDocument/documentSymbol - (214)' in 0ms. | |
Params: [{"name":"TestAppR","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":13}}}] | |
[Trace - 2:20:25 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":56},"contentChanges":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"rangeLength":0,"text":"a"}]} | |
[Trace - 2:20:25 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:25 PM] Sending request 'textDocument/completion - (215)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":14},"context":{"triggerKind":1}} | |
[Trace - 2:20:25 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:14: this is a definition, of func TestAppRa(invalid type)"} | |
[Trace - 2:20:25 PM] Received response 'textDocument/completion - (215)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:25 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:14: this is a definition, of func TestAppRa(invalid type) | |
[Trace - 2:20:26 PM] Sending request 'textDocument/documentLink - (216)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:26 PM] Received response 'textDocument/documentLink - (216)' in 0ms. | |
Params: {} | |
[Trace - 2:20:26 PM] Sending request 'textDocument/codeAction - (217)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:26 PM] send textDocument/codeAction#217 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:15: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:26 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:15: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:26 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":57},"contentChanges":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"rangeLength":0,"text":"t"}]} | |
[Trace - 2:20:26 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:26 PM] Sending request 'textDocument/completion - (218)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":15},"context":{"triggerKind":1}} | |
[Trace - 2:20:26 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:15: this is a definition, of func TestAppRat(invalid type)"} | |
[Info - 2:20:26 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:15: this is a definition, of func TestAppRat(invalid type) | |
[Trace - 2:20:26 PM] Received response 'textDocument/completion - (218)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:26 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":58},"contentChanges":[{"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"rangeLength":0,"text":"e"}]} | |
[Trace - 2:20:26 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":16},"end":{"line":2,"character":16}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:26 PM] Sending request 'textDocument/completion - (219)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":16},"context":{"triggerKind":1}} | |
[Trace - 2:20:26 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:16: this is a definition, of func TestAppRate(invalid type)"} | |
[Trace - 2:20:26 PM] Received response 'textDocument/completion - (219)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:26 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:16: this is a definition, of func TestAppRate(invalid type) | |
[Trace - 2:20:26 PM] Sending request 'textDocument/codeAction - (220)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":16},"end":{"line":2,"character":16}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":16},"end":{"line":2,"character":16}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:26 PM] send textDocument/codeAction#220 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:17: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:26 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:17: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:26 PM] Sending request 'textDocument/documentSymbol - (221)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:26 PM] Received response 'textDocument/documentSymbol - (221)' in 0ms. | |
Params: [{"name":"TestAppRate","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":16}}}] | |
[Trace - 2:20:26 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":59},"contentChanges":[{"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":16}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:26 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:26 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":60},"contentChanges":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":15}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:26 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:26 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":61},"contentChanges":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":14}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:26 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:27 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":62},"contentChanges":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":13}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:27 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:27 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":63},"contentChanges":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":12}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:27 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:27 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":64},"contentChanges":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":11}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:27 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:27 PM] Sending request 'textDocument/documentLink - (222)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:27 PM] Received response 'textDocument/documentLink - (222)' in 0ms. | |
Params: {} | |
[Trace - 2:20:27 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":65},"contentChanges":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":10}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:27 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:27 PM] Sending request 'textDocument/codeAction - (223)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:27 PM] send textDocument/codeAction#223 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:10: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:27 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:10: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:27 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":66},"contentChanges":[{"range":{"start":{"line":2,"character":9},"end":{"line":2,"character":9}},"rangeLength":0,"text":"C"}]} | |
[Trace - 2:20:27 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:27 PM] Sending request 'textDocument/completion - (224)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":10},"context":{"triggerKind":1}} | |
[Trace - 2:20:27 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:10: this is a definition, of func TestC(invalid type)"} | |
[Trace - 2:20:27 PM] Received response 'textDocument/completion - (224)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:27 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:10: this is a definition, of func TestC(invalid type) | |
[Trace - 2:20:27 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":67},"contentChanges":[{"range":{"start":{"line":2,"character":10},"end":{"line":2,"character":10}},"rangeLength":0,"text":"o"}]} | |
[Trace - 2:20:27 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:27 PM] Sending request 'textDocument/completion - (225)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":11},"context":{"triggerKind":1}} | |
[Trace - 2:20:27 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:11: this is a definition, of func TestCo(invalid type)"} | |
[Trace - 2:20:27 PM] Received response 'textDocument/completion - (225)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:27 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:11: this is a definition, of func TestCo(invalid type) | |
[Trace - 2:20:27 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":68},"contentChanges":[{"range":{"start":{"line":2,"character":11},"end":{"line":2,"character":11}},"rangeLength":0,"text":"n"}]} | |
[Trace - 2:20:27 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:27 PM] Sending request 'textDocument/completion - (226)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":12},"context":{"triggerKind":1}} | |
[Trace - 2:20:27 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:12: this is a definition, of func TestCon(invalid type)"} | |
[Trace - 2:20:27 PM] Received response 'textDocument/completion - (226)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:27 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:12: this is a definition, of func TestCon(invalid type) | |
[Trace - 2:20:27 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":69},"contentChanges":[{"range":{"start":{"line":2,"character":12},"end":{"line":2,"character":12}},"rangeLength":0,"text":"t"}]} | |
[Trace - 2:20:27 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:27 PM] Sending request 'textDocument/completion - (227)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":13},"context":{"triggerKind":1}} | |
[Trace - 2:20:27 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:13: this is a definition, of func TestCont(invalid type)"} | |
[Trace - 2:20:27 PM] Received response 'textDocument/completion - (227)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:27 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:13: this is a definition, of func TestCont(invalid type) | |
[Trace - 2:20:27 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":70},"contentChanges":[{"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":13}},"rangeLength":0,"text":"r"}]} | |
[Trace - 2:20:27 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:27 PM] Sending request 'textDocument/completion - (228)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":14},"context":{"triggerKind":1}} | |
[Trace - 2:20:27 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:14: this is a definition, of func TestContr(invalid type)"} | |
[Info - 2:20:27 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:14: this is a definition, of func TestContr(invalid type) | |
[Trace - 2:20:27 PM] Received response 'textDocument/completion - (228)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:28 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":71},"contentChanges":[{"range":{"start":{"line":2,"character":14},"end":{"line":2,"character":14}},"rangeLength":0,"text":"a"}]} | |
[Trace - 2:20:28 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:28 PM] Sending request 'textDocument/completion - (229)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":15},"context":{"triggerKind":1}} | |
[Trace - 2:20:28 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:15: this is a definition, of func TestContra(invalid type)"} | |
[Info - 2:20:28 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:15: this is a definition, of func TestContra(invalid type) | |
[Trace - 2:20:28 PM] Received response 'textDocument/completion - (229)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:28 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":72},"contentChanges":[{"range":{"start":{"line":2,"character":15},"end":{"line":2,"character":15}},"rangeLength":0,"text":"c"}]} | |
[Trace - 2:20:28 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":16},"end":{"line":2,"character":16}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:28 PM] Sending request 'textDocument/completion - (230)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":16},"context":{"triggerKind":1}} | |
[Trace - 2:20:28 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:16: this is a definition, of func TestContrac(invalid type)"} | |
[Trace - 2:20:28 PM] Received response 'textDocument/completion - (230)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:28 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:16: this is a definition, of func TestContrac(invalid type) | |
[Trace - 2:20:28 PM] Sending request 'textDocument/documentLink - (231)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:28 PM] Received response 'textDocument/documentLink - (231)' in 0ms. | |
Params: {} | |
[Trace - 2:20:28 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":73},"contentChanges":[{"range":{"start":{"line":2,"character":16},"end":{"line":2,"character":16}},"rangeLength":0,"text":"t"}]} | |
[Trace - 2:20:28 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":17},"end":{"line":2,"character":17}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:28 PM] Sending request 'textDocument/completion - (232)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":17},"context":{"triggerKind":1}} | |
[Trace - 2:20:28 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:17: this is a definition, of func TestContract(invalid type)"} | |
[Trace - 2:20:28 PM] Received response 'textDocument/completion - (232)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:28 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:17: this is a definition, of func TestContract(invalid type) | |
[Trace - 2:20:28 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":74},"contentChanges":[{"range":{"start":{"line":2,"character":17},"end":{"line":2,"character":17}},"rangeLength":0,"text":"_"}]} | |
[Trace - 2:20:28 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":18},"end":{"line":2,"character":18}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:28 PM] Sending request 'textDocument/completion - (233)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":18},"context":{"triggerKind":1}} | |
[Trace - 2:20:28 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:18: this is a definition, of func TestContract_(invalid type)"} | |
[Trace - 2:20:28 PM] Received response 'textDocument/completion - (233)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:28 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:18: this is a definition, of func TestContract_(invalid type) | |
[Trace - 2:20:28 PM] Sending request 'textDocument/codeAction - (234)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":18},"end":{"line":2,"character":18}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":18},"end":{"line":2,"character":18}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:28 PM] send textDocument/codeAction#234 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:19: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:28 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:19: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:29 PM] Sending request 'textDocument/documentSymbol - (235)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:29 PM] Received response 'textDocument/documentSymbol - (235)' in 0ms. | |
Params: [{"name":"TestContract_","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":18}}}] | |
[Trace - 2:20:29 PM] Sending request 'textDocument/documentLink - (236)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:29 PM] Received response 'textDocument/documentLink - (236)' in 0ms. | |
Params: {} | |
[Trace - 2:20:30 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":75},"contentChanges":[{"range":{"start":{"line":2,"character":18},"end":{"line":2,"character":18}},"rangeLength":0,"text":"a"}]} | |
[Trace - 2:20:30 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":19},"end":{"line":2,"character":19}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:30 PM] Sending request 'textDocument/completion - (237)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":19},"context":{"triggerKind":1}} | |
[Trace - 2:20:30 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:19: this is a definition, of func TestContract_a(invalid type)"} | |
[Trace - 2:20:30 PM] Received response 'textDocument/completion - (237)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:30 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:19: this is a definition, of func TestContract_a(invalid type) | |
[Trace - 2:20:30 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":76},"contentChanges":[{"range":{"start":{"line":2,"character":19},"end":{"line":2,"character":19}},"rangeLength":0,"text":"p"}]} | |
[Trace - 2:20:30 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":20},"end":{"line":2,"character":20}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:30 PM] Sending request 'textDocument/completion - (238)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":20},"context":{"triggerKind":1}} | |
[Trace - 2:20:30 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:20: this is a definition, of func TestContract_ap(invalid type)"} | |
[Trace - 2:20:30 PM] Received response 'textDocument/completion - (238)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:30 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:20: this is a definition, of func TestContract_ap(invalid type) | |
[Trace - 2:20:30 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":77},"contentChanges":[{"range":{"start":{"line":2,"character":20},"end":{"line":2,"character":20}},"rangeLength":0,"text":"i"}]} | |
[Trace - 2:20:30 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":21},"end":{"line":2,"character":21}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:30 PM] Sending request 'textDocument/completion - (239)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":21},"context":{"triggerKind":1}} | |
[Trace - 2:20:30 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:21: this is a definition, of func TestContract_api(invalid type)"} | |
[Trace - 2:20:30 PM] Received response 'textDocument/completion - (239)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:30 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:21: this is a definition, of func TestContract_api(invalid type) | |
[Trace - 2:20:30 PM] Sending request 'textDocument/codeAction - (240)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":21},"end":{"line":2,"character":21}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":21},"end":{"line":2,"character":21}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:30 PM] send textDocument/codeAction#240 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:22: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:30 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:22: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:30 PM] Sending request 'textDocument/documentSymbol - (241)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:30 PM] Received response 'textDocument/documentSymbol - (241)' in 0ms. | |
Params: [{"name":"TestContract_api","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":21}}}] | |
[Trace - 2:20:30 PM] Sending request 'textDocument/documentLink - (242)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:30 PM] Received response 'textDocument/documentLink - (242)' in 0ms. | |
Params: {} | |
[Trace - 2:20:31 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":78},"contentChanges":[{"range":{"start":{"line":2,"character":21},"end":{"line":2,"character":21}},"rangeLength":0,"text":"_"}]} | |
[Trace - 2:20:31 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":22},"end":{"line":2,"character":22}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:31 PM] Sending request 'textDocument/completion - (243)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":22},"context":{"triggerKind":1}} | |
[Trace - 2:20:31 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:22: this is a definition, of func TestContract_api_(invalid type)"} | |
[Trace - 2:20:31 PM] Received response 'textDocument/completion - (243)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:31 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:22: this is a definition, of func TestContract_api_(invalid type) | |
[Trace - 2:20:32 PM] Sending request 'textDocument/codeAction - (244)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":22},"end":{"line":2,"character":22}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":22},"end":{"line":2,"character":22}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:32 PM] send textDocument/codeAction#244 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:23: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:32 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:23: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:32 PM] Sending request 'textDocument/documentSymbol - (245)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:32 PM] Received response 'textDocument/documentSymbol - (245)' in 0ms. | |
Params: [{"name":"TestContract_api_","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":22}}}] | |
[Trace - 2:20:32 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":79},"contentChanges":[{"range":{"start":{"line":2,"character":22},"end":{"line":2,"character":22}},"rangeLength":0,"text":"r"}]} | |
[Trace - 2:20:32 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":23},"end":{"line":2,"character":23}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:32 PM] Sending request 'textDocument/completion - (246)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":23},"context":{"triggerKind":1}} | |
[Trace - 2:20:32 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:23: this is a definition, of func TestContract_api_r(invalid type)"} | |
[Trace - 2:20:32 PM] Received response 'textDocument/completion - (246)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:32 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:23: this is a definition, of func TestContract_api_r(invalid type) | |
[Trace - 2:20:32 PM] Sending request 'textDocument/codeAction - (247)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":23},"end":{"line":2,"character":23}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":23},"end":{"line":2,"character":23}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:32 PM] send textDocument/codeAction#247 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:24: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:32 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:24: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:32 PM] Sending request 'textDocument/documentSymbol - (248)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:32 PM] Received response 'textDocument/documentSymbol - (248)' in 0ms. | |
Params: [{"name":"TestContract_api_r","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":23}}}] | |
[Trace - 2:20:32 PM] Sending request 'textDocument/documentLink - (249)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:32 PM] Received response 'textDocument/documentLink - (249)' in 0ms. | |
Params: {} | |
[Trace - 2:20:32 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":80},"contentChanges":[{"range":{"start":{"line":2,"character":23},"end":{"line":2,"character":23}},"rangeLength":0,"text":"a"}]} | |
[Trace - 2:20:32 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":24},"end":{"line":2,"character":24}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:32 PM] Sending request 'textDocument/completion - (250)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":24},"context":{"triggerKind":1}} | |
[Trace - 2:20:32 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:24: this is a definition, of func TestContract_api_ra(invalid type)"} | |
[Trace - 2:20:32 PM] Received response 'textDocument/completion - (250)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:32 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:24: this is a definition, of func TestContract_api_ra(invalid type) | |
[Trace - 2:20:33 PM] Sending request 'textDocument/codeAction - (251)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":24},"end":{"line":2,"character":24}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":24},"end":{"line":2,"character":24}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:33 PM] send textDocument/codeAction#251 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:25: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:33 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:25: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:33 PM] Sending request 'textDocument/documentSymbol - (252)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:33 PM] Received response 'textDocument/documentSymbol - (252)' in 0ms. | |
Params: [{"name":"TestContract_api_ra","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":24}}}] | |
[Trace - 2:20:33 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":81},"contentChanges":[{"range":{"start":{"line":2,"character":23},"end":{"line":2,"character":24}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:33 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":23},"end":{"line":2,"character":23}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:33 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":82},"contentChanges":[{"range":{"start":{"line":2,"character":22},"end":{"line":2,"character":23}},"rangeLength":1,"text":""}]} | |
[Trace - 2:20:33 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":22},"end":{"line":2,"character":22}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:33 PM] Sending request 'textDocument/codeAction - (253)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":22},"end":{"line":2,"character":22}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":22},"end":{"line":2,"character":22}},"message":"expected '(', found newline","severity":1,"source":"LSP"}]}} | |
[Error - 2:20:33 PM] send textDocument/codeAction#253 /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:23: expected '(', found newline (and 3 more errors) | |
[Error - 2:20:33 PM] Request textDocument/codeAction failed. | |
Message: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:3:23: expected '(', found newline (and 3 more errors) | |
Code: 0 | |
[Trace - 2:20:33 PM] Sending request 'textDocument/documentLink - (254)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:33 PM] Received response 'textDocument/documentLink - (254)' in 0ms. | |
Params: {} | |
[Trace - 2:20:33 PM] Sending request 'textDocument/documentSymbol - (255)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:33 PM] Received response 'textDocument/documentSymbol - (255)' in 0ms. | |
Params: [{"name":"TestContract_api_","detail":"(invalid type)","kind":12,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":22}}}] | |
[Trace - 2:20:38 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":83},"contentChanges":[{"range":{"start":{"line":2,"character":22},"end":{"line":2,"character":22}},"rangeLength":0,"text":"R"}]} | |
[Trace - 2:20:38 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":23},"end":{"line":2,"character":23}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:38 PM] Sending request 'textDocument/completion - (256)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":23},"context":{"triggerKind":1}} | |
[Trace - 2:20:38 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:23: this is a definition, of func TestContract_api_R(invalid type)"} | |
[Trace - 2:20:38 PM] Received response 'textDocument/completion - (256)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:38 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:23: this is a definition, of func TestContract_api_R(invalid type) | |
[Trace - 2:20:38 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":84},"contentChanges":[{"range":{"start":{"line":2,"character":23},"end":{"line":2,"character":23}},"rangeLength":0,"text":"a"}]} | |
[Trace - 2:20:38 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":24},"end":{"line":2,"character":24}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:38 PM] Sending request 'textDocument/completion - (257)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":24},"context":{"triggerKind":1}} | |
[Trace - 2:20:38 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:24: this is a definition, of func TestContract_api_Ra(invalid type)"} | |
[Trace - 2:20:38 PM] Received response 'textDocument/completion - (257)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:38 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:24: this is a definition, of func TestContract_api_Ra(invalid type) | |
[Trace - 2:20:38 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":85},"contentChanges":[{"range":{"start":{"line":2,"character":24},"end":{"line":2,"character":24}},"rangeLength":0,"text":"t"}]} | |
[Trace - 2:20:38 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":25},"end":{"line":2,"character":25}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:38 PM] Sending request 'textDocument/completion - (258)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":25},"context":{"triggerKind":1}} | |
[Trace - 2:20:38 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:25: this is a definition, of func TestContract_api_Rat(invalid type)"} | |
[Info - 2:20:38 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:25: this is a definition, of func TestContract_api_Rat(invalid type) | |
[Trace - 2:20:38 PM] Received response 'textDocument/completion - (258)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:38 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":86},"contentChanges":[{"range":{"start":{"line":2,"character":25},"end":{"line":2,"character":25}},"rangeLength":0,"text":"e"}]} | |
[Trace - 2:20:38 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":26},"end":{"line":2,"character":26}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:38 PM] Sending request 'textDocument/completion - (259)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":26},"context":{"triggerKind":1}} | |
[Trace - 2:20:38 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:26: this is a definition, of func TestContract_api_Rate(invalid type)"} | |
[Trace - 2:20:38 PM] Received response 'textDocument/completion - (259)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:38 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:26: this is a definition, of func TestContract_api_Rate(invalid type) | |
[Trace - 2:20:38 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":87},"contentChanges":[{"range":{"start":{"line":2,"character":26},"end":{"line":2,"character":26}},"rangeLength":0,"text":"L"}]} | |
[Trace - 2:20:38 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":27},"end":{"line":2,"character":27}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:38 PM] Sending request 'textDocument/completion - (260)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":27},"context":{"triggerKind":1}} | |
[Trace - 2:20:38 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:27: this is a definition, of func TestContract_api_RateL(invalid type)"} | |
[Trace - 2:20:38 PM] Received response 'textDocument/completion - (260)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:38 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:27: this is a definition, of func TestContract_api_RateL(invalid type) | |
[Trace - 2:20:38 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":88},"contentChanges":[{"range":{"start":{"line":2,"character":27},"end":{"line":2,"character":27}},"rangeLength":0,"text":"i"}]} | |
[Trace - 2:20:38 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":28},"end":{"line":2,"character":28}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:38 PM] Sending request 'textDocument/completion - (261)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":28},"context":{"triggerKind":1}} | |
[Trace - 2:20:38 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:28: this is a definition, of func TestContract_api_RateLi(invalid type)"} | |
[Info - 2:20:38 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:28: this is a definition, of func TestContract_api_RateLi(invalid type) | |
[Trace - 2:20:38 PM] Received response 'textDocument/completion - (261)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:38 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":89},"contentChanges":[{"range":{"start":{"line":2,"character":28},"end":{"line":2,"character":28}},"rangeLength":0,"text":"m"}]} | |
[Trace - 2:20:38 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":29},"end":{"line":2,"character":29}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:38 PM] Sending request 'textDocument/completion - (262)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":29},"context":{"triggerKind":1}} | |
[Trace - 2:20:38 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:29: this is a definition, of func TestContract_api_RateLim(invalid type)"} | |
[Trace - 2:20:38 PM] Received response 'textDocument/completion - (262)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:38 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:29: this is a definition, of func TestContract_api_RateLim(invalid type) | |
[Trace - 2:20:38 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":90},"contentChanges":[{"range":{"start":{"line":2,"character":29},"end":{"line":2,"character":29}},"rangeLength":0,"text":"i"}]} | |
[Trace - 2:20:38 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":30},"end":{"line":2,"character":30}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:38 PM] Sending request 'textDocument/completion - (263)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":30},"context":{"triggerKind":1}} | |
[Trace - 2:20:38 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:30: this is a definition, of func TestContract_api_RateLimi(invalid type)"} | |
[Trace - 2:20:38 PM] Received response 'textDocument/completion - (263)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:38 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:30: this is a definition, of func TestContract_api_RateLimi(invalid type) | |
[Trace - 2:20:39 PM] Sending request 'textDocument/documentLink - (264)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:39 PM] Received response 'textDocument/documentLink - (264)' in 0ms. | |
Params: {} | |
[Trace - 2:20:39 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":91},"contentChanges":[{"range":{"start":{"line":2,"character":30},"end":{"line":2,"character":30}},"rangeLength":0,"text":"t"}]} | |
[Trace - 2:20:39 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":31},"end":{"line":2,"character":31}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:39 PM] Sending request 'textDocument/completion - (265)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":31},"context":{"triggerKind":1}} | |
[Trace - 2:20:39 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:31: this is a definition, of func TestContract_api_RateLimit(invalid type)"} | |
[Trace - 2:20:39 PM] Received response 'textDocument/completion - (265)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:39 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:31: this is a definition, of func TestContract_api_RateLimit(invalid type) | |
[Trace - 2:20:39 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":92},"contentChanges":[{"range":{"start":{"line":2,"character":31},"end":{"line":2,"character":31}},"rangeLength":0,"text":"e"}]} | |
[Trace - 2:20:39 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":32},"end":{"line":2,"character":32}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:39 PM] Sending request 'textDocument/completion - (266)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":32},"context":{"triggerKind":1}} | |
[Trace - 2:20:39 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:32: this is a definition, of func TestContract_api_RateLimite(invalid type)"} | |
[Trace - 2:20:39 PM] Received response 'textDocument/completion - (266)' in 1ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:39 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:32: this is a definition, of func TestContract_api_RateLimite(invalid type) | |
[Trace - 2:20:39 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":93},"contentChanges":[{"range":{"start":{"line":2,"character":32},"end":{"line":2,"character":32}},"rangeLength":0,"text":"r"}]} | |
[Trace - 2:20:39 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":33},"end":{"line":2,"character":33}},"severity":1,"source":"LSP","message":"expected '(', found newline"}]} | |
[Trace - 2:20:39 PM] Sending request 'textDocument/completion - (267)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":33},"context":{"triggerKind":1}} | |
[Trace - 2:20:39 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:33: this is a definition, of func TestContract_api_RateLimiter(invalid type)"} | |
[Trace - 2:20:39 PM] Received response 'textDocument/completion - (267)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:39 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:33: this is a definition, of func TestContract_api_RateLimiter(invalid type) | |
[Trace - 2:20:39 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":94},"contentChanges":[{"range":{"start":{"line":2,"character":33},"end":{"line":2,"character":33}},"rangeLength":0,"text":"()"}]} | |
[Trace - 2:20:39 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:20:39 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":95},"contentChanges":[{"range":{"start":{"line":2,"character":34},"end":{"line":2,"character":34}},"rangeLength":0,"text":"t"}]} | |
[Trace - 2:20:39 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":34},"end":{"line":2,"character":35}},"severity":1,"source":"LSP","message":"undeclared name: t"}]} | |
[Trace - 2:20:39 PM] Sending request 'textDocument/completion - (268)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":35},"context":{"triggerKind":1}} | |
[Trace - 2:20:39 PM] Received response 'textDocument/completion - (268)' in 0ms. | |
Params: {"isIncomplete":false,"items":[{"label":"TestContract_api_RateLimiter","kind":3,"detail":"func(invalid type)","preselect":true,"sortText":"00000","filterText":"TestContract_api_RateLimiter","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":34},"end":{"line":2,"character":35}},"newText":"TestContract_api_RateLimiter(${1:invalid type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"true","kind":21,"sortText":"00039","filterText":"true","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":34},"end":{"line":2,"character":35}},"newText":"true"}}]} | |
[Trace - 2:20:39 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":96},"contentChanges":[{"range":{"start":{"line":2,"character":35},"end":{"line":2,"character":35}},"rangeLength":0,"text":" "}]} | |
[Trace - 2:20:39 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":34},"end":{"line":2,"character":35}},"severity":1,"source":"LSP","message":"undeclared name: t"}]} | |
[Trace - 2:20:39 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":97},"contentChanges":[{"range":{"start":{"line":2,"character":36},"end":{"line":2,"character":36}},"rangeLength":0,"text":"*"}]} | |
[Trace - 2:20:39 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":37}},"severity":1,"source":"LSP","message":"expected type, found ')'"}]} | |
[Trace - 2:20:39 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":98},"contentChanges":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":37}},"rangeLength":0,"text":"t"}]} | |
[Trace - 2:20:39 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":38}},"severity":1,"source":"LSP","message":"undeclared name: t"}]} | |
[Trace - 2:20:39 PM] Sending request 'textDocument/completion - (269)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":38},"context":{"triggerKind":1}} | |
[Trace - 2:20:39 PM] Received response 'textDocument/completion - (269)' in 1ms. | |
Params: {"isIncomplete":false,"items":[{"label":"t","kind":6,"detail":"*invalid type","preselect":true,"sortText":"00000","filterText":"t","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":38}},"newText":"t"}},{"label":"TestContract_api_RateLimiter","kind":3,"detail":"func(t *invalid type)","sortText":"00001","filterText":"TestContract_api_RateLimiter","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":38}},"newText":"TestContract_api_RateLimiter(${1:t *invalid type})"},"command":{"title":"","command":"editor.action.triggerParameterHints"}},{"label":"true","kind":21,"sortText":"00040","filterText":"true","insertTextFormat":2,"textEdit":{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":38}},"newText":"true"}}]} | |
[Trace - 2:20:39 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":99},"contentChanges":[{"range":{"start":{"line":2,"character":38},"end":{"line":2,"character":38}},"rangeLength":0,"text":"e"}]} | |
[Trace - 2:20:39 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":39}},"severity":1,"source":"LSP","message":"undeclared name: te"}]} | |
[Trace - 2:20:40 PM] Sending request 'textDocument/signatureHelp - (270)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":39}} | |
[Trace - 2:20:40 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no signature help for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:39 : cannot find an enclosing function"} | |
[Info - 2:20:40 PM] no signature help for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:39 : cannot find an enclosing function | |
[Trace - 2:20:40 PM] Received response 'textDocument/signatureHelp - (270)' in 1ms. | |
Params: {} | |
[Trace - 2:20:40 PM] Sending request 'textDocument/documentLink - (271)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:40 PM] Received response 'textDocument/documentLink - (271)' in 0ms. | |
Params: {} | |
[Trace - 2:20:40 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":100},"contentChanges":[{"range":{"start":{"line":2,"character":39},"end":{"line":2,"character":39}},"rangeLength":0,"text":"s"}]} | |
[Trace - 2:20:40 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":40}},"severity":1,"source":"LSP","message":"undeclared name: tes"}]} | |
[Trace - 2:20:40 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":101},"contentChanges":[{"range":{"start":{"line":2,"character":40},"end":{"line":2,"character":40}},"rangeLength":0,"text":"t"}]} | |
[Trace - 2:20:40 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":41}},"severity":1,"source":"LSP","message":"undeclared name: test"}]} | |
[Trace - 2:20:40 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":102},"contentChanges":[{"range":{"start":{"line":2,"character":41},"end":{"line":2,"character":41}},"rangeLength":0,"text":"i"}]} | |
[Trace - 2:20:40 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":42}},"severity":1,"source":"LSP","message":"undeclared name: testi"}]} | |
[Trace - 2:20:40 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":103},"contentChanges":[{"range":{"start":{"line":2,"character":42},"end":{"line":2,"character":42}},"rangeLength":0,"text":"n"}]} | |
[Trace - 2:20:40 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":43}},"severity":1,"source":"LSP","message":"undeclared name: testin"}]} | |
[Trace - 2:20:40 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":104},"contentChanges":[{"range":{"start":{"line":2,"character":43},"end":{"line":2,"character":43}},"rangeLength":0,"text":"g"}]} | |
[Trace - 2:20:40 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":44}},"severity":1,"source":"LSP","message":"undeclared name: testing"}]} | |
[Trace - 2:20:40 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":105},"contentChanges":[{"range":{"start":{"line":2,"character":44},"end":{"line":2,"character":44}},"rangeLength":0,"text":"."}]} | |
[Trace - 2:20:40 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":45},"end":{"line":2,"character":45}},"severity":1,"source":"LSP","message":"expected 'IDENT', found ')'"}]} | |
[Trace - 2:20:40 PM] Sending request 'textDocument/completion - (272)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":45},"context":{"triggerKind":2,"triggerCharacter":"."}} | |
[Trace - 2:20:40 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:45: cannot resolve testing"} | |
[Trace - 2:20:40 PM] Received response 'textDocument/completion - (272)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Info - 2:20:40 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:45: cannot resolve testing | |
[Trace - 2:20:40 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":106},"contentChanges":[{"range":{"start":{"line":2,"character":45},"end":{"line":2,"character":45}},"rangeLength":0,"text":"T"}]} | |
[Trace - 2:20:40 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":46}},"severity":1,"source":"LSP","message":"undeclared name: testing"}]} | |
[Trace - 2:20:40 PM] Sending request 'textDocument/completion - (273)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":46},"context":{"triggerKind":1}} | |
[Trace - 2:20:40 PM] Received notification 'window/logMessage'. | |
Params: {"type":3,"message":"no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:46: cannot resolve testing"} | |
[Info - 2:20:40 PM] no completions found for file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:2:46: cannot resolve testing | |
[Trace - 2:20:40 PM] Received response 'textDocument/completion - (273)' in 0ms. | |
Params: {"isIncomplete":false,"items":[]} | |
[Trace - 2:20:40 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":107},"contentChanges":[{"range":{"start":{"line":2,"character":46},"end":{"line":2,"character":47}},"rangeLength":1,"text":")"}]} | |
[Trace - 2:20:40 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":46}},"severity":1,"source":"LSP","message":"undeclared name: testing"}]} | |
[Trace - 2:20:40 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":108},"contentChanges":[{"range":{"start":{"line":2,"character":47},"end":{"line":2,"character":47}},"rangeLength":0,"text":" "}]} | |
[Trace - 2:20:40 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":46}},"severity":1,"source":"LSP","message":"undeclared name: testing"}]} | |
[Trace - 2:20:40 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":109},"contentChanges":[{"range":{"start":{"line":2,"character":48},"end":{"line":2,"character":48}},"rangeLength":0,"text":"{}"}]} | |
[Trace - 2:20:40 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":46}},"severity":1,"source":"LSP","message":"undeclared name: testing"}]} | |
[Trace - 2:20:41 PM] Sending request 'textDocument/documentLink - (274)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:41 PM] Received response 'textDocument/documentLink - (274)' in 0ms. | |
Params: {} | |
[Trace - 2:20:41 PM] Sending request 'textDocument/codeAction - (275)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":49},"end":{"line":2,"character":49}},"context":{"diagnostics":[]}} | |
[Trace - 2:20:41 PM] Received response 'textDocument/codeAction - (275)' in 10ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go":[{"range":{"start":{"line":2,"character":0},"end":{"line":3,"character":0}},"newText":""},{"range":{"start":{"line":3,"character":0},"end":{"line":3,"character":0}},"newText":"import \"testing\"\n"},{"range":{"start":{"line":3,"character":0},"end":{"line":3,"character":0}},"newText":"\n"},{"range":{"start":{"line":3,"character":0},"end":{"line":3,"character":0}},"newText":"func TestContract_api_RateLimiter(t *testing.T) {}\n"}]}}}] | |
[Trace - 2:20:41 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":110},"contentChanges":[{"range":{"start":{"line":2,"character":49},"end":{"line":2,"character":49}},"rangeLength":0,"text":"\n\t\n"}]} | |
[Trace - 2:20:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":46}},"severity":1,"source":"LSP","message":"undeclared name: testing"}]} | |
[Trace - 2:20:41 PM] Sending request 'textDocument/documentSymbol - (276)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:41 PM] Received response 'textDocument/documentSymbol - (276)' in 0ms. | |
Params: [{"name":"TestContract_api_RateLimiter","detail":"(t *invalid type)","kind":12,"range":{"start":{"line":2,"character":0},"end":{"line":4,"character":1}},"selectionRange":{"start":{"line":2,"character":5},"end":{"line":2,"character":33}}}] | |
[Trace - 2:20:42 PM] Sending request 'textDocument/documentLink - (277)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:20:42 PM] Received response 'textDocument/documentLink - (277)' in 0ms. | |
Params: {} | |
[Trace - 2:20:55 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","languageId":"go","version":1,"text":"package api\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"mime\"\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/fastly/REDACTED/pkg/auth\"\n\t\"github.com/fastly/REDACTED/pkg/errors\"\n\t\"github.com/fastly/REDACTED/pkg/object\"\n\t\"github.com/fastly/REDACTED/pkg/replica\"\n\t\"github.com/fastly/REDACTED/pkg/ring\"\n\t\"github.com/gorilla/mux\"\n)\n\nconst (\n\t// LimitRemainingHeaderKey is a response header that contains the remaining\n\t// capacity of a limiter.\n\tLimitRemainingHeaderKey = \"Fastly-Limit-Remaining\" // TODO(pb)\n\n\t// CausalContextHeaderKey is a request and response header that contains the\n\t// opaque context (dotted version vector set) for multi-value register API\n\t// calls.\n\tCausalContextHeaderKey = \"Fastly-Causal-Context\" // TODO(pb)\n\n\t// LWWTimestampKey is a response header that contains the lexicographical\n\t// timestamp string associated with a LWWRegister value.\n\tLWWTimestampKey = \"Fastly-LWW-Timestamp\"\n\n\t// MaxObjectSizeBytes is the maximum request body size that will be accepted\n\t// in a PUT to a register. The value has been chosen arbitrarily.\n\tMaxObjectSizeBytes = 10 * 1024 * 1024 // 10MB\n\n\t// MaxItemSizeBytes is the maximum request body size that will be accepted\n\t// for an item added to a HyperLogLog. The value has been chosen\n\t// arbitrarily.\n\tMaxItemSizeBytes = 100 * 1024 // 100KB\n)\n\n// Auth enumerates the methods required by the public API, modeling part of an\n// auth.Node. It's a consumer contract for the PublicServer.\ntype Auth interface {\n\tExecMode(ctx context.Context, token, id string, op interface{}, mode ring.ConsistencyMode) (object.Raw, error)\n}\n\n// Assert that the Auth interface is implemented by auth.Node.\nvar _ Auth = (*auth.Node)(nil)\n\n//\n//\n//\n\n// PublicServer wraps an Auth instance (e.g. an auth.Node) and implements the\n// public API HTTP endpoints. PublicServer has no corresponding PublicClient,\n// because the only consumers of this interface are, presumably, actual users.\ntype PublicServer struct {\n\tauth Auth\n\thttp.Handler\n}\n\n// NewPublicServer wraps the provided Public instance and makes it available over HTTP.\nfunc NewPublicServer(a Auth) *PublicServer {\n\ts := &PublicServer{auth: a}\n\tr := mux.NewRouter()\n\tr.StrictSlash(true)\n\tr.Path(\"/limit/{id:[^/]+}/{capacity:[0-9]+}/{window:[^/]+}\").Methods(\"POST\").HandlerFunc(s.handleLimit)\n\tr.Path(\"/value/{id:[^/]+}\").Methods(\"PUT\").HandlerFunc(s.handleSinglePut)\n\tr.Path(\"/value/{id:[^/]+}\").Methods(\"GET\").HandlerFunc(s.handleSingleGet)\n\tr.Path(\"/multivalue/{id:[^/]+}\").Methods(\"PUT\").HandlerFunc(s.handleMultiPut)\n\tr.Path(\"/multivalue/{id:[^/]+}\").Methods(\"GET\").HandlerFunc(s.handleMultiGet)\n\tr.Path(\"/hyperloglog/{id:[^/]+}\").Methods(\"POST\").HandlerFunc(s.handleHyperLogLogPost)\n\tr.Path(\"/hyperloglog/{id:[^/]+}\").Methods(\"GET\").HandlerFunc(s.handleHyperLogLogGet)\n\tr.Path(\"/bloom/{id:[^/]+}/{capacity:[0-9]+}/{fpr:[0-9\\\\.]+}\").Methods(\"POST\").HandlerFunc(s.handleBloomPost)\n\tr.Path(\"/bloom/{id:[^/]+}\").Methods(\"GET\").HandlerFunc(s.handleBloomGet)\n\ts.Handler = r\n\treturn s\n}\n\nfunc (s *PublicServer) handleLimit(w http.ResponseWriter, r *http.Request) {\n\tsetRoute(r.Context(), \"POST /limit\")\n\n\ttoken, err := parseToken(r)\n\tif err != nil {\n\t\terrors.Encode(w, err)\n\t\treturn\n\t}\n\n\tvar (\n\t\tvars = mux.Vars(r)\n\t\tid = vars[\"id\"]\n\t\tmode = parseConsistencyMode(r.URL.Query())\n\t)\n\tif id == \"\" {\n\t\terrors.Encode(w, ErrNoID)\n\t\treturn\n\t}\n\n\tcapacityStr := vars[\"capacity\"]\n\tif capacityStr == \"\" {\n\t\terrors.Encode(w, errors.New(\"capacity parameter is required (internal routing error)\"))\n\t\treturn\n\t}\n\n\tcapacity, err := strconv.ParseUint(capacityStr, 10, 64)\n\tif err != nil {\n\t\terrors.Encode(w, errors.WrapfCode(http.StatusBadRequest, err, \"invalid capacity (%s)\", capacityStr))\n\t\treturn\n\t}\n\n\twindowStr := vars[\"window\"]\n\tif windowStr == \"\" {\n\t\terrors.Encode(w, errors.Wrap(err, \"window parameter is required (internal routing error)\"))\n\t\treturn\n\t}\n\n\twindow, err := time.ParseDuration(windowStr)\n\tif err != nil {\n\t\terrors.Encode(w, errors.WrapfCode(http.StatusBadRequest, err, \"invalid window (%s)\", windowStr))\n\t\treturn\n\t}\n\tid = fmt.Sprintf(\"%s_%s\", id, time.Now().UTC().Truncate(window).Format(\"20060102150405\"))\n\n\tvar n uint64 = 1\n\tif nStr := r.URL.Query().Get(\"n\"); nStr != \"\" {\n\t\tvar err error\n\t\tn, err = strconv.ParseUint(nStr, 10, 64)\n\t\tif err != nil {\n\t\t\terrors.WrapfCode(http.StatusBadRequest, err, \"invalid n (%s)\", nStr)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// DCounterDecrement will return object.ErrCapacityExceeded if it would go\n\t// below zero. We catch that here.\n\tobj, err := s.auth.ExecMode(r.Context(), token, id, replica.DCounterDecrement{Capacity: capacity, Delta: n}, mode)\n\tif errors.SomewhatEqual(err, object.ErrCapacityExceeded) {\n\t\tencodePublicError(w, object.ErrCapacityExceeded)\n\t\treturn\n\t}\n\tif err != nil {\n\t\terrors.Encode(w, errors.Wrapf(err, \"error executing rate limiting request\"))\n\t\treturn\n\t}\n\n\tvar counter object.DCounter\n\tif err := counter.Deserialize(obj); err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error deserializing response object\"))\n\t\treturn\n\t}\n\n\tremaining := counter.Read()\n\tw.Header().Set(LimitRemainingHeaderKey, fmt.Sprint(remaining))\n\trespondPublicSuccessf(w, \"OK, %d remaining\\n\", remaining)\n}\n\nfunc (s *PublicServer) handleMultiPut(w http.ResponseWriter, r *http.Request) {\n\tsetRoute(r.Context(), \"PUT /multivalue\")\n\n\ttoken, err := parseToken(r)\n\tif err != nil {\n\t\terrors.Encode(w, err)\n\t\treturn\n\t}\n\n\tvar (\n\t\tid = mux.Vars(r)[\"id\"]\n\t\tmode = parseConsistencyMode(r.URL.Query())\n\t)\n\tif id == \"\" {\n\t\terrors.Encode(w, ErrNoID)\n\t\treturn\n\t}\n\n\tvalue, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, MaxObjectSizeBytes))\n\tif err != nil {\n\t\terrors.Encode(w, errors.WrapCode(http.StatusBadRequest, err, \"error reading request body\"))\n\t\treturn\n\t}\n\n\t_, force := r.URL.Query()[\"force\"]\n\n\tvar context object.DottedVersionVectorSet\n\tif !force {\n\t\tif contextStr := r.Header.Get(CausalContextHeaderKey); contextStr != \"\" {\n\t\t\tdec := base64.NewDecoder(base64.StdEncoding, strings.NewReader(contextStr))\n\t\t\tif err := json.NewDecoder(dec).Decode(&context); err != nil {\n\t\t\t\terrors.Encode(w, errors.WrapfCode(http.StatusBadRequest, err, \"error decoding %s\", CausalContextHeaderKey))\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\t_, err = s.auth.ExecMode(r.Context(), token, id, replica.MVRegisterWrite{Value: value, Context: context, Force: force}, mode)\n\tif err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error executing multi-register write\"))\n\t\treturn\n\t}\n\n\trespondPublicSuccessf(w, \"Put OK, %dB\\n\", len(value))\n}\n\nfunc (s *PublicServer) handleMultiGet(w http.ResponseWriter, r *http.Request) {\n\tsetRoute(r.Context(), \"GET /multivalue\")\n\n\ttoken, err := parseToken(r)\n\tif err != nil {\n\t\terrors.Encode(w, err)\n\t\treturn\n\t}\n\n\tvar (\n\t\tid = mux.Vars(r)[\"id\"]\n\t\tmode = parseConsistencyMode(r.URL.Query())\n\t)\n\tif id == \"\" {\n\t\terrors.Encode(w, ErrNoID)\n\t\treturn\n\t}\n\n\tobj, err := s.auth.ExecMode(r.Context(), token, id, replica.MVRegisterRead{}, mode)\n\tif errors.SomewhatEqual(err, object.ErrNotFound) {\n\t\tencodePublicError(w, object.ErrNotFound)\n\t\treturn\n\t}\n\tif err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error executing multi-register read\"))\n\t\treturn\n\t}\n\n\tvar register object.MVRegister\n\tif err := register.Deserialize(obj); err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error deserializing response object\"))\n\t\treturn\n\t}\n\n\tvalues, context := register.Get()\n\tif len(values) <= 0 {\n\t\terrors.Encode(w, errors.NewCode(http.StatusNotFound, \"multi-register object not found\"))\n\t\treturn\n\t}\n\n\tvar buf bytes.Buffer\n\tenc := base64.NewEncoder(base64.StdEncoding, &buf)\n\tif err := json.NewEncoder(enc).Encode(context); err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error serializing causal context\"))\n\t\treturn\n\t}\n\tif err := enc.Close(); err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error serializing causal context\"))\n\t\treturn\n\t}\n\tw.Header().Set(CausalContextHeaderKey, buf.String())\n\n\tif len(values) == 1 {\n\t\tw.Header().Set(\"Content-Type\", \"application/octet-stream; charset=utf-8\")\n\t\tw.Write(values[0])\n\t\treturn\n\t}\n\n\tmediatype, _, err := mime.ParseMediaType(r.Header.Get(\"Accept\"))\n\tif err != nil {\n\t\terrors.Encode(w, errors.WrapCode(http.StatusNotAcceptable, err, \"error parsing Accept headers\"))\n\t\treturn\n\t}\n\tif mediatype != \"multipart/form-data\" {\n\t\terrors.Encode(w, errors.NewCode(http.StatusMultipleChoices, \"multiple values; set Accept: multipart/form-data and prepare for a multipart response\"))\n\t\treturn\n\t}\n\n\tmw := multipart.NewWriter(w)\n\tw.Header().Set(\"Content-Type\", mw.FormDataContentType())\n\tfor _, value := range values {\n\t\tfw, err := mw.CreateFormField(\"value\")\n\t\tif err != nil {\n\t\t\terrors.Encode(w, errors.Wrap(err, \"error creating multipart response\"))\n\t\t\treturn\n\t\t}\n\t\tif _, err := fw.Write(value); err != nil {\n\t\t\terrors.Encode(w, errors.Wrap(err, \"error writing multipart response\"))\n\t\t\treturn\n\t\t}\n\t}\n\tif err := mw.Close(); err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error closing multipart response\"))\n\t\treturn\n\t}\n}\n\nfunc (s *PublicServer) handleSinglePut(w http.ResponseWriter, r *http.Request) {\n\tsetRoute(r.Context(), \"PUT /value\")\n\n\ttoken, err := parseToken(r)\n\tif err != nil {\n\t\terrors.Encode(w, err)\n\t\treturn\n\t}\n\n\tvar (\n\t\tid = mux.Vars(r)[\"id\"]\n\t\tmode = parseConsistencyMode(r.URL.Query())\n\t)\n\tif id == \"\" {\n\t\terrors.Encode(w, ErrNoID)\n\t\treturn\n\t}\n\n\tvalue, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, MaxObjectSizeBytes))\n\tif err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error reading request body\"))\n\t\treturn\n\t}\n\n\tobj, err := s.auth.ExecMode(r.Context(), token, id, replica.LWWRegisterWrite{Value: value}, mode)\n\tif err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error executing register write\"))\n\t\treturn\n\t}\n\n\tvar register object.LWWRegister\n\tif err := register.Deserialize(obj); err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error deserializing response object\"))\n\t\treturn\n\t}\n\n\tw.Header().Set(LWWTimestampKey, register.Timestamp)\n\trespondPublicSuccessf(w, \"Put OK, %dB\\n\", len(register.Value))\n}\n\nfunc (s *PublicServer) handleSingleGet(w http.ResponseWriter, r *http.Request) {\n\tsetRoute(r.Context(), \"GET /value\")\n\n\ttoken, err := parseToken(r)\n\tif err != nil {\n\t\terrors.Encode(w, err)\n\t\treturn\n\t}\n\n\tvar (\n\t\tid = mux.Vars(r)[\"id\"]\n\t\tmode = parseConsistencyMode(r.URL.Query())\n\t)\n\tif id == \"\" {\n\t\terrors.Encode(w, ErrNoID)\n\t\treturn\n\t}\n\n\tobj, err := s.auth.ExecMode(r.Context(), token, id, replica.LWWRegisterRead{}, mode)\n\tif errors.SomewhatEqual(err, object.ErrNotFound) {\n\t\tencodePublicError(w, object.ErrNotFound)\n\t\treturn\n\t}\n\tif err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error executing register read\"))\n\t\treturn\n\t}\n\n\tvar register object.LWWRegister\n\tif err := register.Deserialize(obj); err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error deserializing response object\"))\n\t\treturn\n\t}\n\n\tw.Header().Set(LWWTimestampKey, register.Timestamp)\n\tw.Write(register.Value)\n}\n\nfunc (s *PublicServer) handleHyperLogLogPost(w http.ResponseWriter, r *http.Request) {\n\tsetRoute(r.Context(), \"POST /hyperloglog\")\n\n\ttoken, err := parseToken(r)\n\tif err != nil {\n\t\terrors.Encode(w, err)\n\t\treturn\n\t}\n\n\tvar (\n\t\tid = mux.Vars(r)[\"id\"]\n\t\tmode = parseConsistencyMode(r.URL.Query())\n\t)\n\tif id == \"\" {\n\t\terrors.Encode(w, ErrNoID)\n\t\treturn\n\t}\n\n\tpStr := r.URL.Query().Get(\"p\")\n\tif pStr == \"\" {\n\t\tpStr = \"16\"\n\t}\n\n\tp, err := strconv.ParseInt(pStr, 10, 8)\n\tif err != nil {\n\t\terrors.Encode(w, errors.WrapCode(http.StatusBadRequest, err, \"error parsing precision p-value\"))\n\t\treturn\n\t}\n\n\titem, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, MaxItemSizeBytes))\n\tif err != nil {\n\t\terrors.Encode(w, errors.WrapCode(http.StatusBadRequest, err, \"error reading request body\"))\n\t\treturn\n\t}\n\n\t_, err = s.auth.ExecMode(r.Context(), token, id, replica.HyperLogLogAdd{P: uint8(p), Item: item}, mode)\n\tif err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error executing HyperLogLog add\"))\n\t\treturn\n\t}\n\n\trespondPublicSuccessf(w, \"Add OK, %dB\\n\", len(item))\n}\n\nfunc (s *PublicServer) handleHyperLogLogGet(w http.ResponseWriter, r *http.Request) {\n\tsetRoute(r.Context(), \"GET /hyperloglog\")\n\n\ttoken, err := parseToken(r)\n\tif err != nil {\n\t\terrors.Encode(w, err)\n\t\treturn\n\t}\n\n\tvar (\n\t\tid = mux.Vars(r)[\"id\"]\n\t\tmode = parseConsistencyMode(r.URL.Query())\n\t)\n\tif id == \"\" {\n\t\terrors.Encode(w, ErrNoID)\n\t\treturn\n\t}\n\n\tobj, err := s.auth.ExecMode(r.Context(), token, id, replica.HyperLogLogRead{}, mode)\n\tif err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error executing HyperLogLog read\"))\n\t\treturn\n\t}\n\n\tvar hll object.HyperLogLog\n\tif err := hll.Deserialize(obj); err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error deserializing response object\"))\n\t\treturn\n\t}\n\n\tfmt.Fprintf(w, \"%d\", hll.Count())\n}\n\nfunc (s *PublicServer) handleBloomPost(w http.ResponseWriter, r *http.Request) {\n\tsetRoute(r.Context(), \"POST /bloom\")\n\n\ttoken, err := parseToken(r)\n\tif err != nil {\n\t\terrors.Encode(w, err)\n\t\treturn\n\t}\n\n\tvar (\n\t\tvars = mux.Vars(r)\n\t\tid = vars[\"id\"]\n\t\tmode = parseConsistencyMode(r.URL.Query())\n\t)\n\tif id == \"\" {\n\t\terrors.Encode(w, ErrNoID)\n\t\treturn\n\t}\n\n\tcapacityStr := vars[\"capacity\"]\n\tif capacityStr == \"\" {\n\t\terrors.Encode(w, errors.New(\"capacity parameter is required (internal routing error)\"))\n\t\treturn\n\t}\n\n\tcapacity, err := strconv.ParseInt(capacityStr, 10, 64)\n\tif err != nil {\n\t\terrors.Encode(w, errors.WrapfCode(http.StatusBadRequest, err, \"invalid capacity (%s)\", capacityStr))\n\t\treturn\n\t}\n\tif capacity <= 0 {\n\t\terrors.Encode(w, errors.NewCode(http.StatusBadRequest, \"capacity must be greater than zero\"))\n\t\treturn\n\t}\n\n\tfprStr := vars[\"fpr\"]\n\tif fprStr == \"\" {\n\t\terrors.Encode(w, errors.New(\"false positive rate is required (internal routing error)\"))\n\t\treturn\n\t}\n\n\tfpr, err := strconv.ParseFloat(fprStr, 64)\n\tif err != nil {\n\t\terrors.Encode(w, errors.WrapfCode(http.StatusBadRequest, err, \"invalid false positive rate (%s)\", fprStr))\n\t\treturn\n\t}\n\tif fpr < 0.001 || fpr > 0.5 {\n\t\terrors.Encode(w, errors.NewCode(http.StatusBadRequest, \"false positive rate must be between 0.001 and 0.5\"))\n\t\treturn\n\t}\n\n\titem, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, MaxItemSizeBytes))\n\tif err != nil {\n\t\terrors.Encode(w, errors.WrapCode(http.StatusBadRequest, err, \"error reading request body\"))\n\t\treturn\n\t}\n\n\t_, err = s.auth.ExecMode(r.Context(), token, id, replica.BloomFilterInsert{Capacity: int(capacity), FalsePositiveRate: fpr, Item: item}, mode)\n\tif err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error executing Bloom filter insert\"))\n\t\treturn\n\t}\n\n\trespondPublicSuccessf(w, \"Insert OK, %dB\\n\", len(item))\n}\n\nfunc (s *PublicServer) handleBloomGet(w http.ResponseWriter, r *http.Request) {\n\tsetRoute(r.Context(), \"GET /bloom\")\n\n\ttoken, err := parseToken(r)\n\tif err != nil {\n\t\terrors.Encode(w, err)\n\t\treturn\n\t}\n\n\tvar (\n\t\tid = mux.Vars(r)[\"id\"]\n\t\tmode = parseConsistencyMode(r.URL.Query())\n\t)\n\tif id == \"\" {\n\t\terrors.Encode(w, ErrNoID)\n\t\treturn\n\t}\n\n\titem, err := ioutil.ReadAll(http.MaxBytesReader(w, r.Body, MaxItemSizeBytes))\n\tif err != nil {\n\t\terrors.Encode(w, errors.WrapCode(http.StatusBadRequest, err, \"error reading request body\"))\n\t\treturn\n\t}\n\n\tobj, err := s.auth.ExecMode(r.Context(), token, id, replica.BloomFilterRead{}, mode)\n\tif err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error executing Bloom filter read\"))\n\t\treturn\n\t}\n\n\tvar f object.BloomFilter\n\tif err := f.Deserialize(obj); err != nil {\n\t\terrors.Encode(w, errors.Wrap(err, \"error deserializing response object\"))\n\t\treturn\n\t}\n\n\tfmt.Fprintf(w, \"%v\", f.Lookup(item))\n}\n\nfunc encodePublicError(w http.ResponseWriter, err errors.Error) {\n\tw.WriteHeader(err.StatusCode)\n\tfmt.Fprintln(w, err.Err)\n}\n"}} | |
[Trace - 2:20:55 PM] Sending request 'textDocument/documentLink - (278)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"}} | |
[Trace - 2:20:55 PM] Sending request 'textDocument/codeAction - (279)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:20:55 PM] Received response 'textDocument/documentLink - (278)' in 579ms. | |
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":8}},"target":"https://godoc.org/bytes"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":10}},"target":"https://godoc.org/context"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":18}},"target":"https://godoc.org/encoding/base64"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":16}},"target":"https://godoc.org/encoding/json"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":6}},"target":"https://godoc.org/fmt"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":12}},"target":"https://godoc.org/io/ioutil"},{"range":{"start":{"line":9,"character":1},"end":{"line":9,"character":7}},"target":"https://godoc.org/mime"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":17}},"target":"https://godoc.org/mime/multipart"},{"range":{"start":{"line":11,"character":1},"end":{"line":11,"character":11}},"target":"https://godoc.org/net/http"},{"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":10}},"target":"https://godoc.org/strconv"},{"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":10}},"target":"https://godoc.org/strings"},{"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":7}},"target":"https://godoc.org/time"},{"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/auth"},{"range":{"start":{"line":17,"character":1},"end":{"line":17,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/errors"},{"range":{"start":{"line":18,"character":1},"end":{"line":18,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/object"},{"range":{"start":{"line":19,"character":1},"end":{"line":19,"character":39}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/replica"},{"range":{"start":{"line":20,"character":1},"end":{"line":20,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/ring"},{"range":{"start":{"line":21,"character":1},"end":{"line":21,"character":25}},"target":"https://godoc.org/github.com/gorilla/mux"}] | |
[Trace - 2:20:55 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","diagnostics":[{"range":{"start":{"line":519,"character":1},"end":{"line":519,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":521,"character":15},"end":{"line":521,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":529,"character":9},"end":{"line":529,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":532,"character":19},"end":{"line":532,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":453,"character":1},"end":{"line":453,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":455,"character":15},"end":{"line":455,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":464,"character":9},"end":{"line":464,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":467,"character":19},"end":{"line":467,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":515,"character":1},"end":{"line":515,"character":22}},"severity":1,"source":"LSP","message":"undeclared name: respondPublicSuccessf"},{"range":{"start":{"line":420,"character":1},"end":{"line":420,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":422,"character":15},"end":{"line":422,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":430,"character":9},"end":{"line":430,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":433,"character":19},"end":{"line":433,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":376,"character":1},"end":{"line":376,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":378,"character":15},"end":{"line":378,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":386,"character":9},"end":{"line":386,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":389,"character":19},"end":{"line":389,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":416,"character":1},"end":{"line":416,"character":22}},"severity":1,"source":"LSP","message":"undeclared name: respondPublicSuccessf"},{"range":{"start":{"line":338,"character":1},"end":{"line":338,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":340,"character":15},"end":{"line":340,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":348,"character":9},"end":{"line":348,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":351,"character":19},"end":{"line":351,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":298,"character":1},"end":{"line":298,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":300,"character":15},"end":{"line":300,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":308,"character":9},"end":{"line":308,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":311,"character":19},"end":{"line":311,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":334,"character":1},"end":{"line":334,"character":22}},"severity":1,"source":"LSP","message":"undeclared name: respondPublicSuccessf"},{"range":{"start":{"line":211,"character":1},"end":{"line":211,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":213,"character":15},"end":{"line":213,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":221,"character":9},"end":{"line":221,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":224,"character":19},"end":{"line":224,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":165,"character":1},"end":{"line":165,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":167,"character":15},"end":{"line":167,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":175,"character":9},"end":{"line":175,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":178,"character":19},"end":{"line":178,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":207,"character":1},"end":{"line":207,"character":22}},"severity":1,"source":"LSP","message":"undeclared name: respondPublicSuccessf"},{"range":{"start":{"line":88,"character":1},"end":{"line":88,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":90,"character":15},"end":{"line":90,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":99,"character":9},"end":{"line":99,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":102,"character":19},"end":{"line":102,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":161,"character":1},"end":{"line":161,"character":22}},"severity":1,"source":"LSP","message":"undeclared name: respondPublicSuccessf"}]} | |
[Trace - 2:20:55 PM] Received response 'textDocument/codeAction - (279)' in 586ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:20:55 PM] Sending request 'textDocument/documentSymbol - (280)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"}} | |
[Trace - 2:20:55 PM] Sending request 'textDocument/codeAction - (281)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":195,"character":35},"end":{"line":195,"character":35}},"context":{"diagnostics":[]}} | |
[Trace - 2:20:55 PM] Received response 'textDocument/documentSymbol - (280)' in 587ms. | |
Params: [{"name":"LimitRemainingHeaderKey","detail":"untyped string","kind":14,"range":{"start":{"line":24,"character":0},"end":{"line":46,"character":1}},"selectionRange":{"start":{"line":27,"character":1},"end":{"line":27,"character":24}}},{"name":"CausalContextHeaderKey","detail":"untyped string","kind":14,"range":{"start":{"line":24,"character":0},"end":{"line":46,"character":1}},"selectionRange":{"start":{"line":32,"character":1},"end":{"line":32,"character":23}}},{"name":"LWWTimestampKey","detail":"untyped string","kind":14,"range":{"start":{"line":24,"character":0},"end":{"line":46,"character":1}},"selectionRange":{"start":{"line":36,"character":1},"end":{"line":36,"character":16}}},{"name":"MaxObjectSizeBytes","detail":"untyped int","kind":14,"range":{"start":{"line":24,"character":0},"end":{"line":46,"character":1}},"selectionRange":{"start":{"line":40,"character":1},"end":{"line":40,"character":19}}},{"name":"MaxItemSizeBytes","detail":"untyped int","kind":14,"range":{"start":{"line":24,"character":0},"end":{"line":46,"character":1}},"selectionRange":{"start":{"line":45,"character":1},"end":{"line":45,"character":17}}},{"name":"Auth","detail":"interface{...}","kind":11,"range":{"start":{"line":50,"character":5},"end":{"line":52,"character":1}},"selectionRange":{"start":{"line":50,"character":5},"end":{"line":50,"character":9}},"children":[{"name":"ExecMode","kind":6,"range":{"start":{"line":51,"character":1},"end":{"line":51,"character":111}},"selectionRange":{"start":{"line":51,"character":1},"end":{"line":51,"character":9}}}]},{"name":"_","detail":"Auth","kind":13,"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":30}},"selectionRange":{"start":{"line":55,"character":4},"end":{"line":55,"character":5}}},{"name":"PublicServer","detail":"struct{...}","kind":23,"range":{"start":{"line":64,"character":5},"end":{"line":67,"character":1}},"selectionRange":{"start":{"line":64,"character":5},"end":{"line":64,"character":17}},"children":[{"name":"auth","detail":"interface{...}","kind":8,"range":{"start":{"line":65,"character":1},"end":{"line":65,"character":10}},"selectionRange":{"start":{"line":65,"character":1},"end":{"line":65,"character":5}}},{"name":"Handler","detail":"interface{...}","kind":8,"range":{"start":{"line":66,"character":1},"end":{"line":66,"character":13}},"selectionRange":{"start":{"line":66,"character":1},"end":{"line":66,"character":13}}},{"name":"handleBloomPost","detail":"(w http.ResponseWriter, r *http.Request)","kind":6,"range":{"start":{"line":452,"character":0},"end":{"line":516,"character":1}},"selectionRange":{"start":{"line":452,"character":23},"end":{"line":452,"character":38}}},{"name":"handleSingleGet","detail":"(w http.ResponseWriter, r *http.Request)","kind":6,"range":{"start":{"line":337,"character":0},"end":{"line":373,"character":1}},"selectionRange":{"start":{"line":337,"character":23},"end":{"line":337,"character":38}}},{"name":"handleHyperLogLogPost","detail":"(w http.ResponseWriter, r *http.Request)","kind":6,"range":{"start":{"line":375,"character":0},"end":{"line":417,"character":1}},"selectionRange":{"start":{"line":375,"character":23},"end":{"line":375,"character":44}}},{"name":"handleMultiGet","detail":"(w http.ResponseWriter, r *http.Request)","kind":6,"range":{"start":{"line":210,"character":0},"end":{"line":295,"character":1}},"selectionRange":{"start":{"line":210,"character":23},"end":{"line":210,"character":37}}},{"name":"handleSinglePut","detail":"(w http.ResponseWriter, r *http.Request)","kind":6,"range":{"start":{"line":297,"character":0},"end":{"line":335,"character":1}},"selectionRange":{"start":{"line":297,"character":23},"end":{"line":297,"character":38}}},{"name":"handleHyperLogLogGet","detail":"(w http.ResponseWriter, r *http.Request)","kind":6,"range":{"start":{"line":419,"character":0},"end":{"line":450,"character":1}},"selectionRange":{"start":{"line":419,"character":23},"end":{"line":419,"character":43}}},{"name":"handleBloomGet","detail":"(w http.ResponseWriter, r *http.Request)","kind":6,"range":{"start":{"line":518,"character":0},"end":{"line":555,"character":1}},"selectionRange":{"start":{"line":518,"character":23},"end":{"line":518,"character":37}}},{"name":"handleLimit","detail":"(w http.ResponseWriter, r *http.Request)","kind":6,"range":{"start":{"line":87,"character":0},"end":{"line":162,"character":1}},"selectionRange":{"start":{"line":87,"character":23},"end":{"line":87,"character":34}}},{"name":"handleMultiPut","detail":"(w http.ResponseWriter, r *http.Request)","kind":6,"range":{"start":{"line":164,"character":0},"end":{"line":208,"character":1}},"selectionRange":{"start":{"line":164,"character":23},"end":{"line":164,"character":37}}}]},{"name":"NewPublicServer","detail":"(a Auth)","kind":12,"range":{"start":{"line":70,"character":0},"end":{"line":85,"character":1}},"selectionRange":{"start":{"line":70,"character":5},"end":{"line":70,"character":20}}},{"name":"encodePublicError","detail":"(w http.ResponseWriter, err errors.Error)","kind":12,"range":{"start":{"line":557,"character":0},"end":{"line":560,"character":1}},"selectionRange":{"start":{"line":557,"character":5},"end":{"line":557,"character":22}}}] | |
[Trace - 2:20:55 PM] Sending notification '$/cancelRequest'. | |
Params: {"id":279} | |
[Trace - 2:20:55 PM] Received response 'textDocument/codeAction - (281)' in 320ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:20:56 PM] Sending request 'textDocument/codeAction - (282)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":195,"character":35},"end":{"line":195,"character":35}},"context":{"diagnostics":[]}} | |
[Trace - 2:20:56 PM] Received response 'textDocument/codeAction - (282)' in 12ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:20:58 PM] Sending request 'textDocument/hover - (283)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":207,"character":9}} | |
[Error - 2:20:58 PM] send textDocument/hover#283 no object for ident respondPublicSuccessf | |
[Error - 2:20:58 PM] Request textDocument/hover failed. | |
Message: no object for ident respondPublicSuccessf | |
Code: 0 | |
[Trace - 2:20:58 PM] Sending request 'textDocument/codeAction - (284)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":207,"character":1},"end":{"line":207,"character":22}},"context":{"diagnostics":[{"range":{"start":{"line":207,"character":1},"end":{"line":207,"character":22}},"message":"undeclared name: respondPublicSuccessf","severity":1,"source":"LSP"}]}} | |
[Trace - 2:20:58 PM] Received response 'textDocument/codeAction - (284)' in 10ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:21:11 PM] Sending request 'textDocument/documentLink - (285)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:21:11 PM] Received response 'textDocument/documentLink - (285)' in 0ms. | |
Params: {} | |
[Trace - 2:21:11 PM] Sending request 'textDocument/codeAction - (286)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:21:11 PM] Received response 'textDocument/codeAction - (286)' in 8ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"import \"testing\"\n"},{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"\n"},{"range":{"start":{"line":3,"character":0},"end":{"line":4,"character":0}},"newText":""},{"range":{"start":{"line":4,"character":0},"end":{"line":5,"character":0}},"newText":""},{"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":0}},"newText":"\n"},{"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 2:21:13 PM] Sending request 'textDocument/hover - (287)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":41}} | |
[Error - 2:21:13 PM] send textDocument/hover#287 no object for ident testing | |
[Error - 2:21:13 PM] Request textDocument/hover failed. | |
Message: no object for ident testing | |
Code: 0 | |
[Trace - 2:21:13 PM] Sending request 'textDocument/codeAction - (288)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":46}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":46}},"message":"undeclared name: testing","severity":1,"source":"LSP"}]}} | |
[Trace - 2:21:13 PM] Received response 'textDocument/codeAction - (288)' in 8ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"import \"testing\"\n"},{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"\n"},{"range":{"start":{"line":3,"character":0},"end":{"line":4,"character":0}},"newText":""},{"range":{"start":{"line":4,"character":0},"end":{"line":5,"character":0}},"newText":""},{"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":0}},"newText":"\n"},{"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":0}},"newText":"}\n"}]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"import \"testing\"\n"},{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"\n"},{"range":{"start":{"line":3,"character":0},"end":{"line":4,"character":0}},"newText":""},{"range":{"start":{"line":4,"character":0},"end":{"line":5,"character":0}},"newText":""},{"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":0}},"newText":"\n"},{"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 2:21:14 PM] Sending request 'textDocument/definition - (289)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":2,"character":41}} | |
[Error - 2:21:14 PM] send textDocument/definition#289 no object for ident testing | |
[Error - 2:21:14 PM] Request textDocument/definition failed. | |
Message: no object for ident testing | |
Code: 0 | |
[Trace - 2:21:14 PM] Sending request 'textDocument/codeAction - (290)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":0,"character":0},"end":{"line":4,"character":1}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":37},"end":{"line":2,"character":46}},"message":"undeclared name: testing","severity":1,"source":"LSP"}]}} | |
[Trace - 2:21:14 PM] Received response 'textDocument/codeAction - (290)' in 7ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"import \"testing\"\n"},{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"\n"},{"range":{"start":{"line":3,"character":0},"end":{"line":4,"character":0}},"newText":""},{"range":{"start":{"line":4,"character":0},"end":{"line":5,"character":0}},"newText":""},{"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":0}},"newText":"\n"},{"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":0}},"newText":"}\n"}]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"import \"testing\"\n"},{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"newText":"\n"},{"range":{"start":{"line":3,"character":0},"end":{"line":4,"character":0}},"newText":""},{"range":{"start":{"line":4,"character":0},"end":{"line":5,"character":0}},"newText":""},{"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":0}},"newText":"\n"},{"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 2:21:14 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":111},"contentChanges":[{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":1}},"rangeLength":0,"text":"}\n"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":1}},"rangeLength":0,"text":"\n"},{"range":{"start":{"line":4,"character":0},"end":{"line":4,"character":1}},"rangeLength":1,"text":""},{"range":{"start":{"line":3,"character":0},"end":{"line":4,"character":0}},"rangeLength":2,"text":""},{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"rangeLength":0,"text":"\n"},{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":0}},"rangeLength":0,"text":"import \"testing\"\n"}]} | |
[Trace - 2:21:14 PM] Sending request 'textDocument/formatting - (291)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"options":{"tabSize":4,"insertSpaces":false}} | |
[Trace - 2:21:14 PM] Received response 'textDocument/formatting - (291)' in 400ms. | |
Params: [] | |
[Trace - 2:21:14 PM] Sending request 'textDocument/documentSymbol - (292)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:21:14 PM] Received response 'textDocument/documentSymbol - (292)' in 52ms. | |
Params: [{"name":"TestContract_api_RateLimiter","detail":"(t *testing.T)","kind":12,"range":{"start":{"line":4,"character":0},"end":{"line":6,"character":1}},"selectionRange":{"start":{"line":4,"character":5},"end":{"line":4,"character":33}}}] | |
[Trace - 2:21:14 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:21:14 PM] Sending notification 'textDocument/didSave'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","version":111}} | |
[Trace - 2:21:15 PM] Sending request 'textDocument/documentLink - (293)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:21:15 PM] Received response 'textDocument/documentLink - (293)' in 0ms. | |
Params: [{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":16}},"target":"https://godoc.org/testing"}] | |
[Trace - 2:21:15 PM] Sending request 'textDocument/documentLink - (294)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"}} | |
[Trace - 2:21:15 PM] Received response 'textDocument/documentLink - (294)' in 0ms. | |
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":8}},"target":"https://godoc.org/bytes"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":10}},"target":"https://godoc.org/context"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":18}},"target":"https://godoc.org/encoding/base64"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":16}},"target":"https://godoc.org/encoding/json"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":6}},"target":"https://godoc.org/fmt"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":12}},"target":"https://godoc.org/io/ioutil"},{"range":{"start":{"line":9,"character":1},"end":{"line":9,"character":7}},"target":"https://godoc.org/mime"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":17}},"target":"https://godoc.org/mime/multipart"},{"range":{"start":{"line":11,"character":1},"end":{"line":11,"character":11}},"target":"https://godoc.org/net/http"},{"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":10}},"target":"https://godoc.org/strconv"},{"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":10}},"target":"https://godoc.org/strings"},{"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":7}},"target":"https://godoc.org/time"},{"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/auth"},{"range":{"start":{"line":17,"character":1},"end":{"line":17,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/errors"},{"range":{"start":{"line":18,"character":1},"end":{"line":18,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/object"},{"range":{"start":{"line":19,"character":1},"end":{"line":19,"character":39}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/replica"},{"range":{"start":{"line":20,"character":1},"end":{"line":20,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/ring"},{"range":{"start":{"line":21,"character":1},"end":{"line":21,"character":25}},"target":"https://godoc.org/github.com/gorilla/mux"}] | |
[Trace - 2:21:15 PM] Sending request 'textDocument/codeAction - (295)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:21:15 PM] Received response 'textDocument/codeAction - (295)' in 11ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:21:16 PM] Sending request 'textDocument/codeAction - (296)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":195,"character":35},"end":{"line":195,"character":35}},"context":{"diagnostics":[]}} | |
[Trace - 2:21:16 PM] Received response 'textDocument/codeAction - (296)' in 12ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:21:54 PM] Sending request 'textDocument/hover - (297)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":193,"character":2}} | |
[Error - 2:21:54 PM] send textDocument/hover#297 no identifier found | |
[Error - 2:21:54 PM] Request textDocument/hover failed. | |
Message: no identifier found | |
Code: 0 | |
[Trace - 2:25:13 PM] Sending request 'textDocument/hover - (298)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":182,"character":53}} | |
[Trace - 2:25:13 PM] Received response 'textDocument/hover - (298)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *http.Request\n```"},"range":{"start":{"line":182,"character":53},"end":{"line":182,"character":54}}} | |
[Trace - 2:25:13 PM] Sending request 'textDocument/documentHighlight - (299)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":182,"character":54}} | |
[Trace - 2:25:13 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"no highlight for /Users/peter/mod/REDACTED/pkg/REDACTED/public.go:183:55: /Users/peter/mod/REDACTED/pkg/REDACTED/public.go:183:55 is not an identifier"} | |
[Trace - 2:25:13 PM] Received response 'textDocument/documentHighlight - (299)' in 0ms. | |
Params: [] | |
[Error - 2:25:13 PM] no highlight for /Users/peter/mod/REDACTED/pkg/REDACTED/public.go:183:55: /Users/peter/mod/REDACTED/pkg/REDACTED/public.go:183:55 is not an identifier | |
[Trace - 2:25:13 PM] Sending request 'textDocument/codeAction - (300)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":182,"character":54},"end":{"line":182,"character":54}},"context":{"diagnostics":[]}} | |
[Trace - 2:25:13 PM] Received response 'textDocument/codeAction - (300)' in 9ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:25:16 PM] Sending request 'textDocument/definition - (301)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":182,"character":54}} | |
[Trace - 2:25:16 PM] Received response 'textDocument/definition - (301)' in 107ms. | |
Params: [{"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/request.go","range":{"start":{"line":181,"character":1},"end":{"line":181,"character":5}}}] | |
[Trace - 2:25:16 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/request.go","languageId":"go","version":1,"text":"// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// HTTP Request reading and parsing.\n\npackage http\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"context\"\n\t\"crypto/tls\"\n\t\"encoding/base64\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"mime\"\n\t\"mime/multipart\"\n\t\"net\"\n\t\"net/http/httptrace\"\n\t\"net/textproto\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"internal/x/net/idna\"\n)\n\nconst (\n\tdefaultMaxMemory = 32 << 20 // 32 MB\n)\n\n// ErrMissingFile is returned by FormFile when the provided file field name\n// is either not present in the request or not a file field.\nvar ErrMissingFile = errors.New(\"http: no such file\")\n\n// ProtocolError represents an HTTP protocol error.\n//\n// Deprecated: Not all errors in the http package related to protocol errors\n// are of type ProtocolError.\ntype ProtocolError struct {\n\tErrorString string\n}\n\nfunc (pe *ProtocolError) Error() string { return pe.ErrorString }\n\nvar (\n\t// ErrNotSupported is returned by the Push method of Pusher\n\t// implementations to indicate that HTTP/2 Push support is not\n\t// available.\n\tErrNotSupported = &ProtocolError{\"feature not supported\"}\n\n\t// Deprecated: ErrUnexpectedTrailer is no longer returned by\n\t// anything in the net/http package. Callers should not\n\t// compare errors against this variable.\n\tErrUnexpectedTrailer = &ProtocolError{\"trailer header without chunked transfer encoding\"}\n\n\t// ErrMissingBoundary is returned by Request.MultipartReader when the\n\t// request's Content-Type does not include a \"boundary\" parameter.\n\tErrMissingBoundary = &ProtocolError{\"no multipart boundary param in Content-Type\"}\n\n\t// ErrNotMultipart is returned by Request.MultipartReader when the\n\t// request's Content-Type is not multipart/form-data.\n\tErrNotMultipart = &ProtocolError{\"request Content-Type isn't multipart/form-data\"}\n\n\t// Deprecated: ErrHeaderTooLong is no longer returned by\n\t// anything in the net/http package. Callers should not\n\t// compare errors against this variable.\n\tErrHeaderTooLong = &ProtocolError{\"header too long\"}\n\n\t// Deprecated: ErrShortBody is no longer returned by\n\t// anything in the net/http package. Callers should not\n\t// compare errors against this variable.\n\tErrShortBody = &ProtocolError{\"entity body too short\"}\n\n\t// Deprecated: ErrMissingContentLength is no longer returned by\n\t// anything in the net/http package. Callers should not\n\t// compare errors against this variable.\n\tErrMissingContentLength = &ProtocolError{\"missing ContentLength in HEAD response\"}\n)\n\ntype badStringError struct {\n\twhat string\n\tstr string\n}\n\nfunc (e *badStringError) Error() string { return fmt.Sprintf(\"%s %q\", e.what, e.str) }\n\n// Headers that Request.Write handles itself and should be skipped.\nvar reqWriteExcludeHeader = map[string]bool{\n\t\"Host\": true, // not in Header map anyway\n\t\"User-Agent\": true,\n\t\"Content-Length\": true,\n\t\"Transfer-Encoding\": true,\n\t\"Trailer\": true,\n}\n\n// A Request represents an HTTP request received by a server\n// or to be sent by a client.\n//\n// The field semantics differ slightly between client and server\n// usage. In addition to the notes on the fields below, see the\n// documentation for Request.Write and RoundTripper.\ntype Request struct {\n\t// Method specifies the HTTP method (GET, POST, PUT, etc.).\n\t// For client requests, an empty string means GET.\n\t//\n\t// Go's HTTP client does not support sending a request with\n\t// the CONNECT method. See the documentation on Transport for\n\t// details.\n\tMethod string\n\n\t// URL specifies either the URI being requested (for server\n\t// requests) or the URL to access (for client requests).\n\t//\n\t// For server requests, the URL is parsed from the URI\n\t// supplied on the Request-Line as stored in RequestURI. For\n\t// most requests, fields other than Path and RawQuery will be\n\t// empty. (See RFC 7230, Section 5.3)\n\t//\n\t// For client requests, the URL's Host specifies the server to\n\t// connect to, while the Request's Host field optionally\n\t// specifies the Host header value to send in the HTTP\n\t// request.\n\tURL *url.URL\n\n\t// The protocol version for incoming server requests.\n\t//\n\t// For client requests, these fields are ignored. The HTTP\n\t// client code always uses either HTTP/1.1 or HTTP/2.\n\t// See the docs on Transport for details.\n\tProto string // \"HTTP/1.0\"\n\tProtoMajor int // 1\n\tProtoMinor int // 0\n\n\t// Header contains the request header fields either received\n\t// by the server or to be sent by the client.\n\t//\n\t// If a server received a request with header lines,\n\t//\n\t//\tHost: example.com\n\t//\taccept-encoding: gzip, deflate\n\t//\tAccept-Language: en-us\n\t//\tfOO: Bar\n\t//\tfoo: two\n\t//\n\t// then\n\t//\n\t//\tHeader = map[string][]string{\n\t//\t\t\"Accept-Encoding\": {\"gzip, deflate\"},\n\t//\t\t\"Accept-Language\": {\"en-us\"},\n\t//\t\t\"Foo\": {\"Bar\", \"two\"},\n\t//\t}\n\t//\n\t// For incoming requests, the Host header is promoted to the\n\t// Request.Host field and removed from the Header map.\n\t//\n\t// HTTP defines that header names are case-insensitive. The\n\t// request parser implements this by using CanonicalHeaderKey,\n\t// making the first character and any characters following a\n\t// hyphen uppercase and the rest lowercase.\n\t//\n\t// For client requests, certain headers such as Content-Length\n\t// and Connection are automatically written when needed and\n\t// values in Header may be ignored. See the documentation\n\t// for the Request.Write method.\n\tHeader Header\n\n\t// Body is the request's body.\n\t//\n\t// For client requests, a nil body means the request has no\n\t// body, such as a GET request. The HTTP Client's Transport\n\t// is responsible for calling the Close method.\n\t//\n\t// For server requests, the Request Body is always non-nil\n\t// but will return EOF immediately when no body is present.\n\t// The Server will close the request body. The ServeHTTP\n\t// Handler does not need to.\n\tBody io.ReadCloser\n\n\t// GetBody defines an optional func to return a new copy of\n\t// Body. It is used for client requests when a redirect requires\n\t// reading the body more than once. Use of GetBody still\n\t// requires setting Body.\n\t//\n\t// For server requests, it is unused.\n\tGetBody func() (io.ReadCloser, error)\n\n\t// ContentLength records the length of the associated content.\n\t// The value -1 indicates that the length is unknown.\n\t// Values >= 0 indicate that the given number of bytes may\n\t// be read from Body.\n\t//\n\t// For client requests, a value of 0 with a non-nil Body is\n\t// also treated as unknown.\n\tContentLength int64\n\n\t// TransferEncoding lists the transfer encodings from outermost to\n\t// innermost. An empty list denotes the \"identity\" encoding.\n\t// TransferEncoding can usually be ignored; chunked encoding is\n\t// automatically added and removed as necessary when sending and\n\t// receiving requests.\n\tTransferEncoding []string\n\n\t// Close indicates whether to close the connection after\n\t// replying to this request (for servers) or after sending this\n\t// request and reading its response (for clients).\n\t//\n\t// For server requests, the HTTP server handles this automatically\n\t// and this field is not needed by Handlers.\n\t//\n\t// For client requests, setting this field prevents re-use of\n\t// TCP connections between requests to the same hosts, as if\n\t// Transport.DisableKeepAlives were set.\n\tClose bool\n\n\t// For server requests, Host specifies the host on which the URL\n\t// is sought. Per RFC 7230, section 5.4, this is either the value\n\t// of the \"Host\" header or the host name given in the URL itself.\n\t// It may be of the form \"host:port\". For international domain\n\t// names, Host may be in Punycode or Unicode form. Use\n\t// golang.org/x/net/idna to convert it to either format if\n\t// needed.\n\t// To prevent DNS rebinding attacks, server Handlers should\n\t// validate that the Host header has a value for which the\n\t// Handler considers itself authoritative. The included\n\t// ServeMux supports patterns registered to particular host\n\t// names and thus protects its registered Handlers.\n\t//\n\t// For client requests, Host optionally overrides the Host\n\t// header to send. If empty, the Request.Write method uses\n\t// the value of URL.Host. Host may contain an international\n\t// domain name.\n\tHost string\n\n\t// Form contains the parsed form data, including both the URL\n\t// field's query parameters and the POST or PUT form data.\n\t// This field is only available after ParseForm is called.\n\t// The HTTP client ignores Form and uses Body instead.\n\tForm url.Values\n\n\t// PostForm contains the parsed form data from POST, PATCH,\n\t// or PUT body parameters.\n\t//\n\t// This field is only available after ParseForm is called.\n\t// The HTTP client ignores PostForm and uses Body instead.\n\tPostForm url.Values\n\n\t// MultipartForm is the parsed multipart form, including file uploads.\n\t// This field is only available after ParseMultipartForm is called.\n\t// The HTTP client ignores MultipartForm and uses Body instead.\n\tMultipartForm *multipart.Form\n\n\t// Trailer specifies additional headers that are sent after the request\n\t// body.\n\t//\n\t// For server requests, the Trailer map initially contains only the\n\t// trailer keys, with nil values. (The client declares which trailers it\n\t// will later send.) While the handler is reading from Body, it must\n\t// not reference Trailer. After reading from Body returns EOF, Trailer\n\t// can be read again and will contain non-nil values, if they were sent\n\t// by the client.\n\t//\n\t// For client requests, Trailer must be initialized to a map containing\n\t// the trailer keys to later send. The values may be nil or their final\n\t// values. The ContentLength must be 0 or -1, to send a chunked request.\n\t// After the HTTP request is sent the map values can be updated while\n\t// the request body is read. Once the body returns EOF, the caller must\n\t// not mutate Trailer.\n\t//\n\t// Few HTTP clients, servers, or proxies support HTTP trailers.\n\tTrailer Header\n\n\t// RemoteAddr allows HTTP servers and other software to record\n\t// the network address that sent the request, usually for\n\t// logging. This field is not filled in by ReadRequest and\n\t// has no defined format. The HTTP server in this package\n\t// sets RemoteAddr to an \"IP:port\" address before invoking a\n\t// handler.\n\t// This field is ignored by the HTTP client.\n\tRemoteAddr string\n\n\t// RequestURI is the unmodified request-target of the\n\t// Request-Line (RFC 7230, Section 3.1.1) as sent by the client\n\t// to a server. Usually the URL field should be used instead.\n\t// It is an error to set this field in an HTTP client request.\n\tRequestURI string\n\n\t// TLS allows HTTP servers and other software to record\n\t// information about the TLS connection on which the request\n\t// was received. This field is not filled in by ReadRequest.\n\t// The HTTP server in this package sets the field for\n\t// TLS-enabled connections before invoking a handler;\n\t// otherwise it leaves the field nil.\n\t// This field is ignored by the HTTP client.\n\tTLS *tls.ConnectionState\n\n\t// Cancel is an optional channel whose closure indicates that the client\n\t// request should be regarded as canceled. Not all implementations of\n\t// RoundTripper may support Cancel.\n\t//\n\t// For server requests, this field is not applicable.\n\t//\n\t// Deprecated: Use the Context and WithContext methods\n\t// instead. If a Request's Cancel field and context are both\n\t// set, it is undefined whether Cancel is respected.\n\tCancel <-chan struct{}\n\n\t// Response is the redirect response which caused this request\n\t// to be created. This field is only populated during client\n\t// redirects.\n\tResponse *Response\n\n\t// ctx is either the client or server context. It should only\n\t// be modified via copying the whole Request using WithContext.\n\t// It is unexported to prevent people from using Context wrong\n\t// and mutating the contexts held by callers of the same request.\n\tctx context.Context\n}\n\n// Context returns the request's context. To change the context, use\n// WithContext.\n//\n// The returned context is always non-nil; it defaults to the\n// background context.\n//\n// For outgoing client requests, the context controls cancelation.\n//\n// For incoming server requests, the context is canceled when the\n// client's connection closes, the request is canceled (with HTTP/2),\n// or when the ServeHTTP method returns.\nfunc (r *Request) Context() context.Context {\n\tif r.ctx != nil {\n\t\treturn r.ctx\n\t}\n\treturn context.Background()\n}\n\n// WithContext returns a shallow copy of r with its context changed\n// to ctx. The provided ctx must be non-nil.\n//\n// For outgoing client request, the context controls the entire\n// lifetime of a request and its response: obtaining a connection,\n// sending the request, and reading the response headers and body.\nfunc (r *Request) WithContext(ctx context.Context) *Request {\n\tif ctx == nil {\n\t\tpanic(\"nil context\")\n\t}\n\tr2 := new(Request)\n\t*r2 = *r\n\tr2.ctx = ctx\n\n\t// Deep copy the URL because it isn't\n\t// a map and the URL is mutable by users\n\t// of WithContext.\n\tif r.URL != nil {\n\t\tr2URL := new(url.URL)\n\t\t*r2URL = *r.URL\n\t\tr2.URL = r2URL\n\t}\n\n\treturn r2\n}\n\n// ProtoAtLeast reports whether the HTTP protocol used\n// in the request is at least major.minor.\nfunc (r *Request) ProtoAtLeast(major, minor int) bool {\n\treturn r.ProtoMajor > major ||\n\t\tr.ProtoMajor == major && r.ProtoMinor >= minor\n}\n\n// UserAgent returns the client's User-Agent, if sent in the request.\nfunc (r *Request) UserAgent() string {\n\treturn r.Header.Get(\"User-Agent\")\n}\n\n// Cookies parses and returns the HTTP cookies sent with the request.\nfunc (r *Request) Cookies() []*Cookie {\n\treturn readCookies(r.Header, \"\")\n}\n\n// ErrNoCookie is returned by Request's Cookie method when a cookie is not found.\nvar ErrNoCookie = errors.New(\"http: named cookie not present\")\n\n// Cookie returns the named cookie provided in the request or\n// ErrNoCookie if not found.\n// If multiple cookies match the given name, only one cookie will\n// be returned.\nfunc (r *Request) Cookie(name string) (*Cookie, error) {\n\tfor _, c := range readCookies(r.Header, name) {\n\t\treturn c, nil\n\t}\n\treturn nil, ErrNoCookie\n}\n\n// AddCookie adds a cookie to the request. Per RFC 6265 section 5.4,\n// AddCookie does not attach more than one Cookie header field. That\n// means all cookies, if any, are written into the same line,\n// separated by semicolon.\nfunc (r *Request) AddCookie(c *Cookie) {\n\ts := fmt.Sprintf(\"%s=%s\", sanitizeCookieName(c.Name), sanitizeCookieValue(c.Value))\n\tif c := r.Header.Get(\"Cookie\"); c != \"\" {\n\t\tr.Header.Set(\"Cookie\", c+\"; \"+s)\n\t} else {\n\t\tr.Header.Set(\"Cookie\", s)\n\t}\n}\n\n// Referer returns the referring URL, if sent in the request.\n//\n// Referer is misspelled as in the request itself, a mistake from the\n// earliest days of HTTP. This value can also be fetched from the\n// Header map as Header[\"Referer\"]; the benefit of making it available\n// as a method is that the compiler can diagnose programs that use the\n// alternate (correct English) spelling req.Referrer() but cannot\n// diagnose programs that use Header[\"Referrer\"].\nfunc (r *Request) Referer() string {\n\treturn r.Header.Get(\"Referer\")\n}\n\n// multipartByReader is a sentinel value.\n// Its presence in Request.MultipartForm indicates that parsing of the request\n// body has been handed off to a MultipartReader instead of ParseMultipartFrom.\nvar multipartByReader = &multipart.Form{\n\tValue: make(map[string][]string),\n\tFile: make(map[string][]*multipart.FileHeader),\n}\n\n// MultipartReader returns a MIME multipart reader if this is a\n// multipart/form-data or a multipart/mixed POST request, else returns nil and an error.\n// Use this function instead of ParseMultipartForm to\n// process the request body as a stream.\nfunc (r *Request) MultipartReader() (*multipart.Reader, error) {\n\tif r.MultipartForm == multipartByReader {\n\t\treturn nil, errors.New(\"http: MultipartReader called twice\")\n\t}\n\tif r.MultipartForm != nil {\n\t\treturn nil, errors.New(\"http: multipart handled by ParseMultipartForm\")\n\t}\n\tr.MultipartForm = multipartByReader\n\treturn r.multipartReader(true)\n}\n\nfunc (r *Request) multipartReader(allowMixed bool) (*multipart.Reader, error) {\n\tv := r.Header.Get(\"Content-Type\")\n\tif v == \"\" {\n\t\treturn nil, ErrNotMultipart\n\t}\n\td, params, err := mime.ParseMediaType(v)\n\tif err != nil || !(d == \"multipart/form-data\" || allowMixed && d == \"multipart/mixed\") {\n\t\treturn nil, ErrNotMultipart\n\t}\n\tboundary, ok := params[\"boundary\"]\n\tif !ok {\n\t\treturn nil, ErrMissingBoundary\n\t}\n\treturn multipart.NewReader(r.Body, boundary), nil\n}\n\n// isH2Upgrade reports whether r represents the http2 \"client preface\"\n// magic string.\nfunc (r *Request) isH2Upgrade() bool {\n\treturn r.Method == \"PRI\" && len(r.Header) == 0 && r.URL.Path == \"*\" && r.Proto == \"HTTP/2.0\"\n}\n\n// Return value if nonempty, def otherwise.\nfunc valueOrDefault(value, def string) string {\n\tif value != \"\" {\n\t\treturn value\n\t}\n\treturn def\n}\n\n// NOTE: This is not intended to reflect the actual Go version being used.\n// It was changed at the time of Go 1.1 release because the former User-Agent\n// had ended up on a blacklist for some intrusion detection systems.\n// See https://codereview.appspot.com/7532043.\nconst defaultUserAgent = \"Go-http-client/1.1\"\n\n// Write writes an HTTP/1.1 request, which is the header and body, in wire format.\n// This method consults the following fields of the request:\n//\tHost\n//\tURL\n//\tMethod (defaults to \"GET\")\n//\tHeader\n//\tContentLength\n//\tTransferEncoding\n//\tBody\n//\n// If Body is present, Content-Length is <= 0 and TransferEncoding\n// hasn't been set to \"identity\", Write adds \"Transfer-Encoding:\n// chunked\" to the header. Body is closed after it is sent.\nfunc (r *Request) Write(w io.Writer) error {\n\treturn r.write(w, false, nil, nil)\n}\n\n// WriteProxy is like Write but writes the request in the form\n// expected by an HTTP proxy. In particular, WriteProxy writes the\n// initial Request-URI line of the request with an absolute URI, per\n// section 5.3 of RFC 7230, including the scheme and host.\n// In either case, WriteProxy also writes a Host header, using\n// either r.Host or r.URL.Host.\nfunc (r *Request) WriteProxy(w io.Writer) error {\n\treturn r.write(w, true, nil, nil)\n}\n\n// errMissingHost is returned by Write when there is no Host or URL present in\n// the Request.\nvar errMissingHost = errors.New(\"http: Request.Write on Request with no Host or URL set\")\n\n// extraHeaders may be nil\n// waitForContinue may be nil\nfunc (r *Request) write(w io.Writer, usingProxy bool, extraHeaders Header, waitForContinue func() bool) (err error) {\n\ttrace := httptrace.ContextClientTrace(r.Context())\n\tif trace != nil && trace.WroteRequest != nil {\n\t\tdefer func() {\n\t\t\ttrace.WroteRequest(httptrace.WroteRequestInfo{\n\t\t\t\tErr: err,\n\t\t\t})\n\t\t}()\n\t}\n\n\t// Find the target host. Prefer the Host: header, but if that\n\t// is not given, use the host from the request URL.\n\t//\n\t// Clean the host, in case it arrives with unexpected stuff in it.\n\thost := cleanHost(r.Host)\n\tif host == \"\" {\n\t\tif r.URL == nil {\n\t\t\treturn errMissingHost\n\t\t}\n\t\thost = cleanHost(r.URL.Host)\n\t}\n\n\t// According to RFC 6874, an HTTP client, proxy, or other\n\t// intermediary must remove any IPv6 zone identifier attached\n\t// to an outgoing URI.\n\thost = removeZone(host)\n\n\truri := r.URL.RequestURI()\n\tif usingProxy && r.URL.Scheme != \"\" && r.URL.Opaque == \"\" {\n\t\truri = r.URL.Scheme + \"://\" + host + ruri\n\t} else if r.Method == \"CONNECT\" && r.URL.Path == \"\" {\n\t\t// CONNECT requests normally give just the host and port, not a full URL.\n\t\truri = host\n\t\tif r.URL.Opaque != \"\" {\n\t\t\truri = r.URL.Opaque\n\t\t}\n\t}\n\tif stringContainsCTLByte(ruri) {\n\t\treturn errors.New(\"net/http: can't write control character in Request.URL\")\n\t}\n\t// TODO: validate r.Method too? At least it's less likely to\n\t// come from an attacker (more likely to be a constant in\n\t// code).\n\n\t// Wrap the writer in a bufio Writer if it's not already buffered.\n\t// Don't always call NewWriter, as that forces a bytes.Buffer\n\t// and other small bufio Writers to have a minimum 4k buffer\n\t// size.\n\tvar bw *bufio.Writer\n\tif _, ok := w.(io.ByteWriter); !ok {\n\t\tbw = bufio.NewWriter(w)\n\t\tw = bw\n\t}\n\n\t_, err = fmt.Fprintf(w, \"%s %s HTTP/1.1\\r\\n\", valueOrDefault(r.Method, \"GET\"), ruri)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Header lines\n\t_, err = fmt.Fprintf(w, \"Host: %s\\r\\n\", host)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif trace != nil && trace.WroteHeaderField != nil {\n\t\ttrace.WroteHeaderField(\"Host\", []string{host})\n\t}\n\n\t// Use the defaultUserAgent unless the Header contains one, which\n\t// may be blank to not send the header.\n\tuserAgent := defaultUserAgent\n\tif r.Header.has(\"User-Agent\") {\n\t\tuserAgent = r.Header.Get(\"User-Agent\")\n\t}\n\tif userAgent != \"\" {\n\t\t_, err = fmt.Fprintf(w, \"User-Agent: %s\\r\\n\", userAgent)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif trace != nil && trace.WroteHeaderField != nil {\n\t\t\ttrace.WroteHeaderField(\"User-Agent\", []string{userAgent})\n\t\t}\n\t}\n\n\t// Process Body,ContentLength,Close,Trailer\n\ttw, err := newTransferWriter(r)\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = tw.writeHeader(w, trace)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\terr = r.Header.writeSubset(w, reqWriteExcludeHeader, trace)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif extraHeaders != nil {\n\t\terr = extraHeaders.write(w, trace)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t_, err = io.WriteString(w, \"\\r\\n\")\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif trace != nil && trace.WroteHeaders != nil {\n\t\ttrace.WroteHeaders()\n\t}\n\n\t// Flush and wait for 100-continue if expected.\n\tif waitForContinue != nil {\n\t\tif bw, ok := w.(*bufio.Writer); ok {\n\t\t\terr = bw.Flush()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif trace != nil && trace.Wait100Continue != nil {\n\t\t\ttrace.Wait100Continue()\n\t\t}\n\t\tif !waitForContinue() {\n\t\t\tr.closeBody()\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tif bw, ok := w.(*bufio.Writer); ok && tw.FlushHeaders {\n\t\tif err := bw.Flush(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Write body and trailer\n\terr = tw.writeBody(w)\n\tif err != nil {\n\t\tif tw.bodyReadError == err {\n\t\t\terr = requestBodyReadError{err}\n\t\t}\n\t\treturn err\n\t}\n\n\tif bw != nil {\n\t\treturn bw.Flush()\n\t}\n\treturn nil\n}\n\n// requestBodyReadError wraps an error from (*Request).write to indicate\n// that the error came from a Read call on the Request.Body.\n// This error type should not escape the net/http package to users.\ntype requestBodyReadError struct{ error }\n\nfunc idnaASCII(v string) (string, error) {\n\t// TODO: Consider removing this check after verifying performance is okay.\n\t// Right now punycode verification, length checks, context checks, and the\n\t// permissible character tests are all omitted. It also prevents the ToASCII\n\t// call from salvaging an invalid IDN, when possible. As a result it may be\n\t// possible to have two IDNs that appear identical to the user where the\n\t// ASCII-only version causes an error downstream whereas the non-ASCII\n\t// version does not.\n\t// Note that for correct ASCII IDNs ToASCII will only do considerably more\n\t// work, but it will not cause an allocation.\n\tif isASCII(v) {\n\t\treturn v, nil\n\t}\n\treturn idna.Lookup.ToASCII(v)\n}\n\n// cleanHost cleans up the host sent in request's Host header.\n//\n// It both strips anything after '/' or ' ', and puts the value\n// into Punycode form, if necessary.\n//\n// Ideally we'd clean the Host header according to the spec:\n// https://tools.ietf.org/html/rfc7230#section-5.4 (Host = uri-host [ \":\" port ]\")\n// https://tools.ietf.org/html/rfc7230#section-2.7 (uri-host -> rfc3986's host)\n// https://tools.ietf.org/html/rfc3986#section-3.2.2 (definition of host)\n// But practically, what we are trying to avoid is the situation in\n// issue 11206, where a malformed Host header used in the proxy context\n// would create a bad request. So it is enough to just truncate at the\n// first offending character.\nfunc cleanHost(in string) string {\n\tif i := strings.IndexAny(in, \" /\"); i != -1 {\n\t\tin = in[:i]\n\t}\n\thost, port, err := net.SplitHostPort(in)\n\tif err != nil { // input was just a host\n\t\ta, err := idnaASCII(in)\n\t\tif err != nil {\n\t\t\treturn in // garbage in, garbage out\n\t\t}\n\t\treturn a\n\t}\n\ta, err := idnaASCII(host)\n\tif err != nil {\n\t\treturn in // garbage in, garbage out\n\t}\n\treturn net.JoinHostPort(a, port)\n}\n\n// removeZone removes IPv6 zone identifier from host.\n// E.g., \"[fe80::1%en0]:8080\" to \"[fe80::1]:8080\"\nfunc removeZone(host string) string {\n\tif !strings.HasPrefix(host, \"[\") {\n\t\treturn host\n\t}\n\ti := strings.LastIndex(host, \"]\")\n\tif i < 0 {\n\t\treturn host\n\t}\n\tj := strings.LastIndex(host[:i], \"%\")\n\tif j < 0 {\n\t\treturn host\n\t}\n\treturn host[:j] + host[i:]\n}\n\n// ParseHTTPVersion parses a HTTP version string.\n// \"HTTP/1.0\" returns (1, 0, true).\nfunc ParseHTTPVersion(vers string) (major, minor int, ok bool) {\n\tconst Big = 1000000 // arbitrary upper bound\n\tswitch vers {\n\tcase \"HTTP/1.1\":\n\t\treturn 1, 1, true\n\tcase \"HTTP/1.0\":\n\t\treturn 1, 0, true\n\t}\n\tif !strings.HasPrefix(vers, \"HTTP/\") {\n\t\treturn 0, 0, false\n\t}\n\tdot := strings.Index(vers, \".\")\n\tif dot < 0 {\n\t\treturn 0, 0, false\n\t}\n\tmajor, err := strconv.Atoi(vers[5:dot])\n\tif err != nil || major < 0 || major > Big {\n\t\treturn 0, 0, false\n\t}\n\tminor, err = strconv.Atoi(vers[dot+1:])\n\tif err != nil || minor < 0 || minor > Big {\n\t\treturn 0, 0, false\n\t}\n\treturn major, minor, true\n}\n\nfunc validMethod(method string) bool {\n\t/*\n\t Method = \"OPTIONS\" ; Section 9.2\n\t | \"GET\" ; Section 9.3\n\t | \"HEAD\" ; Section 9.4\n\t | \"POST\" ; Section 9.5\n\t | \"PUT\" ; Section 9.6\n\t | \"DELETE\" ; Section 9.7\n\t | \"TRACE\" ; Section 9.8\n\t | \"CONNECT\" ; Section 9.9\n\t | extension-method\n\t extension-method = token\n\t token = 1*<any CHAR except CTLs or separators>\n\t*/\n\treturn len(method) > 0 && strings.IndexFunc(method, isNotToken) == -1\n}\n\n// NewRequest returns a new Request given a method, URL, and optional body.\n//\n// If the provided body is also an io.Closer, the returned\n// Request.Body is set to body and will be closed by the Client\n// methods Do, Post, and PostForm, and Transport.RoundTrip.\n//\n// NewRequest returns a Request suitable for use with Client.Do or\n// Transport.RoundTrip. To create a request for use with testing a\n// Server Handler, either use the NewRequest function in the\n// net/http/httptest package, use ReadRequest, or manually update the\n// Request fields. See the Request type's documentation for the\n// difference between inbound and outbound request fields.\n//\n// If body is of type *bytes.Buffer, *bytes.Reader, or\n// *strings.Reader, the returned request's ContentLength is set to its\n// exact value (instead of -1), GetBody is populated (so 307 and 308\n// redirects can replay the body), and Body is set to NoBody if the\n// ContentLength is 0.\nfunc NewRequest(method, url string, body io.Reader) (*Request, error) {\n\tif method == \"\" {\n\t\t// We document that \"\" means \"GET\" for Request.Method, and people have\n\t\t// relied on that from NewRequest, so keep that working.\n\t\t// We still enforce validMethod for non-empty methods.\n\t\tmethod = \"GET\"\n\t}\n\tif !validMethod(method) {\n\t\treturn nil, fmt.Errorf(\"net/http: invalid method %q\", method)\n\t}\n\tu, err := parseURL(url) // Just url.Parse (url is shadowed for godoc).\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trc, ok := body.(io.ReadCloser)\n\tif !ok && body != nil {\n\t\trc = ioutil.NopCloser(body)\n\t}\n\t// The host's colon:port should be normalized. See Issue 14836.\n\tu.Host = removeEmptyPort(u.Host)\n\treq := &Request{\n\t\tMethod: method,\n\t\tURL: u,\n\t\tProto: \"HTTP/1.1\",\n\t\tProtoMajor: 1,\n\t\tProtoMinor: 1,\n\t\tHeader: make(Header),\n\t\tBody: rc,\n\t\tHost: u.Host,\n\t}\n\tif body != nil {\n\t\tswitch v := body.(type) {\n\t\tcase *bytes.Buffer:\n\t\t\treq.ContentLength = int64(v.Len())\n\t\t\tbuf := v.Bytes()\n\t\t\treq.GetBody = func() (io.ReadCloser, error) {\n\t\t\t\tr := bytes.NewReader(buf)\n\t\t\t\treturn ioutil.NopCloser(r), nil\n\t\t\t}\n\t\tcase *bytes.Reader:\n\t\t\treq.ContentLength = int64(v.Len())\n\t\t\tsnapshot := *v\n\t\t\treq.GetBody = func() (io.ReadCloser, error) {\n\t\t\t\tr := snapshot\n\t\t\t\treturn ioutil.NopCloser(&r), nil\n\t\t\t}\n\t\tcase *strings.Reader:\n\t\t\treq.ContentLength = int64(v.Len())\n\t\t\tsnapshot := *v\n\t\t\treq.GetBody = func() (io.ReadCloser, error) {\n\t\t\t\tr := snapshot\n\t\t\t\treturn ioutil.NopCloser(&r), nil\n\t\t\t}\n\t\tdefault:\n\t\t\t// This is where we'd set it to -1 (at least\n\t\t\t// if body != NoBody) to mean unknown, but\n\t\t\t// that broke people during the Go 1.8 testing\n\t\t\t// period. People depend on it being 0 I\n\t\t\t// guess. Maybe retry later. See Issue 18117.\n\t\t}\n\t\t// For client requests, Request.ContentLength of 0\n\t\t// means either actually 0, or unknown. The only way\n\t\t// to explicitly say that the ContentLength is zero is\n\t\t// to set the Body to nil. But turns out too much code\n\t\t// depends on NewRequest returning a non-nil Body,\n\t\t// so we use a well-known ReadCloser variable instead\n\t\t// and have the http package also treat that sentinel\n\t\t// variable to mean explicitly zero.\n\t\tif req.GetBody != nil && req.ContentLength == 0 {\n\t\t\treq.Body = NoBody\n\t\t\treq.GetBody = func() (io.ReadCloser, error) { return NoBody, nil }\n\t\t}\n\t}\n\n\treturn req, nil\n}\n\n// BasicAuth returns the username and password provided in the request's\n// Authorization header, if the request uses HTTP Basic Authentication.\n// See RFC 2617, Section 2.\nfunc (r *Request) BasicAuth() (username, password string, ok bool) {\n\tauth := r.Header.Get(\"Authorization\")\n\tif auth == \"\" {\n\t\treturn\n\t}\n\treturn parseBasicAuth(auth)\n}\n\n// parseBasicAuth parses an HTTP Basic Authentication string.\n// \"Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\" returns (\"Aladdin\", \"open sesame\", true).\nfunc parseBasicAuth(auth string) (username, password string, ok bool) {\n\tconst prefix = \"Basic \"\n\t// Case insensitive prefix match. See Issue 22736.\n\tif len(auth) < len(prefix) || !strings.EqualFold(auth[:len(prefix)], prefix) {\n\t\treturn\n\t}\n\tc, err := base64.StdEncoding.DecodeString(auth[len(prefix):])\n\tif err != nil {\n\t\treturn\n\t}\n\tcs := string(c)\n\ts := strings.IndexByte(cs, ':')\n\tif s < 0 {\n\t\treturn\n\t}\n\treturn cs[:s], cs[s+1:], true\n}\n\n// SetBasicAuth sets the request's Authorization header to use HTTP\n// Basic Authentication with the provided username and password.\n//\n// With HTTP Basic Authentication the provided username and password\n// are not encrypted.\nfunc (r *Request) SetBasicAuth(username, password string) {\n\tr.Header.Set(\"Authorization\", \"Basic \"+basicAuth(username, password))\n}\n\n// parseRequestLine parses \"GET /foo HTTP/1.1\" into its three parts.\nfunc parseRequestLine(line string) (method, requestURI, proto string, ok bool) {\n\ts1 := strings.Index(line, \" \")\n\ts2 := strings.Index(line[s1+1:], \" \")\n\tif s1 < 0 || s2 < 0 {\n\t\treturn\n\t}\n\ts2 += s1 + 1\n\treturn line[:s1], line[s1+1 : s2], line[s2+1:], true\n}\n\nvar textprotoReaderPool sync.Pool\n\nfunc newTextprotoReader(br *bufio.Reader) *textproto.Reader {\n\tif v := textprotoReaderPool.Get(); v != nil {\n\t\ttr := v.(*textproto.Reader)\n\t\ttr.R = br\n\t\treturn tr\n\t}\n\treturn textproto.NewReader(br)\n}\n\nfunc putTextprotoReader(r *textproto.Reader) {\n\tr.R = nil\n\ttextprotoReaderPool.Put(r)\n}\n\n// ReadRequest reads and parses an incoming request from b.\n//\n// ReadRequest is a low-level function and should only be used for\n// specialized applications; most code should use the Server to read\n// requests and handle them via the Handler interface. ReadRequest\n// only supports HTTP/1.x requests. For HTTP/2, use golang.org/x/net/http2.\nfunc ReadRequest(b *bufio.Reader) (*Request, error) {\n\treturn readRequest(b, deleteHostHeader)\n}\n\n// Constants for readRequest's deleteHostHeader parameter.\nconst (\n\tdeleteHostHeader = true\n\tkeepHostHeader = false\n)\n\nfunc readRequest(b *bufio.Reader, deleteHostHeader bool) (req *Request, err error) {\n\ttp := newTextprotoReader(b)\n\treq = new(Request)\n\n\t// First line: GET /index.html HTTP/1.0\n\tvar s string\n\tif s, err = tp.ReadLine(); err != nil {\n\t\treturn nil, err\n\t}\n\tdefer func() {\n\t\tputTextprotoReader(tp)\n\t\tif err == io.EOF {\n\t\t\terr = io.ErrUnexpectedEOF\n\t\t}\n\t}()\n\n\tvar ok bool\n\treq.Method, req.RequestURI, req.Proto, ok = parseRequestLine(s)\n\tif !ok {\n\t\treturn nil, &badStringError{\"malformed HTTP request\", s}\n\t}\n\tif !validMethod(req.Method) {\n\t\treturn nil, &badStringError{\"invalid method\", req.Method}\n\t}\n\trawurl := req.RequestURI\n\tif req.ProtoMajor, req.ProtoMinor, ok = ParseHTTPVersion(req.Proto); !ok {\n\t\treturn nil, &badStringError{\"malformed HTTP version\", req.Proto}\n\t}\n\n\t// CONNECT requests are used two different ways, and neither uses a full URL:\n\t// The standard use is to tunnel HTTPS through an HTTP proxy.\n\t// It looks like \"CONNECT www.google.com:443 HTTP/1.1\", and the parameter is\n\t// just the authority section of a URL. This information should go in req.URL.Host.\n\t//\n\t// The net/rpc package also uses CONNECT, but there the parameter is a path\n\t// that starts with a slash. It can be parsed with the regular URL parser,\n\t// and the path will end up in req.URL.Path, where it needs to be in order for\n\t// RPC to work.\n\tjustAuthority := req.Method == \"CONNECT\" && !strings.HasPrefix(rawurl, \"/\")\n\tif justAuthority {\n\t\trawurl = \"http://\" + rawurl\n\t}\n\n\tif req.URL, err = url.ParseRequestURI(rawurl); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif justAuthority {\n\t\t// Strip the bogus \"http://\" back off.\n\t\treq.URL.Scheme = \"\"\n\t}\n\n\t// Subsequent lines: Key: value.\n\tmimeHeader, err := tp.ReadMIMEHeader()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header = Header(mimeHeader)\n\n\t// RFC 7230, section 5.3: Must treat\n\t//\tGET /index.html HTTP/1.1\n\t//\tHost: www.google.com\n\t// and\n\t//\tGET http://www.google.com/index.html HTTP/1.1\n\t//\tHost: doesntmatter\n\t// the same. In the second case, any Host line is ignored.\n\treq.Host = req.URL.Host\n\tif req.Host == \"\" {\n\t\treq.Host = req.Header.get(\"Host\")\n\t}\n\tif deleteHostHeader {\n\t\tdelete(req.Header, \"Host\")\n\t}\n\n\tfixPragmaCacheControl(req.Header)\n\n\treq.Close = shouldClose(req.ProtoMajor, req.ProtoMinor, req.Header, false)\n\n\terr = readTransfer(req, b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif req.isH2Upgrade() {\n\t\t// Because it's neither chunked, nor declared:\n\t\treq.ContentLength = -1\n\n\t\t// We want to give handlers a chance to hijack the\n\t\t// connection, but we need to prevent the Server from\n\t\t// dealing with the connection further if it's not\n\t\t// hijacked. Set Close to ensure that:\n\t\treq.Close = true\n\t}\n\treturn req, nil\n}\n\n// MaxBytesReader is similar to io.LimitReader but is intended for\n// limiting the size of incoming request bodies. In contrast to\n// io.LimitReader, MaxBytesReader's result is a ReadCloser, returns a\n// non-EOF error for a Read beyond the limit, and closes the\n// underlying reader when its Close method is called.\n//\n// MaxBytesReader prevents clients from accidentally or maliciously\n// sending a large request and wasting server resources.\nfunc MaxBytesReader(w ResponseWriter, r io.ReadCloser, n int64) io.ReadCloser {\n\treturn &maxBytesReader{w: w, r: r, n: n}\n}\n\ntype maxBytesReader struct {\n\tw ResponseWriter\n\tr io.ReadCloser // underlying reader\n\tn int64 // max bytes remaining\n\terr error // sticky error\n}\n\nfunc (l *maxBytesReader) Read(p []byte) (n int, err error) {\n\tif l.err != nil {\n\t\treturn 0, l.err\n\t}\n\tif len(p) == 0 {\n\t\treturn 0, nil\n\t}\n\t// If they asked for a 32KB byte read but only 5 bytes are\n\t// remaining, no need to read 32KB. 6 bytes will answer the\n\t// question of the whether we hit the limit or go past it.\n\tif int64(len(p)) > l.n+1 {\n\t\tp = p[:l.n+1]\n\t}\n\tn, err = l.r.Read(p)\n\n\tif int64(n) <= l.n {\n\t\tl.n -= int64(n)\n\t\tl.err = err\n\t\treturn n, err\n\t}\n\n\tn = int(l.n)\n\tl.n = 0\n\n\t// The server code and client code both use\n\t// maxBytesReader. This \"requestTooLarge\" check is\n\t// only used by the server code. To prevent binaries\n\t// which only using the HTTP Client code (such as\n\t// cmd/go) from also linking in the HTTP server, don't\n\t// use a static type assertion to the server\n\t// \"*response\" type. Check this interface instead:\n\ttype requestTooLarger interface {\n\t\trequestTooLarge()\n\t}\n\tif res, ok := l.w.(requestTooLarger); ok {\n\t\tres.requestTooLarge()\n\t}\n\tl.err = errors.New(\"http: request body too large\")\n\treturn n, l.err\n}\n\nfunc (l *maxBytesReader) Close() error {\n\treturn l.r.Close()\n}\n\nfunc copyValues(dst, src url.Values) {\n\tfor k, vs := range src {\n\t\tfor _, value := range vs {\n\t\t\tdst.Add(k, value)\n\t\t}\n\t}\n}\n\nfunc parsePostForm(r *Request) (vs url.Values, err error) {\n\tif r.Body == nil {\n\t\terr = errors.New(\"missing form body\")\n\t\treturn\n\t}\n\tct := r.Header.Get(\"Content-Type\")\n\t// RFC 7231, section 3.1.1.5 - empty type\n\t// MAY be treated as application/octet-stream\n\tif ct == \"\" {\n\t\tct = \"application/octet-stream\"\n\t}\n\tct, _, err = mime.ParseMediaType(ct)\n\tswitch {\n\tcase ct == \"application/x-www-form-urlencoded\":\n\t\tvar reader io.Reader = r.Body\n\t\tmaxFormSize := int64(1<<63 - 1)\n\t\tif _, ok := r.Body.(*maxBytesReader); !ok {\n\t\t\tmaxFormSize = int64(10 << 20) // 10 MB is a lot of text.\n\t\t\treader = io.LimitReader(r.Body, maxFormSize+1)\n\t\t}\n\t\tb, e := ioutil.ReadAll(reader)\n\t\tif e != nil {\n\t\t\tif err == nil {\n\t\t\t\terr = e\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif int64(len(b)) > maxFormSize {\n\t\t\terr = errors.New(\"http: POST too large\")\n\t\t\treturn\n\t\t}\n\t\tvs, e = url.ParseQuery(string(b))\n\t\tif err == nil {\n\t\t\terr = e\n\t\t}\n\tcase ct == \"multipart/form-data\":\n\t\t// handled by ParseMultipartForm (which is calling us, or should be)\n\t\t// TODO(bradfitz): there are too many possible\n\t\t// orders to call too many functions here.\n\t\t// Clean this up and write more tests.\n\t\t// request_test.go contains the start of this,\n\t\t// in TestParseMultipartFormOrder and others.\n\t}\n\treturn\n}\n\n// ParseForm populates r.Form and r.PostForm.\n//\n// For all requests, ParseForm parses the raw query from the URL and updates\n// r.Form.\n//\n// For POST, PUT, and PATCH requests, it also parses the request body as a form\n// and puts the results into both r.PostForm and r.Form. Request body parameters\n// take precedence over URL query string values in r.Form.\n//\n// For other HTTP methods, or when the Content-Type is not\n// application/x-www-form-urlencoded, the request Body is not read, and\n// r.PostForm is initialized to a non-nil, empty value.\n//\n// If the request Body's size has not already been limited by MaxBytesReader,\n// the size is capped at 10MB.\n//\n// ParseMultipartForm calls ParseForm automatically.\n// ParseForm is idempotent.\nfunc (r *Request) ParseForm() error {\n\tvar err error\n\tif r.PostForm == nil {\n\t\tif r.Method == \"POST\" || r.Method == \"PUT\" || r.Method == \"PATCH\" {\n\t\t\tr.PostForm, err = parsePostForm(r)\n\t\t}\n\t\tif r.PostForm == nil {\n\t\t\tr.PostForm = make(url.Values)\n\t\t}\n\t}\n\tif r.Form == nil {\n\t\tif len(r.PostForm) > 0 {\n\t\t\tr.Form = make(url.Values)\n\t\t\tcopyValues(r.Form, r.PostForm)\n\t\t}\n\t\tvar newValues url.Values\n\t\tif r.URL != nil {\n\t\t\tvar e error\n\t\t\tnewValues, e = url.ParseQuery(r.URL.RawQuery)\n\t\t\tif err == nil {\n\t\t\t\terr = e\n\t\t\t}\n\t\t}\n\t\tif newValues == nil {\n\t\t\tnewValues = make(url.Values)\n\t\t}\n\t\tif r.Form == nil {\n\t\t\tr.Form = newValues\n\t\t} else {\n\t\t\tcopyValues(r.Form, newValues)\n\t\t}\n\t}\n\treturn err\n}\n\n// ParseMultipartForm parses a request body as multipart/form-data.\n// The whole request body is parsed and up to a total of maxMemory bytes of\n// its file parts are stored in memory, with the remainder stored on\n// disk in temporary files.\n// ParseMultipartForm calls ParseForm if necessary.\n// After one call to ParseMultipartForm, subsequent calls have no effect.\nfunc (r *Request) ParseMultipartForm(maxMemory int64) error {\n\tif r.MultipartForm == multipartByReader {\n\t\treturn errors.New(\"http: multipart handled by MultipartReader\")\n\t}\n\tif r.Form == nil {\n\t\terr := r.ParseForm()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif r.MultipartForm != nil {\n\t\treturn nil\n\t}\n\n\tmr, err := r.multipartReader(false)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tf, err := mr.ReadForm(maxMemory)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif r.PostForm == nil {\n\t\tr.PostForm = make(url.Values)\n\t}\n\tfor k, v := range f.Value {\n\t\tr.Form[k] = append(r.Form[k], v...)\n\t\t// r.PostForm should also be populated. See Issue 9305.\n\t\tr.PostForm[k] = append(r.PostForm[k], v...)\n\t}\n\n\tr.MultipartForm = f\n\n\treturn nil\n}\n\n// FormValue returns the first value for the named component of the query.\n// POST and PUT body parameters take precedence over URL query string values.\n// FormValue calls ParseMultipartForm and ParseForm if necessary and ignores\n// any errors returned by these functions.\n// If key is not present, FormValue returns the empty string.\n// To access multiple values of the same key, call ParseForm and\n// then inspect Request.Form directly.\nfunc (r *Request) FormValue(key string) string {\n\tif r.Form == nil {\n\t\tr.ParseMultipartForm(defaultMaxMemory)\n\t}\n\tif vs := r.Form[key]; len(vs) > 0 {\n\t\treturn vs[0]\n\t}\n\treturn \"\"\n}\n\n// PostFormValue returns the first value for the named component of the POST,\n// PATCH, or PUT request body. URL query parameters are ignored.\n// PostFormValue calls ParseMultipartForm and ParseForm if necessary and ignores\n// any errors returned by these functions.\n// If key is not present, PostFormValue returns the empty string.\nfunc (r *Request) PostFormValue(key string) string {\n\tif r.PostForm == nil {\n\t\tr.ParseMultipartForm(defaultMaxMemory)\n\t}\n\tif vs := r.PostForm[key]; len(vs) > 0 {\n\t\treturn vs[0]\n\t}\n\treturn \"\"\n}\n\n// FormFile returns the first file for the provided form key.\n// FormFile calls ParseMultipartForm and ParseForm if necessary.\nfunc (r *Request) FormFile(key string) (multipart.File, *multipart.FileHeader, error) {\n\tif r.MultipartForm == multipartByReader {\n\t\treturn nil, nil, errors.New(\"http: multipart handled by MultipartReader\")\n\t}\n\tif r.MultipartForm == nil {\n\t\terr := r.ParseMultipartForm(defaultMaxMemory)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t}\n\tif r.MultipartForm != nil && r.MultipartForm.File != nil {\n\t\tif fhs := r.MultipartForm.File[key]; len(fhs) > 0 {\n\t\t\tf, err := fhs[0].Open()\n\t\t\treturn f, fhs[0], err\n\t\t}\n\t}\n\treturn nil, nil, ErrMissingFile\n}\n\nfunc (r *Request) expectsContinue() bool {\n\treturn hasToken(r.Header.get(\"Expect\"), \"100-continue\")\n}\n\nfunc (r *Request) wantsHttp10KeepAlive() bool {\n\tif r.ProtoMajor != 1 || r.ProtoMinor != 0 {\n\t\treturn false\n\t}\n\treturn hasToken(r.Header.get(\"Connection\"), \"keep-alive\")\n}\n\nfunc (r *Request) wantsClose() bool {\n\tif r.Close {\n\t\treturn true\n\t}\n\treturn hasToken(r.Header.get(\"Connection\"), \"close\")\n}\n\nfunc (r *Request) closeBody() {\n\tif r.Body != nil {\n\t\tr.Body.Close()\n\t}\n}\n\nfunc (r *Request) isReplayable() bool {\n\tif r.Body == nil || r.Body == NoBody || r.GetBody != nil {\n\t\tswitch valueOrDefault(r.Method, \"GET\") {\n\t\tcase \"GET\", \"HEAD\", \"OPTIONS\", \"TRACE\":\n\t\t\treturn true\n\t\t}\n\t\t// The Idempotency-Key, while non-standard, is widely used to\n\t\t// mean a POST or other request is idempotent. See\n\t\t// https://golang.org/issue/19943#issuecomment-421092421\n\t\tif r.Header.has(\"Idempotency-Key\") || r.Header.has(\"X-Idempotency-Key\") {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// outgoingLength reports the Content-Length of this outgoing (Client) request.\n// It maps 0 into -1 (unknown) when the Body is non-nil.\nfunc (r *Request) outgoingLength() int64 {\n\tif r.Body == nil || r.Body == NoBody {\n\t\treturn 0\n\t}\n\tif r.ContentLength != 0 {\n\t\treturn r.ContentLength\n\t}\n\treturn -1\n}\n\n// requestMethodUsuallyLacksBody reports whether the given request\n// method is one that typically does not involve a request body.\n// This is used by the Transport (via\n// transferWriter.shouldSendChunkedRequestBody) to determine whether\n// we try to test-read a byte from a non-nil Request.Body when\n// Request.outgoingLength() returns -1. See the comments in\n// shouldSendChunkedRequestBody.\nfunc requestMethodUsuallyLacksBody(method string) bool {\n\tswitch method {\n\tcase \"GET\", \"HEAD\", \"DELETE\", \"OPTIONS\", \"PROPFIND\", \"SEARCH\":\n\t\treturn true\n\t}\n\treturn false\n}\n\n// requiresHTTP1 reports whether this request requires being sent on\n// an HTTP/1 connection.\nfunc (r *Request) requiresHTTP1() bool {\n\treturn hasToken(r.Header.Get(\"Connection\"), \"upgrade\") &&\n\t\tstrings.EqualFold(r.Header.Get(\"Upgrade\"), \"websocket\")\n}\n"}} | |
[Trace - 2:25:16 PM] Sending notification 'textDocument/didClose'. | |
Params: {"textDocument":{"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/request.go"}} | |
[Trace - 2:25:16 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"failed to run analyses for file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/request.go: context canceled"} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/request.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/client.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/cookie.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/doc.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/filetransport.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/fs.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/h2_bundle.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/header.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/http.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/jar.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/method.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/request.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/response.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/roundtrip.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/server.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/sniff.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/socks_bundle.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/status.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/transfer.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/transport.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"unable to check package for file:///Users/peter/mod/REDACTED/pkg/REDACTED/error.go: context canceled"} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/roundtrip.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/socks_bundle.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/status.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","diagnostics":[{"range":{"start":{"line":17,"character":1},"end":{"line":17,"character":38}},"severity":1,"source":"LSP","message":"could not import github.com/fastly/REDACTED/pkg/errors (context canceled)"},{"range":{"start":{"line":519,"character":1},"end":{"line":519,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":521,"character":15},"end":{"line":521,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":529,"character":9},"end":{"line":529,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":532,"character":19},"end":{"line":532,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":453,"character":1},"end":{"line":453,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":455,"character":15},"end":{"line":455,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":464,"character":9},"end":{"line":464,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":467,"character":19},"end":{"line":467,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":515,"character":1},"end":{"line":515,"character":22}},"severity":1,"source":"LSP","message":"undeclared name: respondPublicSuccessf"},{"range":{"start":{"line":420,"character":1},"end":{"line":420,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":422,"character":15},"end":{"line":422,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":430,"character":9},"end":{"line":430,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":433,"character":19},"end":{"line":433,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":376,"character":1},"end":{"line":376,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":378,"character":15},"end":{"line":378,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":386,"character":9},"end":{"line":386,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":389,"character":19},"end":{"line":389,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":416,"character":1},"end":{"line":416,"character":22}},"severity":1,"source":"LSP","message":"undeclared name: respondPublicSuccessf"},{"range":{"start":{"line":338,"character":1},"end":{"line":338,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":340,"character":15},"end":{"line":340,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":348,"character":9},"end":{"line":348,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":351,"character":19},"end":{"line":351,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":298,"character":1},"end":{"line":298,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":300,"character":15},"end":{"line":300,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":308,"character":9},"end":{"line":308,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":311,"character":19},"end":{"line":311,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":334,"character":1},"end":{"line":334,"character":22}},"severity":1,"source":"LSP","message":"undeclared name: respondPublicSuccessf"},{"range":{"start":{"line":211,"character":1},"end":{"line":211,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":213,"character":15},"end":{"line":213,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":221,"character":9},"end":{"line":221,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":224,"character":19},"end":{"line":224,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":165,"character":1},"end":{"line":165,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":167,"character":15},"end":{"line":167,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":175,"character":9},"end":{"line":175,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":178,"character":19},"end":{"line":178,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":207,"character":1},"end":{"line":207,"character":22}},"severity":1,"source":"LSP","message":"undeclared name: respondPublicSuccessf"},{"range":{"start":{"line":88,"character":1},"end":{"line":88,"character":9}},"severity":1,"source":"LSP","message":"undeclared name: setRoute"},{"range":{"start":{"line":90,"character":15},"end":{"line":90,"character":25}},"severity":1,"source":"LSP","message":"undeclared name: parseToken"},{"range":{"start":{"line":99,"character":9},"end":{"line":99,"character":29}},"severity":1,"source":"LSP","message":"undeclared name: parseConsistencyMode"},{"range":{"start":{"line":102,"character":19},"end":{"line":102,"character":26}},"severity":1,"source":"LSP","message":"undeclared name: ErrNoID"},{"range":{"start":{"line":161,"character":1},"end":{"line":161,"character":22}},"severity":1,"source":"LSP","message":"undeclared name: respondPublicSuccessf"}]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/h2_bundle.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/header.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/response.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/sniff.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/client.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/doc.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/filetransport.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/jar.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/method.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/request.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/server.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/transfer.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/cookie.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/fs.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/http.go","diagnostics":[]} | |
[Trace - 2:25:16 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/net/http/transport.go","diagnostics":[]} | |
[Trace - 2:27:31 PM] Sending request 'textDocument/hover - (302)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":178,"character":21}} | |
[Error - 2:27:31 PM] send textDocument/hover#302 no object for ident ErrNoID | |
[Error - 2:27:31 PM] Request textDocument/hover failed. | |
Message: no object for ident ErrNoID | |
Code: 0 | |
[Trace - 2:27:31 PM] Sending request 'textDocument/codeAction - (303)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":178,"character":19},"end":{"line":178,"character":26}},"context":{"diagnostics":[{"range":{"start":{"line":178,"character":19},"end":{"line":178,"character":26}},"message":"undeclared name: ErrNoID","severity":1,"source":"LSP"}]}} | |
[Trace - 2:27:31 PM] Received response 'textDocument/codeAction - (303)' in 10ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:27:32 PM] Sending request 'textDocument/definition - (304)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":178,"character":22}} | |
[Error - 2:27:32 PM] send textDocument/definition#304 no object for ident ErrNoID | |
[Error - 2:27:32 PM] Request textDocument/definition failed. | |
Message: no object for ident ErrNoID | |
Code: 0 | |
[Trace - 2:27:36 PM] Sending request 'textDocument/definition - (305)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":178,"character":22}} | |
[Error - 2:27:36 PM] send textDocument/definition#305 no object for ident ErrNoID | |
[Error - 2:27:36 PM] Request textDocument/definition failed. | |
Message: no object for ident ErrNoID | |
Code: 0 | |
[Trace - 2:29:53 PM] Sending request 'textDocument/definition - (306)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":178,"character":22}} | |
[Error - 2:29:53 PM] send textDocument/definition#306 no object for ident ErrNoID | |
[Error - 2:29:53 PM] Request textDocument/definition failed. | |
Message: no object for ident ErrNoID | |
Code: 0 | |
[Trace - 2:29:53 PM] Sending request 'textDocument/documentLink - (307)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"}} | |
[Trace - 2:29:53 PM] Received response 'textDocument/documentLink - (307)' in 0ms. | |
Params: [{"range":{"start":{"line":2,"character":7},"end":{"line":2,"character":16}},"target":"https://godoc.org/testing"}] | |
[Trace - 2:29:53 PM] Sending request 'textDocument/codeAction - (308)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:29:53 PM] Received response 'textDocument/codeAction - (308)' in 0ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go":[]}}}] | |
[Trace - 2:29:54 PM] Sending request 'textDocument/codeAction - (309)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":0,"character":0},"end":{"line":7,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:29:54 PM] Received response 'textDocument/codeAction - (309)' in 0ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go":[]}}}] | |
[Trace - 2:29:56 PM] Sending request 'textDocument/documentHighlight - (310)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"position":{"line":4,"character":0}} | |
[Trace - 2:29:56 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"no highlight for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:5: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:5:1 is not an identifier"} | |
[Trace - 2:29:56 PM] Received response 'textDocument/documentHighlight - (310)' in 0ms. | |
Params: [] | |
[Error - 2:29:56 PM] no highlight for /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:5: /Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go:5:1 is not an identifier | |
[Trace - 2:29:56 PM] Sending request 'textDocument/codeAction - (311)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go"},"range":{"start":{"line":4,"character":0},"end":{"line":4,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:29:56 PM] Received response 'textDocument/codeAction - (311)' in 1ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go":[]}}}] | |
[Trace - 2:30:51 PM] Sending request 'textDocument/documentLink - (312)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"}} | |
[Trace - 2:30:51 PM] Received response 'textDocument/documentLink - (312)' in 0ms. | |
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":8}},"target":"https://godoc.org/bytes"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":10}},"target":"https://godoc.org/context"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":18}},"target":"https://godoc.org/encoding/base64"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":16}},"target":"https://godoc.org/encoding/json"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":6}},"target":"https://godoc.org/fmt"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":12}},"target":"https://godoc.org/io/ioutil"},{"range":{"start":{"line":9,"character":1},"end":{"line":9,"character":7}},"target":"https://godoc.org/mime"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":17}},"target":"https://godoc.org/mime/multipart"},{"range":{"start":{"line":11,"character":1},"end":{"line":11,"character":11}},"target":"https://godoc.org/net/http"},{"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":10}},"target":"https://godoc.org/strconv"},{"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":10}},"target":"https://godoc.org/strings"},{"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":7}},"target":"https://godoc.org/time"},{"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/auth"},{"range":{"start":{"line":17,"character":1},"end":{"line":17,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/errors"},{"range":{"start":{"line":18,"character":1},"end":{"line":18,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/object"},{"range":{"start":{"line":19,"character":1},"end":{"line":19,"character":39}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/replica"},{"range":{"start":{"line":20,"character":1},"end":{"line":20,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/ring"},{"range":{"start":{"line":21,"character":1},"end":{"line":21,"character":25}},"target":"https://godoc.org/github.com/gorilla/mux"}] | |
[Trace - 2:30:51 PM] Sending request 'textDocument/codeAction - (313)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:30:51 PM] Received response 'textDocument/codeAction - (313)' in 14ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:30:51 PM] Sending request 'textDocument/codeAction - (314)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":182,"character":54},"end":{"line":182,"character":54}},"context":{"diagnostics":[]}} | |
[Trace - 2:30:51 PM] Received response 'textDocument/codeAction - (314)' in 8ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:30:52 PM] Sending request 'textDocument/hover - (315)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":188,"character":16}} | |
[Trace - 2:30:52 PM] Received response 'textDocument/hover - (315)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"URL specifies either the URI being requested (for server requests) or the URL to access (for client requests).\n```go\nfield URL *url.URL\n```"},"range":{"start":{"line":188,"character":15},"end":{"line":188,"character":18}}} | |
[Trace - 2:30:54 PM] Sending request 'textDocument/hover - (316)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":175,"character":16}} | |
[Error - 2:30:54 PM] send textDocument/hover#316 no object for ident parseConsistencyMode | |
[Error - 2:30:54 PM] Request textDocument/hover failed. | |
Message: no object for ident parseConsistencyMode | |
Code: 0 | |
[Trace - 2:30:54 PM] Sending request 'textDocument/hover - (317)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":175,"character":16}} | |
[Error - 2:30:54 PM] send textDocument/hover#317 no object for ident parseConsistencyMode | |
[Error - 2:30:54 PM] Request textDocument/hover failed. | |
Message: no object for ident parseConsistencyMode | |
Code: 0 | |
[Trace - 2:30:54 PM] Sending request 'textDocument/codeAction - (318)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":175,"character":9},"end":{"line":175,"character":29}},"context":{"diagnostics":[{"range":{"start":{"line":175,"character":9},"end":{"line":175,"character":29}},"message":"undeclared name: parseConsistencyMode","severity":1,"source":"LSP"}]}} | |
[Trace - 2:30:54 PM] Received response 'textDocument/codeAction - (318)' in 11ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:30:55 PM] Sending request 'textDocument/definition - (319)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":175,"character":17}} | |
[Error - 2:30:55 PM] send textDocument/definition#319 no object for ident parseConsistencyMode | |
[Error - 2:30:55 PM] Request textDocument/definition failed. | |
Message: no object for ident parseConsistencyMode | |
Code: 0 | |
[Trace - 2:30:55 PM] Sending request 'textDocument/documentHighlight - (320)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":175,"character":17}} | |
[Trace - 2:30:55 PM] Received response 'textDocument/documentHighlight - (320)' in 0ms. | |
Params: [] | |
[Trace - 2:30:56 PM] Sending request 'textDocument/definition - (321)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":175,"character":17}} | |
[Error - 2:30:56 PM] send textDocument/definition#321 no object for ident parseConsistencyMode | |
[Error - 2:30:56 PM] Request textDocument/definition failed. | |
Message: no object for ident parseConsistencyMode | |
Code: 0 | |
[Trace - 2:30:56 PM] Sending request 'textDocument/codeAction - (322)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":175,"character":17},"end":{"line":175,"character":17}},"context":{"diagnostics":[{"range":{"start":{"line":175,"character":9},"end":{"line":175,"character":29}},"message":"undeclared name: parseConsistencyMode","severity":1,"source":"LSP"}]}} | |
[Trace - 2:30:56 PM] Received response 'textDocument/codeAction - (322)' in 12ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:30:57 PM] Sending request 'textDocument/hover - (323)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":175,"character":13}} | |
[Error - 2:30:57 PM] send textDocument/hover#323 no object for ident parseConsistencyMode | |
[Error - 2:30:57 PM] Request textDocument/hover failed. | |
Message: no object for ident parseConsistencyMode | |
Code: 0 | |
[Trace - 2:30:57 PM] Sending request 'textDocument/codeAction - (324)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":175,"character":9},"end":{"line":175,"character":29}},"context":{"diagnostics":[{"range":{"start":{"line":175,"character":9},"end":{"line":175,"character":29}},"message":"undeclared name: parseConsistencyMode","severity":1,"source":"LSP"}]}} | |
[Trace - 2:30:57 PM] Sending request 'textDocument/definition - (325)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":175,"character":13}} | |
[Trace - 2:30:57 PM] Received response 'textDocument/codeAction - (324)' in 9ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Error - 2:30:57 PM] send textDocument/definition#325 no object for ident parseConsistencyMode | |
[Error - 2:30:57 PM] Request textDocument/definition failed. | |
Message: no object for ident parseConsistencyMode | |
Code: 0 | |
[Trace - 2:30:58 PM] Sending request 'textDocument/codeAction - (326)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":213,"character":15},"end":{"line":213,"character":18}},"context":{"diagnostics":[{"range":{"start":{"line":213,"character":15},"end":{"line":213,"character":25}},"message":"undeclared name: parseToken","severity":1,"source":"LSP"}]}} | |
[Trace - 2:30:58 PM] Received response 'textDocument/codeAction - (326)' in 12ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:02 PM] Sending request 'textDocument/codeAction - (327)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":308,"character":9},"end":{"line":308,"character":29}},"context":{"diagnostics":[{"range":{"start":{"line":308,"character":9},"end":{"line":308,"character":29}},"message":"undeclared name: parseConsistencyMode","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:02 PM] Received response 'textDocument/codeAction - (327)' in 10ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:02 PM] Sending request 'textDocument/codeAction - (328)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":386,"character":9},"end":{"line":386,"character":29}},"context":{"diagnostics":[{"range":{"start":{"line":386,"character":9},"end":{"line":386,"character":29}},"message":"undeclared name: parseConsistencyMode","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:02 PM] Received response 'textDocument/codeAction - (328)' in 11ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:03 PM] Sending request 'textDocument/codeAction - (329)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":430,"character":9},"end":{"line":430,"character":29}},"context":{"diagnostics":[{"range":{"start":{"line":430,"character":9},"end":{"line":430,"character":29}},"message":"undeclared name: parseConsistencyMode","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:03 PM] Received response 'textDocument/codeAction - (329)' in 12ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:03 PM] Sending request 'textDocument/codeAction - (330)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":464,"character":9},"end":{"line":464,"character":29}},"context":{"diagnostics":[{"range":{"start":{"line":464,"character":9},"end":{"line":464,"character":29}},"message":"undeclared name: parseConsistencyMode","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:03 PM] Received response 'textDocument/codeAction - (330)' in 10ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:04 PM] Sending request 'textDocument/codeAction - (331)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":529,"character":9},"end":{"line":529,"character":29}},"context":{"diagnostics":[{"range":{"start":{"line":529,"character":9},"end":{"line":529,"character":29}},"message":"undeclared name: parseConsistencyMode","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:04 PM] Received response 'textDocument/codeAction - (331)' in 18ms. | |
Params: [{"title":"Organize All Imports","kind":"quickfix","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}},{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:06 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go","languageId":"go","version":1,"text":"package api\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/fastly/REDACTED/pkg/errors\"\n\t\"github.com/fastly/REDACTED/pkg/ring\"\n)\n\n// Doer models http.Client.\ntype Doer interface {\n\tDo(*http.Request) (*http.Response, error)\n}\n\nvar (\n\t// ErrTokenMissing indicates a user request is missing its auth token.\n\tErrTokenMissing = errors.NewCode(http.StatusBadRequest, \"the Fastly-Key header is required\")\n\n\t// ErrNoID indicates the object ID couldn't be parsed from the request.\n\t// This is almost certainly an internal routing (i.e. programmer) error.\n\tErrNoID = errors.NewCode(http.StatusInternalServerError, \"object ID not found (internal routing error)\")\n)\n\nfunc parseToken(r *http.Request) (token string, err error) {\n\ttoken = r.Header.Get(\"Fastly-Key\")\n\tif token == \"\" {\n\t\terr = ErrTokenMissing\n\t}\n\treturn token, err\n}\n\nfunc parseConsistencyMode(query url.Values) ring.ConsistencyMode {\n\tswitch strings.ToLower(query.Get(\"consistency\")) {\n\tcase \"fast\":\n\t\treturn ring.ConsistencyModeFast\n\tcase \"safe\":\n\t\treturn ring.ConsistencyModeSafe\n\tcase \"yolo\":\n\t\treturn ring.ConsistencyModeYOLO\n\tdefault:\n\t\treturn ring.ConsistencyModeBest\n\t}\n}\n\nfunc respondPublicSuccessf(w http.ResponseWriter, format string, args ...interface{}) {\n\trespondPublicf(w, http.StatusOK, format, args...)\n}\n\nfunc respondPublicf(w http.ResponseWriter, code int, format string, args ...interface{}) {\n\tw.WriteHeader(code)\n\tfmt.Fprintf(w, format, args...)\n}\n\nfunc respondInternalJSON(w http.ResponseWriter, code int, response interface{}) {\n\tw.WriteHeader(code)\n\tjson.NewEncoder(w).Encode(response)\n}\n"}} | |
[Trace - 2:31:06 PM] Sending request 'textDocument/documentLink - (332)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go"}} | |
[Trace - 2:31:06 PM] Sending request 'textDocument/codeAction - (333)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:31:06 PM] Received response 'textDocument/documentLink - (332)' in 523ms. | |
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":16}},"target":"https://godoc.org/encoding/json"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":6}},"target":"https://godoc.org/fmt"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":11}},"target":"https://godoc.org/net/http"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":10}},"target":"https://godoc.org/net/url"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":10}},"target":"https://godoc.org/strings"},{"range":{"start":{"line":9,"character":1},"end":{"line":9,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/errors"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/ring"}] | |
[Trace - 2:31:06 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/internal.go","diagnostics":[]} | |
[Trace - 2:31:06 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/middlewares.go","diagnostics":[]} | |
[Trace - 2:31:06 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","diagnostics":[{"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"severity":1,"source":"LSP","message":"cannot use object.ErrNotFound (variable with invalid type) as errors.Error value in argument to errors.SomewhatEqual"}]} | |
[Trace - 2:31:06 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/tls.go","diagnostics":[]} | |
[Trace - 2:31:06 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go","diagnostics":[]} | |
[Trace - 2:31:06 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/debug.go","diagnostics":[]} | |
[Trace - 2:31:06 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:06 PM] Sending request 'textDocument/documentSymbol - (334)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go"}} | |
[Trace - 2:31:06 PM] Received response 'textDocument/codeAction - (333)' in 522ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go":[]}}}] | |
[Trace - 2:31:06 PM] Received response 'textDocument/documentSymbol - (334)' in 522ms. | |
Params: [{"name":"Doer","detail":"interface{...}","kind":11,"range":{"start":{"line":14,"character":5},"end":{"line":16,"character":1}},"selectionRange":{"start":{"line":14,"character":5},"end":{"line":14,"character":9}},"children":[{"name":"Do","kind":6,"range":{"start":{"line":15,"character":1},"end":{"line":15,"character":42}},"selectionRange":{"start":{"line":15,"character":1},"end":{"line":15,"character":3}}}]},{"name":"ErrTokenMissing","detail":"errors.Error","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":25,"character":1}},"selectionRange":{"start":{"line":20,"character":1},"end":{"line":20,"character":16}}},{"name":"ErrNoID","detail":"errors.Error","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":25,"character":1}},"selectionRange":{"start":{"line":24,"character":1},"end":{"line":24,"character":8}}},{"name":"parseToken","detail":"(r *http.Request)","kind":12,"range":{"start":{"line":27,"character":0},"end":{"line":33,"character":1}},"selectionRange":{"start":{"line":27,"character":5},"end":{"line":27,"character":15}}},{"name":"parseConsistencyMode","detail":"(query url.Values)","kind":12,"range":{"start":{"line":35,"character":0},"end":{"line":46,"character":1}},"selectionRange":{"start":{"line":35,"character":5},"end":{"line":35,"character":25}}},{"name":"respondPublicSuccessf","detail":"(w http.ResponseWriter, format string, args []interface{})","kind":12,"range":{"start":{"line":48,"character":0},"end":{"line":50,"character":1}},"selectionRange":{"start":{"line":48,"character":5},"end":{"line":48,"character":26}}},{"name":"respondPublicf","detail":"(w http.ResponseWriter, code int, format string, args []interface{})","kind":12,"range":{"start":{"line":52,"character":0},"end":{"line":55,"character":1}},"selectionRange":{"start":{"line":52,"character":5},"end":{"line":52,"character":19}}},{"name":"respondInternalJSON","detail":"(w http.ResponseWriter, code int, response interface{})","kind":12,"range":{"start":{"line":57,"character":0},"end":{"line":60,"character":1}},"selectionRange":{"start":{"line":57,"character":5},"end":{"line":57,"character":24}}}] | |
[Trace - 2:31:06 PM] Sending request 'textDocument/codeAction - (335)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go"},"range":{"start":{"line":35,"character":5},"end":{"line":35,"character":5}},"context":{"diagnostics":[]}} | |
[Trace - 2:31:06 PM] Received response 'textDocument/codeAction - (335)' in 277ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go":[]}}}] | |
[Trace - 2:31:06 PM] Sending notification '$/cancelRequest'. | |
Params: {"id":333} | |
[Trace - 2:31:07 PM] Sending request 'textDocument/hover - (336)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go"},"position":{"line":13,"character":25}} | |
[Error - 2:31:07 PM] send textDocument/hover#336 no identifier found | |
[Error - 2:31:07 PM] Request textDocument/hover failed. | |
Message: no identifier found | |
Code: 0 | |
[Trace - 2:31:12 PM] Sending request 'textDocument/hover - (337)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go"},"position":{"line":36,"character":22}} | |
[Trace - 2:31:12 PM] Received response 'textDocument/hover - (337)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"ToLower returns a copy of the string s with all Unicode letters mapped to their lower case.\n```go\nfunc strings.ToLower(s string) string\n```"},"range":{"start":{"line":36,"character":16},"end":{"line":36,"character":23}}} | |
[Trace - 2:31:12 PM] Sending request 'textDocument/definition - (338)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go"},"position":{"line":36,"character":22}} | |
[Trace - 2:31:12 PM] Received response 'textDocument/definition - (338)' in 13ms. | |
Params: [{"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/strings.go","range":{"start":{"line":583,"character":5},"end":{"line":583,"character":12}}}] | |
[Trace - 2:31:12 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/strings.go","languageId":"go","version":1,"text":"// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package strings implements simple functions to manipulate UTF-8 encoded strings.\n//\n// For information about UTF-8 strings in Go, see https://blog.golang.org/strings.\npackage strings\n\nimport (\n\t\"internal/bytealg\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// explode splits s into a slice of UTF-8 strings,\n// one string per Unicode character up to a maximum of n (n < 0 means no limit).\n// Invalid UTF-8 sequences become correct encodings of U+FFFD.\nfunc explode(s string, n int) []string {\n\tl := utf8.RuneCountInString(s)\n\tif n < 0 || n > l {\n\t\tn = l\n\t}\n\ta := make([]string, n)\n\tfor i := 0; i < n-1; i++ {\n\t\tch, size := utf8.DecodeRuneInString(s)\n\t\ta[i] = s[:size]\n\t\ts = s[size:]\n\t\tif ch == utf8.RuneError {\n\t\t\ta[i] = string(utf8.RuneError)\n\t\t}\n\t}\n\tif n > 0 {\n\t\ta[n-1] = s\n\t}\n\treturn a\n}\n\n// primeRK is the prime base used in Rabin-Karp algorithm.\nconst primeRK = 16777619\n\n// hashStr returns the hash and the appropriate multiplicative\n// factor for use in Rabin-Karp algorithm.\nfunc hashStr(sep string) (uint32, uint32) {\n\thash := uint32(0)\n\tfor i := 0; i < len(sep); i++ {\n\t\thash = hash*primeRK + uint32(sep[i])\n\t}\n\tvar pow, sq uint32 = 1, primeRK\n\tfor i := len(sep); i > 0; i >>= 1 {\n\t\tif i&1 != 0 {\n\t\t\tpow *= sq\n\t\t}\n\t\tsq *= sq\n\t}\n\treturn hash, pow\n}\n\n// hashStrRev returns the hash of the reverse of sep and the\n// appropriate multiplicative factor for use in Rabin-Karp algorithm.\nfunc hashStrRev(sep string) (uint32, uint32) {\n\thash := uint32(0)\n\tfor i := len(sep) - 1; i >= 0; i-- {\n\t\thash = hash*primeRK + uint32(sep[i])\n\t}\n\tvar pow, sq uint32 = 1, primeRK\n\tfor i := len(sep); i > 0; i >>= 1 {\n\t\tif i&1 != 0 {\n\t\t\tpow *= sq\n\t\t}\n\t\tsq *= sq\n\t}\n\treturn hash, pow\n}\n\n// Count counts the number of non-overlapping instances of substr in s.\n// If substr is an empty string, Count returns 1 + the number of Unicode code points in s.\nfunc Count(s, substr string) int {\n\t// special case\n\tif len(substr) == 0 {\n\t\treturn utf8.RuneCountInString(s) + 1\n\t}\n\tif len(substr) == 1 {\n\t\treturn bytealg.CountString(s, substr[0])\n\t}\n\tn := 0\n\tfor {\n\t\ti := Index(s, substr)\n\t\tif i == -1 {\n\t\t\treturn n\n\t\t}\n\t\tn++\n\t\ts = s[i+len(substr):]\n\t}\n}\n\n// Contains reports whether substr is within s.\nfunc Contains(s, substr string) bool {\n\treturn Index(s, substr) >= 0\n}\n\n// ContainsAny reports whether any Unicode code points in chars are within s.\nfunc ContainsAny(s, chars string) bool {\n\treturn IndexAny(s, chars) >= 0\n}\n\n// ContainsRune reports whether the Unicode code point r is within s.\nfunc ContainsRune(s string, r rune) bool {\n\treturn IndexRune(s, r) >= 0\n}\n\n// LastIndex returns the index of the last instance of substr in s, or -1 if substr is not present in s.\nfunc LastIndex(s, substr string) int {\n\tn := len(substr)\n\tswitch {\n\tcase n == 0:\n\t\treturn len(s)\n\tcase n == 1:\n\t\treturn LastIndexByte(s, substr[0])\n\tcase n == len(s):\n\t\tif substr == s {\n\t\t\treturn 0\n\t\t}\n\t\treturn -1\n\tcase n > len(s):\n\t\treturn -1\n\t}\n\t// Rabin-Karp search from the end of the string\n\thashss, pow := hashStrRev(substr)\n\tlast := len(s) - n\n\tvar h uint32\n\tfor i := len(s) - 1; i >= last; i-- {\n\t\th = h*primeRK + uint32(s[i])\n\t}\n\tif h == hashss && s[last:] == substr {\n\t\treturn last\n\t}\n\tfor i := last - 1; i >= 0; i-- {\n\t\th *= primeRK\n\t\th += uint32(s[i])\n\t\th -= pow * uint32(s[i+n])\n\t\tif h == hashss && s[i:i+n] == substr {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// IndexByte returns the index of the first instance of c in s, or -1 if c is not present in s.\nfunc IndexByte(s string, c byte) int {\n\treturn bytealg.IndexByteString(s, c)\n}\n\n// IndexRune returns the index of the first instance of the Unicode code point\n// r, or -1 if rune is not present in s.\n// If r is utf8.RuneError, it returns the first instance of any\n// invalid UTF-8 byte sequence.\nfunc IndexRune(s string, r rune) int {\n\tswitch {\n\tcase 0 <= r && r < utf8.RuneSelf:\n\t\treturn IndexByte(s, byte(r))\n\tcase r == utf8.RuneError:\n\t\tfor i, r := range s {\n\t\t\tif r == utf8.RuneError {\n\t\t\t\treturn i\n\t\t\t}\n\t\t}\n\t\treturn -1\n\tcase !utf8.ValidRune(r):\n\t\treturn -1\n\tdefault:\n\t\treturn Index(s, string(r))\n\t}\n}\n\n// IndexAny returns the index of the first instance of any Unicode code point\n// from chars in s, or -1 if no Unicode code point from chars is present in s.\nfunc IndexAny(s, chars string) int {\n\tif chars == \"\" {\n\t\t// Avoid scanning all of s.\n\t\treturn -1\n\t}\n\tif len(s) > 8 {\n\t\tif as, isASCII := makeASCIISet(chars); isASCII {\n\t\t\tfor i := 0; i < len(s); i++ {\n\t\t\t\tif as.contains(s[i]) {\n\t\t\t\t\treturn i\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1\n\t\t}\n\t}\n\tfor i, c := range s {\n\t\tfor _, m := range chars {\n\t\t\tif c == m {\n\t\t\t\treturn i\n\t\t\t}\n\t\t}\n\t}\n\treturn -1\n}\n\n// LastIndexAny returns the index of the last instance of any Unicode code\n// point from chars in s, or -1 if no Unicode code point from chars is\n// present in s.\nfunc LastIndexAny(s, chars string) int {\n\tif chars == \"\" {\n\t\t// Avoid scanning all of s.\n\t\treturn -1\n\t}\n\tif len(s) > 8 {\n\t\tif as, isASCII := makeASCIISet(chars); isASCII {\n\t\t\tfor i := len(s) - 1; i >= 0; i-- {\n\t\t\t\tif as.contains(s[i]) {\n\t\t\t\t\treturn i\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1\n\t\t}\n\t}\n\tfor i := len(s); i > 0; {\n\t\tr, size := utf8.DecodeLastRuneInString(s[:i])\n\t\ti -= size\n\t\tfor _, c := range chars {\n\t\t\tif r == c {\n\t\t\t\treturn i\n\t\t\t}\n\t\t}\n\t}\n\treturn -1\n}\n\n// LastIndexByte returns the index of the last instance of c in s, or -1 if c is not present in s.\nfunc LastIndexByte(s string, c byte) int {\n\tfor i := len(s) - 1; i >= 0; i-- {\n\t\tif s[i] == c {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// Generic split: splits after each instance of sep,\n// including sepSave bytes of sep in the subarrays.\nfunc genSplit(s, sep string, sepSave, n int) []string {\n\tif n == 0 {\n\t\treturn nil\n\t}\n\tif sep == \"\" {\n\t\treturn explode(s, n)\n\t}\n\tif n < 0 {\n\t\tn = Count(s, sep) + 1\n\t}\n\n\ta := make([]string, n)\n\tn--\n\ti := 0\n\tfor i < n {\n\t\tm := Index(s, sep)\n\t\tif m < 0 {\n\t\t\tbreak\n\t\t}\n\t\ta[i] = s[:m+sepSave]\n\t\ts = s[m+len(sep):]\n\t\ti++\n\t}\n\ta[i] = s\n\treturn a[:i+1]\n}\n\n// SplitN slices s into substrings separated by sep and returns a slice of\n// the substrings between those separators.\n//\n// The count determines the number of substrings to return:\n// n > 0: at most n substrings; the last substring will be the unsplit remainder.\n// n == 0: the result is nil (zero substrings)\n// n < 0: all substrings\n//\n// Edge cases for s and sep (for example, empty strings) are handled\n// as described in the documentation for Split.\nfunc SplitN(s, sep string, n int) []string { return genSplit(s, sep, 0, n) }\n\n// SplitAfterN slices s into substrings after each instance of sep and\n// returns a slice of those substrings.\n//\n// The count determines the number of substrings to return:\n// n > 0: at most n substrings; the last substring will be the unsplit remainder.\n// n == 0: the result is nil (zero substrings)\n// n < 0: all substrings\n//\n// Edge cases for s and sep (for example, empty strings) are handled\n// as described in the documentation for SplitAfter.\nfunc SplitAfterN(s, sep string, n int) []string {\n\treturn genSplit(s, sep, len(sep), n)\n}\n\n// Split slices s into all substrings separated by sep and returns a slice of\n// the substrings between those separators.\n//\n// If s does not contain sep and sep is not empty, Split returns a\n// slice of length 1 whose only element is s.\n//\n// If sep is empty, Split splits after each UTF-8 sequence. If both s\n// and sep are empty, Split returns an empty slice.\n//\n// It is equivalent to SplitN with a count of -1.\nfunc Split(s, sep string) []string { return genSplit(s, sep, 0, -1) }\n\n// SplitAfter slices s into all substrings after each instance of sep and\n// returns a slice of those substrings.\n//\n// If s does not contain sep and sep is not empty, SplitAfter returns\n// a slice of length 1 whose only element is s.\n//\n// If sep is empty, SplitAfter splits after each UTF-8 sequence. If\n// both s and sep are empty, SplitAfter returns an empty slice.\n//\n// It is equivalent to SplitAfterN with a count of -1.\nfunc SplitAfter(s, sep string) []string {\n\treturn genSplit(s, sep, len(sep), -1)\n}\n\nvar asciiSpace = [256]uint8{'\\t': 1, '\\n': 1, '\\v': 1, '\\f': 1, '\\r': 1, ' ': 1}\n\n// Fields splits the string s around each instance of one or more consecutive white space\n// characters, as defined by unicode.IsSpace, returning a slice of substrings of s or an\n// empty slice if s contains only white space.\nfunc Fields(s string) []string {\n\t// First count the fields.\n\t// This is an exact count if s is ASCII, otherwise it is an approximation.\n\tn := 0\n\twasSpace := 1\n\t// setBits is used to track which bits are set in the bytes of s.\n\tsetBits := uint8(0)\n\tfor i := 0; i < len(s); i++ {\n\t\tr := s[i]\n\t\tsetBits |= r\n\t\tisSpace := int(asciiSpace[r])\n\t\tn += wasSpace & ^isSpace\n\t\twasSpace = isSpace\n\t}\n\n\tif setBits < utf8.RuneSelf { // ASCII fast path\n\t\ta := make([]string, n)\n\t\tna := 0\n\t\tfieldStart := 0\n\t\ti := 0\n\t\t// Skip spaces in the front of the input.\n\t\tfor i < len(s) && asciiSpace[s[i]] != 0 {\n\t\t\ti++\n\t\t}\n\t\tfieldStart = i\n\t\tfor i < len(s) {\n\t\t\tif asciiSpace[s[i]] == 0 {\n\t\t\t\ti++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ta[na] = s[fieldStart:i]\n\t\t\tna++\n\t\t\ti++\n\t\t\t// Skip spaces in between fields.\n\t\t\tfor i < len(s) && asciiSpace[s[i]] != 0 {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tfieldStart = i\n\t\t}\n\t\tif fieldStart < len(s) { // Last field might end at EOF.\n\t\t\ta[na] = s[fieldStart:]\n\t\t}\n\t\treturn a\n\t}\n\n\t// Some runes in the input string are not ASCII.\n\treturn FieldsFunc(s, unicode.IsSpace)\n}\n\n// FieldsFunc splits the string s at each run of Unicode code points c satisfying f(c)\n// and returns an array of slices of s. If all code points in s satisfy f(c) or the\n// string is empty, an empty slice is returned.\n// FieldsFunc makes no guarantees about the order in which it calls f(c).\n// If f does not return consistent results for a given c, FieldsFunc may crash.\nfunc FieldsFunc(s string, f func(rune) bool) []string {\n\t// A span is used to record a slice of s of the form s[start:end].\n\t// The start index is inclusive and the end index is exclusive.\n\ttype span struct {\n\t\tstart int\n\t\tend int\n\t}\n\tspans := make([]span, 0, 32)\n\n\t// Find the field start and end indices.\n\twasField := false\n\tfromIndex := 0\n\tfor i, rune := range s {\n\t\tif f(rune) {\n\t\t\tif wasField {\n\t\t\t\tspans = append(spans, span{start: fromIndex, end: i})\n\t\t\t\twasField = false\n\t\t\t}\n\t\t} else {\n\t\t\tif !wasField {\n\t\t\t\tfromIndex = i\n\t\t\t\twasField = true\n\t\t\t}\n\t\t}\n\t}\n\n\t// Last field might end at EOF.\n\tif wasField {\n\t\tspans = append(spans, span{fromIndex, len(s)})\n\t}\n\n\t// Create strings from recorded field indices.\n\ta := make([]string, len(spans))\n\tfor i, span := range spans {\n\t\ta[i] = s[span.start:span.end]\n\t}\n\n\treturn a\n}\n\n// Join concatenates the elements of a to create a single string. The separator string\n// sep is placed between elements in the resulting string.\nfunc Join(a []string, sep string) string {\n\tswitch len(a) {\n\tcase 0:\n\t\treturn \"\"\n\tcase 1:\n\t\treturn a[0]\n\t}\n\tn := len(sep) * (len(a) - 1)\n\tfor i := 0; i < len(a); i++ {\n\t\tn += len(a[i])\n\t}\n\n\tvar b Builder\n\tb.Grow(n)\n\tb.WriteString(a[0])\n\tfor _, s := range a[1:] {\n\t\tb.WriteString(sep)\n\t\tb.WriteString(s)\n\t}\n\treturn b.String()\n}\n\n// HasPrefix tests whether the string s begins with prefix.\nfunc HasPrefix(s, prefix string) bool {\n\treturn len(s) >= len(prefix) && s[0:len(prefix)] == prefix\n}\n\n// HasSuffix tests whether the string s ends with suffix.\nfunc HasSuffix(s, suffix string) bool {\n\treturn len(s) >= len(suffix) && s[len(s)-len(suffix):] == suffix\n}\n\n// Map returns a copy of the string s with all its characters modified\n// according to the mapping function. If mapping returns a negative value, the character is\n// dropped from the string with no replacement.\nfunc Map(mapping func(rune) rune, s string) string {\n\t// In the worst case, the string can grow when mapped, making\n\t// things unpleasant. But it's so rare we barge in assuming it's\n\t// fine. It could also shrink but that falls out naturally.\n\n\t// The output buffer b is initialized on demand, the first\n\t// time a character differs.\n\tvar b Builder\n\n\tfor i, c := range s {\n\t\tr := mapping(c)\n\t\tif r == c && c != utf8.RuneError {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar width int\n\t\tif c == utf8.RuneError {\n\t\t\tc, width = utf8.DecodeRuneInString(s[i:])\n\t\t\tif width != 1 && r == c {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t} else {\n\t\t\twidth = utf8.RuneLen(c)\n\t\t}\n\n\t\tb.Grow(len(s) + utf8.UTFMax)\n\t\tb.WriteString(s[:i])\n\t\tif r >= 0 {\n\t\t\tb.WriteRune(r)\n\t\t}\n\n\t\ts = s[i+width:]\n\t\tbreak\n\t}\n\n\t// Fast path for unchanged input\n\tif b.Cap() == 0 { // didn't call b.Grow above\n\t\treturn s\n\t}\n\n\tfor _, c := range s {\n\t\tr := mapping(c)\n\n\t\tif r >= 0 {\n\t\t\t// common case\n\t\t\t// Due to inlining, it is more performant to determine if WriteByte should be\n\t\t\t// invoked rather than always call WriteRune\n\t\t\tif r < utf8.RuneSelf {\n\t\t\t\tb.WriteByte(byte(r))\n\t\t\t} else {\n\t\t\t\t// r is not a ASCII rune.\n\t\t\t\tb.WriteRune(r)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn b.String()\n}\n\n// Repeat returns a new string consisting of count copies of the string s.\n//\n// It panics if count is negative or if\n// the result of (len(s) * count) overflows.\nfunc Repeat(s string, count int) string {\n\tif count == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Since we cannot return an error on overflow,\n\t// we should panic if the repeat will generate\n\t// an overflow.\n\t// See Issue golang.org/issue/16237\n\tif count < 0 {\n\t\tpanic(\"strings: negative Repeat count\")\n\t} else if len(s)*count/count != len(s) {\n\t\tpanic(\"strings: Repeat count causes overflow\")\n\t}\n\n\tn := len(s) * count\n\tvar b Builder\n\tb.Grow(n)\n\tb.WriteString(s)\n\tfor b.Len() < n {\n\t\tif b.Len() <= n/2 {\n\t\t\tb.WriteString(b.String())\n\t\t} else {\n\t\t\tb.WriteString(b.String()[:n-b.Len()])\n\t\t\tbreak\n\t\t}\n\t}\n\treturn b.String()\n}\n\n// ToUpper returns a copy of the string s with all Unicode letters mapped to their upper case.\nfunc ToUpper(s string) string {\n\tisASCII, hasLower := true, false\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tif c >= utf8.RuneSelf {\n\t\t\tisASCII = false\n\t\t\tbreak\n\t\t}\n\t\thasLower = hasLower || (c >= 'a' && c <= 'z')\n\t}\n\n\tif isASCII { // optimize for ASCII-only strings.\n\t\tif !hasLower {\n\t\t\treturn s\n\t\t}\n\t\tvar b Builder\n\t\tb.Grow(len(s))\n\t\tfor i := 0; i < len(s); i++ {\n\t\t\tc := s[i]\n\t\t\tif c >= 'a' && c <= 'z' {\n\t\t\t\tc -= 'a' - 'A'\n\t\t\t}\n\t\t\tb.WriteByte(c)\n\t\t}\n\t\treturn b.String()\n\t}\n\treturn Map(unicode.ToUpper, s)\n}\n\n// ToLower returns a copy of the string s with all Unicode letters mapped to their lower case.\nfunc ToLower(s string) string {\n\tisASCII, hasUpper := true, false\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tif c >= utf8.RuneSelf {\n\t\t\tisASCII = false\n\t\t\tbreak\n\t\t}\n\t\thasUpper = hasUpper || (c >= 'A' && c <= 'Z')\n\t}\n\n\tif isASCII { // optimize for ASCII-only strings.\n\t\tif !hasUpper {\n\t\t\treturn s\n\t\t}\n\t\tvar b Builder\n\t\tb.Grow(len(s))\n\t\tfor i := 0; i < len(s); i++ {\n\t\t\tc := s[i]\n\t\t\tif c >= 'A' && c <= 'Z' {\n\t\t\t\tc += 'a' - 'A'\n\t\t\t}\n\t\t\tb.WriteByte(c)\n\t\t}\n\t\treturn b.String()\n\t}\n\treturn Map(unicode.ToLower, s)\n}\n\n// ToTitle returns a copy of the string s with all Unicode letters mapped to their title case.\nfunc ToTitle(s string) string { return Map(unicode.ToTitle, s) }\n\n// ToUpperSpecial returns a copy of the string s with all Unicode letters mapped to their\n// upper case using the case mapping specified by c.\nfunc ToUpperSpecial(c unicode.SpecialCase, s string) string {\n\treturn Map(c.ToUpper, s)\n}\n\n// ToLowerSpecial returns a copy of the string s with all Unicode letters mapped to their\n// lower case using the case mapping specified by c.\nfunc ToLowerSpecial(c unicode.SpecialCase, s string) string {\n\treturn Map(c.ToLower, s)\n}\n\n// ToTitleSpecial returns a copy of the string s with all Unicode letters mapped to their\n// title case, giving priority to the special casing rules.\nfunc ToTitleSpecial(c unicode.SpecialCase, s string) string {\n\treturn Map(c.ToTitle, s)\n}\n\n// isSeparator reports whether the rune could mark a word boundary.\n// TODO: update when package unicode captures more of the properties.\nfunc isSeparator(r rune) bool {\n\t// ASCII alphanumerics and underscore are not separators\n\tif r <= 0x7F {\n\t\tswitch {\n\t\tcase '0' <= r && r <= '9':\n\t\t\treturn false\n\t\tcase 'a' <= r && r <= 'z':\n\t\t\treturn false\n\t\tcase 'A' <= r && r <= 'Z':\n\t\t\treturn false\n\t\tcase r == '_':\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t}\n\t// Letters and digits are not separators\n\tif unicode.IsLetter(r) || unicode.IsDigit(r) {\n\t\treturn false\n\t}\n\t// Otherwise, all we can do for now is treat spaces as separators.\n\treturn unicode.IsSpace(r)\n}\n\n// Title returns a copy of the string s with all Unicode letters that begin words\n// mapped to their title case.\n//\n// BUG(rsc): The rule Title uses for word boundaries does not handle Unicode punctuation properly.\nfunc Title(s string) string {\n\t// Use a closure here to remember state.\n\t// Hackish but effective. Depends on Map scanning in order and calling\n\t// the closure once per rune.\n\tprev := ' '\n\treturn Map(\n\t\tfunc(r rune) rune {\n\t\t\tif isSeparator(prev) {\n\t\t\t\tprev = r\n\t\t\t\treturn unicode.ToTitle(r)\n\t\t\t}\n\t\t\tprev = r\n\t\t\treturn r\n\t\t},\n\t\ts)\n}\n\n// TrimLeftFunc returns a slice of the string s with all leading\n// Unicode code points c satisfying f(c) removed.\nfunc TrimLeftFunc(s string, f func(rune) bool) string {\n\ti := indexFunc(s, f, false)\n\tif i == -1 {\n\t\treturn \"\"\n\t}\n\treturn s[i:]\n}\n\n// TrimRightFunc returns a slice of the string s with all trailing\n// Unicode code points c satisfying f(c) removed.\nfunc TrimRightFunc(s string, f func(rune) bool) string {\n\ti := lastIndexFunc(s, f, false)\n\tif i >= 0 && s[i] >= utf8.RuneSelf {\n\t\t_, wid := utf8.DecodeRuneInString(s[i:])\n\t\ti += wid\n\t} else {\n\t\ti++\n\t}\n\treturn s[0:i]\n}\n\n// TrimFunc returns a slice of the string s with all leading\n// and trailing Unicode code points c satisfying f(c) removed.\nfunc TrimFunc(s string, f func(rune) bool) string {\n\treturn TrimRightFunc(TrimLeftFunc(s, f), f)\n}\n\n// IndexFunc returns the index into s of the first Unicode\n// code point satisfying f(c), or -1 if none do.\nfunc IndexFunc(s string, f func(rune) bool) int {\n\treturn indexFunc(s, f, true)\n}\n\n// LastIndexFunc returns the index into s of the last\n// Unicode code point satisfying f(c), or -1 if none do.\nfunc LastIndexFunc(s string, f func(rune) bool) int {\n\treturn lastIndexFunc(s, f, true)\n}\n\n// indexFunc is the same as IndexFunc except that if\n// truth==false, the sense of the predicate function is\n// inverted.\nfunc indexFunc(s string, f func(rune) bool, truth bool) int {\n\tfor i, r := range s {\n\t\tif f(r) == truth {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// lastIndexFunc is the same as LastIndexFunc except that if\n// truth==false, the sense of the predicate function is\n// inverted.\nfunc lastIndexFunc(s string, f func(rune) bool, truth bool) int {\n\tfor i := len(s); i > 0; {\n\t\tr, size := utf8.DecodeLastRuneInString(s[0:i])\n\t\ti -= size\n\t\tif f(r) == truth {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// asciiSet is a 32-byte value, where each bit represents the presence of a\n// given ASCII character in the set. The 128-bits of the lower 16 bytes,\n// starting with the least-significant bit of the lowest word to the\n// most-significant bit of the highest word, map to the full range of all\n// 128 ASCII characters. The 128-bits of the upper 16 bytes will be zeroed,\n// ensuring that any non-ASCII character will be reported as not in the set.\ntype asciiSet [8]uint32\n\n// makeASCIISet creates a set of ASCII characters and reports whether all\n// characters in chars are ASCII.\nfunc makeASCIISet(chars string) (as asciiSet, ok bool) {\n\tfor i := 0; i < len(chars); i++ {\n\t\tc := chars[i]\n\t\tif c >= utf8.RuneSelf {\n\t\t\treturn as, false\n\t\t}\n\t\tas[c>>5] |= 1 << uint(c&31)\n\t}\n\treturn as, true\n}\n\n// contains reports whether c is inside the set.\nfunc (as *asciiSet) contains(c byte) bool {\n\treturn (as[c>>5] & (1 << uint(c&31))) != 0\n}\n\nfunc makeCutsetFunc(cutset string) func(rune) bool {\n\tif len(cutset) == 1 && cutset[0] < utf8.RuneSelf {\n\t\treturn func(r rune) bool {\n\t\t\treturn r == rune(cutset[0])\n\t\t}\n\t}\n\tif as, isASCII := makeASCIISet(cutset); isASCII {\n\t\treturn func(r rune) bool {\n\t\t\treturn r < utf8.RuneSelf && as.contains(byte(r))\n\t\t}\n\t}\n\treturn func(r rune) bool { return IndexRune(cutset, r) >= 0 }\n}\n\n// Trim returns a slice of the string s with all leading and\n// trailing Unicode code points contained in cutset removed.\nfunc Trim(s string, cutset string) string {\n\tif s == \"\" || cutset == \"\" {\n\t\treturn s\n\t}\n\treturn TrimFunc(s, makeCutsetFunc(cutset))\n}\n\n// TrimLeft returns a slice of the string s with all leading\n// Unicode code points contained in cutset removed.\n//\n// To remove a prefix, use TrimPrefix instead.\nfunc TrimLeft(s string, cutset string) string {\n\tif s == \"\" || cutset == \"\" {\n\t\treturn s\n\t}\n\treturn TrimLeftFunc(s, makeCutsetFunc(cutset))\n}\n\n// TrimRight returns a slice of the string s, with all trailing\n// Unicode code points contained in cutset removed.\n//\n// To remove a suffix, use TrimSuffix instead.\nfunc TrimRight(s string, cutset string) string {\n\tif s == \"\" || cutset == \"\" {\n\t\treturn s\n\t}\n\treturn TrimRightFunc(s, makeCutsetFunc(cutset))\n}\n\n// TrimSpace returns a slice of the string s, with all leading\n// and trailing white space removed, as defined by Unicode.\nfunc TrimSpace(s string) string {\n\treturn TrimFunc(s, unicode.IsSpace)\n}\n\n// TrimPrefix returns s without the provided leading prefix string.\n// If s doesn't start with prefix, s is returned unchanged.\nfunc TrimPrefix(s, prefix string) string {\n\tif HasPrefix(s, prefix) {\n\t\treturn s[len(prefix):]\n\t}\n\treturn s\n}\n\n// TrimSuffix returns s without the provided trailing suffix string.\n// If s doesn't end with suffix, s is returned unchanged.\nfunc TrimSuffix(s, suffix string) string {\n\tif HasSuffix(s, suffix) {\n\t\treturn s[:len(s)-len(suffix)]\n\t}\n\treturn s\n}\n\n// Replace returns a copy of the string s with the first n\n// non-overlapping instances of old replaced by new.\n// If old is empty, it matches at the beginning of the string\n// and after each UTF-8 sequence, yielding up to k+1 replacements\n// for a k-rune string.\n// If n < 0, there is no limit on the number of replacements.\nfunc Replace(s, old, new string, n int) string {\n\tif old == new || n == 0 {\n\t\treturn s // avoid allocation\n\t}\n\n\t// Compute number of replacements.\n\tif m := Count(s, old); m == 0 {\n\t\treturn s // avoid allocation\n\t} else if n < 0 || m < n {\n\t\tn = m\n\t}\n\n\t// Apply replacements to buffer.\n\tt := make([]byte, len(s)+n*(len(new)-len(old)))\n\tw := 0\n\tstart := 0\n\tfor i := 0; i < n; i++ {\n\t\tj := start\n\t\tif len(old) == 0 {\n\t\t\tif i > 0 {\n\t\t\t\t_, wid := utf8.DecodeRuneInString(s[start:])\n\t\t\t\tj += wid\n\t\t\t}\n\t\t} else {\n\t\t\tj += Index(s[start:], old)\n\t\t}\n\t\tw += copy(t[w:], s[start:j])\n\t\tw += copy(t[w:], new)\n\t\tstart = j + len(old)\n\t}\n\tw += copy(t[w:], s[start:])\n\treturn string(t[0:w])\n}\n\n// ReplaceAll returns a copy of the string s with all\n// non-overlapping instances of old replaced by new.\n// If old is empty, it matches at the beginning of the string\n// and after each UTF-8 sequence, yielding up to k+1 replacements\n// for a k-rune string.\nfunc ReplaceAll(s, old, new string) string {\n\treturn Replace(s, old, new, -1)\n}\n\n// EqualFold reports whether s and t, interpreted as UTF-8 strings,\n// are equal under Unicode case-folding.\nfunc EqualFold(s, t string) bool {\n\tfor s != \"\" && t != \"\" {\n\t\t// Extract first rune from each string.\n\t\tvar sr, tr rune\n\t\tif s[0] < utf8.RuneSelf {\n\t\t\tsr, s = rune(s[0]), s[1:]\n\t\t} else {\n\t\t\tr, size := utf8.DecodeRuneInString(s)\n\t\t\tsr, s = r, s[size:]\n\t\t}\n\t\tif t[0] < utf8.RuneSelf {\n\t\t\ttr, t = rune(t[0]), t[1:]\n\t\t} else {\n\t\t\tr, size := utf8.DecodeRuneInString(t)\n\t\t\ttr, t = r, t[size:]\n\t\t}\n\n\t\t// If they match, keep going; if not, return false.\n\n\t\t// Easy case.\n\t\tif tr == sr {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Make sr < tr to simplify what follows.\n\t\tif tr < sr {\n\t\t\ttr, sr = sr, tr\n\t\t}\n\t\t// Fast check for ASCII.\n\t\tif tr < utf8.RuneSelf {\n\t\t\t// ASCII only, sr/tr must be upper/lower case\n\t\t\tif 'A' <= sr && sr <= 'Z' && tr == sr+'a'-'A' {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\n\t\t// General case. SimpleFold(x) returns the next equivalent rune > x\n\t\t// or wraps around to smaller values.\n\t\tr := unicode.SimpleFold(sr)\n\t\tfor r != sr && r < tr {\n\t\t\tr = unicode.SimpleFold(r)\n\t\t}\n\t\tif r == tr {\n\t\t\tcontinue\n\t\t}\n\t\treturn false\n\t}\n\n\t// One string is empty. Are both?\n\treturn s == t\n}\n\n// Index returns the index of the first instance of substr in s, or -1 if substr is not present in s.\nfunc Index(s, substr string) int {\n\tn := len(substr)\n\tswitch {\n\tcase n == 0:\n\t\treturn 0\n\tcase n == 1:\n\t\treturn IndexByte(s, substr[0])\n\tcase n == len(s):\n\t\tif substr == s {\n\t\t\treturn 0\n\t\t}\n\t\treturn -1\n\tcase n > len(s):\n\t\treturn -1\n\tcase n <= bytealg.MaxLen:\n\t\t// Use brute force when s and substr both are small\n\t\tif len(s) <= bytealg.MaxBruteForce {\n\t\t\treturn bytealg.IndexString(s, substr)\n\t\t}\n\t\tc0 := substr[0]\n\t\tc1 := substr[1]\n\t\ti := 0\n\t\tt := len(s) - n + 1\n\t\tfails := 0\n\t\tfor i < t {\n\t\t\tif s[i] != c0 {\n\t\t\t\t// IndexByte is faster than bytealg.IndexString, so use it as long as\n\t\t\t\t// we're not getting lots of false positives.\n\t\t\t\to := IndexByte(s[i:t], c0)\n\t\t\t\tif o < 0 {\n\t\t\t\t\treturn -1\n\t\t\t\t}\n\t\t\t\ti += o\n\t\t\t}\n\t\t\tif s[i+1] == c1 && s[i:i+n] == substr {\n\t\t\t\treturn i\n\t\t\t}\n\t\t\tfails++\n\t\t\ti++\n\t\t\t// Switch to bytealg.IndexString when IndexByte produces too many false positives.\n\t\t\tif fails > bytealg.Cutover(i) {\n\t\t\t\tr := bytealg.IndexString(s[i:], substr)\n\t\t\t\tif r >= 0 {\n\t\t\t\t\treturn r + i\n\t\t\t\t}\n\t\t\t\treturn -1\n\t\t\t}\n\t\t}\n\t\treturn -1\n\t}\n\tc0 := substr[0]\n\tc1 := substr[1]\n\ti := 0\n\tt := len(s) - n + 1\n\tfails := 0\n\tfor i < t {\n\t\tif s[i] != c0 {\n\t\t\to := IndexByte(s[i:t], c0)\n\t\t\tif o < 0 {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\ti += o\n\t\t}\n\t\tif s[i+1] == c1 && s[i:i+n] == substr {\n\t\t\treturn i\n\t\t}\n\t\ti++\n\t\tfails++\n\t\tif fails >= 4+i>>4 && i < t {\n\t\t\t// See comment in ../bytes/bytes_generic.go.\n\t\t\tj := indexRabinKarp(s[i:], substr)\n\t\t\tif j < 0 {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn i + j\n\t\t}\n\t}\n\treturn -1\n}\n\nfunc indexRabinKarp(s, substr string) int {\n\t// Rabin-Karp search\n\thashss, pow := hashStr(substr)\n\tn := len(substr)\n\tvar h uint32\n\tfor i := 0; i < n; i++ {\n\t\th = h*primeRK + uint32(s[i])\n\t}\n\tif h == hashss && s[:n] == substr {\n\t\treturn 0\n\t}\n\tfor i := n; i < len(s); {\n\t\th *= primeRK\n\t\th += uint32(s[i])\n\t\th -= pow * uint32(s[i-n])\n\t\ti++\n\t\tif h == hashss && s[i-n:i] == substr {\n\t\t\treturn i - n\n\t\t}\n\t}\n\treturn -1\n}\n"}} | |
[Trace - 2:31:12 PM] Sending notification 'textDocument/didClose'. | |
Params: {"textDocument":{"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/strings.go"}} | |
[Trace - 2:31:12 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"failed to run analyses for file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/strings.go: context canceled"} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/strings.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/builder.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/compare.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/reader.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/replace.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/search.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/strings.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/tls_test.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/builder.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/strings.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/reader.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/replace.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/tls.go","diagnostics":[{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":6}},"severity":1,"source":"LSP","message":"could not import net (context canceled)"}]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/debug.go","diagnostics":[{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":11}},"severity":1,"source":"LSP","message":"could not import net/http (context canceled)"}]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/middlewares.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/search.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/error.go","diagnostics":[{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":11}},"severity":1,"source":"LSP","message":"could not import net/http (context canceled)"}]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///usr/local/Cellar/go/1.12.6/libexec/src/strings/compare.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/internal.go","diagnostics":[]} | |
[Trace - 2:31:12 PM] Sending request 'textDocument/hover - (339)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go"},"position":{"line":36,"character":22}} | |
[Trace - 2:31:12 PM] Received response 'textDocument/hover - (339)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"ToLower returns a copy of the string s with all Unicode letters mapped to their lower case.\n```go\nfunc strings.ToLower(s string) string\n```"},"range":{"start":{"line":36,"character":16},"end":{"line":36,"character":23}}} | |
[Trace - 2:31:31 PM] Sending request 'textDocument/documentLink - (340)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"}} | |
[Trace - 2:31:31 PM] Received response 'textDocument/documentLink - (340)' in 0ms. | |
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":8}},"target":"https://godoc.org/bytes"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":10}},"target":"https://godoc.org/context"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":18}},"target":"https://godoc.org/encoding/base64"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":16}},"target":"https://godoc.org/encoding/json"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":6}},"target":"https://godoc.org/fmt"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":12}},"target":"https://godoc.org/io/ioutil"},{"range":{"start":{"line":9,"character":1},"end":{"line":9,"character":7}},"target":"https://godoc.org/mime"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":17}},"target":"https://godoc.org/mime/multipart"},{"range":{"start":{"line":11,"character":1},"end":{"line":11,"character":11}},"target":"https://godoc.org/net/http"},{"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":10}},"target":"https://godoc.org/strconv"},{"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":10}},"target":"https://godoc.org/strings"},{"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":7}},"target":"https://godoc.org/time"},{"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/auth"},{"range":{"start":{"line":17,"character":1},"end":{"line":17,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/errors"},{"range":{"start":{"line":18,"character":1},"end":{"line":18,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/object"},{"range":{"start":{"line":19,"character":1},"end":{"line":19,"character":39}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/replica"},{"range":{"start":{"line":20,"character":1},"end":{"line":20,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/ring"},{"range":{"start":{"line":21,"character":1},"end":{"line":21,"character":25}},"target":"https://godoc.org/github.com/gorilla/mux"}] | |
[Trace - 2:31:31 PM] Sending request 'textDocument/codeAction - (341)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:31:31 PM] Received response 'textDocument/codeAction - (341)' in 13ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:31 PM] Sending request 'textDocument/codeAction - (342)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":529,"character":9},"end":{"line":529,"character":29}},"context":{"diagnostics":[]}} | |
[Trace - 2:31:31 PM] Received response 'textDocument/codeAction - (342)' in 10ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:32 PM] Sending request 'textDocument/hover - (343)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":519,"character":35}} | |
[Error - 2:31:32 PM] send textDocument/hover#343 no identifier found | |
[Error - 2:31:32 PM] Request textDocument/hover failed. | |
Message: no identifier found | |
Code: 0 | |
[Trace - 2:31:36 PM] Sending request 'textDocument/hover - (344)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":41}} | |
[Trace - 2:31:36 PM] Received response 'textDocument/hover - (344)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar object.ErrNotFound errors.Error\n```"},"range":{"start":{"line":356,"character":37},"end":{"line":356,"character":48}}} | |
[Trace - 2:31:36 PM] Sending request 'textDocument/codeAction - (345)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"context":{"diagnostics":[{"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"message":"cannot use object.ErrNotFound (variable with invalid type) as errors.Error value in argument to errors.SomewhatEqual","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:36 PM] Received response 'textDocument/codeAction - (345)' in 9ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:41 PM] Sending request 'textDocument/definition - (346)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":41}} | |
[Trace - 2:31:41 PM] Received response 'textDocument/definition - (346)' in 95ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","range":{"start":{"line":12,"character":4},"end":{"line":12,"character":15}}}] | |
[Trace - 2:31:41 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","languageId":"go","version":1,"text":"package object\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/cespare/xxhash\"\n\t\"github.com/fastly/REDACTED/pkg/errors\"\n)\n\n// ErrNotFound is a general-purpose error.\nvar ErrNotFound = errors.NewCode(http.StatusNotFound, \"object not found\")\n\n// TagMismatchError should be returned by Deserialize methods\n// when the raw object tag doesn't match their expectation.\ntype TagMismatchError struct {\n\tWant Tag\n\tHave Tag\n}\n\nfunc (e TagMismatchError) Error() string {\n\treturn fmt.Sprintf(\"tag mismatch error: want %s, have %s\", e.Want, e.Have)\n}\n\n// RealmIDTag uniquely identifies an object in the global scope.\ntype RealmIDTag struct {\n\tRealm string `json:\"realm\"`\n\tID string `json:\"id\"`\n\tTag Tag `json:\"tag\"`\n}\n\n// Hash produces a zero-alloc hash of the RealmIDTag.\nfunc (rit RealmIDTag) Hash() uint64 {\n\th := xxhash.Sum64String(rit.Realm)\n\th ^= xxhash.Sum64String(rit.ID)\n\th ^= xxhash.Sum64String(string(rit.Tag))\n\treturn h\n}\n\n// Raw is the object atom which is operated-on by the infrastructure.\n// It must be encrypted before being transmit or stored.\ntype Raw struct {\n\tRealmIDTag\n\tPayload []byte `json:\"payload\"`\n}\n\n// Tag enumerates object types.\ntype Tag string\n\n// Tags for each implemented object.\nconst (\n\tTagGCounter Tag = \"GC\"\n\tTagDCounter Tag = \"DC\"\n\tTagLWWRegister Tag = \"LWWR\"\n\tTagMVRegister Tag = \"MVR\"\n\tTagHyperLogLog Tag = \"HLL\"\n\tTagBloomFilter Tag = \"BF\"\n\tTagMultiMap Tag = \"MMAP\"\n)\n\n// Merge two raw objects together, based on tag.\n// This dumb function courtesy Go's dumb type system.\nfunc (r *Raw) Merge(other Raw) error {\n\tif r.Tag != other.Tag {\n\t\treturn TagMismatchError{Want: r.Tag, Have: other.Tag}\n\t}\n\n\tswitch r.Tag {\n\tcase TagGCounter:\n\t\tvar a, b GCounter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing GCounter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing GCounter src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagDCounter:\n\t\tvar a, b DCounter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing DCounter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing DCounter src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagLWWRegister:\n\t\tvar a, b LWWRegister\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing LWWRegister dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing LWWRegister src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagMVRegister:\n\t\tvar a, b MVRegister\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MVRegister dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MVRegister src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagHyperLogLog:\n\t\tvar a, b HyperLogLog\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing HyperLogLog dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing HyperLogLog src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagBloomFilter:\n\t\tvar a, b BloomFilter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing BloomFilter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing BloomFilter src payload\")\n\t\t}\n\t\tif err := a.Merge(b); err != nil {\n\t\t\treturn errors.Wrap(err, \"error merging BloomFilter\")\n\t\t}\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagMultiMap:\n\t\tvar a, b MultiMap\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MultiMap dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MultiMap src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tdefault:\n\t\treturn errors.Errorf(\"unknown tag: %q\", r.Tag)\n\t}\n}\n\n// Equals returns true if the two raw objects are identical.\nfunc (r *Raw) Equals(other Raw) bool {\n\treturn r.Realm == other.Realm &&\n\t\tr.ID == other.ID &&\n\t\tr.Tag == other.Tag &&\n\t\tbytes.Equal(r.Payload, other.Payload)\n}\n"}} | |
[Trace - 2:31:41 PM] Sending notification 'textDocument/didClose'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go"}} | |
[Trace - 2:31:41 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"failed to run analyses for file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go: context canceled"} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/hyperloglog.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Sending request 'textDocument/hover - (347)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":41}} | |
[Trace - 2:31:41 PM] Received response 'textDocument/hover - (347)' in 298ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar object.ErrNotFound errors.Error\n```"},"range":{"start":{"line":356,"character":37},"end":{"line":356,"character":48}}} | |
[Trace - 2:31:41 PM] Sending request 'textDocument/codeAction - (348)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"context":{"diagnostics":[{"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"message":"cannot use object.ErrNotFound (variable with invalid type) as errors.Error value in argument to errors.SomewhatEqual","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/internal.go","diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/tls.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/debug.go","diagnostics":[{"range":{"start":{"line":43,"character":13},"end":{"line":43,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/hyperloglog.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","diagnostics":[{"range":{"start":{"line":528,"character":18},"end":{"line":528,"character":19}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *http.Request) as *invalid type value in argument to mux.Vars"},{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:31:41 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/middlewares.go","diagnostics":[]} | |
[Trace - 2:31:41 PM] Received response 'textDocument/codeAction - (348)' in 150ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:41 PM] Sending request 'textDocument/codeAction - (349)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"context":{"diagnostics":[{"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"message":"cannot use object.ErrNotFound (variable with invalid type) as errors.Error value in argument to errors.SomewhatEqual","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:41 PM] Received response 'textDocument/codeAction - (349)' in 10ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:42 PM] Sending request 'textDocument/hover - (350)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":41}} | |
[Trace - 2:31:42 PM] Received response 'textDocument/hover - (350)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar object.ErrNotFound errors.Error\n```"},"range":{"start":{"line":356,"character":37},"end":{"line":356,"character":48}}} | |
[Trace - 2:31:42 PM] Sending request 'textDocument/definition - (351)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":41}} | |
[Trace - 2:31:42 PM] Received response 'textDocument/definition - (351)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","range":{"start":{"line":12,"character":4},"end":{"line":12,"character":15}}}] | |
[Trace - 2:31:42 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","languageId":"go","version":1,"text":"package object\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/cespare/xxhash\"\n\t\"github.com/fastly/REDACTED/pkg/errors\"\n)\n\n// ErrNotFound is a general-purpose error.\nvar ErrNotFound = errors.NewCode(http.StatusNotFound, \"object not found\")\n\n// TagMismatchError should be returned by Deserialize methods\n// when the raw object tag doesn't match their expectation.\ntype TagMismatchError struct {\n\tWant Tag\n\tHave Tag\n}\n\nfunc (e TagMismatchError) Error() string {\n\treturn fmt.Sprintf(\"tag mismatch error: want %s, have %s\", e.Want, e.Have)\n}\n\n// RealmIDTag uniquely identifies an object in the global scope.\ntype RealmIDTag struct {\n\tRealm string `json:\"realm\"`\n\tID string `json:\"id\"`\n\tTag Tag `json:\"tag\"`\n}\n\n// Hash produces a zero-alloc hash of the RealmIDTag.\nfunc (rit RealmIDTag) Hash() uint64 {\n\th := xxhash.Sum64String(rit.Realm)\n\th ^= xxhash.Sum64String(rit.ID)\n\th ^= xxhash.Sum64String(string(rit.Tag))\n\treturn h\n}\n\n// Raw is the object atom which is operated-on by the infrastructure.\n// It must be encrypted before being transmit or stored.\ntype Raw struct {\n\tRealmIDTag\n\tPayload []byte `json:\"payload\"`\n}\n\n// Tag enumerates object types.\ntype Tag string\n\n// Tags for each implemented object.\nconst (\n\tTagGCounter Tag = \"GC\"\n\tTagDCounter Tag = \"DC\"\n\tTagLWWRegister Tag = \"LWWR\"\n\tTagMVRegister Tag = \"MVR\"\n\tTagHyperLogLog Tag = \"HLL\"\n\tTagBloomFilter Tag = \"BF\"\n\tTagMultiMap Tag = \"MMAP\"\n)\n\n// Merge two raw objects together, based on tag.\n// This dumb function courtesy Go's dumb type system.\nfunc (r *Raw) Merge(other Raw) error {\n\tif r.Tag != other.Tag {\n\t\treturn TagMismatchError{Want: r.Tag, Have: other.Tag}\n\t}\n\n\tswitch r.Tag {\n\tcase TagGCounter:\n\t\tvar a, b GCounter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing GCounter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing GCounter src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagDCounter:\n\t\tvar a, b DCounter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing DCounter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing DCounter src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagLWWRegister:\n\t\tvar a, b LWWRegister\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing LWWRegister dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing LWWRegister src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagMVRegister:\n\t\tvar a, b MVRegister\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MVRegister dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MVRegister src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagHyperLogLog:\n\t\tvar a, b HyperLogLog\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing HyperLogLog dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing HyperLogLog src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagBloomFilter:\n\t\tvar a, b BloomFilter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing BloomFilter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing BloomFilter src payload\")\n\t\t}\n\t\tif err := a.Merge(b); err != nil {\n\t\t\treturn errors.Wrap(err, \"error merging BloomFilter\")\n\t\t}\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagMultiMap:\n\t\tvar a, b MultiMap\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MultiMap dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MultiMap src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tdefault:\n\t\treturn errors.Errorf(\"unknown tag: %q\", r.Tag)\n\t}\n}\n\n// Equals returns true if the two raw objects are identical.\nfunc (r *Raw) Equals(other Raw) bool {\n\treturn r.Realm == other.Realm &&\n\t\tr.ID == other.ID &&\n\t\tr.Tag == other.Tag &&\n\t\tbytes.Equal(r.Payload, other.Payload)\n}\n"}} | |
[Trace - 2:31:42 PM] Sending notification 'textDocument/didClose'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go"}} | |
[Trace - 2:31:43 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"failed to run analyses for file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go: context canceled"} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/hyperloglog.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Sending request 'textDocument/hover - (352)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":41}} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received response 'textDocument/hover - (352)' in 332ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar object.ErrNotFound errors.Error\n```"},"range":{"start":{"line":356,"character":37},"end":{"line":356,"character":48}}} | |
[Trace - 2:31:43 PM] Sending notification '$/cancelRequest'. | |
Params: {"id":352} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Sending request 'textDocument/hover - (353)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":41}} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/internal.go","diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","diagnostics":[{"range":{"start":{"line":528,"character":18},"end":{"line":528,"character":19}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *http.Request) as *invalid type value in argument to mux.Vars"},{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:31:43 PM] Received response 'textDocument/hover - (353)' in 175ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar object.ErrNotFound errors.Error\n```"},"range":{"start":{"line":356,"character":37},"end":{"line":356,"character":48}}} | |
[Trace - 2:31:43 PM] Sending request 'textDocument/codeAction - (354)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"context":{"diagnostics":[{"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"message":"cannot use object.ErrNotFound (variable with invalid type) as errors.Error value in argument to errors.SomewhatEqual","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/middlewares.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/hyperloglog.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/tls.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/debug.go","diagnostics":[{"range":{"start":{"line":43,"character":13},"end":{"line":43,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:43 PM] Received response 'textDocument/codeAction - (354)' in 31ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:43 PM] Sending request 'textDocument/codeAction - (355)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"context":{"diagnostics":[{"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"message":"cannot use object.ErrNotFound (variable with invalid type) as errors.Error value in argument to errors.SomewhatEqual","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:43 PM] Received response 'textDocument/codeAction - (355)' in 8ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:49 PM] Sending request 'textDocument/definition - (356)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":41}} | |
[Trace - 2:31:49 PM] Received response 'textDocument/definition - (356)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","range":{"start":{"line":12,"character":4},"end":{"line":12,"character":15}}}] | |
[Trace - 2:31:49 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","languageId":"go","version":1,"text":"package object\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/cespare/xxhash\"\n\t\"github.com/fastly/REDACTED/pkg/errors\"\n)\n\n// ErrNotFound is a general-purpose error.\nvar ErrNotFound = errors.NewCode(http.StatusNotFound, \"object not found\")\n\n// TagMismatchError should be returned by Deserialize methods\n// when the raw object tag doesn't match their expectation.\ntype TagMismatchError struct {\n\tWant Tag\n\tHave Tag\n}\n\nfunc (e TagMismatchError) Error() string {\n\treturn fmt.Sprintf(\"tag mismatch error: want %s, have %s\", e.Want, e.Have)\n}\n\n// RealmIDTag uniquely identifies an object in the global scope.\ntype RealmIDTag struct {\n\tRealm string `json:\"realm\"`\n\tID string `json:\"id\"`\n\tTag Tag `json:\"tag\"`\n}\n\n// Hash produces a zero-alloc hash of the RealmIDTag.\nfunc (rit RealmIDTag) Hash() uint64 {\n\th := xxhash.Sum64String(rit.Realm)\n\th ^= xxhash.Sum64String(rit.ID)\n\th ^= xxhash.Sum64String(string(rit.Tag))\n\treturn h\n}\n\n// Raw is the object atom which is operated-on by the infrastructure.\n// It must be encrypted before being transmit or stored.\ntype Raw struct {\n\tRealmIDTag\n\tPayload []byte `json:\"payload\"`\n}\n\n// Tag enumerates object types.\ntype Tag string\n\n// Tags for each implemented object.\nconst (\n\tTagGCounter Tag = \"GC\"\n\tTagDCounter Tag = \"DC\"\n\tTagLWWRegister Tag = \"LWWR\"\n\tTagMVRegister Tag = \"MVR\"\n\tTagHyperLogLog Tag = \"HLL\"\n\tTagBloomFilter Tag = \"BF\"\n\tTagMultiMap Tag = \"MMAP\"\n)\n\n// Merge two raw objects together, based on tag.\n// This dumb function courtesy Go's dumb type system.\nfunc (r *Raw) Merge(other Raw) error {\n\tif r.Tag != other.Tag {\n\t\treturn TagMismatchError{Want: r.Tag, Have: other.Tag}\n\t}\n\n\tswitch r.Tag {\n\tcase TagGCounter:\n\t\tvar a, b GCounter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing GCounter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing GCounter src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagDCounter:\n\t\tvar a, b DCounter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing DCounter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing DCounter src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagLWWRegister:\n\t\tvar a, b LWWRegister\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing LWWRegister dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing LWWRegister src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagMVRegister:\n\t\tvar a, b MVRegister\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MVRegister dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MVRegister src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagHyperLogLog:\n\t\tvar a, b HyperLogLog\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing HyperLogLog dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing HyperLogLog src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagBloomFilter:\n\t\tvar a, b BloomFilter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing BloomFilter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing BloomFilter src payload\")\n\t\t}\n\t\tif err := a.Merge(b); err != nil {\n\t\t\treturn errors.Wrap(err, \"error merging BloomFilter\")\n\t\t}\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagMultiMap:\n\t\tvar a, b MultiMap\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MultiMap dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MultiMap src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tdefault:\n\t\treturn errors.Errorf(\"unknown tag: %q\", r.Tag)\n\t}\n}\n\n// Equals returns true if the two raw objects are identical.\nfunc (r *Raw) Equals(other Raw) bool {\n\treturn r.Realm == other.Realm &&\n\t\tr.ID == other.ID &&\n\t\tr.Tag == other.Tag &&\n\t\tbytes.Equal(r.Payload, other.Payload)\n}\n"}} | |
[Trace - 2:31:49 PM] Sending notification 'textDocument/didClose'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go"}} | |
[Trace - 2:31:49 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"failed to run analyses for file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go: context canceled"} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/hyperloglog.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Sending request 'textDocument/hover - (357)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":41}} | |
[Trace - 2:31:49 PM] Received response 'textDocument/hover - (357)' in 305ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar object.ErrNotFound errors.Error\n```"},"range":{"start":{"line":356,"character":37},"end":{"line":356,"character":48}}} | |
[Trace - 2:31:49 PM] Sending request 'textDocument/codeAction - (358)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"context":{"diagnostics":[{"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"message":"cannot use object.ErrNotFound (variable with invalid type) as errors.Error value in argument to errors.SomewhatEqual","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/middlewares.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/tls.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/hyperloglog.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap_gen.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","diagnostics":[{"range":{"start":{"line":528,"character":18},"end":{"line":528,"character":19}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *http.Request) as *invalid type value in argument to mux.Vars"},{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/debug.go","diagnostics":[{"range":{"start":{"line":43,"character":13},"end":{"line":43,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/internal.go","diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:31:49 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go","diagnostics":[]} | |
[Trace - 2:31:49 PM] Sending request 'textDocument/codeAction - (359)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"context":{"diagnostics":[{"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"message":"cannot use object.ErrNotFound (variable with invalid type) as errors.Error value in argument to errors.SomewhatEqual","severity":1,"source":"LSP"}]}} | |
[Trace - 2:31:49 PM] Received response 'textDocument/codeAction - (358)' in 147ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:31:49 PM] Received response 'textDocument/codeAction - (359)' in 7ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:32:33 PM] Sending request 'textDocument/hover - (360)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":41}} | |
[Trace - 2:32:33 PM] Received response 'textDocument/hover - (360)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar object.ErrNotFound errors.Error\n```"},"range":{"start":{"line":356,"character":37},"end":{"line":356,"character":48}}} | |
[Trace - 2:32:33 PM] Sending request 'textDocument/codeAction - (361)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"context":{"diagnostics":[{"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":48}},"message":"cannot use object.ErrNotFound (variable with invalid type) as errors.Error value in argument to errors.SomewhatEqual","severity":1,"source":"LSP"}]}} | |
[Trace - 2:32:33 PM] Received response 'textDocument/codeAction - (361)' in 13ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:32:34 PM] Sending request 'textDocument/hover - (362)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":361,"character":7}} | |
[Trace - 2:32:34 PM] Received response 'textDocument/hover - (362)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\npackage errors (\"github.com/fastly/REDACTED/pkg/errors\")\n```"},"range":{"start":{"line":361,"character":2},"end":{"line":361,"character":8}}} | |
[Trace - 2:32:34 PM] Sending request 'textDocument/hover - (363)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":361,"character":8}} | |
[Trace - 2:32:34 PM] Received response 'textDocument/hover - (363)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"Encode an error (hopefully but not necessarily an errors.Error) to an http.ResponseWriter as JSON, in a way that can be later Decoded.\n```go\nfunc errors.Encode(w invalid type, err error)\n```"},"range":{"start":{"line":361,"character":9},"end":{"line":361,"character":15}}} | |
[Trace - 2:33:06 PM] Sending request 'textDocument/hover - (364)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":35}} | |
[Trace - 2:33:06 PM] Received response 'textDocument/hover - (364)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\npackage object (\"github.com/fastly/REDACTED/pkg/object\")\n```"},"range":{"start":{"line":356,"character":30},"end":{"line":356,"character":36}}} | |
[Trace - 2:33:09 PM] Sending request 'textDocument/codeAction - (365)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":369,"character":2},"end":{"line":369,"character":2}},"context":{"diagnostics":[]}} | |
[Trace - 2:33:09 PM] Received response 'textDocument/codeAction - (365)' in 12ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:33:09 PM] Sending request 'textDocument/definition - (366)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":36}} | |
[Trace - 2:33:09 PM] Received response 'textDocument/definition - (366)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","range":{"start":{"line":12,"character":4},"end":{"line":12,"character":15}}}] | |
[Trace - 2:33:09 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","languageId":"go","version":1,"text":"package object\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/cespare/xxhash\"\n\t\"github.com/fastly/REDACTED/pkg/errors\"\n)\n\n// ErrNotFound is a general-purpose error.\nvar ErrNotFound = errors.NewCode(http.StatusNotFound, \"object not found\")\n\n// TagMismatchError should be returned by Deserialize methods\n// when the raw object tag doesn't match their expectation.\ntype TagMismatchError struct {\n\tWant Tag\n\tHave Tag\n}\n\nfunc (e TagMismatchError) Error() string {\n\treturn fmt.Sprintf(\"tag mismatch error: want %s, have %s\", e.Want, e.Have)\n}\n\n// RealmIDTag uniquely identifies an object in the global scope.\ntype RealmIDTag struct {\n\tRealm string `json:\"realm\"`\n\tID string `json:\"id\"`\n\tTag Tag `json:\"tag\"`\n}\n\n// Hash produces a zero-alloc hash of the RealmIDTag.\nfunc (rit RealmIDTag) Hash() uint64 {\n\th := xxhash.Sum64String(rit.Realm)\n\th ^= xxhash.Sum64String(rit.ID)\n\th ^= xxhash.Sum64String(string(rit.Tag))\n\treturn h\n}\n\n// Raw is the object atom which is operated-on by the infrastructure.\n// It must be encrypted before being transmit or stored.\ntype Raw struct {\n\tRealmIDTag\n\tPayload []byte `json:\"payload\"`\n}\n\n// Tag enumerates object types.\ntype Tag string\n\n// Tags for each implemented object.\nconst (\n\tTagGCounter Tag = \"GC\"\n\tTagDCounter Tag = \"DC\"\n\tTagLWWRegister Tag = \"LWWR\"\n\tTagMVRegister Tag = \"MVR\"\n\tTagHyperLogLog Tag = \"HLL\"\n\tTagBloomFilter Tag = \"BF\"\n\tTagMultiMap Tag = \"MMAP\"\n)\n\n// Merge two raw objects together, based on tag.\n// This dumb function courtesy Go's dumb type system.\nfunc (r *Raw) Merge(other Raw) error {\n\tif r.Tag != other.Tag {\n\t\treturn TagMismatchError{Want: r.Tag, Have: other.Tag}\n\t}\n\n\tswitch r.Tag {\n\tcase TagGCounter:\n\t\tvar a, b GCounter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing GCounter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing GCounter src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagDCounter:\n\t\tvar a, b DCounter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing DCounter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing DCounter src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagLWWRegister:\n\t\tvar a, b LWWRegister\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing LWWRegister dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing LWWRegister src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagMVRegister:\n\t\tvar a, b MVRegister\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MVRegister dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MVRegister src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagHyperLogLog:\n\t\tvar a, b HyperLogLog\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing HyperLogLog dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing HyperLogLog src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagBloomFilter:\n\t\tvar a, b BloomFilter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing BloomFilter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing BloomFilter src payload\")\n\t\t}\n\t\tif err := a.Merge(b); err != nil {\n\t\t\treturn errors.Wrap(err, \"error merging BloomFilter\")\n\t\t}\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagMultiMap:\n\t\tvar a, b MultiMap\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MultiMap dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MultiMap src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tdefault:\n\t\treturn errors.Errorf(\"unknown tag: %q\", r.Tag)\n\t}\n}\n\n// Equals returns true if the two raw objects are identical.\nfunc (r *Raw) Equals(other Raw) bool {\n\treturn r.Realm == other.Realm &&\n\t\tr.ID == other.ID &&\n\t\tr.Tag == other.Tag &&\n\t\tbytes.Equal(r.Payload, other.Payload)\n}\n"}} | |
[Trace - 2:33:09 PM] Sending notification 'textDocument/didClose'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go"}} | |
[Trace - 2:33:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"failed to run analyses for file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go: context canceled"} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/hyperloglog.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Sending request 'textDocument/definition - (367)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":39}} | |
[Trace - 2:33:10 PM] Sending request 'textDocument/hover - (368)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":42}} | |
[Trace - 2:33:10 PM] Received response 'textDocument/definition - (367)' in 409ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","range":{"start":{"line":12,"character":4},"end":{"line":12,"character":15}}}] | |
[Trace - 2:33:10 PM] Sending request 'textDocument/documentHighlight - (369)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":42}} | |
[Trace - 2:33:10 PM] Received response 'textDocument/documentHighlight - (369)' in 46ms. | |
Params: [] | |
[Trace - 2:33:10 PM] Sending notification '$/cancelRequest'. | |
Params: {"id":368} | |
[Trace - 2:33:10 PM] Received response 'textDocument/hover - (368)' in 165ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar object.ErrNotFound errors.Error\n```"},"range":{"start":{"line":356,"character":37},"end":{"line":356,"character":48}}} | |
[Trace - 2:33:10 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"context canceled"} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/internal.go","diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/hyperloglog.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","diagnostics":[{"range":{"start":{"line":528,"character":18},"end":{"line":528,"character":19}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *http.Request) as *invalid type value in argument to mux.Vars"},{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/debug.go","diagnostics":[{"range":{"start":{"line":43,"character":13},"end":{"line":43,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/middlewares.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/tls.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Sending request 'textDocument/definition - (370)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":356,"character":42}} | |
[Trace - 2:33:10 PM] Received response 'textDocument/definition - (370)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","range":{"start":{"line":12,"character":4},"end":{"line":12,"character":15}}}] | |
[Trace - 2:33:10 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","languageId":"go","version":1,"text":"package object\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"net/http\"\n\n\t\"github.com/cespare/xxhash\"\n\t\"github.com/fastly/REDACTED/pkg/errors\"\n)\n\n// ErrNotFound is a general-purpose error.\nvar ErrNotFound = errors.NewCode(http.StatusNotFound, \"object not found\")\n\n// TagMismatchError should be returned by Deserialize methods\n// when the raw object tag doesn't match their expectation.\ntype TagMismatchError struct {\n\tWant Tag\n\tHave Tag\n}\n\nfunc (e TagMismatchError) Error() string {\n\treturn fmt.Sprintf(\"tag mismatch error: want %s, have %s\", e.Want, e.Have)\n}\n\n// RealmIDTag uniquely identifies an object in the global scope.\ntype RealmIDTag struct {\n\tRealm string `json:\"realm\"`\n\tID string `json:\"id\"`\n\tTag Tag `json:\"tag\"`\n}\n\n// Hash produces a zero-alloc hash of the RealmIDTag.\nfunc (rit RealmIDTag) Hash() uint64 {\n\th := xxhash.Sum64String(rit.Realm)\n\th ^= xxhash.Sum64String(rit.ID)\n\th ^= xxhash.Sum64String(string(rit.Tag))\n\treturn h\n}\n\n// Raw is the object atom which is operated-on by the infrastructure.\n// It must be encrypted before being transmit or stored.\ntype Raw struct {\n\tRealmIDTag\n\tPayload []byte `json:\"payload\"`\n}\n\n// Tag enumerates object types.\ntype Tag string\n\n// Tags for each implemented object.\nconst (\n\tTagGCounter Tag = \"GC\"\n\tTagDCounter Tag = \"DC\"\n\tTagLWWRegister Tag = \"LWWR\"\n\tTagMVRegister Tag = \"MVR\"\n\tTagHyperLogLog Tag = \"HLL\"\n\tTagBloomFilter Tag = \"BF\"\n\tTagMultiMap Tag = \"MMAP\"\n)\n\n// Merge two raw objects together, based on tag.\n// This dumb function courtesy Go's dumb type system.\nfunc (r *Raw) Merge(other Raw) error {\n\tif r.Tag != other.Tag {\n\t\treturn TagMismatchError{Want: r.Tag, Have: other.Tag}\n\t}\n\n\tswitch r.Tag {\n\tcase TagGCounter:\n\t\tvar a, b GCounter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing GCounter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing GCounter src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagDCounter:\n\t\tvar a, b DCounter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing DCounter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing DCounter src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagLWWRegister:\n\t\tvar a, b LWWRegister\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing LWWRegister dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing LWWRegister src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagMVRegister:\n\t\tvar a, b MVRegister\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MVRegister dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MVRegister src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagHyperLogLog:\n\t\tvar a, b HyperLogLog\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing HyperLogLog dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing HyperLogLog src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagBloomFilter:\n\t\tvar a, b BloomFilter\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing BloomFilter dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing BloomFilter src payload\")\n\t\t}\n\t\tif err := a.Merge(b); err != nil {\n\t\t\treturn errors.Wrap(err, \"error merging BloomFilter\")\n\t\t}\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tcase TagMultiMap:\n\t\tvar a, b MultiMap\n\t\tif err := a.Deserialize(*r); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MultiMap dst payload\")\n\t\t}\n\t\tif err := b.Deserialize(other); err != nil {\n\t\t\treturn errors.Wrap(err, \"error deserializing MultiMap src payload\")\n\t\t}\n\t\ta.Merge(b)\n\t\tr.Payload = a.Serialize()\n\t\treturn nil\n\n\tdefault:\n\t\treturn errors.Errorf(\"unknown tag: %q\", r.Tag)\n\t}\n}\n\n// Equals returns true if the two raw objects are identical.\nfunc (r *Raw) Equals(other Raw) bool {\n\treturn r.Realm == other.Realm &&\n\t\tr.ID == other.ID &&\n\t\tr.Tag == other.Tag &&\n\t\tbytes.Equal(r.Payload, other.Payload)\n}\n"}} | |
[Trace - 2:33:10 PM] Sending request 'textDocument/documentLink - (371)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go"}} | |
[Trace - 2:33:10 PM] Sending request 'textDocument/codeAction - (372)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:33:10 PM] Received response 'textDocument/documentLink - (371)' in 446ms. | |
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":8}},"target":"https://godoc.org/bytes"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":6}},"target":"https://godoc.org/fmt"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":11}},"target":"https://godoc.org/net/http"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":28}},"target":"https://godoc.org/github.com/cespare/xxhash"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/errors"}] | |
[Trace - 2:33:10 PM] Received response 'textDocument/codeAction - (372)' in 449ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go":[]}}}] | |
[Trace - 2:33:10 PM] Sending request 'textDocument/documentSymbol - (373)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go"}} | |
[Trace - 2:33:10 PM] Received response 'textDocument/documentSymbol - (373)' in 453ms. | |
Params: [{"name":"ErrNotFound","detail":"errors.Error","kind":13,"range":{"start":{"line":12,"character":0},"end":{"line":12,"character":73}},"selectionRange":{"start":{"line":12,"character":4},"end":{"line":12,"character":15}}},{"name":"TagMismatchError","detail":"struct{...}","kind":23,"range":{"start":{"line":16,"character":5},"end":{"line":19,"character":1}},"selectionRange":{"start":{"line":16,"character":5},"end":{"line":16,"character":21}},"children":[{"name":"Want","detail":"string","kind":8,"range":{"start":{"line":17,"character":1},"end":{"line":17,"character":9}},"selectionRange":{"start":{"line":17,"character":1},"end":{"line":17,"character":5}}},{"name":"Have","detail":"string","kind":8,"range":{"start":{"line":18,"character":1},"end":{"line":18,"character":9}},"selectionRange":{"start":{"line":18,"character":1},"end":{"line":18,"character":5}}},{"name":"Error","detail":"()","kind":6,"range":{"start":{"line":21,"character":0},"end":{"line":23,"character":1}},"selectionRange":{"start":{"line":21,"character":26},"end":{"line":21,"character":31}}}]},{"name":"RealmIDTag","detail":"struct{...}","kind":23,"range":{"start":{"line":26,"character":5},"end":{"line":30,"character":1}},"selectionRange":{"start":{"line":26,"character":5},"end":{"line":26,"character":15}},"children":[{"name":"Realm","detail":"string","kind":8,"range":{"start":{"line":27,"character":1},"end":{"line":27,"character":28}},"selectionRange":{"start":{"line":27,"character":1},"end":{"line":27,"character":6}}},{"name":"ID","detail":"string","kind":8,"range":{"start":{"line":28,"character":1},"end":{"line":28,"character":25}},"selectionRange":{"start":{"line":28,"character":1},"end":{"line":28,"character":3}}},{"name":"Tag","detail":"string","kind":8,"range":{"start":{"line":29,"character":1},"end":{"line":29,"character":26}},"selectionRange":{"start":{"line":29,"character":1},"end":{"line":29,"character":4}}},{"name":"Hash","detail":"()","kind":6,"range":{"start":{"line":33,"character":0},"end":{"line":38,"character":1}},"selectionRange":{"start":{"line":33,"character":22},"end":{"line":33,"character":26}}}]},{"name":"Raw","detail":"struct{...}","kind":23,"range":{"start":{"line":42,"character":5},"end":{"line":45,"character":1}},"selectionRange":{"start":{"line":42,"character":5},"end":{"line":42,"character":8}},"children":[{"name":"RealmIDTag","detail":"struct{...}","kind":8,"range":{"start":{"line":43,"character":1},"end":{"line":43,"character":11}},"selectionRange":{"start":{"line":43,"character":1},"end":{"line":43,"character":11}}},{"name":"Payload","detail":"[]byte","kind":8,"range":{"start":{"line":44,"character":1},"end":{"line":44,"character":32}},"selectionRange":{"start":{"line":44,"character":1},"end":{"line":44,"character":8}}},{"name":"Merge","detail":"(other Raw)","kind":6,"range":{"start":{"line":63,"character":0},"end":{"line":158,"character":1}},"selectionRange":{"start":{"line":63,"character":14},"end":{"line":63,"character":19}}},{"name":"Equals","detail":"(other Raw)","kind":6,"range":{"start":{"line":161,"character":0},"end":{"line":166,"character":1}},"selectionRange":{"start":{"line":161,"character":14},"end":{"line":161,"character":20}}}]},{"name":"Tag","detail":"string","kind":15,"range":{"start":{"line":48,"character":5},"end":{"line":48,"character":15}},"selectionRange":{"start":{"line":48,"character":5},"end":{"line":48,"character":8}}},{"name":"TagGCounter","detail":"Tag","kind":14,"range":{"start":{"line":51,"character":0},"end":{"line":59,"character":1}},"selectionRange":{"start":{"line":52,"character":1},"end":{"line":52,"character":12}}},{"name":"TagDCounter","detail":"Tag","kind":14,"range":{"start":{"line":51,"character":0},"end":{"line":59,"character":1}},"selectionRange":{"start":{"line":53,"character":1},"end":{"line":53,"character":12}}},{"name":"TagLWWRegister","detail":"Tag","kind":14,"range":{"start":{"line":51,"character":0},"end":{"line":59,"character":1}},"selectionRange":{"start":{"line":54,"character":1},"end":{"line":54,"character":15}}},{"name":"TagMVRegister","detail":"Tag","kind":14,"range":{"start":{"line":51,"character":0},"end":{"line":59,"character":1}},"selectionRange":{"start":{"line":55,"character":1},"end":{"line":55,"character":14}}},{"name":"TagHyperLogLog","detail":"Tag","kind":14,"range":{"start":{"line":51,"character":0},"end":{"line":59,"character":1}},"selectionRange":{"start":{"line":56,"character":1},"end":{"line":56,"character":15}}},{"name":"TagBloomFilter","detail":"Tag","kind":14,"range":{"start":{"line":51,"character":0},"end":{"line":59,"character":1}},"selectionRange":{"start":{"line":57,"character":1},"end":{"line":57,"character":15}}},{"name":"TagMultiMap","detail":"Tag","kind":14,"range":{"start":{"line":51,"character":0},"end":{"line":59,"character":1}},"selectionRange":{"start":{"line":58,"character":1},"end":{"line":58,"character":12}}}] | |
[Trace - 2:33:10 PM] Sending request 'textDocument/codeAction - (374)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go"},"range":{"start":{"line":12,"character":4},"end":{"line":12,"character":4}},"context":{"diagnostics":[]}} | |
[Trace - 2:33:10 PM] Sending notification '$/cancelRequest'. | |
Params: {"id":372} | |
[Trace - 2:33:10 PM] Received response 'textDocument/codeAction - (374)' in 13ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go":[]}}}] | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","diagnostics":[{"range":{"start":{"line":528,"character":18},"end":{"line":528,"character":19}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *http.Request) as *invalid type value in argument to mux.Vars"},{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/debug.go","diagnostics":[{"range":{"start":{"line":43,"character":13},"end":{"line":43,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/tls.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/contracts_test.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/hyperloglog.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/lwwregister_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/mvregister.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/raw.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/dcounter.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/gcounter_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/middlewares.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/doc.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/internal.go","diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"severity":1,"source":"LSP","message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP"}]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/util.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/bloomfilter_gen.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap.go","diagnostics":[]} | |
[Trace - 2:33:10 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/multimap_gen.go","diagnostics":[]} | |
[Trace - 2:33:46 PM] Sending request 'textDocument/documentLink - (375)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"}} | |
[Trace - 2:33:46 PM] Received response 'textDocument/documentLink - (375)' in 4ms. | |
Params: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":8}},"target":"https://godoc.org/bytes"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":10}},"target":"https://godoc.org/context"},{"range":{"start":{"line":5,"character":1},"end":{"line":5,"character":18}},"target":"https://godoc.org/encoding/base64"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":16}},"target":"https://godoc.org/encoding/json"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":6}},"target":"https://godoc.org/fmt"},{"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":12}},"target":"https://godoc.org/io/ioutil"},{"range":{"start":{"line":9,"character":1},"end":{"line":9,"character":7}},"target":"https://godoc.org/mime"},{"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":17}},"target":"https://godoc.org/mime/multipart"},{"range":{"start":{"line":11,"character":1},"end":{"line":11,"character":11}},"target":"https://godoc.org/net/http"},{"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":10}},"target":"https://godoc.org/strconv"},{"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":10}},"target":"https://godoc.org/strings"},{"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":7}},"target":"https://godoc.org/time"},{"range":{"start":{"line":16,"character":1},"end":{"line":16,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/auth"},{"range":{"start":{"line":17,"character":1},"end":{"line":17,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/errors"},{"range":{"start":{"line":18,"character":1},"end":{"line":18,"character":38}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/object"},{"range":{"start":{"line":19,"character":1},"end":{"line":19,"character":39}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/replica"},{"range":{"start":{"line":20,"character":1},"end":{"line":20,"character":36}},"target":"https://godoc.org/github.com/fastly/REDACTED/pkg/ring"},{"range":{"start":{"line":21,"character":1},"end":{"line":21,"character":25}},"target":"https://godoc.org/github.com/gorilla/mux"}] | |
[Trace - 2:33:46 PM] Sending request 'textDocument/codeAction - (376)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 2:33:46 PM] Received response 'textDocument/codeAction - (376)' in 21ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:33:46 PM] Sending request 'textDocument/codeAction - (377)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":356,"character":42},"end":{"line":356,"character":42}},"context":{"diagnostics":[]}} | |
[Trace - 2:33:46 PM] Received response 'textDocument/codeAction - (377)' in 11ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:33:53 PM] Sending request 'textDocument/documentHighlight - (378)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":77,"character":24}} | |
[Trace - 2:33:53 PM] Received notification 'window/logMessage'. | |
Params: {"type":1,"message":"no highlight for /Users/peter/mod/REDACTED/pkg/REDACTED/public.go:78:25: /Users/peter/mod/REDACTED/pkg/REDACTED/public.go:78:25 is not an identifier"} | |
[Error - 2:33:53 PM] no highlight for /Users/peter/mod/REDACTED/pkg/REDACTED/public.go:78:25: /Users/peter/mod/REDACTED/pkg/REDACTED/public.go:78:25 is not an identifier | |
[Trace - 2:33:53 PM] Received response 'textDocument/documentHighlight - (378)' in 0ms. | |
Params: [] | |
[Trace - 2:33:53 PM] Sending request 'textDocument/codeAction - (379)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":77,"character":22},"end":{"line":77,"character":24}},"context":{"diagnostics":[]}} | |
[Trace - 2:33:53 PM] Received response 'textDocument/codeAction - (379)' in 10ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:33:54 PM] Sending request 'textDocument/hover - (380)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":12}} | |
[Error - 2:33:54 PM] send textDocument/hover#380 no identifier found | |
[Error - 2:33:54 PM] Request textDocument/hover failed. | |
Message: no identifier found | |
Code: 0 | |
[Trace - 2:33:55 PM] Sending request 'textDocument/hover - (381)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:33:55 PM] Received response 'textDocument/hover - (381)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:33:55 PM] Sending request 'textDocument/codeAction - (382)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:33:55 PM] Received response 'textDocument/codeAction - (382)' in 22ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:34:00 PM] Sending request 'textDocument/definition - (383)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:34:00 PM] Received response 'textDocument/definition - (383)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:34:01 PM] Sending request 'textDocument/hover - (384)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:34:01 PM] Received response 'textDocument/hover - (384)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:34:01 PM] Sending request 'textDocument/codeAction - (385)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:34:01 PM] Received response 'textDocument/codeAction - (385)' in 11ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:34:20 PM] Sending request 'textDocument/hover - (386)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:34:20 PM] Received response 'textDocument/hover - (386)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:34:21 PM] Sending request 'textDocument/codeAction - (387)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:34:21 PM] Received response 'textDocument/codeAction - (387)' in 10ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:34:50 PM] Sending request 'textDocument/definition - (388)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:34:50 PM] Received response 'textDocument/definition - (388)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:34:50 PM] Sending request 'textDocument/hover - (389)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:34:50 PM] Received response 'textDocument/hover - (389)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:34:50 PM] Sending request 'textDocument/codeAction - (390)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:34:50 PM] Received response 'textDocument/codeAction - (390)' in 10ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:36:08 PM] Sending request 'textDocument/hover - (391)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":73,"character":15}} | |
[Trace - 2:36:08 PM] Received response 'textDocument/hover - (391)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nconst true untyped bool\n```"},"range":{"start":{"line":73,"character":15},"end":{"line":73,"character":19}}} | |
[Trace - 2:36:09 PM] Sending request 'textDocument/hover - (392)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":72,"character":16}} | |
[Trace - 2:36:09 PM] Received response 'textDocument/hover - (392)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"NewRouter returns a new router instance.\n```go\nfunc mux.NewRouter() *mux.Router\n```"},"range":{"start":{"line":72,"character":10},"end":{"line":72,"character":19}}} | |
[Trace - 2:36:09 PM] Sending request 'textDocument/hover - (393)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":72,"character":19}} | |
[Trace - 2:36:09 PM] Received response 'textDocument/hover - (393)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"NewRouter returns a new router instance.\n```go\nfunc mux.NewRouter() *mux.Router\n```"},"range":{"start":{"line":72,"character":10},"end":{"line":72,"character":19}}} | |
[Trace - 2:36:10 PM] Sending request 'textDocument/hover - (394)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:36:10 PM] Received response 'textDocument/hover - (394)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:36:10 PM] Sending request 'textDocument/codeAction - (395)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:36:10 PM] Received response 'textDocument/codeAction - (395)' in 10ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:36:19 PM] Sending request 'textDocument/definition - (396)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:36:19 PM] Received response 'textDocument/definition - (396)' in 0ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:36:19 PM] Sending request 'textDocument/hover - (397)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:36:19 PM] Received response 'textDocument/hover - (397)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:36:19 PM] Sending request 'textDocument/hover - (398)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:36:19 PM] Received response 'textDocument/hover - (398)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:36:19 PM] Sending request 'textDocument/codeAction - (399)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:36:19 PM] Received response 'textDocument/codeAction - (399)' in 11ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:36:21 PM] Sending request 'textDocument/hover - (400)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:36:21 PM] Received response 'textDocument/hover - (400)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:36:22 PM] Sending request 'textDocument/codeAction - (401)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:36:22 PM] Received response 'textDocument/codeAction - (401)' in 11ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:36:22 PM] Sending request 'textDocument/definition - (402)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":14}} | |
[Trace - 2:36:22 PM] Received response 'textDocument/definition - (402)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:36:22 PM] Sending request 'textDocument/hover - (403)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:36:22 PM] Received response 'textDocument/hover - (403)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:36:23 PM] Sending request 'textDocument/codeAction - (404)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:36:23 PM] Received response 'textDocument/codeAction - (404)' in 23ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:36:23 PM] Sending request 'textDocument/hover - (405)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:36:23 PM] Received response 'textDocument/hover - (405)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:36:23 PM] Sending request 'textDocument/codeAction - (406)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:36:23 PM] Received response 'textDocument/codeAction - (406)' in 7ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:37:13 PM] Sending request 'textDocument/definition - (407)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":14}} | |
[Trace - 2:37:13 PM] Received response 'textDocument/definition - (407)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:37:13 PM] Sending request 'textDocument/hover - (408)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:37:13 PM] Received response 'textDocument/hover - (408)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:37:14 PM] Sending request 'textDocument/hover - (409)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:37:14 PM] Received response 'textDocument/hover - (409)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:37:14 PM] Sending request 'textDocument/codeAction - (410)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:37:14 PM] Received response 'textDocument/codeAction - (410)' in 12ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:37:24 PM] Sending request 'textDocument/definition - (411)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":14}} | |
[Trace - 2:37:24 PM] Received response 'textDocument/definition - (411)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:37:25 PM] Sending request 'textDocument/hover - (412)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:37:25 PM] Received response 'textDocument/hover - (412)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:37:25 PM] Sending request 'textDocument/codeAction - (413)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:37:25 PM] Received response 'textDocument/codeAction - (413)' in 12ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:37:57 PM] Sending request 'textDocument/hover - (414)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:37:57 PM] Received response 'textDocument/hover - (414)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:37:57 PM] Sending request 'textDocument/codeAction - (415)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:37:57 PM] Received response 'textDocument/codeAction - (415)' in 10ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:37:58 PM] Sending request 'textDocument/definition - (416)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":14}} | |
[Trace - 2:37:58 PM] Received response 'textDocument/definition - (416)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:37:58 PM] Sending request 'textDocument/hover - (417)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:37:58 PM] Received response 'textDocument/hover - (417)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:37:58 PM] Sending request 'textDocument/hover - (418)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:37:58 PM] Received response 'textDocument/hover - (418)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:37:58 PM] Sending request 'textDocument/codeAction - (419)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:37:58 PM] Received response 'textDocument/codeAction - (419)' in 10ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:38:04 PM] Sending request 'textDocument/definition - (420)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":14}} | |
[Trace - 2:38:04 PM] Received response 'textDocument/definition - (420)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:38:04 PM] Sending request 'textDocument/hover - (421)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:38:04 PM] Received response 'textDocument/hover - (421)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:38:04 PM] Sending request 'textDocument/hover - (422)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:38:04 PM] Received response 'textDocument/hover - (422)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:38:04 PM] Sending request 'textDocument/codeAction - (423)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:38:04 PM] Received response 'textDocument/codeAction - (423)' in 11ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:38:09 PM] Sending request 'textDocument/definition - (424)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":14}} | |
[Trace - 2:38:09 PM] Received response 'textDocument/definition - (424)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:38:09 PM] Sending request 'textDocument/hover - (425)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:38:09 PM] Received response 'textDocument/hover - (425)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:38:09 PM] Sending request 'textDocument/codeAction - (426)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:38:09 PM] Received response 'textDocument/codeAction - (426)' in 9ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:38:11 PM] Sending request 'textDocument/definition - (427)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":14}} | |
[Trace - 2:38:11 PM] Received response 'textDocument/definition - (427)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:38:11 PM] Sending request 'textDocument/hover - (428)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:38:11 PM] Received response 'textDocument/hover - (428)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:38:12 PM] Sending request 'textDocument/codeAction - (429)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:38:12 PM] Received response 'textDocument/codeAction - (429)' in 12ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:38:12 PM] Sending request 'textDocument/hover - (430)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:38:12 PM] Received response 'textDocument/hover - (430)' in 0ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:38:12 PM] Sending request 'textDocument/codeAction - (431)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:38:12 PM] Received response 'textDocument/codeAction - (431)' in 9ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
[Trace - 2:38:16 PM] Sending request 'textDocument/definition - (432)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":14}} | |
[Trace - 2:38:16 PM] Received response 'textDocument/definition - (432)' in 1ms. | |
Params: [{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go","range":{"start":{"line":72,"character":1},"end":{"line":72,"character":2}}}] | |
[Trace - 2:38:16 PM] Sending request 'textDocument/hover - (433)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:38:16 PM] Received response 'textDocument/hover - (433)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:38:16 PM] Sending request 'textDocument/hover - (434)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"position":{"line":83,"character":13}} | |
[Trace - 2:38:16 PM] Received response 'textDocument/hover - (434)' in 1ms. | |
Params: {"contents":{"kind":"markdown","value":"```go\nvar r *mux.Router\n```"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}}} | |
[Trace - 2:38:16 PM] Sending request 'textDocument/codeAction - (435)'. | |
Params: {"textDocument":{"uri":"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go"},"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"context":{"diagnostics":[{"range":{"start":{"line":83,"character":13},"end":{"line":83,"character":14}},"message":"cannot use r (variable of type *mux.Router) as http.Handler value in assignment: wrong type for method ServeHTTP","severity":1,"source":"LSP"}]}} | |
[Trace - 2:38:16 PM] Received response 'textDocument/codeAction - (435)' in 17ms. | |
Params: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///Users/peter/mod/REDACTED/pkg/REDACTED/public.go":[]}}}] | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment