forked from extern/nushell
Make $
on variable names optional (#6434)
* DRAFT: make var dollar optional * couple fixes * fix some tests + cleanup
This commit is contained in:
@ -74,6 +74,10 @@ pub fn is_math_expression_like(
|
||||
return true;
|
||||
}
|
||||
|
||||
if bytes == b"nu" {
|
||||
return false;
|
||||
}
|
||||
|
||||
let b = bytes[0];
|
||||
|
||||
if b == b'('
|
||||
@ -115,6 +119,11 @@ pub fn is_math_expression_like(
|
||||
return true;
|
||||
}
|
||||
|
||||
let parsed_variable = parse_variable(working_set, span);
|
||||
if parsed_variable.0.is_some() && parsed_variable.1.is_none() {
|
||||
return true;
|
||||
}
|
||||
|
||||
false
|
||||
}
|
||||
|
||||
@ -4008,6 +4017,23 @@ pub fn parse_value(
|
||||
return parse_variable_expr(working_set, span);
|
||||
}
|
||||
|
||||
let parsed_variable = parse_variable(working_set, span);
|
||||
if parsed_variable.0.is_some() && parsed_variable.1.is_none() {
|
||||
let var_id = parsed_variable
|
||||
.0
|
||||
.expect("internal error: already checked var id exists");
|
||||
return (
|
||||
Expression {
|
||||
expr: Expr::Var(var_id),
|
||||
span,
|
||||
custom_completion: None,
|
||||
ty: working_set.get_variable(var_id).ty.clone(),
|
||||
},
|
||||
None,
|
||||
);
|
||||
}
|
||||
let bytes = working_set.get_span_contents(span);
|
||||
|
||||
// Check for reserved keyword values
|
||||
match bytes {
|
||||
b"true" => {
|
||||
|
Reference in New Issue
Block a user