From b266c31bb894008fbc7efa74a7cab09a8a9b1ca3 Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Tue, 6 Apr 2021 09:40:50 -0400 Subject: [PATCH] feat: almost completely finish ansikit --- libs/ansikit/init.lua | 63 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 11 deletions(-) diff --git a/libs/ansikit/init.lua b/libs/ansikit/init.lua index 3546733..bc65428 100644 --- a/libs/ansikit/init.lua +++ b/libs/ansikit/init.lua @@ -61,17 +61,6 @@ ansikit.cursorUp = function(y) return ansikit.printCSI(y, 'A') end -ansikit.getCode = function(code, terminate) - endc = (endc and endc or 'm') - return string.char(0x001b) .. code .. - (terminate and string.char(0x001b) .. '\\' or '') -end - -ansikit.getCSI = function(code, endc) - endc = (endc and endc or 'm') - return string.char(0x001b) .. '[' .. code .. endc -end - ansikit.format = function(text) local colors = { -- TODO: write codes manually instead of using functions @@ -115,6 +104,22 @@ ansikit.format = function(text) return text end +ansikit.getCode = function(code, terminate) + return string.char 0x001b .. code .. + (terminate and string.char 0x001b .. '\\' or '') +end + +ansikit.getCSI = function(code, endc) + endc = (endc and endc or 'm') + code = (code and code or '') + + return string.char 0x001b .. '[' .. code .. endc +end + +ansikit.hideCursor = function() + return ansikit.printCSI('?25', 'l') +end + ansikit.print = function(text) io.write(ansikit.format(text)) return ansikit @@ -135,5 +140,41 @@ ansikit.println = function(text) return ansikit end +ansikit.reset = function() + return ansikit.printCode 'c' +end + +ansikit.restoreCursor = function() + return ansikit.printCSI(nil, 'u') +end + +ansikit.restoreState = function() + return ansikit.printCode 8 +end + +ansikit.rgb = function(r, g, b) + r = (r and r or 0) + g = (g and g or 0) + b = (b and b or 0) + + return ansikit.printCSI '38;2;' .. r .. ';' .. g .. ';' .. b +end + +ansikit.saveCursor = function() + return ansikit.printCSI(nil, 's') +end + +ansikit.saveState = function() + return ansikit.printCode 7 +end + +ansikit.setTitle = function(text) + ansikit.printCode (']2;' .. text, true) +end + +ansikit.showCursor = function() + return ansikit.printCSI('?25', 'h') +end + return ansikit