#300 replaced util.strrep with string.rep

This commit is contained in:
Mikayla Fischler 2023-08-30 19:30:46 -04:00
parent f267a4e569
commit 048714817e
10 changed files with 42 additions and 59 deletions

View File

@ -24,6 +24,7 @@
}, },
"Lua.hint.setType": true, "Lua.hint.setType": true,
"Lua.diagnostics.disable": [ "Lua.diagnostics.disable": [
"duplicate-set-field" "duplicate-set-field",
"inject-field"
] ]
} }

View File

@ -2,8 +2,6 @@
-- Main SCADA Coordinator GUI -- Main SCADA Coordinator GUI
-- --
local util = require("scada-common.util")
local iocontrol = require("coordinator.iocontrol") local iocontrol = require("coordinator.iocontrol")
local style = require("coordinator.ui.style") local style = require("coordinator.ui.style")
@ -77,7 +75,7 @@ local function init(main)
assert(cnc_bottom_align_start >= cnc_y_start, "main display not of sufficient vertical resolution (add an additional row of monitors)") assert(cnc_bottom_align_start >= cnc_y_start, "main display not of sufficient vertical resolution (add an additional row of monitors)")
TextBox{parent=main,y=cnc_bottom_align_start,text=util.strrep("\x8c", header.get_width()),alignment=TEXT_ALIGN.CENTER,height=1,fg_bg=cpair(colors.lightGray,colors.gray)} TextBox{parent=main,y=cnc_bottom_align_start,text=string.rep("\x8c", header.get_width()),alignment=TEXT_ALIGN.CENTER,height=1,fg_bg=cpair(colors.lightGray,colors.gray)}
cnc_bottom_align_start = cnc_bottom_align_start + 2 cnc_bottom_align_start = cnc_bottom_align_start + 2

View File

@ -1,7 +1,6 @@
-- Hazard-bordered Button Graphics Element -- Hazard-bordered Button Graphics Element
local tcd = require("scada-common.tcd") local tcd = require("scada-common.tcd")
local util = require("scada-common.util")
local core = require("graphics.core") local core = require("graphics.core")
local element = require("graphics.element") local element = require("graphics.element")
@ -44,7 +43,7 @@ local function hazard_button(args)
e.window.setTextColor(accent) e.window.setTextColor(accent)
e.window.setBackgroundColor(args.fg_bg.bkg) e.window.setBackgroundColor(args.fg_bg.bkg)
e.window.setCursorPos(1, 1) e.window.setCursorPos(1, 1)
e.window.write("\x99" .. util.strrep("\x89", args.width - 2) .. "\x99") e.window.write("\x99" .. string.rep("\x89", args.width - 2) .. "\x99")
-- center left -- center left
e.window.setCursorPos(1, 2) e.window.setCursorPos(1, 2)
@ -62,7 +61,7 @@ local function hazard_button(args)
e.window.setTextColor(accent) e.window.setTextColor(accent)
e.window.setBackgroundColor(args.fg_bg.bkg) e.window.setBackgroundColor(args.fg_bg.bkg)
e.window.setCursorPos(1, 3) e.window.setCursorPos(1, 3)
e.window.write("\x99" .. util.strrep("\x98", args.width - 2) .. "\x99") e.window.write("\x99" .. string.rep("\x98", args.width - 2) .. "\x99")
end end
-- on request timeout: recursively calls itself to double flash button text -- on request timeout: recursively calls itself to double flash button text

View File

