diff --git a/docs/api/bait/index.html b/docs/api/bait/index.html new file mode 100644 index 0000000..ce9dbca --- /dev/null +++ b/docs/api/bait/index.html @@ -0,0 +1,11 @@ +Module bait — Hilbish +

Module bait

the event emitter

Introduction

Bait is the event emitter for Hilbish. Why name it bait? Why not. +It throws hooks that you can catch. This is what you will use if +you want to listen in on hooks to know when certain things have +happened, like when you’ve changed directory, a command has failed, +etc. To find all available hooks thrown by Hilbish, see doc hooks.

Functions

catch(name, cb)

Catches a hook with name. Runs the cb when it is thrown

catchOnce(name, cb)

Same as catch, but only runs the cb once and then removes the hook

hooks(name) -> {cb, cb…}

Returns a table with hooks on the event with name.

release(name, catcher)

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.

throw(name, …args)

Throws a hook with name with the provided args

\ No newline at end of file diff --git a/docs/api/commander/index.html b/docs/api/commander/index.html new file mode 100644 index 0000000..8c01deb --- /dev/null +++ b/docs/api/commander/index.html @@ -0,0 +1,5 @@ +Module commander — Hilbish +

Module commander

library for custom commands

Introduction

Commander is a library for writing custom commands in Lua.

Functions

deregister(name)

Deregisters any command registered with name

register(name, cb)

Register a command with name that runs cb when ran

\ No newline at end of file diff --git a/docs/api/fs/index.html b/docs/api/fs/index.html new file mode 100644 index 0000000..3c02843 --- /dev/null +++ b/docs/api/fs/index.html @@ -0,0 +1,11 @@ +Module fs — Hilbish +

Module fs

filesystem interaction and functionality library

Introduction

The fs module provides easy and simple access to filesystem functions +and other things, and acts an addition to the Lua standard library’s +I/O and filesystem functions.

Functions

abs(path)

Gives an absolute version of path.

basename(path)

Gives the basename of path. For the rules, +see Go’s filepath.Base

cd(dir)

Changes directory to dir

dir(path)

Returns the directory part of path. For the rules, see Go’s +filepath.Dir

glob(pattern)

Glob all files and directories that match the pattern. +For the rules, see Go’s filepath.Glob

join(paths…)

Takes paths and joins them together with the OS’s +directory separator (forward or backward slash).

mkdir(name, recursive)

Makes a directory called name. If recursive is true, it will create its parent directories.

readdir(dir)

Returns a table of files in dir

stat(path)

Returns info about path

\ No newline at end of file diff --git a/docs/api/hilbish/hilbish.aliases/index.html b/docs/api/hilbish/hilbish.aliases/index.html new file mode 100644 index 0000000..f488f3c --- /dev/null +++ b/docs/api/hilbish/hilbish.aliases/index.html @@ -0,0 +1,5 @@ +Interface hilbish.aliases — Hilbish +

Interface hilbish.aliases

command aliasing

Introduction

The alias interface deals with all command aliases in Hilbish.

Functions

add(alias, cmd)

This is an alias (ha) for the hilbish.alias function.

delete(name)

Removes an alias.

list()

Get a table of all aliases.

resolve(alias)

Tries to resolve an alias to its command.

\ No newline at end of file diff --git a/docs/api/hilbish/hilbish.completions/index.html b/docs/api/hilbish/hilbish.completions/index.html new file mode 100644 index 0000000..d4bf59f --- /dev/null +++ b/docs/api/hilbish/hilbish.completions/index.html @@ -0,0 +1,8 @@ +Interface hilbish.completions — Hilbish +

Interface hilbish.completions

tab completions

Introduction

The completions interface deals with tab completions.

Functions

call(name, query, ctx, fields)

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

handler(line, pos)

The handler function is the callback for tab completion in Hilbish. +You can check the completions doc for more info.

bins(query, ctx, fields)

Returns binary/executale completion candidates based on the provided query.

files(query, ctx, fields)

Returns file completion candidates based on the provided query.

