mirror of https://github.com/Hilbis/Hilbish
Compare commits
1 Commits
0dfed4d7aa
...
6edf1c7733
Author | SHA1 | Date |
---|---|---|
sammyette | 6edf1c7733 |
10
CHANGELOG.md
10
CHANGELOG.md
|
@ -21,16 +21,6 @@ completed.
|
|||
- Using this also brings enhancements to the `doc` command like easy
|
||||
navigation of neighboring doc files.
|
||||
|
||||
### Changed
|
||||
- Documentation for EVERYTHING has been improved, with more
|
||||
information added, code example, parameter details, etc.
|
||||
You can see the improvements!
|
||||
- Documentation has gotten an uplift in the `doc` command.
|
||||
This includes:
|
||||
- Proper highlighting of code
|
||||
- Paging (via Greenhouse)
|
||||
- Highlighting more markdown things
|
||||
|
||||
### Fixed
|
||||
- Fix infinite loop when navigating history without any history. [#252](https://github.com/Rosettea/Hilbish/issues/252)
|
||||
- Return the prefix when calling `hilbish.completions.call`. [#219](https://github.com/Rosettea/Hilbish/issues/219)
|
||||
|
|
|
@ -554,11 +554,11 @@ func main() {
|
|||
|
||||
`, htmlSig, dps.FuncName))
|
||||
for _, doc := range dps.Doc {
|
||||
if !strings.HasPrefix(doc, "---") && doc != "" {
|
||||
if !strings.HasPrefix(doc, "---") {
|
||||
f.WriteString(doc + " \n")
|
||||
}
|
||||
}
|
||||
f.WriteString("\n#### Parameters\n")
|
||||
f.WriteString("#### Parameters\n")
|
||||
if len(dps.Params) == 0 {
|
||||
f.WriteString("This function has no parameters. \n")
|
||||
}
|
||||
|
|
|
@ -17,53 +17,17 @@ for _, fname in ipairs(files) do
|
|||
pieces[mod] = {}
|
||||
|
||||
local docPiece = {}
|
||||
local lines = {}
|
||||
local lineno = 0
|
||||
for line in f:lines() do
|
||||
lineno = lineno + 1
|
||||
lines[lineno] = line
|
||||
|
||||
if line == header then goto continue2 end
|
||||
if not line:match(emmyPattern) then
|
||||
if line:match '^function' then
|
||||
local pattern = (string.format('^function %s%%.', mod) .. '(%w+)')
|
||||
local funcName = line:match(pattern)
|
||||
if not funcName then goto continue2 end
|
||||
|
||||
local dps = {
|
||||
description = {},
|
||||
params = {}
|
||||
}
|
||||
|
||||
local offset = 1
|
||||
while true do
|
||||
local prev = lines[lineno - offset]
|
||||
|
||||
local docline = prev:match '^%-+ (.+)'
|
||||
if docline then
|
||||
local emmy = docline:match '@(%w+)'
|
||||
local cut = 0
|
||||
|
||||
if emmy then cut = emmy:len() + 3 end
|
||||
local emmythings = string.split(docline:sub(cut), ' ')
|
||||
|
||||
if emmy then
|
||||
if emmy == 'param' then
|
||||
table.insert(dps.params, 1, {
|
||||
name = emmythings[1],
|
||||
type = emmythings[2]
|
||||
})
|
||||
end
|
||||
else
|
||||
table.insert(dps.description, 1, docline)
|
||||
end
|
||||
offset = offset + 1
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
pieces[mod][funcName] = dps
|
||||
print(line)
|
||||
print(pattern)
|
||||
print(funcName)
|
||||
pieces[iface][funcName] = docPiece
|
||||
end
|
||||
docPiece = {}
|
||||
goto continue2
|
||||
|
@ -75,57 +39,20 @@ for _, fname in ipairs(files) do
|
|||
::continue::
|
||||
end
|
||||
|
||||
local header = [[---
|
||||
title: %s %s
|
||||
description: %s
|
||||
layout: doc
|
||||
menu:
|
||||
docs:
|
||||
parent: "Nature"
|
||||
---
|
||||
|
||||
]]
|
||||
|
||||
for iface, dps in pairs(pieces) do
|
||||
local mod = iface:match '(%w+)%.' or 'nature'
|
||||
local path = string.format('docs/%s/%s.md', mod, iface)
|
||||
fs.mkdir(fs.dir(path), true)
|
||||
local f <close> = io.open(path, 'w')
|
||||
f:write(string.format(header, 'Module', iface, 'No description.'))
|
||||
local path = string.format('luadocs/api/%s/%s.md', mod, iface)
|
||||
local f <close> = io.open(path, 'a+')
|
||||
print(f)
|
||||
|
||||
print(mod, path)
|
||||
fs.mkdir(fs.dir(path), true)
|
||||
|
||||
for func, docs in pairs(dps) do
|
||||
f:write(string.format('<hr>\n<div id=\'%s\'>', func))
|
||||
local sig = string.format('%s.%s(', iface, func)
|
||||
for idx, param in ipairs(docs.params) do
|
||||
sig = sig .. ((param.name:gsub('%?$', '')))
|
||||
if idx ~= #docs.params then sig = sig .. ', ' end
|
||||
end
|
||||
sig = sig .. ')'
|
||||
f:write(string.format([[
|
||||
<h4 class='heading'>
|
||||
%s
|
||||
<a href="#%s" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
]], sig, func))
|
||||
|
||||
f:write(table.concat(docs.description, '\n') .. '\n')
|
||||
f:write '#### Parameters\n'
|
||||
if #docs.params == 0 then
|
||||
f:write 'This function has no parameters. \n'
|
||||
end
|
||||
for _, param in ipairs(docs.params) do
|
||||
f:write(string.format('`%s` **`%s`**\n', param.name:gsub('%?$', ''), param.type))
|
||||
end
|
||||
--[[
|
||||
local params = table.filter(docs, function(t)
|
||||
return t:match '^%-%-%- @param'
|
||||
end)
|
||||
f:write(string.format('## %s(', func))
|
||||
for i, str in ipairs(params) do
|
||||
if i ~= 1 then
|
||||
f:write ', '
|
||||
|
@ -139,8 +66,7 @@ for iface, dps in pairs(pieces) do
|
|||
f:write(str:match '^%-%-%- (.+)' .. '\n')
|
||||
end
|
||||
end
|
||||
]]--
|
||||
f:write('</div>')
|
||||
f:write('\n\n')
|
||||
f:write('\n')
|
||||
end
|
||||
f:flush()
|
||||
end
|
||||
|
|
|
@ -52,6 +52,7 @@ bait.catch(name, cb)
|
|||
|
||||
Catches an event. This function can be used to act on events.
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
The name of the hook.
|
||||
|
@ -77,7 +78,6 @@ bait.catchOnce(name, cb)
|
|||
</h4>
|
||||
|
||||
Catches an event, but only once. This will remove the hook immediately after it runs for the first time.
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
The name of the event
|
||||
|
@ -97,7 +97,6 @@ bait.hooks(name) -> table
|
|||
</h4>
|
||||
|
||||
Returns a list of callbacks that are hooked on an event with the corresponding `name`.
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
The name of the function
|
||||
|
@ -117,6 +116,7 @@ Removes the `catcher` for the event with `name`.
|
|||
For this to work, `catcher` has to be the same function used to catch
|
||||
an event, like one saved to a variable.
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
Name of the event the hook is on
|
||||
|
@ -147,6 +147,7 @@ bait.throw(name, ...args)
|
|||
|
||||
Throws a hook with `name` with the provided `args`.
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
The name of the hook.
|
||||
|
|
|
@ -52,7 +52,6 @@ commander.deregister(name)
|
|||
</h4>
|
||||
|
||||
Removes the named command. Note that this will only remove Commander-registered commands.
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
Name of the command to remove.
|
||||
|
@ -71,6 +70,7 @@ commander.register(name, cb)
|
|||
Adds a new command with the given `name`. When Hilbish has to run a command with a name,
|
||||
it will run the function providing the arguments and sinks.
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
Name of the command
|
||||
|
|
|
@ -42,7 +42,6 @@ fs.abs(path) -> string
|
|||
|
||||
Returns an absolute version of the `path`.
|
||||
This can be used to resolve short paths like `..` to `/home/user`.
|
||||
|
||||
#### Parameters
|
||||
`string` **`path`**
|
||||
|
||||
|
@ -60,7 +59,6 @@ fs.basename(path) -> string
|
|||
|
||||
Returns the "basename," or the last part of the provided `path`. If path is empty,
|
||||
`.` will be returned.
|
||||
|
||||
#### Parameters
|
||||
`string` **`path`**
|
||||
Path to get the base name of.
|
||||
|
@ -77,7 +75,6 @@ fs.cd(dir)
|
|||
</h4>
|
||||
|
||||
Changes Hilbish's directory to `dir`.
|
||||
|
||||
#### Parameters
|
||||
`string` **`dir`**
|
||||
Path to change directory to.
|
||||
|
@ -95,7 +92,6 @@ fs.dir(path) -> string
|
|||
|
||||
Returns the directory part of `path`. If a file path like
|
||||
`~/Documents/doc.txt` then this function will return `~/Documents`.
|
||||
|
||||
#### Parameters
|
||||
`string` **`path`**
|
||||
Path to get the directory for.
|
||||
|
@ -114,6 +110,7 @@ fs.glob(pattern) -> matches (table)
|
|||
Match all files based on the provided `pattern`.
|
||||
For the syntax' refer to Go's filepath.Match function: https://pkg.go.dev/path/filepath#Match
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`pattern`**
|
||||
Pattern to compare files with.
|
||||
|
@ -144,6 +141,7 @@ fs.join(...path) -> string
|
|||
|
||||
Takes any list of paths and joins them based on the operating system's path separator.
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`path`** (This type is variadic. You can pass an infinite amount of parameters with this type.)
|
||||
Paths to join together
|
||||
|
@ -167,10 +165,10 @@ fs.mkdir(name, recursive)
|
|||
|
||||
Creates a new directory with the provided `name`.
|
||||
With `recursive`, mkdir will create parent directories.
|
||||
|
||||
-- This will create the directory foo, then create the directory bar in the
|
||||
-- foo directory. If recursive is false in this case, it will fail.
|
||||
fs.mkdir('./foo/bar', true)
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
Name of the directory
|
||||
|
@ -194,7 +192,6 @@ fs.readdir(path) -> table[string]
|
|||
</h4>
|
||||
|
||||
Returns a list of all files and directories in the provided path.
|
||||
|
||||
#### Parameters
|
||||
`string` **`dir`**
|
||||
|
||||
|
@ -217,6 +214,7 @@ size (number) - Size of the path in bytes
|
|||
mode (string) - Unix permission mode in an octal format string (with leading 0)
|
||||
isDir (boolean) - If the path is a directory
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`path`**
|
||||
|
||||
|
|
|
@ -57,6 +57,7 @@ hilbish.alias(cmd, orig)
|
|||
|
||||
Sets an alias, with a name of `cmd` to another command.
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`cmd`**
|
||||
Name of the alias
|
||||
|
@ -86,6 +87,7 @@ hilbish.appendPath(dir)
|
|||
|
||||
Appends the provided dir to the command path (`$PATH`)
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string|table` **`dir`**
|
||||
Directory (or directories) to append to path
|
||||
|
@ -117,7 +119,6 @@ A `scope` is currently only expected to be `command.<cmd>`,
|
|||
replacing <cmd> with the name of the command (for example `command.git`).
|
||||
The documentation for completions, under Features/Completions or `doc completions`
|
||||
provides more details.
|
||||
|
||||
#### Parameters
|
||||
`string` **`scope`**
|
||||
|
||||
|
@ -137,7 +138,6 @@ hilbish.cwd() -> string
|
|||
</h4>
|
||||
|
||||
Returns the current directory of the shell
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -153,7 +153,6 @@ hilbish.exec(cmd)
|
|||
|
||||
Replaces the currently running Hilbish instance with the supplied command.
|
||||
This can be used to do an in-place restart.
|
||||
|
||||
#### Parameters
|
||||
`string` **`cmd`**
|
||||
|
||||
|
@ -172,7 +171,6 @@ hilbish.goro(fn)
|
|||
Puts `fn` in a Goroutine.
|
||||
This can be used to run any function in another thread.
|
||||
**NOTE: THIS FUNCTION MAY CRASH HILBISH IF OUTSIDE VARIABLES ARE ACCESSED.**
|
||||
|
||||
#### Parameters
|
||||
`function` **`fn`**
|
||||
|
||||
|
@ -222,6 +220,7 @@ line and cursor position. It is expected to return a string which is used
|
|||
as the text for the hint. This is by default a shim. To set hints,
|
||||
override this function with your custom handler.
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`line`**
|
||||
|
||||
|
@ -250,7 +249,6 @@ hilbish.inputMode(mode)
|
|||
Sets the input mode for Hilbish's line reader. Accepts either emacs or vim.
|
||||
`emacs` is the default. Setting it to `vim` changes behavior of input to be
|
||||
Vim-like with modes and Vim keybinds.
|
||||
|
||||
#### Parameters
|
||||
`string` **`mode`**
|
||||
|
||||
|
@ -268,7 +266,6 @@ hilbish.interval(cb, time) -> <a href="/Hilbish/docs/api/hilbish/hilbish.timers/
|
|||
|
||||
Runs the `cb` function every `time` milliseconds.
|
||||
This creates a timer that starts immediately.
|
||||
|
||||
#### Parameters
|
||||
`function` **`cb`**
|
||||
|
||||
|
@ -290,6 +287,7 @@ hilbish.multiprompt(str)
|
|||
Changes the text prompt when Hilbish asks for more input.
|
||||
This will show up when text is incomplete, like a missing quote
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`str`**
|
||||
|
||||
|
@ -324,7 +322,6 @@ hilbish.prependPath(dir)
|
|||
</h4>
|
||||
|
||||
Prepends `dir` to $PATH.
|
||||
|
||||
#### Parameters
|
||||
`string` **`dir`**
|
||||
|
||||
|
@ -376,7 +373,6 @@ hilbish.read(prompt) -> input (string)
|
|||
Read input from the user, using Hilbish's line editor/input reader.
|
||||
This is a separate instance from the one Hilbish actually uses.
|
||||
Returns `input`, will be nil if ctrl + d is pressed, or an error occurs (which shouldn't happen).
|
||||
|
||||
#### Parameters
|
||||
`string` **`prompt?`**
|
||||
|
||||
|
@ -393,7 +389,6 @@ hilbish.run(cmd, returnOut) -> exitCode (number), stdout (string), stderr (strin
|
|||
</h4>
|
||||
|
||||
Runs `cmd` in Hilbish's shell script interpreter.
|
||||
|
||||
#### Parameters
|
||||
`string` **`cmd`**
|
||||
|
||||
|
@ -417,7 +412,6 @@ Hilbish wll try to run input as Lua and/or sh or only do one of either.
|
|||
Accepted values for mode are hybrid (the default), hybridRev (sh first then Lua),
|
||||
sh, and lua. It also accepts a function, to which if it is passed one
|
||||
will call it to execute user input instead.
|
||||
|
||||
#### Parameters
|
||||
`string|function` **`mode`**
|
||||
|
||||
|
@ -435,7 +429,6 @@ hilbish.timeout(cb, time) -> <a href="/Hilbish/docs/api/hilbish/hilbish.timers/#
|
|||
|
||||
Runs the `cb` function after `time` in milliseconds.
|
||||
This creates a Timer that starts immediately.
|
||||
|
||||
#### Parameters
|
||||
`function` **`cb`**
|
||||
|
||||
|
@ -456,7 +449,6 @@ hilbish.which(name) -> string
|
|||
|
||||
Checks if `name` is a valid command.
|
||||
Will return the path of the binary, or a basename if it's a commander.
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
|
||||
|
|
|
@ -28,7 +28,6 @@ hilbish.aliases.add(alias, cmd)
|
|||
</h4>
|
||||
|
||||
This is an alias (ha) for the [hilbish.alias](../#alias) function.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -43,7 +42,6 @@ hilbish.aliases.delete(name)
|
|||
</h4>
|
||||
|
||||
Removes an alias.
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
|
||||
|
@ -61,6 +59,7 @@ hilbish.aliases.list() -> table[string, string]
|
|||
|
||||
Get a table of all aliases, with string keys as the alias and the value as the command.
|
||||
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
#### Example
|
||||
|
@ -82,7 +81,6 @@ hilbish.aliases.resolve(alias) -> string?
|
|||
</h4>
|
||||
|
||||
Resolves an alias to its original command. Will thrown an error if the alias doesn't exist.
|
||||
|
||||
#### Parameters
|
||||
`string` **`alias`**
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ hilbish.completion.bins(query, ctx, fields) -> entries (table), prefix (string)
|
|||
Return binaries/executables based on the provided parameters.
|
||||
This function is meant to be used as a helper in a command completion handler.
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`query`**
|
||||
|
||||
|
@ -72,7 +73,6 @@ hilbish.completion.call(name, query, ctx, fields) -> completionGroups (table), p
|
|||
Calls a completer function. This is mainly used to call a command completer, which will have a `name`
|
||||
in the form of `command.name`, example: `command.git`.
|
||||
You can check the Completions doc or `doc completions` for info on the `completionGroups` return value.
|
||||
|
||||
#### Parameters
|
||||
`string` **`name`**
|
||||
|
||||
|
@ -99,7 +99,6 @@ hilbish.completion.files(query, ctx, fields) -> entries (table), prefix (string)
|
|||
|
||||
Returns file matches based on the provided parameters.
|
||||
This function is meant to be used as a helper in a command completion handler.
|
||||
|
||||
#### Parameters
|
||||
`string` **`query`**
|
||||
|
||||
|
@ -125,6 +124,7 @@ This function contains the general completion handler for Hilbish. This function
|
|||
completion of everything, which includes calling other command handlers, binaries, and files.
|
||||
This function can be overriden to supply a custom handler. Note that alias resolution is required to be done in this function.
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`line`**
|
||||
The current Hilbish command line
|
||||
|
|
|
@ -30,7 +30,6 @@ hilbish.editor.getLine() -> string
|
|||
</h4>
|
||||
|
||||
Returns the current input line.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -45,7 +44,6 @@ hilbish.editor.getVimRegister(register) -> string
|
|||
</h4>
|
||||
|
||||
Returns the text that is at the register.
|
||||
|
||||
#### Parameters
|
||||
`string` **`register`**
|
||||
|
||||
|
@ -62,7 +60,6 @@ hilbish.editor.insert(text)
|
|||
</h4>
|
||||
|
||||
Inserts text into the Hilbish command line.
|
||||
|
||||
#### Parameters
|
||||
`string` **`text`**
|
||||
|
||||
|
@ -79,7 +76,6 @@ hilbish.editor.getChar() -> string
|
|||
</h4>
|
||||
|
||||
Reads a keystroke from the user. This is in a format of something like Ctrl-L.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -94,7 +90,6 @@ hilbish.editor.setVimRegister(register, text)
|
|||
</h4>
|
||||
|
||||
Sets the vim register at `register` to hold the passed text.
|
||||
|
||||
#### Parameters
|
||||
`string` **`text`**
|
||||
|
||||
|
|
|
@ -31,7 +31,6 @@ hilbish.history.add(cmd)
|
|||
</h4>
|
||||
|
||||
Adds a command to the history.
|
||||
|
||||
#### Parameters
|
||||
`string` **`cmd`**
|
||||
|
||||
|
@ -48,7 +47,6 @@ hilbish.history.all() -> table
|
|||
</h4>
|
||||
|
||||
Retrieves all history as a table.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -63,7 +61,6 @@ hilbish.history.clear()
|
|||
</h4>
|
||||
|
||||
Deletes all commands from the history.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -78,7 +75,6 @@ hilbish.history.get(index)
|
|||
</h4>
|
||||
|
||||
Retrieves a command from the history based on the `index`.
|
||||
|
||||
#### Parameters
|
||||
`number` **`index`**
|
||||
|
||||
|
@ -95,7 +91,6 @@ hilbish.history.size() -> number
|
|||
</h4>
|
||||
|
||||
Returns the amount of commands in the history.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
|
|
@ -35,6 +35,7 @@ hilbish.jobs.add(cmdstr, args, execPath)
|
|||
Creates a new job. This function does not run the job. This function is intended to be
|
||||
used by runners, but can also be used to create jobs via Lua. Commanders cannot be ran as jobs.
|
||||
|
||||
|
||||
#### Parameters
|
||||
`string` **`cmdstr`**
|
||||
String that a user would write for the job
|
||||
|
@ -61,7 +62,6 @@ hilbish.jobs.all() -> table[<a href="/Hilbish/docs/api/hilbish/hilbish.jobs/#job
|
|||
</h4>
|
||||
|
||||
Returns a table of all job objects.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -76,7 +76,6 @@ hilbish.jobs.disown(id)
|
|||
</h4>
|
||||
|
||||
Disowns a job. This simply deletes it from the list of jobs without stopping it.
|
||||
|
||||
#### Parameters
|
||||
`number` **`id`**
|
||||
|
||||
|
@ -93,7 +92,6 @@ hilbish.jobs.get(id) -> <a href="/Hilbish/docs/api/hilbish/hilbish.jobs/#job" st
|
|||
</h4>
|
||||
|
||||
Get a job object via its ID.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -108,7 +106,6 @@ hilbish.jobs.last() -> <a href="/Hilbish/docs/api/hilbish/hilbish.jobs/#job" sty
|
|||
</h4>
|
||||
|
||||
Returns the last added job to the table.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
|
|
@ -64,7 +64,6 @@ hilbish.module.load(path)
|
|||
|
||||
Loads a module at the designated `path`.
|
||||
It will throw if any error occurs.
|
||||
|
||||
#### Parameters
|
||||
`string` **`path`**
|
||||
|
||||
|
|
|
@ -34,7 +34,6 @@ This is the same as the `hilbish.runnerMode` function.
|
|||
It takes a callback, which will be used to execute all interactive input.
|
||||
In normal cases, neither callbacks should be overrided by the user,
|
||||
as the higher level functions listed below this will handle it.
|
||||
|
||||
#### Parameters
|
||||
`function` **`cb`**
|
||||
|
||||
|
@ -52,7 +51,6 @@ hilbish.runner.lua(cmd)
|
|||
|
||||
Evaluates `cmd` as Lua input. This is the same as using `dofile`
|
||||
or `load`, but is appropriated for the runner interface.
|
||||
|
||||
#### Parameters
|
||||
`string` **`cmd`**
|
||||
|
||||
|
@ -70,7 +68,6 @@ hilbish.runner.sh(cmd)
|
|||
|
||||
Runs a command in Hilbish's shell script interpreter.
|
||||
This is the equivalent of using `source`.
|
||||
|
||||
#### Parameters
|
||||
`string` **`cmd`**
|
||||
|
||||
|
|
|
@ -48,7 +48,6 @@ hilbish.timers.create(type, time, callback) -> <a href="/Hilbish/docs/api/hilbis
|
|||
</h4>
|
||||
|
||||
Creates a timer that runs based on the specified `time`.
|
||||
|
||||
#### Parameters
|
||||
`number` **`type`**
|
||||
What kind of timer to create, can either be `hilbish.timers.INTERVAL` or `hilbish.timers.TIMEOUT`
|
||||
|
@ -71,7 +70,6 @@ hilbish.timers.get(id) -> <a href="/Hilbish/docs/api/hilbish/hilbish.timers/#tim
|
|||
</h4>
|
||||
|
||||
Retrieves a timer via its ID.
|
||||
|
||||
#### Parameters
|
||||
`number` **`id`**
|
||||
|
||||
|
|
|
@ -28,7 +28,6 @@ terminal.restoreState()
|
|||
</h4>
|
||||
|
||||
Restores the last saved state of the terminal
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -43,7 +42,6 @@ terminal.saveState()
|
|||
</h4>
|
||||
|
||||
Saves the current state of the terminal.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -58,7 +56,6 @@ terminal.setRaw()
|
|||
</h4>
|
||||
|
||||
Puts the terminal into raw mode.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
@ -74,7 +71,6 @@ terminal.size()
|
|||
|
||||
Gets the dimensions of the terminal. Returns a table with `width` and `height`
|
||||
NOTE: The size refers to the amount of columns and rows of text that can fit in the terminal.
|
||||
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
|
|
@ -1,78 +0,0 @@
|
|||
---
|
||||
title: Options
|
||||
description: Simple customizable options.
|
||||
layout: doc
|
||||
menu:
|
||||
docs:
|
||||
parent: "Features"
|
||||
---
|
||||
|
||||
Opts are simple toggle or value options a user can set in Hilbish.
|
||||
As toggles, there are things like `autocd` or history saving. As values,
|
||||
there is the `motd` which the user can either change to a custom string or disable.
|
||||
|
||||
Opts are accessed from the `hilbish.opts` table. Here they can either
|
||||
be read or modified
|
||||
|
||||
### `autocd`
|
||||
#### Value: `boolean`
|
||||
#### Default: `false`
|
||||
|
||||
The autocd opt makes it so that lone directories attempted to be executed are
|
||||
instead set as the shell's directory.
|
||||
|
||||
Example:
|
||||
```
|
||||
~/Directory
|
||||
∆ ~
|
||||
~
|
||||
∆ Downloads
|
||||
~/Downloads
|
||||
∆ ../Documents
|
||||
~/Documents
|
||||
∆
|
||||
```
|
||||
|
||||
<hr>
|
||||
|
||||
### `history`
|
||||
#### Value: `boolean`
|
||||
#### Default: `true`
|
||||
Sets whether command history will be saved or not.
|
||||
|
||||
<hr>
|
||||
|
||||
### `greeting`
|
||||
#### Value: `boolean` or `string`
|
||||
The greeting is the message that Hilbish shows on startup
|
||||
(the one which says Welcome to Hilbish).
|
||||
|
||||
This can be set to either true/false to enable/disable or a custom greeting string.
|
||||
|
||||
<hr>
|
||||
|
||||
### `motd`
|
||||
#### Value: `boolean`
|
||||
#### Default: `true`
|
||||
The message of the day shows the current major.minor version and
|
||||
includes a small range of things added in the current release.
|
||||
|
||||
This can be set to `false` to disable the message.
|
||||
|
||||
<hr>
|
||||
|
||||
### `fuzzy`
|
||||
#### Value: `boolean`
|
||||
#### Default: `false`
|
||||
Toggles the functionality of fuzzy history searching, usable
|
||||
via the menu in Ctrl-R. Fuzzy searching is an approximate searching
|
||||
method, which means results that match *closest* will be shown instead
|
||||
of an exact match.
|
||||
|
||||
<hr>
|
||||
|
||||
### `notifyJobFinish`
|
||||
#### Value: `boolean`
|
||||
#### Default: `true`
|
||||
If this is enabled, when a background job is finished,
|
||||
a [notification](../notifications) will be sent.
|
|
@ -1,79 +0,0 @@
|
|||
---
|
||||
title: Module dirs
|
||||
description: No description.
|
||||
layout: doc
|
||||
menu:
|
||||
docs:
|
||||
parent: "Nature"
|
||||
---
|
||||
|
||||
<hr>
|
||||
<div id='setOld'>
|
||||
<h4 class='heading'>
|
||||
dirs.setOld(d)
|
||||
<a href="#setOld" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
Sets the old directory string.
|
||||
#### Parameters
|
||||
`d` **`string`**
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div id='push'>
|
||||
<h4 class='heading'>
|
||||
dirs.push()
|
||||
<a href="#push" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
Add `d` to the recent directories list.
|
||||
#### Parameters
|
||||
This function has no parameters.
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div id='peak'>
|
||||
<h4 class='heading'>
|
||||
dirs.peak(num)
|
||||
<a href="#peak" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
Look at `num` amount of recent directories, starting from the latest.
|
||||
#### Parameters
|
||||
`num` **`number`**
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div id='pop'>
|
||||
<h4 class='heading'>
|
||||
dirs.pop(num)
|
||||
<a href="#pop" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
Remove the specified amount of dirs from the recent directories list.
|
||||
#### Parameters
|
||||
`num` **`number`**
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div id='recent'>
|
||||
<h4 class='heading'>
|
||||
dirs.recent(idx)
|
||||
<a href="#recent" class='heading-link'>
|
||||
<i class="fas fa-paperclip"></i>
|
||||
</a>
|
||||
</h4>
|
||||
|
||||
Get entry from recent directories list based on index.
|
||||
#### Parameters
|
||||
`idx` **`number`**
|
||||
</div>
|
||||
|
|
@ -19,11 +19,9 @@ local function transformHTMLandMD(text)
|
|||
:gsub('|(.-)|(.-)|', function(entry1, entry2)
|
||||
return string.format('%s - %s', entry1, entry2)
|
||||
end)
|
||||
:gsub('<hr>', '{separator}')
|
||||
:gsub('<.->', '')
|
||||
--:gsub('^\n\n', '\n')
|
||||
:gsub('^\n\n', '\n')
|
||||
:gsub('\n%s+\n', '\n\n')
|
||||
--:gsub(' \n', '\n\n')
|
||||
:gsub(' \n', '\n\n')
|
||||
:gsub('{{< (%w+) `(.-)` >}}', function(shortcode, text)
|
||||
return docfuncs.renderInfoBlock(shortcode, text)
|
||||
end)
|
||||
|
@ -36,6 +34,8 @@ local function transformHTMLandMD(text)
|
|||
:gsub('`[^\n].-`', lunacolors.cyan)
|
||||
:gsub('#+ (.-\n)', function(heading) return lunacolors.blue(lunacolors.bold('→ ' .. heading)) end)
|
||||
:gsub('%*%*(.-)%*%*', lunacolors.bold)
|
||||
:gsub('<hr>', '{separator}')
|
||||
:gsub('<.->', '')
|
||||
end
|
||||
|
||||
commander.register('doc', function(args, sinks)
|
||||
|
@ -64,10 +64,6 @@ Available sections: ]] .. table.concat(modules, ', ')
|
|||
local valsStr = docs:match '^%-%-%-\n.-\n%-%-%-'
|
||||
if valsStr then
|
||||
docs = docs:sub(valsStr:len() + 2, #docs)
|
||||
local pre = docs:sub(1, 1)
|
||||
if pre == '\n' then
|
||||
docs = docs:sub(2)
|
||||
end
|
||||
|
||||
-- parse vals
|
||||
local lines = string.split(valsStr, '\n')
|
||||
|
|
|
@ -40,7 +40,7 @@ function dirs.peak(num)
|
|||
return dirRecents(num)
|
||||
end
|
||||
|
||||
--- Add `d` to the recent directories list.
|
||||
--- Add `d` to the recent directories.
|
||||
function dirs.push(d)
|
||||
dirs.recentDirs[dirs.recentSize + 1] = nil
|
||||
if dirs.recentDirs[#dirs.recentDirs - 1] ~= d then
|
||||
|
@ -51,19 +51,19 @@ function dirs.push(d)
|
|||
end
|
||||
end
|
||||
|
||||
--- Remove the specified amount of dirs from the recent directories list.
|
||||
--- Remove `num` amount of dirs from the recent directories.
|
||||
-- @param num number
|
||||
function dirs.pop(num)
|
||||
return dirRecents(num, true)
|
||||
end
|
||||
|
||||
--- Get entry from recent directories list based on index.
|
||||
--- Get entry from recent directories.
|
||||
-- @param idx number
|
||||
function dirs.recent(idx)
|
||||
return dirs.recentDirs[idx]
|
||||
end
|
||||
|
||||
--- Sets the old directory string.
|
||||
--- Sets the old directory.
|
||||
-- @param d string
|
||||
function dirs.setOld(d)
|
||||
ok, d = pcall(fs.abs, d)
|
||||
|
|
Loading…
Reference in New Issue