mirror of
https://github.com/Myzel394/config-lsp.git
synced 2025-06-18 23:15:26 +02:00
68 lines
1.6 KiB
Go
68 lines
1.6 KiB
Go
package fstab
|
|
|
|
import (
|
|
docvalues "config-lsp/doc-values"
|
|
"regexp"
|
|
)
|
|
|
|
var uuidField = docvalues.RegexValue{
|
|
Regex: *regexp.MustCompile(`[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}`),
|
|
}
|
|
var labelField = docvalues.RegexValue{
|
|
Regex: *regexp.MustCompile(`\S+`),
|
|
}
|
|
|
|
var specField = docvalues.OrValue{
|
|
Values: []docvalues.Value{
|
|
// docvalues.PathValue{
|
|
// RequiredType: docvalues.PathTypeFile & docvalues.PathTypeExistenceOptional,
|
|
// },
|
|
docvalues.KeyValueAssignmentValue{
|
|
Separator: "=",
|
|
ValueIsOptional: false,
|
|
Key: docvalues.EnumValue{
|
|
EnforceValues: true,
|
|
Values: []docvalues.EnumString{
|
|
docvalues.CreateEnumString("UUID"),
|
|
docvalues.CreateEnumString("LABEL"),
|
|
docvalues.CreateEnumString("PARTUUID"),
|
|
docvalues.CreateEnumString("PARTLABEL"),
|
|
},
|
|
},
|
|
Value: docvalues.CustomValue{
|
|
FetchValue: func(rawContext docvalues.CustomValueContext) docvalues.Value {
|
|
context := rawContext.(docvalues.KeyValueAssignmentContext)
|
|
|
|
switch context.SelectedKey {
|
|
case "UUID":
|
|
case "PARTUUID":
|
|
return uuidField
|
|
case "LABEL":
|
|
case "PARTLABEL":
|
|
return labelField
|
|
}
|
|
|
|
return docvalues.StringValue{}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
var mountPointField = docvalues.OrValue{
|
|
Values: []docvalues.Value{
|
|
docvalues.EnumValue{
|
|
Values: []docvalues.EnumString{
|
|
{
|
|
InsertText: "none",
|
|
DescriptionText: "none",
|
|
Documentation: "Specify that the filesystem should be treated as swap space",
|
|
},
|
|
},
|
|
},
|
|
docvalues.RegexValue{
|
|
Regex: *regexp.MustCompile(`\S+`),
|
|
},
|
|
},
|
|
}
|