ConstA whole number.
Separate from setting.number because "a page size of 12.5" is not
a page size, and number cannot say so — the manifest's "type": "integer"
makes the same distinction.
Widens a setting to accept null as well.
A setting that means "unset" is an ordinary VS Code pattern, and it is not
something the other builders can express: the manifest has to say
"type": ["integer", "null"] before the settings editor will accept a null
default, and a spec whose validate rejects null makes every lenient read
of an unset value fall back to the default instead.
The default carries over from inner unless default is given. Say
{ default: null } for the setting whose unset state is the default; omit
it for one that has a real default but tolerates being cleared.
An enumerated inner spec gains null at the front of its values, which is
where the manifest convention puts it — and enumDescriptions is positional,
so the description of "unset" goes first too.
Optionaloptions: { default?: T | null }A list of strings.
items constrains each entry. Without it a user can put an empty string in
a list of glob patterns and the extension will happily match everything —
the kind of value that is better rejected than defaulted around.
Patterns are tested as supplied; avoid stateful g or y flags.
Builders for common typed settings. They create definitions only and never read or write the workspace configuration.