@ -61,14 +61,14 @@ local function spinbox(args)
e.window.setBackgroundColor(args.arrow_fg_bg.bkg) e.window.setBackgroundColor(args.arrow_fg_bg.bkg)
e.window.setTextColor(color) e.window.setTextColor(color)
e.window.setCursorPos(1, 1) e.window.setCursorPos(1, 1)
e.window.write(util.strrep("\x1e", wn_prec)) e.window.write(string.rep("\x1e", wn_prec))
e.window.setCursorPos(1, 3) e.window.setCursorPos(1, 3)
e.window.write(util.strrep("\x1f", wn_prec)) e.window.write(string.rep("\x1f", wn_prec))
if fr_prec > 0 then if fr_prec > 0 then
e.window.setCursorPos(1 + wn_prec, 1) e.window.setCursorPos(1 + wn_prec, 1)
e.window.write(" " .. util.strrep("\x1e", fr_prec)) e.window.write(" " .. string.rep("\x1e", fr_prec))
e.window.setCursorPos(1 + wn_prec, 3) e.window.setCursorPos(1 + wn_prec, 3)
e.window.write(" " .. util.strrep("\x1f", fr_prec)) e.window.write(" " .. string.rep("\x1f", fr_prec))
end end
end end

View File

@ -63,7 +63,7 @@ local function core_map(args)
e.window.setTextColor(e.fg_bg.bkg) e.window.setTextColor(e.fg_bg.bkg)
e.window.setBackgroundColor(args.parent.get_fg_bg().bkg) e.window.setBackgroundColor(args.parent.get_fg_bg().bkg)
e.window.setCursorPos(1, e.frame.h) e.window.setCursorPos(1, e.frame.h)
e.window.write(util.strrep("\x8f", e.frame.w)) e.window.write(string.rep("\x8f", e.frame.w))
e.window.setTextColor(e.fg_bg.fgd) e.window.setTextColor(e.fg_bg.fgd)
e.window.setBackgroundColor(e.fg_bg.bkg) e.window.setBackgroundColor(e.fg_bg.bkg)
end end

View File

@ -1,7 +1,5 @@
-- Icon Indicator Graphics Element -- Icon Indicator Graphics Element
local util = require("scada-common.util")
local element = require("graphics.element") local element = require("graphics.element")
---@class icon_sym_color ---@class icon_sym_color
@ -44,8 +42,8 @@ local function icon(args)
table.insert(state_blit_cmds, { table.insert(state_blit_cmds, {
text = " " .. sym_color.symbol .. " ", text = " " .. sym_color.symbol .. " ",
fgd = util.strrep(sym_color.color.blit_fgd, 3), fgd = string.rep(sym_color.color.blit_fgd, 3),
bkg = util.strrep(sym_color.color.blit_bkg, 3) bkg = string.rep(sym_color.color.blit_bkg, 3)
}) })
end end

View File

@ -51,8 +51,8 @@ local function state_indicator(args)
table.insert(state_blit_cmds, { table.insert(state_blit_cmds, {
text = text, text = text,
fgd = util.strrep(state_def.color.blit_fgd, string.len(text)), fgd = string.rep(state_def.color.blit_fgd, string.len(text)),
bkg = util.strrep(state_def.color.blit_bkg, string.len(text)) bkg = string.rep(state_def.color.blit_bkg, string.len(text))
}) })
end end

View File

@ -27,11 +27,11 @@ local function vbar(args)
local e = element.new(args) local e = element.new(args)
-- blit strings -- blit strings
local fgd = util.strrep(e.fg_bg.blit_fgd, e.frame.w) local fgd = string.rep(e.fg_bg.blit_fgd, e.frame.w)
local bkg = util.strrep(e.fg_bg.blit_bkg, e.frame.w) local bkg = string.rep(e.fg_bg.blit_bkg, e.frame.w)
local spaces = util.spaces(e.frame.w) local spaces = util.spaces(e.frame.w)
local one_third = util.strrep("\x8f", e.frame.w) local one_third = string.rep("\x8f", e.frame.w)
local two_thirds = util.strrep("\x83", e.frame.w) local two_thirds = string.rep("\x83", e.frame.w)
-- handle data changes -- handle data changes
---@param fraction number 0.0 to 1.0 ---@param fraction number 0.0 to 1.0
@ -86,8 +86,8 @@ local function vbar(args)
-- change bar color -- change bar color
---@param fg_bg cpair new bar colors ---@param fg_bg cpair new bar colors
function e.recolor(fg_bg) function e.recolor(fg_bg)
fgd = util.strrep(fg_bg.blit_fgd, e.frame.w) fgd = string.rep(fg_bg.blit_fgd, e.frame.w)
bkg = util.strrep(fg_bg.blit_bkg, e.frame.w) bkg = string.rep(fg_bg.blit_bkg, e.frame.w)
-- re-draw -- re-draw
last_num_bars = 0 last_num_bars = 0

