4using namespace llvm::json;
14 ObjectMapper O(Params, P);
17 && O.mapOptional(
"Name", R.
Name);
27 {
"Type", Params.
Type},
31 ObjectMapper O(Params, P);
36 && O.mapOptional(
"Example", R.
Example)
37 && O.mapOptional(
"Default", R.
Default)
38 && O.mapOptional(
"Type", R.
Type)
44 {
"Name", Params.
Name},
49 ObjectMapper O(Params, P);
52 && O.mapOptional(
"Name", R.
Name)
58 {
"Items", Params.
Items},
65 if (Params.getAsArray())
66 return llvm::json::fromJSON(Params, R.
Items, P);
68 ObjectMapper O(Params, P);
69 return O && O.map(
"Items", R.
Items) &&
75 {
"Name", Params.
Name},
76 {
"PName", Params.
PName},
87 ObjectMapper O(Params, P);
89 && O.map(
"Name", R.
Name)
90 && O.map(
"PName", R.
PName)
101 {
"Type", Params.
Type},
107 llvm::json::Path P) {
108 ObjectMapper O(Params, P);
110 && O.map(
"Type", R.
Type)
111 && O.mapOptional(
"Location", R.
Location)
117 {
"Meta", Params.
Meta},
124 llvm::json::Path P) {
125 ObjectMapper O(Params, P);
127 && O.map(
"Meta", R.
Meta)
129 && O.mapOptional(
"ValueDesc", R.
ValueDesc)
137 llvm::json::Path P) {
138 ObjectMapper O(Params, P);
140 && O.map(
"Scope", R.
Scope)
141 && O.map(
"Prefix", R.
Prefix)
147 {
"Items", Params.
Items},
154 if (Params.getAsArray())
155 return llvm::json::fromJSON(Params, R.
Items, P);
157 ObjectMapper O(Params, P);
158 return O && O.map(
"Items", R.
Items) &&
164 {
"arity", Params.
Arity},
166 {
"args", Params.
Args},
170 llvm::json::Path P) {
172 ObjectMapper O(Params, P);
174 && O.map(
"arity", R.
Arity)
175 && O.map(
"doc", R.
Doc)
176 && O.map(
"args", R.
Args);
Types used in nixpkgs provider.
bool fromJSON(const llvm::json::Value &Params, Configuration::Diagnostic &R, llvm::json::Path P)
llvm::json::Value toJSON(const PackageDescription &Params)
std::string Prefix
Search for packages prefixed with this "prefix".
std::vector< std::string > Items
std::optional< ValueDescription > ValueDesc
ValueMeta Meta
General value description.
PackageDescription PackageDesc
Package description of the attribute path, if available.
std::vector< OptionField > Items
std::vector< lspserver::Location > Definitions
std::optional< std::string > Description
std::optional< std::string > Example
std::optional< OptionType > Type
std::vector< lspserver::Location > Declarations
std::optional< std::string > Default
std::optional< OptionDescription > Description
std::optional< std::string > Description
std::optional< std::string > Name
std::optional< std::string > Name
std::optional< std::string > Version
std::optional< std::string > PName
std::optional< std::string > Description
std::optional< std::string > LongDescription
std::optional< std::string > Position
std::optional< std::string > Homepage
Using nix's ":doc" method to retrieve value's additional information.
std::vector< std::string > Args