go version)?$ go version go version go1.15.5 windows/amd64
Yes
go env)?go env Output
$ go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:UsersUserAppDataLocalgo-build
set GOENV=C:UsersUserAppDataRoaminggoenv
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:projetospkgmod
set GOOS=windows
set GOPATH=C:projetos
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:Gopkgtoolwindows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=C:projetossrctest-apigo.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:UsersUserAppDataLocalTempgo-build232461266=/tmp/go-build -gno-record-gcc-switches
I'm using VSCode with the latest gopls (0.5.4).
When I save a Go file in the VScode editor (Windows with CRLF), the comment section is getting duplicated.

The file to be saved correctly.
The comment section being duplicated.
Also see this issue. I think I upgraded the language server in the last couple of days, not sure how I tell what version I'm running.
@tomqwpl You can run gopls version
Running that in a terminal window within VSCode gives:
golang.org/x/tools/gopls v0.5.4
golang.org/x/tools/[email protected] h1:PkQWDfzw8CxoseHDQniF2GhzmndN8KnQL6gcG2gnF3Y=
What I wasn't sure about was whether this was what was being used by VSCode.
@tomqwpl The easiest is to check from the UI (https://github.com/golang/vscode-go/blob/master/docs/ui.md#language-server-status). Another way is to check Go: Locate Configured Go Tools output to find the path to the gopls binary.
Go: Locate Configured Go Tools produces nothing in the output, but clicking on the go version number in the status bar brings up a menu with "open gopls trace v0.5.4", so that appears to be what I have. Which makes sense, since I upgraded a couple of days ago after a prompt.
I don't always see these symptoms. And when I do, changing the comment to be a single line, rather than a multi line comment makes it go away.
For example, right now I have this:
// Config describes a common configuration block
// for a database connection
type Config struct {
// Type is the type of database. Currently supported database types
// are:
// postgres
Type string `json:"type"`
Config StoreConfig `json:"config"`
}
If I press save, the "for a database connection" line is duplicated, so I get two copies. Press save again, and the whole thing is duplicated, so I have 4 copies of that line, and so on. The first line is not duplicated.
Change that to a single line comment and the problem goes away.
I confirm this is reproducible with the latest version of gopls (v0.5.4)
gopls log
[Trace - 10:44:19.788 AM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2020/12/02 10:44:19 Shutdown session\n\tshutdown_session=1\n"}
[Trace - 10:44:19.863 AM] Sending request 'initialize - (0)'.
Params: {"processId":2052,"clientInfo":{"name":"vscode","version":"1.51.1"},"rootPath":"c:\\Users\\hakim\\work","rootUri":"file:///c%3A/Users/hakim/work","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional"},"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]},"tagSupport":{"valueSet":[1]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true,"semanticTokens":{"refreshSupport":true}},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]},"codeDescriptionSupport":true,"dataSupport":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,"tagSupport":{"valueSet":[1]},"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]}},"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"],"parameterInformation":{"labelOffsetSupport":true},"activeParameterSupport":true},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":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,"tagSupport":{"valueSet":[1]},"labelSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"disabledSupport":true,"dataSupport":true,"resolveSupport":{"properties":["edit"]},"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,"prepareSupport":true,"prepareSupportDefaultBehavior":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":true},"semanticTokens":{"dynamicRegistration":true,"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","member","macro","keyword","modifier","comment","string","number","regexp","operator"],"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"formats":["relative"],"requests":{"range":true,"full":{"delta":true}}}},"window":{"workDoneProgress":true}},"initializationOptions":{},"trace":"off","workspaceFolders":[{"uri":"file:///c%3A/Users/hakim/work","name":"work"}]}
[Trace - 10:44:19.863 AM] Received response 'initialize - (0)' in 0ms.
Result: {"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"completionProvider":{"triggerCharacters":["."]},"hoverProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"typeDefinitionProvider":true,"implementationProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor.extract","refactor.rewrite","source.fixAll","source.organizeImports"]},"codeLensProvider":{},"documentLinkProvider":{},"workspaceSymbolProvider":true,"documentFormattingProvider":true,"documentOnTypeFormattingProvider":{"firstTriggerCharacter":""},"renameProvider":{"prepareProvider":true},"foldingRangeProvider":true,"executeCommandProvider":{"commands":["gopls.generate","gopls.fill_struct","gopls.regenerate_cgo","gopls.test","gopls.tidy","gopls.undeclared_name","gopls.add_dependency","gopls.upgrade_dependency","gopls.remove_dependency","gopls.vendor","gopls.extract_variable","gopls.extract_function","gopls.gc_details","gopls.generate_gopls_mod"]},"callHierarchyProvider":true,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"serverInfo":{"name":"gopls","version":"{\"path\":\"golang.org/x/tools/gopls\",\"version\":\"v0.5.4\",\"sum\":\"h1:PkQWDfzw8CxoseHDQniF2GhzmndN8KnQL6gcG2gnF3Y=\",\"deps\":[{\"path\":\"github.com/BurntSushi/toml\",\"version\":\"v0.3.1\",\"sum\":\"h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=\"},{\"path\":\"github.com/google/go-cmp\",\"version\":\"v0.5.1\",\"sum\":\"h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k=\"},{\"path\":\"github.com/sergi/go-diff\",\"version\":\"v1.1.0\",\"sum\":\"h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=\"},{\"path\":\"golang.org/x/mod\",\"version\":\"v0.3.0\",\"sum\":\"h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=\"},{\"path\":\"golang.org/x/sync\",\"version\":\"v0.0.0-20201020160332-67f06af15bc9\",\"sum\":\"h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=\"},{\"path\":\"golang.org/x/tools\",\"version\":\"v0.0.0-20201123203206-735e963e909b\",\"sum\":\"h1:U8XGResmZKfdo8rCjWPsuiB4cu7N0PJSpQwc9lZr9Rg=\"},{\"path\":\"golang.org/x/xerrors\",\"version\":\"v0.0.0-20200804184101-5ec99f83aff1\",\"sum\":\"h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=\"},{\"path\":\"honnef.co/go/tools\",\"version\":\"v0.0.1-2020.1.6\",\"sum\":\"h1:W18jzjh8mfPez+AwGLxmOImucz/IFjpNlrKVnaj2YVc=\"},{\"path\":\"mvdan.cc/gofumpt\",\"version\":\"v0.0.0-20200927160801-5bfeb2e70dd6\",\"sum\":\"h1:z+/YqapuV7VZPvBb3GYmuEJbA88M3PFUxaHilHYVCpQ=\"},{\"path\":\"mvdan.cc/xurls/v2\",\"version\":\"v2.2.0\",\"sum\":\"h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=\"}]}"}}
[Trace - 10:44:19.880 AM] Sending notification 'initialized'.
Params: {}
[Trace - 10:44:19.880 AM] Sending notification 'textDocument/didOpen'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go","languageId":"go","version":58,"text":"package main\r\n\r\n// Config describes a common configuration block\r\n// for a database connection\r\ntype Config struct {\r\n\t// Type is the type of database. Currently supported database types\r\n\t// are:\r\n\t// postgres\r\n\tType string `json:\"type\"`\r\n\tConfig string `json:\"config\"`\r\n}\r\n"}}
[Trace - 10:44:19.880 AM] Sending request 'textDocument/documentSymbol - (1)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"}}
[Trace - 10:44:19.880 AM] Sending request 'textDocument/codeAction - (2)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"},"range":{"start":{"line":3,"character":28},"end":{"line":3,"character":28}},"context":{"diagnostics":[]}}
[Trace - 10:44:19.880 AM] Sending request 'textDocument/documentLink - (3)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"}}
[Trace - 10:44:19.896 AM] Received request 'window/workDoneProgress/create - (1)'.
Params: {"token":"5577006791947779410"}
[Trace - 10:44:19.896 AM] Sending response 'window/workDoneProgress/create - (1)' in 0ms.
Result:
[Trace - 10:44:19.904 AM] Received notification '$/progress'.
Params: {"token":"5577006791947779410","value":{"kind":"begin","title":"Setting up workspace","message":"Loading packages..."}}
[Trace - 10:44:19.904 AM] Received request 'workspace/configuration - (2)'.
Params: {"items":[{"scopeUri":"file:///C:/Users/hakim/work","section":"gopls"}]}
[Trace - 10:44:19.904 AM] Sending response 'workspace/configuration - (2)' in 0ms.
Result: [null]
[Trace - 10:44:20.257 AM] Sending request 'textDocument/foldingRange - (4)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"}}
[Trace - 10:44:20.258 AM] Sending request 'textDocument/codeLens - (5)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"}}
[Trace - 10:44:20.259 AM] Sending request 'textDocument/codeLens - (6)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"}}
[Trace - 10:44:20.538 AM] Received request 'client/registerCapability - (3)'.
Params: {"registrations":[{"id":"workspace/didChangeWatchedFiles-0","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/*.{go,mod,sum}","kind":7}]}}]}
[Trace - 10:44:20.540 AM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2020/12/02 10:44:20 go env for C:\\Users\\hakim\\work\n(root C:\\Users\\hakim\\work)\n(go version go version go1.15.5 windows/amd64)\n(valid build configuration = true)\n(build flags: [])\nGOSUMDB=sum.golang.org\nGOFLAGS=\nGONOPROXY=\nGOINSECURE=\nGOMOD=C:\\Users\\hakim\\work\\go.mod\nGOPROXY=https://proxy.golang.org,direct\nGO111MODULE=\nGOCACHE=C:\\Users\\Administrator\\AppData\\Local\\go-build\nGOPATH=C:\\Users\\Administrator\\go\nGOPRIVATE=\nGOMODCACHE=C:\\Users\\Administrator\\go\\pkg\\mod\nGONOSUMDB=\nGOROOT=c:\\go\n\n"}
[Info - 10:44:20 AM] 2020/12/02 10:44:20 go env for C:\Users\hakim\work
(root C:\Users\hakim\work)
(go version go version go1.15.5 windows/amd64)
(valid build configuration = true)
(build flags: [])
GOSUMDB=sum.golang.org
GOFLAGS=
GONOPROXY=
GOINSECURE=
GOMOD=C:\Users\hakim\work\go.mod
GOPROXY=https://proxy.golang.org,direct
GO111MODULE=
GOCACHE=C:\Users\Administrator\AppData\Local\go-build
GOPATH=C:\Users\Administrator\go
GOPRIVATE=
GOMODCACHE=C:\Users\Administrator\go\pkg\mod
GONOSUMDB=
GOROOT=c:\go
[Trace - 10:44:20.756 AM] Sending response 'client/registerCapability - (3)' in 217ms.
Result:
[Trace - 10:44:20.758 AM] Received request 'client/registerCapability - (4)'.
Params: {"registrations":[{"id":"workspace/didChangeConfiguration","method":"workspace/didChangeConfiguration"},{"id":"workspace/didChangeWorkspaceFolders","method":"workspace/didChangeWorkspaceFolders"}]}
[Trace - 10:44:20.868 AM] Sending response 'client/registerCapability - (4)' in 110ms.
Result:
[Trace - 10:44:21.125 AM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2020/12/02 10:44:21 go/packages.Load\n\tsnapshot=0\n\tdirectory=C:\\Users\\hakim\\work\n\tquery=[builtin work/...]\n\tpackages=2\n"}
[Info - 10:44:21 AM] 2020/12/02 10:44:21 go/packages.Load
snapshot=0
directory=C:\Users\hakim\work
query=[builtin work/...]
packages=2
[Trace - 10:44:21.128 AM] Received notification '$/progress'.
Params: {"token":"5577006791947779410","value":{"kind":"end","message":"Finished loading packages."}}
[Trace - 10:44:21.131 AM] Received response 'textDocument/documentSymbol - (1)' in 1251ms.
Result: [{"name":"Config","detail":"struct{...}","kind":23,"range":{"start":{"line":4,"character":5},"end":{"line":10,"character":1}},"selectionRange":{"start":{"line":4,"character":5},"end":{"line":4,"character":11}},"children":[{"name":"Type","detail":"string","kind":8,"range":{"start":{"line":8,"character":1},"end":{"line":8,"character":28}},"selectionRange":{"start":{"line":8,"character":1},"end":{"line":8,"character":5}}},{"name":"Config","detail":"string","kind":8,"range":{"start":{"line":9,"character":1},"end":{"line":9,"character":30}},"selectionRange":{"start":{"line":9,"character":1},"end":{"line":9,"character":7}}}]}]
[Trace - 10:44:21.252 AM] Received response 'textDocument/codeAction - (2)' in 1372ms.
Result: [{"title":"Organize Imports","kind":"source.organizeImports","disabled":{"reason":""},"edit":{"documentChanges":[{"textDocument":{"version":58,"uri":"file:///C:/Users/hakim/work/main.go"},"edits":[{"range":{"start":{"line":0,"character":12},"end":{"line":0,"character":13}},"newText":""},{"range":{"start":{"line":1,"character":0},"end":{"line":1,"character":1}},"newText":""},{"range":{"start":{"line":2,"character":48},"end":{"line":2,"character":49}},"newText":""},{"range":{"start":{"line":2,"character":49},"end":{"line":2,"character":49}},"newText":"\n// for a database connection"}]}]}}]
[Trace - 10:44:21.294 AM] Received response 'textDocument/documentLink - (3)' in 1414ms.
Result: null
[Trace - 10:44:21.298 AM] Received response 'textDocument/foldingRange - (4)' in 1040ms.
Result: [{"startLine":2,"startCharacter":48,"endLine":3,"endCharacter":28,"kind":"comment"},{"startLine":4,"startCharacter":20,"endLine":9,"endCharacter":30},{"startLine":5,"startCharacter":68,"endLine":7,"endCharacter":14,"kind":"comment"}]
[Trace - 10:44:21.317 AM] Received response 'textDocument/codeLens - (5)' in 1058ms.
Result: null
[Trace - 10:44:21.318 AM] Received response 'textDocument/codeLens - (6)' in 1059ms.
Result: null
[Trace - 10:44:23.368 AM] Sending request 'textDocument/documentHighlight - (7)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"},"position":{"line":5,"character":46}}
[Trace - 10:44:23.371 AM] Received response 'textDocument/documentHighlight - (7)' in 2ms.
Result: []
[Trace - 10:44:23.589 AM] Sending request 'textDocument/codeAction - (8)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"},"range":{"start":{"line":5,"character":46},"end":{"line":5,"character":46}},"context":{"diagnostics":[]}}
[Trace - 10:44:23.594 AM] Received response 'textDocument/codeAction - (8)' in 5ms.
Result: [{"title":"Organize Imports","kind":"source.organizeImports","disabled":{"reason":""},"edit":{"documentChanges":[{"textDocument":{"version":58,"uri":"file:///C:/Users/hakim/work/main.go"},"edits":[{"range":{"start":{"line":0,"character":12},"end":{"line":0,"character":13}},"newText":""},{"range":{"start":{"line":1,"character":0},"end":{"line":1,"character":1}},"newText":""},{"range":{"start":{"line":2,"character":48},"end":{"line":2,"character":49}},"newText":""},{"range":{"start":{"line":2,"character":49},"end":{"line":2,"character":49}},"newText":"\n// for a database connection"}]}]}}]
[Trace - 10:44:38.351 AM] Sending request 'textDocument/codeAction - (9)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"},"range":{"start":{"line":0,"character":0},"end":{"line":11,"character":0}},"context":{"diagnostics":[],"only":["source.organizeImports"]}}
[Trace - 10:44:38.354 AM] Received response 'textDocument/codeAction - (9)' in 2ms.
Result: [{"title":"Organize Imports","kind":"source.organizeImports","disabled":{"reason":""},"edit":{"documentChanges":[{"textDocument":{"version":58,"uri":"file:///C:/Users/hakim/work/main.go"},"edits":[{"range":{"start":{"line":0,"character":12},"end":{"line":0,"character":13}},"newText":""},{"range":{"start":{"line":1,"character":0},"end":{"line":1,"character":1}},"newText":""},{"range":{"start":{"line":2,"character":48},"end":{"line":2,"character":49}},"newText":""},{"range":{"start":{"line":2,"character":49},"end":{"line":2,"character":49}},"newText":"\n// for a database connection"}]}]}}]
[Trace - 10:44:38.462 AM] Sending notification 'textDocument/didChange'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go","version":59},"contentChanges":[{"range":{"start":{"line":2,"character":48},"end":{"line":2,"character":48}},"rangeLength":0,"text":"\r\n// for a database connection"}]}
[Trace - 10:44:38.462 AM] Sending request 'textDocument/formatting - (10)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"},"options":{"tabSize":4,"insertSpaces":false}}
[Trace - 10:44:38.481 AM] Received response 'textDocument/formatting - (10)' in 18ms.
Result: [{"range":{"start":{"line":0,"character":12},"end":{"line":0,"character":13}},"newText":""},{"range":{"start":{"line":1,"character":0},"end":{"line":1,"character":1}},"newText":""},{"range":{"start":{"line":2,"character":48},"end":{"line":2,"character":49}},"newText":""},{"range":{"start":{"line":3,"character":28},"end":{"line":3,"character":29}},"newText":""},{"range":{"start":{"line":4,"character":28},"end":{"line":4,"character":29}},"newText":""},{"range":{"start":{"line":5,"character":20},"end":{"line":5,"character":21}},"newText":""},{"range":{"start":{"line":6,"character":68},"end":{"line":6,"character":69}},"newText":""},{"range":{"start":{"line":7,"character":8},"end":{"line":7,"character":9}},"newText":""},{"range":{"start":{"line":8,"character":14},"end":{"line":8,"character":15}},"newText":""},{"range":{"start":{"line":9,"character":28},"end":{"line":9,"character":29}},"newText":""},{"range":{"start":{"line":10,"character":30},"end":{"line":10,"character":31}},"newText":""},{"range":{"start":{"line":11,"character":1},"end":{"line":11,"character":2}},"newText":""}]
[Trace - 10:44:38.600 AM] Sending request 'textDocument/foldingRange - (11)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"}}
[Trace - 10:44:38.600 AM] Sending notification 'textDocument/didSave'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go","version":59}}
[Trace - 10:44:38.637 AM] Received response 'textDocument/foldingRange - (11)' in 37ms.
Result: [{"startLine":2,"startCharacter":48,"endLine":4,"endCharacter":28,"kind":"comment"},{"startLine":5,"startCharacter":20,"endLine":10,"endCharacter":30},{"startLine":6,"startCharacter":68,"endLine":8,"endCharacter":14,"kind":"comment"}]
[Trace - 10:44:38.896 AM] Sending request 'textDocument/codeAction - (12)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"},"range":{"start":{"line":6,"character":46},"end":{"line":6,"character":46}},"context":{"diagnostics":[]}}
[Trace - 10:44:38.896 AM] Sending request 'textDocument/codeLens - (13)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"}}
[Trace - 10:44:38.900 AM] Sending request 'textDocument/codeLens - (14)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"}}
[Trace - 10:44:38.900 AM] Sending request 'textDocument/documentSymbol - (15)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"}}
[Trace - 10:44:38.938 AM] Received response 'textDocument/codeAction - (12)' in 42ms.
Result: [{"title":"Organize Imports","kind":"source.organizeImports","disabled":{"reason":""},"edit":{"documentChanges":[{"textDocument":{"version":59,"uri":"file:///C:/Users/hakim/work/main.go"},"edits":[{"range":{"start":{"line":0,"character":12},"end":{"line":0,"character":13}},"newText":""},{"range":{"start":{"line":1,"character":0},"end":{"line":1,"character":1}},"newText":""},{"range":{"start":{"line":2,"character":48},"end":{"line":2,"character":49}},"newText":""},{"range":{"start":{"line":2,"character":49},"end":{"line":2,"character":49}},"newText":"\n// for a database connection\n// for a database connection"}]}]}}]
[Trace - 10:44:38.938 AM] Received response 'textDocument/codeLens - (13)' in 42ms.
Result: null
[Trace - 10:44:38.938 AM] Received response 'textDocument/codeLens - (14)' in 38ms.
Result: null
[Trace - 10:44:38.938 AM] Received response 'textDocument/documentSymbol - (15)' in 38ms.
Result: [{"name":"Config","detail":"struct{...}","kind":23,"range":{"start":{"line":5,"character":5},"end":{"line":11,"character":1}},"selectionRange":{"start":{"line":5,"character":5},"end":{"line":5,"character":11}},"children":[{"name":"Type","detail":"string","kind":8,"range":{"start":{"line":9,"character":1},"end":{"line":9,"character":28}},"selectionRange":{"start":{"line":9,"character":1},"end":{"line":9,"character":5}}},{"name":"Config","detail":"string","kind":8,"range":{"start":{"line":10,"character":1},"end":{"line":10,"character":30}},"selectionRange":{"start":{"line":10,"character":1},"end":{"line":10,"character":7}}}]}]
[Trace - 10:44:39.193 AM] Sending notification 'workspace/didChangeWatchedFiles'.
Params: {"changes":[{"uri":"file:///c%3A/Users/hakim/work/main.go","type":2}]}
[Trace - 10:44:39.387 AM] Sending request 'textDocument/documentLink - (16)'.
Params: {"textDocument":{"uri":"file:///c%3A/Users/hakim/work/main.go"}}
[Trace - 10:44:39.389 AM] Received response 'textDocument/documentLink - (16)' in 2ms.
Result: null
Change https://golang.org/cl/275012 mentions this issue: internal/lsp: fix handling of //-style comments in CRLF files
Change https://golang.org/cl/275437 mentions this issue: [gopls-release-branch.0.5] internal/lsp: fix handling of //-style comments in CRLF files
Most helpful comment
I confirm this is reproducible with the latest version of gopls (v0.5.4)
gopls log