\ No newline at end of file diff --git a/docs/api/hilbish/hilbish.editor/index.html b/docs/api/hilbish/hilbish.editor/index.html new file mode 100644 index 0000000..326237b --- /dev/null +++ b/docs/api/hilbish/hilbish.editor/index.html @@ -0,0 +1,6 @@ +Interface hilbish.editor — Hilbish +

Interface hilbish.editor

interactions for Hilbish's line reader

Introduction

The hilbish.editor interface provides functions to +directly interact with the line editor in use.

Functions

getLine()

Returns the current input line.

getVimRegister(register)

Returns the text that is at the register.

insert(text)

Inserts text into the line.

setVimRegister(register, text)

Sets the vim register at register to hold the passed text.

\ No newline at end of file diff --git a/docs/api/hilbish/hilbish.history/index.html b/docs/api/hilbish/hilbish.history/index.html new file mode 100644 index 0000000..6626e00 --- /dev/null +++ b/docs/api/hilbish/hilbish.history/index.html @@ -0,0 +1,7 @@ +Interface hilbish.history — Hilbish +

Interface hilbish.history

command history

Introduction

The history interface deals with command history. +This includes the ability to override functions to change the main +method of saving history.

Functions

add(cmd)

Adds a command to the history.

clear()

Deletes all commands from the history.

get(idx)

Retrieves a command from the history based on the idx.

size()

Returns the amount of commands in the history.

\ No newline at end of file diff --git a/docs/api/hilbish/hilbish.jobs/index.html b/docs/api/hilbish/hilbish.jobs/index.html new file mode 100644 index 0000000..e9e179a --- /dev/null +++ b/docs/api/hilbish/hilbish.jobs/index.html @@ -0,0 +1,7 @@ +Interface hilbish.jobs — Hilbish +

Interface hilbish.jobs

background job management

Introduction

Manage interactive jobs in Hilbish via Lua.

Jobs are the name of background tasks/commands. A job can be started via +interactive usage or with the functions defined below for use in external runners.

Object properties

  • cmd: The user entered command string for the job.
  • running: Whether the job is running or not.
  • id: The ID of the job in the job table
  • pid: The Process ID
  • exitCode: The last exit code of the job.
  • stdout: The standard output of the job. This just means the normal logs of the process.
  • stderr: The standard error stream of the process. This (usually) includes error messages of the job.

Functions

background()

Puts a job in the background. This acts the same as initially running a job.

foreground()

Puts a job in the foreground. This will cause it to run like it was +executed normally and wait for it to complete.

start()

Starts running the job.

stop()

Stops the job from running.

add(cmdstr, args, execPath)

Adds a new job to the job table. Note that this does not immediately run it.

all()

Returns a table of all job objects.

disown(id)

Disowns a job. This deletes it from the job table.

get(id)

Get a job object via its ID.

last() -> Job

Returns the last added job from the table.

\ No newline at end of file diff --git a/docs/api/hilbish/hilbish.os/index.html b/docs/api/hilbish/hilbish.os/index.html new file mode 100644 index 0000000..5aca66c --- /dev/null +++ b/docs/api/hilbish/hilbish.os/index.html @@ -0,0 +1,7 @@ +Interface hilbish.os — Hilbish +

Interface hilbish.os

OS Info

Introduction

The os interface provides simple text information properties about +the current OS on the systen. This mainly includes the name and +version.

Interface fields

  • family: Family name of the current OS
  • name: Pretty name of the current OS
  • version: Version of the current OS
\ No newline at end of file diff --git a/docs/api/hilbish/hilbish.runner/index.html b/docs/api/hilbish/hilbish.runner/index.html new file mode 100644 index 0000000..b712e07 --- /dev/null +++ b/docs/api/hilbish/hilbish.runner/index.html @@ -0,0 +1,14 @@ +Interface hilbish.runner — Hilbish +

Interface hilbish.runner

interactive command runner customization

Introduction

The runner interface contains functions that allow the user to change +how Hilbish interprets interactive input. +Users can add and change the default runner for interactive input to any +language or script of their choosing. A good example is using it to +write command in Fennel.

