2022-02-25 22:00:39 +00:00
|
|
|
--- @meta
|
|
|
|
|
|
|
|
local hilbish = {}
|
|
|
|
|
2022-03-20 21:54:55 +00:00
|
|
|
--- Sets an alias of `cmd` to `orig`
|
2022-02-26 15:37:02 +00:00
|
|
|
--- @param cmd string
|
|
|
|
--- @param orig string
|
|
|
|
function hilbish.alias(cmd, orig) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
|
|
|
--- Appends `dir` to $PATH
|
2022-02-26 15:37:02 +00:00
|
|
|
--- @param dir string|table
|
|
|
|
function hilbish.appendPath(dir) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
|
|
|
--- Registers a completion handler for `scope`.
|
|
|
|
--- A `scope` is currently only expected to be `command.<cmd>`,
|
|
|
|
--- replacing <cmd> with the name of the command (for example `command.git`).
|
2022-03-05 20:13:15 +00:00
|
|
|
--- `cb` must be a function that returns a table of "completion groups."
|
|
|
|
--- A completion group is a table with the keys `items` and `type`.
|
|
|
|
--- `items` being a table of items and `type` being the display type of
|
|
|
|
--- `grid` (the normal file completion display) or `list` (with a description)
|
2022-03-02 02:16:12 +00:00
|
|
|
--- @param scope string
|
|
|
|
--- @param cb function
|
|
|
|
function hilbish.complete(scope, cb) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
|
|
|
--- Returns the current directory of the shell
|
|
|
|
function hilbish.cwd() end
|
|
|
|
|
|
|
|
--- Replaces running hilbish with `cmd`
|
2022-02-26 15:37:02 +00:00
|
|
|
--- @param cmd string
|
|
|
|
function hilbish.exec(cmd) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
|
|
|
--- Puts `fn` in a goroutine
|
2022-02-26 15:37:02 +00:00
|
|
|
--- @param fn function
|
2022-03-04 18:41:22 +00:00
|
|
|
function hilbish.goro(fn) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2022-03-26 22:28:27 +00:00
|
|
|
--- Sets the highlighter function. This is mainly for syntax hightlighting, but in
|
|
|
|
--- reality could set the input of the prompt to display anything. The callback
|
|
|
|
--- is passed the current line as typed and is expected to return a line that will
|
|
|
|
--- be used to display in the line.
|
|
|
|
--- @param cb function
|
|
|
|
function hilbish.highlighter(cb) end
|
2022-03-26 22:26:10 +00:00
|
|
|
|
2022-03-26 21:34:42 +00:00
|
|
|
--- Sets the hinter function. This will be called on every key insert to determine
|
|
|
|
--- what text to use as an inline hint. The callback is passed 2 arguments:
|
|
|
|
--- the current line and the position. It is expected to return a string
|
|
|
|
--- which will be used for the hint.
|
|
|
|
--- @param cb function
|
|
|
|
function hilbish.hinter(cb) end
|
|
|
|
|
2022-04-21 16:19:31 +00:00
|
|
|
--- Sets the input mode for Hilbish's line reader. Accepts either emacs or vim
|
2022-03-02 02:16:12 +00:00
|
|
|
--- @param mode string
|
|
|
|
function hilbish.inputMode(mode) end
|
2022-03-02 02:01:22 +00:00
|
|
|
|
2022-04-12 23:37:39 +00:00
|
|
|
--- Runs the `cb` function every `time` milliseconds.
|
|
|
|
--- Returns a `timer` object (see `doc timers`).
|
2022-02-26 15:37:02 +00:00
|
|
|
--- @param cb function
|
|
|
|
--- @param time number
|
2022-04-12 23:37:39 +00:00
|
|
|
--- @return table
|
2022-02-26 15:37:02 +00:00
|
|
|
function hilbish.interval(cb, time) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
|
|
|
--- Changes the continued line prompt to `str`
|
2022-02-26 15:37:02 +00:00
|
|
|
--- @param str string
|
2022-04-04 10:40:25 +00:00
|
|
|
function hilbish.multiprompt(str) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
|
|
|
--- Prepends `dir` to $PATH
|
2022-03-02 02:16:12 +00:00
|
|
|
--- @param dir string
|
|
|
|
function hilbish.prependPath(dir) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
|
|
|
--- Changes the shell prompt to `str`
|
|
|
|
--- There are a few verbs that can be used in the prompt text.
|
|
|
|
--- These will be formatted and replaced with the appropriate values.
|
|
|
|
--- `%d` - Current working directory
|
|
|
|
--- `%u` - Name of current user
|
|
|
|
--- `%h` - Hostname of device
|
2022-02-26 15:37:02 +00:00
|
|
|
--- @param str string
|
2022-04-13 14:14:06 +00:00
|
|
|
--- @param typ string Type of prompt, being left or right. Left by default.
|
|
|
|
function hilbish.prompt(str, typ) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
|
|
|
--- 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)
|
2022-02-26 15:37:02 +00:00
|
|
|
--- @param prompt string
|
|
|
|
function hilbish.read(prompt) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
|
|
|
--- Runs `cmd` in Hilbish's sh interpreter.
|
2022-04-04 10:40:25 +00:00
|
|
|
--- If returnOut is true, the outputs of `cmd` will be returned as the 2nd and
|
|
|
|
--- 3rd values instead of being outputted to the terminal.
|
2022-02-26 15:37:02 +00:00
|
|
|
--- @param cmd string
|
|
|
|
function hilbish.run(cmd) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2022-03-20 19:16:13 +00:00
|
|
|
--- Sets the execution/runner mode for interactive Hilbish. This determines whether
|
|
|
|
--- 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.
|
2022-03-22 22:33:52 +00:00
|
|
|
--- @param mode string|function
|
|
|
|
function hilbish.runnerMode(mode) end
|
2022-03-20 19:16:13 +00:00
|
|
|
|
2022-02-25 22:00:39 +00:00
|
|
|
--- Runs the `cb` function after `time` in milliseconds
|
2022-04-12 23:37:39 +00:00
|
|
|
--- Returns a `timer` object (see `doc timers`).
|
2022-02-26 15:37:02 +00:00
|
|
|
--- @param cb function
|
|
|
|
--- @param time number
|
2022-04-12 23:37:39 +00:00
|
|
|
--- @return table
|
2022-02-26 15:37:02 +00:00
|
|
|
function hilbish.timeout(cb, time) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2022-03-01 23:00:20 +00:00
|
|
|
--- Searches for an executable called `binName` in the directories of $PATH
|
2022-03-02 02:16:12 +00:00
|
|
|
--- @param binName string
|
|
|
|
function hilbish.which(binName) end
|
2022-03-01 23:00:20 +00:00
|
|
|
|
2022-02-25 22:00:39 +00:00
|
|
|
return hilbish
|