feat(doc-values): Check if value starts with a prefix before suggesting prefix completions

This commit is contained in:
Myzel394 2024-09-18 00:17:26 +02:00
parent 06182ddda7
commit 590786e844
No known key found for this signature in database
GPG Key ID: DEC4AAB876F73185

View File

@ -46,14 +46,26 @@ func (v PrefixWithMeaningValue) FetchCompletions(line string, cursor uint32) []p
textFormat := protocol.InsertTextFormatPlainText
kind := protocol.CompletionItemKindText
prefixCompletions := utils.Map(v.Prefixes, func(prefix Prefix) protocol.CompletionItem {
return protocol.CompletionItem{
Label: prefix.Prefix,
Detail: &prefix.Meaning,
InsertTextFormat: &textFormat,
Kind: &kind,
// Check if the line starts with a prefix
startsWithPrefix := false
for _, prefix := range v.Prefixes {
if strings.HasPrefix(line, prefix.Prefix) {
startsWithPrefix = true
break
}
})
}
var prefixCompletions []protocol.CompletionItem
if !startsWithPrefix {
prefixCompletions = utils.Map(v.Prefixes, func(prefix Prefix) protocol.CompletionItem {
return protocol.CompletionItem{
Label: prefix.Prefix,
Detail: &prefix.Meaning,
InsertTextFormat: &textFormat,
Kind: &kind,
}
})
}
return append(prefixCompletions, v.SubValue.FetchCompletions(line, cursor)...)
}