Functions

setMode(cb)

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.

lua(cmd)

Evaluates cmd as Lua input. This is the same as using dofile +or load, but is appropriated for the runner interface.

sh(cmd)

Runs a command in Hilbish’s shell script interpreter. +This is the equivalent of using source.

\ No newline at end of file diff --git a/docs/api/hilbish/hilbish.timers/index.html b/docs/api/hilbish/hilbish.timers/index.html new file mode 100644 index 0000000..43463ec --- /dev/null +++ b/docs/api/hilbish/hilbish.timers/index.html @@ -0,0 +1,8 @@ +Interface hilbish.timers — Hilbish +

Interface hilbish.timers

timeout and interval API

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.

Object properties

  • type: What type of timer it is
  • running: If the timer is running
  • duration: The duration in milliseconds that the timer will run

Functions

start()

Starts a timer.

stop()

Stops a timer.

create(type, time, callback)

Creates a timer that runs based on the specified time in milliseconds. +The type can either be interval (value of 0) or timeout (value of 1).

get(id)

Retrieves a timer via its ID.

\ No newline at end of file diff --git a/docs/api/hilbish/hilbish.userdir/index.html b/docs/api/hilbish/hilbish.userdir/index.html new file mode 100644 index 0000000..365e5c7 --- /dev/null +++ b/docs/api/hilbish/hilbish.userdir/index.html @@ -0,0 +1,7 @@ +Interface hilbish.userDir — Hilbish +

Interface hilbish.userDir

user-related directories

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.

Interface fields

  • config: The user’s config directory
  • data: The user’s directory for program data
\ No newline at end of file diff --git a/docs/api/hilbish/index.html b/docs/api/hilbish/index.html new file mode 100644 index 0000000..a87d6d6 --- /dev/null +++ b/docs/api/hilbish/index.html @@ -0,0 +1,32 @@ +Module hilbish — Hilbish +

Module hilbish

the core Hilbish API

Introduction

The Hilbish module includes the core API, containing +interfaces and functions which directly relate to shell functionality.

Interface fields

  • ver: The version of Hilbish
  • user: Username of the user
  • host: Hostname of the machine
  • dataDir: Directory for Hilbish data files, including the docs and default modules
  • interactive: 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 command

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 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

