config-lsp/doc-values/value-custom.go

34 lines
754 B
Go

package docvalues
import (
protocol "github.com/tliron/glsp/protocol_3_16"
)
type CustomValueContext interface {
GetIsContext() bool
}
type EmptyValueContext struct{}
func (EmptyValueContext) GetIsContext() bool {
return true
}
var EmptyValueContextInstance = EmptyValueContext{}
type CustomValue struct {
FetchValue func(context CustomValueContext) Value
}
func (v CustomValue) GetTypeDescription() []string {
return []string{"Custom"}
}
func (v CustomValue) CheckIsValid(value string) error {
return v.FetchValue(EmptyValueContextInstance).CheckIsValid(value)
}
func (v CustomValue) FetchCompletions(line string, cursor uint32) []protocol.CompletionItem {
return v.FetchValue(EmptyValueContextInstance).FetchCompletions(line, cursor)
}