2
3
kopie van https://github.com/sammy-ette/Hilbish synced 2025-08-10 02:52:03 +00:00

Vergelijk commits

..

2 Commits

Auteur SHA1 Bericht Datum
5b4b055c6c
fix(greenhouse): set scroll boundary properly, fix text cutoff
this means you can no longer scroll away the text until it isnt seen
this commit also fixes text cutoff when using lunacolors
(like in the doc command)
2023-07-11 20:25:25 -04:00
9b39d5ffcf
fix(commands/greenhouse): set nil page title 2023-07-11 20:24:20 -04:00
2 gewijzigde bestanden met toevoegingen van 20 en 6 verwijderingen

Bestand weergeven

@ -60,7 +60,7 @@ Available sections: ]] .. table.concat(modules, ', ')
return lunacolors.underline(lunacolors.blue(string.gsub(fname, '.md', '')))
end)
if #moddocs ~= 0 then
funcdocs = funcdocs .. '\nSubdocs: ' .. table.concat(subdocs, ', ') .. '\nLMAO'
funcdocs = funcdocs .. '\nSubdocs: ' .. table.concat(subdocs, ', ')
end
local valsStr = funcdocs:match '%-%-%-\n([^%-%-%-]+)\n'
@ -89,7 +89,7 @@ Available sections: ]] .. table.concat(modules, ', ')
local gh = Greenhouse(sinks.out)
local backtickOccurence = 0
local page = Page(lunacolors.format(doc:gsub('`', function()
local page = Page(nil, lunacolors.format(doc:gsub('`', function()
backtickOccurence = backtickOccurence + 1
if backtickOccurence % 2 == 0 then
return '{reset}'

Bestand weergeven

@ -44,6 +44,21 @@ function Greenhouse:updateCurrentPage(text)
page:setText(text)
end
local function sub(str, limit)
local overhead = 0
local function addOverhead(s)
overhead = overhead + string.len(s)
end
local s = str:gsub('\x1b%[%d+;%d+;%d+;%d+;%d+%w', addOverhead)
:gsub('\x1b%[%d+;%d+;%d+;%d+%w', addOverhead)
:gsub('\x1b%[%d+;%d+;%d+%w',addOverhead)
:gsub('\x1b%[%d+;%d+%w', addOverhead)
:gsub('\x1b%[%d+%w', addOverhead)
return s:sub(0, limit + overhead)
end
function Greenhouse:draw()
local workingPage = self.pages[self.curPage]
local offset = self.offset
@ -56,10 +71,9 @@ function Greenhouse:draw()
self.sink:write(ansikit.getCSI(self.start .. ';1', 'H'))
self.sink:write(ansikit.getCSI(2, 'J'))
-- the -2 negate is for the command and status line
for i = offset, offset + (self.region.height - self.start) do
for i = offset, offset + (self.region.height - 1) do
if i > #lines then break end
self.sink:writeln('\r' .. lines[i]:gsub('\t', ' '):sub(0, self.region.width - 2))
self.sink:writeln('\r' .. sub(lines[i]:gsub('\t', ' '), self.region.width - 2))
end
self.sink:write '\r'
self:render()
@ -82,7 +96,7 @@ function Greenhouse:scroll(direction)
local oldOffset = self.offset
if direction == 'down' then
self.offset = math.min(self.offset + 1, #lines)
self.offset = math.min(self.offset + 1, math.max(1, #lines - self.region.height + 1))
elseif direction == 'up' then
self.offset = math.max(self.offset - 1, 1)
end