\ No newline at end of file diff --git a/docs/api/hilbish/index.xml b/docs/api/hilbish/index.xml new file mode 100644 index 0000000..6a2c6b8 --- /dev/null +++ b/docs/api/hilbish/index.xml @@ -0,0 +1,24 @@ +Module hilbish on Hilbishhttps://rosettea.github.io/Hilbish/docs/api/hilbish/Recent content in Module hilbish on HilbishHugo -- gohugo.ioen-usInterface hilbish.aliaseshttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.aliases/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.aliases/Introduction The alias interface deals with all command aliases in Hilbish. +Functions add(alias, cmd) This is an alias (ha) for the hilbish.alias function. +delete(name) Removes an alias. +list() Get a table of all aliases. +resolve(alias) Tries to resolve an alias to its command.Interface hilbish.completionshttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.completions/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.completions/Introduction The completions interface deals with tab completions. +Functions call(name, query, ctx, fields) 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 +handler(line, pos) The handler function is the callback for tab completion in Hilbish. You can check the completions doc for more info. +bins(query, ctx, fields) Returns binary/executale completion candidates based on the provided query.Interface hilbish.editorhttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.editor/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.editor/Introduction The hilbish.editor interface provides functions to directly interact with the line editor in use. +Functions getLine() Returns the current input line. +getVimRegister(register) Returns the text that is at the register. +insert(text) Inserts text into the line. +setVimRegister(register, text) Sets the vim register at register to hold the passed text.Interface hilbish.historyhttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.history/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.history/Introduction The history interface deals with command history. This includes the ability to override functions to change the main method of saving history. +Functions add(cmd) Adds a command to the history. +clear() Deletes all commands from the history. +get(idx) Retrieves a command from the history based on the idx. +size() Returns the amount of commands in the history.Interface hilbish.jobshttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.jobs/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.jobs/Introduction Manage interactive jobs in Hilbish via Lua. +Jobs are the name of background tasks/commands. A job can be started via interactive usage or with the functions defined below for use in external runners. +Object properties cmd: The user entered command string for the job. running: Whether the job is running or not. id: The ID of the job in the job table pid: The Process ID exitCode: The last exit code of the job.Interface hilbish.oshttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.os/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.os/ Introduction The os interface provides simple text information properties about the current OS on the systen. This mainly includes the name and version. +Interface fields family: Family name of the current OS name: Pretty name of the current OS version: Version of the current OSInterface hilbish.runnerhttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.runner/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.runner/Introduction The runner interface contains functions that allow the user to change how Hilbish interprets interactive input. Users can add and change the default runner for interactive input to any language or script of their choosing. A good example is using it to write command in Fennel. +Functions setMode(cb) This is the same as the hilbish.runnerMode function. It takes a callback, which will be used to execute all interactive input.Interface hilbish.timershttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.timers/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.timers/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. +Object properties type: What type of timer it is running: If the timer is running duration: The duration in milliseconds that the timer will run Functions start() Starts a timer. +stop() Stops a timer. +create(type, time, callback) Creates a timer that runs based on the specified time in milliseconds.Interface hilbish.userDirhttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.userdir/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.userdir/ Introduction This interface just contains properties to know about certain user directories. It is equivalent to XDG on Linux and gets the user&rsquo;s preferred directories for configs and data. +Interface fields config: The user&rsquo;s config directory data: The user&rsquo;s directory for program data \ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html new file mode 100644 index 0000000..9a9dc8d --- /dev/null +++ b/docs/api/index.html @@ -0,0 +1,5 @@ +API — Hilbish +

API

\ No newline at end of file diff --git a/docs/api/index.xml b/docs/api/index.xml new file mode 100644 index 0000000..dd45cf8 --- /dev/null +++ b/docs/api/index.xml @@ -0,0 +1,13 @@ +API on Hilbishhttps://rosettea.github.io/Hilbish/docs/api/Recent content in API on HilbishHugo -- gohugo.ioen-usModule baithttps://rosettea.github.io/Hilbish/docs/api/bait/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/bait/Introduction Bait is the event emitter for Hilbish. Why name it bait? Why not. It throws hooks that you can catch. This is what you will use if you want to listen in on hooks to know when certain things have happened, like when you&rsquo;ve changed directory, a command has failed, etc. To find all available hooks thrown by Hilbish, see doc hooks. +Functions catch(name, cb) Catches a hook with name.Module commanderhttps://rosettea.github.io/Hilbish/docs/api/commander/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/commander/Introduction Commander is a library for writing custom commands in Lua. +Functions deregister(name) Deregisters any command registered with name +register(name, cb) Register a command with name that runs cb when ranModule fshttps://rosettea.github.io/Hilbish/docs/api/fs/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/fs/Introduction The fs module provides easy and simple access to filesystem functions and other things, and acts an addition to the Lua standard library&rsquo;s I/O and filesystem functions. +Functions abs(path) Gives an absolute version of path. +basename(path) Gives the basename of path. For the rules, see Go&rsquo;s filepath.Base +cd(dir) Changes directory to dir +dir(path) Returns the directory part of path. For the rules, see Go&rsquo;s filepath.Dir +glob(pattern) Glob all files and directories that match the pattern.Module terminalhttps://rosettea.github.io/Hilbish/docs/api/terminal/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/terminal/Introduction The terminal library is a simple and lower level library for certain terminal interactions. +Functions restoreState() Restores the last saved state of the terminal +saveState() Saves the current state of the terminal +setRaw() Puts the terminal in raw mode +size() Gets the dimensions of the terminal. Returns a table with width and height Note: this is not the size in relation to the dimensions of the display \ No newline at end of file diff --git a/docs/api/terminal/index.html b/docs/api/terminal/index.html new file mode 100644 index 0000000..245ad93 --- /dev/null +++ b/docs/api/terminal/index.html @@ -0,0 +1,6 @@ +Module terminal — Hilbish +

