awful.util: add linewrap()
Signed-off-by: koniu <gkusnierz@gmail.com> Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
c00aa8fd5e
commit
7f828b5db3
|
@ -15,6 +15,7 @@ local print = print
|
||||||
local type = type
|
local type = type
|
||||||
local rtable = table
|
local rtable = table
|
||||||
local pairs = pairs
|
local pairs = pairs
|
||||||
|
local string = string
|
||||||
local capi =
|
local capi =
|
||||||
{
|
{
|
||||||
awesome = awesome,
|
awesome = awesome,
|
||||||
|
@ -261,4 +262,24 @@ function table.hasitem(t, item)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Split a string into multiple lines
|
||||||
|
-- @param text String to wrap.
|
||||||
|
-- @param width Maximum length of each line. Default: 72.
|
||||||
|
-- @param indent Number of spaces added before each wrapped line. Default: 0.
|
||||||
|
-- @return The string with lines wrapped to width.
|
||||||
|
function linewrap(text, width, indent)
|
||||||
|
local text = text or ""
|
||||||
|
local width = width or 72
|
||||||
|
local indent = indent or 0
|
||||||
|
|
||||||
|
local pos = 1
|
||||||
|
return text:gsub("(%s+)()(%S+)()",
|
||||||
|
function(sp, st, word, fi)
|
||||||
|
if fi - pos > width then
|
||||||
|
pos = st
|
||||||
|
return "\n" .. string.rep(" ", indent) .. word
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
||||||
|
|
Loading…
Reference in New Issue