From 9d6627aee52d764f14bab55fee202af84baf0065 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 19 Jul 2018 21:09:44 -0700 Subject: Hopefully last correctness fix for trailing_line_len(), now it's just dumb and slow, but correct. Also simplified recursion options a bit for tree_to_nomsu() --- code_obj.moon | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'code_obj.moon') diff --git a/code_obj.moon b/code_obj.moon index 35d1027..3d376bb 100644 --- a/code_obj.moon +++ b/code_obj.moon @@ -73,19 +73,7 @@ class Code trailing_line_len: => if @_trailing_line_len == nil - bits, match = @bits, string.match - len = 0 - for i=#bits,1,-1 - b = bits[i] - if type(b) == 'string' - if line = match(b, "\n([^\n]*)$") - len += #line - break - else len += #b - else - len += b\trailing_line_len! - break if b\is_multiline! - @_trailing_line_len = len + @_trailing_line_len = #tostring(@)\match("[^\n]*$") return @_trailing_line_len is_multiline: => @@ -93,7 +81,11 @@ class Code match = string.match @_is_multiline = false for b in *@bits - if type(b) != 'string' or match(b, "\n") + if type(b) == 'string' + if match(b, '\n') + @_is_multiline = true + break + elseif b\is_multiline! @_is_multiline = true break return @_is_multiline -- cgit v1.2.3