Module terminal

low level terminal library

Introduction

The terminal library is a simple and lower level library for certain terminal interactions.

Functions

restoreState()

Restores the last saved state of the terminal

saveState()

Saves the current state of the terminal

setRaw()

Puts the terminal in raw mode

size()

Gets the dimensions of the terminal. Returns a table with width and height +Note: this is not the size in relation to the dimensions of the display

\ No newline at end of file diff --git a/docs/faq/index.html b/docs/faq/index.html index c2c3b36..b085c49 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -6,7 +6,7 @@ Where is the API documentation?" name=description>

Frequently Asked Questions

Last updated Dec 13, 2022

Is Hilbish POSIX compliant?

No, it is not. POSIX compliance is a non-goal. Perhaps in the future, +

Frequently Asked Questions

Last updated Dec 13, 2022

Is Hilbish POSIX compliant?

No, it is not. POSIX compliance is a non-goal. Perhaps in the future, someone would be able to write a native plugin to support shell scripting (which would be against it’s main goal, but ….)

Windows Support?

It compiles for Windows (CI ensures it does), but otherwise it is not directly supported. If you’d like to improve this situation, diff --git a/docs/features/index.html b/docs/features/index.html index a5bb5e7..31d3111 100644 --- a/docs/features/index.html +++ b/docs/features/index.html @@ -2,7 +2,7 @@

Features

Last updated Dec 13, 2022

Hilbish has a wide range of features to enhance the user’s experience and +

Features

Last updated Dec 13, 2022

Hilbish has a wide range of features to enhance the user’s experience and is always adding new ones. If there is something missing here or something you would like to see, please start a discussion or comment on any existing ones which match your request.

\ No newline at end of file diff --git a/docs/features/runner-mode/index.html b/docs/features/runner-mode/index.html index 7aa99ac..ffc6a0c 100644 --- a/docs/features/runner-mode/index.html +++ b/docs/features/runner-mode/index.html @@ -2,7 +2,7 @@

Runner Mode

Last updated Dec 13, 2022
Customize the interactive script/command runner.

Hilbish allows you to change how interactive text can be interpreted. +

Runner Mode

Last updated Dec 13, 2022
Customize the interactive script/command runner.

Hilbish allows you to change how interactive text can be interpreted. This is mainly due to the fact that the default method Hilbish uses is that it runs Lua first and then falls back to shell script.

In some cases, someone might want to switch to just shell script to avoid it while interactive but still have a Lua config, or go full Lua to use diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index 3a4cfde..7133375 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -4,7 +4,7 @@ Setting as Default Login shell There are a few ways to make Hilbish your default

Getting Started

Last updated Dec 13, 2022

To start Hilbish, open a terminal. If Hilbish has been installed and is not the +

Getting Started

Last updated Dec 13, 2022

To start Hilbish, open a terminal. If Hilbish has been installed and is not the default shell, you can simply run hilbish to start it. This will launch a normal interactive session. To exit, you can either run the exit command or hit Ctrl+D.

Setting as Default

Login shell

