docs: upload interface docs, fix gitignore for it

docs-refactor
TorchedSammy 2022-12-05 19:05:28 -04:00
parent 9e2d77d138
commit c45c6a61bc
Signed by: sammyette
GPG Key ID: 904FC49417B44DCD
8 changed files with 169 additions and 0 deletions

1
.gitignore vendored
View File

@ -1,5 +1,6 @@
*.exe
hilbish
!docs/api/hilbish
docgen
.vim

View File

@ -0,0 +1,91 @@
---
name: Module hilbish
description: the core Hilbish API
layout: apidoc
---
## Introduction
The Hilbish module includes the core API, containing
interfaces and functions which directly relate to shell functionality.
## Functions
### alias(cmd, orig)
Sets an alias of `cmd` to `orig`
### appendPath(dir)
Appends `dir` to $PATH
### complete(scope, cb)
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`).
`cb` must be a function that returns a table of "completion groups."
Check `doc completions` for more information.
### cwd()
Returns the current directory of the shell
### exec(cmd)
Replaces running hilbish with `cmd`
### goro(fn)
Puts `fn` in a goroutine
### highlighter(line)
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.
### hinter(line, pos)
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.
### inputMode(mode)
Sets the input mode for Hilbish's line reader. Accepts either emacs or vim
### interval(cb, time)
Runs the `cb` function every `time` milliseconds.
Returns a `timer` object (see `doc timers`).
### multiprompt(str)
Changes the continued line prompt to `str`
### prependPath(dir)
Prepends `dir` to $PATH
### prompt(str, typ)
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(prompt) -> input
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)
### run(cmd, returnOut) -> exitCode, stdout, stderr
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.
### runnerMode(mode)
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.
### timeout(cb, time)
Runs the `cb` function after `time` in milliseconds
Returns a `timer` object (see `doc timers`).
### which(name)
Checks if `name` is a valid command

View File

@ -0,0 +1,13 @@
---
name: Interface hilbish.aliases
description: command aliasing
layout: apidoc
---
## Introduction
The alias interface deals with all command aliases in Hilbish.
## Functions
### list()
Get a table of all aliases.

View File

@ -0,0 +1,9 @@
---
name: Interface hilbish.completions
description: tab completions
layout: apidoc
---
## Introduction
The completions interface deals with tab completions.

View File

@ -0,0 +1,11 @@
---
name: Interface hilbish.history
description: command history
layout: apidoc
---
## Introduction
The history interface deals with command history.
This includes the ability to override functions to change the main
method of saving history.

View File

@ -0,0 +1,15 @@
---
name: Interface hilbish.os
description: OS Info
layout: apidoc
---
## Introduction
The `os` interface provides simple text information properties about
the current OS on the systen. This mainly includes the name and
version.
## Properties
- `family`: Family name of the current OS
- `name`: Pretty name of the current OS
- `version`: Version of the current OS

View File

@ -0,0 +1,15 @@
---
name: Interface hilbish.timers
description: timeout and interval API
layout: apidoc
---
## Introduction
The timers interface si one to easily set timeouts and intervals
to run functions after a certain time or repeatedly without using
odd tricks.
## Functions
### stop()
Stops a timer.

View File

@ -0,0 +1,14 @@
---
name: Interface hilbish.userDir
description: user-related directories
layout: apidoc
---
## Introduction
This interface just contains properties to know about certain user directories.
It is equivalent to XDG on Linux and gets the user's preferred directories
for configs and data.
## Properties
- `config`: The user's config directory
- `data`: The user's directory for program data