From dbb6c96562cf6a379c2bf8d330a87bb906917667 Mon Sep 17 00:00:00 2001 From: April Arcus Date: Sun, 27 Feb 2022 22:13:32 -0800 Subject: [PATCH] replace_division: balance parens --- tasks/converter/less_conversion.rb | 36 ++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/tasks/converter/less_conversion.rb b/tasks/converter/less_conversion.rb index 61e2146b5..f28f4ee76 100644 --- a/tasks/converter/less_conversion.rb +++ b/tasks/converter/less_conversion.rb @@ -184,9 +184,41 @@ def wrap_at_groups_with_at_root(file) end def replace_division(less) - re = /(? + (?[[:alpha:]\.]+)? + \( + (?: + (?> + (? + [^()/]+ + | + \([^/]+\) + ) + \s+ + / + \s+ + (? + [^()/]+ + | + \([^/]+\) + ) + ) + | + \g + ) + \) + ) + }x return less if less !~ re - "@use \"sass:math\";\n" + less.gsub(re, 'math.div(\1, \2)') + "@use \"sass:math\";\n" + less.gsub(re) do + named_captures = $~.named_captures + callee = named_captures['callee'] + dividend = named_captures['dividend'] + divisor = named_captures['divisor'] + expression = "math.div(#{dividend}, #{divisor})" + callee.nil? ? expression : "#{callee}(#{expression})" + end end def sass_fn_exists(fn)