There are a few ways to make Hilbish your default shell. A simple way is diff --git a/docs/index.html b/docs/index.html index 5a11e1b..8d2e6df 100644 --- a/docs/index.html +++ b/docs/index.html @@ -8,7 +8,7 @@ Completion and history search menus Hinting and syntax highlighting (scripted by

Introduction

Last updated Dec 13, 2022

Here lies the documentation for Hilbish, the hyper extensible Lua shell.
Hilbish provides you with a few quality of life features and useful +

Introduction

Last updated Dec 13, 2022

Here lies the documentation for Hilbish, the hyper extensible Lua shell.
Hilbish provides you with a few quality of life features and useful functions to ensure you can make the shell fully yours.

These features include:

  • Completion and history search menus
  • Hinting and syntax highlighting (scripted by user)

Installation

Steps on installing Hilbish will be at the Install page in the navigation bar at the top. This also included getting development builds from the GitHub repository.

\ No newline at end of file diff --git a/index.xml b/index.xml index 43cb3b0..541893d 100644 --- a/index.xml +++ b/index.xml @@ -3,5 +3,40 @@ Windows Support? It compiles for Windows (CI ensures it does), but otherwise it Where is the API documentation?Getting Startedhttps://rosettea.github.io/Hilbish/docs/getting-started/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/getting-started/To start Hilbish, open a terminal. If Hilbish has been installed and is not the default shell, you can simply run hilbish to start it. This will launch a normal interactive session. To exit, you can either run the exit command or hit Ctrl+D. Setting as Default Login shell There are a few ways to make Hilbish your default shell. A simple way is to make it your user/login shell.Installhttps://rosettea.github.io/Hilbish/install/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/install/Official Binaries The best way to get Hilbish is to get a build directly from GitHub. At any time, there are 2 versions of Hilbish recommended for download: the latest stable release, and development builds from the master branch. You can download both at any time, but note that the development builds may have breaking changes. -For the latest stable release, check here: https://github.com/Rosettea/Hilbish/releases/latest For a development build: https://nightly.link/Rosettea/Hilbish/workflows/build/master Package Repositories Arch Linux (AUR) Hilbish is on the AUR.Runner Modehttps://rosettea.github.io/Hilbish/docs/features/runner-mode/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/features/runner-mode/Hilbish allows you to change how interactive text can be interpreted. This is mainly due to the fact that the default method Hilbish uses is that it runs Lua first and then falls back to shell script. +For the latest stable release, check here: https://github.com/Rosettea/Hilbish/releases/latest For a development build: https://nightly.link/Rosettea/Hilbish/workflows/build/master Package Repositories Arch Linux (AUR) Hilbish is on the AUR.Interface hilbish.aliaseshttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.aliases/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.aliases/Introduction The alias interface deals with all command aliases in Hilbish. +Functions add(alias, cmd) This is an alias (ha) for the hilbish.alias function. +delete(name) Removes an alias. +list() Get a table of all aliases. +resolve(alias) Tries to resolve an alias to its command.Interface hilbish.completionshttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.completions/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.completions/Introduction The completions interface deals with tab completions. +Functions call(name, query, ctx, fields) 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 +handler(line, pos) The handler function is the callback for tab completion in Hilbish. You can check the completions doc for more info. +bins(query, ctx, fields) Returns binary/executale completion candidates based on the provided query.Interface hilbish.editorhttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.editor/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.editor/Introduction The hilbish.editor interface provides functions to directly interact with the line editor in use. +Functions getLine() Returns the current input line. +getVimRegister(register) Returns the text that is at the register. +insert(text) Inserts text into the line. +setVimRegister(register, text) Sets the vim register at register to hold the passed text.Interface hilbish.historyhttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.history/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.history/Introduction The history interface deals with command history. This includes the ability to override functions to change the main method of saving history. +Functions add(cmd) Adds a command to the history. +clear() Deletes all commands from the history. +get(idx) Retrieves a command from the history based on the idx. +size() Returns the amount of commands in the history.Interface hilbish.jobshttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.jobs/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.jobs/Introduction Manage interactive jobs in Hilbish via Lua. +Jobs are the name of background tasks/commands. A job can be started via interactive usage or with the functions defined below for use in external runners. +Object properties cmd: The user entered command string for the job. running: Whether the job is running or not. id: The ID of the job in the job table pid: The Process ID exitCode: The last exit code of the job.Interface hilbish.oshttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.os/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.os/ Introduction The os interface provides simple text information properties about the current OS on the systen. This mainly includes the name and version. +Interface fields family: Family name of the current OS name: Pretty name of the current OS version: Version of the current OSInterface hilbish.runnerhttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.runner/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.runner/Introduction The runner interface contains functions that allow the user to change how Hilbish interprets interactive input. Users can add and change the default runner for interactive input to any language or script of their choosing. A good example is using it to write command in Fennel. +Functions setMode(cb) This is the same as the hilbish.runnerMode function. It takes a callback, which will be used to execute all interactive input.Interface hilbish.timershttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.timers/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.timers/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. +Object properties type: What type of timer it is running: If the timer is running duration: The duration in milliseconds that the timer will run Functions start() Starts a timer. +stop() Stops a timer. +create(type, time, callback) Creates a timer that runs based on the specified time in milliseconds.Interface hilbish.userDirhttps://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.userdir/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.userdir/ Introduction This interface just contains properties to know about certain user directories. It is equivalent to XDG on Linux and gets the user&rsquo;s preferred directories for configs and data. +Interface fields config: The user&rsquo;s config directory data: The user&rsquo;s directory for program dataModule baithttps://rosettea.github.io/Hilbish/docs/api/bait/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/bait/Introduction Bait is the event emitter for Hilbish. Why name it bait? Why not. It throws hooks that you can catch. This is what you will use if you want to listen in on hooks to know when certain things have happened, like when you&rsquo;ve changed directory, a command has failed, etc. To find all available hooks thrown by Hilbish, see doc hooks. +Functions catch(name, cb) Catches a hook with name.Module commanderhttps://rosettea.github.io/Hilbish/docs/api/commander/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/commander/Introduction Commander is a library for writing custom commands in Lua. +Functions deregister(name) Deregisters any command registered with name +register(name, cb) Register a command with name that runs cb when ranModule fshttps://rosettea.github.io/Hilbish/docs/api/fs/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/fs/Introduction The fs module provides easy and simple access to filesystem functions and other things, and acts an addition to the Lua standard library&rsquo;s I/O and filesystem functions. +Functions abs(path) Gives an absolute version of path. +basename(path) Gives the basename of path. For the rules, see Go&rsquo;s filepath.Base +cd(dir) Changes directory to dir +dir(path) Returns the directory part of path. For the rules, see Go&rsquo;s filepath.Dir +glob(pattern) Glob all files and directories that match the pattern.Module terminalhttps://rosettea.github.io/Hilbish/docs/api/terminal/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/api/terminal/Introduction The terminal library is a simple and lower level library for certain terminal interactions. +Functions restoreState() Restores the last saved state of the terminal +saveState() Saves the current state of the terminal +setRaw() Puts the terminal in raw mode +size() Gets the dimensions of the terminal. Returns a table with width and height Note: this is not the size in relation to the dimensions of the displayRunner Modehttps://rosettea.github.io/Hilbish/docs/features/runner-mode/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/docs/features/runner-mode/Hilbish allows you to change how interactive text can be interpreted. This is mainly due to the fact that the default method Hilbish uses is that it runs Lua first and then falls back to shell script. In some cases, someone might want to switch to just shell script to avoid it while interactive but still have a Lua config, or go full Lua to use Hilbish as a REPL. This also allows users to add alternative languages, instead of either like Fennel. \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 5c58497..9994d9e 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://rosettea.github.io/Hilbish/docs/features/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/docs/faq/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/docs/getting-started/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/docs/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/categories/https://rosettea.github.io/Hilbish/install/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/docs/features/runner-mode/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/tags/ \ No newline at end of file +https://rosettea.github.io/Hilbish/docs/api/https://rosettea.github.io/Hilbish/docs/features/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/docs/faq/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/docs/getting-started/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/docs/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/categories/https://rosettea.github.io/Hilbish/install/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.aliases/https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.completions/https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.editor/https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.history/https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.jobs/https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.os/https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.runner/https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.timers/https://rosettea.github.io/Hilbish/docs/api/hilbish/hilbish.userdir/https://rosettea.github.io/Hilbish/docs/api/bait/https://rosettea.github.io/Hilbish/docs/api/commander/https://rosettea.github.io/Hilbish/docs/api/fs/https://rosettea.github.io/Hilbish/docs/api/hilbish/https://rosettea.github.io/Hilbish/docs/api/terminal/https://rosettea.github.io/Hilbish/docs/features/runner-mode/2022-12-13T15:14:48-04:00https://rosettea.github.io/Hilbish/tags/ \ No newline at end of file