diff --git a/internal/lsp/cmd/cmd.go b/internal/lsp/cmd/cmd.go
index b054dcf..694f859 100644
--- a/internal/lsp/cmd/cmd.go
+++ b/internal/lsp/cmd/cmd.go
@@ -12,6 +12,7 @@
 	"flag"
 	"fmt"
 	"go/token"
+
 	"golang.org/x/tools/go/packages"
 	"golang.org/x/tools/internal/tool"
 )
diff --git a/internal/lsp/cmd/location.go b/internal/lsp/cmd/location.go
index 35e2580..29372b7 100644
--- a/internal/lsp/cmd/location.go
+++ b/internal/lsp/cmd/location.go
@@ -99,43 +99,43 @@
 	}
 	loc.Filename = m[posReFile]
 	if m[posReSLine] != "" {
-		if v, err := strconv.ParseInt(m[posReSLine], 10, 32); err != nil {
+		v, err := strconv.ParseInt(m[posReSLine], 10, 32)
+		if err != nil {
 			return loc, err
-		} else {
-			loc.Start.Line = int(v)
 		}
-		if v, err := strconv.ParseInt(m[posReSCol], 10, 32); err != nil {
+		loc.Start.Line = int(v)
+		v, err = strconv.ParseInt(m[posReSCol], 10, 32)
+		if err != nil {
 			return loc, err
-		} else {
-			loc.Start.Column = int(v)
 		}
+		loc.Start.Column = int(v)
 	} else {
-		if v, err := strconv.ParseInt(m[posReSOff], 10, 32); err != nil {
+		v, err := strconv.ParseInt(m[posReSOff], 10, 32)
+		if err != nil {
 			return loc, err
-		} else {
-			loc.Start.Offset = int(v)
 		}
+		loc.Start.Offset = int(v)
 	}
 	if m[posReEnd] == "" {
 		loc.End = loc.Start
 	} else {
 		if m[posReELine] != "" {
-			if v, err := strconv.ParseInt(m[posReELine], 10, 32); err != nil {
+			v, err := strconv.ParseInt(m[posReELine], 10, 32)
+			if err != nil {
 				return loc, err
-			} else {
-				loc.End.Line = int(v)
 			}
-			if v, err := strconv.ParseInt(m[posReECol], 10, 32); err != nil {
+			loc.End.Line = int(v)
+			v, err = strconv.ParseInt(m[posReECol], 10, 32)
+			if err != nil {
 				return loc, err
-			} else {
-				loc.End.Column = int(v)
 			}
+			loc.End.Column = int(v)
 		} else {
-			if v, err := strconv.ParseInt(m[posReEOff], 10, 32); err != nil {
+			v, err := strconv.ParseInt(m[posReEOff], 10, 32)
+			if err != nil {
 				return loc, err
-			} else {
-				loc.End.Offset = int(v)
 			}
+			loc.End.Offset = int(v)
 		}
 	}
 	return loc, nil
diff --git a/internal/lsp/cmd/query.go b/internal/lsp/cmd/query.go
index 3d0bf30..5ab520f 100644
--- a/internal/lsp/cmd/query.go
+++ b/internal/lsp/cmd/query.go
@@ -24,7 +24,7 @@
 // query implements the query command.
 type query struct {
 	JSON    bool   `flag:"json" help:"emit output in JSON format"`
-	Emulate string `flag:"emulate" help:"compatability mode, causes gopls to emulate another tool.\nvalues depend on the operation being performed"`
+	Emulate string `flag:"emulate" help:"compatibility mode, causes gopls to emulate another tool.\nvalues depend on the operation being performed"`
 
 	app *Application
 }
diff --git a/internal/lsp/cmd/server.go b/internal/lsp/cmd/server.go
index e205052..72993e6 100644
--- a/internal/lsp/cmd/server.go
+++ b/internal/lsp/cmd/server.go
@@ -101,7 +101,10 @@
 			msec := int(elapsed.Round(time.Millisecond) / time.Millisecond)
 			fmt.Fprintf(outx, " in %dms", msec)
 		}
-		params := string(*payload)
+		params := "null"
+		if payload != nil {
+			params = string(*payload)
+		}
 		if params == "null" {
 			params = "{}"
 		}
