diff options
| author | Andrew Lee <alee14498@gmail.com> | 2019-07-19 14:10:39 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@gmail.com> | 2019-07-19 14:10:39 -0400 |
| commit | fe08446d84e0aa939780ad013f0545778703da6d (patch) | |
| tree | f45358ae6470dc894c41abcb278c4898c7ef1b18 /.mbs/modules/pager.lua | |
| parent | 21446806b264d8fd6694b1495f0c51bf24d26b35 (diff) | |
| download | bits-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.lua | 48 |
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 |
