func NewEdit(startLine, startColumn, endLine, endColumn int, text string) Edit {
	return Edit{
		Start: Pos{Line: startLine, Column: startColumn},
		End:   Pos{Line: endLine, Column: endColumn},
		Text:  text,
	}
}
NewEdit creates an edit replacing all content between
(startLine, startColumn) and (endLine, endColumn) with text.
package fake
import (
	"fmt"
	"sort"
	"strings"
	"github.com/govim/govim/cmd/govim/internal/golang_org_x_tools/lsp/protocol"
)
type Pos struct {
	Line, Column int
}
func (p Pos) String() string {
	return fmt.Sprintf("%v:%v", p.Line, p.Column)
}
type Range struct {
	Start Pos
	End   Pos
}
func (p Pos) ToProtocolPosition() protocol.Position {
	return protocol.Position{
		Line:      uint32(p.Line),
		Character: uint32(p.Column),
	}
}
func fromProtocolPosition(pos protocol.Position) Pos {
	return Pos{
		Line:   int(pos.Line),
		Column: int(pos.Character),
	}
}
type Edit struct {
	Start, End Pos
	Text       string
}
type Location struct {
	Path  string
	Range Range
}
type SymbolInformation struct {
	Name     string
	Kind     protocol.SymbolKind
	Location Location
}