2022-02-25 22:00:39 +00:00
|
|
|
--- @meta
|
|
|
|
|
|
|
|
local hilbish = {}
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- This is an alias (ha) for the [hilbish.alias](../#alias) function.
|
2022-12-15 04:00:54 +00:00
|
|
|
--- @param alias string
|
|
|
|
--- @param cmd string
|
|
|
|
function hilbish.aliases.add(alias, cmd) end
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- This is the same as the `hilbish.runnerMode` function.
|
|
|
|
--- It takes a callback, which will be used to execute all interactive input.
|
2022-12-15 04:00:54 +00:00
|
|
|
--- In normal cases, neither callbacks should be overrided by the user,
|
|
|
|
--- as the higher level functions listed below this will handle it.
|
|
|
|
function hilbish.runner.setMode(cb) end
|
|
|
|
|
|
|
|
--- Returns the current input line.
|
|
|
|
function hilbish.editor.getLine() end
|
|
|
|
|
|
|
|
--- Returns the text that is at the register.
|
|
|
|
function hilbish.editor.getVimRegister(register) end
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Inserts text into the Hilbish command line.
|
2022-12-15 04:00:54 +00:00
|
|
|
function hilbish.editor.insert(text) end
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Reads a keystroke from the user. This is in a format of something like Ctrl-L.
|
2023-10-25 04:41:53 +00:00
|
|
|
function hilbish.editor.getChar() end
|
|
|
|
|
2022-12-15 04:00:54 +00:00
|
|
|
--- Sets the vim register at `register` to hold the passed text.
|
|
|
|
function hilbish.editor.setVimRegister(register, text) end
|
|
|
|
|
2023-12-02 17:06:42 +00:00
|
|
|
--- Return binaries/executables based on the provided parameters.
|
|
|
|
--- This function is meant to be used as a helper in a command completion handler.
|
|
|
|
---
|
|
|
|
---
|
|
|
|
function hilbish.completion.bins(query, ctx, fields) end
|
|
|
|
|
|
|
|
--- 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.
|
|
|
|
function hilbish.completion.call(name, query, ctx, fields) end
|
|
|
|
|
|
|
|
--- Returns file matches based on the provided parameters.
|
|
|
|
--- This function is meant to be used as a helper in a command completion handler.
|
|
|
|
function hilbish.completion.files(query, ctx, fields) end
|
|
|
|
|
|
|
|
--- This function contains the general completion handler for Hilbish. This function handles
|
|
|
|
--- 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.
|
|
|
|
---
|
|
|
|
---
|
|
|
|
function hilbish.completion.handler(line, pos) end
|
|
|
|
|
2023-12-02 14:49:50 +00:00
|
|
|
--- Sets an alias, with a name of `cmd` to another command.
|
|
|
|
---
|
|
|
|
---
|
2022-02-26 15:37:02 +00:00
|
|
|
function hilbish.alias(cmd, orig) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2023-12-02 14:49:50 +00:00
|
|
|
--- Appends the provided dir to the command path (`$PATH`)
|
|
|
|
---
|
|
|
|
---
|
2022-02-26 15:37:02 +00:00
|
|
|
function hilbish.appendPath(dir) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Registers a completion handler for the specified scope.
|
2023-12-26 02:32:37 +00:00
|
|
|
--- A `scope` is expected to be `command.<cmd>`,
|
2022-02-25 22:00:39 +00:00
|
|
|
--- replacing <cmd> with the name of the command (for example `command.git`).
|
2023-12-04 00:54:00 +00:00
|
|
|
--- The documentation for completions, under Features/Completions or `doc completions`
|
|
|
|
--- provides more details.
|
2023-12-26 02:32:37 +00:00
|
|
|
---
|
|
|
|
---
|
2022-03-02 02:16:12 +00:00
|
|
|
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
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Replaces the currently running Hilbish instance with the supplied command.
|
|
|
|
--- This can be used to do an in-place restart.
|
2022-02-26 15:37:02 +00:00
|
|
|
function hilbish.exec(cmd) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- 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.**
|
2022-03-04 18:41:22 +00:00
|
|
|
function hilbish.goro(fn) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- 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.
|
2023-04-15 14:36:56 +00:00
|
|
|
--- Note that to set a highlighter, one has to override this function.
|
2023-12-04 00:54:00 +00:00
|
|
|
---
|
2022-04-22 02:22:20 +00:00
|
|
|
function hilbish.highlighter(line) end
|
|
|
|
|
|
|
|
--- 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.
|
2023-12-04 00:54:00 +00:00
|
|
|
---
|
|
|
|
---
|
2022-04-22 02:22:20 +00:00
|
|
|
function hilbish.hinter(line, pos) end
|
2022-03-26 21:34:42 +00:00
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- 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.
|
2022-03-02 02:16:12 +00:00
|
|
|
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.
|
2023-01-18 10:39:26 +00:00
|
|
|
--- This creates a timer that starts immediately.
|
2022-02-26 15:37:02 +00:00
|
|
|
function hilbish.interval(cb, time) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Changes the text prompt when Hilbish asks for more input.
|
|
|
|
--- This will show up when text is incomplete, like a missing quote
|
|
|
|
---
|
|
|
|
---
|
2022-04-04 10:40:25 +00:00
|
|
|
function hilbish.multiprompt(str) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Prepends `dir` to $PATH.
|
2022-03-02 02:16:12 +00:00
|
|
|
function hilbish.prependPath(dir) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Changes the shell prompt to the provided string.
|
2022-02-25 22:00:39 +00:00
|
|
|
--- 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
|
2023-12-04 00:54:00 +00:00
|
|
|
---
|
2022-04-13 14:14:06 +00:00
|
|
|
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.
|
2023-12-04 00:54:00 +00:00
|
|
|
--- 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
|
|
|
function hilbish.read(prompt) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Runs `cmd` in Hilbish's shell script interpreter.
|
2022-12-15 04:00:54 +00:00
|
|
|
function hilbish.run(cmd, returnOut) 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
|
|
|
function hilbish.runnerMode(mode) end
|
2022-03-20 19:16:13 +00:00
|
|
|
|
2023-01-18 10:39:26 +00:00
|
|
|
--- Runs the `cb` function after `time` in milliseconds.
|
2023-12-04 00:54:00 +00:00
|
|
|
--- This creates a Timer that starts immediately.
|
2022-02-26 15:37:02 +00:00
|
|
|
function hilbish.timeout(cb, time) end
|
2022-02-25 22:00:39 +00:00
|
|
|
|
2023-01-18 10:39:26 +00:00
|
|
|
--- Checks if `name` is a valid command.
|
|
|
|
--- Will return the path of the binary, or a basename if it's a commander.
|
2022-12-15 04:00:54 +00:00
|
|
|
function hilbish.which(name) end
|
|
|
|
|
|
|
|
--- Puts a job in the background. This acts the same as initially running a job.
|
|
|
|
function hilbish.jobs:background() end
|
|
|
|
|
|
|
|
--- Puts a job in the foreground. This will cause it to run like it was
|
|
|
|
--- executed normally and wait for it to complete.
|
|
|
|
function hilbish.jobs:foreground() end
|
|
|
|
|
|
|
|
--- Evaluates `cmd` as Lua input. This is the same as using `dofile`
|
|
|
|
--- or `load`, but is appropriated for the runner interface.
|
|
|
|
function hilbish.runner.lua(cmd) end
|
|
|
|
|
2023-03-25 21:42:46 +00:00
|
|
|
--- Sets/toggles the option of automatically flushing output.
|
|
|
|
--- A call with no argument will toggle the value.
|
|
|
|
--- @param auto boolean|nil
|
|
|
|
function hilbish:autoFlush(auto) end
|
|
|
|
|
|
|
|
--- Flush writes all buffered input to the sink.
|
|
|
|
function hilbish:flush() end
|
|
|
|
|
2023-10-25 04:41:53 +00:00
|
|
|
--- Reads a liine of input from the sink.
|
2023-03-25 21:42:46 +00:00
|
|
|
--- @returns string
|
|
|
|
function hilbish:read() end
|
|
|
|
|
2023-10-25 04:41:53 +00:00
|
|
|
--- Reads all input from the sink.
|
|
|
|
--- @returns string
|
|
|
|
function hilbish:readAll() end
|
|
|
|
|
2023-02-07 19:39:22 +00:00
|
|
|
--- Writes data to a sink.
|
|
|
|
function hilbish:write(str) end
|
|
|
|
|
|
|
|
--- Writes data to a sink with a newline at the end.
|
|
|
|
function hilbish:writeln(str) end
|
|
|
|
|
2022-12-15 04:00:54 +00:00
|
|
|
--- Starts running the job.
|
|
|
|
function hilbish.jobs:start() end
|
|
|
|
|
|
|
|
--- Stops the job from running.
|
2023-01-18 10:59:10 +00:00
|
|
|
function hilbish.jobs:stop() end
|
2022-12-15 04:00:54 +00:00
|
|
|
|
2023-11-12 00:39:31 +00:00
|
|
|
--- Loads a module at the designated `path`.
|
|
|
|
--- It will throw if any error occurs.
|
|
|
|
function hilbish.module.load(path) end
|
|
|
|
|
2022-12-15 04:00:54 +00:00
|
|
|
--- Runs a command in Hilbish's shell script interpreter.
|
|
|
|
--- This is the equivalent of using `source`.
|
|
|
|
function hilbish.runner.sh(cmd) end
|
|
|
|
|
|
|
|
--- Starts a timer.
|
|
|
|
function hilbish.timers:start() end
|
|
|
|
|
|
|
|
--- Stops a timer.
|
|
|
|
function hilbish.timers:stop() end
|
|
|
|
|
|
|
|
--- Removes an alias.
|
|
|
|
function hilbish.aliases.delete(name) end
|
|
|
|
|
2022-12-21 01:00:31 +00:00
|
|
|
--- Get a table of all aliases, with string keys as the alias and the value as the command.
|
2023-12-04 00:54:00 +00:00
|
|
|
---
|
|
|
|
---
|
2022-12-15 04:00:54 +00:00
|
|
|
function hilbish.aliases.list() end
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Resolves an alias to its original command. Will thrown an error if the alias doesn't exist.
|
2022-12-15 04:00:54 +00:00
|
|
|
function hilbish.aliases.resolve(alias) end
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- 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.
|
|
|
|
---
|
|
|
|
---
|
2022-12-15 04:00:54 +00:00
|
|
|
function hilbish.jobs.add(cmdstr, args, execPath) end
|
|
|
|
|
|
|
|
--- Returns a table of all job objects.
|
|
|
|
function hilbish.jobs.all() end
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Disowns a job. This simply deletes it from the list of jobs without stopping it.
|
2022-12-15 04:00:54 +00:00
|
|
|
function hilbish.jobs.disown(id) end
|
|
|
|
|
|
|
|
--- Get a job object via its ID.
|
2022-12-21 01:00:31 +00:00
|
|
|
--- @param id number
|
|
|
|
--- @returns Job
|
2022-12-15 04:00:54 +00:00
|
|
|
function hilbish.jobs.get(id) end
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Returns the last added job to the table.
|
2022-12-15 04:00:54 +00:00
|
|
|
function hilbish.jobs.last() end
|
|
|
|
|
|
|
|
--- Adds a command to the history.
|
|
|
|
function hilbish.history.add(cmd) end
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Retrieves all history as a table.
|
2023-02-07 22:19:24 +00:00
|
|
|
function hilbish.history.all() end
|
|
|
|
|
2022-12-15 04:00:54 +00:00
|
|
|
--- Deletes all commands from the history.
|
|
|
|
function hilbish.history.clear() end
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Retrieves a command from the history based on the `index`.
|
|
|
|
function hilbish.history.get(index) end
|
2022-12-15 04:00:54 +00:00
|
|
|
|
|
|
|
--- Returns the amount of commands in the history.
|
|
|
|
function hilbish.history.size() end
|
|
|
|
|
2023-12-04 00:54:00 +00:00
|
|
|
--- Creates a timer that runs based on the specified `time`.
|
2022-12-15 04:00:54 +00:00
|
|
|
function hilbish.timers.create(type, time, callback) end
|
|
|
|
|
|
|
|
--- Retrieves a timer via its ID.
|
|
|
|
function hilbish.timers.get(id) end
|
2022-03-01 23:00:20 +00:00
|
|
|
|
2022-02-25 22:00:39 +00:00
|
|
|
return hilbish
|