aboutsummaryrefslogtreecommitdiff
path: root/.mbs/modules/pager.lua
diff options
context:
space:
mode:
authorAndrew Lee <alee14498@gmail.com>2019-07-19 14:10:39 -0400
committerAndrew Lee <alee14498@gmail.com>2019-07-19 14:10:39 -0400
commitfe08446d84e0aa939780ad013f0545778703da6d (patch)
treef45358ae6470dc894c41abcb278c4898c7ef1b18 /.mbs/modules/pager.lua
parent21446806b264d8fd6694b1495f0c51bf24d26b35 (diff)
downloadbits-UI-fe08446d84e0aa939780ad013f0545778703da6d.tar.gz
bits-UI-fe08446d84e0aa939780ad013f0545778703da6d.tar.bz2
bits-UI-fe08446d84e0aa939780ad013f0545778703da6d.zip
MBS as default shell
Diffstat (limited to '.mbs/modules/pager.lua')
-rw-r--r--.mbs/modules/pager.lua48
1 files changed, 48 insertions, 0 deletions
diff --git a/.mbs/modules/pager.lua b/.mbs/modules/pager.lua
new file mode 100644
index 0000000..7c25afb
--- /dev/null
+++ b/.mbs/modules/pager.lua
@@ -0,0 +1,48 @@
+return {
+ description = "Replaces the textutils pagers with something akin to less",
+
+ dependencies = {
+ "bin/help.lua"
+ },
+
+ settings = {
+ {
+ name = "mbs.pager.enabled",
+ description = "Whether the alternative pager is enabled.",
+ default = true,
+ },
+ {
+ name = "mbs.pager.mode",
+ description = "The mode for the alternative pager.",
+ default = "default",
+ }
+ },
+
+ enabled = function() return settings.get("mbs.pager.enabled") end,
+
+ setup = function(path)
+ shell.setAlias("help", "/" .. fs.combine(path, "bin/help.lua"))
+ shell.setCompletionFunction(fs.combine(path, "bin/help.lua"), function(shell, index, text, previous)
+ if index == 1 then return help.completeTopic(text) end
+ end)
+
+ local native_pprint, native_ptabulate = textutils.pagedPrint, textutils.pagedTabulate
+ textutils.pagedPrint = function(text, free_lines)
+ local mode = settings.get("mbs.pager.mode")
+ if mode == "none" then
+ return io.write(text .. "\n")
+ else
+ return native_pprint(text, free_lines)
+ end
+ end
+
+ textutils.pagedTabulate = function(...)
+ local mode = settings.get("mbs.pager.mode")
+ if mode == "none" then
+ return textutils.tabulate(...)
+ else
+ return native_ptabulate(...)
+ end
+ end
+ end
+} \ No newline at end of file