profile
viewpoint
Caleb Spare cespare Liftoff Palo Alto, CA I make Go servers fast at @liftoffio.

BurntSushi/toml 3027

TOML parser for Golang with reflection.

cespare/deplist 61

List the external dependencies of a Go package.

cespare/discoball 17

A simple stream filter to highlight patterns

cespare/cbor 13

A Go implementation of CBOR (compact binary object representation).

bkad/prat 12

group chat with markdown served over websockets

cespare/carlisle 9

Window control shortcuts for EWMH-compliant X window managers

cespare/dotfiles 8

Personal dotfiles, vim config, little scripts, etc.

cespare/boggle-solver 6

A simple boggle solver written for fun.

cespare/cron 4

A Go implementation of the cron scheduling format

issue commentgovim/govim

cmd/govim: Disabling HighlightDiagnostics sometimes doesn't work

OK, now I got it to happen a bunch. I'm not sure what changed. I even got it to occur with a really small example program.

Also, I discovered that the highlights aren't behaving properly (beyond being shown when disabled).

My test program is a single file in a package by itself with the following text:

package main

func main() {
	x := 123
}

I put this into a file named func.go. Then I opened the file in gvim. It showed a red squiggle under the x.

Weirdly, after I added two more lines to make it

package main

func main() {
	x := 123
	_ = x
	y := 234
}

and saved, the red squiggle didn't go away, and no red squiggle appeared under the y.

Here's a screenshot showing this, plus the quickfix diagnostics showing that the only issue is the y, not the x.

screen_20200126231305

<details><summary>show govim log</summary> <p>

