From e934498620666ad7305634b0b4d8bbae1f923f9a Mon Sep 17 00:00:00 2001 From: TorchedSammy Date: Tue, 26 Dec 2023 02:33:01 +0000 Subject: [PATCH] deploy: 3219c470718e333710fde1a86bec0113c89337f8 --- versions/doc-improvements/completion.mp4 | Bin 0 -> 34742 bytes .../doc-improvements/docs/api/bait/index.html | 8 +-- .../docs/api/commander/index.html | 2 +- .../doc-improvements/docs/api/fs/index.html | 2 +- .../api/hilbish/hilbish.aliases/index.html | 2 +- .../api/hilbish/hilbish.completion/index.html | 2 +- .../api/hilbish/hilbish.editor/index.html | 2 +- .../api/hilbish/hilbish.history/index.html | 2 +- .../docs/api/hilbish/hilbish.jobs/index.html | 2 +- .../api/hilbish/hilbish.module/index.html | 2 +- .../docs/api/hilbish/hilbish.os/index.html | 2 +- .../api/hilbish/hilbish.runner/index.html | 22 +++++- .../api/hilbish/hilbish.timers/index.html | 2 +- .../api/hilbish/hilbish.userdir/index.html | 2 +- .../docs/api/hilbish/index.html | 46 +++++++++--- .../docs/api/hilbish/index.xml | 3 +- versions/doc-improvements/docs/api/index.html | 2 +- .../docs/api/terminal/index.html | 2 +- .../docs/completions/index.html | 68 ++++++++++-------- versions/doc-improvements/docs/faq/index.html | 2 +- .../doc-improvements/docs/features/index.html | 2 +- .../docs/features/notifications/index.html | 2 +- .../docs/features/opts/index.html | 2 +- .../docs/features/runner-mode/index.html | 22 +++++- .../docs/getting-started/index.html | 2 +- .../docs/hooks/command/index.html | 2 +- .../docs/hooks/hilbish/index.html | 2 +- .../doc-improvements/docs/hooks/index.html | 2 +- .../docs/hooks/signal/index.html | 2 +- versions/doc-improvements/docs/index.html | 2 +- versions/doc-improvements/docs/index.xml | 10 +-- .../doc-improvements/docs/jobs/index.html | 16 +++-- .../docs/lunacolors/index.html | 2 +- .../docs/nature/dirs/index.html | 2 +- .../doc-improvements/docs/nature/index.html | 2 +- .../docs/vim-mode/actions/index.html | 2 +- .../doc-improvements/docs/vim-mode/index.html | 2 +- versions/doc-improvements/index.xml | 19 ++--- versions/doc-improvements/sitemap.xml | 2 +- 39 files changed, 176 insertions(+), 96 deletions(-) create mode 100644 versions/doc-improvements/completion.mp4 diff --git a/versions/doc-improvements/completion.mp4 b/versions/doc-improvements/completion.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..057f9ab4af41feb13c90a3532226cb0ddc438d09 GIT binary patch literal 34742 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

fJ#v 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%0A8<#)W_L{=hfpuv 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 bait — Hilbish

Module bait

the event emitter

Introduction +

Module bait

the event emitter

Introduction

Bait is the event emitter for Hilbish. Much like Node.js and its events system, many actions in Hilbish emit events. Unlike Node.js, Hilbish events are global. So make sure to @@ -16,7 +16,7 @@ Consider this part of it:

<
 5end)
 

What this does is, whenever the command.exit event is thrown, this function will set the user prompt.

Functions -

catch(name, cb)Catches an event. This function can be used to act on events.
catchOnce(name, cb)Catches an event, but only once. This will remove the hook immediately after it runs for the first time.
hooks(name) -> tableReturns a list of callbacks that are hooked on an event with the corresponding name.
release(name, catcher)Removes the catcher for the event with name.
throw(name, …args)Throws a hook with name with the provided args.

bait.catch(name, cb) +

catch(name, cb)Catches an event. This function can be used to act on events.
catchOnce(name, cb)Catches an event, but only once. This will remove the hook immediately after it runs for the first time.
hooks(name) -> tableReturns a table of functions that are hooked on an event with the corresponding name.
release(name, catcher)Removes the catcher for the event with name.
throw(name, …args)Throws a hook with name with the provided args.

bait.catch(name, cb)

Catches an event. This function can be used to act on events.

Parameters

string name
The name of the hook.

function cb
The function that will be called when the hook is thrown.

