Add single tick string interpolation (#581)

* Add single tick string interpolation

* give string interpolation its own highlighting
This commit is contained in:
JT
2021-12-26 07:50:02 +11:00
committed by GitHub
parent d603086d2f
commit ca6baf7a46
8 changed files with 99 additions and 35 deletions

View File

@ -33,6 +33,7 @@ pub enum Expr {
FullCellPath(Box<FullCellPath>),
ImportPattern(ImportPattern),
Signature(Box<Signature>),
StringInterpolation(Vec<Expression>),
Nothing,
Garbage,
}

View File

@ -160,6 +160,14 @@ impl Expression {
}
false
}
Expr::StringInterpolation(items) => {
for i in items {
if i.has_in_variable(working_set) {
return true;
}
}
false
}
Expr::Operator(_) => false,
Expr::Range(left, middle, right, ..) => {
if let Some(left) = &left {
@ -321,6 +329,11 @@ impl Expression {
}
Expr::Signature(_) => {}
Expr::String(_) => {}
Expr::StringInterpolation(items) => {
for i in items {
i.replace_in_variable(working_set, new_var_id)
}
}
Expr::RowCondition(block_id) | Expr::Subexpression(block_id) => {
let block = working_set.get_block(*block_id);