2020-01-26T23:10:58.046987_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.047139_#1: vim start =======================
2020-01-26T23:10:58.047139_#1: sendJSONMsg: [0,[1,"loaded"]]
2020-01-26T23:10:58.047139_#1: vim end =======================
2020-01-26T23:10:58.264485_#1: vim start =======================
2020-01-26T23:10:58.264485_#1: recvJSONMsg: [1] ["callback",1,[""]]
2020-01-26T23:10:58.264485_#1: vim end =======================
2020-01-26T23:10:58.264555_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.264721_#1: vim start =======================
2020-01-26T23:10:58.264721_#1: sendJSONMsg: [0,[2,"ex","let s:govim_logfile=\"/tmp/govim_20200126_2310_58_999342015.log\""]]
2020-01-26T23:10:58.264721_#1: vim end =======================
2020-01-26T23:10:58.264934_#1: vim start =======================
2020-01-26T23:10:58.264934_#1: recvJSONMsg: [2] ["callback",2,[""]]
2020-01-26T23:10:58.264934_#1: vim end =======================
2020-01-26T23:10:58.264962_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.264973_#1: Go version go1.13
2020-01-26T23:10:58.265621_#1: Build info: &debug.BuildInfo{
2020-01-26T23:10:58.265621_#1:     Path: "github.com/govim/govim/cmd/govim",
2020-01-26T23:10:58.265621_#1:     Main: debug.Module{
2020-01-26T23:10:58.265621_#1:         Path:    "github.com/govim/govim",
2020-01-26T23:10:58.265621_#1:         Version: "(devel)",
2020-01-26T23:10:58.265621_#1:         Sum:     "",
2020-01-26T23:10:58.265621_#1:         Replace: (*debug.Module)(nil),
2020-01-26T23:10:58.265621_#1:     },
2020-01-26T23:10:58.265621_#1:     Deps: {
2020-01-26T23:10:58.265621_#1:         &debug.Module{
2020-01-26T23:10:58.265621_#1:             Path:    "github.com/fsnotify/fsnotify",
2020-01-26T23:10:58.265621_#1:             Version: "v1.4.7",
2020-01-26T23:10:58.265621_#1:             Sum:     "h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=",
2020-01-26T23:10:58.265621_#1:             Replace: (*debug.Module)(nil),
2020-01-26T23:10:58.265621_#1:         },
2020-01-26T23:10:58.265621_#1:         &debug.Module{
2020-01-26T23:10:58.265621_#1:             Path:    "github.com/kr/pretty",
2020-01-26T23:10:58.265621_#1:             Version: "v0.1.0",
2020-01-26T23:10:58.265621_#1:             Sum:     "h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=",
2020-01-26T23:10:58.265621_#1:             Replace: (*debug.Module)(nil),
2020-01-26T23:10:58.265621_#1:         },
2020-01-26T23:10:58.265621_#1:         &debug.Module{
2020-01-26T23:10:58.265621_#1:             Path:    "github.com/kr/text",
2020-01-26T23:10:58.265621_#1:             Version: "v0.1.0",
2020-01-26T23:10:58.265621_#1:             Sum:     "h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=",
2020-01-26T23:10:58.265621_#1:             Replace: (*debug.Module)(nil),
2020-01-26T23:10:58.265621_#1:         },
2020-01-26T23:10:58.265621_#1:         &debug.Module{
2020-01-26T23:10:58.265621_#1:             Path:    "golang.org/x/sys",
2020-01-26T23:10:58.265621_#1:             Version: "v0.0.0-20190412213103-97732733099d",
2020-01-26T23:10:58.265621_#1:             Sum:     "h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI=",
2020-01-26T23:10:58.265621_#1:             Replace: (*debug.Module)(nil),
2020-01-26T23:10:58.265621_#1:         },
2020-01-26T23:10:58.265621_#1:         &debug.Module{
2020-01-26T23:10:58.265621_#1:             Path:    "golang.org/x/xerrors",
2020-01-26T23:10:58.265621_#1:             Version: "v0.0.0-20191011141410-1b5146add898",
2020-01-26T23:10:58.265621_#1:             Sum:     "h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA=",
2020-01-26T23:10:58.265621_#1:             Replace: (*debug.Module)(nil),
2020-01-26T23:10:58.265621_#1:         },
2020-01-26T23:10:58.265621_#1:         &debug.Module{
2020-01-26T23:10:58.265621_#1:             Path:    "gopkg.in/tomb.v2",
2020-01-26T23:10:58.265621_#1:             Version: "v2.0.0-20161208151619-d5d1b5820637",
2020-01-26T23:10:58.265621_#1:             Sum:     "h1:yiW+nvdHb9LVqSHQBXfZCieqV4fzYhNBql77zY0ykqs=",
2020-01-26T23:10:58.265621_#1:             Replace: (*debug.Module)(nil),
2020-01-26T23:10:58.265621_#1:         },
2020-01-26T23:10:58.265621_#1:     },
2020-01-26T23:10:58.265621_#1: }
2020-01-26T23:10:58.265660_#1: vim start =======================
2020-01-26T23:10:58.265660_#1: sendJSONMsg: [0,[3,"expr","{\"VersionLong\": exists(\"v:versionlong\")?v:versionlong:-1, \"GuiRunning\": has(\"gui_running\")}"]]
2020-01-26T23:10:58.265660_#1: vim end =======================
2020-01-26T23:10:58.265874_#1: vim start =======================
2020-01-26T23:10:58.265874_#1: recvJSONMsg: [3] ["callback",3,["",{"VersionLong":8011749,"GuiRunning":1}]]
2020-01-26T23:10:58.265874_#1: vim end =======================
2020-01-26T23:10:58.265902_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.265982_#1: Loaded against gvim v8.1.1749
2020-01-26T23:10:58.266002_#1: vim start =======================
2020-01-26T23:10:58.266002_#1: sendJSONMsg: [0,[4,"ex","augroup govim"]]
2020-01-26T23:10:58.266002_#1: vim end =======================
2020-01-26T23:10:58.266167_#1: vim start =======================
2020-01-26T23:10:58.266167_#1: recvJSONMsg: [4] ["callback",4,[""]]
2020-01-26T23:10:58.266167_#1: vim end =======================
2020-01-26T23:10:58.266189_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.266240_#1: vim start =======================
2020-01-26T23:10:58.266240_#1: sendJSONMsg: [0,[5,"ex","augroup END"]]
2020-01-26T23:10:58.266240_#1: vim end =======================
2020-01-26T23:10:58.266396_#1: vim start =======================
2020-01-26T23:10:58.266396_#1: recvJSONMsg: [5] ["callback",5,[""]]
2020-01-26T23:10:58.266396_#1: vim end =======================
2020-01-26T23:10:58.266416_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.266468_#1: vim start =======================
2020-01-26T23:10:58.266468_#1: sendJSONMsg: [0,[6,"call","getcwd",-1]]
2020-01-26T23:10:58.266468_#1: vim end =======================
2020-01-26T23:10:58.266639_#1: vim start =======================
2020-01-26T23:10:58.266639_#1: recvJSONMsg: [6] ["callback",6,["","/home/caleb/p/misc/govimtest"]]
2020-01-26T23:10:58.266639_#1: vim end =======================
2020-01-26T23:10:58.266662_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.266718_#1: vim start =======================
2020-01-26T23:10:58.266718_#1: sendJSONMsg: [0,[7,"function","GOVIM_internal_BalloonExpr",[]]]
2020-01-26T23:10:58.266718_#1: vim end =======================
2020-01-26T23:10:58.266947_#1: vim start =======================
2020-01-26T23:10:58.266947_#1: recvJSONMsg: [7] ["callback",7,[""]]
2020-01-26T23:10:58.266947_#1: vim end =======================
2020-01-26T23:10:58.266999_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.267050_#1: vim start =======================
2020-01-26T23:10:58.267050_#1: sendJSONMsg: [0,[8,"autocmd","autocommand:0"," govim BufUnload *.go",["eval(expand('\u003cabuf\u003e'))"]]]
2020-01-26T23:10:58.267050_#1: vim end =======================
2020-01-26T23:10:58.267280_#1: vim start =======================
2020-01-26T23:10:58.267280_#1: recvJSONMsg: [8] ["callback",8,[""]]
2020-01-26T23:10:58.267280_#1: vim end =======================
2020-01-26T23:10:58.267310_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.267361_#1: vim start =======================
2020-01-26T23:10:58.267361_#1: sendJSONMsg: [0,[9,"autocmd","autocommand:1"," govim BufNewFile,BufRead *.go",["{\"Num\": eval(expand('\u003cabuf\u003e')), \"Name\": fnamemodify(bufname(eval(expand('\u003cabuf\u003e'))),':p'), \"Contents\": join(getbufline(eval(expand('\u003cabuf\u003e')), 0, \"$\"), \"\\n\").\"\\n\", \"Loaded\": bufloaded(eval(expand('\u003cabuf\u003e')))}"]]]
2020-01-26T23:10:58.267361_#1: vim end =======================
2020-01-26T23:10:58.267638_#1: vim start =======================
2020-01-26T23:10:58.267638_#1: recvJSONMsg: [9] ["callback",9,[""]]
2020-01-26T23:10:58.267638_#1: vim end =======================
2020-01-26T23:10:58.267677_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.267734_#1: vim start =======================
2020-01-26T23:10:58.267734_#1: sendJSONMsg: [0,[10,"autocmd","autocommand:2"," govim BufWritePre *.go",["eval(expand('\u003cabuf\u003e'))"]]]
2020-01-26T23:10:58.267734_#1: vim end =======================
2020-01-26T23:10:58.267973_#1: vim start =======================
2020-01-26T23:10:58.267973_#1: recvJSONMsg: [10] ["callback",10,[""]]
2020-01-26T23:10:58.267973_#1: vim end =======================
2020-01-26T23:10:58.267998_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.268082_#1: vim start =======================
2020-01-26T23:10:58.268082_#1: sendJSONMsg: [0,[11,"autocmd","autocommand:3"," govim BufWritePost *.go",["eval(expand('\u003cabuf\u003e'))"]]]
2020-01-26T23:10:58.268082_#1: vim end =======================
2020-01-26T23:10:58.268268_#1: vim start =======================
2020-01-26T23:10:58.268268_#1: recvJSONMsg: [11] ["callback",11,[""]]
2020-01-26T23:10:58.268268_#1: vim end =======================
2020-01-26T23:10:58.268292_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.268310_#1: vim start =======================
2020-01-26T23:10:58.268310_#1: sendJSONMsg: [0,[12,"function","GOVIM_internal_Complete",["findarg","base"]]]
2020-01-26T23:10:58.268310_#1: vim end =======================
2020-01-26T23:10:58.268522_#1: vim start =======================
2020-01-26T23:10:58.268522_#1: recvJSONMsg: [12] ["callback",12,[""]]
2020-01-26T23:10:58.268522_#1: vim end =======================
2020-01-26T23:10:58.268549_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.268628_#1: vim start =======================
2020-01-26T23:10:58.268628_#1: sendJSONMsg: [0,[13,"command","GOVIMGoToDef",{"nargs":"-nargs=?"}]]
2020-01-26T23:10:58.268628_#1: vim end =======================
2020-01-26T23:10:58.268850_#1: vim start =======================
2020-01-26T23:10:58.268850_#1: recvJSONMsg: [13] ["callback",13,[""]]
2020-01-26T23:10:58.268850_#1: vim end =======================
2020-01-26T23:10:58.268870_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.268908_#1: vim start =======================
2020-01-26T23:10:58.268908_#1: sendJSONMsg: [0,[14,"command","GOVIMSuggestedFixes",{"nargs":"-nargs=?"}]]
2020-01-26T23:10:58.268908_#1: vim end =======================
2020-01-26T23:10:58.269173_#1: vim start =======================
2020-01-26T23:10:58.269173_#1: recvJSONMsg: [14] ["callback",14,[""]]
2020-01-26T23:10:58.269173_#1: vim end =======================
2020-01-26T23:10:58.269206_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.269280_#1: vim start =======================
2020-01-26T23:10:58.269280_#1: sendJSONMsg: [0,[15,"command","GOVIMGoToPrevDef",{"count":"-count=1","nargs":"-nargs=?"}]]
2020-01-26T23:10:58.269280_#1: vim end =======================
2020-01-26T23:10:58.269574_#1: vim start =======================
2020-01-26T23:10:58.269574_#1: recvJSONMsg: [15] ["callback",15,[""]]
2020-01-26T23:10:58.269574_#1: vim end =======================
2020-01-26T23:10:58.269596_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.269644_#1: vim start =======================
2020-01-26T23:10:58.269644_#1: sendJSONMsg: [0,[16,"function","GOVIMHover",[]]]
2020-01-26T23:10:58.269644_#1: vim end =======================
2020-01-26T23:10:58.269960_#1: vim start =======================
2020-01-26T23:10:58.269960_#1: recvJSONMsg: [16] ["callback",16,[""]]
2020-01-26T23:10:58.269960_#1: vim end =======================
2020-01-26T23:10:58.269990_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.270057_#1: vim start =======================
2020-01-26T23:10:58.270057_#1: sendJSONMsg: [0,[17,"autocmd","autocommand:4"," govim BufDelete *.go",["eval(expand('\u003cabuf\u003e'))"]]]
2020-01-26T23:10:58.270057_#1: vim end =======================
2020-01-26T23:10:58.270238_#1: vim start =======================
2020-01-26T23:10:58.270238_#1: recvJSONMsg: [17] ["callback",17,[""]]
2020-01-26T23:10:58.270238_#1: vim end =======================
2020-01-26T23:10:58.270258_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.270308_#1: vim start =======================
2020-01-26T23:10:58.270308_#1: sendJSONMsg: [0,[18,"command","GOVIMGoFmt",{}]]
2020-01-26T23:10:58.270308_#1: vim end =======================
2020-01-26T23:10:58.270516_#1: vim start =======================
2020-01-26T23:10:58.270516_#1: recvJSONMsg: [18] ["callback",18,[""]]
2020-01-26T23:10:58.270516_#1: vim end =======================
2020-01-26T23:10:58.270538_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.270599_#1: vim start =======================
2020-01-26T23:10:58.270599_#1: sendJSONMsg: [0,[19,"command","GOVIMGoImports",{}]]
2020-01-26T23:10:58.270599_#1: vim end =======================
2020-01-26T23:10:58.270817_#1: vim start =======================
2020-01-26T23:10:58.270817_#1: recvJSONMsg: [19] ["callback",19,[""]]
2020-01-26T23:10:58.270817_#1: vim end =======================
2020-01-26T23:10:58.270842_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.270917_#1: vim start =======================
2020-01-26T23:10:58.270917_#1: sendJSONMsg: [0,[20,"command","GOVIMQuickfixDiagnostics",{}]]
2020-01-26T23:10:58.270917_#1: vim end =======================
2020-01-26T23:10:58.271107_#1: vim start =======================
2020-01-26T23:10:58.271107_#1: recvJSONMsg: [20] ["callback",20,[""]]
2020-01-26T23:10:58.271107_#1: vim end =======================
2020-01-26T23:10:58.271125_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.271167_#1: vim start =======================
2020-01-26T23:10:58.271167_#1: sendJSONMsg: [0,[21,"function","GOVIM_internal_BufChanged",["bufnr","start","end","added","changes"]]]
2020-01-26T23:10:58.271167_#1: vim end =======================
2020-01-26T23:10:58.271361_#1: vim start =======================
2020-01-26T23:10:58.271361_#1: recvJSONMsg: [21] ["callback",21,[""]]
2020-01-26T23:10:58.271361_#1: vim end =======================
2020-01-26T23:10:58.271377_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.271425_#1: vim start =======================
2020-01-26T23:10:58.271425_#1: sendJSONMsg: [0,[22,"function","GOVIM_internal_SetConfig",["config"]]]
2020-01-26T23:10:58.271425_#1: vim end =======================
2020-01-26T23:10:58.271601_#1: vim start =======================
2020-01-26T23:10:58.271601_#1: recvJSONMsg: [22] ["callback",22,[""]]
2020-01-26T23:10:58.271601_#1: vim end =======================
2020-01-26T23:10:58.271616_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.271677_#1: vim start =======================
2020-01-26T23:10:58.271677_#1: sendJSONMsg: [0,[23,"ex","call govim#config#Set(\"_internal_Func\", function(\"GOVIM_internal_SetConfig\"))"]]
2020-01-26T23:10:58.271677_#1: vim end =======================
2020-01-26T23:10:58.271846_#1: vim start =======================
2020-01-26T23:10:58.271846_#1: recvJSONMsg: [23] ["function","function:GOVIM_internal_SetConfig",[{"HighlightDiagnostics":0,"QuickfixSigns":0,"GoImportsLocalPrefix":"liftoff/","QuickfixAutoDiagnostics":0}]]
2020-01-26T23:10:58.271846_#1: vim end =======================
2020-01-26T23:10:58.271866_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.272055_#1: vim start =======================
2020-01-26T23:10:58.272055_#1: sendJSONMsg: [0,[24,"call","setqflist",[],"r"]]
2020-01-26T23:10:58.272055_#1: vim end =======================
2020-01-26T23:10:58.272227_#1: vim start =======================
2020-01-26T23:10:58.272227_#1: recvJSONMsg: [24] ["callback",24,["",0]]
2020-01-26T23:10:58.272227_#1: vim end =======================
2020-01-26T23:10:58.272247_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.272307_#1: vim start =======================
2020-01-26T23:10:58.272307_#1: sendJSONMsg: [0,[25,"call","sign_unplace","govim"]]
2020-01-26T23:10:58.272307_#1: vim end =======================
2020-01-26T23:10:58.272461_#1: vim start =======================
2020-01-26T23:10:58.272461_#1: recvJSONMsg: [25] ["callback",25,["",0]]
2020-01-26T23:10:58.272461_#1: vim end =======================
2020-01-26T23:10:58.272475_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.272542_#1: vim start =======================
2020-01-26T23:10:58.272542_#1: sendJSONMsg: [23,["",null]]
2020-01-26T23:10:58.272542_#1: vim end =======================
2020-01-26T23:10:58.272719_#1: vim start =======================
2020-01-26T23:10:58.272719_#1: recvJSONMsg: [26] ["callback",23,[""]]
2020-01-26T23:10:58.272719_#1: vim end =======================
2020-01-26T23:10:58.272750_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.272836_#1: vim start =======================
2020-01-26T23:10:58.272836_#1: sendJSONMsg: [0,[26,"function","GOVIM_internal_SetUserBusy",["isBusy"]]]
2020-01-26T23:10:58.272836_#1: vim end =======================
2020-01-26T23:10:58.273033_#1: vim start =======================
2020-01-26T23:10:58.273033_#1: recvJSONMsg: [27] ["callback",26,[""]]
2020-01-26T23:10:58.273033_#1: vim end =======================
2020-01-26T23:10:58.273085_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.273124_#1: vim start =======================
2020-01-26T23:10:58.273124_#1: sendJSONMsg: [0,[27,"function","GOVIM_internal_PopupSelection",["id","selected"]]]
2020-01-26T23:10:58.273124_#1: vim end =======================
2020-01-26T23:10:58.273327_#1: vim start =======================
2020-01-26T23:10:58.273327_#1: recvJSONMsg: [28] ["callback",27,[""]]
2020-01-26T23:10:58.273327_#1: vim end =======================
2020-01-26T23:10:58.273384_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.273439_#1: vim start =======================
2020-01-26T23:10:58.273439_#1: sendJSONMsg: [0,[28,"command","GOVIMReferences",{}]]
2020-01-26T23:10:58.273439_#1: vim end =======================
2020-01-26T23:10:58.273695_#1: vim start =======================
2020-01-26T23:10:58.273695_#1: recvJSONMsg: [29] ["callback",28,[""]]
2020-01-26T23:10:58.273695_#1: vim end =======================
2020-01-26T23:10:58.273711_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.273783_#1: vim start =======================
2020-01-26T23:10:58.273783_#1: sendJSONMsg: [0,[29,"command","GOVIMRename",{"nargs":"-nargs=?"}]]
2020-01-26T23:10:58.273783_#1: vim end =======================
2020-01-26T23:10:58.273980_#1: vim start =======================
2020-01-26T23:10:58.273980_#1: recvJSONMsg: [30] ["callback",29,[""]]
2020-01-26T23:10:58.273980_#1: vim end =======================
2020-01-26T23:10:58.273997_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.274074_#1: vim start =======================
2020-01-26T23:10:58.274074_#1: sendJSONMsg: [0,[30,"command","GOVIMStringFn",{"complete":"-complete=customlist,GOVIM_internal_StringFnComplete","nargs":"-nargs=+","range":"-range"}]]
2020-01-26T23:10:58.274074_#1: vim end =======================
2020-01-26T23:10:58.274397_#1: vim start =======================
2020-01-26T23:10:58.274397_#1: recvJSONMsg: [31] ["callback",30,[""]]
2020-01-26T23:10:58.274397_#1: vim end =======================
2020-01-26T23:10:58.274419_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.274489_#1: vim start =======================
2020-01-26T23:10:58.274489_#1: sendJSONMsg: [0,[31,"function","GOVIM_internal_StringFnComplete",["ArgLead","CmdLine","CursorPos"]]]
2020-01-26T23:10:58.274489_#1: vim end =======================
2020-01-26T23:10:58.274699_#1: vim start =======================
2020-01-26T23:10:58.274699_#1: recvJSONMsg: [32] ["callback",31,[""]]
2020-01-26T23:10:58.274699_#1: vim end =======================
2020-01-26T23:10:58.274716_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.274784_#1: vim start =======================
2020-01-26T23:10:58.274784_#1: sendJSONMsg: [0,[32,"autocmd","autocommand:5"," govim CompleteDone *.go",["eval(expand('\u003cabuf\u003e'))","v:completed_item"]]]
2020-01-26T23:10:58.274784_#1: vim end =======================
2020-01-26T23:10:58.275013_#1: vim start =======================
2020-01-26T23:10:58.275013_#1: recvJSONMsg: [33] ["callback",32,[""]]
2020-01-26T23:10:58.275013_#1: vim end =======================
2020-01-26T23:10:58.275032_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.275127_#1: vim start =======================
2020-01-26T23:10:58.275127_#1: sendJSONMsg: [0,[33,"expr","\u0026t_Co"]]
2020-01-26T23:10:58.275127_#1: vim end =======================
2020-01-26T23:10:58.275315_#1: vim start =======================
2020-01-26T23:10:58.275315_#1: recvJSONMsg: [34] ["callback",33,["",""]]
2020-01-26T23:10:58.275315_#1: vim end =======================
2020-01-26T23:10:58.275335_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.275521_#1: vim start =======================
2020-01-26T23:10:58.275521_#1: sendJSONMsg: [0,[34,"call","s:batchCall",[["call","s:mustNothing","execute","highlight default GOVIMErr term=underline cterm=underline gui=undercurl ctermfg=1 guisp=Red"],["call","s:mustNothing","execute","highlight default GOVIMWarn term=underline cterm=underline gui=undercurl ctermfg=3 guisp=Orange"],["call","s:mustNothing","execute","highlight default GOVIMInfo term=underline cterm=underline gui=undercurl ctermfg=6 guisp=Cyan"],["call","s:mustNothing","execute","highlight default link GOVIMHint GOVIMInfo"],["call","s:mustNothing","execute","highlight default link GOVIMSignErr ErrorMsg"],["call","s:mustNothing","execute","highlight default GOVIMSignWarn ctermfg=15 ctermbg=3 guisp=Orange guifg=Orange"],["call","s:mustNothing","execute","highlight default GOVIMSignInfo ctermfg=15 ctermbg=6 guisp=Cyan guifg=Cyan"],["call","s:mustNothing","execute","highlight default link GOVIMSignHint GOVIMSignInfo"],["call","s:mustNothing","execute","highlight default GOVIMHoverErr cterm=bold gui=bold ctermfg=1"],["call","s:mustNothing","execute","highlight default GOVIMHoverWarn cterm=bold gui=bold ctermfg=3"],["call","s:mustNothing","execute","highlight default GOVIMHoverInfo cterm=bold gui=bold ctermfg=6"],["call","s:mustNothing","execute","highlight default link GOVIMHoverHint GOVIMHoverInfo"],["call","s:mustNothing","execute","highlight default GOVIMHoverDiagSrc cterm=none gui=italic ctermfg=7 guifg=#8a8a8a"]]]]
2020-01-26T23:10:58.275521_#1: vim end =======================
2020-01-26T23:10:58.276266_#1: vim start =======================
2020-01-26T23:10:58.276266_#1: recvJSONMsg: [35] ["callback",34,["",["","","","","","","","","","","","",""]]]
2020-01-26T23:10:58.276266_#1: vim end =======================
2020-01-26T23:10:58.276294_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.276381_#1: vim start =======================
2020-01-26T23:10:58.276381_#1: sendJSONMsg: [0,[35,"call","s:batchCall",[["call","s:mustNothing","sign_getdefined","GOVIMSignErr"],["call","s:mustNothing","sign_getdefined","GOVIMSignWarn"],["call","s:mustNothing","sign_getdefined","GOVIMSignInfo"],["call","s:mustNothing","sign_getdefined","GOVIMSignHint"]]]]
2020-01-26T23:10:58.276381_#1: vim end =======================
2020-01-26T23:10:58.277524_#1: vim start =======================
2020-01-26T23:10:58.277524_#1: recvJSONMsg: [36] ["callback",35,["",[[],[],[],[]]]]
2020-01-26T23:10:58.277524_#1: vim end =======================
2020-01-26T23:10:58.277572_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.277721_#1: vim start =======================
2020-01-26T23:10:58.277721_#1: sendJSONMsg: [0,[36,"call","s:batchCall",[["call","s:mustNothing","sign_define","GOVIMSignErr",{"text":"\u003e\u003e","texthl":"GOVIMSignErr"}],["call","s:mustNothing","sign_define","GOVIMSignWarn",{"text":"\u003e\u003e","texthl":"GOVIMSignWarn"}],["call","s:mustNothing","sign_define","GOVIMSignInfo",{"text":"\u003e\u003e","texthl":"GOVIMSignInfo"}],["call","s:mustNothing","sign_define","GOVIMSignHint",{"text":"\u003e\u003e","texthl":"GOVIMSignHint"}]]]]
2020-01-26T23:10:58.277721_#1: vim end =======================
2020-01-26T23:10:58.278071_#1: vim start =======================
2020-01-26T23:10:58.278071_#1: recvJSONMsg: [37] ["callback",36,["",[0,0,0,0]]]
2020-01-26T23:10:58.278071_#1: vim end =======================
2020-01-26T23:10:58.278102_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.278292_#1: vim start =======================
2020-01-26T23:10:58.278292_#1: sendJSONMsg: [0,[37,"call","s:batchCall",[["call","s:mustNothing","prop_type_add","GOVIMErr",{"highlight":"GOVIMErr","combine":true,"priority":14}],["call","s:mustNothing","prop_type_add","GOVIMHoverErr",{"highlight":"GOVIMHoverErr","combine":true,"priority":14}],["call","s:mustNothing","prop_type_add","GOVIMWarn",{"highlight":"GOVIMWarn","combine":true,"priority":12}],["call","s:mustNothing","prop_type_add","GOVIMHoverWarn",{"highlight":"GOVIMHoverWarn","combine":true,"priority":12}],["call","s:mustNothing","prop_type_add","GOVIMInfo",{"highlight":"GOVIMInfo","combine":true,"priority":10}],["call","s:mustNothing","prop_type_add","GOVIMHoverInfo",{"highlight":"GOVIMHoverInfo","combine":true,"priority":10}],["call","s:mustNothing","prop_type_add","GOVIMHint",{"highlight":"GOVIMHint","combine":true,"priority":8}],["call","s:mustNothing","prop_type_add","GOVIMHoverHint",{"highlight":"GOVIMHoverHint","combine":true,"priority":8}],["call","s:mustNothing","prop_type_add","GOVIMHoverDiagSrc",{"highlight":"GOVIMHoverDiagSrc","combine":true,"priority":15}]]]]
2020-01-26T23:10:58.278292_#1: vim end =======================
2020-01-26T23:10:58.278838_#1: vim start =======================
2020-01-26T23:10:58.278838_#1: recvJSONMsg: [38] ["callback",37,["",[0,0,0,0,0,0,0,0,0]]]
2020-01-26T23:10:58.278838_#1: vim end =======================
2020-01-26T23:10:58.278874_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.278997_#1: vim start =======================
2020-01-26T23:10:58.278997_#1: sendJSONMsg: [0,[38,"function","GOVIMMotion",["direction","target"]]]
2020-01-26T23:10:58.278997_#1: vim end =======================
2020-01-26T23:10:58.279365_#1: vim start =======================
2020-01-26T23:10:58.279365_#1: recvJSONMsg: [39] ["callback",38,[""]]
2020-01-26T23:10:58.279365_#1: vim end =======================
2020-01-26T23:10:58.279416_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.279521_#1: vim start =======================
2020-01-26T23:10:58.279521_#1: sendJSONMsg: [0,[39,"expr","has(\"gui_running\")"]]
2020-01-26T23:10:58.279521_#1: vim end =======================
2020-01-26T23:10:58.279699_#1: vim start =======================
2020-01-26T23:10:58.279699_#1: recvJSONMsg: [40] ["callback",39,["",1]]
2020-01-26T23:10:58.279699_#1: vim end =======================
2020-01-26T23:10:58.279747_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.279945_#1: gopls log file: /tmp/gopls_20200126_2310_58_832583186.log
2020-01-26T23:10:58.279973_#1: vim start =======================
2020-01-26T23:10:58.279973_#1: sendJSONMsg: [0,[40,"ex","let s:gopls_logfile=\"/tmp/gopls_20200126_2310_58_832583186.log\""]]
2020-01-26T23:10:58.279973_#1: vim end =======================
2020-01-26T23:10:58.280153_#1: vim start =======================
2020-01-26T23:10:58.280153_#1: recvJSONMsg: [41] ["callback",40,[""]]
2020-01-26T23:10:58.280153_#1: vim end =======================
2020-01-26T23:10:58.280190_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.280245_#1: Running gopls: /home/caleb/.vim/pack/plugins/start/govim/cmd/govim/.bin/4b70552ac41586b1cd509e72828bd67236292133/gopls -rpc.trace -logfile /tmp/gopls_20200126_2310_58_832583186.log
2020-01-26T23:10:58.282610_#1: gopls server start =======================
2020-01-26T23:10:58.282610_#1: gopls.Initialize() call; params:
2020-01-26T23:10:58.282610_#1: &protocol.ParamInitialize{
2020-01-26T23:10:58.282610_#1:     InitializeParams: struct { protocol.InnerInitializeParams; protocol.WorkspaceFoldersInitializeParams }{
2020-01-26T23:10:58.282610_#1:         InnerInitializeParams: protocol.InnerInitializeParams{
2020-01-26T23:10:58.282610_#1:             ProcessID:    0,
2020-01-26T23:10:58.282610_#1:             ClientInfo:   struct { Name string "json:\"name\""; Version string "json:\"version,omitempty\"" }{},
2020-01-26T23:10:58.282610_#1:             RootPath:     "",
2020-01-26T23:10:58.282610_#1:             RootURI:      "file:///home/caleb/p/misc/govimtest",
2020-01-26T23:10:58.282610_#1:             Capabilities: struct { Workspace struct { protocol.WorkspaceClientCapabilities; WorkspaceFolders bool "json:\"workspaceFolders,omitempty\""; Configuration bool "json:\"configuration,omitempty\"" }; TextDocument protocol.TextDocumentClientCapabilities "json:\"textDocument,omitempty\""; Window interface {} "json:\"window,omitempty\""; Experimental interface {} "json:\"experimental,omitempty\""; DynamicRegistration bool "json:\"dynamicRegistration,omitempty\"" }{
2020-01-26T23:10:58.282610_#1:                 Workspace: struct { protocol.WorkspaceClientCapabilities; WorkspaceFolders bool "json:\"workspaceFolders,omitempty\""; Configuration bool "json:\"configuration,omitempty\"" }{
2020-01-26T23:10:58.282610_#1:                     WorkspaceClientCapabilities: protocol.WorkspaceClientCapabilities{
2020-01-26T23:10:58.282610_#1:                         ApplyEdit:              false,
2020-01-26T23:10:58.282610_#1:                         WorkspaceEdit:          protocol.WorkspaceEditClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                         DidChangeConfiguration: protocol.DidChangeConfigurationClientCapabilities{DynamicRegistration:true},
2020-01-26T23:10:58.282610_#1:                         DidChangeWatchedFiles:  protocol.DidChangeWatchedFilesClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                         Symbol:                 protocol.WorkspaceSymbolClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                         ExecuteCommand:         protocol.ExecuteCommandClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     },
2020-01-26T23:10:58.282610_#1:                     WorkspaceFolders: false,
2020-01-26T23:10:58.282610_#1:                     Configuration:    true,
2020-01-26T23:10:58.282610_#1:                 },
2020-01-26T23:10:58.282610_#1:                 TextDocument: protocol.TextDocumentClientCapabilities{
2020-01-26T23:10:58.282610_#1:                     Synchronization: protocol.TextDocumentSyncClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     Completion:      protocol.CompletionClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     Hover:           protocol.HoverClientCapabilities{
2020-01-26T23:10:58.282610_#1:                         DynamicRegistration: false,
2020-01-26T23:10:58.282610_#1:                         ContentFormat:       {"plaintext"},
2020-01-26T23:10:58.282610_#1:                     },
2020-01-26T23:10:58.282610_#1:                     SignatureHelp:      protocol.SignatureHelpClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     Declaration:        protocol.DeclarationClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     Definition:         protocol.DefinitionClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     TypeDefinition:     protocol.TypeDefinitionClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     Implementation:     protocol.ImplementationClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     References:         protocol.ReferenceClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     DocumentHighlight:  protocol.DocumentHighlightClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     DocumentSymbol:     protocol.DocumentSymbolClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     CodeAction:         protocol.CodeActionClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     CodeLens:           protocol.CodeLensClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     DocumentLink:       protocol.DocumentLinkClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     ColorProvider:      protocol.DocumentColorClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     Formatting:         protocol.DocumentFormattingClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     RangeFormatting:    protocol.DocumentRangeFormattingClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     OnTypeFormatting:   protocol.DocumentOnTypeFormattingClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     Rename:             protocol.RenameClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     FoldingRange:       protocol.FoldingRangeClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     SelectionRange:     protocol.SelectionRangeClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                     PublishDiagnostics: protocol.PublishDiagnosticsClientCapabilities{},
2020-01-26T23:10:58.282610_#1:                 },
2020-01-26T23:10:58.282610_#1:                 Window:              nil,
2020-01-26T23:10:58.282610_#1:                 Experimental:        nil,
2020-01-26T23:10:58.282610_#1:                 DynamicRegistration: false,
2020-01-26T23:10:58.282610_#1:             },
2020-01-26T23:10:58.282610_#1:             InitializationOptions: map[string]interface {}{
2020-01-26T23:10:58.282610_#1:                 "incrementalSync": bool(true),
2020-01-26T23:10:58.282610_#1:                 "noDocsOnHover":   bool(true),
2020-01-26T23:10:58.282610_#1:             },
2020-01-26T23:10:58.282610_#1:             Trace:                  "",
2020-01-26T23:10:58.282610_#1:             WorkDoneProgressParams: protocol.WorkDoneProgressParams{},
2020-01-26T23:10:58.282610_#1:         },
2020-01-26T23:10:58.282610_#1:         WorkspaceFoldersInitializeParams: protocol.WorkspaceFoldersInitializeParams{},
2020-01-26T23:10:58.282610_#1:     },
2020-01-26T23:10:58.282610_#1:     WorkDoneProgressParams: protocol.WorkDoneProgressParams{},
2020-01-26T23:10:58.282610_#1: }
2020-01-26T23:10:58.282610_#1: gopls server end =======================
2020-01-26T23:10:58.292904_#1: gopls server start =======================
2020-01-26T23:10:58.292904_#1: gopls.Initialize() return; err: <nil>; res:
2020-01-26T23:10:58.292904_#1: &protocol.InitializeResult{
2020-01-26T23:10:58.292904_#1:     Capabilities: struct { TextDocumentSync interface {} "json:\"textDocumentSync,omitempty\""; CompletionProvider protocol.CompletionOptions "json:\"completionProvider,omitempty\""; HoverProvider bool "json:\"hoverProvider,omitempty\""; SignatureHelpProvider protocol.SignatureHelpOptions "json:\"signatureHelpProvider,omitempty\""; DeclarationProvider interface {} "json:\"declarationProvider,omitempty\""; DefinitionProvider bool "json:\"definitionProvider,omitempty\""; TypeDefinitionProvider interface {} "json:\"typeDefinitionProvider,omitempty\""; ImplementationProvider interface {} "json:\"implementationProvider,omitempty\""; ReferencesProvider bool "json:\"referencesProvider,omitempty\""; DocumentHighlightProvider bool "json:\"documentHighlightProvider,omitempty\""; DocumentSymbolProvider bool "json:\"documentSymbolProvider,omitempty\""; CodeActionProvider interface {} "json:\"codeActionProvider,omitempty\""; CodeLensProvider protocol.CodeLensOptions "json:\"codeLensProvider,omitempty\""; DocumentLinkProvider protocol.DocumentLinkOptions "json:\"documentLinkProvider,omitempty\""; ColorProvider interface {} "json:\"colorProvider,omitempty\""; WorkspaceSymbolProvider bool "json:\"workspaceSymbolProvider,omitempty\""; DocumentFormattingProvider bool "json:\"documentFormattingProvider,omitempty\""; DocumentRangeFormattingProvider bool "json:\"documentRangeFormattingProvider,omitempty\""; DocumentOnTypeFormattingProvider protocol.DocumentOnTypeFormattingOptions "json:\"documentOnTypeFormattingProvider,omitempty\""; RenameProvider interface {} "json:\"renameProvider,omitempty\""; FoldingRangeProvider interface {} "json:\"foldingRangeProvider,omitempty\""; SelectionRangeProvider interface {} "json:\"selectionRangeProvider,omitempty\""; ExecuteCommandProvider protocol.ExecuteCommandOptions "json:\"executeCommandProvider,omitempty\""; Experimental interface {} "json:\"experimental,omitempty\""; Workspace protocol.WorkspaceGn "json:\"workspace,omitempty\"" }{
2020-01-26T23:10:58.292904_#1:         TextDocumentSync: map[string]interface {}{
2020-01-26T23:10:58.292904_#1:             "openClose": bool(true),
2020-01-26T23:10:58.292904_#1:             "change":    float64(2),
2020-01-26T23:10:58.292904_#1:             "save":      map[string]interface {}{
2020-01-26T23:10:58.292904_#1:             },
2020-01-26T23:10:58.292904_#1:         },
2020-01-26T23:10:58.292904_#1:         CompletionProvider: protocol.CompletionOptions{
2020-01-26T23:10:58.292904_#1:             TriggerCharacters:       {"."},
2020-01-26T23:10:58.292904_#1:             AllCommitCharacters:     nil,
2020-01-26T23:10:58.292904_#1:             ResolveProvider:         false,
2020-01-26T23:10:58.292904_#1:             WorkDoneProgressOptions: protocol.WorkDoneProgressOptions{},
2020-01-26T23:10:58.292904_#1:         },
2020-01-26T23:10:58.292904_#1:         HoverProvider:         true,
2020-01-26T23:10:58.292904_#1:         SignatureHelpProvider: protocol.SignatureHelpOptions{
2020-01-26T23:10:58.292904_#1:             TriggerCharacters:       {"(", ","},
2020-01-26T23:10:58.292904_#1:             RetriggerCharacters:     nil,
2020-01-26T23:10:58.292904_#1:             WorkDoneProgressOptions: protocol.WorkDoneProgressOptions{},
2020-01-26T23:10:58.292904_#1:         },
2020-01-26T23:10:58.292904_#1:         DeclarationProvider:              nil,
2020-01-26T23:10:58.292904_#1:         DefinitionProvider:               true,
2020-01-26T23:10:58.292904_#1:         TypeDefinitionProvider:           bool(true),
2020-01-26T23:10:58.292904_#1:         ImplementationProvider:           bool(true),
2020-01-26T23:10:58.292904_#1:         ReferencesProvider:               true,
2020-01-26T23:10:58.292904_#1:         DocumentHighlightProvider:        true,
2020-01-26T23:10:58.292904_#1:         DocumentSymbolProvider:           true,
2020-01-26T23:10:58.292904_#1:         CodeActionProvider:               bool(true),
2020-01-26T23:10:58.292904_#1:         CodeLensProvider:                 protocol.CodeLensOptions{},
2020-01-26T23:10:58.292904_#1:         DocumentLinkProvider:             protocol.DocumentLinkOptions{},
2020-01-26T23:10:58.292904_#1:         ColorProvider:                    nil,
2020-01-26T23:10:58.292904_#1:         WorkspaceSymbolProvider:          false,
2020-01-26T23:10:58.292904_#1:         DocumentFormattingProvider:       true,
2020-01-26T23:10:58.292904_#1:         DocumentRangeFormattingProvider:  false,
2020-01-26T23:10:58.292904_#1:         DocumentOnTypeFormattingProvider: protocol.DocumentOnTypeFormattingOptions{},
2020-01-26T23:10:58.292904_#1:         RenameProvider:                   bool(true),
2020-01-26T23:10:58.292904_#1:         FoldingRangeProvider:             bool(true),
2020-01-26T23:10:58.292904_#1:         SelectionRangeProvider:           nil,
2020-01-26T23:10:58.292904_#1:         ExecuteCommandProvider:           protocol.ExecuteCommandOptions{
2020-01-26T23:10:58.292904_#1:             Commands:                {"tidy"},
2020-01-26T23:10:58.292904_#1:             WorkDoneProgressOptions: protocol.WorkDoneProgressOptions{},
2020-01-26T23:10:58.292904_#1:         },
2020-01-26T23:10:58.292904_#1:         Experimental: nil,
2020-01-26T23:10:58.292904_#1:         Workspace:    protocol.WorkspaceGn{
2020-01-26T23:10:58.292904_#1:             WorkspaceFolders: protocol.WorkspaceFoldersGn{Supported:true, ChangeNotifications:"workspace/didChangeWorkspaceFolders"},
2020-01-26T23:10:58.292904_#1:         },
2020-01-26T23:10:58.292904_#1:     },
2020-01-26T23:10:58.292904_#1:     ServerInfo: struct { Name string "json:\"name\""; Version string "json:\"version,omitempty\"" }{},
2020-01-26T23:10:58.292904_#1: }
2020-01-26T23:10:58.292904_#1: gopls server end =======================
2020-01-26T23:10:58.292943_#1: gopls server start =======================
2020-01-26T23:10:58.292943_#1: gopls.Initialized() call; params:
2020-01-26T23:10:58.292943_#1: &protocol.InitializedParams{}
2020-01-26T23:10:58.292943_#1: gopls server end =======================
2020-01-26T23:10:58.292994_#1: gopls server start =======================
2020-01-26T23:10:58.292994_#1: gopls.Initialized() return; err: <nil>
2020-01-26T23:10:58.292994_#1: gopls server end =======================
2020-01-26T23:10:58.293436_#1: gopls client start =======================
2020-01-26T23:10:58.293436_#1: RegisterCapability: &protocol.RegistrationParams{
2020-01-26T23:10:58.293436_#1:     Registrations: {
2020-01-26T23:10:58.293436_#1:         {
2020-01-26T23:10:58.293436_#1:             ID:              "workspace/didChangeConfiguration",
2020-01-26T23:10:58.293436_#1:             Method:          "workspace/didChangeConfiguration",
2020-01-26T23:10:58.293436_#1:             RegisterOptions: nil,
2020-01-26T23:10:58.293436_#1:         },
2020-01-26T23:10:58.293436_#1:         {
2020-01-26T23:10:58.293436_#1:             ID:              "workspace/didChangeWorkspaceFolders",
2020-01-26T23:10:58.293436_#1:             Method:          "workspace/didChangeWorkspaceFolders",
2020-01-26T23:10:58.293436_#1:             RegisterOptions: nil,
2020-01-26T23:10:58.293436_#1:         },
2020-01-26T23:10:58.293436_#1:     },
2020-01-26T23:10:58.293436_#1: }
2020-01-26T23:10:58.293436_#1: gopls client end =======================
2020-01-26T23:10:58.335867_#1: gopls client start =======================
2020-01-26T23:10:58.335867_#1: Configuration: &protocol.ParamConfiguration{
2020-01-26T23:10:58.335867_#1:     ConfigurationParams: protocol.ConfigurationParams{
2020-01-26T23:10:58.335867_#1:         Items: {
2020-01-26T23:10:58.335867_#1:             {ScopeURI:"file:///home/caleb/p/misc/govimtest", Section:"gopls"},
2020-01-26T23:10:58.335867_#1:             {ScopeURI:"file:///home/caleb/p/misc/govimtest", Section:"gopls-govimtest"},
2020-01-26T23:10:58.335867_#1:         },
2020-01-26T23:10:58.335867_#1:     },
2020-01-26T23:10:58.335867_#1:     PartialResultParams: protocol.PartialResultParams{},
2020-01-26T23:10:58.335867_#1: }
2020-01-26T23:10:58.335867_#1: gopls client end =======================
2020-01-26T23:10:58.335932_#1: gopls client start =======================
2020-01-26T23:10:58.335932_#1: Configuration response: []interface {}{
2020-01-26T23:10:58.335932_#1:     map[string]interface {}{
2020-01-26T23:10:58.335932_#1:         "hoverKind":   "FullDocumentation",
2020-01-26T23:10:58.335932_#1:         "staticcheck": bool(false),
2020-01-26T23:10:58.335932_#1:         "local":       "liftoff/",
2020-01-26T23:10:58.335932_#1:     },
2020-01-26T23:10:58.335932_#1:     nil,
2020-01-26T23:10:58.335932_#1: }
2020-01-26T23:10:58.335932_#1: gopls client end =======================
2020-01-26T23:10:58.336091_#1: gopls client start =======================
2020-01-26T23:10:58.336091_#1: LogMessage callback: &protocol.LogMessageParams{Type:3, Message:"2020/01/26 23:10:58 Build info\n----------\ngolang.org/x/tools/gopls master\n    golang.org/x/tools/gopls@v0.1.8-0.20200124220429-8fe064f891f2 h1:U178hOjcIogThTGfFU+FN8K40/nt/ztZGXS/G1ieqGs=\n    github.com/BurntSushi/toml@v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=\n    github.com/sergi/go-diff@v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=\n    golang.org/x/mod@v0.1.1-0.20191105210325-c90efee705ee h1:WG0RUwxtNT4qqaXX3DPA8zHFNm/D9xaBpxzHt1WcA/E=\n    golang.org/x/sync@v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=\n    golang.org/x/tools@v0.0.0-20200124220429-8fe064f891f2 h1:ZNYGPNJ+tKwnFHzxlFH8bZSIj5uyr3xdUscYDsKQJ1k=\n    golang.org/x/xerrors@v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA=\n    honnef.co/go/tools@v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=\n    mvdan.cc/xurls/v2@v2.1.0 h1:KaMb5GLhlcSX+e+qhbRJODnUUBvlw01jt4yrjFIHAuA=\n\nGo info\n-------\ngo version go1.13 linux/amd64\n\nGO111MODULE=\"\"\nGOARCH=\"amd64\"\nGOBIN=\"/home/caleb/bin\"\nGOCACHE=\"/home/caleb/.cache/go-build\"\nGOENV=\"/home/caleb/.config/go/env\"\nGOEXE=\"\"\nGOFLAGS=\"\"\nGOHOSTARCH=\"amd64\"\nGOHOSTOS=\"linux\"\nGONOPROXY=\"\"\nGONOSUMDB=\"\"\nGOOS=\"linux\"\nGOPATH=\"/home/caleb/p/go:/home/caleb\"\nGOPRIVATE=\"\"\nGOPROXY=\"https://proxy.golang.org,direct\"\nGOROOT=\"/home/caleb/apps/go\"\nGOSUMDB=\"sum.golang.org\"\nGOTMPDIR=\"\"\nGOTOOLDIR=\"/home/caleb/apps/go/pkg/tool/linux_amd64\"\nGCCGO=\"gccgo\"\nAR=\"ar\"\nCC=\"gcc\"\nCXX=\"g++\"\nCGO_ENABLED=\"1\"\nGOMOD=\"/home/caleb/p/misc/go.mod\"\nCGO_CFLAGS=\"-g -O2\"\nCGO_CPPFLAGS=\"\"\nCGO_CXXFLAGS=\"-g -O2\"\nCGO_FFLAGS=\"-g -O2\"\nCGO_LDFLAGS=\"-g -O2\"\nPKG_CONFIG=\"pkg-config\"\nGOGCCFLAGS=\"-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build798761475=/tmp/go-build -gno-record-gcc-switches\"\n"}
2020-01-26T23:10:58.336091_#1: gopls client end =======================
2020-01-26T23:10:58.339723_#1: vim start =======================
2020-01-26T23:10:58.339723_#1: sendJSONMsg: [0,[41,"initcomplete"]]
2020-01-26T23:10:58.339723_#1: vim end =======================
2020-01-26T23:10:58.350475_#1: vim start =======================
2020-01-26T23:10:58.350475_#1: recvJSONMsg: [42] ["callback",41,[""]]
2020-01-26T23:10:58.350475_#1: vim end =======================
2020-01-26T23:10:58.350516_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.415428_#1: gopls client start =======================
2020-01-26T23:10:58.415428_#1: LogMessage callback: &protocol.LogMessageParams{Type:3, Message:"2020/01/26 23:10:58 go/packages.Load\n\tsnapshot = 0\n\tquery = [./... builtin]\n\tpackages = 2"}
2020-01-26T23:10:58.415428_#1: gopls client end =======================
2020-01-26T23:10:58.415838_#1: gopls client start =======================
2020-01-26T23:10:58.415838_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:10:58.415838_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:10:58.415838_#1:     Version:     0,
2020-01-26T23:10:58.415838_#1:     Diagnostics: {
2020-01-26T23:10:58.415838_#1:         {
2020-01-26T23:10:58.415838_#1:             Range: protocol.Range{
2020-01-26T23:10:58.415838_#1:                 Start: protocol.Position{Line:3, Character:1},
2020-01-26T23:10:58.415838_#1:                 End:   protocol.Position{Line:3, Character:2},
2020-01-26T23:10:58.415838_#1:             },
2020-01-26T23:10:58.415838_#1:             Severity:           1,
2020-01-26T23:10:58.415838_#1:             Code:               nil,
2020-01-26T23:10:58.415838_#1:             Source:             "compiler",
2020-01-26T23:10:58.415838_#1:             Message:            "x declared but not used",
2020-01-26T23:10:58.415838_#1:             Tags:               nil,
2020-01-26T23:10:58.415838_#1:             RelatedInformation: nil,
2020-01-26T23:10:58.415838_#1:         },
2020-01-26T23:10:58.415838_#1:     },
2020-01-26T23:10:58.415838_#1: }
2020-01-26T23:10:58.415838_#1: gopls client end =======================
2020-01-26T23:10:58.415862_#1: vim start =======================
2020-01-26T23:10:58.415862_#1: sendJSONMsg: [0,[42,"call","s:schedule",1]]
2020-01-26T23:10:58.415862_#1: vim end =======================
2020-01-26T23:10:58.416111_#1: vim start =======================
2020-01-26T23:10:58.416111_#1: recvJSONMsg: [43] ["schedule",1]
2020-01-26T23:10:58.416111_#1: vim end =======================
2020-01-26T23:10:58.416129_#1: run: waiting to read a JSON message
2020-01-26T23:10:58.416247_#1: vim start =======================
2020-01-26T23:10:58.416247_#1: sendJSONMsg: [43,["",""]]
2020-01-26T23:10:58.416247_#1: vim end =======================
2020-01-26T23:10:58.416395_#1: vim start =======================
2020-01-26T23:10:58.416395_#1: recvJSONMsg: [44] ["callback",42,["",0]]
2020-01-26T23:10:58.416395_#1: vim end =======================
2020-01-26T23:10:58.416408_#1: run: waiting to read a JSON message
2020-01-26T23:11:00.059389_#1: vim start =======================
2020-01-26T23:11:00.059389_#1: recvJSONMsg: [45] ["function","autocommand:0",[1]]
2020-01-26T23:11:00.059389_#1: vim end =======================
2020-01-26T23:11:00.059456_#1: run: waiting to read a JSON message
2020-01-26T23:11:00.059574_#1: vim start =======================
2020-01-26T23:11:00.059574_#1: sendJSONMsg: [45,["",null]]
2020-01-26T23:11:00.059574_#1: vim end =======================
2020-01-26T23:11:00.071393_#1: vim start =======================
2020-01-26T23:11:00.071393_#1: recvJSONMsg: [46] ["function","autocommand:1",[{"Num":1,"Name":"/home/caleb/p/misc/govimtest/func.go","Loaded":1,"Contents":"package main\n\nfunc main() {\n\tx := 123\n}\n"}]]
2020-01-26T23:11:00.071393_#1: vim end =======================
2020-01-26T23:11:00.071436_#1: run: waiting to read a JSON message
2020-01-26T23:11:00.071560_#1: vim start =======================
2020-01-26T23:11:00.071560_#1: sendJSONMsg: [0,[43,"call","listener_add","GOVIM_internal_EnrichDelta",1]]
2020-01-26T23:11:00.071560_#1: vim end =======================
2020-01-26T23:11:00.071777_#1: vim start =======================
2020-01-26T23:11:00.071777_#1: recvJSONMsg: [47] ["callback",43,["",1]]
2020-01-26T23:11:00.071777_#1: vim end =======================
2020-01-26T23:11:00.071797_#1: run: waiting to read a JSON message
2020-01-26T23:11:00.071926_#1: vim start =======================
2020-01-26T23:11:00.071926_#1: sendJSONMsg: [0,[44,"call","s:batchCall",[["call","s:mustNothing","prop_remove",{"id":0,"bufnr":1,"all":1}],["call","s:mustNothing","prop_add",4,2,{"type":"GOVIMErr","end_lnum":4,"end_col":3,"bufnr":1}]]]]
2020-01-26T23:11:00.071926_#1: vim end =======================
2020-01-26T23:11:00.072245_#1: vim start =======================
2020-01-26T23:11:00.072245_#1: recvJSONMsg: [48] ["callback",44,["",[0,0]]]
2020-01-26T23:11:00.072245_#1: vim end =======================
2020-01-26T23:11:00.072265_#1: run: waiting to read a JSON message
2020-01-26T23:11:00.072371_#1: gopls server start =======================
2020-01-26T23:11:00.072371_#1: gopls.DidOpen() call; params:
2020-01-26T23:11:00.072371_#1: &protocol.DidOpenTextDocumentParams{
2020-01-26T23:11:00.072371_#1:     TextDocument: protocol.TextDocumentItem{URI:"file:///home/caleb/p/misc/govimtest/func.go", LanguageID:"go", Version:1, Text:"package main\n\nfunc main() {\n\tx := 123\n}\n"},
2020-01-26T23:11:00.072371_#1: }
2020-01-26T23:11:00.072371_#1: gopls server end =======================
2020-01-26T23:11:00.072435_#1: gopls server start =======================
2020-01-26T23:11:00.072435_#1: gopls.DidOpen() return; err: <nil>
2020-01-26T23:11:00.072435_#1: gopls server end =======================
2020-01-26T23:11:00.072449_#1: vim start =======================
2020-01-26T23:11:00.072449_#1: sendJSONMsg: [46,["",null]]
2020-01-26T23:11:00.072449_#1: vim end =======================
2020-01-26T23:11:00.543156_#1: vim start =======================
2020-01-26T23:11:00.543156_#1: recvJSONMsg: [49] ["function","function:GOVIM_internal_SetUserBusy",[1]]
2020-01-26T23:11:00.543156_#1: vim end =======================
2020-01-26T23:11:00.543217_#1: run: waiting to read a JSON message
2020-01-26T23:11:00.543299_#1: vim start =======================
2020-01-26T23:11:00.543299_#1: sendJSONMsg: [49,["",null]]
2020-01-26T23:11:00.543299_#1: vim end =======================
2020-01-26T23:11:01.048160_#1: vim start =======================
2020-01-26T23:11:01.048160_#1: recvJSONMsg: [50] ["function","function:GOVIM_internal_SetUserBusy",[0]]
2020-01-26T23:11:01.048160_#1: vim end =======================
2020-01-26T23:11:01.048198_#1: run: waiting to read a JSON message
2020-01-26T23:11:01.048280_#1: vim start =======================
2020-01-26T23:11:01.048280_#1: sendJSONMsg: [50,["",null]]
2020-01-26T23:11:01.048280_#1: vim end =======================
2020-01-26T23:11:01.154266_#1: vim start =======================
2020-01-26T23:11:01.154266_#1: recvJSONMsg: [51] ["function","function:GOVIM_internal_SetUserBusy",[1]]
2020-01-26T23:11:01.154266_#1: vim end =======================
2020-01-26T23:11:01.154297_#1: run: waiting to read a JSON message
2020-01-26T23:11:01.154443_#1: vim start =======================
2020-01-26T23:11:01.154443_#1: sendJSONMsg: [51,["",null]]
2020-01-26T23:11:01.154443_#1: vim end =======================
2020-01-26T23:11:01.333902_#1: vim start =======================
2020-01-26T23:11:01.333902_#1: recvJSONMsg: [52] ["function","function:GOVIM_internal_BufChanged",[1,5,5,1,[{"lnum":5,"col":1,"added":1,"end":5,"lines":["\t"]}]]]
2020-01-26T23:11:01.333902_#1: vim end =======================
2020-01-26T23:11:01.334045_#1: run: waiting to read a JSON message
2020-01-26T23:11:01.335021_#1: gopls server start =======================
2020-01-26T23:11:01.335021_#1: gopls.DidChange() call; params:
2020-01-26T23:11:01.335021_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:01.335021_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:01.335021_#1:         Version:                2,
2020-01-26T23:11:01.335021_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:01.335021_#1:     },
2020-01-26T23:11:01.335021_#1:     ContentChanges: {
2020-01-26T23:11:01.335021_#1:         {
2020-01-26T23:11:01.335021_#1:             Range: &protocol.Range{
2020-01-26T23:11:01.335021_#1:                 Start: protocol.Position{Line:4, Character:0},
2020-01-26T23:11:01.335021_#1:                 End:   protocol.Position{Line:4, Character:0},
2020-01-26T23:11:01.335021_#1:             },
2020-01-26T23:11:01.335021_#1:             RangeLength: 0,
2020-01-26T23:11:01.335021_#1:             Text:        "\t\n",
2020-01-26T23:11:01.335021_#1:         },
2020-01-26T23:11:01.335021_#1:     },
2020-01-26T23:11:01.335021_#1: }
2020-01-26T23:11:01.335021_#1: gopls server end =======================
2020-01-26T23:11:01.335333_#1: gopls server start =======================
2020-01-26T23:11:01.335333_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:01.335333_#1: gopls server end =======================
2020-01-26T23:11:01.335393_#1: vim start =======================
2020-01-26T23:11:01.335393_#1: sendJSONMsg: [52,["",null]]
2020-01-26T23:11:01.335393_#1: vim end =======================
2020-01-26T23:11:01.871205_#1: vim start =======================
2020-01-26T23:11:01.871205_#1: recvJSONMsg: [53] ["function","function:GOVIM_internal_SetUserBusy",[0]]
2020-01-26T23:11:01.871205_#1: vim end =======================
2020-01-26T23:11:01.871309_#1: run: waiting to read a JSON message
2020-01-26T23:11:01.871498_#1: vim start =======================
2020-01-26T23:11:01.871498_#1: sendJSONMsg: [53,["",null]]
2020-01-26T23:11:01.871498_#1: vim end =======================
2020-01-26T23:11:01.911969_#1: vim start =======================
2020-01-26T23:11:01.911969_#1: recvJSONMsg: [54] ["function","function:GOVIM_internal_BufChanged",[1,5,6,0,[{"lnum":5,"col":2,"added":0,"end":6,"lines":["\t_"]}]]]
2020-01-26T23:11:01.911969_#1: vim end =======================
2020-01-26T23:11:01.912076_#1: run: waiting to read a JSON message
2020-01-26T23:11:01.912889_#1: gopls server start =======================
2020-01-26T23:11:01.912889_#1: gopls.DidChange() call; params:
2020-01-26T23:11:01.912889_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:01.912889_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:01.912889_#1:         Version:                3,
2020-01-26T23:11:01.912889_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:01.912889_#1:     },
2020-01-26T23:11:01.912889_#1:     ContentChanges: {
2020-01-26T23:11:01.912889_#1:         {
2020-01-26T23:11:01.912889_#1:             Range: &protocol.Range{
2020-01-26T23:11:01.912889_#1:                 Start: protocol.Position{Line:4, Character:0},
2020-01-26T23:11:01.912889_#1:                 End:   protocol.Position{Line:5, Character:0},
2020-01-26T23:11:01.912889_#1:             },
2020-01-26T23:11:01.912889_#1:             RangeLength: 0,
2020-01-26T23:11:01.912889_#1:             Text:        "\t_\n",
2020-01-26T23:11:01.912889_#1:         },
2020-01-26T23:11:01.912889_#1:     },
2020-01-26T23:11:01.912889_#1: }
2020-01-26T23:11:01.912889_#1: gopls server end =======================
2020-01-26T23:11:01.913033_#1: gopls server start =======================
2020-01-26T23:11:01.913033_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:01.913033_#1: gopls server end =======================
2020-01-26T23:11:01.913073_#1: vim start =======================
2020-01-26T23:11:01.913073_#1: sendJSONMsg: [54,["",null]]
2020-01-26T23:11:01.913073_#1: vim end =======================
2020-01-26T23:11:01.914822_#1: vim start =======================
2020-01-26T23:11:01.914822_#1: recvJSONMsg: [55] ["function","function:GOVIM_internal_SetUserBusy",[1]]
2020-01-26T23:11:01.914822_#1: vim end =======================
2020-01-26T23:11:01.914932_#1: run: waiting to read a JSON message
2020-01-26T23:11:01.915043_#1: vim start =======================
2020-01-26T23:11:01.915043_#1: sendJSONMsg: [55,["",null]]
2020-01-26T23:11:01.915043_#1: vim end =======================
2020-01-26T23:11:01.916520_#1: gopls client start =======================
2020-01-26T23:11:01.916520_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:01.916520_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:01.916520_#1:     Version:     3,
2020-01-26T23:11:01.916520_#1:     Diagnostics: {
2020-01-26T23:11:01.916520_#1:         {
2020-01-26T23:11:01.916520_#1:             Range: protocol.Range{
2020-01-26T23:11:01.916520_#1:                 Start: protocol.Position{Line:3, Character:1},
2020-01-26T23:11:01.916520_#1:                 End:   protocol.Position{Line:3, Character:2},
2020-01-26T23:11:01.916520_#1:             },
2020-01-26T23:11:01.916520_#1:             Severity:           1,
2020-01-26T23:11:01.916520_#1:             Code:               nil,
2020-01-26T23:11:01.916520_#1:             Source:             "compiler",
2020-01-26T23:11:01.916520_#1:             Message:            "x declared but not used",
2020-01-26T23:11:01.916520_#1:             Tags:               nil,
2020-01-26T23:11:01.916520_#1:             RelatedInformation: nil,
2020-01-26T23:11:01.916520_#1:         },
2020-01-26T23:11:01.916520_#1:         {
2020-01-26T23:11:01.916520_#1:             Range: protocol.Range{
2020-01-26T23:11:01.916520_#1:                 Start: protocol.Position{Line:4, Character:1},
2020-01-26T23:11:01.916520_#1:                 End:   protocol.Position{Line:4, Character:2},
2020-01-26T23:11:01.916520_#1:             },
2020-01-26T23:11:01.916520_#1:             Severity:           1,
2020-01-26T23:11:01.916520_#1:             Code:               nil,
2020-01-26T23:11:01.916520_#1:             Source:             "compiler",
2020-01-26T23:11:01.916520_#1:             Message:            "cannot use _ as value or type",
2020-01-26T23:11:01.916520_#1:             Tags:               nil,
2020-01-26T23:11:01.916520_#1:             RelatedInformation: nil,
2020-01-26T23:11:01.916520_#1:         },
2020-01-26T23:11:01.916520_#1:     },
2020-01-26T23:11:01.916520_#1: }
2020-01-26T23:11:01.916520_#1: gopls client end =======================
2020-01-26T23:11:01.916610_#1: vim start =======================
2020-01-26T23:11:01.916610_#1: sendJSONMsg: [0,[45,"call","s:schedule",2]]
2020-01-26T23:11:01.916610_#1: vim end =======================
2020-01-26T23:11:01.918896_#1: vim start =======================
2020-01-26T23:11:01.918896_#1: recvJSONMsg: [56] ["schedule",2]
2020-01-26T23:11:01.918896_#1: vim end =======================
2020-01-26T23:11:01.918988_#1: run: waiting to read a JSON message
2020-01-26T23:11:01.919110_#1: vim start =======================
2020-01-26T23:11:01.919110_#1: sendJSONMsg: [56,["",""]]
2020-01-26T23:11:01.919110_#1: vim end =======================
2020-01-26T23:11:01.919743_#1: vim start =======================
2020-01-26T23:11:01.919743_#1: recvJSONMsg: [57] ["callback",45,["",0]]
2020-01-26T23:11:01.919743_#1: vim end =======================
2020-01-26T23:11:01.919841_#1: run: waiting to read a JSON message
2020-01-26T23:11:01.969614_#1: vim start =======================
2020-01-26T23:11:01.969614_#1: recvJSONMsg: [58] ["function","function:GOVIM_internal_BufChanged",[1,5,6,0,[{"lnum":5,"col":3,"added":0,"end":6,"lines":["\t_ "]}]]]
2020-01-26T23:11:01.969614_#1: vim end =======================
2020-01-26T23:11:01.969803_#1: run: waiting to read a JSON message
2020-01-26T23:11:01.970704_#1: gopls server start =======================
2020-01-26T23:11:01.970704_#1: gopls.DidChange() call; params:
2020-01-26T23:11:01.970704_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:01.970704_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:01.970704_#1:         Version:                4,
2020-01-26T23:11:01.970704_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:01.970704_#1:     },
2020-01-26T23:11:01.970704_#1:     ContentChanges: {
2020-01-26T23:11:01.970704_#1:         {
2020-01-26T23:11:01.970704_#1:             Range: &protocol.Range{
2020-01-26T23:11:01.970704_#1:                 Start: protocol.Position{Line:4, Character:0},
2020-01-26T23:11:01.970704_#1:                 End:   protocol.Position{Line:5, Character:0},
2020-01-26T23:11:01.970704_#1:             },
2020-01-26T23:11:01.970704_#1:             RangeLength: 0,
2020-01-26T23:11:01.970704_#1:             Text:        "\t_ \n",
2020-01-26T23:11:01.970704_#1:         },
2020-01-26T23:11:01.970704_#1:     },
2020-01-26T23:11:01.970704_#1: }
2020-01-26T23:11:01.970704_#1: gopls server end =======================
2020-01-26T23:11:01.970861_#1: gopls server start =======================
2020-01-26T23:11:01.970861_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:01.970861_#1: gopls server end =======================
2020-01-26T23:11:01.970904_#1: vim start =======================
2020-01-26T23:11:01.970904_#1: sendJSONMsg: [58,["",null]]
2020-01-26T23:11:01.970904_#1: vim end =======================
2020-01-26T23:11:02.185450_#1: vim start =======================
2020-01-26T23:11:02.185450_#1: recvJSONMsg: [59] ["function","function:GOVIM_internal_BufChanged",[1,5,6,0,[{"lnum":5,"col":4,"added":0,"end":6,"lines":["\t_ ="]}]]]
2020-01-26T23:11:02.185450_#1: vim end =======================
2020-01-26T23:11:02.185601_#1: run: waiting to read a JSON message
2020-01-26T23:11:02.186196_#1: info only: failed to parse buffer /home/caleb/p/misc/govimtest/func.go: /home/caleb/p/misc/govimtest/func.go:6:1: expected operand, found '}' (and 3 more errors)
2020-01-26T23:11:02.186504_#1: gopls server start =======================
2020-01-26T23:11:02.186504_#1: gopls.DidChange() call; params:
2020-01-26T23:11:02.186504_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:02.186504_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:02.186504_#1:         Version:                5,
2020-01-26T23:11:02.186504_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:02.186504_#1:     },
2020-01-26T23:11:02.186504_#1:     ContentChanges: {
2020-01-26T23:11:02.186504_#1:         {
2020-01-26T23:11:02.186504_#1:             Range: &protocol.Range{
2020-01-26T23:11:02.186504_#1:                 Start: protocol.Position{Line:4, Character:0},
2020-01-26T23:11:02.186504_#1:                 End:   protocol.Position{Line:5, Character:0},
2020-01-26T23:11:02.186504_#1:             },
2020-01-26T23:11:02.186504_#1:             RangeLength: 0,
2020-01-26T23:11:02.186504_#1:             Text:        "\t_ =\n",
2020-01-26T23:11:02.186504_#1:         },
2020-01-26T23:11:02.186504_#1:     },
2020-01-26T23:11:02.186504_#1: }
2020-01-26T23:11:02.186504_#1: gopls server end =======================
2020-01-26T23:11:02.186642_#1: gopls server start =======================
2020-01-26T23:11:02.186642_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:02.186642_#1: gopls server end =======================
2020-01-26T23:11:02.186683_#1: vim start =======================
2020-01-26T23:11:02.186683_#1: sendJSONMsg: [59,["",null]]
2020-01-26T23:11:02.186683_#1: vim end =======================
2020-01-26T23:11:02.190137_#1: gopls client start =======================
2020-01-26T23:11:02.190137_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:02.190137_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:02.190137_#1:     Version:     5,
2020-01-26T23:11:02.190137_#1:     Diagnostics: {
2020-01-26T23:11:02.190137_#1:         {
2020-01-26T23:11:02.190137_#1:             Range: protocol.Range{
2020-01-26T23:11:02.190137_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:02.190137_#1:                 End:   protocol.Position{Line:5, Character:0},
2020-01-26T23:11:02.190137_#1:             },
2020-01-26T23:11:02.190137_#1:             Severity:           1,
2020-01-26T23:11:02.190137_#1:             Code:               nil,
2020-01-26T23:11:02.190137_#1:             Source:             "syntax",
2020-01-26T23:11:02.190137_#1:             Message:            "expected operand, found '}'",
2020-01-26T23:11:02.190137_#1:             Tags:               nil,
2020-01-26T23:11:02.190137_#1:             RelatedInformation: nil,
2020-01-26T23:11:02.190137_#1:         },
2020-01-26T23:11:02.190137_#1:     },
2020-01-26T23:11:02.190137_#1: }
2020-01-26T23:11:02.190137_#1: gopls client end =======================
2020-01-26T23:11:02.190238_#1: vim start =======================
2020-01-26T23:11:02.190238_#1: sendJSONMsg: [0,[46,"call","s:schedule",3]]
2020-01-26T23:11:02.190238_#1: vim end =======================
2020-01-26T23:11:02.191241_#1: vim start =======================
2020-01-26T23:11:02.191241_#1: recvJSONMsg: [60] ["schedule",3]
2020-01-26T23:11:02.191241_#1: vim end =======================
2020-01-26T23:11:02.191264_#1: run: waiting to read a JSON message
2020-01-26T23:11:02.191309_#1: vim start =======================
2020-01-26T23:11:02.191309_#1: sendJSONMsg: [60,["",""]]
2020-01-26T23:11:02.191309_#1: vim end =======================
2020-01-26T23:11:02.191463_#1: vim start =======================
2020-01-26T23:11:02.191463_#1: recvJSONMsg: [61] ["callback",46,["",0]]
2020-01-26T23:11:02.191463_#1: vim end =======================
2020-01-26T23:11:02.191486_#1: run: waiting to read a JSON message
2020-01-26T23:11:02.232504_#1: vim start =======================
2020-01-26T23:11:02.232504_#1: recvJSONMsg: [62] ["function","function:GOVIM_internal_BufChanged",[1,5,6,0,[{"lnum":5,"col":5,"added":0,"end":6,"lines":["\t_ = "]}]]]
2020-01-26T23:11:02.232504_#1: vim end =======================
2020-01-26T23:11:02.232614_#1: run: waiting to read a JSON message
2020-01-26T23:11:02.233180_#1: info only: failed to parse buffer /home/caleb/p/misc/govimtest/func.go: /home/caleb/p/misc/govimtest/func.go:6:1: expected operand, found '}' (and 3 more errors)
2020-01-26T23:11:02.233598_#1: gopls server start =======================
2020-01-26T23:11:02.233598_#1: gopls.DidChange() call; params:
2020-01-26T23:11:02.233598_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:02.233598_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:02.233598_#1:         Version:                6,
2020-01-26T23:11:02.233598_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:02.233598_#1:     },
2020-01-26T23:11:02.233598_#1:     ContentChanges: {
2020-01-26T23:11:02.233598_#1:         {
2020-01-26T23:11:02.233598_#1:             Range: &protocol.Range{
2020-01-26T23:11:02.233598_#1:                 Start: protocol.Position{Line:4, Character:0},
2020-01-26T23:11:02.233598_#1:                 End:   protocol.Position{Line:5, Character:0},
2020-01-26T23:11:02.233598_#1:             },
2020-01-26T23:11:02.233598_#1:             RangeLength: 0,
2020-01-26T23:11:02.233598_#1:             Text:        "\t_ = \n",
2020-01-26T23:11:02.233598_#1:         },
2020-01-26T23:11:02.233598_#1:     },
2020-01-26T23:11:02.233598_#1: }
2020-01-26T23:11:02.233598_#1: gopls server end =======================
2020-01-26T23:11:02.233742_#1: gopls server start =======================
2020-01-26T23:11:02.233742_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:02.233742_#1: gopls server end =======================
2020-01-26T23:11:02.233782_#1: vim start =======================
2020-01-26T23:11:02.233782_#1: sendJSONMsg: [62,["",null]]
2020-01-26T23:11:02.233782_#1: vim end =======================
2020-01-26T23:11:02.739942_#1: vim start =======================
2020-01-26T23:11:02.739942_#1: recvJSONMsg: [63] ["function","function:GOVIM_internal_SetUserBusy",[0]]
2020-01-26T23:11:02.739942_#1: vim end =======================
2020-01-26T23:11:02.740082_#1: run: waiting to read a JSON message
2020-01-26T23:11:02.740368_#1: vim start =======================
2020-01-26T23:11:02.740368_#1: sendJSONMsg: [63,["",null]]
2020-01-26T23:11:02.740368_#1: vim end =======================
2020-01-26T23:11:03.007141_#1: vim start =======================
2020-01-26T23:11:03.007141_#1: recvJSONMsg: [64] ["function","function:GOVIM_internal_BufChanged",[1,5,6,0,[{"lnum":5,"col":6,"added":0,"end":6,"lines":["\t_ = x"]}]]]
2020-01-26T23:11:03.007141_#1: vim end =======================
2020-01-26T23:11:03.007173_#1: run: waiting to read a JSON message
2020-01-26T23:11:03.007526_#1: gopls server start =======================
2020-01-26T23:11:03.007526_#1: gopls.DidChange() call; params:
2020-01-26T23:11:03.007526_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:03.007526_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:03.007526_#1:         Version:                7,
2020-01-26T23:11:03.007526_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:03.007526_#1:     },
2020-01-26T23:11:03.007526_#1:     ContentChanges: {
2020-01-26T23:11:03.007526_#1:         {
2020-01-26T23:11:03.007526_#1:             Range: &protocol.Range{
2020-01-26T23:11:03.007526_#1:                 Start: protocol.Position{Line:4, Character:0},
2020-01-26T23:11:03.007526_#1:                 End:   protocol.Position{Line:5, Character:0},
2020-01-26T23:11:03.007526_#1:             },
2020-01-26T23:11:03.007526_#1:             RangeLength: 0,
2020-01-26T23:11:03.007526_#1:             Text:        "\t_ = x\n",
2020-01-26T23:11:03.007526_#1:         },
2020-01-26T23:11:03.007526_#1:     },
2020-01-26T23:11:03.007526_#1: }
2020-01-26T23:11:03.007526_#1: gopls server end =======================
2020-01-26T23:11:03.007582_#1: gopls server start =======================
2020-01-26T23:11:03.007582_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:03.007582_#1: gopls server end =======================
2020-01-26T23:11:03.007613_#1: vim start =======================
2020-01-26T23:11:03.007613_#1: sendJSONMsg: [64,["",null]]
2020-01-26T23:11:03.007613_#1: vim end =======================
2020-01-26T23:11:03.008233_#1: vim start =======================
2020-01-26T23:11:03.008233_#1: recvJSONMsg: [65] ["function","function:GOVIM_internal_SetUserBusy",[1]]
2020-01-26T23:11:03.008233_#1: vim end =======================
2020-01-26T23:11:03.008253_#1: run: waiting to read a JSON message
2020-01-26T23:11:03.008284_#1: vim start =======================
2020-01-26T23:11:03.008284_#1: sendJSONMsg: [65,["",null]]
2020-01-26T23:11:03.008284_#1: vim end =======================
2020-01-26T23:11:03.008979_#1: gopls client start =======================
2020-01-26T23:11:03.008979_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:03.008979_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:03.008979_#1:     Version:     7,
2020-01-26T23:11:03.008979_#1:     Diagnostics: {
2020-01-26T23:11:03.008979_#1:     },
2020-01-26T23:11:03.008979_#1: }
2020-01-26T23:11:03.008979_#1: gopls client end =======================
2020-01-26T23:11:03.008997_#1: vim start =======================
2020-01-26T23:11:03.008997_#1: sendJSONMsg: [0,[47,"call","s:schedule",4]]
2020-01-26T23:11:03.008997_#1: vim end =======================
2020-01-26T23:11:03.009373_#1: vim start =======================
2020-01-26T23:11:03.009373_#1: recvJSONMsg: [66] ["schedule",4]
2020-01-26T23:11:03.009373_#1: vim end =======================
2020-01-26T23:11:03.009390_#1: run: waiting to read a JSON message
2020-01-26T23:11:03.009423_#1: vim start =======================
2020-01-26T23:11:03.009423_#1: sendJSONMsg: [66,["",""]]
2020-01-26T23:11:03.009423_#1: vim end =======================
2020-01-26T23:11:03.009544_#1: vim start =======================
2020-01-26T23:11:03.009544_#1: recvJSONMsg: [67] ["callback",47,["",0]]
2020-01-26T23:11:03.009544_#1: vim end =======================
2020-01-26T23:11:03.009568_#1: run: waiting to read a JSON message
2020-01-26T23:11:03.511255_#1: vim start =======================
2020-01-26T23:11:03.511255_#1: recvJSONMsg: [68] ["function","function:GOVIM_internal_SetUserBusy",[0]]
2020-01-26T23:11:03.511255_#1: vim end =======================
2020-01-26T23:11:03.511426_#1: run: waiting to read a JSON message
2020-01-26T23:11:03.511686_#1: vim start =======================
2020-01-26T23:11:03.511686_#1: sendJSONMsg: [68,["",null]]
2020-01-26T23:11:03.511686_#1: vim end =======================
2020-01-26T23:11:04.519178_#1: vim start =======================
2020-01-26T23:11:04.519178_#1: recvJSONMsg: [69] ["function","function:GOVIM_internal_BufChanged",[1,5,6,1,[{"lnum":5,"col":7,"added":1,"end":6,"lines":["\t_ = x","\t"]}]]]
2020-01-26T23:11:04.519178_#1: vim end =======================
2020-01-26T23:11:04.519298_#1: run: waiting to read a JSON message
2020-01-26T23:11:04.520157_#1: gopls server start =======================
2020-01-26T23:11:04.520157_#1: gopls.DidChange() call; params:
2020-01-26T23:11:04.520157_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:04.520157_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:04.520157_#1:         Version:                8,
2020-01-26T23:11:04.520157_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:04.520157_#1:     },
2020-01-26T23:11:04.520157_#1:     ContentChanges: {
2020-01-26T23:11:04.520157_#1:         {
2020-01-26T23:11:04.520157_#1:             Range: &protocol.Range{
2020-01-26T23:11:04.520157_#1:                 Start: protocol.Position{Line:4, Character:0},
2020-01-26T23:11:04.520157_#1:                 End:   protocol.Position{Line:5, Character:0},
2020-01-26T23:11:04.520157_#1:             },
2020-01-26T23:11:04.520157_#1:             RangeLength: 0,
2020-01-26T23:11:04.520157_#1:             Text:        "\t_ = x\n\t\n",
2020-01-26T23:11:04.520157_#1:         },
2020-01-26T23:11:04.520157_#1:     },
2020-01-26T23:11:04.520157_#1: }
2020-01-26T23:11:04.520157_#1: gopls server end =======================
2020-01-26T23:11:04.520305_#1: gopls server start =======================
2020-01-26T23:11:04.520305_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:04.520305_#1: gopls server end =======================
2020-01-26T23:11:04.520352_#1: vim start =======================
2020-01-26T23:11:04.520352_#1: sendJSONMsg: [69,["",null]]
2020-01-26T23:11:04.520352_#1: vim end =======================
2020-01-26T23:11:04.522570_#1: vim start =======================
2020-01-26T23:11:04.522570_#1: recvJSONMsg: [70] ["function","function:GOVIM_internal_SetUserBusy",[1]]
2020-01-26T23:11:04.522570_#1: vim end =======================
2020-01-26T23:11:04.522655_#1: run: waiting to read a JSON message
2020-01-26T23:11:04.522804_#1: vim start =======================
2020-01-26T23:11:04.522804_#1: sendJSONMsg: [70,["",null]]
2020-01-26T23:11:04.522804_#1: vim end =======================
2020-01-26T23:11:04.995917_#1: vim start =======================
2020-01-26T23:11:04.995917_#1: recvJSONMsg: [71] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":2,"added":0,"end":7,"lines":["\ty"]}]]]
2020-01-26T23:11:04.995917_#1: vim end =======================
2020-01-26T23:11:04.996032_#1: run: waiting to read a JSON message
2020-01-26T23:11:04.996834_#1: gopls server start =======================
2020-01-26T23:11:04.996834_#1: gopls.DidChange() call; params:
2020-01-26T23:11:04.996834_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:04.996834_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:04.996834_#1:         Version:                9,
2020-01-26T23:11:04.996834_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:04.996834_#1:     },
2020-01-26T23:11:04.996834_#1:     ContentChanges: {
2020-01-26T23:11:04.996834_#1:         {
2020-01-26T23:11:04.996834_#1:             Range: &protocol.Range{
2020-01-26T23:11:04.996834_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:04.996834_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:04.996834_#1:             },
2020-01-26T23:11:04.996834_#1:             RangeLength: 0,
2020-01-26T23:11:04.996834_#1:             Text:        "\ty\n",
2020-01-26T23:11:04.996834_#1:         },
2020-01-26T23:11:04.996834_#1:     },
2020-01-26T23:11:04.996834_#1: }
2020-01-26T23:11:04.996834_#1: gopls server end =======================
2020-01-26T23:11:04.997016_#1: gopls server start =======================
2020-01-26T23:11:04.997016_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:04.997016_#1: gopls server end =======================
2020-01-26T23:11:04.997092_#1: vim start =======================
2020-01-26T23:11:04.997092_#1: sendJSONMsg: [71,["",null]]
2020-01-26T23:11:04.997092_#1: vim end =======================
2020-01-26T23:11:05.000467_#1: gopls client start =======================
2020-01-26T23:11:05.000467_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:05.000467_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:05.000467_#1:     Version:     9,
2020-01-26T23:11:05.000467_#1:     Diagnostics: {
2020-01-26T23:11:05.000467_#1:         {
2020-01-26T23:11:05.000467_#1:             Range: protocol.Range{
2020-01-26T23:11:05.000467_#1:                 Start: protocol.Position{Line:5, Character:1},
2020-01-26T23:11:05.000467_#1:                 End:   protocol.Position{Line:5, Character:2},
2020-01-26T23:11:05.000467_#1:             },
2020-01-26T23:11:05.000467_#1:             Severity:           1,
2020-01-26T23:11:05.000467_#1:             Code:               nil,
2020-01-26T23:11:05.000467_#1:             Source:             "compiler",
2020-01-26T23:11:05.000467_#1:             Message:            "undeclared name: y",
2020-01-26T23:11:05.000467_#1:             Tags:               nil,
2020-01-26T23:11:05.000467_#1:             RelatedInformation: nil,
2020-01-26T23:11:05.000467_#1:         },
2020-01-26T23:11:05.000467_#1:     },
2020-01-26T23:11:05.000467_#1: }
2020-01-26T23:11:05.000467_#1: gopls client end =======================
2020-01-26T23:11:05.000551_#1: vim start =======================
2020-01-26T23:11:05.000551_#1: sendJSONMsg: [0,[48,"call","s:schedule",5]]
2020-01-26T23:11:05.000551_#1: vim end =======================
2020-01-26T23:11:05.001233_#1: vim start =======================
2020-01-26T23:11:05.001233_#1: recvJSONMsg: [72] ["schedule",5]
2020-01-26T23:11:05.001233_#1: vim end =======================
2020-01-26T23:11:05.001259_#1: run: waiting to read a JSON message
2020-01-26T23:11:05.001283_#1: vim start =======================
2020-01-26T23:11:05.001283_#1: sendJSONMsg: [72,["",""]]
2020-01-26T23:11:05.001283_#1: vim end =======================
2020-01-26T23:11:05.001489_#1: vim start =======================
2020-01-26T23:11:05.001489_#1: recvJSONMsg: [73] ["callback",48,["",0]]
2020-01-26T23:11:05.001489_#1: vim end =======================
2020-01-26T23:11:05.001514_#1: run: waiting to read a JSON message
2020-01-26T23:11:05.039404_#1: vim start =======================
2020-01-26T23:11:05.039404_#1: recvJSONMsg: [74] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":3,"added":0,"end":7,"lines":["\ty "]}]]]
2020-01-26T23:11:05.039404_#1: vim end =======================
2020-01-26T23:11:05.039452_#1: run: waiting to read a JSON message
2020-01-26T23:11:05.039803_#1: gopls server start =======================
2020-01-26T23:11:05.039803_#1: gopls.DidChange() call; params:
2020-01-26T23:11:05.039803_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:05.039803_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:05.039803_#1:         Version:                10,
2020-01-26T23:11:05.039803_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:05.039803_#1:     },
2020-01-26T23:11:05.039803_#1:     ContentChanges: {
2020-01-26T23:11:05.039803_#1:         {
2020-01-26T23:11:05.039803_#1:             Range: &protocol.Range{
2020-01-26T23:11:05.039803_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:05.039803_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:05.039803_#1:             },
2020-01-26T23:11:05.039803_#1:             RangeLength: 0,
2020-01-26T23:11:05.039803_#1:             Text:        "\ty \n",
2020-01-26T23:11:05.039803_#1:         },
2020-01-26T23:11:05.039803_#1:     },
2020-01-26T23:11:05.039803_#1: }
2020-01-26T23:11:05.039803_#1: gopls server end =======================
2020-01-26T23:11:05.039868_#1: gopls server start =======================
2020-01-26T23:11:05.039868_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:05.039868_#1: gopls server end =======================
2020-01-26T23:11:05.039895_#1: vim start =======================
2020-01-26T23:11:05.039895_#1: sendJSONMsg: [74,["",null]]
2020-01-26T23:11:05.039895_#1: vim end =======================
2020-01-26T23:11:05.211428_#1: vim start =======================
2020-01-26T23:11:05.211428_#1: recvJSONMsg: [75] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":4,"added":0,"end":7,"lines":["\ty ="]}]]]
2020-01-26T23:11:05.211428_#1: vim end =======================
2020-01-26T23:11:05.211464_#1: run: waiting to read a JSON message
2020-01-26T23:11:05.211768_#1: info only: failed to parse buffer /home/caleb/p/misc/govimtest/func.go: /home/caleb/p/misc/govimtest/func.go:7:1: expected operand, found '}' (and 3 more errors)
2020-01-26T23:11:05.211850_#1: gopls server start =======================
2020-01-26T23:11:05.211850_#1: gopls.DidChange() call; params:
2020-01-26T23:11:05.211850_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:05.211850_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:05.211850_#1:         Version:                11,
2020-01-26T23:11:05.211850_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:05.211850_#1:     },
2020-01-26T23:11:05.211850_#1:     ContentChanges: {
2020-01-26T23:11:05.211850_#1:         {
2020-01-26T23:11:05.211850_#1:             Range: &protocol.Range{
2020-01-26T23:11:05.211850_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:05.211850_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:05.211850_#1:             },
2020-01-26T23:11:05.211850_#1:             RangeLength: 0,
2020-01-26T23:11:05.211850_#1:             Text:        "\ty =\n",
2020-01-26T23:11:05.211850_#1:         },
2020-01-26T23:11:05.211850_#1:     },
2020-01-26T23:11:05.211850_#1: }
2020-01-26T23:11:05.211850_#1: gopls server end =======================
2020-01-26T23:11:05.211906_#1: gopls server start =======================
2020-01-26T23:11:05.211906_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:05.211906_#1: gopls server end =======================
2020-01-26T23:11:05.211920_#1: vim start =======================
2020-01-26T23:11:05.211920_#1: sendJSONMsg: [75,["",null]]
2020-01-26T23:11:05.211920_#1: vim end =======================
2020-01-26T23:11:05.213234_#1: gopls client start =======================
2020-01-26T23:11:05.213234_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:05.213234_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:05.213234_#1:     Version:     11,
2020-01-26T23:11:05.213234_#1:     Diagnostics: {
2020-01-26T23:11:05.213234_#1:         {
2020-01-26T23:11:05.213234_#1:             Range: protocol.Range{
2020-01-26T23:11:05.213234_#1:                 Start: protocol.Position{Line:6, Character:0},
2020-01-26T23:11:05.213234_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:05.213234_#1:             },
2020-01-26T23:11:05.213234_#1:             Severity:           1,
2020-01-26T23:11:05.213234_#1:             Code:               nil,
2020-01-26T23:11:05.213234_#1:             Source:             "syntax",
2020-01-26T23:11:05.213234_#1:             Message:            "expected operand, found '}'",
2020-01-26T23:11:05.213234_#1:             Tags:               nil,
2020-01-26T23:11:05.213234_#1:             RelatedInformation: nil,
2020-01-26T23:11:05.213234_#1:         },
2020-01-26T23:11:05.213234_#1:     },
2020-01-26T23:11:05.213234_#1: }
2020-01-26T23:11:05.213234_#1: gopls client end =======================
2020-01-26T23:11:05.213273_#1: vim start =======================
2020-01-26T23:11:05.213273_#1: sendJSONMsg: [0,[49,"call","s:schedule",6]]
2020-01-26T23:11:05.213273_#1: vim end =======================
2020-01-26T23:11:05.213505_#1: vim start =======================
2020-01-26T23:11:05.213505_#1: recvJSONMsg: [76] ["schedule",6]
2020-01-26T23:11:05.213505_#1: vim end =======================
2020-01-26T23:11:05.213525_#1: run: waiting to read a JSON message
2020-01-26T23:11:05.213547_#1: vim start =======================
2020-01-26T23:11:05.213547_#1: sendJSONMsg: [76,["",""]]
2020-01-26T23:11:05.213547_#1: vim end =======================
2020-01-26T23:11:05.213755_#1: vim start =======================
2020-01-26T23:11:05.213755_#1: recvJSONMsg: [77] ["callback",49,["",0]]
2020-01-26T23:11:05.213755_#1: vim end =======================
2020-01-26T23:11:05.213777_#1: run: waiting to read a JSON message
2020-01-26T23:11:05.262900_#1: vim start =======================
2020-01-26T23:11:05.262900_#1: recvJSONMsg: [78] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":5,"added":0,"end":7,"lines":["\ty = "]}]]]
2020-01-26T23:11:05.262900_#1: vim end =======================
2020-01-26T23:11:05.262942_#1: run: waiting to read a JSON message
2020-01-26T23:11:05.263222_#1: gopls server start =======================
2020-01-26T23:11:05.263222_#1: gopls.DidChange() call; params:
2020-01-26T23:11:05.263222_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:05.263222_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:05.263222_#1:         Version:                12,
2020-01-26T23:11:05.263222_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:05.263222_#1:     },
2020-01-26T23:11:05.263222_#1:     ContentChanges: {
2020-01-26T23:11:05.263222_#1:         {
2020-01-26T23:11:05.263222_#1:             Range: &protocol.Range{
2020-01-26T23:11:05.263222_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:05.263222_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:05.263222_#1:             },
2020-01-26T23:11:05.263222_#1:             RangeLength: 0,
2020-01-26T23:11:05.263222_#1:             Text:        "\ty = \n",
2020-01-26T23:11:05.263222_#1:         },
2020-01-26T23:11:05.263222_#1:     },
2020-01-26T23:11:05.263222_#1: }
2020-01-26T23:11:05.263222_#1: gopls server end =======================
2020-01-26T23:11:05.263272_#1: gopls server start =======================
2020-01-26T23:11:05.263272_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:05.263272_#1: gopls server end =======================
2020-01-26T23:11:05.263282_#1: vim start =======================
2020-01-26T23:11:05.263282_#1: sendJSONMsg: [78,["",null]]
2020-01-26T23:11:05.263282_#1: vim end =======================
2020-01-26T23:11:05.263226_#1: info only: failed to parse buffer /home/caleb/p/misc/govimtest/func.go: /home/caleb/p/misc/govimtest/func.go:7:1: expected operand, found '}' (and 3 more errors)
2020-01-26T23:11:05.765566_#1: vim start =======================
2020-01-26T23:11:05.765566_#1: recvJSONMsg: [79] ["function","function:GOVIM_internal_SetUserBusy",[0]]
2020-01-26T23:11:05.765566_#1: vim end =======================
2020-01-26T23:11:05.765663_#1: run: waiting to read a JSON message
2020-01-26T23:11:05.765898_#1: vim start =======================
2020-01-26T23:11:05.765898_#1: sendJSONMsg: [79,["",null]]
2020-01-26T23:11:05.765898_#1: vim end =======================
2020-01-26T23:11:07.004200_#1: vim start =======================
2020-01-26T23:11:07.004200_#1: recvJSONMsg: [80] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":5,"added":0,"end":7,"lines":["\ty ="]}]]]
2020-01-26T23:11:07.004200_#1: vim end =======================
2020-01-26T23:11:07.004317_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.004896_#1: info only: failed to parse buffer /home/caleb/p/misc/govimtest/func.go: /home/caleb/p/misc/govimtest/func.go:7:1: expected operand, found '}' (and 3 more errors)
2020-01-26T23:11:07.005187_#1: gopls server start =======================
2020-01-26T23:11:07.005187_#1: gopls.DidChange() call; params:
2020-01-26T23:11:07.005187_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:07.005187_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:07.005187_#1:         Version:                13,
2020-01-26T23:11:07.005187_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:07.005187_#1:     },
2020-01-26T23:11:07.005187_#1:     ContentChanges: {
2020-01-26T23:11:07.005187_#1:         {
2020-01-26T23:11:07.005187_#1:             Range: &protocol.Range{
2020-01-26T23:11:07.005187_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:07.005187_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:07.005187_#1:             },
2020-01-26T23:11:07.005187_#1:             RangeLength: 0,
2020-01-26T23:11:07.005187_#1:             Text:        "\ty =\n",
2020-01-26T23:11:07.005187_#1:         },
2020-01-26T23:11:07.005187_#1:     },
2020-01-26T23:11:07.005187_#1: }
2020-01-26T23:11:07.005187_#1: gopls server end =======================
2020-01-26T23:11:07.005324_#1: gopls server start =======================
2020-01-26T23:11:07.005324_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:07.005324_#1: gopls server end =======================
2020-01-26T23:11:07.005472_#1: vim start =======================
2020-01-26T23:11:07.005472_#1: sendJSONMsg: [80,["",null]]
2020-01-26T23:11:07.005472_#1: vim end =======================
2020-01-26T23:11:07.007184_#1: vim start =======================
2020-01-26T23:11:07.007184_#1: recvJSONMsg: [81] ["function","function:GOVIM_internal_SetUserBusy",[1]]
2020-01-26T23:11:07.007184_#1: vim end =======================
2020-01-26T23:11:07.007274_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.007429_#1: vim start =======================
2020-01-26T23:11:07.007429_#1: sendJSONMsg: [81,["",null]]
2020-01-26T23:11:07.007429_#1: vim end =======================
2020-01-26T23:11:07.119430_#1: vim start =======================
2020-01-26T23:11:07.119430_#1: recvJSONMsg: [82] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":4,"added":0,"end":7,"lines":["\ty "]}]]]
2020-01-26T23:11:07.119430_#1: vim end =======================
2020-01-26T23:11:07.119601_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.120585_#1: gopls server start =======================
2020-01-26T23:11:07.120585_#1: gopls.DidChange() call; params:
2020-01-26T23:11:07.120585_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:07.120585_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:07.120585_#1:         Version:                14,
2020-01-26T23:11:07.120585_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:07.120585_#1:     },
2020-01-26T23:11:07.120585_#1:     ContentChanges: {
2020-01-26T23:11:07.120585_#1:         {
2020-01-26T23:11:07.120585_#1:             Range: &protocol.Range{
2020-01-26T23:11:07.120585_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:07.120585_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:07.120585_#1:             },
2020-01-26T23:11:07.120585_#1:             RangeLength: 0,
2020-01-26T23:11:07.120585_#1:             Text:        "\ty \n",
2020-01-26T23:11:07.120585_#1:         },
2020-01-26T23:11:07.120585_#1:     },
2020-01-26T23:11:07.120585_#1: }
2020-01-26T23:11:07.120585_#1: gopls server end =======================
2020-01-26T23:11:07.120755_#1: gopls server start =======================
2020-01-26T23:11:07.120755_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:07.120755_#1: gopls server end =======================
2020-01-26T23:11:07.120826_#1: vim start =======================
2020-01-26T23:11:07.120826_#1: sendJSONMsg: [82,["",null]]
2020-01-26T23:11:07.120826_#1: vim end =======================
2020-01-26T23:11:07.123674_#1: gopls client start =======================
2020-01-26T23:11:07.123674_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:07.123674_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:07.123674_#1:     Version:     14,
2020-01-26T23:11:07.123674_#1:     Diagnostics: {
2020-01-26T23:11:07.123674_#1:         {
2020-01-26T23:11:07.123674_#1:             Range: protocol.Range{
2020-01-26T23:11:07.123674_#1:                 Start: protocol.Position{Line:5, Character:1},
2020-01-26T23:11:07.123674_#1:                 End:   protocol.Position{Line:5, Character:2},
2020-01-26T23:11:07.123674_#1:             },
2020-01-26T23:11:07.123674_#1:             Severity:           1,
2020-01-26T23:11:07.123674_#1:             Code:               nil,
2020-01-26T23:11:07.123674_#1:             Source:             "compiler",
2020-01-26T23:11:07.123674_#1:             Message:            "undeclared name: y",
2020-01-26T23:11:07.123674_#1:             Tags:               nil,
2020-01-26T23:11:07.123674_#1:             RelatedInformation: nil,
2020-01-26T23:11:07.123674_#1:         },
2020-01-26T23:11:07.123674_#1:     },
2020-01-26T23:11:07.123674_#1: }
2020-01-26T23:11:07.123674_#1: gopls client end =======================
2020-01-26T23:11:07.123771_#1: vim start =======================
2020-01-26T23:11:07.123771_#1: sendJSONMsg: [0,[50,"call","s:schedule",7]]
2020-01-26T23:11:07.123771_#1: vim end =======================
2020-01-26T23:11:07.125484_#1: vim start =======================
2020-01-26T23:11:07.125484_#1: recvJSONMsg: [83] ["schedule",7]
2020-01-26T23:11:07.125484_#1: vim end =======================
2020-01-26T23:11:07.125547_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.125679_#1: vim start =======================
2020-01-26T23:11:07.125679_#1: sendJSONMsg: [83,["",""]]
2020-01-26T23:11:07.125679_#1: vim end =======================
2020-01-26T23:11:07.126086_#1: vim start =======================
2020-01-26T23:11:07.126086_#1: recvJSONMsg: [84] ["callback",50,["",0]]
2020-01-26T23:11:07.126086_#1: vim end =======================
2020-01-26T23:11:07.126149_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.310699_#1: vim start =======================
2020-01-26T23:11:07.310699_#1: recvJSONMsg: [85] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":4,"added":0,"end":7,"lines":["\ty :"]}]]]
2020-01-26T23:11:07.310699_#1: vim end =======================
2020-01-26T23:11:07.310864_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.311854_#1: gopls server start =======================
2020-01-26T23:11:07.311854_#1: gopls.DidChange() call; params:
2020-01-26T23:11:07.311854_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:07.311854_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:07.311854_#1:         Version:                15,
2020-01-26T23:11:07.311854_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:07.311854_#1:     },
2020-01-26T23:11:07.311854_#1:     ContentChanges: {
2020-01-26T23:11:07.311854_#1:         {
2020-01-26T23:11:07.311854_#1:             Range: &protocol.Range{
2020-01-26T23:11:07.311854_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:07.311854_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:07.311854_#1:             },
2020-01-26T23:11:07.311854_#1:             RangeLength: 0,
2020-01-26T23:11:07.311854_#1:             Text:        "\ty :\n",
2020-01-26T23:11:07.311854_#1:         },
2020-01-26T23:11:07.311854_#1:     },
2020-01-26T23:11:07.311854_#1: }
2020-01-26T23:11:07.311854_#1: gopls server end =======================
2020-01-26T23:11:07.312013_#1: gopls server start =======================
2020-01-26T23:11:07.312013_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:07.312013_#1: gopls server end =======================
2020-01-26T23:11:07.312059_#1: vim start =======================
2020-01-26T23:11:07.312059_#1: sendJSONMsg: [85,["",null]]
2020-01-26T23:11:07.312059_#1: vim end =======================
2020-01-26T23:11:07.315118_#1: gopls client start =======================
2020-01-26T23:11:07.315118_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:07.315118_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:07.315118_#1:     Version:     15,
2020-01-26T23:11:07.315118_#1:     Diagnostics: {
2020-01-26T23:11:07.315118_#1:         {
2020-01-26T23:11:07.315118_#1:             Range: protocol.Range{
2020-01-26T23:11:07.315118_#1:                 Start: protocol.Position{Line:5, Character:1},
2020-01-26T23:11:07.315118_#1:                 End:   protocol.Position{Line:5, Character:2},
2020-01-26T23:11:07.315118_#1:             },
2020-01-26T23:11:07.315118_#1:             Severity:           1,
2020-01-26T23:11:07.315118_#1:             Code:               nil,
2020-01-26T23:11:07.315118_#1:             Source:             "compiler",
2020-01-26T23:11:07.315118_#1:             Message:            "label y declared but not used",
2020-01-26T23:11:07.315118_#1:             Tags:               nil,
2020-01-26T23:11:07.315118_#1:             RelatedInformation: nil,
2020-01-26T23:11:07.315118_#1:         },
2020-01-26T23:11:07.315118_#1:     },
2020-01-26T23:11:07.315118_#1: }
2020-01-26T23:11:07.315118_#1: gopls client end =======================
2020-01-26T23:11:07.315196_#1: vim start =======================
2020-01-26T23:11:07.315196_#1: sendJSONMsg: [0,[51,"call","s:schedule",8]]
2020-01-26T23:11:07.315196_#1: vim end =======================
2020-01-26T23:11:07.316543_#1: vim start =======================
2020-01-26T23:11:07.316543_#1: recvJSONMsg: [86] ["schedule",8]
2020-01-26T23:11:07.316543_#1: vim end =======================
2020-01-26T23:11:07.316612_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.316705_#1: vim start =======================
2020-01-26T23:11:07.316705_#1: sendJSONMsg: [86,["",""]]
2020-01-26T23:11:07.316705_#1: vim end =======================
2020-01-26T23:11:07.317198_#1: vim start =======================
2020-01-26T23:11:07.317198_#1: recvJSONMsg: [87] ["callback",51,["",0]]
2020-01-26T23:11:07.317198_#1: vim end =======================
2020-01-26T23:11:07.317250_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.650167_#1: vim start =======================
2020-01-26T23:11:07.650167_#1: recvJSONMsg: [88] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":5,"added":0,"end":7,"lines":["\ty : "]}]]]
2020-01-26T23:11:07.650167_#1: vim end =======================
2020-01-26T23:11:07.650278_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.651110_#1: gopls server start =======================
2020-01-26T23:11:07.651110_#1: gopls.DidChange() call; params:
2020-01-26T23:11:07.651110_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:07.651110_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:07.651110_#1:         Version:                16,
2020-01-26T23:11:07.651110_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:07.651110_#1:     },
2020-01-26T23:11:07.651110_#1:     ContentChanges: {
2020-01-26T23:11:07.651110_#1:         {
2020-01-26T23:11:07.651110_#1:             Range: &protocol.Range{
2020-01-26T23:11:07.651110_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:07.651110_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:07.651110_#1:             },
2020-01-26T23:11:07.651110_#1:             RangeLength: 0,
2020-01-26T23:11:07.651110_#1:             Text:        "\ty : \n",
2020-01-26T23:11:07.651110_#1:         },
2020-01-26T23:11:07.651110_#1:     },
2020-01-26T23:11:07.651110_#1: }
2020-01-26T23:11:07.651110_#1: gopls server end =======================
2020-01-26T23:11:07.651288_#1: gopls server start =======================
2020-01-26T23:11:07.651288_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:07.651288_#1: gopls server end =======================
2020-01-26T23:11:07.651354_#1: vim start =======================
2020-01-26T23:11:07.651354_#1: sendJSONMsg: [88,["",null]]
2020-01-26T23:11:07.651354_#1: vim end =======================
2020-01-26T23:11:07.814870_#1: vim start =======================
2020-01-26T23:11:07.814870_#1: recvJSONMsg: [89] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":6,"added":0,"end":7,"lines":["\ty : 1"]}]]]
2020-01-26T23:11:07.814870_#1: vim end =======================
2020-01-26T23:11:07.814992_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.815844_#1: gopls server start =======================
2020-01-26T23:11:07.815844_#1: gopls.DidChange() call; params:
2020-01-26T23:11:07.815844_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:07.815844_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:07.815844_#1:         Version:                17,
2020-01-26T23:11:07.815844_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:07.815844_#1:     },
2020-01-26T23:11:07.815844_#1:     ContentChanges: {
2020-01-26T23:11:07.815844_#1:         {
2020-01-26T23:11:07.815844_#1:             Range: &protocol.Range{
2020-01-26T23:11:07.815844_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:07.815844_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:07.815844_#1:             },
2020-01-26T23:11:07.815844_#1:             RangeLength: 0,
2020-01-26T23:11:07.815844_#1:             Text:        "\ty : 1\n",
2020-01-26T23:11:07.815844_#1:         },
2020-01-26T23:11:07.815844_#1:     },
2020-01-26T23:11:07.815844_#1: }
2020-01-26T23:11:07.815844_#1: gopls server end =======================
2020-01-26T23:11:07.815982_#1: gopls server start =======================
2020-01-26T23:11:07.815982_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:07.815982_#1: gopls server end =======================
2020-01-26T23:11:07.816037_#1: vim start =======================
2020-01-26T23:11:07.816037_#1: sendJSONMsg: [89,["",null]]
2020-01-26T23:11:07.816037_#1: vim end =======================
2020-01-26T23:11:07.819918_#1: gopls client start =======================
2020-01-26T23:11:07.819918_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:07.819918_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:07.819918_#1:     Version:     17,
2020-01-26T23:11:07.819918_#1:     Diagnostics: {
2020-01-26T23:11:07.819918_#1:         {
2020-01-26T23:11:07.819918_#1:             Range: protocol.Range{
2020-01-26T23:11:07.819918_#1:                 Start: protocol.Position{Line:5, Character:1},
2020-01-26T23:11:07.819918_#1:                 End:   protocol.Position{Line:5, Character:2},
2020-01-26T23:11:07.819918_#1:             },
2020-01-26T23:11:07.819918_#1:             Severity:           1,
2020-01-26T23:11:07.819918_#1:             Code:               nil,
2020-01-26T23:11:07.819918_#1:             Source:             "compiler",
2020-01-26T23:11:07.819918_#1:             Message:            "label y declared but not used",
2020-01-26T23:11:07.819918_#1:             Tags:               nil,
2020-01-26T23:11:07.819918_#1:             RelatedInformation: nil,
2020-01-26T23:11:07.819918_#1:         },
2020-01-26T23:11:07.819918_#1:         {
2020-01-26T23:11:07.819918_#1:             Range: protocol.Range{
2020-01-26T23:11:07.819918_#1:                 Start: protocol.Position{Line:5, Character:5},
2020-01-26T23:11:07.819918_#1:                 End:   protocol.Position{Line:5, Character:6},
2020-01-26T23:11:07.819918_#1:             },
2020-01-26T23:11:07.819918_#1:             Severity:           1,
2020-01-26T23:11:07.819918_#1:             Code:               nil,
2020-01-26T23:11:07.819918_#1:             Source:             "compiler",
2020-01-26T23:11:07.819918_#1:             Message:            "1 (untyped int constant) is not used",
2020-01-26T23:11:07.819918_#1:             Tags:               nil,
2020-01-26T23:11:07.819918_#1:             RelatedInformation: nil,
2020-01-26T23:11:07.819918_#1:         },
2020-01-26T23:11:07.819918_#1:     },
2020-01-26T23:11:07.819918_#1: }
2020-01-26T23:11:07.819918_#1: gopls client end =======================
2020-01-26T23:11:07.820048_#1: vim start =======================
2020-01-26T23:11:07.820048_#1: sendJSONMsg: [0,[52,"call","s:schedule",9]]
2020-01-26T23:11:07.820048_#1: vim end =======================
2020-01-26T23:11:07.821122_#1: vim start =======================
2020-01-26T23:11:07.821122_#1: recvJSONMsg: [90] ["schedule",9]
2020-01-26T23:11:07.821122_#1: vim end =======================
2020-01-26T23:11:07.821147_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.821221_#1: vim start =======================
2020-01-26T23:11:07.821221_#1: sendJSONMsg: [90,["",""]]
2020-01-26T23:11:07.821221_#1: vim end =======================
2020-01-26T23:11:07.821468_#1: vim start =======================
2020-01-26T23:11:07.821468_#1: recvJSONMsg: [91] ["callback",52,["",0]]
2020-01-26T23:11:07.821468_#1: vim end =======================
2020-01-26T23:11:07.821484_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.939403_#1: vim start =======================
2020-01-26T23:11:07.939403_#1: recvJSONMsg: [92] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":7,"added":0,"end":7,"lines":["\ty : 12"]}]]]
2020-01-26T23:11:07.939403_#1: vim end =======================
2020-01-26T23:11:07.939527_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.940435_#1: gopls server start =======================
2020-01-26T23:11:07.940435_#1: gopls.DidChange() call; params:
2020-01-26T23:11:07.940435_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:07.940435_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:07.940435_#1:         Version:                18,
2020-01-26T23:11:07.940435_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:07.940435_#1:     },
2020-01-26T23:11:07.940435_#1:     ContentChanges: {
2020-01-26T23:11:07.940435_#1:         {
2020-01-26T23:11:07.940435_#1:             Range: &protocol.Range{
2020-01-26T23:11:07.940435_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:07.940435_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:07.940435_#1:             },
2020-01-26T23:11:07.940435_#1:             RangeLength: 0,
2020-01-26T23:11:07.940435_#1:             Text:        "\ty : 12\n",
2020-01-26T23:11:07.940435_#1:         },
2020-01-26T23:11:07.940435_#1:     },
2020-01-26T23:11:07.940435_#1: }
2020-01-26T23:11:07.940435_#1: gopls server end =======================
2020-01-26T23:11:07.940583_#1: gopls server start =======================
2020-01-26T23:11:07.940583_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:07.940583_#1: gopls server end =======================
2020-01-26T23:11:07.940647_#1: vim start =======================
2020-01-26T23:11:07.940647_#1: sendJSONMsg: [92,["",null]]
2020-01-26T23:11:07.940647_#1: vim end =======================
2020-01-26T23:11:07.946418_#1: gopls client start =======================
2020-01-26T23:11:07.946418_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:07.946418_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:07.946418_#1:     Version:     18,
2020-01-26T23:11:07.946418_#1:     Diagnostics: {
2020-01-26T23:11:07.946418_#1:         {
2020-01-26T23:11:07.946418_#1:             Range: protocol.Range{
2020-01-26T23:11:07.946418_#1:                 Start: protocol.Position{Line:5, Character:1},
2020-01-26T23:11:07.946418_#1:                 End:   protocol.Position{Line:5, Character:2},
2020-01-26T23:11:07.946418_#1:             },
2020-01-26T23:11:07.946418_#1:             Severity:           1,
2020-01-26T23:11:07.946418_#1:             Code:               nil,
2020-01-26T23:11:07.946418_#1:             Source:             "compiler",
2020-01-26T23:11:07.946418_#1:             Message:            "label y declared but not used",
2020-01-26T23:11:07.946418_#1:             Tags:               nil,
2020-01-26T23:11:07.946418_#1:             RelatedInformation: nil,
2020-01-26T23:11:07.946418_#1:         },
2020-01-26T23:11:07.946418_#1:         {
2020-01-26T23:11:07.946418_#1:             Range: protocol.Range{
2020-01-26T23:11:07.946418_#1:                 Start: protocol.Position{Line:5, Character:5},
2020-01-26T23:11:07.946418_#1:                 End:   protocol.Position{Line:5, Character:7},
2020-01-26T23:11:07.946418_#1:             },
2020-01-26T23:11:07.946418_#1:             Severity:           1,
2020-01-26T23:11:07.946418_#1:             Code:               nil,
2020-01-26T23:11:07.946418_#1:             Source:             "compiler",
2020-01-26T23:11:07.946418_#1:             Message:            "12 (untyped int constant) is not used",
2020-01-26T23:11:07.946418_#1:             Tags:               nil,
2020-01-26T23:11:07.946418_#1:             RelatedInformation: nil,
2020-01-26T23:11:07.946418_#1:         },
2020-01-26T23:11:07.946418_#1:     },
2020-01-26T23:11:07.946418_#1: }
2020-01-26T23:11:07.946418_#1: gopls client end =======================
2020-01-26T23:11:07.946509_#1: vim start =======================
2020-01-26T23:11:07.946509_#1: sendJSONMsg: [0,[53,"call","s:schedule",10]]
2020-01-26T23:11:07.946509_#1: vim end =======================
2020-01-26T23:11:07.947239_#1: vim start =======================
2020-01-26T23:11:07.947239_#1: recvJSONMsg: [93] ["schedule",10]
2020-01-26T23:11:07.947239_#1: vim end =======================
2020-01-26T23:11:07.947314_#1: run: waiting to read a JSON message
2020-01-26T23:11:07.947496_#1: vim start =======================
2020-01-26T23:11:07.947496_#1: sendJSONMsg: [93,["",""]]
2020-01-26T23:11:07.947496_#1: vim end =======================
2020-01-26T23:11:07.947932_#1: vim start =======================
2020-01-26T23:11:07.947932_#1: recvJSONMsg: [94] ["callback",53,["",0]]
2020-01-26T23:11:07.947932_#1: vim end =======================
2020-01-26T23:11:07.948000_#1: run: waiting to read a JSON message
2020-01-26T23:11:08.139412_#1: vim start =======================
2020-01-26T23:11:08.139412_#1: recvJSONMsg: [95] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":7,"added":0,"end":7,"lines":["\ty : 1"]}]]]
2020-01-26T23:11:08.139412_#1: vim end =======================
2020-01-26T23:11:08.139567_#1: run: waiting to read a JSON message
2020-01-26T23:11:08.140495_#1: gopls server start =======================
2020-01-26T23:11:08.140495_#1: gopls.DidChange() call; params:
2020-01-26T23:11:08.140495_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:08.140495_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:08.140495_#1:         Version:                19,
2020-01-26T23:11:08.140495_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:08.140495_#1:     },
2020-01-26T23:11:08.140495_#1:     ContentChanges: {
2020-01-26T23:11:08.140495_#1:         {
2020-01-26T23:11:08.140495_#1:             Range: &protocol.Range{
2020-01-26T23:11:08.140495_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:08.140495_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:08.140495_#1:             },
2020-01-26T23:11:08.140495_#1:             RangeLength: 0,
2020-01-26T23:11:08.140495_#1:             Text:        "\ty : 1\n",
2020-01-26T23:11:08.140495_#1:         },
2020-01-26T23:11:08.140495_#1:     },
2020-01-26T23:11:08.140495_#1: }
2020-01-26T23:11:08.140495_#1: gopls server end =======================
2020-01-26T23:11:08.140659_#1: gopls server start =======================
2020-01-26T23:11:08.140659_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:08.140659_#1: gopls server end =======================
2020-01-26T23:11:08.140716_#1: vim start =======================
2020-01-26T23:11:08.140716_#1: sendJSONMsg: [95,["",null]]
2020-01-26T23:11:08.140716_#1: vim end =======================
2020-01-26T23:11:08.144030_#1: gopls client start =======================
2020-01-26T23:11:08.144030_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:08.144030_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:08.144030_#1:     Version:     19,
2020-01-26T23:11:08.144030_#1:     Diagnostics: {
2020-01-26T23:11:08.144030_#1:         {
2020-01-26T23:11:08.144030_#1:             Range: protocol.Range{
2020-01-26T23:11:08.144030_#1:                 Start: protocol.Position{Line:5, Character:1},
2020-01-26T23:11:08.144030_#1:                 End:   protocol.Position{Line:5, Character:2},
2020-01-26T23:11:08.144030_#1:             },
2020-01-26T23:11:08.144030_#1:             Severity:           1,
2020-01-26T23:11:08.144030_#1:             Code:               nil,
2020-01-26T23:11:08.144030_#1:             Source:             "compiler",
2020-01-26T23:11:08.144030_#1:             Message:            "label y declared but not used",
2020-01-26T23:11:08.144030_#1:             Tags:               nil,
2020-01-26T23:11:08.144030_#1:             RelatedInformation: nil,
2020-01-26T23:11:08.144030_#1:         },
2020-01-26T23:11:08.144030_#1:         {
2020-01-26T23:11:08.144030_#1:             Range: protocol.Range{
2020-01-26T23:11:08.144030_#1:                 Start: protocol.Position{Line:5, Character:5},
2020-01-26T23:11:08.144030_#1:                 End:   protocol.Position{Line:5, Character:6},
2020-01-26T23:11:08.144030_#1:             },
2020-01-26T23:11:08.144030_#1:             Severity:           1,
2020-01-26T23:11:08.144030_#1:             Code:               nil,
2020-01-26T23:11:08.144030_#1:             Source:             "compiler",
2020-01-26T23:11:08.144030_#1:             Message:            "1 (untyped int constant) is not used",
2020-01-26T23:11:08.144030_#1:             Tags:               nil,
2020-01-26T23:11:08.144030_#1:             RelatedInformation: nil,
2020-01-26T23:11:08.144030_#1:         },
2020-01-26T23:11:08.144030_#1:     },
2020-01-26T23:11:08.144030_#1: }
2020-01-26T23:11:08.144030_#1: gopls client end =======================
2020-01-26T23:11:08.144116_#1: vim start =======================
2020-01-26T23:11:08.144116_#1: sendJSONMsg: [0,[54,"call","s:schedule",11]]
2020-01-26T23:11:08.144116_#1: vim end =======================
2020-01-26T23:11:08.145704_#1: vim start =======================
2020-01-26T23:11:08.145704_#1: recvJSONMsg: [96] ["schedule",11]
2020-01-26T23:11:08.145704_#1: vim end =======================
2020-01-26T23:11:08.145782_#1: run: waiting to read a JSON message
2020-01-26T23:11:08.145856_#1: vim start =======================
2020-01-26T23:11:08.145856_#1: sendJSONMsg: [96,["",""]]
2020-01-26T23:11:08.145856_#1: vim end =======================
2020-01-26T23:11:08.146424_#1: vim start =======================
2020-01-26T23:11:08.146424_#1: recvJSONMsg: [97] ["callback",54,["",0]]
2020-01-26T23:11:08.146424_#1: vim end =======================
2020-01-26T23:11:08.146531_#1: run: waiting to read a JSON message
2020-01-26T23:11:08.244305_#1: vim start =======================
2020-01-26T23:11:08.244305_#1: recvJSONMsg: [98] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":6,"added":0,"end":7,"lines":["\ty : "]}]]]
2020-01-26T23:11:08.244305_#1: vim end =======================
2020-01-26T23:11:08.244419_#1: run: waiting to read a JSON message
2020-01-26T23:11:08.245281_#1: gopls server start =======================
2020-01-26T23:11:08.245281_#1: gopls.DidChange() call; params:
2020-01-26T23:11:08.245281_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:08.245281_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:08.245281_#1:         Version:                20,
2020-01-26T23:11:08.245281_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:08.245281_#1:     },
2020-01-26T23:11:08.245281_#1:     ContentChanges: {
2020-01-26T23:11:08.245281_#1:         {
2020-01-26T23:11:08.245281_#1:             Range: &protocol.Range{
2020-01-26T23:11:08.245281_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:08.245281_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:08.245281_#1:             },
2020-01-26T23:11:08.245281_#1:             RangeLength: 0,
2020-01-26T23:11:08.245281_#1:             Text:        "\ty : \n",
2020-01-26T23:11:08.245281_#1:         },
2020-01-26T23:11:08.245281_#1:     },
2020-01-26T23:11:08.245281_#1: }
2020-01-26T23:11:08.245281_#1: gopls server end =======================
2020-01-26T23:11:08.245488_#1: gopls server start =======================
2020-01-26T23:11:08.245488_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:08.245488_#1: gopls server end =======================
2020-01-26T23:11:08.245554_#1: vim start =======================
2020-01-26T23:11:08.245554_#1: sendJSONMsg: [98,["",null]]
2020-01-26T23:11:08.245554_#1: vim end =======================
2020-01-26T23:11:08.248154_#1: gopls client start =======================
2020-01-26T23:11:08.248154_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:08.248154_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:08.248154_#1:     Version:     20,
2020-01-26T23:11:08.248154_#1:     Diagnostics: {
2020-01-26T23:11:08.248154_#1:         {
2020-01-26T23:11:08.248154_#1:             Range: protocol.Range{
2020-01-26T23:11:08.248154_#1:                 Start: protocol.Position{Line:5, Character:1},
2020-01-26T23:11:08.248154_#1:                 End:   protocol.Position{Line:5, Character:2},
2020-01-26T23:11:08.248154_#1:             },
2020-01-26T23:11:08.248154_#1:             Severity:           1,
2020-01-26T23:11:08.248154_#1:             Code:               nil,
2020-01-26T23:11:08.248154_#1:             Source:             "compiler",
2020-01-26T23:11:08.248154_#1:             Message:            "label y declared but not used",
2020-01-26T23:11:08.248154_#1:             Tags:               nil,
2020-01-26T23:11:08.248154_#1:             RelatedInformation: nil,
2020-01-26T23:11:08.248154_#1:         },
2020-01-26T23:11:08.248154_#1:     },
2020-01-26T23:11:08.248154_#1: }
2020-01-26T23:11:08.248154_#1: gopls client end =======================
2020-01-26T23:11:08.248239_#1: vim start =======================
2020-01-26T23:11:08.248239_#1: sendJSONMsg: [0,[55,"call","s:schedule",12]]
2020-01-26T23:11:08.248239_#1: vim end =======================
2020-01-26T23:11:08.251727_#1: vim start =======================
2020-01-26T23:11:08.251727_#1: recvJSONMsg: [99] ["schedule",12]
2020-01-26T23:11:08.251727_#1: vim end =======================
2020-01-26T23:11:08.251805_#1: run: waiting to read a JSON message
2020-01-26T23:11:08.251945_#1: vim start =======================
2020-01-26T23:11:08.251945_#1: sendJSONMsg: [99,["",""]]
2020-01-26T23:11:08.251945_#1: vim end =======================
2020-01-26T23:11:08.252330_#1: vim start =======================
2020-01-26T23:11:08.252330_#1: recvJSONMsg: [100] ["callback",55,["",0]]
2020-01-26T23:11:08.252330_#1: vim end =======================
2020-01-26T23:11:08.252427_#1: run: waiting to read a JSON message
2020-01-26T23:11:08.455586_#1: vim start =======================
2020-01-26T23:11:08.455586_#1: recvJSONMsg: [101] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":5,"added":0,"end":7,"lines":["\ty :"]}]]]
2020-01-26T23:11:08.455586_#1: vim end =======================
2020-01-26T23:11:08.455697_#1: run: waiting to read a JSON message
2020-01-26T23:11:08.456567_#1: gopls server start =======================
2020-01-26T23:11:08.456567_#1: gopls.DidChange() call; params:
2020-01-26T23:11:08.456567_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:08.456567_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:08.456567_#1:         Version:                21,
2020-01-26T23:11:08.456567_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:08.456567_#1:     },
2020-01-26T23:11:08.456567_#1:     ContentChanges: {
2020-01-26T23:11:08.456567_#1:         {
2020-01-26T23:11:08.456567_#1:             Range: &protocol.Range{
2020-01-26T23:11:08.456567_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:08.456567_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:08.456567_#1:             },
2020-01-26T23:11:08.456567_#1:             RangeLength: 0,
2020-01-26T23:11:08.456567_#1:             Text:        "\ty :\n",
2020-01-26T23:11:08.456567_#1:         },
2020-01-26T23:11:08.456567_#1:     },
2020-01-26T23:11:08.456567_#1: }
2020-01-26T23:11:08.456567_#1: gopls server end =======================
2020-01-26T23:11:08.456712_#1: gopls server start =======================
2020-01-26T23:11:08.456712_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:08.456712_#1: gopls server end =======================
2020-01-26T23:11:08.456766_#1: vim start =======================
2020-01-26T23:11:08.456766_#1: sendJSONMsg: [101,["",null]]
2020-01-26T23:11:08.456766_#1: vim end =======================
2020-01-26T23:11:08.629691_#1: vim start =======================
2020-01-26T23:11:08.629691_#1: recvJSONMsg: [102] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":5,"added":0,"end":7,"lines":["\ty : "]}]]]
2020-01-26T23:11:08.629691_#1: vim end =======================
2020-01-26T23:11:08.629806_#1: run: waiting to read a JSON message
2020-01-26T23:11:08.630824_#1: gopls server start =======================
2020-01-26T23:11:08.630824_#1: gopls.DidChange() call; params:
2020-01-26T23:11:08.630824_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:08.630824_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:08.630824_#1:         Version:                22,
2020-01-26T23:11:08.630824_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:08.630824_#1:     },
2020-01-26T23:11:08.630824_#1:     ContentChanges: {
2020-01-26T23:11:08.630824_#1:         {
2020-01-26T23:11:08.630824_#1:             Range: &protocol.Range{
2020-01-26T23:11:08.630824_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:08.630824_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:08.630824_#1:             },
2020-01-26T23:11:08.630824_#1:             RangeLength: 0,
2020-01-26T23:11:08.630824_#1:             Text:        "\ty : \n",
2020-01-26T23:11:08.630824_#1:         },
2020-01-26T23:11:08.630824_#1:     },
2020-01-26T23:11:08.630824_#1: }
2020-01-26T23:11:08.630824_#1: gopls server end =======================
2020-01-26T23:11:08.631014_#1: gopls server start =======================
2020-01-26T23:11:08.631014_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:08.631014_#1: gopls server end =======================
2020-01-26T23:11:08.631122_#1: vim start =======================
2020-01-26T23:11:08.631122_#1: sendJSONMsg: [102,["",null]]
2020-01-26T23:11:08.631122_#1: vim end =======================
2020-01-26T23:11:08.999487_#1: vim start =======================
2020-01-26T23:11:08.999487_#1: recvJSONMsg: [103] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":5,"added":0,"end":7,"lines":["\ty :"]}]]]
2020-01-26T23:11:08.999487_#1: vim end =======================
2020-01-26T23:11:08.999600_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.000421_#1: gopls server start =======================
2020-01-26T23:11:09.000421_#1: gopls.DidChange() call; params:
2020-01-26T23:11:09.000421_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:09.000421_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:09.000421_#1:         Version:                23,
2020-01-26T23:11:09.000421_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:09.000421_#1:     },
2020-01-26T23:11:09.000421_#1:     ContentChanges: {
2020-01-26T23:11:09.000421_#1:         {
2020-01-26T23:11:09.000421_#1:             Range: &protocol.Range{
2020-01-26T23:11:09.000421_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:09.000421_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:09.000421_#1:             },
2020-01-26T23:11:09.000421_#1:             RangeLength: 0,
2020-01-26T23:11:09.000421_#1:             Text:        "\ty :\n",
2020-01-26T23:11:09.000421_#1:         },
2020-01-26T23:11:09.000421_#1:     },
2020-01-26T23:11:09.000421_#1: }
2020-01-26T23:11:09.000421_#1: gopls server end =======================
2020-01-26T23:11:09.000553_#1: gopls server start =======================
2020-01-26T23:11:09.000553_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:09.000553_#1: gopls server end =======================
2020-01-26T23:11:09.000593_#1: vim start =======================
2020-01-26T23:11:09.000593_#1: sendJSONMsg: [103,["",null]]
2020-01-26T23:11:09.000593_#1: vim end =======================
2020-01-26T23:11:09.055657_#1: vim start =======================
2020-01-26T23:11:09.055657_#1: recvJSONMsg: [104] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":5,"added":0,"end":7,"lines":["\ty :="]}]]]
2020-01-26T23:11:09.055657_#1: vim end =======================
2020-01-26T23:11:09.055736_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.056177_#1: info only: failed to parse buffer /home/caleb/p/misc/govimtest/func.go: /home/caleb/p/misc/govimtest/func.go:7:1: expected operand, found '}' (and 3 more errors)
2020-01-26T23:11:09.056372_#1: gopls server start =======================
2020-01-26T23:11:09.056372_#1: gopls.DidChange() call; params:
2020-01-26T23:11:09.056372_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:09.056372_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:09.056372_#1:         Version:                24,
2020-01-26T23:11:09.056372_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:09.056372_#1:     },
2020-01-26T23:11:09.056372_#1:     ContentChanges: {
2020-01-26T23:11:09.056372_#1:         {
2020-01-26T23:11:09.056372_#1:             Range: &protocol.Range{
2020-01-26T23:11:09.056372_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:09.056372_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:09.056372_#1:             },
2020-01-26T23:11:09.056372_#1:             RangeLength: 0,
2020-01-26T23:11:09.056372_#1:             Text:        "\ty :=\n",
2020-01-26T23:11:09.056372_#1:         },
2020-01-26T23:11:09.056372_#1:     },
2020-01-26T23:11:09.056372_#1: }
2020-01-26T23:11:09.056372_#1: gopls server end =======================
2020-01-26T23:11:09.056492_#1: gopls server start =======================
2020-01-26T23:11:09.056492_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:09.056492_#1: gopls server end =======================
2020-01-26T23:11:09.056560_#1: vim start =======================
2020-01-26T23:11:09.056560_#1: sendJSONMsg: [104,["",null]]
2020-01-26T23:11:09.056560_#1: vim end =======================
2020-01-26T23:11:09.059308_#1: gopls client start =======================
2020-01-26T23:11:09.059308_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:09.059308_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:09.059308_#1:     Version:     24,
2020-01-26T23:11:09.059308_#1:     Diagnostics: {
2020-01-26T23:11:09.059308_#1:         {
2020-01-26T23:11:09.059308_#1:             Range: protocol.Range{
2020-01-26T23:11:09.059308_#1:                 Start: protocol.Position{Line:6, Character:0},
2020-01-26T23:11:09.059308_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:09.059308_#1:             },
2020-01-26T23:11:09.059308_#1:             Severity:           1,
2020-01-26T23:11:09.059308_#1:             Code:               nil,
2020-01-26T23:11:09.059308_#1:             Source:             "syntax",
2020-01-26T23:11:09.059308_#1:             Message:            "expected operand, found '}'",
2020-01-26T23:11:09.059308_#1:             Tags:               nil,
2020-01-26T23:11:09.059308_#1:             RelatedInformation: nil,
2020-01-26T23:11:09.059308_#1:         },
2020-01-26T23:11:09.059308_#1:     },
2020-01-26T23:11:09.059308_#1: }
2020-01-26T23:11:09.059308_#1: gopls client end =======================
2020-01-26T23:11:09.059373_#1: vim start =======================
2020-01-26T23:11:09.059373_#1: sendJSONMsg: [0,[56,"call","s:schedule",13]]
2020-01-26T23:11:09.059373_#1: vim end =======================
2020-01-26T23:11:09.060934_#1: vim start =======================
2020-01-26T23:11:09.060934_#1: recvJSONMsg: [105] ["schedule",13]
2020-01-26T23:11:09.060934_#1: vim end =======================
2020-01-26T23:11:09.061052_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.061141_#1: vim start =======================
2020-01-26T23:11:09.061141_#1: sendJSONMsg: [105,["",""]]
2020-01-26T23:11:09.061141_#1: vim end =======================
2020-01-26T23:11:09.061776_#1: vim start =======================
2020-01-26T23:11:09.061776_#1: recvJSONMsg: [106] ["callback",56,["",0]]
2020-01-26T23:11:09.061776_#1: vim end =======================
2020-01-26T23:11:09.061838_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.125010_#1: vim start =======================
2020-01-26T23:11:09.125010_#1: recvJSONMsg: [107] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":6,"added":0,"end":7,"lines":["\ty := "]}]]]
2020-01-26T23:11:09.125010_#1: vim end =======================
2020-01-26T23:11:09.125120_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.125598_#1: info only: failed to parse buffer /home/caleb/p/misc/govimtest/func.go: /home/caleb/p/misc/govimtest/func.go:7:1: expected operand, found '}' (and 3 more errors)
2020-01-26T23:11:09.126047_#1: gopls server start =======================
2020-01-26T23:11:09.126047_#1: gopls.DidChange() call; params:
2020-01-26T23:11:09.126047_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:09.126047_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:09.126047_#1:         Version:                25,
2020-01-26T23:11:09.126047_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:09.126047_#1:     },
2020-01-26T23:11:09.126047_#1:     ContentChanges: {
2020-01-26T23:11:09.126047_#1:         {
2020-01-26T23:11:09.126047_#1:             Range: &protocol.Range{
2020-01-26T23:11:09.126047_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:09.126047_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:09.126047_#1:             },
2020-01-26T23:11:09.126047_#1:             RangeLength: 0,
2020-01-26T23:11:09.126047_#1:             Text:        "\ty := \n",
2020-01-26T23:11:09.126047_#1:         },
2020-01-26T23:11:09.126047_#1:     },
2020-01-26T23:11:09.126047_#1: }
2020-01-26T23:11:09.126047_#1: gopls server end =======================
2020-01-26T23:11:09.126268_#1: gopls server start =======================
2020-01-26T23:11:09.126268_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:09.126268_#1: gopls server end =======================
2020-01-26T23:11:09.126329_#1: vim start =======================
2020-01-26T23:11:09.126329_#1: sendJSONMsg: [107,["",null]]
2020-01-26T23:11:09.126329_#1: vim end =======================
2020-01-26T23:11:09.279623_#1: vim start =======================
2020-01-26T23:11:09.279623_#1: recvJSONMsg: [108] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":7,"added":0,"end":7,"lines":["\ty := 1"]}]]]
2020-01-26T23:11:09.279623_#1: vim end =======================
2020-01-26T23:11:09.279735_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.280501_#1: gopls server start =======================
2020-01-26T23:11:09.280501_#1: gopls.DidChange() call; params:
2020-01-26T23:11:09.280501_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:09.280501_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:09.280501_#1:         Version:                26,
2020-01-26T23:11:09.280501_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:09.280501_#1:     },
2020-01-26T23:11:09.280501_#1:     ContentChanges: {
2020-01-26T23:11:09.280501_#1:         {
2020-01-26T23:11:09.280501_#1:             Range: &protocol.Range{
2020-01-26T23:11:09.280501_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:09.280501_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:09.280501_#1:             },
2020-01-26T23:11:09.280501_#1:             RangeLength: 0,
2020-01-26T23:11:09.280501_#1:             Text:        "\ty := 1\n",
2020-01-26T23:11:09.280501_#1:         },
2020-01-26T23:11:09.280501_#1:     },
2020-01-26T23:11:09.280501_#1: }
2020-01-26T23:11:09.280501_#1: gopls server end =======================
2020-01-26T23:11:09.280638_#1: gopls server start =======================
2020-01-26T23:11:09.280638_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:09.280638_#1: gopls server end =======================
2020-01-26T23:11:09.280677_#1: vim start =======================
2020-01-26T23:11:09.280677_#1: sendJSONMsg: [108,["",null]]
2020-01-26T23:11:09.280677_#1: vim end =======================
2020-01-26T23:11:09.283778_#1: gopls client start =======================
2020-01-26T23:11:09.283778_#1: PublishDiagnostics callback: &protocol.PublishDiagnosticsParams{
2020-01-26T23:11:09.283778_#1:     URI:         "file:///home/caleb/p/misc/govimtest/func.go",
2020-01-26T23:11:09.283778_#1:     Version:     26,
2020-01-26T23:11:09.283778_#1:     Diagnostics: {
2020-01-26T23:11:09.283778_#1:         {
2020-01-26T23:11:09.283778_#1:             Range: protocol.Range{
2020-01-26T23:11:09.283778_#1:                 Start: protocol.Position{Line:5, Character:1},
2020-01-26T23:11:09.283778_#1:                 End:   protocol.Position{Line:5, Character:2},
2020-01-26T23:11:09.283778_#1:             },
2020-01-26T23:11:09.283778_#1:             Severity:           1,
2020-01-26T23:11:09.283778_#1:             Code:               nil,
2020-01-26T23:11:09.283778_#1:             Source:             "compiler",
2020-01-26T23:11:09.283778_#1:             Message:            "y declared but not used",
2020-01-26T23:11:09.283778_#1:             Tags:               nil,
2020-01-26T23:11:09.283778_#1:             RelatedInformation: nil,
2020-01-26T23:11:09.283778_#1:         },
2020-01-26T23:11:09.283778_#1:     },
2020-01-26T23:11:09.283778_#1: }
2020-01-26T23:11:09.283778_#1: gopls client end =======================
2020-01-26T23:11:09.283855_#1: vim start =======================
2020-01-26T23:11:09.283855_#1: sendJSONMsg: [0,[57,"call","s:schedule",14]]
2020-01-26T23:11:09.283855_#1: vim end =======================
2020-01-26T23:11:09.285779_#1: vim start =======================
2020-01-26T23:11:09.285779_#1: recvJSONMsg: [109] ["schedule",14]
2020-01-26T23:11:09.285779_#1: vim end =======================
2020-01-26T23:11:09.285859_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.285952_#1: vim start =======================
2020-01-26T23:11:09.285952_#1: sendJSONMsg: [109,["",""]]
2020-01-26T23:11:09.285952_#1: vim end =======================
2020-01-26T23:11:09.286604_#1: vim start =======================
2020-01-26T23:11:09.286604_#1: recvJSONMsg: [110] ["callback",57,["",0]]
2020-01-26T23:11:09.286604_#1: vim end =======================
2020-01-26T23:11:09.286692_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.336782_#1: vim start =======================
2020-01-26T23:11:09.336782_#1: recvJSONMsg: [111] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":8,"added":0,"end":7,"lines":["\ty := 12"]}]]]
2020-01-26T23:11:09.336782_#1: vim end =======================
2020-01-26T23:11:09.336886_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.337849_#1: gopls server start =======================
2020-01-26T23:11:09.337849_#1: gopls.DidChange() call; params:
2020-01-26T23:11:09.337849_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:09.337849_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:09.337849_#1:         Version:                27,
2020-01-26T23:11:09.337849_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:09.337849_#1:     },
2020-01-26T23:11:09.337849_#1:     ContentChanges: {
2020-01-26T23:11:09.337849_#1:         {
2020-01-26T23:11:09.337849_#1:             Range: &protocol.Range{
2020-01-26T23:11:09.337849_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:09.337849_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:09.337849_#1:             },
2020-01-26T23:11:09.337849_#1:             RangeLength: 0,
2020-01-26T23:11:09.337849_#1:             Text:        "\ty := 12\n",
2020-01-26T23:11:09.337849_#1:         },
2020-01-26T23:11:09.337849_#1:     },
2020-01-26T23:11:09.337849_#1: }
2020-01-26T23:11:09.337849_#1: gopls server end =======================
2020-01-26T23:11:09.337992_#1: gopls server start =======================
2020-01-26T23:11:09.337992_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:09.337992_#1: gopls server end =======================
2020-01-26T23:11:09.338034_#1: vim start =======================
2020-01-26T23:11:09.338034_#1: sendJSONMsg: [111,["",null]]
2020-01-26T23:11:09.338034_#1: vim end =======================
2020-01-26T23:11:09.396141_#1: vim start =======================
2020-01-26T23:11:09.396141_#1: recvJSONMsg: [112] ["function","function:GOVIM_internal_BufChanged",[1,6,7,0,[{"lnum":6,"col":9,"added":0,"end":7,"lines":["\ty := 123"]}]]]
2020-01-26T23:11:09.396141_#1: vim end =======================
2020-01-26T23:11:09.396289_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.397100_#1: gopls server start =======================
2020-01-26T23:11:09.397100_#1: gopls.DidChange() call; params:
2020-01-26T23:11:09.397100_#1: &protocol.DidChangeTextDocumentParams{
2020-01-26T23:11:09.397100_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:09.397100_#1:         Version:                28,
2020-01-26T23:11:09.397100_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:09.397100_#1:     },
2020-01-26T23:11:09.397100_#1:     ContentChanges: {
2020-01-26T23:11:09.397100_#1:         {
2020-01-26T23:11:09.397100_#1:             Range: &protocol.Range{
2020-01-26T23:11:09.397100_#1:                 Start: protocol.Position{Line:5, Character:0},
2020-01-26T23:11:09.397100_#1:                 End:   protocol.Position{Line:6, Character:0},
2020-01-26T23:11:09.397100_#1:             },
2020-01-26T23:11:09.397100_#1:             RangeLength: 0,
2020-01-26T23:11:09.397100_#1:             Text:        "\ty := 123\n",
2020-01-26T23:11:09.397100_#1:         },
2020-01-26T23:11:09.397100_#1:     },
2020-01-26T23:11:09.397100_#1: }
2020-01-26T23:11:09.397100_#1: gopls server end =======================
2020-01-26T23:11:09.397244_#1: gopls server start =======================
2020-01-26T23:11:09.397244_#1: gopls.DidChange() return; err: <nil>
2020-01-26T23:11:09.397244_#1: gopls server end =======================
2020-01-26T23:11:09.397299_#1: vim start =======================
2020-01-26T23:11:09.397299_#1: sendJSONMsg: [112,["",null]]
2020-01-26T23:11:09.397299_#1: vim end =======================
2020-01-26T23:11:09.898779_#1: vim start =======================
2020-01-26T23:11:09.898779_#1: recvJSONMsg: [113] ["function","autocommand:2",[1]]
2020-01-26T23:11:09.898779_#1: vim end =======================
2020-01-26T23:11:09.898920_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.899253_#1: gopls server start =======================
2020-01-26T23:11:09.899253_#1: gopls.CodeAction() call; params:
2020-01-26T23:11:09.899253_#1: &protocol.CodeActionParams{
2020-01-26T23:11:09.899253_#1:     TextDocument:           protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:09.899253_#1:     Range:                  protocol.Range{},
2020-01-26T23:11:09.899253_#1:     Context:                protocol.CodeActionContext{},
2020-01-26T23:11:09.899253_#1:     WorkDoneProgressParams: protocol.WorkDoneProgressParams{},
2020-01-26T23:11:09.899253_#1:     PartialResultParams:    protocol.PartialResultParams{},
2020-01-26T23:11:09.899253_#1: }
2020-01-26T23:11:09.899253_#1: gopls server end =======================
2020-01-26T23:11:09.944903_#1: gopls server start =======================
2020-01-26T23:11:09.944903_#1: gopls.CodeAction() return; err: <nil>; res:
2020-01-26T23:11:09.944903_#1: []protocol.CodeAction(nil)
2020-01-26T23:11:09.944903_#1: gopls server end =======================
2020-01-26T23:11:09.945094_#1: gopls server start =======================
2020-01-26T23:11:09.945094_#1: gopls.Formatting() call; params:
2020-01-26T23:11:09.945094_#1: &protocol.DocumentFormattingParams{
2020-01-26T23:11:09.945094_#1:     TextDocument:           protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:09.945094_#1:     Options:                protocol.FormattingOptions{},
2020-01-26T23:11:09.945094_#1:     WorkDoneProgressParams: protocol.WorkDoneProgressParams{},
2020-01-26T23:11:09.945094_#1: }
2020-01-26T23:11:09.945094_#1: gopls server end =======================
2020-01-26T23:11:09.946428_#1: gopls server start =======================
2020-01-26T23:11:09.946428_#1: gopls.Formatting() return; err: <nil>; res:
2020-01-26T23:11:09.946428_#1: []protocol.TextEdit{
2020-01-26T23:11:09.946428_#1: }
2020-01-26T23:11:09.946428_#1: gopls server end =======================
2020-01-26T23:11:09.946494_#1: vim start =======================
2020-01-26T23:11:09.946494_#1: sendJSONMsg: [113,["",null]]
2020-01-26T23:11:09.946494_#1: vim end =======================
2020-01-26T23:11:09.979282_#1: handleEvent: Vim is in charge of /home/caleb/p/misc/govimtest/func.go; not handling 
2020-01-26T23:11:09.986304_#1: handleEvent: Vim is in charge of /home/caleb/p/misc/govimtest/func.go; not handling 
2020-01-26T23:11:09.989248_#1: vim start =======================
2020-01-26T23:11:09.989248_#1: recvJSONMsg: [114] ["function","autocommand:3",[1]]
2020-01-26T23:11:09.989248_#1: vim end =======================
2020-01-26T23:11:09.989404_#1: run: waiting to read a JSON message
2020-01-26T23:11:09.989757_#1: gopls server start =======================
2020-01-26T23:11:09.989757_#1: gopls.DidSave() call; params:
2020-01-26T23:11:09.989757_#1: &protocol.DidSaveTextDocumentParams{
2020-01-26T23:11:09.989757_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-26T23:11:09.989757_#1:         Version:                28,
2020-01-26T23:11:09.989757_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/govimtest/func.go"},
2020-01-26T23:11:09.989757_#1:     },
2020-01-26T23:11:09.989757_#1:     Text: (*string)(nil),
2020-01-26T23:11:09.989757_#1: }
2020-01-26T23:11:09.989757_#1: gopls server end =======================
2020-01-26T23:11:09.989973_#1: gopls server start =======================
2020-01-26T23:11:09.989973_#1: gopls.DidSave() return; err: <nil>
2020-01-26T23:11:09.989973_#1: gopls server end =======================
2020-01-26T23:11:09.990018_#1: vim start =======================
2020-01-26T23:11:09.990018_#1: sendJSONMsg: [114,["",null]]
2020-01-26T23:11:09.990018_#1: vim end =======================
2020-01-26T23:11:10.526750_#1: vim start =======================
2020-01-26T23:11:10.526750_#1: recvJSONMsg: [115] ["function","function:GOVIM_internal_SetUserBusy",[0]]
2020-01-26T23:11:10.526750_#1: vim end =======================
2020-01-26T23:11:10.526782_#1: run: waiting to read a JSON message
2020-01-26T23:11:10.526892_#1: vim start =======================
2020-01-26T23:11:10.526892_#1: sendJSONMsg: [115,["",null]]
2020-01-26T23:11:10.526892_#1: vim end =======================

