mirror of
https://github.com/MikaylaFischler/cc-mek-scada.git
synced 2024-08-30 18:22:34 +00:00
#204 replaced util.strwrap implementation with cc.strings.wrap
This commit is contained in:
parent
fc9d86f23e
commit
3ae39b2455
@ -19,7 +19,7 @@ local iocontrol = require("coordinator.iocontrol")
|
|||||||
local renderer = require("coordinator.renderer")
|
local renderer = require("coordinator.renderer")
|
||||||
local sounder = require("coordinator.sounder")
|
local sounder = require("coordinator.sounder")
|
||||||
|
|
||||||
local COORDINATOR_VERSION = "v0.12.5"
|
local COORDINATOR_VERSION = "v0.12.6"
|
||||||
|
|
||||||
local print = util.print
|
local print = util.print
|
||||||
local println = util.println
|
local println = util.println
|
||||||
|
File diff suppressed because one or more lines are too long
@ -18,7 +18,7 @@ local plc = require("reactor-plc.plc")
|
|||||||
local renderer = require("reactor-plc.renderer")
|
local renderer = require("reactor-plc.renderer")
|
||||||
local threads = require("reactor-plc.threads")
|
local threads = require("reactor-plc.threads")
|
||||||
|
|
||||||
local R_PLC_VERSION = "v1.1.4"
|
local R_PLC_VERSION = "v1.1.5"
|
||||||
|
|
||||||
local print = util.print
|
local print = util.print
|
||||||
local println = util.println
|
local println = util.println
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
-- Utility Functions
|
-- Utility Functions
|
||||||
--
|
--
|
||||||
|
|
||||||
|
local cc_strings = require("cc.strings")
|
||||||
|
|
||||||
---@class util
|
---@class util
|
||||||
local util = {}
|
local util = {}
|
||||||
|
|
||||||
@ -104,53 +106,12 @@ function util.pad(str, n)
|
|||||||
return util.spaces(lpad) .. str .. util.spaces(rpad)
|
return util.spaces(lpad) .. str .. util.spaces(rpad)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- wrap a string into a table of lines, supporting single dash splits
|
-- wrap a string into a table of lines
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
---@param str string
|
---@param str string
|
||||||
---@param limit integer line limit
|
---@param limit integer line limit
|
||||||
---@return table lines
|
---@return table lines
|
||||||
function util.strwrap(str, limit)
|
function util.strwrap(str, limit) return cc_strings.wrap(str, limit) end
|
||||||
local lines = {}
|
|
||||||
local ln_start = 1
|
|
||||||
|
|
||||||
local first_break = str:find("([%-%s]+)")
|
|
||||||
|
|
||||||
if first_break ~= nil then
|
|
||||||
lines[1] = string.sub(str, 1, first_break - 1)
|
|
||||||
else
|
|
||||||
lines[1] = str
|
|
||||||
end
|
|
||||||
|
|
||||||
---@diagnostic disable-next-line: discard-returns
|
|
||||||
str:gsub("(%s+)()(%S+)()",
|
|
||||||
function(space, start, word, stop)
|
|
||||||
-- support splitting SINGLE DASH words
|
|
||||||
word:gsub("(%S+)(%-)()(%S+)()",
|
|
||||||
function (pre, dash, d_start, post, d_stop)
|
|
||||||
if (stop + d_stop) - ln_start <= limit then
|
|
||||||
-- do nothing, it will entirely fit
|
|
||||||
elseif ((start + d_start) + 1) - ln_start <= limit then
|
|
||||||
-- we can fit including the dash
|
|
||||||
lines[#lines] = lines[#lines] .. space .. pre .. dash
|
|
||||||
-- drop the space and replace the word with the post
|
|
||||||
space = ""
|
|
||||||
word = post
|
|
||||||
-- force a wrap
|
|
||||||
stop = limit + 1 + ln_start
|
|
||||||
-- change start position for new line start
|
|
||||||
start = start + d_start - 1
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
-- can we append this or do we have to start a new line?
|
|
||||||
if stop - ln_start > limit then
|
|
||||||
-- starting new line
|
|
||||||
ln_start = start
|
|
||||||
lines[#lines + 1] = word
|
|
||||||
else lines[#lines] = lines[#lines] .. space .. word end
|
|
||||||
end)
|
|
||||||
|
|
||||||
return lines
|
|
||||||
end
|
|
||||||
|
|
||||||
-- concatenation with built-in to string
|
-- concatenation with built-in to string
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
|
Loading…
Reference in New Issue
Block a user