diff options
author | ZyX <kp-pav@yandex.ru> | 2017-04-01 12:52:28 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-04-01 12:52:28 +0300 |
commit | 9dd0d4f8b9217f711fff32e9f47674e556a8fab0 (patch) | |
tree | 7a6fa451d674859d3c7aca308f443709446e56b3 /test/helpers.lua | |
parent | 046d6a8dfe8ef5b319fdd7139303d46b56b5daa6 (diff) | |
download | rneovim-9dd0d4f8b9217f711fff32e9f47674e556a8fab0.tar.gz rneovim-9dd0d4f8b9217f711fff32e9f47674e556a8fab0.tar.bz2 rneovim-9dd0d4f8b9217f711fff32e9f47674e556a8fab0.zip |
unittests: Add trace description right to the error message
Diffstat (limited to 'test/helpers.lua')
-rw-r--r-- | test/helpers.lua | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/helpers.lua b/test/helpers.lua index 82451bc61d..3fc10e9e30 100644 --- a/test/helpers.lua +++ b/test/helpers.lua @@ -251,6 +251,28 @@ local function concat_tables(...) return ret end +local function dedent(str) + -- find minimum common indent across lines + local indent = nil + for line in str:gmatch('[^\n]+') do + local line_indent = line:match('^%s+') or '' + if indent == nil or #line_indent < #indent then + indent = line_indent + end + end + if indent == nil or #indent == 0 then + -- no minimum common indent + return str + end + -- create a pattern for the indent + indent = indent:gsub('%s', '[ \t]') + -- strip it from the first line + str = str:gsub('^'..indent, '') + -- strip it from the remaining lines + str = str:gsub('[\n]'..indent, '\n') + return str +end + return { eq = eq, neq = neq, @@ -265,4 +287,5 @@ return { hasenv = hasenv, which = which, concat_tables = concat_tables, + dedent = dedent, } |