</p> </details>

cespare

comment created time in 11 hours

issue commentgovim/govim

cmd/govim: Disabling HighlightDiagnostics sometimes doesn't work

@myitcv Sorry, didn't do a good job recording info when it happened (initially I didn't realize it was a bug; I thought that some govim option had changed and that I needed to set a new config option or something). I'm waiting for it to happen again and then I'll grab logs and also see if I can better describe the symptoms.

cespare

comment created time in 11 hours

issue openedgovim/govim

Disabling HighlightDiagnostics sometimes doesn't work

I'm on the latest master as of right now (4b70552ac41586b1cd509e72828bd67236292133). This may be a recent regression since I don't recall this happening until the last few days.

In my .vimrc I have

call govim#config#Set("HighlightDiagnostics", 0)

Weirdly, I occasionally get the diagnostic highlights (red underline squiggles) anyway.

Unfortunately, I don't know how to reproduce this. Sometimes I use vim for an hour before it starts happening. Once I got it to happen right after I launched vim. I don't even know if, once it starts happening, it keeps happening -- each time so far when it has happened I've closed vim right away. I'll update this issue when I figure out more.

created time in 11 hours

push eventcespare/vim-config

Caleb Spare

commit sha 9eac5edf0f714781f1f81948cc46a0695f548eef