View File

@ -70,45 +70,45 @@ local function rectangle(args)
-- form the basic line strings and top/bottom blit strings -- form the basic line strings and top/bottom blit strings
local spaces = util.spaces(e.frame.w) local spaces = util.spaces(e.frame.w)
local blit_fg = util.strrep(e.fg_bg.blit_fgd, e.frame.w) local blit_fg = string.rep(e.fg_bg.blit_fgd, e.frame.w)
local blit_fg_sides = blit_fg local blit_fg_sides = blit_fg
local blit_bg_sides = "" local blit_bg_sides = ""
local blit_bg_top_bot = util.strrep(border_blit, e.frame.w) local blit_bg_top_bot = string.rep(border_blit, e.frame.w)
-- partial bars -- partial bars
local p_a, p_b, p_s local p_a, p_b, p_s
if args.thin == true then if args.thin == true then
if args.even_inner == true then if args.even_inner == true then
p_a = "\x9c" .. util.strrep("\x8c", inner_width) .. "\x93" p_a = "\x9c" .. string.rep("\x8c", inner_width) .. "\x93"
p_b = "\x8d" .. util.strrep("\x8c", inner_width) .. "\x8e" p_b = "\x8d" .. string.rep("\x8c", inner_width) .. "\x8e"
else else
p_a = "\x97" .. util.strrep("\x83", inner_width) .. "\x94" p_a = "\x97" .. string.rep("\x83", inner_width) .. "\x94"
p_b = "\x8a" .. util.strrep("\x8f", inner_width) .. "\x85" p_b = "\x8a" .. string.rep("\x8f", inner_width) .. "\x85"
end end
p_s = "\x95" .. util.spaces(inner_width) .. "\x95" p_s = "\x95" .. util.spaces(inner_width) .. "\x95"
else else
if args.even_inner == true then if args.even_inner == true then
p_a = util.strrep("\x83", inner_width + width_x2) p_a = string.rep("\x83", inner_width + width_x2)
p_b = util.strrep("\x8f", inner_width + width_x2) p_b = string.rep("\x8f", inner_width + width_x2)
else else
p_a = util.spaces(border_width) .. util.strrep("\x8f", inner_width) .. util.spaces(border_width) p_a = util.spaces(border_width) .. string.rep("\x8f", inner_width) .. util.spaces(border_width)
p_b = util.spaces(border_width) .. util.strrep("\x83", inner_width) .. util.spaces(border_width) p_b = util.spaces(border_width) .. string.rep("\x83", inner_width) .. util.spaces(border_width)
end end
p_s = spaces p_s = spaces
end end
local p_inv_fg = util.strrep(border_blit, border_width) .. util.strrep(e.fg_bg.blit_bkg, inner_width) .. local p_inv_fg = string.rep(border_blit, border_width) .. string.rep(e.fg_bg.blit_bkg, inner_width) ..
util.strrep(border_blit, border_width) string.rep(border_blit, border_width)
local p_inv_bg = util.strrep(e.fg_bg.blit_bkg, border_width) .. util.strrep(border_blit, inner_width) .. local p_inv_bg = string.rep(e.fg_bg.blit_bkg, border_width) .. string.rep(border_blit, inner_width) ..
util.strrep(e.fg_bg.blit_bkg, border_width) string.rep(e.fg_bg.blit_bkg, border_width)
if args.thin == true then if args.thin == true then
p_inv_fg = e.fg_bg.blit_bkg .. util.strrep(e.fg_bg.blit_bkg, inner_width) .. util.strrep(border_blit, border_width) p_inv_fg = e.fg_bg.blit_bkg .. string.rep(e.fg_bg.blit_bkg, inner_width) .. string.rep(border_blit, border_width)
p_inv_bg = border_blit .. util.strrep(border_blit, inner_width) .. util.strrep(e.fg_bg.blit_bkg, border_width) p_inv_bg = border_blit .. string.rep(border_blit, inner_width) .. string.rep(e.fg_bg.blit_bkg, border_width)
blit_fg_sides = border_blit .. util.strrep(e.fg_bg.blit_bkg, inner_width) .. e.fg_bg.blit_bkg blit_fg_sides = border_blit .. string.rep(e.fg_bg.blit_bkg, inner_width) .. e.fg_bg.blit_bkg
end end
-- form the body blit strings (sides are border, inside is normal) -- form the body blit strings (sides are border, inside is normal)
@ -135,7 +135,7 @@ local function rectangle(args)
if args.thin == true then if args.thin == true then
e.window.blit(p_a, p_inv_bg, p_inv_fg) e.window.blit(p_a, p_inv_bg, p_inv_fg)
else else
local _fg = util.trinary(args.even_inner == true, util.strrep(e.fg_bg.blit_bkg, e.frame.w), p_inv_bg) local _fg = util.trinary(args.even_inner == true, string.rep(e.fg_bg.blit_bkg, e.frame.w), p_inv_bg)
local _bg = util.trinary(args.even_inner == true, blit_bg_top_bot, p_inv_fg) local _bg = util.trinary(args.even_inner == true, blit_bg_top_bot, p_inv_fg)
if width_x2 % 3 == 1 then if width_x2 % 3 == 1 then
@ -156,13 +156,13 @@ local function rectangle(args)
if args.border.even and y == ((e.frame.h - border_width) + 1) then if args.border.even and y == ((e.frame.h - border_width) + 1) then
if args.thin == true then if args.thin == true then
if args.even_inner == true then if args.even_inner == true then
e.window.blit(p_b, blit_bg_top_bot, util.strrep(e.fg_bg.blit_bkg, e.frame.w)) e.window.blit(p_b, blit_bg_top_bot, string.rep(e.fg_bg.blit_bkg, e.frame.w))
else else
e.window.blit(p_b, util.strrep(e.fg_bg.blit_bkg, e.frame.w), blit_bg_top_bot) e.window.blit(p_b, string.rep(e.fg_bg.blit_bkg, e.frame.w), blit_bg_top_bot)
end end
else else
local _fg = util.trinary(args.even_inner == true, blit_bg_top_bot, p_inv_fg) local _fg = util.trinary(args.even_inner == true, blit_bg_top_bot, p_inv_fg)
local _bg = util.trinary(args.even_inner == true, util.strrep(e.fg_bg.blit_bkg, e.frame.w), blit_bg_top_bot) local _bg = util.trinary(args.even_inner == true, string.rep(e.fg_bg.blit_bkg, e.frame.w), blit_bg_top_bot)
if width_x2 % 3 == 1 then if width_x2 % 3 == 1 then
e.window.blit(p_a, _fg, _bg) e.window.blit(p_a, _fg, _bg)

View File

@ -76,25 +76,12 @@ function util.strval(val)
end end
end end
-- repeat a string n times
---@nodiscard
---@param str string
---@param n integer
---@return string
function util.strrep(str, n)
local repeated = ""
for _ = 1, n do repeated = repeated .. str end
return repeated
end
-- repeat a space n times -- repeat a space n times
---@nodiscard ---@nodiscard
---@param n integer ---@param n integer
---@return string ---@return string
function util.spaces(n) function util.spaces(n)
return util.strrep(" ", n) return string.rep(" ", n)
end end
-- pad text to a minimum width -- pad text to a minimum width