From d18cc57a31cfc1314d078a9870dad5c373eb5c1a Mon Sep 17 00:00:00 2001 From: asciibene Date: Thu, 7 Apr 2022 14:03:54 -0400 Subject: [PATCH] Wow --- nocurses.so | Bin 0 -> 16088 bytes vite.lua | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100755 nocurses.so create mode 100644 vite.lua diff --git a/nocurses.so b/nocurses.so new file mode 100755 index 0000000000000000000000000000000000000000..ca60248eb4ad77c0087177f0495c17d2ef482e78 GIT binary patch literal 16088 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 G-v0t+f$_Tl literal 0 HcmV?d00001 diff --git a/vite.lua b/vite.lua new file mode 100644 index 0000000..18b740a --- /dev/null +++ b/vite.lua @@ -0,0 +1,135 @@ +--Vi Inspired Textual Editor === VITE +-- Version alpha 0.02 +filename="./dummy.txt" +VER="v0.02" +nc=require("nocurses") + + +function at(s,p) + return string.sub(s,p,p) +end + +----------------------------end small funcs +function start() + nc.setunderline(true) + print("VITE === Vi Inspired Textual Editor === "..VER) + + nc.setunderline(false) + currline=-1 + currfile=-1 + lines_tbl={} + cmd() + --after closing + if currfile ~= -1 then + print("closing vite...bye") + currfile:close() + end +end +-- list of Commands +-- ---------------- +-- * = newfile +-- > = appendtext +-- : = commands +-- +function cmd() + while inp~=":q" do + -- main loop + if currline== -1 then + print("No file opened") + elseif currline~=-1 then + print(currline..":") + end + nc.setfontcolor("YELLOW") + inp = io.input():read("*l") + nc.setfontcolor("WHITE") + -- all commands start with a symbol + if at(inp,1)=="*" and string.len(inp)<=1 then + print("You must enter a valid filename...") + elseif at(inp,1)=="*" and string.len(inp)>1 then + newfn=string.sub(inp,2) + new_file(newfn) + print("New File:"..newfn.."\n") + currline=1 + elseif at(inp,1) == ">" and string.len(inp)==1 then + print("line [#"..currline.."]:") + -- if inp has > symbol, then its a literal line to write to file + elseif at(inp,1) == ">" and string.len(inp)>1 then + table.insert(lines_tbl,currline,string.sub(inp,2)) + currline=currline+1 + elseif at(inp,1) == ":" and at(inp,2)=="l" and string.len(inp)>2 then + -- TODO MAKE LOAD FUNC TODO + elseif at(inp,1) == ":" and at(inp,2)=="w" then + write_file() + elseif at(inp,1) == "=" and string.len(inp)==1 then + display_text() + elseif string.match(inp,"[%d*][%>][%g*]") and string.len(inp)>2 then + add_line(lpos,str) + elseif at(inp,1)=="x" and at(inp,2)=="!" then + break + else + nc.setfontcolor("RED") + print("Unknown Command!") + nc.setfontcolor("WHITE") + -- end of command def ========== + end + + end +end + + + +function add_line(lpos,str) + local str,lpos + if currfile~=-1 then + table.insert(lines_tbl,lpos,str) + else + print("No file Open!") + end +end + +function write_file() -- flush data to the file":w" + if currfile~=-1 then + currfile:write(table.concat(lines_tbl,"\n").."\n") + print("Flushed buffer unto "..newfn) + -- TODO Show filesize + else + print("No file to write to !") + end +end + +function new_file(fn) --also load + if currfile==-1 then + currfile = io.open(fn,"w+") + elseif currfile~=-1 then + currfile:close() + -- XXX Make it ask for confirm + -- XXX make it display whats going on + currfile = io.open(fn,"w+") + end +end + +function display_file() + currfile:seek("set") + local lnum = 1 + for line in currfile:lines() do + nc.gotoxy(1,lnum) + print(lnum..":"..line) + lnum=lnum+1 + end + print("=================================\n\n") +end +function display_text() -- prints lines_tbl + currfile:seek("set") + local line + nc.clrscr() + nc.setfontcolor("CYAN") + for k,ln in pairs(lines_tbl) do + nc.gotoxy(1,k) + print(k..":"..ln) + end + print("=================================\n\n") + nc.setfontcolor("WHITE") + +end + +start()