diff --git a/versions/doc-improvements/docs/api/bait/index.html b/versions/doc-improvements/docs/api/bait/index.html index da46e0e..45598cb 100644 --- a/versions/doc-improvements/docs/api/bait/index.html +++ b/versions/doc-improvements/docs/api/bait/index.html @@ -1,7 +1,7 @@ Module 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 diff --git a/versions/doc-improvements/docs/api/commander/index.html b/versions/doc-improvements/docs/api/commander/index.html index a9252c3..dad59b7 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 a library for writing custom commands in Lua. In order to make it easier to write commands for Hilbish, not require separate scripts and to be able to use in a config, diff --git a/versions/doc-improvements/docs/api/fs/index.html b/versions/doc-improvements/docs/api/fs/index.html index 7c8db5b..7f84889 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 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 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 ecf3b37..3881fbb 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) -> command (string)Tries to resolve an alias to its command.

hilbish.aliases.add(alias, cmd)

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

Parameters diff --git a/versions/doc-improvements/docs/api/hilbish/hilbish.completions/index.html b/versions/doc-improvements/docs/api/hilbish/hilbish.completions/index.html index 657b78f..07da6a5 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.completions/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.completions/index.html @@ -1,7 +1,7 @@ Module hilbish.completions — Hilbish

Module hilbish.completions

tab completions

Introduction +

Module hilbish.completions

tab completions

Introduction

The completions interface deals with tab completions.

Functions

call(name, query, ctx, fields) -> completionGroups (table), prefix (string)Calls a completer function. This is mainly used to call
handler(line, pos)The handler function is the callback for tab completion in Hilbish.
bins(query, ctx, fields) -> entries (table), prefix (string)Returns binary/executale completion candidates based on the provided query.
files(query, ctx, fields) -> entries (table), prefix (string)Returns file completion candidates based on the provided query.

hilbish.completions.call(name, query, ctx, fields) -> completionGroups (table), prefix (string)

Calls a completer function. This is mainly used to call 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 f7e0851..fa756c0 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 line.
getChar() -> stringReads a keystroke from the user. This is in a format
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 205366a..8a24a91 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 2559125..1eaacba 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)Adds a new job to the job table. Note that this does not immediately run it.
all() -> table<@Job>Returns a table of all job objects.
disown(id)Disowns a job. This deletes it from the job table.
get(id) -> @JobGet a job object via its ID.
last() -> @JobReturns the last added job from 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 c6fc4b5..b898aba 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 96b28a3..a0a9949 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

OS Info

Introduction +

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

Static module fields 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 d29188d..e297405 100644 --- a/versions/doc-improvements/docs/api/hilbish/hilbish.runner/index.html +++ b/versions/doc-improvements/docs/api/hilbish/hilbish.runner/index.html @@ -1,7 +1,7 @@ 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 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 5bf22a7..3f5eed1 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 a6a6e04..b245009 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 cec296a..44d0204 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 of cmd to orig
appendPath(dir)Appends dir to $PATH
complete(scope, cb)Registers a completion handler for scope.
cwd() -> stringReturns 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
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 continued line prompt to str
prependPath(dir)Prepends dir to $PATH
prompt(str, typ)Changes the shell prompt to str
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 sh 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 diff --git a/versions/doc-improvements/docs/api/index.html b/versions/doc-improvements/docs/api/index.html index 97b1a0c..0582f26 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 076dc32..3fdfd5c 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 in 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 new file mode 100644 index 0000000..a2ef6aa --- /dev/null +++ b/versions/doc-improvements/docs/completions/index.html @@ -0,0 +1,39 @@ +— Hilbish +

+by sammyette

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 +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. 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 diff --git a/versions/doc-improvements/docs/faq/index.html b/versions/doc-improvements/docs/faq/index.html index 2b94c63..58c9e80 100644 --- a/versions/doc-improvements/docs/faq/index.html +++ b/versions/doc-improvements/docs/faq/index.html @@ -1,20 +1,21 @@ Frequently Asked Questions — Hilbish

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?

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

Where is the API documentation? -

