func (p Position) AfterOrEq(q Position) bool {
	return p.Line > q.Line || (p.Line == q.Line && p.Character >= q.Character)
}
AfterOrEq returns true if the Position is after or equal the give Position
package lsp
import (
	"encoding/json"
	"fmt"
)
type Position struct {
	Line int `json:"line"`
	Character int `json:"character"`
}
func (p Position) String() string {
	return fmt.Sprintf("%d:%d", p.Line, p.Character)
}
func (p Position) In(r Range) bool {
	return p.AfterOrEq(r.Start) && p.BeforeOrEq(r.End)
}
func (p Position) BeforeOrEq(q Position) bool {
	return p.Line < q.Line || (p.Line == q.Line && p.Character <= q.Character)
}