pse/luau/examples/rainbowify.luau

37 lines
1.2 KiB
Plaintext

--!strict
local function rainbowify_foreground(message: string): string
local parsed_terminal_message: {string} = {}
local color_map = {
TERMINAL.OUT.STYLE.FOREGROUND.RED,
TERMINAL.OUT.STYLE.FOREGROUND.YELLOW,
TERMINAL.OUT.STYLE.FOREGROUND.GREEN,
TERMINAL.OUT.STYLE.FOREGROUND.BLUE,
TERMINAL.OUT.STYLE.FOREGROUND.MAGENTA,
}
for i, char in message:split('') do
table.insert(parsed_terminal_message, char ~= ' ' and color_map[i%5+1](char) or char)
end
return table.concat(parsed_terminal_message)
end
local function rainbowify_background(message: string): string
local parsed_terminal_message: {string} = {}
local color_map = {
TERMINAL.OUT.STYLE.BACKGROUND.RED,
TERMINAL.OUT.STYLE.BACKGROUND.YELLOW,
TERMINAL.OUT.STYLE.BACKGROUND.GREEN,
TERMINAL.OUT.STYLE.BACKGROUND.BLUE,
TERMINAL.OUT.STYLE.BACKGROUND.MAGENTA,
}
for i, char in message:split('') do
table.insert(parsed_terminal_message, char ~= ' ' and color_map[i%5+1](char) or char)
end
return table.concat(parsed_terminal_message)
end
print(rainbowify_background("Rainbow background"))
print(rainbowify_foreground("Rainbow foreground"))
print(rainbowify_background(rainbowify_foreground("Rainbow background and foreground")))