aboutsummaryrefslogtreecommitdiff
path: root/nomsu_decompiler.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nomsu_decompiler.lua')
-rw-r--r--nomsu_decompiler.lua10
1 files changed, 10 insertions, 0 deletions
diff --git a/nomsu_decompiler.lua b/nomsu_decompiler.lua
index 164470f..f6552b8 100644
--- a/nomsu_decompiler.lua
+++ b/nomsu_decompiler.lua
@@ -566,6 +566,7 @@ tree_to_nomsu = function(tree)
return nomsu
end
local sep = ''
+ local prev_item, needs_space = nil, { }
for i, item in ipairs(tree) do
local item_nomsu
if item.type == 'MethodCall' then
@@ -591,7 +592,16 @@ tree_to_nomsu = function(tree)
end
end
nomsu:add(sep)
+ if sep == '\n' then
+ if tree[i - 1].type ~= "Comment" then
+ needs_space[i] = (item_nomsu:is_multiline() and prev_item:is_multiline())
+ if tree[i].type == "Comment" or needs_space[i] or needs_space[i - 1] then
+ nomsu:add("\n")
+ end
+ end
+ end
nomsu:add(item_nomsu)
+ prev_item = item_nomsu
if item_nomsu:is_multiline() or item.type == 'Comment' or item.type == "Block" or nomsu:trailing_line_len() + #tostring(item_nomsu) >= MAX_LINE then
sep = '\n'
else