Example
1bait.catch('hilbish.exit', function()
@@ -25,8 +25,8 @@ this function will set the user prompt.

Functi


bait.catchOnce(name, cb)

Catches an event, but only once. This will remove the hook immediately after it runs for the first time.

Parameters

string name
The name of the event

function cb
The function that will be called when the event is thrown.


bait.hooks(name) -> table -

Returns a list of callbacks that are hooked on an event with the corresponding name.

Parameters -

string name
The name of the function


bait.release(name, catcher) +

Returns a table of functions that are hooked on an event with the corresponding name.

Parameters +

string name
The name of the hook


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

Parameters

string name
Name of the event the hook is on

function catcher
Hook function to remove

Example
1local hookCallback = function() print 'hi' end
diff --git a/versions/doc-improvements/docs/api/commander/index.html b/versions/doc-improvements/docs/api/commander/index.html
index 865622c..45d9675 100644
--- a/versions/doc-improvements/docs/api/commander/index.html
+++ b/versions/doc-improvements/docs/api/commander/index.html
@@ -1,7 +1,7 @@
 Module commander — Hilbish
 

Module commander

library for custom commands

Introduction +

Module commander

library for custom commands

Introduction

Commander is the library which handles Hilbish commands. This makes the user able to add Lua-written commands to their shell without making a separate script in a bin folder. Instead, you may simply use the Commander diff --git a/versions/doc-improvements/docs/api/fs/index.html b/versions/doc-improvements/docs/api/fs/index.html index 5c7c521..a5f8004 100644 --- a/versions/doc-improvements/docs/api/fs/index.html +++ b/versions/doc-improvements/docs/api/fs/index.html @@ -1,7 +1,7 @@ Module fs — Hilbish

Module fs

filesystem interaction and functionality library

Introduction +

Module fs

filesystem interaction and functionality library

Introduction

The fs module provides filesystem functions to Hilbish. While Lua’s standard library has some I/O functions, they’re missing a lot of the basics. The fs library offers more functions and will work on any operating system Hilbish does.

Functions diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.aliases/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.aliases/index.html index b0b5848..4355d05 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.aliases/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.aliases/index.html @@ -1,7 +1,7 @@ Module hilbish.aliases — Hilbish

Module hilbish.aliases

command aliasing

Introduction +

Module 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() -> table[string, string]Get a table of all aliases, with string keys as the alias and the value as the command.
resolve(alias) -> string?Resolves an alias to its original command. Will thrown an error if the alias doesn’t exist.

hilbish.aliases.add(alias, cmd) diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.completion/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.completion/index.html index cce8bb1..c6d6743 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.completion/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.completion/index.html @@ -1,7 +1,7 @@ Module hilbish.completion — Hilbish

Module hilbish.completion

tab completions

Introduction +

Module hilbish.completion

tab completions

Introduction

The completions interface deals with tab completions.

Functions

bins(query, ctx, fields) -> entries (table), prefix (string)Return binaries/executables based on the provided parameters.
call(name, query, ctx, fields) -> completionGroups (table), prefix (string)Calls a completer function. This is mainly used to call a command completer, which will have a name
files(query, ctx, fields) -> entries (table), prefix (string)Returns file matches based on the provided parameters.
handler(line, pos)This function contains the general completion handler for Hilbish. This function handles

hilbish.completion.bins(query, ctx, fields) -> entries (table), prefix (string)

Return binaries/executables based on the provided parameters.
This function is meant to be used as a helper in a command completion handler.

Parameters diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.editor/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.editor/index.html index 509602b..99dc815 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.editor/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.editor/index.html @@ -1,7 +1,7 @@ Module hilbish.editor — Hilbish

Module hilbish.editor

interactions for Hilbish's line reader

Introduction +

Module 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() -> stringReturns the current input line.
getVimRegister(register) -> stringReturns the text that is at the register.
insert(text)Inserts text into the Hilbish command line.
getChar() -> stringReads a keystroke from the user. This is in a format of something like Ctrl-L.
setVimRegister(register, text)Sets the vim register at register to hold the passed text.

hilbish.editor.getLine() -> string diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.history/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.history/index.html index da37e2b..ad93530 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.history/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.history/index.html @@ -1,7 +1,7 @@ Module hilbish.history — Hilbish

Module hilbish.history

command history

Introduction +

Module 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 diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.jobs/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.jobs/index.html index dc05061..9c84018 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.jobs/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.jobs/index.html @@ -1,7 +1,7 @@ Module hilbish.jobs — Hilbish

Module hilbish.jobs

background job management

Introduction +

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

Functions

add(cmdstr, args, execPath)Creates a new job. This function does not run the job. This function is intended to be
all() -> table[@Job]Returns a table of all job objects.
disown(id)Disowns a job. This simply deletes it from the list of jobs without stopping it.
get(id) -> @JobGet a job object via its ID.
last() -> @JobReturns the last added job to the table.

hilbish.jobs.add(cmdstr, args, execPath) diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.module/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.module/index.html index 3179ac9..7ea891c 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.module/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.module/index.html @@ -1,7 +1,7 @@ Module hilbish.module — Hilbish

Module hilbish.module

native module loading

Introduction +

Module hilbish.module

native module loading

Introduction

The hilbish.module interface provides a function to load Hilbish plugins/modules. Hilbish modules are Go-written plugins (see https://pkg.go.dev/plugin diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.os/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.os/index.html index 9925186..f5da44c 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.os/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.os/index.html @@ -1,7 +1,7 @@ Module hilbish.os — Hilbish

Module hilbish.os

operating system info

Introduction +

Module hilbish.os

operating system info

Introduction

Provides simple text information properties about the current operating system. This mainly includes the name and version.

Static module fields

familyFamily name of the current OS
namePretty name of the current OS
versionVersion of the current OS
\ No newline at end of file diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.runner/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.runner/index.html index b7096ed..086ba08 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.runner/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.runner/index.html @@ -1,12 +1,30 @@ Module hilbish.runner — Hilbish

Module hilbish.runner

interactive command runner customization

Introduction +

Module 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 +write command in Fennel.

Runners are functions that evaluate user input. The default runners in +Hilbish can run shell script and Lua code.

A runner is passed the input and has to return a table with these values. +All are not required, only the useful ones the runner needs to return. +(So if there isn’t an error, just omit err.)

  • exitCode (number): A numerical code to indicate the exit result.
  • input (string): The user input. This will be used to add +to the history.
  • err (string): A string to indicate an interal error for the runner. +It can be set to a few special values for Hilbish to throw the right hooks and have a better looking message:

[command]: not-found will throw a command.not-found hook based on what [command] is.

[command]: not-executable will throw a command.not-executable hook.

  • continue (boolean): Whether to prompt the user for more input.

Here is a simple example of a fennel runner. It falls back to +shell script if fennel eval has an error.

 1local fennel = require 'fennel'
+ 2
+ 3hilbish.runnerMode(function(input)
+ 4	local ok = pcall(fennel.eval, input)
+ 5	if ok then
+ 6		return {
+ 7			input = input
+ 8		}
+ 9	end
+10
+11	return hilbish.runner.sh(input)
+12end)
+

Functions

setMode(cb)This is the same as the hilbish.runnerMode function.
lua(cmd)Evaluates cmd as Lua input. This is the same as using dofile
sh(cmd)Runs a command in Hilbish’s shell script interpreter.

hilbish.runner.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.

Parameters

function cb


hilbish.runner.lua(cmd) diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.timers/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.timers/index.html index 406a672..b15bbd2 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.timers/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.timers/index.html @@ -1,7 +1,7 @@ Module hilbish.timers — Hilbish

Module hilbish.timers

timeout and interval API

Introduction +

Module hilbish.timers

timeout and interval API

Introduction

If you ever want to run a piece of code on a timed interval, or want to wait a few seconds, you don’t have to rely on timing tricks, as Hilbish has a timer API to set intervals and timeouts.

These are the simple functions hilbish.interval and hilbish.timeout (doc diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.userdir/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.userdir/index.html index 073541c..d4c2db0 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.userdir/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.userdir/index.html @@ -1,7 +1,7 @@ Module hilbish.userDir — Hilbish

Module hilbish.userDir

user-related directories

Introduction +

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

Static module fields diff --git a/versions/doc-improvements/docs/api/hilbish/index.html b/versions/doc-improvements/docs/api/hilbish/index.html index ae074df..3b3dde9 100644 --- a/versions/doc-improvements/docs/api/hilbish/index.html +++ b/versions/doc-improvements/docs/api/hilbish/index.html @@ -1,7 +1,7 @@ Module hilbish — Hilbish

Module hilbish

the core Hilbish API

Introduction +

Module hilbish

the core Hilbish API

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, with a name of cmd to another command.
appendPath(dir)Appends the provided dir to the command path ($PATH)
complete(scope, cb)Registers a completion handler for the specified scope.
cwd() -> stringReturns the current directory of the shell
exec(cmd)Replaces the currently running Hilbish instance with the supplied command.
goro(fn)Puts fn in a Goroutine.
highlighter(line)Line highlighter handler.
hinter(line, pos)The command line hint handler. It gets called on every key insert to
inputMode(mode)Sets the input mode for Hilbish’s line reader. Accepts either emacs or vim.
interval(cb, time) -> @TimerRuns the cb function every time milliseconds.
multiprompt(str)Changes the text prompt when Hilbish asks for more input.
prependPath(dir)Prepends dir to $PATH.
prompt(str, typ)Changes the shell prompt to the provided string.
read(prompt) -> input (string)Read input from the user, using Hilbish’s line editor/input reader.
run(cmd, returnOut) -> exitCode (number), stdout (string), stderr (string)Runs cmd in Hilbish’s shell script interpreter.
runnerMode(mode)Sets the execution/runner mode for interactive Hilbish. This determines whether
timeout(cb, time) -> @TimerRuns the cb function after time in milliseconds.
which(name) -> stringChecks if name is a valid command.

Static module fields @@ -26,8 +26,32 @@ interfaces and functions which directly relate to shell functionality.

7 '~/.local/bin' 8}


hilbish.complete(scope, cb) -

Registers a completion handler for the specified scope.
A scope is currently only expected to be command.<cmd>,
replacing with the name of the command (for example command.git).
The documentation for completions, under Features/Completions or doc completions
provides more details.

Parameters -

string scope

function cb


hilbish.cwd() -> string +

Registers a completion handler for the specified scope.
A scope is expected to be command.<cmd>,
replacing with the name of the command (for example command.git).
The documentation for completions, under Features/Completions or doc completions
provides more details.

Parameters +

string scope

function cb

Example +
 1-- This is a very simple example. Read the full doc for completions for details.
+ 2hilbish.complete('command.sudo', function(query, ctx, fields)
+ 3	if #fields == 0 then
+ 4		-- complete for commands
+ 5		local comps, pfx = hilbish.completion.bins(query, ctx, fields)
+ 6		local compGroup = {
+ 7			items = comps, -- our list of items to complete
+ 8			type = 'grid' -- what our completions will look like.
+ 9		}
+10
+11		return {compGroup}, pfx
+12	end
+13
+14	-- otherwise just be boring and return files
+15
+16	local comps, pfx = hilbish.completion.files(query, ctx, fields)
+17	local compGroup = {
+18		items = comps,
+19		type = 'grid'
+20	}
+21
+22	return {compGroup}, pfx
+23end)
+

hilbish.cwd() -> string

Returns the current directory of the shell

Parameters

This function has no parameters.


hilbish.exec(cmd)

Replaces the currently running Hilbish instance with the supplied command.
This can be used to do an in-place restart.

Parameters @@ -35,15 +59,15 @@ interfaces and functions which directly relate to shell functionality.

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.

Parameters

function fn


hilbish.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.
Note that to set a highlighter, one has to override this function.

Parameters -

string line

Example -
1--This code will highlight all double quoted strings in green.
+

string line

Example +
1--This code will highlight all double quoted strings in green.
 2function hilbish.highlighter(line)
 3   return line:gsub('"%w+"', function(c) return lunacolors.green(c) end)
 4end
 

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

Parameters -

string line

number pos

Example -
1-- this will display "hi" after the cursor in a dimmed color.
+

string line

number pos

Example +
1-- this will display "hi" after the cursor in a dimmed color.
 2function hilbish.hinter(line, pos)
 3	return 'hi'
 4end
@@ -53,8 +77,8 @@ interfaces and functions which directly relate to shell functionality.

Runs the cb function every time milliseconds.
This creates a timer that starts immediately.

Parameters

function cb

number time


hilbish.multiprompt(str)

Changes the text prompt when Hilbish asks for more input.
This will show up when text is incomplete, like a missing quote

Parameters -

string str

Example -
 1--[[
+

string str

Example +
 1--[[
  2imagine this is your text input:
  3user ~ ∆ echo "hey
  4
@@ -73,8 +97,8 @@ interfaces and functions which directly relate to shell functionality.

Prepends dir to $PATH.

Parameters

string dir


hilbish.prompt(str, typ)

Changes the shell prompt to the provided string.
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

Parameters -

string str

string typ?
Type of prompt, being left or right. Left by default.

Example -
1-- the default hilbish prompt without color
+

string str

string typ?
Type of prompt, being left or right. Left by default.

Example +
1-- the default hilbish prompt without color
 2hilbish.prompt '%u %d ∆'
 3-- or something of old:
 4hilbish.prompt '%u@%h :%d $'
diff --git a/versions/doc-improvements/docs/api/hilbish/index.xml b/versions/doc-improvements/docs/api/hilbish/index.xml
index fc5a0aa..033ac36 100644
--- a/versions/doc-improvements/docs/api/hilbish/index.xml
+++ b/versions/doc-improvements/docs/api/hilbish/index.xml
@@ -7,7 +7,8 @@ Jobs are the name of background tasks/commands. A job can be started via interac
 Functions add(cmdstr, args, execPath) Creates a new job. This function does not run the job. This function is intended to be all() -&gt; table[@Job] Returns a table of all job objects. disown(id) Disowns a job. This simply deletes it from the list of jobs without stopping it.Module hilbish.modulehttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.module/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.module/Introduction The hilbish.module interface provides a function to load Hilbish plugins/modules. Hilbish modules are Go-written plugins (see https://pkg.go.dev/plugin ) that are used to add functionality to Hilbish that cannot be written in Lua for any reason.
 Note that you don&rsquo;t ever need to use the load function that is here as modules can be loaded with a require call like Lua C modules, and the search paths can be changed with the paths property here.Module hilbish.oshttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.os/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.os/ Introduction Provides simple text information properties about the current operating system. This mainly includes the name and version.
 Static module fields family Family name of the current OS name Pretty name of the current OS version Version of the current OSModule hilbish.runnerhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.runner/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/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. lua(cmd) Evaluates cmd as Lua input. This is the same as using dofile sh(cmd) Runs a command in Hilbish&rsquo;s shell script interpreter.Module hilbish.timershttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/Introduction If you ever want to run a piece of code on a timed interval, or want to wait a few seconds, you don&rsquo;t have to rely on timing tricks, as Hilbish has a timer API to set intervals and timeouts.
+Runners are functions that evaluate user input. The default runners in Hilbish can run shell script and Lua code.
+A runner is passed the input and has to return a table with these values.Module hilbish.timershttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/Introduction If you ever want to run a piece of code on a timed interval, or want to wait a few seconds, you don&rsquo;t have to rely on timing tricks, as Hilbish has a timer API to set intervals and timeouts.
 These are the simple functions hilbish.interval and hilbish.timeout (doc accessible with doc hilbish, or Module hilbish on the Website).
 An example of usage:
 1local t = hilbish.timers.create(hilbish.timers.TIMEOUT, 5000, function() 2	print &#39;hello!Module hilbish.userDirhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.userdir/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/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.
diff --git a/versions/doc-improvements/docs/api/index.html b/versions/doc-improvements/docs/api/index.html
index e68167d..0b5a474 100644
--- a/versions/doc-improvements/docs/api/index.html
+++ b/versions/doc-improvements/docs/api/index.html
@@ -1,5 +1,5 @@
 API — Hilbish
 

API

Welcome to the API documentation for Hilbish. This documents Lua functions +

\ No newline at end of file diff --git a/versions/doc-improvements/docs/api/terminal/index.html b/versions/doc-improvements/docs/api/terminal/index.html index 5564611..c8ad599 100644 --- a/versions/doc-improvements/docs/api/terminal/index.html +++ b/versions/doc-improvements/docs/api/terminal/index.html @@ -1,7 +1,7 @@ Module terminal — Hilbish

Module terminal

low level terminal library

Introduction +

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 into raw mode.
size()Gets the dimensions of the terminal. Returns a table with width and height

terminal.restoreState()

Restores the last saved state of the terminal

Parameters diff --git a/versions/doc-improvements/docs/completions/index.html b/versions/doc-improvements/docs/completions/index.html index 1e15d27..2c00af7 100644 --- a/versions/doc-improvements/docs/completions/index.html +++ b/versions/doc-improvements/docs/completions/index.html @@ -1,34 +1,44 @@ Completions — Hilbish

Completions

Tab completion for commands.

Hilbish has a pretty good completion system. It has a nice looking -menu, with 2 types of menus: grid (like file completions) or -list.

Like most parts of Hilbish, it’s made to be extensible and +

Completions

Tab completion for commands.

Completions for commands can be created with the hilbish.complete +function. See the link for how to use it.

To create completions for a command is simple. +The callback will be passed 3 parameters:

  • query (string): The text that the user is currently trying to complete. +This should be used to match entries.
  • ctx (string): Contains the entire line. Use this if +more text is needed to be parsed for context.
  • fields (string): The ctx split up by spaces.

In most cases, the completer just uses fields to check the amount +and query on what to match entries on.

In order to return your results, it has to go within a “completion group.” +Then you return a table of completion groups and a prefix. The prefix will +usually just be the query.

Hilbish allows one to mix completion menus of different types, so +a grid menu and a list menu can be used and complete and display at the same time. +A completion group is a table with these keys:

  • type (string): type of completion menu, either grid or list.
  • items (table): a list of items.

The requirements of the items table is different based on the +type. If it is a grid, it can simply be a table of strings.

Otherwise if it is a list then each entry can +either be a string or a table. +Example:

 1local cg = {
+ 2	items = {
+ 3		'list item 1',
+ 4		['--command-flag-here'] = {'this does a thing', '--the-flag-alias'}
+ 5	},
+ 6	type = 'list'
+ 7}
+ 8local cg2 = {
+ 9	items = {'just', 'a bunch', 'of items', 'here', 'hehe'},
+10	type = 'grid'
+11}
+12
+13return {cg, cg2}, prefix
+

Which looks like this:

Completion Handler +

Like most parts of Hilbish, it’s made to be extensible and customizable. The default handler for completions in general can -be overwritten to provide more advanced completions if needed.

Completion Handler -

By default, it provides 3 things: for the first argument, +be overwritten to provide more advanced completions if needed. +This usually doesn’t need to be done though, unless you know +what you’re doing.

The default completion handler provides 3 things: binaries (with a plain name requested to complete, those in -$PATH), files, or command completions. With the default -completion handler, it will try to run a handler for the -command or fallback to file completions.

To overwrite it, just assign a function to -hilbish.completion.handler like so: -function hilbish.completion.handler(line, pos) -– do things -end

It is passed 2 arguments, the entire line, and the current -cursor position. The functions in the completion interface -take 3 arguments: query, ctx, and fields.

  • The query, which what the user is currently trying to complete
  • ctx, being just the entire line
  • fields being a table of arguments. It’s just ctx split up, -delimited by spaces.

It’s expected to return 2 things: a table of completion groups, and -a prefix. A completion group is defined as a table with 2 keys: -items and type.

  • The items field is just a table of items to use for completions.
  • The type is for the completion menu type, being either grid or -list.

The prefix is what all the completions start with. It should be empty -if the user doesn’t have a query. If the beginning of the completion -item does not match the prefix, it will be replaced and fixed -properly in the line. It is case sensitive.

If you want to overwrite the functionality of the general completion -handler, or make your command completion have files as well -(and filter them), then there is the files function, which is -mentioned below.

Completion Interface -

Functions -

  • files(query, ctx, fields) -> table, prefix: get file completions, -based on the user’s query.
  • bins(query, ctx, fields) -> table, prefix: get binary/executable -completions, based on user query.
  • call(scope, query, ctx, fields) -> table, prefix: call a completion -handler with scope, usually being in the form of command.<name>
\ No newline at end of file +$PATH), files, or command completions. It will try to run a handler +for the command or fallback to file completions.

To overwrite it, just assign a function to hilbish.completion.handler like so:

1-- line is the entire line as a string
+2-- pos is the position of the cursor.
+3function hilbish.completion.handler(line, pos)
+4	-- do things
+5end
+
\ No newline at end of file diff --git a/versions/doc-improvements/docs/faq/index.html b/versions/doc-improvements/docs/faq/index.html index 8bb0843..4953ce7 100644 --- a/versions/doc-improvements/docs/faq/index.html +++ b/versions/doc-improvements/docs/faq/index.html @@ -5,7 +5,7 @@ Why? Hilbish emerged from the desire of a Lua configured shell." property="og:de 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, checkout the discussion . Why? Hilbish emerged from the desire of a Lua configured shell." name=description>

Frequently Asked Questions

Last updated Nov 12, 2023

Is Hilbish POSIX compliant? +

Frequently Asked Questions

Last updated Nov 12, 2023

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? diff --git a/versions/doc-improvements/docs/features/index.html b/versions/doc-improvements/docs/features/index.html index b398aa0..b7b19d0 100644 --- a/versions/doc-improvements/docs/features/index.html +++ b/versions/doc-improvements/docs/features/index.html @@ -1,7 +1,7 @@ Features — Hilbish

Features

Last updated Nov 12, 2023

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

\ No newline at end of file diff --git a/versions/doc-improvements/docs/features/notifications/index.html b/versions/doc-improvements/docs/features/notifications/index.html index 57bd5ad..a957652 100644 --- a/versions/doc-improvements/docs/features/notifications/index.html +++ b/versions/doc-improvements/docs/features/notifications/index.html @@ -1,7 +1,7 @@ Notification — Hilbish

Notification

Last updated Nov 12, 2023
Get notified of shell actions.

Hilbish features a simple notification system which can be +

Notification

Last updated Nov 12, 2023
Get notified of shell actions.

Hilbish features a simple notification system which can be used by other plugins and parts of the shell to notify the user of various actions. This is used via the hilbish.message interface.

A message is defined as a table with the following properties:

Functions

  • stop(): Stops the job.
  • start(): Starts the job.
  • foreground(): Set the job as the current running foreground process, or -run it in the foreground after it has been suspended.
  • background(): Run the job in the background after it has been suspended.
\ No newline at end of file +run it in the foreground after it has been suspended.
  • background(): Run the job in the background after it has been suspended.
  • \ No newline at end of file diff --git a/versions/doc-improvements/docs/lunacolors/index.html b/versions/doc-improvements/docs/lunacolors/index.html index f663f9e..82d25e2 100644 --- a/versions/doc-improvements/docs/lunacolors/index.html +++ b/versions/doc-improvements/docs/lunacolors/index.html @@ -5,7 +5,7 @@ In other usage, you may want to use a format string instead of having multiple n For simple usage, a single color or style is enough. For example, you can just use lunacolors.blue 'Hello world' and that’ll return blue text which you can print. This includes styles like bold, underline, etc. In other usage, you may want to use a format string instead of having multiple nested functions for different styles." name=description>

    Lunacolors

    Lunacolors is an ANSI color/styling library for Lua. It is included +

    Lunacolors

    Lunacolors is an ANSI color/styling library for Lua. It is included by default in standard Hilbish distributions to provide easy styling for things like prompts and text.

    For simple usage, a single color or style is enough. For example, you can just use lunacolors.blue 'Hello world' and that’ll return diff --git a/versions/doc-improvements/docs/nature/dirs/index.html b/versions/doc-improvements/docs/nature/dirs/index.html index 0c12474..e1c6902 100644 --- a/versions/doc-improvements/docs/nature/dirs/index.html +++ b/versions/doc-improvements/docs/nature/dirs/index.html @@ -1,7 +1,7 @@ Module dirs — Hilbish

    Module dirs

    No description.


    dirs.setOld(d) +

    Module dirs

    No description.


    dirs.setOld(d)

    Sets the old directory string.

    Parameters

    d string


    dirs.push()

    Add d to the recent directories list.

    Parameters diff --git a/versions/doc-improvements/docs/nature/index.html b/versions/doc-improvements/docs/nature/index.html index 73ff62f..a2d0ace 100644 --- a/versions/doc-improvements/docs/nature/index.html +++ b/versions/doc-improvements/docs/nature/index.html @@ -5,7 +5,7 @@ Nature Modules Currently, nature provides 1 intended public module: nature.dirs. Hilbish’s Lua core module is called nature. It runs after Hilbish’s Go core does. Nature Modules Currently, nature provides 1 intended public module: nature.dirs. It is a simple API for managing recent directories and old current working directory." name=description>

    Nature

    A bit after creation, we have the outside nature. Little plants, seeds, +

    Nature

    A bit after creation, we have the outside nature. Little plants, seeds, growing to their final phase: a full plant. A lot of Hilbish itself is written in Go, but there are parts made in Lua, being most builtins (doc, cd, cdr), completions, and other things.

    Hilbish’s Lua core module is called nature. diff --git a/versions/doc-improvements/docs/vim-mode/actions/index.html b/versions/doc-improvements/docs/vim-mode/actions/index.html index 1bd3427..64935e0 100644 --- a/versions/doc-improvements/docs/vim-mode/actions/index.html +++ b/versions/doc-improvements/docs/vim-mode/actions/index.html @@ -5,7 +5,7 @@ Here is documentation for what the table of args will hold for an appropriate Vi The hilbish.vimAction hook is thrown whenever a Vim action occurs. It passes 2 arguments: the action name, and an array (table) of args relating to it. Here is documentation for what the table of args will hold for an appropriate Vim action." name=description>

    Actions

    Vim actions are essentially just when a user uses a Vim keybind. +

    Actions

    Vim actions are essentially just when a user uses a Vim keybind. Things like yanking and pasting are Vim actions. This is not an “offical Vim thing,” just a Hilbish thing.

    The hilbish.vimAction hook is thrown whenever a Vim action occurs. It passes 2 arguments: the action name, and an array (table) of args diff --git a/versions/doc-improvements/docs/vim-mode/index.html b/versions/doc-improvements/docs/vim-mode/index.html index 48aa238..a08351c 100644 --- a/versions/doc-improvements/docs/vim-mode/index.html +++ b/versions/doc-improvements/docs/vim-mode/index.html @@ -3,5 +3,5 @@ This is documentation for everything relating to it." property="og:description">

    Vim Mode

    Hilbish has a Vim binding input mode accessible for use. +

    \ No newline at end of file diff --git a/versions/doc-improvements/index.xml b/versions/doc-improvements/index.xml index b864469..0c7fa6b 100644 --- a/versions/doc-improvements/index.xml +++ b/versions/doc-improvements/index.xml @@ -18,8 +18,10 @@ Adding the return types for all functions that need them Documenting Hilbish typ This is a big release, coming 9 months after the previous v1.2.0 and featuring over 40+ bug fixes and tons of new features and enhancements, so let&rsquo;s see what is in this release. Documentation When querying about the problems people have with Hilbish, one of the issues was its poor documentation.<link>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/job/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/job/</guid><description>Note: job refers to a job object. You can check doc jobs for more detail. job.start -&gt; job &gt; Thrown when a new background job starts. -job.done -&gt; job &gt; Thrown when a background jobs exits.</description></item><item><title/><link>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/runner-mode/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/runner-mode/</guid><description>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 like Fennel as the interactive script runner.</description></item><item><title/><link>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/timers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/timers/</guid><description>This has been moved to the hilbish.timers API doc (accessible by doc api hilbish.timers)</description></item><item><title>Commandhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/command/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/command/command.preexec Thrown right before a command is executed. +job.done -&gt; job &gt; Thrown when a background jobs exits.<link>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/jobs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/jobs/</guid><description>(This has mainly been replaced by hilbish.jobs ). +Hilbish has pretty standard job control. It&rsquo;s missing one or two things, but works well. One thing which is different from other shells (besides Hilbish) itself is the API for jobs, and of course it&rsquo;s in Lua. You can add jobs, stop and delete (disown) them and even get output. +Job Interface The job interface refers to hilbish.jobs. +Functions (Note that in the list here, they&rsquo;re called from hilbish.</description></item><item><title/><link>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/timers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/timers/</guid><description>This has been moved to the hilbish.timers API doc (accessible by doc api hilbish.timers)</description></item><item><title>Commandhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/command/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/command/command.preexec Thrown right before a command is executed. Variables string input The raw string that the user typed. This will include the text without changes applied to it (argument substitution, alias expansion, etc.) string cmdStr @@ -28,18 +30,16 @@ command.exit Thrown after the user&rsquo;s ran command is finished. Variables number code The exit code of what was executed. string cmdStr -The command or code that was executedCompletionshttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/completions/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/completions/Hilbish has a pretty good completion system. It has a nice looking menu, with 2 types of menus: grid (like file completions) or list. -Like most parts of Hilbish, it&rsquo;s made to be extensible and customizable. The default handler for completions in general can be overwritten to provide more advanced completions if needed. -Completion Handler By default, it provides 3 things: for the first argument, binaries (with a plain name requested to complete, those in $PATH), files, or command completions.Hilbishhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/hilbish/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/hilbish/hilbish.exit Sent when Hilbish is going to exit. +The command or code that was executedCompletionshttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/completions/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/completions/Completions for commands can be created with the hilbish.complete function. See the link for how to use it. +To create completions for a command is simple. The callback will be passed 3 parameters: +query (string): The text that the user is currently trying to complete. This should be used to match entries. ctx (string): Contains the entire line. Use this if more text is needed to be parsed for context. fields (string): The ctx split up by spaces.Hilbishhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/hilbish/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/hilbish/hilbish.exit Sent when Hilbish is going to exit. Variables This signal returns no variables. hilbish.vimMode Sent when the Vim mode of Hilbish is changed (like from insert to normal mode). This can be used to change the prompt and notify based on Vim mode. Variables string modeName The mode that has been set. Can be these values: insert, normal, delete or replace hilbish.cancel Sent when the user cancels their command input with Ctrl-CInstallhttps://rosettea.github.io/Hilbish/versions/doc-improvements/install/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/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 Compiling To read the steps for compiling Hilbish, head over to the GitHub repository.Jobshttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/jobs/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/jobs/Hilbish has pretty standard job control. It&rsquo;s missing one or two things, but works well. One thing which is different from other shells (besides Hilbish) itself is the API for jobs, and of course it&rsquo;s in Lua. You can add jobs, stop and delete (disown) them and even get output. -Job Interface The job interface refers to hilbish.jobs. -Functions (Note that in the list here, they&rsquo;re called from hilbish.jobs, so a listing of foo would mean hilbish.Module baithttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/bait/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/bait/Introduction Bait is the event emitter for Hilbish. Much like Node.js and its events system, many actions in Hilbish emit events. Unlike Node.js, Hilbish events are global. So make sure to pick a unique name! +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 Compiling To read the steps for compiling Hilbish, head over to the GitHub repository.Module baithttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/bait/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/bait/Introduction Bait is the event emitter for Hilbish. Much like Node.js and its events system, many actions in Hilbish emit events. Unlike Node.js, Hilbish events are global. So make sure to pick a unique name! Usage of the Bait module consists of userstanding event-driven architecture, but it&rsquo;s pretty simple: If you want to act on a certain event, you can catch it. You can act on events via callback functions.Module commanderhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/commander/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/commander/Introduction Commander is the library which handles Hilbish commands. This makes the user able to add Lua-written commands to their shell without making a separate script in a bin folder. Instead, you may simply use the Commander library in your Hilbish config. 1local commander = require &#39;commander&#39; 2 3commander.register(&#39;hello&#39;, function(args, sinks) 4 sinks.out:writeln &#39;Hello world!&#39; 5end) In this example, a command with the name of hello is created that will print Hello world!Module dirshttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/nature/dirs/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/nature/dirs/dirs.setOld(d) Sets the old directory string. Parameters d string @@ -60,7 +60,8 @@ Jobs are the name of background tasks/commands. A job can be started via interac Functions add(cmdstr, args, execPath) Creates a new job. This function does not run the job. This function is intended to be all() -&gt; table[@Job] Returns a table of all job objects. disown(id) Disowns a job. This simply deletes it from the list of jobs without stopping it.Module hilbish.modulehttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.module/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.module/Introduction The hilbish.module interface provides a function to load Hilbish plugins/modules. Hilbish modules are Go-written plugins (see https://pkg.go.dev/plugin ) that are used to add functionality to Hilbish that cannot be written in Lua for any reason. Note that you don&rsquo;t ever need to use the load function that is here as modules can be loaded with a require call like Lua C modules, and the search paths can be changed with the paths property here.Module hilbish.oshttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.os/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.os/ Introduction Provides simple text information properties about the current operating system. This mainly includes the name and version. Static module fields family Family name of the current OS name Pretty name of the current OS version Version of the current OSModule hilbish.runnerhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.runner/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/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. lua(cmd) Evaluates cmd as Lua input. This is the same as using dofile sh(cmd) Runs a command in Hilbish&rsquo;s shell script interpreter.Module hilbish.timershttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/Introduction If you ever want to run a piece of code on a timed interval, or want to wait a few seconds, you don&rsquo;t have to rely on timing tricks, as Hilbish has a timer API to set intervals and timeouts. +Runners are functions that evaluate user input. The default runners in Hilbish can run shell script and Lua code. +A runner is passed the input and has to return a table with these values.Module hilbish.timershttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/Introduction If you ever want to run a piece of code on a timed interval, or want to wait a few seconds, you don&rsquo;t have to rely on timing tricks, as Hilbish has a timer API to set intervals and timeouts. These are the simple functions hilbish.interval and hilbish.timeout (doc accessible with doc hilbish, or Module hilbish on the Website). An example of usage: 1local t = hilbish.timers.create(hilbish.timers.TIMEOUT, 5000, function() 2 print &#39;hello!Module hilbish.userDirhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.userdir/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/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. diff --git a/versions/doc-improvements/sitemap.xml b/versions/doc-improvements/sitemap.xml index de7e3dd..976256b 100644 --- a/versions/doc-improvements/sitemap.xml +++ b/versions/doc-improvements/sitemap.xml @@ -1 +1 @@ -https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/nature/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/vim-mode/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/vim-mode/actions/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/lunacolors/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/faq/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/getting-started/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/2023-04-14T00:04:52-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/improving-this-website/2023-04-14T00:04:52-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.1.2-release/2023-04-10T12:38:30-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.1.1-release/2023-04-01T18:16:13-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.1-release/2023-02-10T17:11:44-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.0-release/2022-12-28T22:27:05-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/2023-04-14T00:04:52-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/job/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/runner-mode/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/timers/https://rosettea.github.io/Hilbish/versions/doc-improvements/categories/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/command/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/completions/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/hilbish/https://rosettea.github.io/Hilbish/versions/doc-improvements/install/2023-04-14T00:04:52-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/jobs/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/bait/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/commander/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/nature/dirs/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/fs/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.aliases/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.completion/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.editor/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.history/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.jobs/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.module/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.os/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.runner/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.userdir/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/terminal/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/notifications/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/opts/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/runner-mode/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/signal/https://rosettea.github.io/Hilbish/versions/doc-improvements/tags/https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/welcome/2022-12-28T22:27:05-04:00 \ No newline at end of file +https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/nature/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/vim-mode/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/vim-mode/actions/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/lunacolors/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/faq/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/getting-started/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/2023-04-14T00:04:52-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/improving-this-website/2023-04-14T00:04:52-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.1.2-release/2023-04-10T12:38:30-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.1.1-release/2023-04-01T18:16:13-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.1-release/2023-02-10T17:11:44-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.0-release/2022-12-28T22:27:05-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/2023-04-14T00:04:52-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/job/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/jobs/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/timers/https://rosettea.github.io/Hilbish/versions/doc-improvements/categories/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/command/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/completions/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/hilbish/https://rosettea.github.io/Hilbish/versions/doc-improvements/install/2023-04-14T00:04:52-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/bait/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/commander/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/nature/dirs/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/fs/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.aliases/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.completion/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.editor/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.history/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.jobs/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.module/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.os/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.runner/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.userdir/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/api/terminal/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/notifications/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/opts/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/runner-mode/2023-11-11T22:28:18-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/signal/https://rosettea.github.io/Hilbish/versions/doc-improvements/tags/https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/welcome/2022-12-28T22:27:05-04:00 \ No newline at end of file