Update govim

view details

push time in 13 hours

push eventcespare/govim

Paul Jolly

commit sha f46ac1b40b60fc759473230ae67d9adce1d3d4a8

ci: tidy up go.{mod,sum} (#714) Remove unnecessary indirect module requirements

view details

Paul Jolly

commit sha df220b85629bc66e95b5b751d3a4ca509e1df1e0

testdriver: add common test functions (#715) In testscript tests it's sometimes necessary to be able to do a bit more than just call the Vim "standard library" functions. For example, getqflist() includes bufnr, whereas it would be much more useful for it to include bufname. By carefully defining additional test-only VimScript that is sourced as part of loading govim via testdriver we can make our testscript scripts cleaner. There are no semantic changes to any tests as part of this commit, only switches from bufnr -> bufname in our assertions.

view details

Paul Jolly

commit sha bb606baa8d9fe61f2cc1eb8579debbd239323526

deps: upgrade x/tools and gopls to 8fe064f8 (#713) Also: * fix cmd/govim/testdata/scenario_default/quickfix_new_files.txt so that it can pass when un-skipped against a good gopls * skip cmd/govim/testdata/scenario_completeunimported/complete_new_file.txt until we have a fix in golang.org/issues/36671 * internal/lsp/protocol: actually handle cancellation delivery 8fe064f8 * internal/lsp: remove the checkErrors command in internal/lsp/source bdfa187a * internal/lsp: push more build-specific logic into the view e0332898 * internal/lsp: reload metadata for orphaned files e23f2f3a * internal/lsp: disable literal completion candidates for some clients 1b668f20 * internal/lsp: small change to helper.go to use ast.IsExported 3f4d10fc * go/analysis/passes/asmdecl: add support for riscv64 628e9aa3 * internal/lsp/cache: move mod-related functions and file e0a7ba33 * internal/lsp: generate boilerplate stubs for type Server 9778d966 * internal/lsp: stop returning errors when we can't find a snapshot 5c352bb4 * internal/lsp/cache: check go.mod even if tempModFile is false a4b4a673 * internal/lsp/cache: fix GOPATH vendoring 5ecc1643 * go/packages: fix GOPATH vendoring with overlays ce9bf563 * internal/lsp: eliminate redundant view.ModFile function 24841a4f * internal/lsp: recreate the view when needed 59ae353e * internal/lsp: check that a file handle is unmodified before read e873952e * internal/lsp: batch file changes in didChangeWatchedFiles 219d3418 * internal/lsp: support batched on-disk changes in source.DidModifyFiles e54d0edf * internal/lsp: support multiple URIs in (*view).invalidateContent a356fb7f * internal/lsp: use x/mod to get edits for go.mod quick fixes 0043dadf * internal/imports: add buildflags to ProcessEnv 2b7b26d7 * go/packages: fix doc for NeedExportsFile 45e69182 * go/packages: handle an overlay edge case with test variants 593de606 * internal/lsp: add tests for references includeDeclaration setting ba161d9e * internal/lsp: refactor (*snapshot).clone to handle multiple URIs 18389cb1 * go/packages: refactor list driver e0f1ed8c * cmd/stress: use an ellipsis when truncating output bf1340f1 * internal/lsp/cmd: add a test for client logging fb353ca4 * internal/lsp/source: support dereferencing for completion 9bae6688 * go/packages: remove named query 7b0c362a * gopls/integration/govim: update to latest govim 0a06c699 * go/ssa: replace DefaultType with go/types.Default 213b5e13 * go/ast/inspector: fix misnomer in callback signature dc16b668 * analysis/passes: consolidate imports helper f88bd705 * internal/lsp: remove the Context argument from NewSession 78d06742 * internal/telemetry/log: correct the docstring for Error 29f64efd * internal/lsp/protocol: handle cancellation delivery b3205ff6 * internal/lsp: eliminate getFileLocked function fc669b13 * internal/lsp/source: rename "typeInference" to "candidateInference" 3e306b7b

view details

Paul Jolly

commit sha 8f4859d1d4fb8968b8893ec71aa2ee2bbdd4a8ee

cmd/govim: add config ExperimentalTempModfile (#634) ExperimentalTempModfile corresponds to the gopls config setting "tempModfile" which controls whether a temporary modfile is used in place of the main module's original go.mod file. When enabled, any user-initiated changes (to .go files) that would otherwise have resulted in changes to the original go.mod file, e.g. adding an import for a package whose module is not listed as a requirement, get raised as diagnostic warnings with suggested fixes which update the go.mod file. Add a test that locks in the current behaviour.

view details

Paul Jolly

commit sha e97ea350a8566cdedcf4cc925c2eade890abca69

testdriver: do not try to copy symlink files (#719) Also properly handle git-ignored files instead of maintaining a list of our own in code.

view details

Paul Jolly

commit sha 9eb5c459dd8010f192116b2d9d2ea0edb35a75e4

cmd/govim: provide env var to turn on gopls verbose output (#718) Useful for debugging gopls issues.

view details

Paul Jolly

commit sha 4b70552ac41586b1cd509e72828bd67236292133

cmd/govim: make all error/warning message checks identical (#712) Ensure that all of the commented-out error/warning message checks at the end of testscripts are identical and correct. Do so by writing a simple helper program, txtarutil, that does this for us. As part of this make genconfig an internal command along with txtarutil. Both commands run as part of go:generate directives. There should be no semantic changes to any tests as part of this commit, only comments.

view details

push time in 13 hours

push eventcespare/dotfiles

Caleb Spare

commit sha 7258b97c8e4fca551115398baeb272347fded6b0

Add 'git pu' for common push type

view details

push time in 2 days

push eventcespare/dotfiles

Caleb Spare

commit sha 164b44641b55055d10c76efff2e4af87050ffa19

Add 2fa path

view details

push time in 3 days

push eventcespare/2fa

Caleb Spare

commit sha 0d5641aacd8a1e414250e17ec019dcb9585b7789

Use the $TWOFA variable to indicate the file location

view details

push time in 3 days

issue closedcespare/reflex

Using sed to change filepath

Hey there, This isn't an issue but i was hoping to get some advice. I currently have a golang repository consisting of lots of lambda functions. Currently when i make a change to one lambda function, i have to rebuild them all.

build: clean
		@for dir in `ls handler`; do \
			echo 'building...' $$dir; \
			CGO_ENABLED=0 GOOS=linux go build -o dist/handler/$$dir gitlab.com/repo/code/handler/$$dir; \
		done
		echo "All built"

gomon:
	reflex -R '^node_modules/' -R '^output/' -r '\.go' -s -- sh -c 'make build'

File structure being

-/
   -handler/
       -apiHandler1/
       -apiHandler2/

I think I am extremely close, in rebuilding just one file when it's changed. But am having trouble getting sed to work. When i try my variations with sed, i often get sed: 1: "s|[^/]+|g": unterminated substitute in regular expression

{} has the output of handler/approvedGet/approvedGet.go, but i need handler/approvedGet/ without the file name. For the command CGO_ENABLED=0 GOOS=linux go build -o dist/handler/approvedGet/approvedGet.go gitlab.com/repo/code/handler/approvedGet/

A sed like sed "s|[^/]+|g" would work but i'm having trouble getting it to execute.

I'm hoping to get to the point where i have both {} and another variable in the command without the filename, so i can easily rebuild just the files & packages that have been changed. Something like would be ideal

gomon:
	reflex -R '^node_modules/' -R '^output/' -r '\.go' -s -- 
        sh -c 'CGO_ENABLED=0 GOOS=linux go build -o dist/handler/{} gitlab.com/repo/code/{}_withoutfilename'

Thanks

closed time in 3 days

nathanmalishev

issue commentcespare/reflex

Using sed to change filepath

Hey @nathanmalishev, happy to help. I'm going to close the issue since it's not a problem with reflex.

CGO_ENABLED=0 GOOS=linux go build -o dist/handler/handler/approvedGet/approvedGet.go gitlab.com/code/olp_api/handler/approvedGet/

This command confuses me. Why do you want to build a binary that's named approvedGet.go?

For doing what you want, would it be possible to use the dirname command? This might be simpler than using sed for this. Here's a demo:

reflex -r '\.txt$' -- bash -c 'echo subs={} basename=$(basename {}) dirname=$(dirname {})'

If I run

mkdir x/y
touch x/y/z.txt

then reflex prints

[00] subs=x/y/z.txt basename=z.txt dirname=x/y
nathanmalishev

comment created time in 3 days

issue commentgolang/go

go.dev: fixed-width font is half the size of surrounding body text in pkg.go.dev pages

Notes:

  • The page loads three web fonts: Work Sans, Roboto, and Source Code Pro
  • The code elements on the screenshotted page are in monospace (leaving it up to the platform) but the surrounding text is Roboto
  • Fixed-width text elsewhere (such as the Doc tab) uses the font stack "Go Mono", "Source Code Pro", monospace; (I don't know where Go Mono is supposed to come from)

Anyway, I think a simple fix is to make all the code elements and any other fixed-width text uniformly use the same fixed-width font stack.

Here's how it looks today on my machine (Ubuntu/Chrome):

screen_20200124114424

Here's how it looks if I add the style

code {
    font-family: "Go Mono", "Source Code Pro", monospace;
}

screen_20200124130424

myitcv

comment created time in 3 days

issue commentgolang/go

flag: Support flags after the first non-flag argument

That would be a backward-incompatible change.

thinkerbot

comment created time in 3 days

push eventcespare/vim-config

Caleb Spare

commit sha e1d6cb0be17828b57b0242378c28dfa25a78d540

Update govim

view details

push time in 4 days

issue commentgovim/govim

cmd/govim: disruptive warning when editing non-Go files

2. we need a "I know what I'm doing" mode for govim

I feel like we're having trouble understanding each other. The misunderstanding is probably on my end; please explain where I've gone wrong.

Suppose that Alice installs govim. Alice doesn't have any particular govim expertise and she does not select the "I know what I'm doing" mode. Alice uses govim for Go work; works great. Okay.

Now Alice runs vim ~/.vimrc. Is it your position that, at this point, vim (because govim is running, even though no Go is in play) ought to display a warning message?

cespare

comment created time in 4 days

push eventcespare/govim

Paul Jolly

commit sha 355ece106acf489fb94aefde2ca76bde061fbcf4

govim: make testscript tests truly concurrent (#704) This is a follow up to 57e94a3 because we missed the testscript tests in the module root.

view details

Paul Jolly

commit sha 96e61d22452d4e1b2925a6ac5b9eeb9bf05d3f3e

cmd/govim: reenable test that stresses golang/go#36144 (#684)

view details

Paul Jolly

commit sha 1eb9311cf6155f0aceb9f9bb93dce20e406ec205

cmd/govim: add testscript tests for new files not on disk (#699) The scenarios are described in more detail in the respective tests, but these sorts of tests look to specifically assert that we see the correct behaviour for buffers whose contents have not been saved to disk. For now we skip scenario_default/quickfix_new_files.txt whilst we await a fix for golang.org/issues/36661.

view details

Paul Jolly

commit sha f51f8d10a6fe656fa86b82264da82dd0be49086d

cmd/govim: skip empty text edits (#708) Add a test to ensure (at least against the current behaviour of gopls) we don't regress here. Fixes #688

view details

Paul Jolly

commit sha 1443e43d815fef054981d26224fb56af72a3119c

github: add @leitzler to funding.yml (#710) @leitzler has been a huge contributor to the project. Thank you!

view details

push time in 4 days

issue commentgolang/go

proposal: testing: flag show skipped

Skips aren't generally tech debt, though. For example, in some of the portable projects I maintain, there are lots of tests that can only run on Windows, while others can only run on Linux or Unix-y systems. It's literally impossible to run all the tests at once without skips, as far as I can tell.

Can't you use build tags (or filename suffixes) to only include platform-specific tests on the appropriate platforms?

mvndaai

comment created time in 4 days

pull request commentgithub/linguist

Accept and encourage "minus-prefix" for unset gitattributes as per gitattributes documentation

@lildude friendly reminder to update https://help.github.com/en/github/administering-a-repository/customizing-how-changed-files-appear-on-github to use

search/index.json linguist-generated

(I haven't searched recently to see if there are other GitHub doc pages that need updating.)

lildude

comment created time in 4 days

pull request commentgithub/linguist

Recommend using set/unset gitattributes (vs. true/false strings)

@lildude thanks!

cespare

comment created time in 4 days

issue commentcespare/vim-toml

Filetype not being detected (Cargo.toml, rust.vim)

Thanks for the SEO :)

twe4ked

comment created time in 5 days

issue commentgovim/govim

cmd/govim: disruptive warning when editing non-Go files

OK, the problem is that the vim repo contains some Go code deep inside, and gopls can't figure out the dependencies.

Here's how to repro:

cd $(mktemp -d)
mkdir -p x/y
cat >x/y/z.go <<EOF
package main

import "example.com/blah"
_ = blah.Foo
func main() {}
EOF
vim ~/.zshrc # or some other unrelated file, or indeed any file

Even if there is some totally malformed Go project that gopls cannot understand in some subtree, I don't want govim to tell me about it while I'm editing my .vimrc.

cespare

comment created time in 6 days

issue commentgovim/govim

cmd/govim: disruptive warning when editing non-Go files

Weird. It doesn't happen in a tempdir, or my homedir, or anywhere else that I've found except my ~/.vim (git repo). Still working out what's different about this subtree.

Let's get this reproduced first then I think we look to some sort of "I know what I'm doing" config option.

I suspect this is just some kind of bug. There's really nothing useful for anyone to get from this message -- I'm editing a non-Go file in a non-Go project; I don't want to see anything from govim.

cespare

comment created time in 6 days

push eventcespare/vim-config

Caleb Spare

commit sha b7e0e4eb468e17eadf3a3534a164b030f9ac9b76

Update govim

view details

push time in 6 days

push eventcespare/govim

Pontus Leitzler

commit sha 2dd3699dc7998bb086e6ef1f4602b795c5695e64

cmd/govim: add diagnostics to hover popup (#693) When using the hover feature, either via keyboard or mouse, any diagnostics with a range that covers the current position will be added at the top of popup. The diagnostics are formatted using text properties, and as a consequence of this there are a few new highlight groups defined: * GOVIMHoverErr * GOVIMHoverWarn * GOVIMHoverInfo * GOVIMHoverHint The diagnostic line also includes the diagnostic source (as provided by gopls, e.g. "compiler", "printf", "unreachable"). To be able to format the source there is another highlight group used for the source part: * GOVIMHoverDiagSrc All text properties are combined with existing syntax highlight to enable a wide range of custom styles. The feature is enabled by default, and can be disabled by setting the config HoverDiagnostics to 0 (false). Closes #468

view details

Paul Jolly

commit sha 57e94a35b8939d13fc2ff9d8e2a023db93d1cafa

cmd/govim: make testscript scripts truly concurrent (#691) Our cmd/govim testscript tests are split across a number of directories. This grouping allows us to have separate configuration per directory. Currently we do not call t.Parallel in each directory's subtest. This means that we run directory scipts in serial, one directory after another. Therefore, if there is a particularly slow test in one directory, we can end up with flat spots where we do not fully utilise the -test.parallel concurrency limit. Making directory subtests parallel removes these flat spots. But we do so at the cost of leaving beind gopls install artefacts. When we start testing against a Go 1.14 release that includes CL 214822 we can enable that cleanup, but Go version pre 1.14 will unfortunately continue to leak these artefacts.

view details

Paul Jolly

commit sha 921c3642d5c6a2bfc1b9b9de716f12e82679e7cf

cmd/govim: add test for quickfix errors in dependencies (#326) Fixes #369

view details

Paul Jolly

commit sha 9fe88069fe1e036e276b8ad1d36306968314dd6a

cmd/govim: by default don't detect if user is busy in testscript scripts (#694) In testscript tests we are simulating the user doing things by calls to the special vim command. Calls to this command are, in effect, a one-shot thing. That is, we simulate the changes the user to have made with a single command. Those changes to all intents and purposes take effect in an instant, i.e. they are not simulating the user pressing keys over a period of time. Sometimes these commands can get Vim into a rather confused state with respect to CursorHold(I)/CursorMoved(I). Indeed we have had to manually insert some CursorHold events into our tests in order to convince Vim that we are in fact "done". Debugging this in Vim will take some time. So the most practical thing to do in the short term is to disable this "busy" detection by default in our testscript scripts, and instead have a specific suite of tests that verify the behaviour under much more controlled circumstances. We have created #695 as a follow-up for the "busy" suite of tests.

view details

Pontus Leitzler

commit sha de8e9ace88b89a444dba74dfae6f35a56e282f4f

cmd/govim: leaving userbusy always updates text property highlighs (#700) Diagnostic highlights are always updated when leaving userbusy. If the buffer changed since the last diagnostic received from gopls, we might end up with a buffer that doesn't contain the lines/cols where we try to place text properties. This will thrown an error. This fix adds the same logic that exists for other diagnostic features, so that leaving userbusy only triggers text property placment if there are new diagnostics.

view details

Paul Jolly

commit sha ca3f52dd095ede070e821644703578748aa1f7a2

cmd/govim: ensure that GOPATH is in a hidden directory (#702) In testscript tests, Vim is opened with a working directory of the workdir. This means that the govim file watcher is watching every file beneath that directory (every file not hidden, that is). GOPATH is currently $WORK/gopath which means that the govim file watcher will, incorrectly, be spotting .go files that change within the module cache. Fix this be explicitly putting GOPATH within $HOME which is already defined as $WORK/.home

view details

Paul Jolly

commit sha 71384426d424c201df035ab1da3d782625d2c2aa

cmd/govim: skip flakey test for GVim v8.1.1711 (#703) Per https://github.com/vim/vim/issues/5507#issuecomment-576825067, scenario_goimports_local/existing_import.txt is known to be flakey for GVim v8.1.1711. Whilst we understand the underlying reason in that thread, we choose to skip this test on the understanding the flake is related to a Vim bug of some sort.

view details

Paul Jolly

commit sha 57bc06eb2571db130fe5e7ec2f5d78ad14a2117a

ci: notify when the master build goes green (#705) Currently we never notify for a green build on master. This isn't very helpful because it means we don't get a notification when the build passes having previously failed, i.e. red -> green. Fix that to notify on change.

view details

Paul Jolly

commit sha 67ccd2da76bef7828f7595b345c3d62b1c4bf5a5

deps: upgrade x/tools and gopls to d456b1cd (#706) * internal/imports: pass dummy source for completion functions d456b1cd * internal/lsp: use correct file identities when computing diagnostics 62545537 * internal/lsp/cache: create infra for caching go.mod diagnostics bd79bb77 * internal/lsp/cache: fix mod file change check 9375b12b * internal/lsp/protocol: remove unused DocumentUri type 13c74800 * internal/lsp/source: fix typeIsValid() inf recursion dbc83e6d * go/ssa: remove workaround for lack of vendoring in go/loader eb0d8dd8 * go/ssa/interp: fix goroutines and channels leaks e919f867

view details

push time in 6 days

push eventcespare/vim-config

Caleb Spare

commit sha 7756faca45050d0f4cfffb1f96130f96e71d8a03

Update govim

view details

push time in 8 days

issue openedgovim/govim

cmd/govim: disruptive warning when editing non-Go files

After updating to latest master, I'm getting a warning dialog from govim when editing non-Go files.

For instance, here's what I see when I edit my .vimrc:

screen_20200119122705

The text says:

You are neither in a module nor in your GOPATH. Please see https://github.com/golang/go/wiki/Modules for information on how to set up your Go project.

This seems similar to the issue discussed in https://github.com/golang/go/issues/35818.

A bisect shows that this change occurred in d80f0e21c2e3291f93bd60d3d70079f877834d85.

created time in 8 days

push eventcespare/govim

Paul Jolly

commit sha c7a6cc371a422fa87adcbd422320a9955187ca4d

deps: use temporary fork of x/tools and gopls (#689) In d80f0e21 we upgraded to the latest x/tools and gopls. But as is documented in golang.org/issue/36601 there is a bug whereby reverting a file to an earlier state results in no diagnostics where they are in fact expected. Fix this by using a temporary fork of x/tools and gopls where CL 214586 is partially reverted. Also add tests to ensure the various permutations of transitions to/from error state and back work as expected.

view details

Paul Jolly

commit sha 9597d2b22495d9888fb39d27241323eb662c8921

cmd/govim: apply AdditionalTextEdits on CompleteDone (#674) Some completion candidates, most notably unimported completion candidates, carry with them additional text edits. In the case of unimported candidates, these represent the changes required to add the missing import if the candidate is chosen. This commit applies those text edits when we get the event CompleteDone.

view details

Paul Jolly

commit sha 0876ba34ac78adec927e745f119759215fac3406

ci: add a CI environment variable to run race tests for pull requests (#690) This means we can re-trigger race bulids by tweaking a Travis environment variable, instead of constantly having to change _scripts/dockerRun.sh

view details

push time in 8 days

issue commentgovim/govim

cmd/govim: support killing/temporary disabling of plugin/gopls

In fact, even without #99 if govim could recover from gopls exiting it seems like that would be enough. (I originally filed #453 for that but you wanted to combine with this one. The way this issue is titled makes it seem to be specifically about intentionally killing gopls, not crash recovery, though.)

myitcv

comment created time in 8 days

issue commentgovim/govim

cmd/govim: support killing/temporary disabling of plugin/gopls

@myitcv I think it's both #99 and this one, right? If vim didn't freeze, that would be easier to recover from, but I'd still have to restart vim because govim would no longer be working since gopls has died.

myitcv

comment created time in 8 days

issue openedgolang/go

x/tools/gopls: infinite recursion, crash when presented with a recursively defined type

I'm using govim with x/tools/gopls at 0cba7a3a.

This crash seems easy to reproduce. For instance, I created a new file in an empty package and then typed this in:

package main

type stateFunc func() stateFunc

type dd struct {}

func (d d

and then, at the end (where the receiver type goes, after I'd already typed d), I triggered completion and gopls crashed.

<details><summary>Here's an excerpt from the govim log:</summary> <p>

2020-01-18T16:05:12.369606_#1: vim start =======================
2020-01-18T16:05:12.369606_#1: recvJSONMsg: [192] ["function","function:GOVIM_internal_BufChanged",[1,7,8,0,[{"lnum":7,"col":9,"added":0,"end":8,"lines":["func (d d"]}]]]
2020-01-18T16:05:12.369606_#1: vim end =======================
2020-01-18T16:05:12.369704_#1: run: waiting to read a JSON message
2020-01-18T16:05:12.370382_#1: info only: failed to parse buffer /home/caleb/p/misc/gopls/bug.go: /home/caleb/p/misc/gopls/bug.go:7:10: missing ',' before newline in parameter list (and 6 more errors)
2020-01-18T16:05:12.370639_#1: gopls server start =======================
2020-01-18T16:05:12.370639_#1: gopls.DidChange() call; params:
2020-01-18T16:05:12.370639_#1: &protocol.DidChangeTextDocumentParams{
2020-01-18T16:05:12.370639_#1:     TextDocument: protocol.VersionedTextDocumentIdentifier{
2020-01-18T16:05:12.370639_#1:         Version:                126,
2020-01-18T16:05:12.370639_#1:         TextDocumentIdentifier: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/gopls/bug.go"},
2020-01-18T16:05:12.370639_#1:     },
2020-01-18T16:05:12.370639_#1:     ContentChanges: {
2020-01-18T16:05:12.370639_#1:         {
2020-01-18T16:05:12.370639_#1:             Range: &protocol.Range{
2020-01-18T16:05:12.370639_#1:                 Start: protocol.Position{Line:6, Character:0},
2020-01-18T16:05:12.370639_#1:                 End:   protocol.Position{Line:7, Character:0},
2020-01-18T16:05:12.370639_#1:             },
2020-01-18T16:05:12.370639_#1:             RangeLength: 0,
2020-01-18T16:05:12.370639_#1:             Text:        "func (d d\n",
2020-01-18T16:05:12.370639_#1:         },
2020-01-18T16:05:12.370639_#1:     },
2020-01-18T16:05:12.370639_#1: }
2020-01-18T16:05:12.370639_#1: gopls server end =======================
2020-01-18T16:05:12.370785_#1: gopls server start =======================
2020-01-18T16:05:12.370785_#1: gopls.DidChange() return; err: <nil>
2020-01-18T16:05:12.370785_#1: gopls server end =======================
2020-01-18T16:05:12.370829_#1: vim start =======================
2020-01-18T16:05:12.370829_#1: sendJSONMsg: [192,["",null]]
2020-01-18T16:05:12.370829_#1: vim end =======================
2020-01-18T16:05:12.372263_#1: vim start =======================
2020-01-18T16:05:12.372263_#1: recvJSONMsg: [193] ["function","function:GOVIM_internal_SetUserBusy",[1]]
2020-01-18T16:05:12.372263_#1: vim end =======================
2020-01-18T16:05:12.372351_#1: run: waiting to read a JSON message
2020-01-18T16:05:12.372490_#1: vim start =======================
2020-01-18T16:05:12.372490_#1: sendJSONMsg: [193,["",null]]
2020-01-18T16:05:12.372490_#1: vim end =======================
2020-01-18T16:05:12.647353_#1: vim start =======================
2020-01-18T16:05:12.647353_#1: recvJSONMsg: [194] ["function","function:GOVIM_internal_Complete",[1,""]]
2020-01-18T16:05:12.647353_#1: vim end =======================
2020-01-18T16:05:12.647443_#1: run: waiting to read a JSON message
2020-01-18T16:05:12.647632_#1: vim start =======================
2020-01-18T16:05:12.647632_#1: sendJSONMsg: [0,[42,"expr","{\"bufnum\": bufnr(\"\"), \"line\": line(\".\"), \"col\": col(\".\")}"]]
2020-01-18T16:05:12.647632_#1: vim end =======================
2020-01-18T16:05:12.648302_#1: vim start =======================
2020-01-18T16:05:12.648302_#1: recvJSONMsg: [195] ["callback",42,["",{"bufnum":1,"col":10,"line":7}]]
2020-01-18T16:05:12.648302_#1: vim end =======================
2020-01-18T16:05:12.648394_#1: run: waiting to read a JSON message
2020-01-18T16:05:12.649160_#1: gopls server start =======================
2020-01-18T16:05:12.649160_#1: gopls.Completion() call; params:
2020-01-18T16:05:12.649160_#1: &protocol.CompletionParams{
2020-01-18T16:05:12.649160_#1:     Context:                    protocol.CompletionContext{},
2020-01-18T16:05:12.649160_#1:     TextDocumentPositionParams: protocol.TextDocumentPositionParams{
2020-01-18T16:05:12.649160_#1:         TextDocument: protocol.TextDocumentIdentifier{URI:"file:///home/caleb/p/misc/gopls/bug.go"},
2020-01-18T16:05:12.649160_#1:         Position:     protocol.Position{Line:6, Character:9},
2020-01-18T16:05:12.649160_#1:     },
2020-01-18T16:05:12.649160_#1:     WorkDoneProgressParams: protocol.WorkDoneProgressParams{},
2020-01-18T16:05:12.649160_#1:     PartialResultParams:    protocol.PartialResultParams{},
2020-01-18T16:05:12.649160_#1: }
2020-01-18T16:05:12.649160_#1: gopls server end =======================
2020-01-18T16:05:12.664684_#1: gopls client start =======================
2020-01-18T16:05:12.664684_#1: LogMessage callback: &protocol.LogMessageParams{Type:3, Message:"2020/01/18 16:05:12 go/packages.Load\n\tsnapshot = 126\n\tquery = [file=/home/caleb/p/misc/gopls/bug.go]\n\tpackages = 1"}
2020-01-18T16:05:12.664684_#1: gopls client end =======================
2020-01-18T16:05:12.664719_#1: gopls client start =======================
2020-01-18T16:05:12.664719_#1: LogMessage callback: &protocol.LogMessageParams{Type:3, Message:"2020/01/18 16:05:12 go/packages.Load\n\tpackage = github.com/cespare/misc/gopls\n\tfiles = [/home/caleb/p/misc/gopls/bug.go]"}
2020-01-18T16:05:12.664719_#1: gopls client end =======================
2020-01-18T16:05:13.207619_#1: gopls stderr: runtime: goroutine stack exceeds 1000000000-byte limit
2020-01-18T16:05:13.207633_#1: gopls stderr: fatal error: stack overflow
2020-01-18T16:05:13.209872_#1: gopls stderr: 
2020-01-18T16:05:13.209936_#1: gopls stderr: runtime stack:
2020-01-18T16:05:13.209939_#1: gopls stderr: runtime.throw(0xcb6f3c, 0xe)
2020-01-18T16:05:13.209941_#1: gopls stderr: 	/home/caleb/apps/go/src/runtime/panic.go:774 +0x72
2020-01-18T16:05:13.209943_#1: gopls stderr: runtime.newstack()
2020-01-18T16:05:13.209945_#1: gopls stderr: 	/home/caleb/apps/go/src/runtime/stack.go:1046 +0x6e9
2020-01-18T16:05:13.209947_#1: gopls stderr: runtime.morestack()
2020-01-18T16:05:13.209949_#1: gopls stderr: 	/home/caleb/apps/go/src/runtime/asm_amd64.s:449 +0x8f
2020-01-18T16:05:13.209951_#1: gopls stderr: 
2020-01-18T16:05:13.209953_#1: gopls stderr: goroutine 716 [running]:
2020-01-18T16:05:13.209956_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.209959_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:315 +0x43e fp=0xc0206bc348 sp=0xc0206bc340 pc=0x785c6e
2020-01-18T16:05:13.209961_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.209963_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc390 sp=0xc0206bc348 pc=0x78590f
2020-01-18T16:05:13.209965_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.209968_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc3d8 sp=0xc0206bc390 pc=0x785b9b
2020-01-18T16:05:13.209970_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.209973_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc420 sp=0xc0206bc3d8 pc=0x78590f
2020-01-18T16:05:13.209975_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.209983_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc468 sp=0xc0206bc420 pc=0x785b9b
2020-01-18T16:05:13.209988_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.209996_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc4b0 sp=0xc0206bc468 pc=0x78590f
2020-01-18T16:05:13.210002_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210011_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc4f8 sp=0xc0206bc4b0 pc=0x785b9b
2020-01-18T16:05:13.210016_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210025_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc540 sp=0xc0206bc4f8 pc=0x78590f
2020-01-18T16:05:13.210030_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210038_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc588 sp=0xc0206bc540 pc=0x785b9b
2020-01-18T16:05:13.210056_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210065_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc5d0 sp=0xc0206bc588 pc=0x78590f
2020-01-18T16:05:13.210069_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210078_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc618 sp=0xc0206bc5d0 pc=0x785b9b
2020-01-18T16:05:13.210082_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210090_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc660 sp=0xc0206bc618 pc=0x78590f
2020-01-18T16:05:13.210096_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210105_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc6a8 sp=0xc0206bc660 pc=0x785b9b
2020-01-18T16:05:13.210110_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210118_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc6f0 sp=0xc0206bc6a8 pc=0x78590f
2020-01-18T16:05:13.210123_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210132_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc738 sp=0xc0206bc6f0 pc=0x785b9b
2020-01-18T16:05:13.210148_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210151_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc780 sp=0xc0206bc738 pc=0x78590f
2020-01-18T16:05:13.210153_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210156_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc7c8 sp=0xc0206bc780 pc=0x785b9b
2020-01-18T16:05:13.210160_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210168_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc810 sp=0xc0206bc7c8 pc=0x78590f
2020-01-18T16:05:13.210174_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210182_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc858 sp=0xc0206bc810 pc=0x785b9b
2020-01-18T16:05:13.210187_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210195_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc8a0 sp=0xc0206bc858 pc=0x78590f
2020-01-18T16:05:13.210201_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210212_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc8e8 sp=0xc0206bc8a0 pc=0x785b9b
2020-01-18T16:05:13.210215_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210221_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc930 sp=0xc0206bc8e8 pc=0x78590f
2020-01-18T16:05:13.210226_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210234_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bc978 sp=0xc0206bc930 pc=0x785b9b
2020-01-18T16:05:13.210240_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210248_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bc9c0 sp=0xc0206bc978 pc=0x78590f
2020-01-18T16:05:13.210253_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210261_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bca08 sp=0xc0206bc9c0 pc=0x785b9b
2020-01-18T16:05:13.210267_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210274_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bca50 sp=0xc0206bca08 pc=0x78590f
2020-01-18T16:05:13.210280_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210288_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bca98 sp=0xc0206bca50 pc=0x785b9b
2020-01-18T16:05:13.210293_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210301_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bcae0 sp=0xc0206bca98 pc=0x78590f
2020-01-18T16:05:13.210307_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210315_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bcb28 sp=0xc0206bcae0 pc=0x785b9b
2020-01-18T16:05:13.210320_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210327_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bcb70 sp=0xc0206bcb28 pc=0x78590f
2020-01-18T16:05:13.210333_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210341_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bcbb8 sp=0xc0206bcb70 pc=0x785b9b
2020-01-18T16:05:13.210346_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210355_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bcc00 sp=0xc0206bcbb8 pc=0x78590f
2020-01-18T16:05:13.210361_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210368_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bcc48 sp=0xc0206bcc00 pc=0x785b9b
2020-01-18T16:05:13.210374_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210381_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bcc90 sp=0xc0206bcc48 pc=0x78590f
2020-01-18T16:05:13.210386_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210394_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bccd8 sp=0xc0206bcc90 pc=0x785b9b
2020-01-18T16:05:13.210399_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210407_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bcd20 sp=0xc0206bccd8 pc=0x78590f
2020-01-18T16:05:13.210412_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210436_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bcd68 sp=0xc0206bcd20 pc=0x785b9b
2020-01-18T16:05:13.210440_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210449_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bcdb0 sp=0xc0206bcd68 pc=0x78590f
2020-01-18T16:05:13.210454_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210475_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bcdf8 sp=0xc0206bcdb0 pc=0x785b9b
2020-01-18T16:05:13.210480_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210489_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bce40 sp=0xc0206bcdf8 pc=0x78590f
2020-01-18T16:05:13.210494_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210501_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bce88 sp=0xc0206bce40 pc=0x785b9b
2020-01-18T16:05:13.210507_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210515_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bced0 sp=0xc0206bce88 pc=0x78590f
2020-01-18T16:05:13.210520_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210528_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bcf18 sp=0xc0206bced0 pc=0x785b9b
2020-01-18T16:05:13.210533_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210541_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bcf60 sp=0xc0206bcf18 pc=0x78590f
2020-01-18T16:05:13.210547_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210554_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bcfa8 sp=0xc0206bcf60 pc=0x785b9b
2020-01-18T16:05:13.210559_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210568_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bcff0 sp=0xc0206bcfa8 pc=0x78590f
2020-01-18T16:05:13.210573_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210581_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd038 sp=0xc0206bcff0 pc=0x785b9b
2020-01-18T16:05:13.210586_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210594_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd080 sp=0xc0206bd038 pc=0x78590f
2020-01-18T16:05:13.210599_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210608_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd0c8 sp=0xc0206bd080 pc=0x785b9b
2020-01-18T16:05:13.210613_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210620_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd110 sp=0xc0206bd0c8 pc=0x78590f
2020-01-18T16:05:13.210625_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210634_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd158 sp=0xc0206bd110 pc=0x785b9b
2020-01-18T16:05:13.210639_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210646_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd1a0 sp=0xc0206bd158 pc=0x78590f
2020-01-18T16:05:13.210652_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210660_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd1e8 sp=0xc0206bd1a0 pc=0x785b9b
2020-01-18T16:05:13.210665_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210673_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd230 sp=0xc0206bd1e8 pc=0x78590f
2020-01-18T16:05:13.210679_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210686_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd278 sp=0xc0206bd230 pc=0x785b9b
2020-01-18T16:05:13.210691_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210700_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd2c0 sp=0xc0206bd278 pc=0x78590f
2020-01-18T16:05:13.210705_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210713_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd308 sp=0xc0206bd2c0 pc=0x785b9b
2020-01-18T16:05:13.210718_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210726_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd350 sp=0xc0206bd308 pc=0x78590f
2020-01-18T16:05:13.210732_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210739_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd398 sp=0xc0206bd350 pc=0x785b9b
2020-01-18T16:05:13.210744_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210753_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd3e0 sp=0xc0206bd398 pc=0x78590f
2020-01-18T16:05:13.210758_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210767_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd428 sp=0xc0206bd3e0 pc=0x785b9b
2020-01-18T16:05:13.210772_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210779_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd470 sp=0xc0206bd428 pc=0x78590f
2020-01-18T16:05:13.210785_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210793_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd4b8 sp=0xc0206bd470 pc=0x785b9b
2020-01-18T16:05:13.210798_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210806_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd500 sp=0xc0206bd4b8 pc=0x78590f
2020-01-18T16:05:13.210812_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210820_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd548 sp=0xc0206bd500 pc=0x785b9b
2020-01-18T16:05:13.210825_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210832_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd590 sp=0xc0206bd548 pc=0x78590f
2020-01-18T16:05:13.210838_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210846_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd5d8 sp=0xc0206bd590 pc=0x785b9b
2020-01-18T16:05:13.210851_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210859_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd620 sp=0xc0206bd5d8 pc=0x78590f
2020-01-18T16:05:13.210864_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210872_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd668 sp=0xc0206bd620 pc=0x785b9b
2020-01-18T16:05:13.210878_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210887_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd6b0 sp=0xc0206bd668 pc=0x78590f
2020-01-18T16:05:13.210892_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210900_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd6f8 sp=0xc0206bd6b0 pc=0x785b9b
2020-01-18T16:05:13.210905_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210914_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd740 sp=0xc0206bd6f8 pc=0x78590f
2020-01-18T16:05:13.210920_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210928_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd788 sp=0xc0206bd740 pc=0x785b9b
2020-01-18T16:05:13.210933_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210941_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd7d0 sp=0xc0206bd788 pc=0x78590f
2020-01-18T16:05:13.210946_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210954_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd818 sp=0xc0206bd7d0 pc=0x785b9b
2020-01-18T16:05:13.210960_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210968_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd860 sp=0xc0206bd818 pc=0x78590f
2020-01-18T16:05:13.210974_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.210981_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd8a8 sp=0xc0206bd860 pc=0x785b9b
2020-01-18T16:05:13.210988_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.210995_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd8f0 sp=0xc0206bd8a8 pc=0x78590f
2020-01-18T16:05:13.211001_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211009_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd938 sp=0xc0206bd8f0 pc=0x785b9b
2020-01-18T16:05:13.211014_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211022_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bd980 sp=0xc0206bd938 pc=0x78590f
2020-01-18T16:05:13.211028_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211035_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bd9c8 sp=0xc0206bd980 pc=0x785b9b
2020-01-18T16:05:13.211041_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211050_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bda10 sp=0xc0206bd9c8 pc=0x78590f
2020-01-18T16:05:13.211055_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211062_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bda58 sp=0xc0206bda10 pc=0x785b9b
2020-01-18T16:05:13.211067_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211075_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bdaa0 sp=0xc0206bda58 pc=0x78590f
2020-01-18T16:05:13.211082_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211089_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bdae8 sp=0xc0206bdaa0 pc=0x785b9b
2020-01-18T16:05:13.211095_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211104_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bdb30 sp=0xc0206bdae8 pc=0x78590f
2020-01-18T16:05:13.211109_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211116_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bdb78 sp=0xc0206bdb30 pc=0x785b9b
2020-01-18T16:05:13.211123_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211131_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bdbc0 sp=0xc0206bdb78 pc=0x78590f
2020-01-18T16:05:13.211137_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211144_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bdc08 sp=0xc0206bdbc0 pc=0x785b9b
2020-01-18T16:05:13.211150_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211159_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bdc50 sp=0xc0206bdc08 pc=0x78590f
2020-01-18T16:05:13.211164_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211172_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bdc98 sp=0xc0206bdc50 pc=0x785b9b
2020-01-18T16:05:13.211178_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211185_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bdce0 sp=0xc0206bdc98 pc=0x78590f
2020-01-18T16:05:13.211190_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211198_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bdd28 sp=0xc0206bdce0 pc=0x785b9b
2020-01-18T16:05:13.211204_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211212_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bdd70 sp=0xc0206bdd28 pc=0x78590f
2020-01-18T16:05:13.211217_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211225_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bddb8 sp=0xc0206bdd70 pc=0x785b9b
2020-01-18T16:05:13.211230_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211239_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bde00 sp=0xc0206bddb8 pc=0x78590f
2020-01-18T16:05:13.211244_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211251_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bde48 sp=0xc0206bde00 pc=0x785b9b
2020-01-18T16:05:13.211256_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211264_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bde90 sp=0xc0206bde48 pc=0x78590f
2020-01-18T16:05:13.211270_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7b60, 0xc000579020, 0xc00062b880)
2020-01-18T16:05:13.211278_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:330 +0x36b fp=0xc0206bded8 sp=0xc0206bde90 pc=0x785b9b
2020-01-18T16:05:13.211283_#1: gopls stderr: golang.org/x/tools/internal/lsp/source.typeIsValid(0xde7ca0, 0xc00062b880, 0xc000579001)
2020-01-18T16:05:13.211290_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/source/util.go:333 +0xdf fp=0xc0206bdf20 sp=0xc0206bded8 pc=0x78590f
2020-01-18T16:05:13.211293_#1: gopls stderr: ...additional frames elided...
2020-01-18T16:05:13.211295_#1: gopls stderr: created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
2020-01-18T16:05:13.211299_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/jsonrpc2/jsonrpc2.go:354 +0x877
2020-01-18T16:05:13.211301_#1: gopls stderr: 
2020-01-18T16:05:13.211304_#1: gopls stderr: goroutine 1 [syscall]:
2020-01-18T16:05:13.211313_#1: gopls stderr: syscall.Syscall(0x0, 0x0, 0xc0002d0000, 0x1000, 0x7f77cf2af208, 0x800000, 0x42fa4a)
2020-01-18T16:05:13.211318_#1: gopls stderr: 	/home/caleb/apps/go/src/syscall/asm_linux_amd64.s:18 +0x5
2020-01-18T16:05:13.211329_#1: gopls stderr: syscall.read(0x0, 0xc0002d0000, 0x1000, 0x1000, 0x0, 0x12ffe58, 0x203000)
2020-01-18T16:05:13.211333_#1: gopls stderr: 	/home/caleb/apps/go/src/syscall/zsyscall_linux_amd64.go:732 +0x5a
2020-01-18T16:05:13.211336_#1: gopls stderr: syscall.Read(...)
2020-01-18T16:05:13.211339_#1: gopls stderr: 	/home/caleb/apps/go/src/syscall/syscall_unix.go:183
2020-01-18T16:05:13.211349_#1: gopls stderr: internal/poll.(*FD).Read(0xc0000460c0, 0xc0002d0000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
2020-01-18T16:05:13.211353_#1: gopls stderr: 	/home/caleb/apps/go/src/internal/poll/fd_unix.go:165 +0x164
2020-01-18T16:05:13.211356_#1: gopls stderr: os.(*File).read(...)
2020-01-18T16:05:13.211359_#1: gopls stderr: 	/home/caleb/apps/go/src/os/file_unix.go:259
2020-01-18T16:05:13.211370_#1: gopls stderr: os.(*File).Read(0xc000010010, 0xc0002d0000, 0x1000, 0x1000, 0x0, 0x0, 0xc00023b638)
2020-01-18T16:05:13.211373_#1: gopls stderr: 	/home/caleb/apps/go/src/os/file.go:116 +0x71
2020-01-18T16:05:13.211376_#1: gopls stderr: bufio.(*Reader).fill(0xc0002ce060)
2020-01-18T16:05:13.211380_#1: gopls stderr: 	/home/caleb/apps/go/src/bufio/bufio.go:100 +0x103
2020-01-18T16:05:13.211391_#1: gopls stderr: bufio.(*Reader).ReadSlice(0xc0002ce060, 0xa, 0x4, 0x2, 0x6, 0x0, 0xc0004525a0)
2020-01-18T16:05:13.211396_#1: gopls stderr: 	/home/caleb/apps/go/src/bufio/bufio.go:359 +0x3d
2020-01-18T16:05:13.211405_#1: gopls stderr: bufio.(*Reader).ReadBytes(0xc0002ce060, 0xa, 0x415600, 0xc0000c1328, 0xc000452640, 0x18, 0x8)
2020-01-18T16:05:13.211410_#1: gopls stderr: 	/home/caleb/apps/go/src/bufio/bufio.go:437 +0x73
2020-01-18T16:05:13.211412_#1: gopls stderr: bufio.(*Reader).ReadString(...)
2020-01-18T16:05:13.211415_#1: gopls stderr: 	/home/caleb/apps/go/src/bufio/bufio.go:477
2020-01-18T16:05:13.211428_#1: gopls stderr: golang.org/x/tools/internal/jsonrpc2.(*headerStream).Read(0xc00000f500, 0xdf3d00, 0xc0002c2c60, 0x693346, 0xc0002ce110, 0xc0002c2c30, 0xc000452640, 0x43a14e, 0xc00023b688)
2020-01-18T16:05:13.211432_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/jsonrpc2/stream.go:97 +0x92
2020-01-18T16:05:13.211446_#1: gopls stderr: golang.org/x/tools/internal/lsp/protocol.(*loggingStream).Read(0xc00000f520, 0xdf3d00, 0xc0002c2c60, 0xc00057df40, 0xc0002ce0c0, 0xdf3d00, 0xc00038ffb0, 0x0, 0x0)
2020-01-18T16:05:13.211450_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/protocol/log.go:26 +0x54
2020-01-18T16:05:13.211458_#1: gopls stderr: golang.org/x/tools/internal/jsonrpc2.(*Conn).Run(0xc0002ce0c0, 0xdf3d00, 0xc0002c2c60, 0x2, 0xc00000f540)
2020-01-18T16:05:13.211461_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/jsonrpc2/jsonrpc2.go:316 +0xa5
2020-01-18T16:05:13.211464_#1: gopls stderr: golang.org/x/tools/internal/lsp.(*Server).Run(...)
2020-01-18T16:05:13.211467_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/server.go:64
2020-01-18T16:05:13.211481_#1: gopls stderr: golang.org/x/tools/internal/lsp/cmd.(*Serve).Run(0xc0000dfd30, 0xdf3c80, 0xc00003c1b8, 0xc0000320f0, 0x0, 0x0, 0x0, 0x0)
2020-01-18T16:05:13.211485_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/cmd/serve.go:101 +0x6ce
2020-01-18T16:05:13.211501_#1: gopls stderr: golang.org/x/tools/internal/tool.Run(0xdf3c80, 0xc00003c1b8, 0xdf7140, 0xc0000dfd30, 0xc0000320f0, 0x0, 0x0, 0x0, 0x0)
2020-01-18T16:05:13.211505_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/tool/tool.go:152 +0x29d
2020-01-18T16:05:13.211517_#1: gopls stderr: golang.org/x/tools/internal/lsp/cmd.(*Application).Run(0xc0000dfd00, 0xdf3c80, 0xc00003c1b8, 0xc0000320f0, 0x0, 0x0, 0x0, 0x0)
2020-01-18T16:05:13.211522_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/lsp/cmd/cmd.go:139 +0x3c0
2020-01-18T16:05:13.211536_#1: gopls stderr: golang.org/x/tools/internal/tool.Run(0xdf3c80, 0xc00003c1b8, 0xdf7100, 0xc0000dfd00, 0xc0000320d0, 0x3, 0x3, 0x0, 0x0)
2020-01-18T16:05:13.211541_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/tool/tool.go:152 +0x29d
2020-01-18T16:05:13.211553_#1: gopls stderr: golang.org/x/tools/internal/tool.Main(0xdf3c80, 0xc00003c1b8, 0xdf7100, 0xc0000dfd00, 0xc0000320d0, 0x3, 0x3)
2020-01-18T16:05:13.211557_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools@v0.0.0-20200117220505-0cba7a3a9ee9/internal/tool/tool.go:91 +0x12f
2020-01-18T16:05:13.211560_#1: gopls stderr: main.main()
2020-01-18T16:05:13.211564_#1: gopls stderr: 	/home/caleb/p/go/pkg/mod/golang.org/x/tools/gopls@v0.1.8-0.20200117220505-0cba7a3a9ee9/main.go:22 +0xdb
2020-01-18T16:05:13.211566_#1: gopls stderr: 
2020-01-18T16:05:13.211569_#1: gopls stderr: goroutine 34 [syscall]:
2020-01-18T16:05:13.211572_#1: gopls stderr: os/signal.signal_recv(0x0)
2020-01-18T16:05:13.211577_#1: gopls stderr: 	/home/caleb/apps/go/src/runtime/sigqueue.go:147 +0x9c
2020-01-18T16:05:13.211579_#1: gopls stderr: os/signal.loop()
2020-01-18T16:05:13.211582_#1: gopls stderr: 	/home/caleb/apps/go/src/os/signal/signal_unix.go:23 +0x22
2020-01-18T16:05:13.211584_#1: gopls stderr: created by os/signal.init.0
2020-01-18T16:05:13.211589_#1: gopls stderr: 	/home/caleb/apps/go/src/os/signal/signal_unix.go:29 +0x41

</p> </details>

The code is bouncing between the first and last line in the highlighted range in the typeIsValid function here:

https://github.com/golang/tools/blob/0cba7a3a9ee9d9a5917ed56b9668e7ad35eaa571/internal/lsp/source/util.go#L330-L333

That function was added in CL 210357, though I don't know if the underlying issue existed before.

/cc @quasilyte @stamblerre

created time in 9 days

push eventcespare/govim

Paul Jolly

commit sha 4208a9805df15a50ba6e714ca806d425351d50bd

ci: fix master cron build to drop replace directives (#664) The master CRON build that happens on Travis should be checking against master of x/tools and gopls. To ensure we actually test against x/tools and gopls master we need to make sure that there are no replace directives against either module. This PR fixes that.

view details

Pontus Leitzler

commit sha 676bb763fe0bde6ade6b19874fa33e6739ca643e

cmd/govim: Do not increase version if buffer content didn't change (#665) We currently blindly increase buffer version when vim triggers BufReadPost or BufNewFile (and a didOpen or didChange request to gopls). Unloading and loading a buffer that is open also triggers a BufReadPost, and if the content didn't change we shouldn't increase version. This change also skip redefining highlights if the version is indeed increased since the last known diagnostics could have changed. Updates #655

view details

Paul Jolly

commit sha 29461d37de75d59c26e20a4216110ad4461bad69

cmd/govim: change log file template to default to .log files (#671) A minor annoyance, but when reporting issues via GitHub, uploading log files only works in the browser if the file has a .log extension. Our log file templates do not currently have such an extension which means manual renaming is required before the file can be uploaded. Fix that.

view details

Paul Jolly

commit sha 309f57bd5c394ad96708031b3465595203f77b90

testing: revert GOTMPDIR hack for setting testscript workdir root (#673) In 854efaeb we included a temporary hack for setting the destination of artefacts for testscript tests, via GOTMPDIR. In this commit we undo that hack. Motivation for the change best described in: rogpeppe/go-internal@bc89b17

view details

Paul Jolly

commit sha 28f9f8f886269cabf74efc4537d05748453be8ff

scripts: add captureLogs.sh to easily run tests and capture all logs (#677) When the CI build fails and generates artefacts we capture logs. Sometimes it's useful to be able to do that locally. _scripts/captureLogs.sh makes that trivial by wrapping the relevant commands.

view details

Paul Jolly

commit sha 3112437be823998009921e4ec797ebc51c021f1a

ci: properly separate artefacts for race builds in all places (#679) Currently we do not properly separate out the artefacts for test results (race or otherwise) in the module root package. Fix that.

view details

Paul Jolly

commit sha f036f11927e836a0011cddb52a9f4315a469477a

testdriver: add vimexprwait to simplify wait assertions (#678) vimexprwait repeatedly evaluates a Vim expression (where the expression is like that passed to the vim expr command) until the result matches the contents of a golden file. vimexprwait golden.file expr e.g. vimexprwait errors.golden getqflist() will wait until the quickfix list contents match the contents of errors.golden. By default vimexprwait JSON indent-formats the result (this can be turned off with -noindent). By default vimexprwait waits (with exponential backoff) for up to testdriver.DefaultErrLogMatchWait. As part of this change we also simplify all tests that previously used an approach that was a mix of errlogmatch, vim expr, copen etc. The semantics of the changed tests have not changed, only the way in which we assert. For file watcher-based tests, we move away from waiting for diagnostics for a file spotted by the watcher to instead specifically looking for didOpen/didChange events being sent to gopls. Given the happens-before relationship that didOpen/didChange affords us, again this doesn't result in any change in semantics. Given vimexprwait can depend on the value of GOVIM_ERRLOGMATCH_WAIT, so we also rename DEFAULT_ERRLOGMATCH_WAIT to GOVIM_ERRLOGMATCH_WAIT and adjust all comments/sleeps accordingly. As part of this we make a copy of github.com/rogpeppe/go-internal/internal/textutil for our local needs. Also remove the current "hack" whereby we copen/cclose prior to running any script in order to determine the quickfix buffer number; this hack is no longer required because we no longer copen in order to dump the quickfix contents - instead we use vimexprwait. This means that some previous golden values need to change as the first open file will be in bufnr 1, and window numbers will start from 1000, with the next buffer being bufn2 and the next window being 1001.

view details

Paul Jolly

commit sha cd2d2932da50f0c04f0963b9a517091652fbd35e

cmd/govim: improve skip messages in testscript tests (#681) Also drop an unhelpful comment in the gofmt.txt script, and an old debugging line from cmd/govim/references.go.

view details

Paul Jolly

commit sha d80f0e21c2e3291f93bd60d3d70079f877834d85

deps: upgrade x/tools and gopls to 0cba7a3a (#675) Breaking change: configuriation keys CompletionCaseSensitive and CompletionFuzzyMatching have been dropped in favour of the unified CompletionMatcher. The CompletionMatcher config key takes values of the newly defined CompletionMatcher type. Also: * add definition of server.NonstandardRequest per new def * fix up diagnostic assertions per changes in gopls Contains the following x/tools and gopls changes: * internal/lsp/source: enable unimported completions by default 0cba7a3a * internal/lsp/source: fix ranking of untyped completions fe56e633 * internal/lsp: do not invoke the Go command when checking common errors 1486df0b * internal/lsp/cache: let gopls track go.mod files 354bea8c * internal/lsp: add recency check to avoid sending old diagnostics 633b092c * internal/lsp: invalidate directories if we have no direct IDs 351fb220 * internal/lsp/source: trim file very carefully 95ece921 * internal/lsp: consolidate completion sorting a2095512 * internal/lsp/cache: invalidate metadata for x_tests and test variants 7ad9cd8f * internal/lsp: add highlighting for import statement ade7f254 * go/ast/astutil: fix DeleteImport SEGV when Rparen is invalid 43d50277 * gopls/internal/hooks: ignore a duplicate analysis from staticcheck 39095c1d * internal/lsp/source: score in-memory unimported candidates 6edc0a87 * go/packages: fix incorrect needtypes and needsrcs logic 84cebe10 * go/packages: internally expose ForTests in go/packages 28ed04f8 * internal/lsp/cache: refresh imports cache in the background 1c4842a2 * internal/lsp: don't log context.Cancelation in diagnostics 872a348c * internal/lsp/source: return obj decl first in find-references 0508ad4c * internal/lsp/source: improve completion for "range" and "<-" 473961ec * internal/lsp: refactor find-references and rename f80fb1df * internal/lsp/source: always look up mapper when building ranges 7042ee64 * internal/lsp/source: improve completion in type assertions 49797d04 * internal/lsp/cache: initialize view before LookupBuiltin 96555e0f * internal/lsp: diagnose the snapshot on every text synchronization event a7dab026 * internal/lsp: remove boolean for publishEmpty in diagnostics 97cd989a * cover: error on negative numbers in profiles 0110d438 * internal/lsp/cache: refactor initialization for builtins f04f2c82 * gopls/doc: improve troubleshooting docs with specifics 20e59185 * internal/lsp/cache: construct package handles as part of IWL 497c7f15 * internal/lsp: add and use nonstandard gopls/diagnoseFiles 3ded1b73 * internal/lsp: show dependency quick fixes for go.mod diagnostics de0b1760 * gopls/doc: fix it's/its typo fdfa0def * internal/lsp: add server instance to debug info 98c82cf1 * gopls/integration/govim: update build steps to capture artifacts 85035768 * internal/lsp/tests: correct typo 'CompletionCaseSensitve' 7fd989f6 * internal/lsp,internal/telemetry: correct stale docstrings df878668 * internal/lsp: push initialization tasks into one function 831fdb1e * internal/lsp: finish renaming CheckPackageHandle to PackageHandle 7ae403b6 * internal/imports: load test exports of package under test 3d148423 * gopls/doc: minor fixes in design.md and implementation.md e23c44e7 * internal/lsp: make sure diagnostics with analyses are not overwritten f986e617 * internal/lsp: add mapper for go.mod files 579903b3 * internal/lsp/protocol: support nonstandard requests 3be912ef * internal/lsp: fix flaking internal/lsp/cmd tests 9c46c2c3 * internal/lsp: use URIs instead of FileIdentity in errors 189207f3 * internal/lsp/source: improve completion support for args to builtins d31a08c2 * cmd/stringer: remove redundant check in generated code 9dc88fb7 * internal/lsp: fix context cancellation 3b9e2352 * internal/lsp: use latest file versions in diagnostics 294c8f82 * internal/lsp: allow subdirectories of module roots when checking errors 5a294e27 * internal/lsp: change go1.14 check to be more lenient 544dc8ea * go/analysis: remove stale documentation citing vet 78c17663 * gopls/doc: fix 'Report the issue' bad link 4da80417 * internal/lsp: reload workspace package metadata on demand 533f309e * internal/lsp: merge completion options into source.Options 8f45075e * internal/lsp: don't require type-checking for formatting 6316571e * internal/lsp: fix support for watching changed files 86d412b4 * internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 4a54ec1d * internal/lsp: surface diagnostics for invalid go.mod files 30cae5f2 * internal/lsp: fix completion ordering workaround eac38179 * internal/lsp: initialize the view on creation a7a6caa8 * internal/lsp: don't invalidate workspace when a mod file is opened 3e6f5d44 * internal/lsp: fix link handling for links without schemes 945ed6e0 * internal/lsp: prevent initial workspace load from being canceled e8a26f41 * internal/lsp/mod: test go.mod is unchanged when tempModfile=true 428f1ab0 * internal/imports: create listener map after clearing for new scan e2f26524 * internal/imports: fix use of uninitialized resolvers 563860d1 * internal/lsp: don't run full workspace diagnostics on mod file change 0a1579a3 * internal/imports: don't block completions on walks 5d34a750 * internal/lsp: store workspace package IDs with package paths a9a43c47 * internal/lsp: allow diagnostics to be computed per-file or per-package 8a1a3df0 * internal/lsp: propagate errors from find references 700ee261 * internal/lsp: stop requiring file kind when fetching a file dfcf5706 * internal/lsp: don't send diagnostics for old file versions 48773326 * internal/lsp: warn user in case of a multi-file ad-hoc package 675cf513 * internal/lsp: add warning diagnostics for unused dependencies in go.mod files f270e23f * go/ssa: add position data in indexed range loops ac4f524c * internal/lsp/source: fix some invalid literal candidates 89082a38 * internal/lsp/source: only add names to imports when necessary 316d2f24 * internal/lsp: modify how we check for go 1.14 for modfiles acbc0e3b * internal/lsp/source: set default InsertTextFormat to PlainText 11e9d9cc * internal/lsp/source: don't downrank builtin constant completions a222fb47 * internal/lsp: parallelize initial workspace load 7201abb3

view details

push time in 9 days

issue commentgovim/govim

cmd/govim: support killing/temporary disabling of plugin/gopls

I'm running into some gopls crash again and it's quite unfortunate that this hard-freezes vim in such a way that it has to be force-killed leaving a bunch of swap files around and blowing a large crater in my flow.

myitcv

comment created time in 9 days

issue closedcespare/goclj

Exit with non zero code when list is not empty

When cljfmt -l is not empty it would be nice to exit with a non zero exit code. It's then easier to integrate it with build pipelines for example.

closed time in 10 days

tzzh

issue commentcespare/goclj

Exit with non zero code when list is not empty

I prefer to keep the gofmt behavior here. Non-zero exit codes are only for the case that there is some error reading/parsing the input files. To incorporate into a build pipeline, a simple script should suffice. For instance, you could do

test -z $(cljfmt -l *.clj) 

or

cljfmt -l *.clj | tee >(test -z)

if you want to print the list as well (the last one assumes a shell, such as Bash, with process substitution).

tzzh

comment created time in 10 days

issue closedcespare/vim-toml

utf-8 support

Hello,

it looks like not all syntax highlighting works when working with certain characters from utf-8:

see for instance the following example in toml:

[hello] [héllo]

test = 1 tést = 2 test2 = 3 ∪nion = 4

I get the following syntax highlighting:

2020-01-16-161759_1581x859_scrot

I do highlight that my file was indeed a utf-8 file, as defined by the TOML spec: $ file -i example.toml example.toml: text/plain; charset=utf-8

closed time in 11 days

alehresmann

issue commentcespare/vim-toml

utf-8 support

Sorry, but that isn't valid TOML.

Quoting the TOML spec:

Bare keys may only contain ASCII letters, ASCII digits, underscores, and dashes (A-Za-z0-9_-). Note that bare keys are allowed to be composed of only ASCII digits, e.g. 1234, but are always interpreted as strings.

[examples]

Quoted keys follow the exact same rules as either basic strings or literal strings and allow you to use a much broader set of key names. Best practice is to use bare keys except when absolutely necessary.

Therefore, Héllo is not a valid TOML key; it must be quoted as "Héllo".

Similarly for tables:

Naming rules for tables are the same as for keys (see definition of Keys above).

If you quote these names, you'll see that vim-toml handles it correctly:

screen_20200116135151

alehresmann

comment created time in 11 days

PR closed cespare/xxhash

fake the package
+0 -3

1 comment

10 changed files

Andrewjeska

pr closed time in 12 days

pull request commentcespare/xxhash

fake the package

This would need a PR title and description that says what the purpose is and justifies it.

Looking at the code, I see that it's moving all the code into the v2/ directory, which is necessary for backwards compatibility with very old Go versions. I don't care to structure my repository to support those versions -- projects using old Go versions should just upgrade, and if they cannot they are free to vendor v1 of this package, fork it and make a change, or use a different xxhash package.

As stated in the readme, any of the following Go versions understand how to use v2 of this package:

  • 1.9.7+ for Go 1.9
  • 1.10.3+ for Go 1.10
  • Go 1.11 or later
Andrewjeska

comment created time in 12 days

PR closed cespare/xxhash

Add constructor that returns hash.Hash interface

This PR adds a constructor that returns the hash.Hash interface so that this xxhash implementation may be used interchangeably with other hash.Hash implementations, such as in the https://github.com/elastic/beats project (see https://www.elastic.co/guide/en/beats/filebeat/master/fingerprint.html).

It leaves the existing New constructor as-is for backwards compatibility.

+5 -0

1 comment

1 changed file

ycombinator

pr closed time in 14 days

pull request commentcespare/xxhash

Add constructor that returns hash.Hash interface

Note that the signature was intentionally changed as part of moving to v2 of this package (see #13).

I'd rather not add this trivial wrapper. It's easy enough to put that in the client code.

ycombinator

comment created time in 14 days

issue commentgolang/go

cmd/go: suppress warning messages about symlinks

@sebd71 as I wrote above:

Adding empty go.mod files to a bunch of project directories just to suppress this warning is probably a nonstarter.

It's simply not reasonable for us to add lots of go.mod files to non-Go projects, especially in an ongoing way (adding and deleting them as we add and delete symlinks).

cespare

comment created time in 14 days

issue commentkeybase/client

Keybase fs sync isn't working on one computer

@strib it's working after a restart.

cespare

comment created time in 14 days

push eventcespare/vim-config

Caleb Spare

commit sha 264bc5496ed1314871e8598348aedb0cb9f61a7a

Update govim to get a couple of bug fixes

view details

push time in 19 days

push eventcespare/govim

Paul Jolly

commit sha 419444dae1f4f46a1d3af25a7f56ec5f0bea026d

cmd/govim: tighten up quickfix config tests (#646) In light of recent changes in gopls to not sent diagnostics for files when those diagnostics have not changed, we need to slightly tweak our assertions in various testscript scripts. This is first such change. Others will/may follow

view details

Paul Jolly

commit sha 82216f108fc37f6afe8932e7d355703f61dee84b

ci: fix simple bug in dockerRun script and Travis config (#651) Nothing really to see here; it's a bash syntax bug, and us accidentally having two before_install sections in the .travis.yml file

view details

Paul Jolly

commit sha 7e59ad0918ca288871b82def40a6dadad89c994b

cmd/govim: make user busy autocmd nested (#654) We have, over time, seen a number of flakes where we appear to be missing autocmd callbacks. The most prominent of these is in the rename tests where we fail to see autocmd callbacks for an unopen file we have just split/vsplit etc. This could point towards a Vim bug, but more likely is that fact that each of these flakes is interacting with the user-busy logic. Key in this analysis is a callstack from a recent flake: SNR>18_userBusy[3]..GOVIM_internal_SetUserBusy[2]..<SNR>18_callbackFunction[2]..<SNR>18_ch_evalexpr[15]..<SNR>18_drainScheduleBacklog[14]..<SNR>18_ch_evalexpr[10]..<SNR>18_define[40]..<SNR>18_callbackCommand[3]..<SNR>18_ch_evalexpr Notice at the bottom (left) of the callstack is userBusy. Currently we do not have ++nested on the definition of the autocmd that fires when the user becomes/stops being busy. Hence for the entire duration of that callback (GOVIM_internal_SetUserBusy) autocmds will not fire (because this is a "global" flag in Vim, not a per autocmd thing). We fix this by making the user-busy autocmd's ++nested (see :help autocmd-nested). As a result we should see fewer (no?) more flakes of this kind.

view details

Paul Jolly

commit sha 854efaebbdba38b5c1bcd797d1a0beee195b82c6

tests: create gists from artefacts (logs) of failed CI tests (#650) Very often we get "useful" failures on CI that are hard to reproduce locally. Given the headless nature of CI it's impossible to then extract the log files from those failures. This is very frustrating. This commit causes test failures on Travis to create a gist with a base64 encoded .tar.gz of the log files from all tests that have, to that point, run. For convenience, a command is echo-ed that can be copy-pasted into your shell that will change to a new temp dir and untar the log files ready for inspection.

view details

Paul Jolly

commit sha 11eb9c75ea607c4caf63a93e2d8016b2c0099c8f

deps: upgrade x/tools and gopls to 774c71fc (#652) * internal/lsp/cache: fix type error reporting in cgo 774c71fc * internal/imports: actually skip things in scan 7bda3009 * internal/lsp: fix minor issues in diagnostic caching 6de373a2 * gopls/integration: save more precise parsing information 81ef4df1 * internal/lsp/cmd: fix documentation 27f5d1b1 * godoc/static: update copyright year to 2013 6ed6e603 * gopls/integration: cosmetic/ergonomic updates 9497f49d * internal/lsp: miscellaneous cleanup 2aa90c60 * internal/imports: filter out self-import completions ba16e80a * internal/imports: clean up dead code 1e586a53 * internal/lsp/source: scan loaded packages first for completions 9a28a1fa * internal/imports: filter candidates on directory name 2f3125df * internal/imports: filter roots with callback 872f4f41 * internal/imports: optimize scan implementations 7ec15289 * internal/imports,lsp: use callbacks for completion functions c2a8f45a * internal/lsp: sort by label after score 3f7dfa39 * internal/lsp/source: always use default goimports options 0a57c092 * internal/imports: redesign scan API 50c778fb * internal/imports: remove go/packages support ac3e9e73 * internal/lsp/source: don't get unnecessary unimported completions fd66c752 * internal/lsp: load metadata for a single package ID, when needed 234df48a * all: remove many cases of space-space 6c68fec0 * go/analysis/analysistest: accept comments of /* */ form 2912ce79 * tools/internal/lsp/cmd: fix documentation 9fb4d214 * internal/lsp: create links for golang/go#1234-style strings 7b8e75db * internal/lsp: refactor and document options 99d11d0e * cmd/gopls: delete legacy gopls 8647d4c8 * internal/lsp/cmd: remove unnecessary message from help 819aba5d * go/analysis: add package docs for findcall, printf, and shadow 065ed046 * gopls: use mvdan.cc/xurls for textDocument/documentLink 6b505deb * internal/lsp: trim address operator from completion filterText dd894d0a * internal/lsp: support taking address for completion candidates 3721262b * internal/lsp: refactor find-implementation handling 918115ff * internal/lsp/source: move some data onto "candidate" struct 4d2fe2ba * internal/lsp/source: improve completion in value spec 7bd96bd5 * go/packages: fix TestCgoOption to work on Windows 142b776b * internal/lsp: cleanup temporary go.mod file on shutdown c7341709 * gopls/doc: remove unnecessary settings from VSCode documentation a7b3459f * gopls/integration: add a first cut of govim integration tests d7ab2451 * internal/lsp: make golint happy 8c5978f1

view details

Paul Jolly

commit sha 0e63668ba2a2f2fd64745df57911948e383f184e

cmd/govim: create a test demonstrating failing completion (#659) As previously discovered (and also raised in #658), 11eb9c7 caused completion to break in govim because placeholder values are now included in the completion result. This has now been fixed in: https://go-review.googlesource.com/c/tools/+/213640 However, because of a bug introduced in: https://go-review.googlesource.com/c/tools/+/212102 we can't simply upgrade to the latest x/tools and gopls. In any case we want to add a test to demonstrate the problem and prevent and future regressions. A subsequent PR will upgrade the version of x/tools and gopls to a commit (in a temporary fork) that has the fix for the completion bug but does not have the bug for the parallel initial load. Updates #658

view details

Paul Jolly

commit sha afa4918a6d4d485b6797580c76f894c41a8c2a1b

deps: use temp fork of x/tools and gopls to 53017a39 + 11e9d9cc (#660) Use a temporary fork for now whilst bugs introduced by: https://go-review.googlesource.com/c/tools/+/212102 get fixed. We use 53017a39 as a base for that fork and cherry pick 11e9d9cc in order to pick up a fix for a bug introduced by a previous x/tools and gopls upgrade (reported in #658). * internal/lsp/source: set default InsertTextFormat to PlainText 11e9d9cc * analysis/passes: report testing.Fatal* FailNow Skip* misuse in goroutines 53017a39 * internal/lsp: fix minor bug in the PackageHandle function 7be0a674 Fixes #658

view details

Paul Jolly

commit sha dfabc260d57c1bc3e02ce06e55f6c5588d43aeeb

tests: fix diagnostic assertions in our tests (#653) This uber PR contains a number of changes to our testscript tests: * Drop all errlogmatch's looking for assertions where we really should not need them. Historically we needed these because the threading model of gopls was a bit broken. i.e. despite us notifying of a change to a file, unless we waited for diagnostics to be available then we couldn't guarantee that, for example, completions would be correct * Fix up all go.mod files to include go directives so that we don't fall foul of https://github.com/golang/go/issues/36144 * Where we do require errlogmatch's, make sure we follow the existing semantics per https://github.com/golang/go/issues/36243 and https://github.com/golang/go/issues/36340 * Fix up some scripts so that we don't have initial errors in the file and hence don't need to soak up initial diagnostics * Use sleep $DEFAULT_ERRLOGMATCH_WAIT where we expect there to be no diagnostic errors * Only use errlogmatch on diagnostic publications where we need to know that a file has been opened, e.g. file watching, or where we need to soak up initial diagnostic notifications (see https://github.com/golang/go/issues/36243) * Move all commented-out errlogmatch commands matching on the number of errors to the end of each script. We still can't enable these Add some initial tests that help to verify our expectations around diagnostics being published by gopls. Set GOPATH and GOCACHE consistently for the install testscript scripts to speed them up. Call t.Parallel in a couple of places to speed up the entire test run. Add a test (that is skipped) which capture the essence of https://github.com/golang/go/issues/36144.

view details

Caleb Spare

commit sha acb0572f0ac30faa95f781e44e94b4695deef83e

cmd/govim: add syntax and indent for go.mod files (#620) First, add ftdetect configuration to detect go.mod files as the 'gomod' filetype. Then add syntax and indent files for this filetype. The gomod syntax file is reused from the vim-go project under the terms of its 3-clause BSD license. The indent file is new work.

view details

Paul Jolly

commit sha c4bb087a0311a67137b99a51e4f167343c4e3ce2

cmd/govim: fix GOVIMQuickfixDiagnostics command (#662) Per #657, after 2975a8f `:GOVIMQuickfixDiagnostics` is broken as long as QuickfixAutoDiagnostics is disabled. This was an unintentional break. We managed to break this command because the command was not actually tested. Fix both of these points by fixing the bug itself and also adding a test to prevent further breakage. Fixes #657

view details

Pontus Leitzler

commit sha 6236474c3ac70b34dfee8591a8f35215210fe17d

cmd/govim: allow user defined signs (#643) Currently govim defines the different sign types used at startup, with hard coded sign (">>"). This adds a check before each sign definition that skips definition if a sign with that name is already defined. It allows the user to override sign types used by govim in their vimrc and that way use custom signs. e.g. to change sign to "!!" instead for errors: call sign_define("GOVIMSignErr",{"text":"!!","texthl":"GOVIMSignErr"})

view details

push time in 19 days

issue commentgovim/govim

cmd/govim: recent x/tools, gopls upgrade emits extra junk in omnicompletion

Thanks for the info! And no worries, I expect to encounter stuff like this when I keep using master.

cespare

comment created time in 19 days

issue commentgovim/govim

Recent x/tools, gopls upgrade emits extra junk in omnicompletion

Ugh, hit enter too early. Editing in details now...

cespare

comment created time in 19 days

issue openedgovim/govim

Recent x/tools, gopls upgrade emits extra junk in omnicompletion

<!-- Please answer these questions before submitting your issue. Thanks! -->

What version of Vim/Gvim are you using?

<details><summary>Vim/Gvim version</summary><br><pre> $ vim --version

</pre></details>

What version of Go are you using (go version)?

<pre> $ go version

</pre>

What operating system and processor architecture are you using (go env)?

<details><summary><code>go env</code> Output</summary><br><pre> $ go env

</pre></details>

What version/commit of govim are you using?

What is the output of :messages in Vim?

Do the Vim channel, govim or gopls log files show anything interesting?

<!-- !! BEWARE THESE LOGFILES CONTAIN FILE CONTENTS !! -->

<!-- The location of the logfiles is given by :GOVIMLogfilePaths in Vim -->

How did you install govim?

<!-- Vim 8 packages, Pathogen, vim-plug, Vundle, other... -->

What did you do?

<!-- If possible, provide a recipe for reproducing the error. -->

What did you expect to see?

What did you see instead?

created time in 19 days

issue openedgovim/govim

Setting QuickfixAutoDiagnostics=0 breaks :GOVIMQuickfixDiagnostics

My .vimrc contains

call govim#config#Set("QuickfixAutoDiagnostics", 0)

because I don't want the quickfix window to be populated automatically. After 2975a8f19cc83752c9b0e83459dacb727d09a190 the :GOVIMQuickfixDiagnostics is broken as long as QuickfixAutoDiagnostics is disabled.

(By "broken" I mean that it has no apparent effect: it doesn't populate the quickfix window; it doesn't move the cursor; it doesn't give any error message.)

AFAIK I'm using this as intended. The docs for QuickfixAutoDiagnostics say

When disabled, CommandQuickfixDiagnostics can be used to manually trigger the population.

I can attach more details if necessary but I expect this isn't difficult to reproduce.

created time in 20 days

pull request commentgovim/govim

Detect go.mod as a 'gomod' filetype; add syntax and indent

Then if you don't mind squashing the commits and providing a helpful commit message in the mould of previous commits https://github.com/govim/govim/commits/master. Use a prefix of cmd/govim to indicate this relates to the plugin.

Done, though it seems like a strange convention to use cmd/govim to tag changes which are entirely distinct from the cmd/govim code and which do not touch the cmd/govim path.

cespare

comment created time in 20 days

push eventcespare/govim

Paul Jolly

commit sha 419444dae1f4f46a1d3af25a7f56ec5f0bea026d

cmd/govim: tighten up quickfix config tests (#646) In light of recent changes in gopls to not sent diagnostics for files when those diagnostics have not changed, we need to slightly tweak our assertions in various testscript scripts. This is first such change. Others will/may follow

view details

Paul Jolly

commit sha 82216f108fc37f6afe8932e7d355703f61dee84b

ci: fix simple bug in dockerRun script and Travis config (#651) Nothing really to see here; it's a bash syntax bug, and us accidentally having two before_install sections in the .travis.yml file

view details

Paul Jolly

commit sha 7e59ad0918ca288871b82def40a6dadad89c994b

cmd/govim: make user busy autocmd nested (#654) We have, over time, seen a number of flakes where we appear to be missing autocmd callbacks. The most prominent of these is in the rename tests where we fail to see autocmd callbacks for an unopen file we have just split/vsplit etc. This could point towards a Vim bug, but more likely is that fact that each of these flakes is interacting with the user-busy logic. Key in this analysis is a callstack from a recent flake: SNR>18_userBusy[3]..GOVIM_internal_SetUserBusy[2]..<SNR>18_callbackFunction[2]..<SNR>18_ch_evalexpr[15]..<SNR>18_drainScheduleBacklog[14]..<SNR>18_ch_evalexpr[10]..<SNR>18_define[40]..<SNR>18_callbackCommand[3]..<SNR>18_ch_evalexpr Notice at the bottom (left) of the callstack is userBusy. Currently we do not have ++nested on the definition of the autocmd that fires when the user becomes/stops being busy. Hence for the entire duration of that callback (GOVIM_internal_SetUserBusy) autocmds will not fire (because this is a "global" flag in Vim, not a per autocmd thing). We fix this by making the user-busy autocmd's ++nested (see :help autocmd-nested). As a result we should see fewer (no?) more flakes of this kind.

view details

Paul Jolly

commit sha 854efaebbdba38b5c1bcd797d1a0beee195b82c6

tests: create gists from artefacts (logs) of failed CI tests (#650) Very often we get "useful" failures on CI that are hard to reproduce locally. Given the headless nature of CI it's impossible to then extract the log files from those failures. This is very frustrating. This commit causes test failures on Travis to create a gist with a base64 encoded .tar.gz of the log files from all tests that have, to that point, run. For convenience, a command is echo-ed that can be copy-pasted into your shell that will change to a new temp dir and untar the log files ready for inspection.

view details

Paul Jolly

commit sha 11eb9c75ea607c4caf63a93e2d8016b2c0099c8f

deps: upgrade x/tools and gopls to 774c71fc (#652) * internal/lsp/cache: fix type error reporting in cgo 774c71fc * internal/imports: actually skip things in scan 7bda3009 * internal/lsp: fix minor issues in diagnostic caching 6de373a2 * gopls/integration: save more precise parsing information 81ef4df1 * internal/lsp/cmd: fix documentation 27f5d1b1 * godoc/static: update copyright year to 2013 6ed6e603 * gopls/integration: cosmetic/ergonomic updates 9497f49d * internal/lsp: miscellaneous cleanup 2aa90c60 * internal/imports: filter out self-import completions ba16e80a * internal/imports: clean up dead code 1e586a53 * internal/lsp/source: scan loaded packages first for completions 9a28a1fa * internal/imports: filter candidates on directory name 2f3125df * internal/imports: filter roots with callback 872f4f41 * internal/imports: optimize scan implementations 7ec15289 * internal/imports,lsp: use callbacks for completion functions c2a8f45a * internal/lsp: sort by label after score 3f7dfa39 * internal/lsp/source: always use default goimports options 0a57c092 * internal/imports: redesign scan API 50c778fb * internal/imports: remove go/packages support ac3e9e73 * internal/lsp/source: don't get unnecessary unimported completions fd66c752 * internal/lsp: load metadata for a single package ID, when needed 234df48a * all: remove many cases of space-space 6c68fec0 * go/analysis/analysistest: accept comments of /* */ form 2912ce79 * tools/internal/lsp/cmd: fix documentation 9fb4d214 * internal/lsp: create links for golang/go#1234-style strings 7b8e75db * internal/lsp: refactor and document options 99d11d0e * cmd/gopls: delete legacy gopls 8647d4c8 * internal/lsp/cmd: remove unnecessary message from help 819aba5d * go/analysis: add package docs for findcall, printf, and shadow 065ed046 * gopls: use mvdan.cc/xurls for textDocument/documentLink 6b505deb * internal/lsp: trim address operator from completion filterText dd894d0a * internal/lsp: support taking address for completion candidates 3721262b * internal/lsp: refactor find-implementation handling 918115ff * internal/lsp/source: move some data onto "candidate" struct 4d2fe2ba * internal/lsp/source: improve completion in value spec 7bd96bd5 * go/packages: fix TestCgoOption to work on Windows 142b776b * internal/lsp: cleanup temporary go.mod file on shutdown c7341709 * gopls/doc: remove unnecessary settings from VSCode documentation a7b3459f * gopls/integration: add a first cut of govim integration tests d7ab2451 * internal/lsp: make golint happy 8c5978f1

view details

Caleb Spare

commit sha e5bd9f946e9f9ddde0ef3af56df0e85a9861b968

cmd/govim: add syntax and indent for go.mod files First, add ftdetect configuration to detect go.mod files as the 'gomod' filetype. Then add syntax and indent files for this filetype. The gomod syntax file is reused from the vim-go project under the terms of its 3-clause BSD license. The indent file is new work.

view details

push time in 20 days

Pull request review commentgovim/govim

Detect go.mod as a 'gomod' filetype; add syntax and indent

+" For now, rely on the .go detection, syntax, indent, etc. provided in recent+" Vim distributions.++" By default, vim associates .mod files with filetypes lprolog or modsim3.+" Override these rather than using setfiletype.+autocmd BufNewFile,BufRead go.mod setlocal filetype=gomod

AFAIK putting this in the ftdetect directory is the standard layout for Vim plugins. It also has special semantics: vim automatically creates an augroup for the commands in the ftdetect file.

cespare

comment created time in 20 days

issue commentkeybase/client

Keybase fs sync isn't working on one computer

@strib here you go:

{
  "Staged": false,
  "BranchID": "00000000000000000000000000000000",
  "HeadWriter": "cespare",
  "DiskUsage": 472682,
  "RekeyPending": false,
  "LatestKeyGeneration": 1,
  "FolderID": "f11f99d3777312065a31769f1dc30016",
  "Revision": 118,
  "LastGCRevision": 87,
  "MDVersion": 4,
  "RootBlockID": "024d5c0666a304e082e4512cccbd3da2f6c1ba7d06db79c207a56f8768afe74af2",
  "SyncEnabled": true,
  "PrefetchStatus": "NoPrefetch",
  "UsageBytes": 474076,
  "ArchiveBytes": 1697124,
  "LimitBytes": 268435456000,
  "GitUsageBytes": 0,
  "GitArchiveBytes": 0,
  "GitLimitBytes": 107374182400,
  "LocalTimestamp": "2020-01-03T18:16:36.80984329-08:00",
  "DirtyPaths": [
    "cespare/gold-walk/blind-motion.txt"
  ],
  "Unmerged": null,
  "Merged": null,
  "Journal": {
    "Dir": "/home/caleb/.local/share/keybase/kbfs_journal/v1/0120b08770a5665cf43cdde0fa9a92d123e2-f11f99d377731206",
    "RevisionStart": 0,
    "RevisionEnd": 0,
    "BranchID": "00000000000000000000000000000000",
    "BlockOpCount": 0,
    "StoredBytes": 0,
    "StoredFiles": 0,
    "UnflushedBytes": 0,
    "UnflushedPaths": null,
    "EndEstimate": null,
    "QuotaUsedBytes": 473308,
    "QuotaLimitBytes": 268435456000
  }
}

I don't think there's anything sensitive there, but let me know if one of those hex IDs is actually an important private key or something ><

One weird thing in there is:

  "DirtyPaths": [
    "cespare/gold-walk/blind-motion.txt"
  ],

I have no clue what cespare/gold-walk/blind-motion.txt is. No such file exists in my keybase files and the name doesn't ring any bells.

cespare

comment created time in 21 days

issue commentkeybase/client

Keybase fs sync isn't working on one computer

By the way, I filed the issue in this repo after clicking the link that keybase log send gave me. I'm not sure if I should've filed this in keybase/keybase-issues instead.

cespare

comment created time in 21 days

issue openedkeybase/client

Keybase fs sync isn't working on one computer

I use keybase fs for sharing a small number of text files between multiple devices. I noticed that a file I edited in private/cespare on host 1 wasn't being reflected on host 2. On further inspection, it seemed that the problem was that host 2 wasn't seeing the update (I could see it on my phone).

This is despite the fact that keybase claimed that the sync was active on host 2:

$ keybase fs sync show
private/cespare
  Syncing enabled
  Status: fully synced
  541.59 KB bytes stored

Status: fully synced
541.59 KB bytes stored
814.78 GB (89.07%) of the local disk is available for caching.

After disabling and re-enabling sync, it seemed stuck:

$  keybase fs sync show
private/cespare
  Syncing enabled
  Status: sync not yet started
  0 bytes bytes stored

Status: sync not yet started
0 bytes bytes stored
814.78 GB (89.07%) of the local disk is available for caching.

This is after waiting for several minutes.

This problem seems similar to #3747, so I followed the directions in that issue:

  • keybase fs set-debug-level 2
  • disabled and re-enabled sync again
  • keybase log send

Is there anything you can learn about what's going wrong?

Thanks!

my log id: 73408b439d725b121749641c

created time in 21 days

push eventcespare/dotfiles

Caleb Spare

commit sha 6c28d54944391788f294f027a34bb47d499d6c30

Work around annoying tmux/fzf escape delay

view details

push time in 24 days

issue closedjunegunn/fzf.vim

Large delay when dismissing fzf window using escape

<!-- ISSUES NOT FOLLOWING THIS TEMPLATE WILL BE CLOSED AND DELETED -->

<!-- Check all that apply [x] -->

  • [x] I have read through https://github.com/junegunn/fzf.vim/blob/master/README.md
  • [x] I have read through https://github.com/junegunn/fzf/blob/master/README-VIM.md
  • [x] I have read through the manual page of fzf (man fzf)
  • [x] I have searched through the existing issues

<!--

Before submitting

  • Make sure that you have the latest version of fzf and fzf.vim
  • Check if your problem is reproducible with a minimal configuration

Start Vim with a minimal configuration

vim -Nu <(curl https://gist.githubusercontent.com/junegunn/6936bf79fedd3a079aeb1dd2f3c81ef5/raw)

-->

This is essentially the same issue as #248, which is closed. However, the issue is definitely not fixed.

There is a noticeable, annoying delay when hitting escape to dismiss the fzf window. This code suggests that there is an intentional delay of 100ms; however, the actual delay is much longer than that (it's a little hard to measure but I think it's around 700ms). Furthermore, setting ESCDELAY=10 has no perceivable effect. Setting ESCDELAY=1000 makes the delay significantly longer. Therefore, I believe that the actual delay is coming from somewhere else other than the intended "escape delay".

closed time in 24 days

cespare

issue commentjunegunn/fzf.vim

Large delay when dismissing fzf window using escape

Note that if you're on tmux, escape-time setting of tmux (which defaults to 500ms) also affects the delay.

Ah! Yes, this is what I'm seeing. I didn't think to try to repro without tmux. Thanks!

cespare

comment created time in 24 days

push eventcespare/vim-config

Caleb Spare

commit sha 4b76467169112abaf4551ed40a854721e7692125

Update a couple of plugins

view details

Caleb Spare

commit sha 05f323ce498c48079ef1be4a110eb6044f111ecc

Remove settings for a plugin I don't use anymore

view details

push time in a month

issue openedjlanzarotta/bufexplorer

Bufexplorer interferes with the startinsert! command

I'm seeing a strange issue that I've isolated to bufexplorer. (That is, it does not occur without bufexplorer loaded, and it does occur with an empty .vimrc and bufexplorer as the single plugin.)

This started happening with more recent vim versions. It does not reproduce in vim 8.0.1453 but it does occur in vim 8.1.something (can't recall which patch) as well as 8.2.65.

Edit any file with at least one line of text. I'll call mine x.txt.

Consider the command

1 | startinsert!

This should go to the first line and then change to insert mode at the very end of the line (as though the user had used the A motion).

This command works fine. However, if at the command-line I run

vim -c '1 | startinsert!' x.txt

then the cursor will be at the second-to-last position in the line rather than at the very end (as though the user typed $i rather than A).

Without bufexplorer loaded, vim -c '1 | startinsert!' x.txt starts vim with the cursor at the very end of the first line, just as though I ran 1 | startinsert! from inside vim.

I did a little bisecting and the problem is caused by this line of code:

https://github.com/jlanzarotta/bufexplorer/blob/162f6031ada3b2d1ad171e02e93f417ee1689176/plugin/bufexplorer.vim#L173

created time in a month

issue openedjunegunn/fzf.vim

Large delay when dismissing fzf window using escape

<!-- ISSUES NOT FOLLOWING THIS TEMPLATE WILL BE CLOSED AND DELETED -->

<!-- Check all that apply [x] -->

  • [x] I have read through https://github.com/junegunn/fzf.vim/blob/master/README.md
  • [x] I have read through https://github.com/junegunn/fzf/blob/master/README-VIM.md
  • [x] I have read through the manual page of fzf (man fzf)
  • [x] I have searched through the existing issues

<!--

Before submitting

  • Make sure that you have the latest version of fzf and fzf.vim
  • Check if your problem is reproducible with a minimal configuration

Start Vim with a minimal configuration

vim -Nu <(curl https://gist.githubusercontent.com/junegunn/6936bf79fedd3a079aeb1dd2f3c81ef5/raw)

-->

This is essentially the same issue as #248, which is closed. However, the issue is definitely not fixed.

There is a noticeable, annoying delay when hitting escape to dismiss the fzf window. This code suggests that there is an intentional delay of 100ms; however, the actual delay is much longer than that (it's a little hard to measure but I think it's around 700ms). Furthermore, setting ESCDELAY=10 has no perceivable effect. Setting ESCDELAY=1000 makes the delay significantly longer. Therefore, I believe that the actual delay is coming from somewhere else other than the intended "escape delay".

created time in a month

push eventcespare/govim

Caleb Spare

commit sha d7cf27b4b9b818fc103d4f50900efe1a42d3d9c3

Add an indent file for go.mod

view details

push time in a month

pull request commentgovim/govim

Detect go.mod as a 'gomod' filetype; add syntax

@myitcv I wrote a simple indent file for go.mod. I've never written an indent file before but this seems like a pretty basic filetype so hopefully this will cover all the important cases for now. PTAL.

cespare

comment created time in a month

push eventcespare/govim

Caleb Spare

commit sha e1e79997537e56adac046ee6974c65a1c8b3e67e

Add an indent file for go.mod

view details

push time in a month

push eventcespare/vim-config

Caleb Spare

commit sha 13c04fb64416b07b02ef250c97f06f25be6fae13

Update govim

view details

push time in a month

push eventcespare/govim

Paul Jolly

commit sha 393cb5a4d686ee3e9a0ef7fe086e7e61011cec47

testdriver: expose max errlogmatch wait time (#621) Currently we have a default errlogmatch wait time of 30s which can be overridden by the environment variable GOVIM_ERRLOGMATCH_WAIT. But this value is internal to the testdriver package. In test cases in subsequent PRs we need to assert that we do not receive a notification from gopls. This obviously means we cannot use errlogmatch to wait for a notification. Instead we need to wait for an indeterminate period of time and then assert we did not receive a notification in that time. We might as well therefore wait for the default length of time that errlogmatch waits when looking for a match. Hence we expose DefaultErrLogMatchWait from testdriver and expose it as an environment variable DEFAULT_ERRLOGMATCH_WAIT in all scripts so that they can simply: sleep $DEFAULT_ERRLOGMATCH_WAIT and then use errlogmatch with a count or similar.

view details

Paul Jolly

commit sha b900be6f0c68915960937f867d05df46ceba2432

testdriver: fix flakely parsing of version from vim --version output (#624) With the release of Vim 8.2 we uncovered a bug in the parsing of version details from the output of vim --version. Fix that bug and add a comment explaining why we're not doing version stuff in a better way to start with.

view details

Paul Jolly

commit sha e0fe19982251a4e98020534b947ff07283ca64a7

cmd/govim: use visual positions for diagnostics (#567) When displaying diagnostics, the position must be visible to the user within Vim. Some diagnostics have start/end positions that are beyond the visible content, i.e. they are after the final \n. The user, however will not be able to see/understand such a position. So we adjust such positions to be before the final \n.

view details

Paul Jolly

commit sha 98f3216642ae296f184744840aad03ca6749c0e9

deps: switch to github.com/creack/pty (#625) Per the deprecation policy for github.com/kr/pty: > This package is deprecated. Existing clients will continue to work, but no further updates will happen here. New clients should use github.com/creack/pty directly. we are switching to github.com/creack/pty. Closes #623

view details

Paul Jolly

commit sha 6240503437491a2fbb797cd65066f27128acab77

ci: run goimports on our code and ensure it remains well formatted (#628)

view details

Paul Jolly

commit sha db9402927701ea892d5cb59deb3249ca86d0d330

cmd/govim: fix scripts-with-gopls-from-path tests (#627) In 202597017 we refactored the structure of the cmd/govim testscript tests. But in that commit we failed to refactor the tests for scripts-with-gopls-from-path.

view details

findleyr

commit sha 7adec67c79efb3e766e1b2aca602fa4dabe9f51a

tests: add a -gopls flag for scenario tests in cmd/govim (#629) For validating changes to gopls, it would be helpful to be able to run the govim integration tests against a specific copy of the gopls binary. Currently, the scenario tests run against a freshly built pinned version of gopls. A -gopls flag is added to allow specifying a path to a pre-existing copy of gopls, for use in these scenario tests.

view details

Paul Jolly

commit sha 3376e910e567b9a0e09994f0f0f5cb6c82f3f5f8

deps: upgrade to github.com/rogpeppe/go-internal@v1.5.1 (#630) Pick up the fix in testscript that means we would have caught the issue addressed in db94029

view details

Paul Jolly

commit sha 29ba8dca88dd2e59a939799fc49c8a4df96548f0

deps: upgrade to gopls and x/tools 5e752206 (#584) Includes changes to govim to: * handle type changes in code generated LSP API types * define "CompletionBudget" config value for use in integration tests * remove skip from scenario_default/format_on_save_new_file script * add scenario_default/format_on_save_new_file_existing_package to verify the addition of a new file to an existing package * make changes to various scripts to handle the fact that gopls now only sends diagnostics for a file when they have changed gopls and x/tools changes: * internal/lsp: don't clear file contents on save 5e752206 * internal/lsp/cache: detach context before invalidation 145a1e40 * internal/lsp/cache: remove errors from dependencies 041a08a5 * internal/lsp/cache: consolidate function to update overlays 85a33566 * internal/imports: consider direct mod deps more relevant 62b96743 * internal/lsp: eliminate source.File type and move GetFile to snapshot 2208e167 * internal/lsp: put verbose go/packages output behind verboseOutput flag 56b0b28a * internal/lsp: fix highlighting of inexact matches when highlighting from the right bdebc07e * internal/lps/protocol: bring code.ts up to date with latest changes. a98e7fcf * telemetry/log: sample reference for benchmarking harness 2ad5dca7 * internal/lsp: add gopls setting to disable use of -modfile flag behavior 3aa5a364 * go/packages: change import cycle errorkind from UnknownError to ListError 4f29fbcc * internal/lsp/cache: fix excessive recursion in (*snapshot).clone() 979b82bf * internal/lsp/cache: don't forget files just because they change 84f0c7cf * all: burn all the evidence ac281547 * internal/lsp: return snapshots from text modifications ca0407e6 * internal/lsp/source: fix completion budget type 41c101f3 * internal/lsp: show comments for grouped variable declarations 61483d10 * blog: fix swallowed error 61f5e7d2 * internal/lsp/cache: move overlay and debug handling into separate files d270ebf9 * internal/lsp/cache: don't invalidate dependents' metadata bc4a8d39 * internal/lsp/debug: print the debug port 6f9e13bb * internal/lsp: use the -modfile flag to update a different go.mod file 62a96288 * cmd/fiximports: fix 'go list' error formatting 210e553f * internal/lsp: fix links for interface methods 38570b76 * internal/lsp: kill some dead code 64005949 * internal/lsp: change completionBudget to milliseconds f2a421a9 * internal/imports: set the Dir field on the build.Context (instead of WorkingDir) if present 01c78d57 * fix: using section links to IDE specific doc 0b436227 * gopls: add status and roadmap to the main readme. bbbf87ae * internal/lsp: fix link anchors for struct fields 42268a1f * internal/lsp: expose option to disable timeouts for completion c39ce214 * imports: pass more of the environment 621d4eef * internal/lsp/source: fix crash on conflict markers in imports 846828e8 * internal/lsp: change CompletionItem.{Command,TextEdit} to pointers 1d943b09 * internal/lsp/cache: consolidate snapshot cloning 4981f6b3 * internal/gopathwalk/walk: add missing function descriptions and renaming 99b39703 * benchmark/parse: add unit test for String function bcb65d52 * internal/lsp: fix find-implementation for promoted methods a6aac22f * go/analysis: gofmt snippets in package documentation 53d48bfc * internal/lsp, internal/tool: clean up command line of gopls a0e659d5 * internal/lsp: remove useless signature cast completion candidate 49a3e744 * internal/lsp: skip return highlighting if cursor is in arglist of func 04c2e8ef * internal/lsp: create parseModHandle for storing go.mod data 56463cc1 * internal/lsp: add diagnostic on import causing import cycle 7ebc6af0 * internal/lsp/source: fix error message for multiple GOPATHs 74e303f8 * internal/lsp/tests: add error handling for @item() 27b81bef * go/packages: correct logging of driver stderr 7093a17b * internal/lsp: offer basic type conversion candidates 0f69de23 * internal/lsp: improve link in documentation on hover cfcbc779 * go/packages: disable -mod=readonly behavior in overlays 8facea2e * internal/lsp: downrank "nil" completion candidate 825cb062 * internal/lsp: don't resend diagnostics if they are unchanged 56eb7d2c * internal/lsp: move DidModifyFile into internal/lsp/cache 4403f798 * internal/lsp: fix find-references to search from all package variants dfebd280 * internal/lsp: add handling for go.mod files in internal/lsp functions ad473c03 * internal/lsp: invalidate metadata and type info more selectively 4da4485a * internal/lsp/source: fix all types in resolveInvalid ec14b296 * internal/lsp: invalidate workspace packages when go.mod file changes ac2db28e * internal/lsp: check all package variants in find-implementations a27fdba2 * internal/lsp: fix circular import errors to account for import stack 37853707 * go/packages: add import stack to error messages when there's an import cycle 0d087302 * internal/lsp: don't invalidate dependents' metadata 912f50ad * internal/lsp: add comment completions for exported vars 98df1237 * internal/lsp: suggest "fallthrough" only inside switches fe93f4a7 * internal/lsp: Make Text in DidSave at *string rather than a string 1bcf67c9 * internal/lsp: make Text in DidSave request a pointer 0bd90eac * internal/lsp/cache: invalidate metadata even without Create 22774f7d * internal/lsp: fix control flow highlighting taking precedence 115af5e8 * internal/lsp: trim down implementations code 9a30a9a9 * internal/lsp: tweak implementation tests 259af5ff * internal/lsp: fix error suppression in (*session).createView bc369361 * internal/lsp/source: optimize computeFixEdits 6d582d50 * internal/lsp/source: cap number of unimported completions 330b9f13 * internal/lsp: respect References.IncludeDeclaration setting 786dcba0 * internal/lsp: add error handling for self imports cec95805 * internal/lsp: fix concurrent map write in file invalidation db903f39 * internal/lsp: propagate and handle context cancellation errors 3393d29b * internal/lsp/cache: clean up dead code after CL 209737 7b8c8591 * internal/lsp: fix golden generation for import tests addffd16 * internal/lsp: expose godoc or pkg.go.dev link on hover 69111344 * internal/memoize: fix race on read of handle.function 61fa4dff * go/packages: remove obsolete comment about LoadMode in doc.go e140590b * internal/lsp: refactor and clean up text synchronization d1f10d1c * internal/lsp: return snapshot when creating a view a5887330 * internal/lsp: fix AST bookkeeping as we repair nodes 73c7173a * internal/lsp/cmd: use x/tools/gopls as the gopls bug prefix e84277c2 * internal/lsp: propagate errors through source.DocumentSymbols 7a2a8a04 * internal/lsp: run packages.Load only if imports are added or changed ac417207 * go/packages: revert "handle invalid files in overlays" 427c522c * internal/lsp: always ParseFull in-workspace dependencies d79e56da * go/analysis/internal/checker: format files modified by -fix 0d967eff * internal/lsp/source: extract helper, improve error messages 660eba4d * internal/lsp/cache: fix load race, refactor 9611592c * gopls/integration: remove commented-out debug code b1451cf3 * gopls/integration: add the replay command to replay LSP logs c197fd4b * internal/links: improve links parser, no protocol specification db047d72 * playground/socket: handle multi-file present play snippets 8db96347 * internal/lsp: improve completion after accidental keywords 5ae4576c * internal/lsp: add nil check for control flow highlighting 2b6af5f9 * internal/imports: make ApplyFixes work despite syntax errors 5a103c92 * internal/lsp: add control flow highlighting for functions aa29eadb * internal/lsp/protocol: replace code for generating LSP types and stubs 713d4893 * internal/lsp: suppress all errors when a view is loaded and checked ffc413ea * internal/lsp: rename CheckPackageHandle to PackageHandle a51b8faf * internal/lsp: link to the new pkg.go.dev instead of godoc.org 6e064ea0 * internal/lsp: make sure CodeAction.Command is a pointer ecd32218 * lsp/protocol: make sure RenameProvider is an interface{} c1736c0f * internal/telemetry: lift the tests up to the request level 99399511 * gopls/doc: add documentation for gopls with Atom 724660f1 * internal/telemtry: changed to a simpler threading model for stats 7360bd5c * internal/lsp: build the wire.Node lazily 9fe613bd * internal/lsp: add some minimal validation for client capabilities 69a79c76 * internal/lsp: fixes premature return in find implementations e13f15d1 * internal/lsp: remove duplicate implementations when finding implementations af857703 * tools/gopls: add cmd support for highlight 20805546 * cmd/gopls/integration: remove old VS Code extension for debugging b832835c * internal/telemetry: delay the conversion of metrics fc82735a * godoc/static: re-add "or" function call to package.html template b0650ceb * internal/lsp: don't run analyses on the entire view 73cd2cc3 * internal/lsp/source: fix crash on short file 9f1eb440 * internal/lsp/tests: skip cgo tests when not supported efa86633 * internal/lsp: do not return interface itself when finding implementations 73db347c * internal/lsp/source: give more imports names 66af5afb * tools/gopls: add cmd support for implementation 59b2cd78 * internal/lsp: fix return variables for FindPosInPackage b99b2d09 * internal/lsp: set version correctly after textDocument/didOpen d7101b74 * internal/lsp: add tests for cgo package users 05c67e95 * internal/lsp: track and parse non-compiled go files ef6787d3 * internal/span: support line directives 761dbfd6 * internal/lsp: add documentation for package-level vars acc15743 * internal/lsp: fix literal completions in variadic params a99e43fc * internal/lsp: only search for references in reverse dependencies a911d900 * internal/telemetry: make the metrics tests external 89d49d94 * internal/lsp: use AST to construct placeholders cc15fab3 * internal/telemetry: merge the metrics tests f5828fc9 * internal/telemetry: compare the compact JSON 2a6ccf25 * internal/lsp: handle first change behavior on the server side c02aa52d * internal/lsp/cache: disable analysis on dependencies (temporarily) 2189885d * internal/lsp: improve completion ordering workaround 035a8167 * internal/lsp: fix a race in the command line tests 0ae87fff * internal/telemetry/export/ocagent: update usages of BucketOptions to use pointers f774e2e2 * internal/telemetry/export/ocagent: add tutorial for exporting metrics df8e87c2 * internal/telemetry/export/ocagent: correctly JSON marshal BucketOptionsExplicit 2d3bb8ce * internal/lsp: use snapshot to get reverse dependencies f191eec9 * internal/lsp: delete the source.Diagnostic.File field 004141db * cmd/godoc: delete unused autocert hooks f51c1a7c * internal/lsp: add control flow highlighting inside for loops 66c5a5ad * cmd/godoc: don't execute go list -m all when GOMOD is /dev/null 91381dc0 * internal/lsp: use version numbers in diagnostic messages eaeb3832 * internal/lsp: don't clear diagnostics on file close cb050682 * internal/telemetry/export/ocagent: correctly marshal points to JSON 96ad48e4 * internal/lsp: fix diagnostics on didChange 82924fac * internal/lsp: make the ocagent test external 947d4aa8 * internal/telemetry: delay the conversion to wire format 9c44060b * internal/lsp: reorganize and refactor code 35ba81b9 * internal/lsp: rename Files to CompiledGoFiles 8fd45951 * internal: avoid use of (*token.File).Name 328c41bf * internal/lsp: fix and re-enable godef tests 4bf2f406 * txtar/archive: add unit test function for Format 17847a84 * cmd/godoc, godoc/static: remove remnants of golang.org website 688c506a * internal/lsp: make Range a pointer in Change events cefbc64f * internal/lsp: improve highlighting functionality for fields and methods 0a33398b * cmd/digraph: omit unnecessary empty lines in focus b3340bdf * cmd/digraph: add focus e97fc272 * internal/lsp: run diagnostics on the entire workspace ad01d599 * internal/lsp: handle breakage caused by CL 207598 7f7817c0 * txtar: promote from internal 298f0cb1 * internal/lsp: only construct a cache when we need to caaa49c6 * go/analysis/passes/lostcancel: fix typo 4054736f * all: fix typo ("identifer" → "identifier") dc59f20e * internal/lsp/cmd: don't create .orig files for rename by default 6d480e29 * internal/lsp: fix the return type of CodeAction() 11e13f1c * internal/lsp: fix infinite recursion in CancelRequest 07fc4c7f * go/packages: add String methods for LoadMode 3d1ebf6f * internal/lsp/protocol: fix type of WorkspaceEdit.Changes in tsprotocol.go 13f8be5f * go/analysis/passes: ensure diagnostic-reporting analyses have exported Doc 1ef994f2 * internal/lsp: don't search other packages for unexported references faf0e61b * internal/lsp: reorganize the generated Go code for the lsp protocol 5091d647 * internal/lsp: fix variadic interface completion ranking 5a76f03b * internal/lsp: fix panic in bestView 80313e1b * internal/lsp: fix panic when logging errors in snapshot.KnownPackages 3a792d9c * cmd/godoc: don't execute go mod download when GOMOD is /dev/null 1c71899d * internal/lsp/testadata/rename: add a test case for renames across packages 4191b8cb * internal/lsp: ignore AST errors when generating import edits 634482ed * internal/lsp/source: add support for references in the same workspace caa0b0f7 * internal/lsp: use import path literal for documentLink range a764947c * internal/lsp/cache: add finer-grained control of file changes faa69481 * cmd/benchcmp: add unit test for formatNs function bd32a3e7 * internal/lsp: use the versions provided by the client e2727e81

view details

Paul Jolly

commit sha 63ce556bb69e0dac0cf59bf24957fe5d2c6c882e

cmd/govim: put install scripts tests behind env var (#632) Currently we skip long-running tests when running go test with -short. This is standard practice. But as part of efforts to add the govim test suite to the gopls integration tests: https://go-review.googlesource.com/c/tools/+/212018 we now need to distinguish between all long running tests and those long running tests that are install/network related. Hence we now only run install script tests when GOVIM_RUN_INSTALL_TESTSCRIPTS=true. Fixes #631

view details

Pontus Leitzler

commit sha 9074258f2c88a53483776c65a2090fb8343a241b

testdriver: limit listening to local interface (#636) Running the tests in macOS will bring up a dialog from the firewall prompting to allow an unsigned process to listen to network connections. Using local loopback interface instead will please the firewall and no dialog shows.

view details

Paul Jolly

commit sha d5a3cdeb11bce94d091c498ac17b3205979a48dc

ci: add go1.14beta1 and Vim v8.2.0025 to the build matrix (#635) Use Vim v8.2.0025 as the latest Vim version in the build matrix.

view details

Pontus Leitzler

commit sha 93fa47f0efdf28ea6b948bf241774acbd029d604

cmd/govim: highlight diagnostics (#579) Currently diagnostics as errors and warnings are only placed in the quickfix buffer, with a sign in the file buffer gutter next to the affected line. This change also adds in-code text property highlighting to the entire range affected by the diagnostic. It is combined with existing syntax highlight. Diagnostic highlighting can be disabled by setting the config HighlightDiagnostics to 0 (i.e false). Note that this is a breaking change if you have overridden any of the default govim highlight rules to, for example, change the color of error signs. Update your overrides according to the new highlight names. Override the following highlights in your .vimrc to alter the appearance of text properties and signs. - GOVIMSignErr, GOVIMSignWarn, GOVIMSignInfo & GOVIMSignHint - GOVIMErr, GOVIMWarn, GOVIMInfo & GOVIMHint

view details

Paul Jolly

commit sha 8201bdf2ed12cd384c71358e08b87d83fe0ad433

cmd/govim: use github.com/rogpeppe/go-internal/gotooltest in tests (#639) Use github.com/rogpeppe/go-internal/gotooltest in testscript tests to make it easier to use cmd/go (no 'exec go' required) and Go version conditions (e.g. [!go.14] runs a command for all Go versions < 1.14)

view details

Paul Jolly

commit sha 2c6e7baf08b1d32bb116f1a6ee11697a6fab6c64

deps: upgrade x/tools and gopls to f13409bb (#640) * internal/telemetry: clean up test data f13409bb * internal/telemetry: remove an extraneous comment c7346ecd * internal/telemetry: obey the onlyErrors flag in the log writer 81413998 * go/packages: Fix loading syntax for imports when types not requested. e5a4a00f * internal/lsp: change tests to use the main exporter 2f6d8bf0 * internal/lsp: change -modfile flag to tempModfile 75f8c442

view details

push time in a month

push eventcespare/govim

Paul Jolly

commit sha 8201bdf2ed12cd384c71358e08b87d83fe0ad433

cmd/govim: use github.com/rogpeppe/go-internal/gotooltest in tests (#639) Use github.com/rogpeppe/go-internal/gotooltest in testscript tests to make it easier to use cmd/go (no 'exec go' required) and Go version conditions (e.g. [!go.14] runs a command for all Go versions < 1.14)

view details

Paul Jolly

commit sha 2c6e7baf08b1d32bb116f1a6ee11697a6fab6c64

deps: upgrade x/tools and gopls to f13409bb (#640) * internal/telemetry: clean up test data f13409bb * internal/telemetry: remove an extraneous comment c7346ecd * internal/telemetry: obey the onlyErrors flag in the log writer 81413998 * go/packages: Fix loading syntax for imports when types not requested. e5a4a00f * internal/lsp: change tests to use the main exporter 2f6d8bf0 * internal/lsp: change -modfile flag to tempModfile 75f8c442

view details

Caleb Spare

commit sha 2a8e5715bc5900cf0b6713e252b142361a328d79

Detect go.mod as a 'gomod' filetype; add syntax I reused the go.mod syntax file from vim-go.

view details

push time in a month

push eventcespare/vim-config

Caleb Spare

commit sha 2364000b8c201e30bf2dc1277f4c2398c0846f4f

Update govim

view details

push time in a month

Pull request review commentgovim/govim

cmd/govim: text propoperty highlight diagnostics

 type Config struct { 	// Default: true 	QuickfixSigns *bool `json:",omitempty"` +	// HighlightDiagnostics enables in-code highlighting of diagnostics using+	// text properties. Each diagnostic reported by gopls will be highlighted+	// according to it's severity, using the following vim defined highlight

its

leitzler

comment created time in a month

push eventcespare/govim

findleyr

commit sha 7adec67c79efb3e766e1b2aca602fa4dabe9f51a

tests: add a -gopls flag for scenario tests in cmd/govim (#629) For validating changes to gopls, it would be helpful to be able to run the govim integration tests against a specific copy of the gopls binary. Currently, the scenario tests run against a freshly built pinned version of gopls. A -gopls flag is added to allow specifying a path to a pre-existing copy of gopls, for use in these scenario tests.

view details

Paul Jolly

commit sha 3376e910e567b9a0e09994f0f0f5cb6c82f3f5f8

deps: upgrade to github.com/rogpeppe/go-internal@v1.5.1 (#630) Pick up the fix in testscript that means we would have caught the issue addressed in db94029

view details

Paul Jolly

commit sha 29ba8dca88dd2e59a939799fc49c8a4df96548f0

deps: upgrade to gopls and x/tools 5e752206 (#584) Includes changes to govim to: * handle type changes in code generated LSP API types * define "CompletionBudget" config value for use in integration tests * remove skip from scenario_default/format_on_save_new_file script * add scenario_default/format_on_save_new_file_existing_package to verify the addition of a new file to an existing package * make changes to various scripts to handle the fact that gopls now only sends diagnostics for a file when they have changed gopls and x/tools changes: * internal/lsp: don't clear file contents on save 5e752206 * internal/lsp/cache: detach context before invalidation 145a1e40 * internal/lsp/cache: remove errors from dependencies 041a08a5 * internal/lsp/cache: consolidate function to update overlays 85a33566 * internal/imports: consider direct mod deps more relevant 62b96743 * internal/lsp: eliminate source.File type and move GetFile to snapshot 2208e167 * internal/lsp: put verbose go/packages output behind verboseOutput flag 56b0b28a * internal/lsp: fix highlighting of inexact matches when highlighting from the right bdebc07e * internal/lps/protocol: bring code.ts up to date with latest changes. a98e7fcf * telemetry/log: sample reference for benchmarking harness 2ad5dca7 * internal/lsp: add gopls setting to disable use of -modfile flag behavior 3aa5a364 * go/packages: change import cycle errorkind from UnknownError to ListError 4f29fbcc * internal/lsp/cache: fix excessive recursion in (*snapshot).clone() 979b82bf * internal/lsp/cache: don't forget files just because they change 84f0c7cf * all: burn all the evidence ac281547 * internal/lsp: return snapshots from text modifications ca0407e6 * internal/lsp/source: fix completion budget type 41c101f3 * internal/lsp: show comments for grouped variable declarations 61483d10 * blog: fix swallowed error 61f5e7d2 * internal/lsp/cache: move overlay and debug handling into separate files d270ebf9 * internal/lsp/cache: don't invalidate dependents' metadata bc4a8d39 * internal/lsp/debug: print the debug port 6f9e13bb * internal/lsp: use the -modfile flag to update a different go.mod file 62a96288 * cmd/fiximports: fix 'go list' error formatting 210e553f * internal/lsp: fix links for interface methods 38570b76 * internal/lsp: kill some dead code 64005949 * internal/lsp: change completionBudget to milliseconds f2a421a9 * internal/imports: set the Dir field on the build.Context (instead of WorkingDir) if present 01c78d57 * fix: using section links to IDE specific doc 0b436227 * gopls: add status and roadmap to the main readme. bbbf87ae * internal/lsp: fix link anchors for struct fields 42268a1f * internal/lsp: expose option to disable timeouts for completion c39ce214 * imports: pass more of the environment 621d4eef * internal/lsp/source: fix crash on conflict markers in imports 846828e8 * internal/lsp: change CompletionItem.{Command,TextEdit} to pointers 1d943b09 * internal/lsp/cache: consolidate snapshot cloning 4981f6b3 * internal/gopathwalk/walk: add missing function descriptions and renaming 99b39703 * benchmark/parse: add unit test for String function bcb65d52 * internal/lsp: fix find-implementation for promoted methods a6aac22f * go/analysis: gofmt snippets in package documentation 53d48bfc * internal/lsp, internal/tool: clean up command line of gopls a0e659d5 * internal/lsp: remove useless signature cast completion candidate 49a3e744 * internal/lsp: skip return highlighting if cursor is in arglist of func 04c2e8ef * internal/lsp: create parseModHandle for storing go.mod data 56463cc1 * internal/lsp: add diagnostic on import causing import cycle 7ebc6af0 * internal/lsp/source: fix error message for multiple GOPATHs 74e303f8 * internal/lsp/tests: add error handling for @item() 27b81bef * go/packages: correct logging of driver stderr 7093a17b * internal/lsp: offer basic type conversion candidates 0f69de23 * internal/lsp: improve link in documentation on hover cfcbc779 * go/packages: disable -mod=readonly behavior in overlays 8facea2e * internal/lsp: downrank "nil" completion candidate 825cb062 * internal/lsp: don't resend diagnostics if they are unchanged 56eb7d2c * internal/lsp: move DidModifyFile into internal/lsp/cache 4403f798 * internal/lsp: fix find-references to search from all package variants dfebd280 * internal/lsp: add handling for go.mod files in internal/lsp functions ad473c03 * internal/lsp: invalidate metadata and type info more selectively 4da4485a * internal/lsp/source: fix all types in resolveInvalid ec14b296 * internal/lsp: invalidate workspace packages when go.mod file changes ac2db28e * internal/lsp: check all package variants in find-implementations a27fdba2 * internal/lsp: fix circular import errors to account for import stack 37853707 * go/packages: add import stack to error messages when there's an import cycle 0d087302 * internal/lsp: don't invalidate dependents' metadata 912f50ad * internal/lsp: add comment completions for exported vars 98df1237 * internal/lsp: suggest "fallthrough" only inside switches fe93f4a7 * internal/lsp: Make Text in DidSave at *string rather than a string 1bcf67c9 * internal/lsp: make Text in DidSave request a pointer 0bd90eac * internal/lsp/cache: invalidate metadata even without Create 22774f7d * internal/lsp: fix control flow highlighting taking precedence 115af5e8 * internal/lsp: trim down implementations code 9a30a9a9 * internal/lsp: tweak implementation tests 259af5ff * internal/lsp: fix error suppression in (*session).createView bc369361 * internal/lsp/source: optimize computeFixEdits 6d582d50 * internal/lsp/source: cap number of unimported completions 330b9f13 * internal/lsp: respect References.IncludeDeclaration setting 786dcba0 * internal/lsp: add error handling for self imports cec95805 * internal/lsp: fix concurrent map write in file invalidation db903f39 * internal/lsp: propagate and handle context cancellation errors 3393d29b * internal/lsp/cache: clean up dead code after CL 209737 7b8c8591 * internal/lsp: fix golden generation for import tests addffd16 * internal/lsp: expose godoc or pkg.go.dev link on hover 69111344 * internal/memoize: fix race on read of handle.function 61fa4dff * go/packages: remove obsolete comment about LoadMode in doc.go e140590b * internal/lsp: refactor and clean up text synchronization d1f10d1c * internal/lsp: return snapshot when creating a view a5887330 * internal/lsp: fix AST bookkeeping as we repair nodes 73c7173a * internal/lsp/cmd: use x/tools/gopls as the gopls bug prefix e84277c2 * internal/lsp: propagate errors through source.DocumentSymbols 7a2a8a04 * internal/lsp: run packages.Load only if imports are added or changed ac417207 * go/packages: revert "handle invalid files in overlays" 427c522c * internal/lsp: always ParseFull in-workspace dependencies d79e56da * go/analysis/internal/checker: format files modified by -fix 0d967eff * internal/lsp/source: extract helper, improve error messages 660eba4d * internal/lsp/cache: fix load race, refactor 9611592c * gopls/integration: remove commented-out debug code b1451cf3 * gopls/integration: add the replay command to replay LSP logs c197fd4b * internal/links: improve links parser, no protocol specification db047d72 * playground/socket: handle multi-file present play snippets 8db96347 * internal/lsp: improve completion after accidental keywords 5ae4576c * internal/lsp: add nil check for control flow highlighting 2b6af5f9 * internal/imports: make ApplyFixes work despite syntax errors 5a103c92 * internal/lsp: add control flow highlighting for functions aa29eadb * internal/lsp/protocol: replace code for generating LSP types and stubs 713d4893 * internal/lsp: suppress all errors when a view is loaded and checked ffc413ea * internal/lsp: rename CheckPackageHandle to PackageHandle a51b8faf * internal/lsp: link to the new pkg.go.dev instead of godoc.org 6e064ea0 * internal/lsp: make sure CodeAction.Command is a pointer ecd32218 * lsp/protocol: make sure RenameProvider is an interface{} c1736c0f * internal/telemetry: lift the tests up to the request level 99399511 * gopls/doc: add documentation for gopls with Atom 724660f1 * internal/telemtry: changed to a simpler threading model for stats 7360bd5c * internal/lsp: build the wire.Node lazily 9fe613bd * internal/lsp: add some minimal validation for client capabilities 69a79c76 * internal/lsp: fixes premature return in find implementations e13f15d1 * internal/lsp: remove duplicate implementations when finding implementations af857703 * tools/gopls: add cmd support for highlight 20805546 * cmd/gopls/integration: remove old VS Code extension for debugging b832835c * internal/telemetry: delay the conversion of metrics fc82735a * godoc/static: re-add "or" function call to package.html template b0650ceb * internal/lsp: don't run analyses on the entire view 73cd2cc3 * internal/lsp/source: fix crash on short file 9f1eb440 * internal/lsp/tests: skip cgo tests when not supported efa86633 * internal/lsp: do not return interface itself when finding implementations 73db347c * internal/lsp/source: give more imports names 66af5afb * tools/gopls: add cmd support for implementation 59b2cd78 * internal/lsp: fix return variables for FindPosInPackage b99b2d09 * internal/lsp: set version correctly after textDocument/didOpen d7101b74 * internal/lsp: add tests for cgo package users 05c67e95 * internal/lsp: track and parse non-compiled go files ef6787d3 * internal/span: support line directives 761dbfd6 * internal/lsp: add documentation for package-level vars acc15743 * internal/lsp: fix literal completions in variadic params a99e43fc * internal/lsp: only search for references in reverse dependencies a911d900 * internal/telemetry: make the metrics tests external 89d49d94 * internal/lsp: use AST to construct placeholders cc15fab3 * internal/telemetry: merge the metrics tests f5828fc9 * internal/telemetry: compare the compact JSON 2a6ccf25 * internal/lsp: handle first change behavior on the server side c02aa52d * internal/lsp/cache: disable analysis on dependencies (temporarily) 2189885d * internal/lsp: improve completion ordering workaround 035a8167 * internal/lsp: fix a race in the command line tests 0ae87fff * internal/telemetry/export/ocagent: update usages of BucketOptions to use pointers f774e2e2 * internal/telemetry/export/ocagent: add tutorial for exporting metrics df8e87c2 * internal/telemetry/export/ocagent: correctly JSON marshal BucketOptionsExplicit 2d3bb8ce * internal/lsp: use snapshot to get reverse dependencies f191eec9 * internal/lsp: delete the source.Diagnostic.File field 004141db * cmd/godoc: delete unused autocert hooks f51c1a7c * internal/lsp: add control flow highlighting inside for loops 66c5a5ad * cmd/godoc: don't execute go list -m all when GOMOD is /dev/null 91381dc0 * internal/lsp: use version numbers in diagnostic messages eaeb3832 * internal/lsp: don't clear diagnostics on file close cb050682 * internal/telemetry/export/ocagent: correctly marshal points to JSON 96ad48e4 * internal/lsp: fix diagnostics on didChange 82924fac * internal/lsp: make the ocagent test external 947d4aa8 * internal/telemetry: delay the conversion to wire format 9c44060b * internal/lsp: reorganize and refactor code 35ba81b9 * internal/lsp: rename Files to CompiledGoFiles 8fd45951 * internal: avoid use of (*token.File).Name 328c41bf * internal/lsp: fix and re-enable godef tests 4bf2f406 * txtar/archive: add unit test function for Format 17847a84 * cmd/godoc, godoc/static: remove remnants of golang.org website 688c506a * internal/lsp: make Range a pointer in Change events cefbc64f * internal/lsp: improve highlighting functionality for fields and methods 0a33398b * cmd/digraph: omit unnecessary empty lines in focus b3340bdf * cmd/digraph: add focus e97fc272 * internal/lsp: run diagnostics on the entire workspace ad01d599 * internal/lsp: handle breakage caused by CL 207598 7f7817c0 * txtar: promote from internal 298f0cb1 * internal/lsp: only construct a cache when we need to caaa49c6 * go/analysis/passes/lostcancel: fix typo 4054736f * all: fix typo ("identifer" → "identifier") dc59f20e * internal/lsp/cmd: don't create .orig files for rename by default 6d480e29 * internal/lsp: fix the return type of CodeAction() 11e13f1c * internal/lsp: fix infinite recursion in CancelRequest 07fc4c7f * go/packages: add String methods for LoadMode 3d1ebf6f * internal/lsp/protocol: fix type of WorkspaceEdit.Changes in tsprotocol.go 13f8be5f * go/analysis/passes: ensure diagnostic-reporting analyses have exported Doc 1ef994f2 * internal/lsp: don't search other packages for unexported references faf0e61b * internal/lsp: reorganize the generated Go code for the lsp protocol 5091d647 * internal/lsp: fix variadic interface completion ranking 5a76f03b * internal/lsp: fix panic in bestView 80313e1b * internal/lsp: fix panic when logging errors in snapshot.KnownPackages 3a792d9c * cmd/godoc: don't execute go mod download when GOMOD is /dev/null 1c71899d * internal/lsp/testadata/rename: add a test case for renames across packages 4191b8cb * internal/lsp: ignore AST errors when generating import edits 634482ed * internal/lsp/source: add support for references in the same workspace caa0b0f7 * internal/lsp: use import path literal for documentLink range a764947c * internal/lsp/cache: add finer-grained control of file changes faa69481 * cmd/benchcmp: add unit test for formatNs function bd32a3e7 * internal/lsp: use the versions provided by the client e2727e81

view details

Paul Jolly

commit sha 63ce556bb69e0dac0cf59bf24957fe5d2c6c882e

cmd/govim: put install scripts tests behind env var (#632) Currently we skip long-running tests when running go test with -short. This is standard practice. But as part of efforts to add the govim test suite to the gopls integration tests: https://go-review.googlesource.com/c/tools/+/212018 we now need to distinguish between all long running tests and those long running tests that are install/network related. Hence we now only run install script tests when GOVIM_RUN_INSTALL_TESTSCRIPTS=true. Fixes #631

view details

Pontus Leitzler

commit sha 9074258f2c88a53483776c65a2090fb8343a241b

testdriver: limit listening to local interface (#636) Running the tests in macOS will bring up a dialog from the firewall prompting to allow an unsigned process to listen to network connections. Using local loopback interface instead will please the firewall and no dialog shows.

view details

Paul Jolly

commit sha d5a3cdeb11bce94d091c498ac17b3205979a48dc

ci: add go1.14beta1 and Vim v8.2.0025 to the build matrix (#635) Use Vim v8.2.0025 as the latest Vim version in the build matrix.

view details

Pontus Leitzler

commit sha 93fa47f0efdf28ea6b948bf241774acbd029d604

cmd/govim: highlight diagnostics (#579) Currently diagnostics as errors and warnings are only placed in the quickfix buffer, with a sign in the file buffer gutter next to the affected line. This change also adds in-code text property highlighting to the entire range affected by the diagnostic. It is combined with existing syntax highlight. Diagnostic highlighting can be disabled by setting the config HighlightDiagnostics to 0 (i.e false). Note that this is a breaking change if you have overridden any of the default govim highlight rules to, for example, change the color of error signs. Update your overrides according to the new highlight names. Override the following highlights in your .vimrc to alter the appearance of text properties and signs. - GOVIMSignErr, GOVIMSignWarn, GOVIMSignInfo & GOVIMSignHint - GOVIMErr, GOVIMWarn, GOVIMInfo & GOVIMHint

view details

Caleb Spare

commit sha 9ba598284b1f756ac6b580f2e675002ebe42c221

Detect go.mod as a 'gomod' filetype; add syntax I reused the go.mod syntax file from vim-go.

view details

push time in a month

create barnchcespare/intelbacklight

branch : master

created branch time in a month

created repositorycespare/intelbacklight

An alternative for xbacklight that works with intel graphics

created time in a month

push eventcespare/dotfiles

Caleb Spare

commit sha 2a209ea03cd373caf879d17566c69bf671f48d01

Add notes about laptop backlight dimming

view details

push time in a month

issue commentgolang/go

encoding/json: the Decoder.Decode API lends itself to misuse

Or a Decoder option to mark it as being single-object only.

That way fixing existing instances of this problem (of which there are many, including all over my own code) involves just adding a line, instead of refactoring.

I like how concise using a decoder often is:

if err := json.NewDecoder(r).Decode(&t); err != nil {

It would be nice if the fix didn't require breaking up the line. I like how @dsnet's UnmarshalReader suggestion offers something similarly concise:

if err := json.UnmarshalReader(r, &t); err != nil {

We could also use an alternative Decode method:

if err := json.NewDecoder(r).DecodeOne(&t); err != nil {
dsnet

comment created time in a month

push eventcespare/vim-config

Caleb Spare

commit sha 3894197414dfad149424147774c87bc3718347d6

Update govim

view details

push time in a month

push eventcespare/govim

Paul Jolly

commit sha 393cb5a4d686ee3e9a0ef7fe086e7e61011cec47

testdriver: expose max errlogmatch wait time (#621) Currently we have a default errlogmatch wait time of 30s which can be overridden by the environment variable GOVIM_ERRLOGMATCH_WAIT. But this value is internal to the testdriver package. In test cases in subsequent PRs we need to assert that we do not receive a notification from gopls. This obviously means we cannot use errlogmatch to wait for a notification. Instead we need to wait for an indeterminate period of time and then assert we did not receive a notification in that time. We might as well therefore wait for the default length of time that errlogmatch waits when looking for a match. Hence we expose DefaultErrLogMatchWait from testdriver and expose it as an environment variable DEFAULT_ERRLOGMATCH_WAIT in all scripts so that they can simply: sleep $DEFAULT_ERRLOGMATCH_WAIT and then use errlogmatch with a count or similar.

view details

Paul Jolly

commit sha b900be6f0c68915960937f867d05df46ceba2432

testdriver: fix flakely parsing of version from vim --version output (#624) With the release of Vim 8.2 we uncovered a bug in the parsing of version details from the output of vim --version. Fix that bug and add a comment explaining why we're not doing version stuff in a better way to start with.

view details

Paul Jolly

commit sha e0fe19982251a4e98020534b947ff07283ca64a7

cmd/govim: use visual positions for diagnostics (#567) When displaying diagnostics, the position must be visible to the user within Vim. Some diagnostics have start/end positions that are beyond the visible content, i.e. they are after the final \n. The user, however will not be able to see/understand such a position. So we adjust such positions to be before the final \n.

view details

Paul Jolly

commit sha 98f3216642ae296f184744840aad03ca6749c0e9

deps: switch to github.com/creack/pty (#625) Per the deprecation policy for github.com/kr/pty: > This package is deprecated. Existing clients will continue to work, but no further updates will happen here. New clients should use github.com/creack/pty directly. we are switching to github.com/creack/pty. Closes #623

view details

Paul Jolly

commit sha 6240503437491a2fbb797cd65066f27128acab77

ci: run goimports on our code and ensure it remains well formatted (#628)

view details

Paul Jolly

commit sha db9402927701ea892d5cb59deb3249ca86d0d330

cmd/govim: fix scripts-with-gopls-from-path tests (#627) In 202597017 we refactored the structure of the cmd/govim testscript tests. But in that commit we failed to refactor the tests for scripts-with-gopls-from-path.

view details

Caleb Spare

commit sha 3ab07fb07cbffeccab20a5fe1fab4b3903a4a241

Detect go.mod as a 'gomod' filetype; add syntax I reused the go.mod syntax file from vim-go.

view details

push time in a month

pull request commentgovim/govim

Detect go.mod as a 'gomod' filetype; add syntax

Sure, I can write an indent file. I agree it would be nice to have. Looks like vim-go doesn't have one, though.

cespare

comment created time in a month

pull request commentcespare/ryu

Add non-scientific serialization for float64

Sorry, but it's hard for me to make time to review this since it's fairly low priority. (See my note about adding features in the README.)

This is useful in JSON serialization for example where correct handling of scientific format cannot be assumed.

Can you explain more about this? JSON includes scientific notation.

Seems like the effort to get parts of it into the stdlib has stalled a bit unfortunately.

I handed off the effort to Rémy Oudompheng earlier this year. However, there has been recent activity and I'm hopeful that it will be merged in time for Go 1.15. Follow https://golang.org/cl/170078 if you're interested.

tobgu

comment created time in a month

Pull request review commentcespare/reflex

Use default config file if exists

 with the filename of the changed file. (The symbol may be changed with the OPTIONS are given below:       --all=false:             Include normally ignored files (VCS and editor special files).-  -c, --config="":+  -c, --config="reflex.conf":

This isn't the output of running reflex -h, is it?

You should update the -c documentation string to mention reflex.conf, particularly because it's not a normal flag default value.

zrhmn

comment created time in a month

issue closedcespare/vim-toml

File type not set to TOML if the file being edited contains a comment at the start

If the TOML file (with extension .toml) contains a comment at the start of the file, Vim sets the filetype to conf. The conf filetype is set in Vim's filetype.vim file. While the ftdetect/toml.vim file is executed after, setf will not overwrite the filetype which Vim has already set.

This was introduced in commit d257faaa32ffee1794038f2342ba315760c33fc2 A possible fix is to use setlocal filetype=toml rather than setf in the au command in ftdetect/toml.vim. That is, revert the aforementioned commit.

closed time in a month

jase413

issue commentcespare/vim-toml

File type not set to TOML if the file being edited contains a comment at the start

I'm closing this for now, but please leave a comment if you still think this is a problem to be fixed in vim-toml and you have steps to reproduce.

jase413

comment created time in a month

push eventcespare/dotfiles

Caleb Spare

commit sha 28600fa5a258ef744e1ebeb4b75d3c9cd4ccad26

Clean up PATH a little

view details

push time in a month

create barnchcespare/wherefrom

branch : master

created branch time in a month

created repositorycespare/wherefrom

Like `which`, but prints all the matching executables in $PATH

created time in a month

push eventcespare/vim-config

Caleb Spare

commit sha c1b4076c7f04698db724664ebe85bcf9278b1521

Update toml

view details

Caleb Spare

commit sha 36fb07b4e1f704418470d83c7fce95d93dbce316

Switch+update rust plugins

view details

Caleb Spare

commit sha 68cf0f9aa00b72891e5b92721f98d1a93b8676dd

Use my fork of govim with go.mod syntax

view details

Caleb Spare

commit sha dece8864326cb345f52709129f6b8cc35f81e305

Apply indent settings to go.mod files

view details

push time in 2 months

PR opened govim/govim

Detect go.mod as a 'gomod' filetype; add syntax

I reused the go.mod syntax file from vim-go.

+129 -0

0 comment

2 changed files

pr created time in 2 months

push eventcespare/govim

Caleb Spare

commit sha e54d64b10a5fa1df1bdbfd597e0a45dc2e5d8767

Detect go.mod as a 'gomod' filetype; add syntax I reused the go.mod syntax file from vim-go.

view details

push time in 2 months

create barnchcespare/govim

branch : gomod-syntax

created branch time in 2 months

fork cespare/govim

govim is a Go development plugin for Vim8, written in Go

fork in 2 months

issue commentcespare/vim-toml

File type not set to TOML if the file being edited contains a comment at the start

Hi @jase413, thanks for the report.

I'm unable to reproduce the issue you describe. For example, if I load this file (named x.toml):

# hello
a = "b"

it loads with filetype toml using Vim 8.1.2389.

Moreover, I re-read the documentation and it seems to me that using setfiletype is the better behavior here. If the user has already set a filetype (and presumably loaded syntax, etc) for the type in question, my plugin shouldn't second-guess that. And when I look at some other language plugins I use, I see them using setfiletype too.


While looking into this, I developed a hypothesis about what you might be seeing. This is wild speculation so maybe this is all wrong.

Is it possible you're using the rust.vim plugin and that you're editing a file named Cargo.toml?

I saw that rust.vim used to set filetype=cfg for its Cargo.toml file. (This is supposed to give a slightly better syntax than whatever vim's default if the user doesn't have any special toml handling.) In March rust.vim fixed their ftdetect to use the setf FALLBACK mechanism for this purpose.

jase413

comment created time in 2 months

push eventcespare/dotfiles

Caleb Spare

commit sha 50ee4be3198a53898cc075f5290bd7b926a366cf

A few updates after a system reinstall

view details

push time in 2 months

issue commenttpope/vim-fugitive

Unwanted tree traversal when opening files

Sure, I get that it's too late to fix now.

cespare

comment created time in 2 months

issue commenttpope/vim-fugitive

Unwanted tree traversal when opening files

Oh neat, TIL about GIT_CEILING_DIRECTORIES. Thanks.

It would be extremely unreasonable to re-architect Fugitive because a fake filesystem gives a GUI error when a stat(2) call returns ENOENT.

(EACCES.)

I'm not suggesting that fugitive should change its behavior specifically for keybase.

Keybase made me aware of the fact that fugitive resolves a git dir every I open a file, even though 99.99% of the time I won't be using fugitive functions. I was surprised that fugitive does this and it seems undesirable. That's why I titled this issue "Unwanted tree traversal when opening files", not "Make fugitive avoid keybase permission warnings".

cespare

comment created time in 2 months

push eventcespare/vim-config

Caleb Spare

commit sha bb1411b1eaef29f4251c703dd0fb0e44576568d6

Update fugitive

view details

Caleb Spare

commit sha 782af0b42a307ef12e3dfc034da4c7996df83db1

Update govim

view details

push time in 2 months

issue openedtpope/vim-fugitive

Unwanted tree traversal when opening files

Hi! Thanks for the great plugin.

Recently I started using the keybase filesystem to store a few text files. When I open such a file in vim with the fugitive plugin installed, I get a keybase error warning about my attempted access of file that I don't have permission to read.

To be specific, if I edit a file

/keybase/private/cespare/x.txt

I get the following warning from keybase:

cespare does not have read access to /keybase/private/head

When I use strace, I can see a typical normal git tree traversal looking for the root directory:

stat("/run/user/1000/keybase/kbfs/private/cespare/HEAD", 0x7fff36ad77c0) = -1 ENOENT (No such file or directory)
lstat("/run/user/1000/keybase/kbfs/private/.git", 0x7fff36ad8b70) = -1 ENOENT (No such file or directory)
stat("/run/user/1000/keybase/kbfs/private/HEAD", 0x7fff36ad77c0) = -1 EACCES (Permission denied)
lstat("/run/user/1000/keybase/kbfs/.git", 0x7fff36ad8b70) = -1 ENOENT (No such file or directory)
stat("/run/user/1000/keybase/kbfs/HEAD", 0x7fff36ad77c0) = -1 ENOENT (No such file or directory)
lstat("/run/user/1000/keybase/.git", 0x7fff36ad8b70) = -1 ENOENT (No such file or directory)
stat("/run/user/1000/keybase/HEAD", 0x7fff36ad77c0) = -1 ENOENT (No such file or directory)
lstat("/run/user/1000/.git", 0x7fff36ad8b70) = -1 ENOENT (No such file or directory)
stat("/run/user/1000/HEAD", 0x7fff36ad77c0) = -1 ENOENT (No such file or directory)
lstat("/run/user/.git", 0x7fff36ad8b70) = -1 ENOENT (No such file or directory)
stat("/run/user/HEAD", 0x7fff36ad77c0)  = -1 ENOENT (No such file or directory)
lstat("/run/.git", 0x7fff36ad8b70)      = -1 ENOENT (No such file or directory)
stat("/run/HEAD", 0x7fff36ad77c0)       = -1 ENOENT (No such file or directory)
lstat("/.git", 0x7fff36ad8b70)          = -1 ENOENT (No such file or directory)
stat("/HEAD", 0x7fff36ad77c0)           = -1 ENOENT (No such file or directory)

The problem is the stat of /run/user/1000/keybase/kbfs/private/HEAD which is someone else's private directory in the kbfs model.

Investigating a little, I found that one way to disable this warning is to comment out this BufNewFile autocmd: https://github.com/tpope/vim-fugitive/blob/b48a572475488572b738bf9c49726d63f7fa5e34/plugin/fugitive.vim#L310

Specifically, the tree walking happens during FugitiveExtractGitDir.

To me, it doesn't seem ideal to go looking for a git directory each time I open a file. Would it be reasonable to lazily initialize this data when actually performing a fugitive operation? (I'm probably missing something.)

For now, my workaround was to git init an empty repo inside /keybase/private/cespare.

created time in 2 months

issue commentgolang/go

proposal: testing: add TB.TempDir() string

I wrote some tempdir helpers that we use for a lot of tests at work. A trick I used (which I took from @tv42) is to detect whether the test is being run under go test and, if it is, locate the tempdir inside the go tool's own temp directory. (In this case the deferred td.Remove() does nothing.) Then if you want to inspect the tempdir, you use -work to print the directory and not delete it.

bradfitz

comment created time in 2 months

issue commentgolang/go

cmd/go: suppress warning messages about symlinks

So, could you move the go.mod file to the root of the Go source tree, instead of the repo root?

There is no single Go source tree. Everything's mixed. What I meant was only that no Go package directory or any descendent thereof contains symlinks.

|-go-project-1
|-go-project-2
|-non-go-project-1
| `-symlink
`-sub
  |-go-project-3
  |-non-go-project-2
  | `-symlink
  `-symlink
cespare

comment created time in 2 months

issue commentgolang/go

cmd/go: suppress warning messages about symlinks

If they're not appropriate for go mod, they're probably not appropriate for go list either. (And the converse: if they're useful for go list, then they're probably also useful for go mod.)

I explained above why I think it's reasonable to treat these differently, but if we have to treat them the same, then I'd err on the side of no spam.

Given that folks can already explicitly prune out subdirectories using go.mod files, I'm curious about the directory structure that leads to this sort of situation.

We have a large monorepo with projects in several languages. Before it was all a single GOPATH with vendored source. I'm converting it to be a single module instead.

Adding empty go.mod files to a bunch of project directories just to suppress this warning is probably a nonstarter.

Are the non-Go symlinks in sibling directories to the Go source files, or in subdirectories of Go package directories?

Currently, only sibling (or "cousin" or "cousin Nth removed") directories.

I didn't mind ignoring these warnings (or 2>/dev/null) when running go list in the GOPATH world. It just doesn't seem reasonable that I have to continue doing so with commands like go mod tidy, which is part of my normal workflow.

cespare

comment created time in 2 months

issue closedcespare/xxhash

cannot find package "github.com/cespare/xxhash/v2"

hi,

first. sorry for my english :)

I am relatively new to go programming. but I wanted to deal with it. I wanted to get the following code to work because I deal with go and go-ethereum.

But I always get the error below

Despite intensive google search and my meager english knowledge I could not find a solution. Unfortunately, I do not know anybody who knows about go.

Maybe you can help me

Many thanks

--Error- src\github.com\VictoriaMetrics\fastcache\bigcache.go:7:2: cannot find package "github.com/cespare/xxhash/v2" in any of: C:\Go\src\github.com\cespare\xxhash\v2 (from $GOROOT) C:\Users\go\src\github.com\cespare\xxhash\v2 (from $GOPATH) --Code-- `package main

import ( "context" "fmt" "log" "math" "math/big"

"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"

)

func main() { client, err := ethclient.Dial("https://mainnet.infura.io") if err != nil { log.Fatal(err) }

account := common.HexToAddress("0x71c7656ec7ab88b098defb751b7401b5f6d8976f")
balance, err := client.BalanceAt(context.Background(), account, nil)
if err != nil {
    log.Fatal(err)
}
fmt.Println(balance) // 25893180161173005034

blockNumber := big.NewInt(5532993)
balanceAt, err := client.BalanceAt(context.Background(), account, blockNumber)
if err != nil {
    log.Fatal(err)
}
fmt.Println(balanceAt) // 25729324269165216042

fbalance := new(big.Float)
fbalance.SetString(balanceAt.String())
ethValue := new(big.Float).Quo(fbalance, big.NewFloat(math.Pow10(18)))
fmt.Println(ethValue) // 25.729324269165216041

pendingBalance, err := client.PendingBalanceAt(context.Background(), account)
fmt.Println(pendingBalance) // 25729324269165216042

}`

closed time in 2 months

reneba

issue commentcespare/xxhash

cannot find package "github.com/cespare/xxhash/v2"

@reneba as @superfell said, you need to be using a recent enough version of Go that it has at least "minimal module compatibility". See the README. (You do not actually even need 1.11 -- 1.9.7+ and 1.10.3+ have the functionality backported.)

The key thing is that these versions of Go understand that when they are looking for /v2, they should find that in a v2 branch.

@Thiamath no, it is not "broken". See my explanation above.

In fact, I just confirmed that I can build all the packages in https://github.com/prometheus/client_golang using Go 1.9.7.

By the way, any Go project that wants to use my package is free to use the v1 module (github.com/cespare/xxhash). That will work even with ancient versions of Go. v1 works just fine (v2 just has some API improvements). The choice to use v2 is taken by projects that depend on my package, not by me.

reneba

comment created time in 2 months

push eventcespare/dotfiles

Caleb Spare

commit sha d470c48141e1d9acc54d7fded9b8dae661af53a8

Remove obsolete alacritty config

view details

push time in 2 months

more