mirror of https://github.com/Hilbis/Hilbish
Compare commits
2 Commits
ade14a6238
...
5b4b055c6c
Author | SHA1 | Date |
---|---|---|
sammyette | 5b4b055c6c | |
sammyette | 9b39d5ffcf |
|
@ -60,7 +60,7 @@ Available sections: ]] .. table.concat(modules, ', ')
|
||||||
return lunacolors.underline(lunacolors.blue(string.gsub(fname, '.md', '')))
|
return lunacolors.underline(lunacolors.blue(string.gsub(fname, '.md', '')))
|
||||||
end)
|
end)
|
||||||
if #moddocs ~= 0 then
|
if #moddocs ~= 0 then
|
||||||
funcdocs = funcdocs .. '\nSubdocs: ' .. table.concat(subdocs, ', ') .. '\nLMAO'
|
funcdocs = funcdocs .. '\nSubdocs: ' .. table.concat(subdocs, ', ')
|
||||||
end
|
end
|
||||||
|
|
||||||
local valsStr = funcdocs:match '%-%-%-\n([^%-%-%-]+)\n'
|
local valsStr = funcdocs:match '%-%-%-\n([^%-%-%-]+)\n'
|
||||||
|
@ -89,7 +89,7 @@ Available sections: ]] .. table.concat(modules, ', ')
|
||||||
|
|
||||||
local gh = Greenhouse(sinks.out)
|
local gh = Greenhouse(sinks.out)
|
||||||
local backtickOccurence = 0
|
local backtickOccurence = 0
|
||||||
local page = Page(lunacolors.format(doc:gsub('`', function()
|
local page = Page(nil, lunacolors.format(doc:gsub('`', function()
|
||||||
backtickOccurence = backtickOccurence + 1
|
backtickOccurence = backtickOccurence + 1
|
||||||
if backtickOccurence % 2 == 0 then
|
if backtickOccurence % 2 == 0 then
|
||||||
return '{reset}'
|
return '{reset}'
|
||||||
|
|
|
@ -44,6 +44,21 @@ function Greenhouse:updateCurrentPage(text)
|
||||||
page:setText(text)
|
page:setText(text)
|
||||||
end
|
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()
|
function Greenhouse:draw()
|
||||||
local workingPage = self.pages[self.curPage]
|
local workingPage = self.pages[self.curPage]
|
||||||
local offset = self.offset
|
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(self.start .. ';1', 'H'))
|
||||||
self.sink:write(ansikit.getCSI(2, 'J'))
|
self.sink:write(ansikit.getCSI(2, 'J'))
|
||||||
|
|
||||||
-- the -2 negate is for the command and status line
|
for i = offset, offset + (self.region.height - 1) do
|
||||||
for i = offset, offset + (self.region.height - self.start) do
|
|
||||||
if i > #lines then break end
|
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
|
end
|
||||||
self.sink:write '\r'
|
self.sink:write '\r'
|
||||||
self:render()
|
self:render()
|
||||||
|
@ -82,7 +96,7 @@ function Greenhouse:scroll(direction)
|
||||||
|
|
||||||
local oldOffset = self.offset
|
local oldOffset = self.offset
|
||||||
if direction == 'down' then
|
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
|
elseif direction == 'up' then
|
||||||
self.offset = math.max(self.offset - 1, 1)
|
self.offset = math.max(self.offset - 1, 1)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue