2024-10-13 20:14:57 +02:00

89 lines
1.9 KiB
Go

package fields
import (
docvalues "config-lsp/doc-values"
"config-lsp/utils"
)
var BooleanField = docvalues.EnumValue{
EnforceValues: true,
Values: []docvalues.EnumString{
docvalues.CreateEnumString("yes"),
docvalues.CreateEnumString("on"),
docvalues.CreateEnumString("true"),
docvalues.CreateEnumString("1"),
docvalues.CreateEnumString("no"),
docvalues.CreateEnumString("off"),
docvalues.CreateEnumString("false"),
docvalues.CreateEnumString("0"),
},
}
var ColorField = docvalues.ArrayValue{
DuplicatesExtractor: &docvalues.SimpleDuplicatesExtractor,
Separator: " ",
SubValue: docvalues.OrValue{
Values: []docvalues.DeprecatedValue{
docvalues.NumberRangeValue(0, 255),
docvalues.HexColorValue{Allow12Bit: true},
docvalues.EnumValue{
EnforceValues: true,
Values: utils.MergeSlices(
fetchColors(),
fetchAttributes(),
[]docvalues.EnumString{
docvalues.CreateEnumString("normal"),
docvalues.CreateEnumString("default"),
docvalues.CreateEnumString("reset"),
},
),
},
},
},
}
func fetchColors() []docvalues.EnumString {
colors := []string{
"black",
"red",
"green",
"yellow",
"blue",
"magenta",
"cyan",
"white",
}
enums := make([]docvalues.EnumString, 0)
for _, color := range colors {
enums = append(enums, docvalues.CreateEnumString(color))
enums = append(enums, docvalues.CreateEnumString("bright"+color))
}
return enums
}
func fetchAttributes() []docvalues.EnumString {
attributes := []string{
"bold",
"dim",
"ul",
"blink",
"reverse",
"italic",
"strike",
}
enums := make([]docvalues.EnumString, 0)
for _, attribute := range attributes {
enums = append(enums, docvalues.CreateEnumString(attribute))
enums = append(enums, docvalues.CreateEnumString("no"+attribute))
enums = append(enums, docvalues.CreateEnumString("no-"+attribute))
}
return enums
}