the core Hilbish API
The Hilbish module includes the core API, containing interfaces and functions which directly relate to shell functionality.
ver
: The version of Hilbishuser
: Username of the userhost
: Hostname of the machinedataDir
: Directory for Hilbish data files, including the docs and default modulesinteractive
: Is Hilbish in an interactive shell?login
: Is Hilbish the login shell?vimMode
: Current Vim input mode of Hilbish (will be nil if not in Vim input mode)exitCode
: xit code of the last executed commandSets an alias of cmd
to orig
Appends dir
to $PATH
Registers a completion handler for scope
.
A scope
is currently only expected to be command.<cmd>
,
replacing command.git
).
cb
must be a function that returns a table of “completion groups.”
Check doc completions
for more information.
Returns the current directory of the shell
Replaces running hilbish with cmd
Puts fn
in a goroutine
Line highlighter handler. This is mainly for syntax highlighting, but in reality could set the input of the prompt to display anything. The callback is passed the current line and is expected to return a line that will be used as the input display.
The command line hint handler. It gets called on every key insert to determine what text to use as an inline hint. It is passed the current 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.
Sets the input mode for Hilbish’s line reader. Accepts either emacs or vim
Runs the cb
function every time
milliseconds.
This creates a timer that starts immediately.
Changes the continued line prompt to str
Prepends dir
to $PATH
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
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)
Runs cmd
in Hilbish’s sh interpreter.
If returnOut is true, the outputs of cmd
will be returned as the 2nd and
3rd values instead of being outputted to the terminal.
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.
Runs the cb
function after time
in milliseconds.
This creates a timer that starts immediately.
Checks if name
is a valid command.
Will return the path of the binary, or a basename if it’s a commander.
A sink is a structure that has input and/or output to/from a desination.
Writes data to a sink.
Writes data to a sink with a newline at the end.
Want to help improve this page? Create an issue.