forked from extern/nushell
Signature improves, sorted completions (#545)
This commit is contained in:
@ -623,7 +623,7 @@ pub fn eval_variable(
|
||||
Value::string(&signature.name, span),
|
||||
Value::string(req.name, span),
|
||||
Value::string("positional", span),
|
||||
Value::string(req.shape.to_type().to_string(), span),
|
||||
Value::string(req.shape.to_string(), span),
|
||||
Value::boolean(false, span),
|
||||
Value::nothing(span),
|
||||
Value::string(req.desc, span),
|
||||
@ -642,7 +642,7 @@ pub fn eval_variable(
|
||||
Value::string(&signature.name, span),
|
||||
Value::string(opt.name, span),
|
||||
Value::string("positional", span),
|
||||
Value::string(opt.shape.to_type().to_string(), span),
|
||||
Value::string(opt.shape.to_string(), span),
|
||||
Value::boolean(true, span),
|
||||
Value::nothing(span),
|
||||
Value::string(opt.desc, span),
|
||||
@ -657,42 +657,39 @@ pub fn eval_variable(
|
||||
|
||||
{
|
||||
// rest_positional
|
||||
let (name, shape, desc) = if let Some(rest) = signature.rest_positional {
|
||||
(
|
||||
if let Some(rest) = signature.rest_positional {
|
||||
let sig_vals = vec![
|
||||
Value::string(&signature.name, span),
|
||||
Value::string(rest.name, span),
|
||||
Value::string(rest.shape.to_type().to_string(), span),
|
||||
Value::string("rest", span),
|
||||
Value::string(rest.shape.to_string(), span),
|
||||
Value::boolean(true, span),
|
||||
Value::nothing(span),
|
||||
Value::string(rest.desc, span),
|
||||
)
|
||||
} else {
|
||||
(
|
||||
Value::nothing(span),
|
||||
Value::nothing(span),
|
||||
Value::nothing(span),
|
||||
)
|
||||
};
|
||||
];
|
||||
|
||||
let sig_vals = vec![
|
||||
Value::string(&signature.name, span),
|
||||
name,
|
||||
Value::string("rest", span),
|
||||
shape,
|
||||
Value::boolean(false, span),
|
||||
Value::nothing(span),
|
||||
desc,
|
||||
];
|
||||
|
||||
sig_records.push(Value::Record {
|
||||
cols: sig_cols.clone(),
|
||||
vals: sig_vals,
|
||||
span,
|
||||
});
|
||||
sig_records.push(Value::Record {
|
||||
cols: sig_cols.clone(),
|
||||
vals: sig_vals,
|
||||
span,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// named flags
|
||||
for named in signature.named {
|
||||
let flag_type;
|
||||
|
||||
// Skip the help flag
|
||||
if named.long == "help" {
|
||||
continue;
|
||||
}
|
||||
|
||||
let shape = if let Some(arg) = named.arg {
|
||||
Value::string(arg.to_type().to_string(), span)
|
||||
flag_type = Value::string("named", span);
|
||||
Value::string(arg.to_string(), span)
|
||||
} else {
|
||||
flag_type = Value::string("switch", span);
|
||||
Value::nothing(span)
|
||||
};
|
||||
|
||||
@ -705,7 +702,7 @@ pub fn eval_variable(
|
||||
let sig_vals = vec![
|
||||
Value::string(&signature.name, span),
|
||||
Value::string(named.long, span),
|
||||
Value::string("named", span),
|
||||
flag_type,
|
||||
shape,
|
||||
Value::boolean(!named.required, span),
|
||||
short_flag,
|
||||
|
Reference in New Issue
Block a user