diff options
Diffstat (limited to '.config/nvim/lua/interface')
-rw-r--r-- | .config/nvim/lua/interface/text.lua | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/.config/nvim/lua/interface/text.lua b/.config/nvim/lua/interface/text.lua index f68cc49..c17d403 100644 --- a/.config/nvim/lua/interface/text.lua +++ b/.config/nvim/lua/interface/text.lua @@ -17,16 +17,35 @@ end -- @param container The container where lines will be displayed -- @param lines The text to align -- @param alignment The alignment value, range: [0-1] -function M.align(container, lines, alignment) +function M.align_left(container, lines, alignment) local max_len = max_len_line(lines) local indent_amount = math.ceil(math.max(container.width - max_len, 0) * alignment) - return M.shift_left(lines, indent_amount) + return M.shift_right(lines, indent_amount) +end + +--- Center align lines relatively to the parent container +-- @param container The container where lines will be displayed +-- @param lines The text to align +-- @param alignment The alignment value, range: [0-1] +function M.align_center(container, lines, alignment) + local output = {} + local max_len = max_len_line(lines) + + for _, line in ipairs(lines) do + local padding = string.rep( + " ", + (math.max(container.width, max_len) - line:len()) * alignment + ) + table.insert(output, padding .. line) + end + + return output end --- Shift lines by a given amount -- @params lines The lines the shift -- @param amount The amount of spaces to add -function M.shift_left(lines, amount) +function M.shift_right(lines, amount) local output = {} local padding = string.rep(" ", amount) |