gopls/integration: save more precise parsing information

These are changes to treat errors more like responses. They are
important for the forthcoming log viewer.

Change-Id: Ief8de6ecea716673d4aee417de205842ceab4fc8
Reviewed-on: https://go-review.googlesource.com/c/tools/+/213124
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/gopls/integration/parse/parse.go b/gopls/integration/parse/parse.go
index 0200c42..5f52128 100644
--- a/gopls/integration/parse/parse.go
+++ b/gopls/integration/parse/parse.go
@@ -89,7 +89,7 @@
 			}
 			msg.Body = v
 		case ReportErr:
-			msg.Body = msg.ID // cause?
+			msg.Body = msg.Rest // save cause
 		}
 		byid[msg.ID]++
 		msgs = append(msgs, msg)
@@ -152,6 +152,7 @@
 		msg.Method = both[:idx]
 		msg.ID = fixid(both[idx+1:])
 		msg.Rest = strings.Join(flds[6:], " ")
+		msg.Rest = `"` + msg.Rest + `"`
 	default:
 		return nil, fmt.Errorf("surprise, first=%q with %d flds", first, len(flds))
 	}
diff --git a/gopls/integration/parse/rlog.go b/gopls/integration/parse/rlog.go
index 58e752c..aebb1e2 100644
--- a/gopls/integration/parse/rlog.go
+++ b/gopls/integration/parse/rlog.go
@@ -70,6 +70,7 @@
 			ans.ServerNotifs = append(ans.ServerNotifs, l)
 		case ReportErr:
 			ans.ServerReply[l.ID] = l
+			l.Method = ans.ServerCall[l.ID].Method // Method not in log message
 		default:
 			log.Fatalf("eh? %s/%s (%s)", l.Type, l.Method, l.ID)
 		}