From 2afab887a901f8428066744b51f821252cdc7e5f Mon Sep 17 00:00:00 2001 From: mpeterv Date: Mon, 17 Feb 2014 15:08:24 +0400 Subject: [PATCH] Improved help message formatting: * Do not hardcode formatting constants * Add margin for multiline descriptions --- src/argparse.lua | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/argparse.lua b/src/argparse.lua index d0a0ed6..3fbf314 100644 --- a/src/argparse.lua +++ b/src/argparse.lua @@ -335,15 +335,28 @@ function Parser:get_usage() return self._usage end +local margin_len = 3 +local margin_len2 = 25 +local margin = (" "):rep(margin_len) +local margin2 = (" "):rep(margin_len2) + local function make_two_columns(s1, s2) if s2 == "" then - return " " .. s1 + return margin .. s1 end - if #s1 < 22 then - return " " .. s1 .. (" "):rep(22 - #s1) .. s2 + s2 = s2:gsub("[\r\n][\r\n]?", function(sub) + if #sub == 1 or sub == "\r\n" then + return "\r\n" .. margin2 + else + return "\r\n\r\n" .. margin2 + end + end) + + if #s1 < (margin_len2-margin_len) then + return margin .. s1 .. (" "):rep(margin_len2-margin_len-#s1) .. s2 else - return " " .. s1 .. "\r\n" .. (" "):rep(25) .. s2 + return margin .. s1 .. "\r\n" .. margin2 .. s2 end end