diff --git a/parsing/src/suggestions.rs b/parsing/src/suggestions.rs index e946918..94834aa 100644 --- a/parsing/src/suggestions.rs +++ b/parsing/src/suggestions.rs @@ -83,9 +83,9 @@ pub fn split_function_chars(chars: &[char], split: SplitType) -> Vec { } } - const fn is_variable(&self) -> bool { self.variable && !self.masked_var } + const fn is_unmasked_variable(&self) -> bool { self.variable && !self.masked_var } - const fn is_number(&self) -> bool { self.number && !self.masked_num } + const fn is_unmasked_number(&self) -> bool { self.number && !self.masked_num } const fn calculate_mask(&mut self, other: &BoolSlice) { if other.masked_num && self.number { @@ -94,7 +94,7 @@ pub fn split_function_chars(chars: &[char], split: SplitType) -> Vec { } else if other.masked_var && self.variable { // If previous char was a masked variable, and current char is a variable, mask current char's variable status self.masked_var = true; - } else if other.letter && !other.is_variable() { + } else if other.letter && !other.is_unmasked_variable() { // If letter and not a variable (or a masked variable) if self.number { // Mask number status if current char is number @@ -112,24 +112,26 @@ pub fn split_function_chars(chars: &[char], split: SplitType) -> Vec { } else if other.closing_parens { // Cases like `)x`, `)2`, and `)(` return (*c == '(') - | (self.letter && !self.is_variable()) - | self.is_variable() | self.is_number(); + | (self.letter && !self.is_unmasked_variable()) + | self.is_unmasked_variable() + | self.is_unmasked_number(); } else if *c == '(' { // Cases like `x(` and `2(` - return (other.is_variable() | other.is_number()) && !other.letter; - } else if other.is_number() { + return (other.is_unmasked_variable() | other.is_unmasked_number()) + && !other.letter; + } else if other.is_unmasked_number() { // Cases like `2x` and `2sin(x)` - return self.is_variable() | self.letter; - } else if self.is_variable() | self.letter { + return self.is_unmasked_variable() | self.letter; + } else if self.is_unmasked_variable() | self.letter { // Cases like `e2` and `xx` - return other.is_number() - | (other.is_variable() && self.is_variable()) - | other.is_variable(); - } else if (self.is_number() | self.letter | self.is_variable()) - && (other.is_number() | other.letter) + return other.is_unmasked_number() + | (other.is_unmasked_variable() && self.is_unmasked_variable()) + | other.is_unmasked_variable(); + } else if (self.is_unmasked_number() | self.letter | self.is_unmasked_variable()) + && (other.is_unmasked_number() | other.letter) { return true; - } else if self.is_number() && other.is_variable() { + } else if self.is_unmasked_number() && other.is_unmasked_variable() { // Cases like `x2` return true; } else {