diff --git a/luau/examples/rainbowify.luau b/luau/examples/rainbowify.luau index fffc2d1..8c12603 100644 --- a/luau/examples/rainbowify.luau +++ b/luau/examples/rainbowify.luau @@ -3,11 +3,11 @@ 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, + TERMINAL.OUT.FOREGROUND.RED, + TERMINAL.OUT.FOREGROUND.YELLOW, + TERMINAL.OUT.FOREGROUND.GREEN, + TERMINAL.OUT.FOREGROUND.BLUE, + TERMINAL.OUT.FOREGROUND.MAGENTA, } for i, char in message:split('') do @@ -19,11 +19,11 @@ 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, + TERMINAL.OUT.BACKGROUND.RED, + TERMINAL.OUT.BACKGROUND.YELLOW, + TERMINAL.OUT.BACKGROUND.GREEN, + TERMINAL.OUT.BACKGROUND.BLUE, + TERMINAL.OUT.BACKGROUND.MAGENTA, } for i, char in message:split('') do @@ -32,6 +32,8 @@ local function rainbowify_background(message: string): string 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"))) \ No newline at end of file +print(rainbowify_background("Rainbow background")) +print( + TERMINAL.OUT.BACKGROUND.DARK_GREY(rainbowify_foreground("Rainbow foreground on a dark grey background")) +) \ No newline at end of file diff --git a/luau/types.luau b/luau/types.luau index d499cba..6f345fd 100644 --- a/luau/types.luau +++ b/luau/types.luau @@ -11,7 +11,6 @@ type map_functions = { len_values: () -> number, for_each: lambda } -type func_map = (A...) -> T type class_method = (self: Self, T...) -> R type map = {[K]: V} type lambda = (f: (T...) -> ()) -> () @@ -49,27 +48,64 @@ type SHELL = { } -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -type text_colors = { - RED: func_map, - YELLOW: func_map, - GREEN: func_map, - BLUE: func_map, - MAGENTA: func_map, - GREY: func_map, - BLACK: func_map, - CYAN: func_map, - WHITE: func_map, - DARK_GREY: func_map, - DARK_RED: func_map, - DARK_GREEN: func_map, - DARK_CYAN: func_map, - DARK_YELLOW: func_map, - DARK_MAGENTA: func_map, - DARK_BLUE: func_map, +type background_styles = { + RED: (string) -> string, + YELLOW: (string) -> string, + GREEN: (string) -> string, + BLUE: (string) -> string, + MAGENTA: (string) -> string, + GREY: (string) -> string, + BLACK: (string) -> string, + CYAN: (string) -> string, + WHITE: (string) -> string, + DARK_GREY: (string) -> string, + DARK_RED: (string) -> string, + DARK_GREEN: (string) -> string, + DARK_CYAN: (string) -> string, + DARK_YELLOW: (string) -> string, + DARK_MAGENTA: (string) -> string, + DARK_BLUE: (string) -> string, + UNDERLINED: (string) -> string, + UNDERLINE_DARK_GREY: (string) -> string, + UNDERLINE_DARK_RED: (string) -> string, + UNDERLINE_DARK_GREEN: (string) -> string, + UNDERLINE_DARK_CYAN: (string) -> string, + UNDERLINE_DARK_YELLOW: (string) -> string, + UNDERLINE_DARK_MAGENTA: (string) -> string, + UNDERLINE_DARK_BLUE: (string) -> string, + UNDERLINE_RED: (string) -> string, + UNDERLINE_GREY: (string) -> string, + UNDERLINE_BLACK: (string) -> string, + UNDERLINE_GREEN: (string) -> string, + UNDERLINE_YELLOW: (string) -> string, + UNDERLINE_BLUE: (string) -> string, + UNDERLINE_MAGENTA: (string) -> string, + UNDERLINE_CYAN: (string) -> string, + UNDERLINE_WHITE: (string) -> string, + BOLD: (string) -> string, +} +type foreground_styles = { + RED: (string) -> string, + GREY: (string) -> string, + BLACK: (string) -> string, + GREEN: (string) -> string, + YELLOW: (string) -> string, + BLUE: (string) -> string, + MAGENTA: (string) -> string, + CYAN: (string) -> string, + WHITE: (string) -> string, + DARK_GREY: (string) -> string, + DARK_RED: (string) -> string, + DARK_GREEN: (string) -> string, + DARK_CYAN: (string) -> string, + DARK_YELLOW: (string) -> string, + DARK_MAGENTA: (string) -> string, + DARK_BLUE: (string) -> string, } type TERMINAL = { OUT: { - STYLE: text_colors, + BACKGROUND: background_styles, + FOREGROUND: foreground_styles } } --------------------------------------------------------------------------------------------------------------------------------