replace_division: balance parens
This commit is contained in:
parent
e2ecd0305a
commit
96917c6cb9
|
@ -184,9 +184,41 @@ class Converter
|
||||||
end
|
end
|
||||||
|
|
||||||
def replace_division(less)
|
def replace_division(less)
|
||||||
re = /(?<!\w)\(\s*([^(]+?)\s+\/\s+([^)]+?)\s*\)/
|
re = %r{
|
||||||
|
(?<expression>
|
||||||
|
(?<callee>[[:alpha:]\.]+)?
|
||||||
|
\(
|
||||||
|
(?:
|
||||||
|
(?>
|
||||||
|
(?<dividend>
|
||||||
|
[^()/]+
|
||||||
|
|
|
||||||
|
\([^/]+\)
|
||||||
|
)
|
||||||
|
\s+
|
||||||
|
/
|
||||||
|
\s+
|
||||||
|
(?<divisor>
|
||||||
|
[^()/]+
|
||||||
|
|
|
||||||
|
\([^/]+\)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
|
||||||
|
\g<expression>
|
||||||
|
)
|
||||||
|
\)
|
||||||
|
)
|
||||||
|
}x
|
||||||
return less if less !~ re
|
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
|
end
|
||||||
|
|
||||||
def sass_fn_exists(fn)
|
def sass_fn_exists(fn)
|
||||||
|
|
Loading…
Reference in New Issue