The builtin doc command supplies all documentation of Hilbish provided -APIs. You can also check the sidebar.

Why? +.

Why?

Hilbish emerged from the desire of a Lua configured shell. It was the initial reason that it was created, but now it’s more: -to be hyper extensible, simpler and more user friendly.

\ No newline at end of file +to be hyper extensible, simpler and more user friendly.

Does it have “autocompletion” or “tab completion” +

Of course! This is a modern shell. Hilbish provides a way for users +to write tab completion for any command and/or the whole shell. +Inline hinting and syntax highlighting are also available.

\ No newline at end of file diff --git a/versions/doc-improvements/docs/features/index.html b/versions/doc-improvements/docs/features/index.html index 703785d..bb9d5fc 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 Apr 14, 2023

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

Features

Last updated Nov 12, 2023

Hilbish has a wide range of features to enhance the user’s experience new ones are always being added. 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/versions/doc-improvements/docs/features/notifications/index.html b/versions/doc-improvements/docs/features/notifications/index.html index f0b0a70..f8b83e1 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 Jul 10, 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:

  • icon: A unicode/emoji icon for the notification.
  • title: The title of the message
  • text: Message text/body
  • channel: The source of the message. This should be a unique and easily readable text identifier.
  • summary: A short summary of the notification and message. diff --git a/versions/doc-improvements/docs/features/runner-mode/index.html b/versions/doc-improvements/docs/features/runner-mode/index.html index 4980203..3fc27f9 100644 --- a/versions/doc-improvements/docs/features/runner-mode/index.html +++ b/versions/doc-improvements/docs/features/runner-mode/index.html @@ -1,7 +1,7 @@ Runner Mode — Hilbish

    Runner Mode

    Last updated Sep 28, 2023
    Customize the interactive script/command runner.

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

    Runner Mode

    Last updated Nov 12, 2023
    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/versions/doc-improvements/docs/getting-started/index.html b/versions/doc-improvements/docs/getting-started/index.html index bb46adb..3917e30 100644 --- a/versions/doc-improvements/docs/getting-started/index.html +++ b/versions/doc-improvements/docs/getting-started/index.html @@ -3,7 +3,7 @@ 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." property="og:description">

    Getting Started

    Last updated Apr 14, 2023

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

    Getting Started

    Last updated Nov 12, 2023

    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 diff --git a/versions/doc-improvements/docs/hooks/command/index.html b/versions/doc-improvements/docs/hooks/command/index.html new file mode 100644 index 0000000..9e5a890 --- /dev/null +++ b/versions/doc-improvements/docs/hooks/command/index.html @@ -0,0 +1,13 @@ +Command — Hilbish +

    Command

    • command.preexec -> input, cmdStr > Thrown before a command +is executed. The input is the user written command, while cmdStr +is what will be executed (input will have aliases while cmdStr +will have alias resolved input).

    • command.exit -> code, cmdStr > Thrown when a command exits. +code is the exit code of the command, and cmdStr is the command that was run.

    • command.not-found -> cmdStr > Thrown when a command is not found.

    • command.not-executable -> cmdStr > Thrown when Hilbish attempts to run a file +that is not executable.

    \ No newline at end of file diff --git a/versions/doc-improvements/docs/hooks/hilbish/index.html b/versions/doc-improvements/docs/hooks/hilbish/index.html new file mode 100644 index 0000000..5a471e2 --- /dev/null +++ b/versions/doc-improvements/docs/hooks/hilbish/index.html @@ -0,0 +1,13 @@ +Hilbish — Hilbish +

    Hilbish

    • hilbish.exit > Sent when Hilbish is about to exit.

    • hilbish.vimMode -> modeName > Sent when Hilbish’s Vim mode is changed (example insert to normal mode), +modeName is the name of the mode changed to (can be insert, normal, delete or replace).

    • hilbish.vimAction -> actionName, args > Sent when the user does a “vim action,” being something +like yanking or pasting text. See doc vim-mode actions for more info.

    • hilbish.cancel > Sent when the user cancels their input with Ctrl-C.

    • hilbish.notification -> message > Sent when a message is +sent.

    \ No newline at end of file diff --git a/versions/doc-improvements/docs/hooks/index.html b/versions/doc-improvements/docs/hooks/index.html new file mode 100644 index 0000000..c088ecf --- /dev/null +++ b/versions/doc-improvements/docs/hooks/index.html @@ -0,0 +1,13 @@ +Hooks — Hilbish +

    Hooks

    Here is a list of bait hooks that are thrown by Hilbish. If a hook is related +to a command, it will have the command scope, as example.

    Here is the format for a doc for a hook:

    • {hook name} -> args > description

    {args} just means the arguments of the hook. If a hook doc has the format +of arg..., it means the hook can take/recieve any number of arg.

    • error -> eventName, handler, err > Emitted when there is an error in +an event handler. The eventName is the name of the event the handler +is for, the handler is the callback function, and err is the error +message.
    \ No newline at end of file diff --git a/versions/doc-improvements/docs/hooks/index.xml b/versions/doc-improvements/docs/hooks/index.xml new file mode 100644 index 0000000..318f43b --- /dev/null +++ b/versions/doc-improvements/docs/hooks/index.xml @@ -0,0 +1,11 @@ +Hooks on Hilbishhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/Recent content in Hooks on HilbishHugo -- gohugo.ioen-us<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>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 -&gt; input, cmdStr &gt; Thrown before a command is executed. The input is the user written command, while cmdStr is what will be executed (input will have aliases while cmdStr will have alias resolved input). +command.exit -&gt; code, cmdStr &gt; Thrown when a command exits. code is the exit code of the command, and cmdStr is the command that was run. +command.not-found -&gt; cmdStr &gt; Thrown when a command is not found.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 &gt; Sent when Hilbish is about to exit. +hilbish.vimMode -&gt; modeName &gt; Sent when Hilbish&rsquo;s Vim mode is changed (example insert to normal mode), modeName is the name of the mode changed to (can be insert, normal, delete or replace). +hilbish.vimAction -&gt; actionName, args &gt; Sent when the user does a &ldquo;vim action,&rdquo; being something like yanking or pasting text. See doc vim-mode actions for more info. +hilbish.cancel &gt; Sent when the user cancels their input with Ctrl-C.Signalhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/signal/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/signal/signal.sigint &gt; Sent when Hilbish receives SIGINT (on Ctrl-C). +signal.resize &gt; Sent when the terminal is resized. +signal.sigusr1 +signal.sigusr2 \ No newline at end of file diff --git a/versions/doc-improvements/docs/hooks/job/index.html b/versions/doc-improvements/docs/hooks/job/index.html new file mode 100644 index 0000000..980dc03 --- /dev/null +++ b/versions/doc-improvements/docs/hooks/job/index.html @@ -0,0 +1,10 @@ +— Hilbish +

    +by sammyette

    Note: job refers to a job object. You can check doc jobs for more +detail.

    • job.start -> job > Thrown when a new background job starts.

    • job.done -> job > Thrown when a background jobs exits.

    \ No newline at end of file diff --git a/versions/doc-improvements/docs/hooks/signal/index.html b/versions/doc-improvements/docs/hooks/signal/index.html new file mode 100644 index 0000000..073acab --- /dev/null +++ b/versions/doc-improvements/docs/hooks/signal/index.html @@ -0,0 +1,10 @@ +Signal — Hilbish +
    \ No newline at end of file diff --git a/versions/doc-improvements/docs/index.html b/versions/doc-improvements/docs/index.html index 3bfce17..e6e5ff0 100644 --- a/versions/doc-improvements/docs/index.html +++ b/versions/doc-improvements/docs/index.html @@ -3,7 +3,7 @@ Here documents some of the features of Hilbish and the Lua API." property="og:description">

    Introduction

    Last updated Dec 20, 2022

    Hilbish is a hyper-extensible shell mainly intended for interactive use. +

    Introduction

    Last updated Nov 12, 2023

    Hilbish is a hyper-extensible shell mainly intended for interactive use. To enhance the interactive experience, Hilbish comes with a wide range of features and sane defaults, including a nice looking prompt, advanced completion menus and history search.

    Here documents some of the features of Hilbish and the Lua API.

    \ No newline at end of file diff --git a/versions/doc-improvements/docs/index.xml b/versions/doc-improvements/docs/index.xml index 8b7e9c7..5509d6b 100644 --- a/versions/doc-improvements/docs/index.xml +++ b/versions/doc-improvements/docs/index.xml @@ -1,4 +1,11 @@ Introduction on Hilbishhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/Recent content in Introduction on HilbishHugo -- gohugo.ioen-usFrequently Asked Questionshttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/faq/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/faq/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&rsquo;s main goal, but &hellip;.) Windows Support? It compiles for Windows (CI ensures it does), but otherwise it is not directly supported. If you&rsquo;d like to improve this situation, checkout the discussion . -Where is the API documentation?Getting Startedhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/getting-started/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/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. \ No newline at end of file +Why? Hilbish emerged from the desire of a Lua configured shell.Getting Startedhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/getting-started/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/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.<link>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/completions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/completions/</guid><description>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.</description></item><item><title/><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>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.</description></item><item><title/><link>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/lunacolors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/lunacolors/</guid><description>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&rsquo;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.</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 is unique, when interactive it first attempts to run input as Lua and then tries shell script. But if you&rsquo;re normal, you wouldn&rsquo;t really be using Hilbish anyway but you&rsquo;d also not want this (or maybe want Lua only in some cases.) +The &ldquo;runner mode&rdquo; of Hilbish is customizable via hilbish.runnerMode, which determines how Hilbish will run user input. By default, this is set to hybrid which is the previously mentioned behaviour of running Lua first then going to shell script.</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></channel></rss> \ No newline at end of file diff --git a/versions/doc-improvements/docs/jobs/index.html b/versions/doc-improvements/docs/jobs/index.html new file mode 100644 index 0000000..42d9395 --- /dev/null +++ b/versions/doc-improvements/docs/jobs/index.html @@ -0,0 +1,30 @@ +<!doctype html><html><head><title>— Hilbish +

    +by sammyette

    Hilbish has pretty standard job control. It’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’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’re called from hilbish.jobs, so +a listing of foo would mean hilbish.jobs.foo)

    • all() -> {jobs}: Returns a table of all jobs.
    • last() -> job: Returns the last added job.
    • get(id) -> job: Get a job by its ID.
    • add(cmdstr, args, execPath) -> job: Adds a new job to the job table. +Note that this does not run the command; You have to start it manually. +cmdstr is the user’s input for the job, args is a table of arguments +for the command. It includes arg0 (don’t set it as entry 0 in the table) +and execPath is an absolute path for the command executable.
    • disown(id): Removes a job by ID from the job table.

    Job Object +

    A job object is a piece of userdata. All the functions of a job require +you to call them with a colon, since they are methods for the job object. +Example: hilbish.jobs.last():foreground() +Which will foreground the last job.

    You can still have a job object for a disowned job, +it just won’t be working anywhere. :^)

    Properties +

    • cmd: command string
    • running: boolean whether the job is running
    • id: unique id for the job
    • pid: process id for the job
    • exitCode: exit code of the job +In ordinary cases you’d prefer to use the id instead of pid. +The id is unique to Hilbish and is how you get jobs with the +hilbish.jobs interface. It may also not describe the job entirely.

    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 diff --git a/versions/doc-improvements/docs/lunacolors/index.html b/versions/doc-improvements/docs/lunacolors/index.html new file mode 100644 index 0000000..c84f82b --- /dev/null +++ b/versions/doc-improvements/docs/lunacolors/index.html @@ -0,0 +1,21 @@ +— Hilbish +

    +by sammyette

    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 +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. This is where the format +function comes in. You can used named keywords to style a section of text.

    The list of arguments are: +Colors:

    • black
    • red
    • green
    • yellow
    • blue
    • magenta
    • cyan
    • white +Styles:
    • bold
    • dim
    • italic
    • underline
    • invert

    For the colors, there are background and bright variants. The background +color variants have a suffix of Bg and bright has a prefix of bright. +Note that appropriate camel casing has to be applied to them. So bright +blue would be brightBlue and background cyan would be cyanBg.

    \ No newline at end of file diff --git a/versions/doc-improvements/docs/nature/index.html b/versions/doc-improvements/docs/nature/index.html new file mode 100644 index 0000000..e74ed2a --- /dev/null +++ b/versions/doc-improvements/docs/nature/index.html @@ -0,0 +1,17 @@ +— Hilbish +
    Improving Hilbish's Branding

    Happy birthday Hilbish! As of last month, Hilbish is now 2 years old. Unfortunately I missed the official date, but I will still make a more focused post on the date (19st). +I decided to fix up this website and Hilbish’s logo, so that can be thought of as something for the 2 years milestone? +Logo Hilbish’s old logo was.. not that good. It definitely functioned as a logo, but the yellow part of it looked ugly (sorry old logo).

    v2.1.2 Release

    The release with full changelogs and prebuilt binaries can be seen at the v2.1.2 tag. +This release reverts the April Fool’s code additions in v2.1.1. It is functionally equal to v2.1.0. Nice! +A real release will come possibly in a few days or next week, so stay tuned for the good and feature-filled release of v2.2!

    v2.1.1 Release

    The release with full changelogs and prebuilt binaries can be seen at the v2.1.1 tag. +Welcome to a fresh new release of Hilbish! Some people (or none) may be awaiting the long coming v2.2 release with lots of features, but I needed to push out this little bug fix (wink) release. +Bug Fixes Validation checks for command input When running this version, you may have noticed an odd message that sometimes comes up when running commands.

    v2.1 Release

    The release with full changelogs and prebuilt binaries can be seen at the v2.1.0 tag. +Oh look! A new release of Hilbish! This time is the v2.1 release, with a small amount of features and mainly documentation changes and bug fixes. +Documentation There have been a few documentation enhancements for this release. This includes: +Adding the return types for all functions that need them Documenting Hilbish types like job objects and timers properly.

    Hilbish v2.0 Release

    Hilbish v2.0 has been released! Well actually, it was released a week ago, but I only wrote this Hilbish blog after that. +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’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.

    Install

    Steps on how to install Hilbish on all the OSes and distros supported.

    Welcome to the Hilbish blog

    Hello! Welcome to the Hilbish blog. This will mainly contain release announcements and some other things relating to Hilbish (development).

    \ No newline at end of file diff --git a/versions/doc-improvements/docs/nature/index.xml b/versions/doc-improvements/docs/nature/index.xml new file mode 100644 index 0000000..6911bcf --- /dev/null +++ b/versions/doc-improvements/docs/nature/index.xml @@ -0,0 +1 @@ +Hilbishhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/nature/Recent content on HilbishHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/versions/doc-improvements/docs/runner-mode/index.html b/versions/doc-improvements/docs/runner-mode/index.html new file mode 100644 index 0000000..6258031 --- /dev/null +++ b/versions/doc-improvements/docs/runner-mode/index.html @@ -0,0 +1,43 @@ +— Hilbish +

    +by sammyette

    Hilbish is unique, when interactive it first attempts to run input as +Lua and then tries shell script. But if you’re normal, you wouldn’t +really be using Hilbish anyway but you’d also not want this +(or maybe want Lua only in some cases.)

    The “runner mode” of Hilbish is customizable via hilbish.runnerMode, +which determines how Hilbish will run user input. By default, this is +set to hybrid which is the previously mentioned behaviour of running Lua +first then going to shell script. If you want the reverse order, you can +set it to hybridRev and for isolated modes there is sh and lua +respectively.

    You can also set it to a function, which will be called everytime Hilbish +needs to run interactive input. For example, you can set this to a simple +function to compile and evaluate Fennel, and now you can run Fennel. +You can even mix it with sh to make a hybrid mode with Lua replaced by +Fennel.

    An example: +hilbish.runnerMode(function(input) +local ok = pcall(fennel.eval, input) +if ok then +return input, 0, nil +end

    return hilbish.runner.sh(input)
    +

    end)

    The hilbish.runner interface is an alternative to using hilbish.runnerMode +and also provides the sh and Lua runner functions that Hilbish itself uses. +A runner function is expected to return 3 values: the input, exit code, and an error. +The input return is there incase you need to prompt for more input. +If you don’t, just return the input passed to the runner function. +The exit code has to be a number, it will be 0 otherwise and the error can be +nil to indicate no error.

    Functions +

    These are the “low level” functions for the hilbish.runner interface.

    • setMode(mode) > The same as hilbish.runnerMode
    • sh(input) -> table > Runs input in Hilbish’s sh interpreter
    • lua(input) -> table > Evals input as Lua code

    The table value that runners return can have at least 4 values:

    • input (string): The full input text.

    • exitCode (number): Exit code (usually from a command)

    • continue (boolean): Whether to prompt the user for more input +(in the case of incomplete syntax)

    • err (string): A string that represents an error from the runner. +This should only be set when, for example, there is a syntax error. +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.

    The others here are defined in Lua and have EmmyLua documentation. +These functions should be preferred over the previous ones.

    • setCurrent(mode) > The same as setMode, but works with runners managed +via the functions below.
    • add(name, runner) > Adds a runner to a table of available runners. The runner +argument is either a function or a table with a run callback.
    • set(name, runner) > The same as add but requires passing a table and +overwrites if the named runner already exists.
    • get(name) > runner > Gets a runner by name. It is a table with at least a +run function, to run input.
    • exec(cmd, runnerName) > Runs cmd with a runner. If runnerName isn’t passed, +the current runner mode is used.
    \ No newline at end of file diff --git a/versions/doc-improvements/docs/timers/index.html b/versions/doc-improvements/docs/timers/index.html new file mode 100644 index 0000000..2248ec8 --- /dev/null +++ b/versions/doc-improvements/docs/timers/index.html @@ -0,0 +1,5 @@ +— Hilbish +

    +by sammyette

    This has been moved to the hilbish.timers API doc (accessible by doc api hilbish.timers)

    \ No newline at end of file diff --git a/versions/doc-improvements/docs/vim-mode/actions/index.html b/versions/doc-improvements/docs/vim-mode/actions/index.html new file mode 100644 index 0000000..4ba2826 --- /dev/null +++ b/versions/doc-improvements/docs/vim-mode/actions/index.html @@ -0,0 +1,16 @@ +— Hilbish +

    +by sammyette

    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 +relating to it.

    Here is documentation for what the table of args will hold for an +appropriate Vim action.

    • yank: register, yankedText +The first argument for the yank action is the register yankedText goes to.

    • paste: register, pastedText +The first argument for the paste action is the register pastedText is taken from.

    \ No newline at end of file diff --git a/versions/doc-improvements/docs/vim-mode/index.html b/versions/doc-improvements/docs/vim-mode/index.html new file mode 100644 index 0000000..6a95988 --- /dev/null +++ b/versions/doc-improvements/docs/vim-mode/index.html @@ -0,0 +1,17 @@ +— Hilbish +
    Improving Hilbish's Branding

    Happy birthday Hilbish! As of last month, Hilbish is now 2 years old. Unfortunately I missed the official date, but I will still make a more focused post on the date (19st). +I decided to fix up this website and Hilbish’s logo, so that can be thought of as something for the 2 years milestone? +Logo Hilbish’s old logo was.. not that good. It definitely functioned as a logo, but the yellow part of it looked ugly (sorry old logo).

    v2.1.2 Release

    The release with full changelogs and prebuilt binaries can be seen at the v2.1.2 tag. +This release reverts the April Fool’s code additions in v2.1.1. It is functionally equal to v2.1.0. Nice! +A real release will come possibly in a few days or next week, so stay tuned for the good and feature-filled release of v2.2!

    v2.1.1 Release

    The release with full changelogs and prebuilt binaries can be seen at the v2.1.1 tag. +Welcome to a fresh new release of Hilbish! Some people (or none) may be awaiting the long coming v2.2 release with lots of features, but I needed to push out this little bug fix (wink) release. +Bug Fixes Validation checks for command input When running this version, you may have noticed an odd message that sometimes comes up when running commands.

    v2.1 Release

    The release with full changelogs and prebuilt binaries can be seen at the v2.1.0 tag. +Oh look! A new release of Hilbish! This time is the v2.1 release, with a small amount of features and mainly documentation changes and bug fixes. +Documentation There have been a few documentation enhancements for this release. This includes: +Adding the return types for all functions that need them Documenting Hilbish types like job objects and timers properly.

    Hilbish v2.0 Release

    Hilbish v2.0 has been released! Well actually, it was released a week ago, but I only wrote this Hilbish blog after that. +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’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.

    Install

    Steps on how to install Hilbish on all the OSes and distros supported.

    Welcome to the Hilbish blog

    Hello! Welcome to the Hilbish blog. This will mainly contain release announcements and some other things relating to Hilbish (development).

    \ No newline at end of file diff --git a/versions/doc-improvements/docs/vim-mode/index.xml b/versions/doc-improvements/docs/vim-mode/index.xml new file mode 100644 index 0000000..02d0777 --- /dev/null +++ b/versions/doc-improvements/docs/vim-mode/index.xml @@ -0,0 +1,3 @@ +Hilbishhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/vim-mode/Recent content on HilbishHugo -- gohugo.ioen-us<link>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/vim-mode/actions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/vim-mode/actions/</guid><description>Vim actions are essentially just when a user uses a Vim keybind. Things like yanking and pasting are Vim actions. This is not an &ldquo;offical Vim thing,&rdquo; 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 relating to it. +Here is documentation for what the table of args will hold for an appropriate Vim action.</description></item></channel></rss> \ No newline at end of file diff --git a/versions/doc-improvements/index.xml b/versions/doc-improvements/index.xml index 61abe27..23b2b47 100644 --- a/versions/doc-improvements/index.xml +++ b/versions/doc-improvements/index.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hilbishhttps://rosettea.github.io/Hilbish/versions/doc-improvements/Recent content on HilbishHugo -- gohugo.ioen-usFrequently Asked Questionshttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/faq/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/faq/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&rsquo;s main goal, but &hellip;.) Windows Support? It compiles for Windows (CI ensures it does), but otherwise it is not directly supported. If you&rsquo;d like to improve this situation, checkout the discussion . -Where is the API documentation?Getting Startedhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/getting-started/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/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. +Why? Hilbish emerged from the desire of a Lua configured shell.Getting Startedhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/getting-started/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/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.Improving Hilbish's Brandinghttps://rosettea.github.io/Hilbish/versions/doc-improvements/blog/improving-this-website/Thu, 13 Apr 2023 22:15:31 -0400https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/improving-this-website/Happy birthday Hilbish! As of last month, Hilbish is now 2 years old. Unfortunately I missed the official date, but I will still make a more focused post on the date (19st). I decided to fix up this website and Hilbish&rsquo;s logo, so that can be thought of as something for the 2 years milestone? Logo Hilbish&rsquo;s old logo was.. not that good. It definitely functioned as a logo, but the yellow part of it looked ugly (sorry old logo).v2.1.2 Releasehttps://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.1.2-release/Mon, 10 Apr 2023 12:27:41 -0400https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.1.2-release/The release with full changelogs and prebuilt binaries can be seen at the v2.1.2 tag. @@ -12,7 +12,23 @@ Oh look! A new release of Hilbish! This time is the v2.1 release, with a small a Documentation There have been a few documentation enhancements for this release. This includes: Adding the return types for all functions that need them Documenting Hilbish types like job objects and timers properly.Hilbish v2.0 Releasehttps://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.0-release/Thu, 29 Dec 2022 01:55:21 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/v2.0-release/Hilbish v2.0 has been released! Well actually, it was released a week ago, but I only wrote this Hilbish blog after that. 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.Installhttps://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. +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/completions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/completions/</guid><description>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.</description></item><item><title/><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/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>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.</description></item><item><title/><link>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/lunacolors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/lunacolors/</guid><description>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&rsquo;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.</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 is unique, when interactive it first attempts to run input as Lua and then tries shell script. But if you&rsquo;re normal, you wouldn&rsquo;t really be using Hilbish anyway but you&rsquo;d also not want this (or maybe want Lua only in some cases.) +The &ldquo;runner mode&rdquo; of Hilbish is customizable via hilbish.runnerMode, which determines how Hilbish will run user input. By default, this is set to hybrid which is the previously mentioned behaviour of running Lua first then going to shell script.</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/><link>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/vim-mode/actions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/vim-mode/actions/</guid><description>Vim actions are essentially just when a user uses a Vim keybind. Things like yanking and pasting are Vim actions. This is not an &ldquo;offical Vim thing,&rdquo; 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 relating to it. +Here is documentation for what the table of args will hold for an appropriate Vim action.</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 -&gt; input, cmdStr &gt; Thrown before a command is executed. The input is the user written command, while cmdStr is what will be executed (input will have aliases while cmdStr will have alias resolved input). +command.exit -&gt; code, cmdStr &gt; Thrown when a command exits. code is the exit code of the command, and cmdStr is the command that was run. +command.not-found -&gt; cmdStr &gt; Thrown when a command is not found.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 &gt; Sent when Hilbish is about to exit. +hilbish.vimMode -&gt; modeName &gt; Sent when Hilbish&rsquo;s Vim mode is changed (example insert to normal mode), modeName is the name of the mode changed to (can be insert, normal, delete or replace). +hilbish.vimAction -&gt; actionName, args &gt; Sent when the user does a &ldquo;vim action,&rdquo; being something like yanking or pasting text. See doc vim-mode actions for more info. +hilbish.cancel &gt; Sent when the user cancels their input with Ctrl-C.Installhttps://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.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 a library for writing custom commands in Lua. In order to make it easier to write commands for Hilbish, not require separate scripts and to be able to use in a config, the Commander library exists. This is like a very simple wrapper that works with Hilbish for writing commands. Example: @@ -33,4 +49,7 @@ Functions restoreState() Restores the last saved state of the terminal saveState Parameters This function has no parameters.Notificationhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/notifications/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/notifications/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: icon: A unicode/emoji icon for the notification. title: The title of the message text: Message text/body channel: The source of the message. This should be a unique and easily readable text identifier.Runner Modehttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/runner-mode/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/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 like Fennel as the interactive script runner.Welcome to the Hilbish bloghttps://rosettea.github.io/Hilbish/versions/doc-improvements/blog/welcome/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/welcome/Hello! Welcome to the Hilbish blog. This will mainly contain release announcements and some other things relating to Hilbish (development). \ No newline at end of file +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.
    Signalhttps://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/signal/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/hooks/signal/signal.sigint &gt; Sent when Hilbish receives SIGINT (on Ctrl-C). +signal.resize &gt; Sent when the terminal is resized. +signal.sigusr1 +signal.sigusr2Welcome to the Hilbish bloghttps://rosettea.github.io/Hilbish/versions/doc-improvements/blog/welcome/Mon, 01 Jan 0001 00:00:00 +0000https://rosettea.github.io/Hilbish/versions/doc-improvements/blog/welcome/Hello! Welcome to the Hilbish blog. This will mainly contain release announcements and some other things relating to Hilbish (development). \ No newline at end of file diff --git a/versions/doc-improvements/sitemap.xml b/versions/doc-improvements/sitemap.xml index 8c15bc1..f53c75b 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/features/2023-04-14T00:24:19-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/faq/2022-12-20T00:41:48-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/getting-started/2023-04-14T00:04:52-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/2022-12-20T19:42:44-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/categories/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/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.completions/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-07-10T19:03:30-04:00https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/features/runner-mode/2023-09-27T20:31:27-04:00https://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/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/completions/https://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/lunacolors/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/nature/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/docs/vim-mode/https://rosettea.github.io/Hilbish/versions/doc-improvements/docs/vim-mode/actions/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/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/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.completions/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/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