diff --git a/versions/new-website/blog/improving-this-website/index.html b/versions/new-website/blog/improving-this-website/index.html index c2d6b849..15019240 100644 --- a/versions/new-website/blog/improving-this-website/index.html +++ b/versions/new-website/blog/improving-this-website/index.html @@ -1,8 +1,8 @@ -Hilbish
Improving Hilbish's Branding

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Improving Hilbish's Branding

Happy birthday Hilbish! As of last month, Hilbish is now 2 years old. +Hilbish

Improving Hilbish's Branding

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

<img src="https://safe.kashima.moe/4c6e9q484pcy.png" width=256> <br>

You would have definitely seen the new logo, since it is currently @@ -13,13 +13,13 @@ in use on the navigation bar and footer. Here it is in a bigger view: # Website Ever since this website was first made, from the release of v2.0, it has -been doing it's job of being a website good enough, but there were a few issues.

Padding +been doing it's job of being a website good enough, but there were a few issues.

Padding Padding is very important! The edges of your screen need space to do nothing, after all. On mobile or screens small enough, there would not be enough space for the auto margin to fill, and since there was no padding besides that, it means things would look a bit cramped. This was simple to fix.

Here it is before: Before

and after: -After

Docs Navigation +After

Docs Navigation On the docs page, the pages are on the left on desktop. Since phones are too small to have this content on the side, it stays at the top. This is a bit counter intuitive since it brings in extra scrolling @@ -28,8 +28,8 @@ was not hidden by default. So a few improvements were made: - Make the doc navigation hidden by default on mobile, just like site wide navigation - Make doc navigation have the same look as site wide navigation

Here's a before:

and after: -

Looks a lot better now.

Other Changes +

Looks a lot better now.

Other Changes If you haven't noticed, I have made other changes to the website. This includes: - Borders! Something this simple makes the website look a lot better, especially on mobile. -- More padding and margin everywhere. Home, doc pages, blog post listing.

\ No newline at end of file +- More padding and margin everywhere. Home, doc pages, blog post listing.
\ No newline at end of file diff --git a/versions/new-website/blog/v2.0-release/index.html b/versions/new-website/blog/v2.0-release/index.html index 6e1479f5..6ea9686a 100644 --- a/versions/new-website/blog/v2.0-release/index.html +++ b/versions/new-website/blog/v2.0-release/index.html @@ -1,62 +1,62 @@ -Hilbish
Hilbish v2.0 Release

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Hilbish v2.0 Release

Hilbish v2.0 has been released! +Hilbish

Hilbish v2.0 Release

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 +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. Hilbish had plain text, autogenerated documentation which only covered the module functions (bait, hilbish, -commander, etc.) and did not include the interfaces (hilbish.timers, -hilbish.jobs and all that).

I have tried to improve this by working on documenting all the -interfaces (except for some functions of hilbish.runner, that's hard to do) +commander, etc.) and did not include the interfaces (hilbish.timers, +hilbish.jobs and all that).

I have tried to improve this by working on documenting all the +interfaces (except for some functions of hilbish.runner, that's hard to do) and made the documentation markdown for use on this website. This means -that users can look at documentation here or with the doc command.

Hopefully this addresses documentation complaints, and if not, please open an issue.

Main Bug Fixes +that users can look at documentation here or with the doc command.

Hopefully this addresses documentation complaints, and if not, please open an issue.

Main Bug Fixes As this is a piece of software with no unit testing that is maintained by me alone, there is gonna be either some bug or something that I overlooked when making a change. I make a lot of mistakes. There's also the other fact that sometimes there's just bugs for any other reasosn. Good thing I fixed -more than 40 of those bugs in this release!

A few of the fixes (and additions) include:

  • Fixing various crashes, including when there is a "stray" newline at the end of text

  • Grid completion menu causing spam and duplicate text when there are items longer than

the terminal and/or contain Japanese or other characters. - Cursor positioning with CJK characters -- Adding new keybinds and fixing others

Breaking changes + - Completion related fixes, like showing the full name, completing files with spaces

Breaking changes This release is a major version bump not only because there are tons of fixes, but because there are breaking changes. This means that there are some changes done which would -cause errors with an old user config (breaking).

Lua 5.4 +cause errors with an old user config (breaking).

Lua 5.4 The most important is the use of a new Lua VM library. Previously, Hilbish used gopher-lua, which implements Lua 5.1. This has been changed to golua, which implements Lua 5.4.

Moving from 5.1 to 5.4 does have breaking changes even if it doesn't seem like it, -and since these are different Lua implementations, there may be some differences there too.

Userdata +and since these are different Lua implementations, there may be some differences there too.

Userdata Previously, objects such as jobs or timers were represented by tables. -This has been changed to userdata to make more sense.

Other changes +This has been changed to userdata to make more sense.

Other changes Runner functions are now required to return a table. It can (at the moment) have 4 variables: -- input (user input) -- exitCode (exit code) -- error (error message) -- continue (whether to prompt for more input) +- input (user input) +- exitCode (exit code) +- error (error message) +- continue (whether to prompt for more input) User input has been added to the return to account for runners wanting to -prompt for continued input, and to add it properly to history. continue +prompt for continued input, and to add it properly to history. continue got added so that it would be easier for runners to get continued input without having to actually handle it at all.

The MacOS config paths now match Linux, since it makes more sense for -a program like Hilbish.

The Hilbish greeting is now an opt, and is printed by default.

Feature Additions +a program like Hilbish.

The Hilbish greeting is now an opt, and is printed by default.

Feature Additions Besides fixes and changes, this release also includes a good portion of new features! Users can now add handlers for syntax highlighting and -inline hinting.

Some new hooks have been added, like hilbish.cancel and hilbish.init. -You can look at all the hooks via the doc hooks command

Job management functions have also been added. You can now put jobs in the +inline hinting.

Some new hooks have been added, like hilbish.cancel and hilbish.init. +You can look at all the hooks via the doc hooks command

Job management functions have also been added. You can now put jobs in the foreground/background and disown them via the expected commands and also -via the Lua API.

The hilbish.timers API interface was also added in this release!

Closing Off +via the Lua API.

The hilbish.timers API interface was also added in this release!

Closing Off Hilbish has gone from something small and simple for myself to a slightly advanced shell with a decent amount of features, and a few users. It still hasn't reached levels of other alt shells in regards to literally everything, but the goal is to get there!

If you want to check the FULL changelog, you can do so here. This v2.0 release marks an advancement in Hilbish (and also how long one of my projects hasn't died) and I hope it can advance even further.

Thanks for reading, and I'll be back for the v2.1 release notes, or maybe -something else in between.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +something else in between.

\ No newline at end of file diff --git a/versions/new-website/blog/v2.1-release/index.html b/versions/new-website/blog/v2.1-release/index.html index 5ceda739..af76afd7 100644 --- a/versions/new-website/blog/v2.1-release/index.html +++ b/versions/new-website/blog/v2.1-release/index.html @@ -1,36 +1,36 @@ -Hilbish
v2.1 Release

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

v2.1 Release

> The release with full changelogs and prebuilt binaries can be +Hilbish

v2.1 Release

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 +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. They now have a separate heading and listing of properties and methods. -- Fixing outdated documentation

Features

Sinks +- Fixing outdated documentation

Features

Sinks A major addition is the new "sink" type for commanders to write their output to. This was the solution to pipes and other shell operators not working with builtins. If you wrote a commander -and made it print, use sinks.out:write instead.

This is also documented at the commander docs.

doc command +and made it print, use sinks.out:write instead.

This is also documented at the commander docs.

doc command Since API documentation has been moved to an API folder and also includes interfaces, a change has been made to get the module name from the passed from the requested page. This means that -doc api hilbish hilbish.jobs is now shortened to doc api hilbish.jobs

Bug Fixes +doc api hilbish hilbish.jobs is now shortened to doc api hilbish.jobs

Bug Fixes Small release, small amount of bug fixes. Even though, this is the main -part of this release.

Segfaults +path complete to /bin. Since this is (or can be?) a symlink to +/usr/bin, it was not marked as a directory and therefore did not +automatically add the ending slash. This has been fixed.

Segfaults I found that when I updated my terminal of choice ([Tym]) for the new daemon feature, Hilbish would sometimes segfault on startup. This is due -to it getting a resize event on startup while bait was not initialized -yet.

API Fixes -- The hilbish.which function works with aliases. -- hilbish.completion.files and hilbish.completion.bins will no longer -cause a panic with all empty arguments passed.

Next Release +to it getting a resize event on startup while bait was not initialized +yet.

API Fixes +- The hilbish.which function works with aliases. +- hilbish.completion.files and hilbish.completion.bins will no longer +cause a panic with all empty arguments passed.

Next Release Stay tuned for the v2.2 release, which will have a bigger set of features -and maybe some more bug fixes!

\ No newline at end of file +and maybe some more bug fixes!
\ No newline at end of file diff --git a/versions/new-website/blog/v2.1.1-release/index.html b/versions/new-website/blog/v2.1.1-release/index.html index 9c12df86..42918278 100644 --- a/versions/new-website/blog/v2.1.1-release/index.html +++ b/versions/new-website/blog/v2.1.1-release/index.html @@ -1,18 +1,18 @@ -Hilbish
v2.1.1 Release

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

v2.1.1 Release

> The release with full changelogs and prebuilt binaries can be +Hilbish

v2.1.1 Release

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 +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. This is from the new TMOLI42SH -(The Meaning of Life is 42 String Hash) input validation scheme.

Improved runtime code +(The Meaning of Life is 42 String Hash) input validation scheme.

Improved runtime code Commands now have a chance of taking exactly 2-3s ~~more~~ less time of running due to -improvements in the code for shell runners!!!!!

Validate lua code +improvements in the code for shell runners!!!!!

Validate lua code Hilbish already threw an error when Lua code was not valid in syntax, but there was the need for an extra validation scheme (called OpTTCLC - Opinion based Turing Test to Check Lua Code) -which results in less time wasted running invalid and TERRIBLE Lua code.

Features -There is only 1 new feature in this glorious release.

Fix your mistakes for the future -If you run a command that does not exist, Hilbish will say goodbye.

Closing +which results in less time wasted running invalid and TERRIBLE Lua code.

Features +There is only 1 new feature in this glorious release.

Fix your mistakes for the future +If you run a command that does not exist, Hilbish will say goodbye.

Closing Hope you enjoy this new release! It took a lot of effort to create this new version -while I was busy doing completely nothing. :)))

\ No newline at end of file +while I was busy doing completely nothing. :)))
\ No newline at end of file diff --git a/versions/new-website/blog/v2.1.2-release/index.html b/versions/new-website/blog/v2.1.2-release/index.html index fecb7289..127b90b4 100644 --- a/versions/new-website/blog/v2.1.2-release/index.html +++ b/versions/new-website/blog/v2.1.2-release/index.html @@ -1,6 +1,6 @@ -Hilbish
v2.1.2 Release

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

v2.1.2 Release

> The release with full changelogs and prebuilt binaries can be +Hilbish

v2.1.2 Release

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!

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +the good and feature-filled release of v2.2!

\ No newline at end of file diff --git a/versions/new-website/blog/v2.2-release/index.html b/versions/new-website/blog/v2.2-release/index.html index 1fb83e55..3a2cb91b 100644 --- a/versions/new-website/blog/v2.2-release/index.html +++ b/versions/new-website/blog/v2.2-release/index.html @@ -1,37 +1,37 @@ -Hilbish
v2.2 Release

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

v2.2 Release

> The release with full changelogs and prebuilt binaries can be +Hilbish

v2.2 Release

v2.2 Release

> The release with full changelogs and prebuilt binaries can be seen at the v2.2.0 tag.

Welcome to a very long awaited release of Hilbish, and on Christmas. Just think of it as a long preparing, late Christmas gift. :) This release does not contain a whole lot of changes, but it is a new -release with enhancements and bug fixes!

Documentation +release with enhancements and bug fixes!

Documentation As is a trend, the documentation has been improved by ONE HUNDRED TIMES. Okay, not quite, but they've definitely been given an uplift. Everything has been rewritten, new documentation has been added to both -the website and the local docs accessible with the doc command. -Both the website and local docs are now in sync with each other.

This means that the doc command has also been improved to consolidate +the website and the local docs accessible with the doc command. +Both the website and local docs are now in sync with each other.

This means that the doc command has also been improved to consolidate the documentation changes. It looks a lot better, has pagination, etc!

Speaking of pagination... # Features ## Greenhouse The first new added feature is the Greenhouse pager! It is a library and -command accessible via greenhouse. It will have better integration with +command accessible via greenhouse. It will have better integration with Hilbish things, like notifications and can be used as a base for displaying multi-line text output instead of paging to less. The usage of Greenhouse is -more efficient and better in Hibish!

Notifications +more efficient and better in Hibish!

Notifications Wait... notifications? Yes! All new in the 2.2 release is a generic notification interface for things in Hilbish to alert the user of things going on. Stuff like -background jobs finishing, simple alarms, actual messages, whatever you like.

Fuzzy Searching +background jobs finishing, simple alarms, actual messages, whatever you like.

Fuzzy Searching Users can now use fuzzy search for command history and completion search. -Enable it with hilbish.opts.fuzzy = true!

Smaller Enhancements -Did you know of the cdr command? I personally don't use it, but I've made +Enable it with hilbish.opts.fuzzy = true!

Smaller Enhancements +Did you know of the cdr command? I personally don't use it, but I've made it look slightly better for ease of use. That simple change is adding the indexes -next to the directory so you'll know to type cdr 2.

Users can now add aliases with numbered substitutions. In shell script, +next to the directory so you'll know to type cdr 2.

Users can now add aliases with numbered substitutions. In shell script, some people have to make functions for certain things that are actually -just aliases. A simple example: nix run nixpkgs#package cannot be aliased -because if it was aliased to something like run normally there would be a space after.

Simple fix: -lua +just aliases. A simple example: nix run nixpkgs#package cannot be aliased +because if it was aliased to something like run normally there would be a space after.

Simple fix: +lua hilbish.alias('run', 'nix run nixpkgs#%1') -

Rejoice!

Bug Fixes +

Rejoice!

Bug Fixes There are a small amount of bug fixes but they're still fixes!

In some cases Hilbish will panic if: - Alias resolution results in something empty - A user does not return a table in a runner functions @@ -39,8 +39,8 @@ These are both fixed.

An infinite loop has been patched out if someone nav having any prior history. Imagine pressing the up key on a fresh Hilbish install and you shell no longer working... that's gone now.

Something else that's gone... is still Windows support, but I added a fix which will make file completion work now. Job management commands work as -well now too due to an oversight when changing up the job functions.

Towards v2.3 +well now too due to an oversight when changing up the job functions.

Towards v2.3 For the next release, I'm hoping that it won't take as long to deliver on what is realistically a small amount of changes. So v2.3 will be coming in a short time with some good changes, promise! See you in the -next blog post.

\ No newline at end of file +next blog post.
\ No newline at end of file diff --git a/versions/new-website/blog/v2.3-release/index.html b/versions/new-website/blog/v2.3-release/index.html index d54bbe22..b88fc8ac 100644 --- a/versions/new-website/blog/v2.3-release/index.html +++ b/versions/new-website/blog/v2.3-release/index.html @@ -1,14 +1,14 @@ -Hilbish
v2.3 Release

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

v2.3 Release

> The release with full changelogs and prebuilt binaries can be +Hilbish

v2.3 Release

v2.3 Release

> The release with full changelogs and prebuilt binaries can be seen at the v2.3.0 tag.

Hilbish v2.3 has now been released! This is small feature and bug fix release which took a while to cme ut since I took a long break from programming in general. -The next release will be great, so stay tuned for that.

Features

Pipes (via Lua) -Commands can now be piped to each other via the Lua API with the hilbish.run -function and an fs.pipe.

Here is a minimal example of the new usage which allows users to now pipe commands +The next release will be great, so stay tuned for that.

Features

Pipes (via Lua) +Commands can now be piped to each other via the Lua API with the hilbish.run +function and an fs.pipe.

Here is a minimal example of the new usage which allows users to now pipe commands directly via Lua functions: -lua +lua local fs = require 'fs' local pr, pw = fs.pipe() hilbish.run('ls -l', { @@ -17,11 +17,11 @@ hilbish.run('ls -l', { })

pw:close()

hilbish.run('wc -l', { stdin = pr }) -

This also means it's easier to make commands output to any stream output, -including in commanders.

Bug Fixes +

This also means it's easier to make commands output to any stream output, +including in commanders.

Bug Fixes - Commanders can now be cancelled with Ctrl-C, which means if they froze for some reason they can now be exited. - The shell script interpreter now keeps its environment, and this also fixes the current working directory being wrong with some commands. - Some greenhouse bugs have been fixed, like randomly appearing when resizing the terminal -and some text attributes like color appearing where they weren't supposed to.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +and some text attributes like color appearing where they weren't supposed to.
\ No newline at end of file diff --git a/versions/new-website/blog/welcome/index.html b/versions/new-website/blog/welcome/index.html index 321fbecc..89293cd1 100644 --- a/versions/new-website/blog/welcome/index.html +++ b/versions/new-website/blog/welcome/index.html @@ -1,3 +1,3 @@ -Hilbish
Welcome to the Hilbish blog

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

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 +Hilbish
Welcome to the Hilbish blog
\ No newline at end of file diff --git a/versions/new-website/do/index.html b/versions/new-website/do/index.html new file mode 100644 index 00000000..24a19a18 --- /dev/null +++ b/versions/new-website/do/index.html @@ -0,0 +1,3 @@ + +Hilbish
API
\ No newline at end of file diff --git a/versions/new-website/docs/api/bait/index.html b/versions/new-website/docs/api/bait/index.html index a876a130..402af03b 100644 --- a/versions/new-website/docs/api/bait/index.html +++ b/versions/new-website/docs/api/bait/index.html @@ -1,94 +1,104 @@ -Hilbish
Module bait

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module bait

Introduction

Bait is the event emitter for Hilbish. Much like Node.js and -its events system, many actions in Hilbish emit events. +Hilbish

Module bait

Module 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's pretty simple: -If you want to act on a certain event, you can catch it. +If you want to act on a certain event, you can catch it. You can act on events via callback functions.

Examples of this are in the Hilbish default config! Consider this part of it: -lua +lua bait.catch('command.exit', function(code) running = false doPrompt(code ~= 0) doNotifyPrompt() end) -

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

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

<hr> -<div id='catch'> -<h4 class='heading'> +

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

Functions


+
+

bait.catch(name, cb) -<a href="#catch" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

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.

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

bait.catch('hilbish.exit', function()
 	print 'Goodbye Hilbish!'
 end)
-
-</div>

<hr> -<div id='catchOnce'> -<h4 class='heading'> +


+
+

bait.catchOnce(name, cb) -<a href="#catchOnce" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

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.

</div>

<hr> -<div id='hooks'> -<h4 class='heading'> -bait.hooks(name) -> table -<a href="#hooks" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

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

Parameters -string **name** -The name of the hook

</div>

<hr> -<div id='release'> -<h4 class='heading'> + + + +

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 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) -<a href="#release" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

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 -lua -local hookCallback = function() print 'hi' end

bait.catch('event', hookCallback)

-- a little while later.... + + + +

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

local hookCallback = function() print 'hi' end
+
+bait.catch('event', hookCallback)
+
+-- a little while later....
 bait.release('event', hookCallback)
 -- and now hookCallback will no longer be ran for the event.
-
-</div>

<hr> -<div id='throw'> -<h4 class='heading'> +


+
+

bait.throw(name, ...args) -<a href="#throw" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Throws a hook with name with the provided args.

Parameters -string **name** -The name of the hook.

any **args** (This type is variadic. You can pass an infinite amount of parameters with this type.) -The arguments to pass to the hook.

Example -lua -bait.throw('greeting', 'world')

-- This can then be listened to via + + + +

Throws a hook with name with the provided args.

Parameters

string *name* +The name of the hook.

any *args* (This type is variadic. You can pass an infinite amount of parameters with this type.) +The arguments to pass to the hook.

Example

bait.throw('greeting', 'world')
+
+-- This can then be listened to via
 bait.catch('gretting', function(greetTo)
 	print('Hello ' .. greetTo)
 end)
-
-</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +
\ No newline at end of file diff --git a/versions/new-website/docs/api/commander/index.html b/versions/new-website/docs/api/commander/index.html index 0ccbf813..ebd6994d 100644 --- a/versions/new-website/docs/api/commander/index.html +++ b/versions/new-website/docs/api/commander/index.html @@ -1,5 +1,5 @@ -Hilbish
Module commander

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module commander

Introduction

Commander is the library which handles Hilbish commands. This makes +Hilbish

Module commander

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

local commander = require 'commander'
@@ -7,58 +7,65 @@ library in your Hilbish config.

local commander =
 commander.register('hello', function(args, sinks)
 	sinks.out:writeln 'Hello world!'
 end)
-

In this example, a command with the name of hello is created -that will print Hello world! to output. One question you may -have is: What is the sinks parameter?

The sinks parameter is a table with 3 keys: input, out, and err. -There is an in alias to input, but it requires using the string accessor syntax (sinks['in']) -as in is also a Lua keyword, so input is preferred for use. -All of them are a <a href="/Hilbish/docs/api/hilbish/#sink" style="text-decoration: none;">Sink</a>. -In the future, sinks.in will be removed.

  • in is the standard input.

You may use the read functions on this sink to get input from the user. -- out is standard output. +

In this example, a command with the name of hello is created +that will print Hello world! to output. One question you may +have is: What is the sinks parameter?

The sinks parameter is a table with 3 keys: input, out, and err. +There is an in alias to input, but it requires using the string accessor syntax (sinks['in']) +as in is also a Lua keyword, so input is preferred for use. +All of them are a @Sink. +In the future, sinks.in will be removed.

  • in is the standard input.

You may use the read functions on this sink to get input from the user. +- out is standard output. This is usually where command output should go. -- err is standard error. -This sink is for writing errors, as the name would suggest.

Functions -||| -|----|----| -|<a href="#deregister">deregister(name)</a>|Removes the named command. Note that this will only remove Commander-registered commands.| -|<a href="#register">register(name, cb)</a>|Adds a new command with the given name. When Hilbish has to run a command with a name,| -|<a href="#registry">registry() -> table</a>|Returns all registered commanders. Returns a list of tables with the following keys:|

<hr> -<div id='deregister'> -<h4 class='heading'> +- err is standard error. +This sink is for writing errors, as the name would suggest.

Functions

+ + + + + + + + + + + + + + + +
deregister(name)Removes the named command. Note that this will only remove Commander-registered commands.
register(name, cb)Adds a new command with the given `name`. When Hilbish has to run a command with a name,
registry() -> tableReturns all registered commanders. Returns a list of tables with the following keys:
+

Functions


+
+

commander.deregister(name) -<a href="#deregister" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Removes the named command. Note that this will only remove Commander-registered commands.

Parameters -string **name** -Name of the command to remove.

</div>

<hr> -<div id='register'> -<h4 class='heading'> + + + +

Removes the named command. Note that this will only remove Commander-registered commands.

Parameters

string *name* +Name of the command to remove.


+
+

commander.register(name, cb) -<a href="#register" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Adds a new command with the given name. When Hilbish has to run a command with a name, -it will run the function providing the arguments and sinks.

Parameters -string **name** -Name of the command

function **cb** -Callback to handle command invocation

Example -lua --- When you run the command `hello` in the shell, it will print `Hello world`. + + + +

Adds a new command with the given name. When Hilbish has to run a command with a name, +it will run the function providing the arguments and sinks.

Parameters

string *name* +Name of the command

function *cb* +Callback to handle command invocation

Example

-- When you run the command `hello` in the shell, it will print `Hello world`.
 -- If you run it with, for example, `hello Hilbish`, it will print 'Hello Hilbish'
 commander.register('hello', function(args, sinks)
 	local name = 'world'
-	if #args > 0 then name = args[1] end

sinks.out:writeln('Hello ' .. name) + if #args > 0 then name = args[1] end + + sinks.out:writeln('Hello ' .. name) end) - -</div>

<hr> -<div id='registry'> -<h4 class='heading'> -commander.registry() -> table -<a href="#registry" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns all registered commanders. Returns a list of tables with the following keys: -- exec: The function used to run the commander. Commanders require args and sinks to be passed.

Parameters -This function has no parameters. -</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +

+
+

+commander.registry() -> table + + + +

Returns all registered commanders. Returns a list of tables with the following keys: +- exec: The function used to run the commander. Commanders require args and sinks to be passed.

Parameters

This function has no parameters.

\ No newline at end of file diff --git a/versions/new-website/docs/api/fs/index.html b/versions/new-website/docs/api/fs/index.html index 54f28c33..3e4bba06 100644 --- a/versions/new-website/docs/api/fs/index.html +++ b/versions/new-website/docs/api/fs/index.html @@ -1,72 +1,104 @@ -Hilbish
Module fs

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module fs

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 -||| -|----|----| -|<a href="#abs">abs(path) -> string</a>|Returns an absolute version of the path.| -|<a href="#basename">basename(path) -> string</a>|Returns the "basename," or the last part of the provided path. If path is empty,| -|<a href="#cd">cd(dir)</a>|Changes Hilbish's directory to dir.| -|<a href="#dir">dir(path) -> string</a>|Returns the directory part of path. If a file path like| -|<a href="#glob">glob(pattern) -> matches (table)</a>|Match all files based on the provided pattern.| -|<a href="#join">join(...path) -> string</a>|Takes any list of paths and joins them based on the operating system's path separator.| -|<a href="#mkdir">mkdir(name, recursive)</a>|Creates a new directory with the provided name.| -|<a href="#pipe">fpipe() -> File, File</a>|Returns a pair of connected files, also known as a pipe.| -|<a href="#readdir">readdir(path) -> table[string]</a>|Returns a list of all files and directories in the provided path.| -|<a href="#stat">stat(path) -> {}</a>|Returns the information about a given path.|

Static module fields -||| -|----|----| -|pathSep|The operating system's path separator.|

<hr> -<div id='abs'> -<h4 class='heading'> -fs.abs(path) -> string -<a href="#abs" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns an absolute version of the path. -This can be used to resolve short paths like .. to /home/user.

Parameters -string **path**

</div>

<hr> -<div id='basename'> -<h4 class='heading'> -fs.basename(path) -> string -<a href="#basename" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns the "basename," or the last part of the provided path. If path is empty, -. will be returned.

Parameters -string **path** -Path to get the base name of.

</div>

<hr> -<div id='cd'> -<h4 class='heading'> +Hilbish

Module fs

Module fs

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
abs(path) -> stringReturns an absolute version of the `path`.
basename(path) -> stringReturns the "basename," or the last part of the provided `path`. If path is empty,
cd(dir)Changes Hilbish's directory to `dir`.
dir(path) -> stringReturns the directory part of `path`. If a file path like
glob(pattern) -> matches (table)Match all files based on the provided `pattern`.
join(...path) -> stringTakes any list of paths and joins them based on the operating system's path separator.
mkdir(name, recursive)Creates a new directory with the provided `name`.
fpipe() -> File, FileReturns a pair of connected files, also known as a pipe.
readdir(path) -> table[string]Returns a list of all files and directories in the provided path.
stat(path) -> {}Returns the information about a given `path`.
+

Static module fields

+ + + + + + + +
pathSepThe operating system's path separator.
+

Functions


+
+

+fs.abs(path) -> string + + + +

Returns an absolute version of the path. +This can be used to resolve short paths like .. to /home/user.

Parameters

string *path*


+
+

+fs.basename(path) -> string + + + +

Returns the "basename," or the last part of the provided path. If path is empty, +. will be returned.

Parameters

string *path* +Path to get the base name of.


+
+

fs.cd(dir) -<a href="#cd" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Changes Hilbish's directory to dir.

Parameters -string **dir** -Path to change directory to.

</div>

<hr> -<div id='dir'> -<h4 class='heading'> -fs.dir(path) -> string -<a href="#dir" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns the directory part of path. If a file path like -~/Documents/doc.txt then this function will return ~/Documents.

Parameters -string **path** -Path to get the directory for.

</div>

<hr> -<div id='glob'> -<h4 class='heading'> -fs.glob(pattern) -> matches (table) -<a href="#glob" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Match all files based on the provided pattern. -For the syntax' refer to Go's filepath.Match function: https://pkg.go.dev/path/filepath#Match

Parameters -string **pattern** -Pattern to compare files with.

Example -lua ---[[ + + + +

Changes Hilbish's directory to dir.

Parameters

string *dir* +Path to change directory to.


+
+

+fs.dir(path) -> string + + + +

Returns the directory part of path. If a file path like +~/Documents/doc.txt then this function will return ~/Documents.

Parameters

string *path* +Path to get the directory for.


+
+

+fs.glob(pattern) -> matches (table) + + + +

Match all files based on the provided pattern. +For the syntax' refer to Go's filepath.Match function: https://pkg.go.dev/path/filepath#Match

Parameters

string *pattern* +Pattern to compare files with.

Example

--[[
 	Within a folder that contains the following files:
 	a.txt
 	init.lua
@@ -76,82 +108,68 @@ Pattern to compare files with.

Parameters -string **path** (This type is variadic. You can pass an infinite amount of parameters with this type.) -Paths to join together

Example -lua --- This prints the directory for Hilbish's config! +


+
+

+fs.join(...path) -> string + + + +

Takes any list of paths and joins them based on the operating system's path separator.

Parameters

string *path* (This type is variadic. You can pass an infinite amount of parameters with this type.) +Paths to join together

Example

-- This prints the directory for Hilbish's config!
 print(fs.join(hilbish.userDir.config, 'hilbish'))
 -- -> '/home/user/.config/hilbish' on Linux
-
-</div>

<hr> -<div id='mkdir'> -<h4 class='heading'> +


+
+

fs.mkdir(name, recursive) -<a href="#mkdir" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Creates a new directory with the provided name. -With recursive, mkdir will create parent directories.

Parameters -string **name** -Name of the directory

boolean **recursive** -Whether to create parent directories for the provided name

Example -lua --- This will create the directory foo, then create the directory bar in the + + + +

Creates a new directory with the provided name. +With recursive, mkdir will create parent directories.

Parameters

string *name* +Name of the directory

boolean *recursive* +Whether to create parent directories for the provided name

Example

-- This will create the directory foo, then create the directory bar in the
 -- foo directory. If recursive is false in this case, it will fail.
 fs.mkdir('./foo/bar', true)
-
-</div>

<hr> -<div id='pipe'> -<h4 class='heading'> -fs.fpipe() -> File, File -<a href="#pipe" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns a pair of connected files, also known as a pipe. -The type returned is a Lua file, same as returned from io functions.

Parameters -This function has no parameters. -</div>

<hr> -<div id='readdir'> -<h4 class='heading'> -fs.readdir(path) -> table[string] -<a href="#readdir" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns a list of all files and directories in the provided path.

Parameters -string **dir**

</div>

<hr> -<div id='stat'> -<h4 class='heading'> -fs.stat(path) -> {} -<a href="#stat" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns the information about a given path. +


+
+

+fs.fpipe() -> File, File + + + +

Returns a pair of connected files, also known as a pipe. +The type returned is a Lua file, same as returned from io functions.

Parameters

This function has no parameters.


+
+

+fs.readdir(path) -> table[string] + + + +

Returns a list of all files and directories in the provided path.

Parameters

string *dir*


+
+

+fs.stat(path) -> {} + + + +

Returns the information about a given path. The returned table contains the following values: name (string) - Name of the path size (number) - Size of the path in bytes mode (string) - Unix permission mode in an octal format string (with leading 0) -isDir (boolean) - If the path is a directory

Parameters -string **path**

Example -lua -local inspect = require 'inspect'

local stat = fs.stat '~' +isDir (boolean) - If the path is a directory

Parameters

string *path*

Example

local inspect = require 'inspect'
+
+local stat = fs.stat '~'
 print(inspect(stat))
 --[[
 Would print the following:
 {
-isDir = true,
-mode = "0755",
-name = "username",
-size = 12288
+  isDir = true,
+  mode = "0755",
+  name = "username",
+  size = 12288
 }
 ]]--
-
-</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.abbr/index.html b/versions/new-website/docs/api/hilbish/hilbish.abbr/index.html deleted file mode 100644 index a6d9ac44..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.abbr/index.html +++ /dev/null @@ -1,37 +0,0 @@ - -Hilbish
Module hilbish.abbr

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module hilbish.abbr

Introduction -The abbr module manages Hilbish abbreviations. These are words that can be replaced -with longer command line strings when entered. -As an example, git push can be abbreviated to gp. When the user types -gp into the command line, after hitting space or enter, it will expand to git push. -Abbreviations can be used as an alternative to aliases. They are saved entirely in the history -Instead of the aliased form of the same command.

Functions -||| -|----|----| -|<a href="#remove">remove(abbr)</a>|Removes the named abbr.| -|<a href="#add">add(abbr, expanded|function, opts)</a>|Adds an abbreviation. The abbr is the abbreviation itself,| -<hr> -<div id='add'> -<h4 class='heading'> -hilbish.abbr.add(abbr, expanded|function, opts) -<a href="#add" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Adds an abbreviation. The abbr is the abbreviation itself, -while expanded is what the abbreviation should expand to. -It can be either a function or a string. If it is a function, it will expand to what -the function returns. -opts is a table that accepts 1 key: anywhere. -opts.anywhere defines whether the abbr expands anywhere in the command line or not, -whereas the default behavior is only at the beginning of the line -#### Parameters -abbr **string**

expanded|function **string**

opts **table**

</div>

<hr> -<div id='remove'> -<h4 class='heading'> -hilbish.abbr.remove(abbr) -<a href="#remove" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Removes the named abbr. -#### Parameters -abbr **string**

</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.aliases/index.html b/versions/new-website/docs/api/hilbish/hilbish.aliases/index.html deleted file mode 100644 index a64884e6..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.aliases/index.html +++ /dev/null @@ -1,48 +0,0 @@ - -Hilbish
Module hilbish.aliases

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module hilbish.aliases

Introduction -The alias interface deals with all command aliases in Hilbish.

Functions -||| -|----|----| -|<a href="#aliases.add">add(alias, cmd)</a>|This is an alias (ha) for the hilbish.alias function.| -|<a href="#aliases.delete">delete(name)</a>|Removes an alias.| -|<a href="#aliases.list">list() -> table[string, string]</a>|Get a table of all aliases, with string keys as the alias and the value as the command.| -|<a href="#aliases.resolve">resolve(alias) -> string?</a>|Resolves an alias to its original command. Will thrown an error if the alias doesn't exist.|

<hr> -<div id='aliases.add'> -<h4 class='heading'> -hilbish.aliases.add(alias, cmd) -<a href="#aliases.add" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

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

Parameters -This function has no parameters. -</div>

<hr> -<div id='aliases.delete'> -<h4 class='heading'> -hilbish.aliases.delete(name) -<a href="#aliases.delete" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Removes an alias.

Parameters -string **name**

</div>

<hr> -<div id='aliases.list'> -<h4 class='heading'> -hilbish.aliases.list() -> table[string, string] -<a href="#aliases.list" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Get a table of all aliases, with string keys as the alias and the value as the command.

Parameters -This function has no parameters. -Example -lua -hilbish.aliases.add('hi', 'echo hi')

local aliases = hilbish.aliases.list() --- -> {hi = 'echo hi'} - -</div>

<hr> -<div id='aliases.resolve'> -<h4 class='heading'> -hilbish.aliases.resolve(alias) -> string? -<a href="#aliases.resolve" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Resolves an alias to its original command. Will thrown an error if the alias doesn't exist.

Parameters -string **alias**

</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.completion/index.html b/versions/new-website/docs/api/hilbish/hilbish.completion/index.html deleted file mode 100644 index b397b6f2..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.completion/index.html +++ /dev/null @@ -1,74 +0,0 @@ - -Hilbish
Module hilbish.completion

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module hilbish.completion

Introduction -The completions interface deals with tab completions.

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

<hr> -<div id='completion.bins'> -<h4 class='heading'> -hilbish.completion.bins(query, ctx, fields) -> entries (table), prefix (string) -<a href="#completion.bins" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

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

Parameters -string **query**

string **ctx**

table **fields**

Example -lua --- an extremely simple completer for sudo. -hilbish.complete('command.sudo', function(query, ctx, fields) - table.remove(fields, 1) - if #fields[1] then - -- return commands because sudo runs a command as root..!

local entries, pfx = hilbish.completion.bins(query, ctx, fields) - return { - type = 'grid', - items = entries - }, pfx - end

-- ... else suggest files or anything else .. -end) - -</div>

<hr> -<div id='completion.call'> -<h4 class='heading'> -hilbish.completion.call(name, query, ctx, fields) -> completionGroups (table), prefix (string) -<a href="#completion.call" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Calls a completer function. This is mainly used to call a command completer, which will have a name -in the form of command.name, example: command.git. -You can check the Completions doc or doc completions for info on the completionGroups return value.

Parameters -string **name**

string **query**

string **ctx**

table **fields**

</div>

<hr> -<div id='completion.files'> -<h4 class='heading'> -hilbish.completion.files(query, ctx, fields) -> entries (table), prefix (string) -<a href="#completion.files" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns file matches based on the provided parameters. -This function is meant to be used as a helper in a command completion handler.

Parameters -string **query**

string **ctx**

table **fields**

</div>

<hr> -<div id='completion.handler'> -<h4 class='heading'> -hilbish.completion.handler(line, pos) -<a href="#completion.handler" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

This function contains the general completion handler for Hilbish. This function handles -completion of everything, which includes calling other command handlers, binaries, and files. -This function can be overriden to supply a custom handler. Note that alias resolution is required to be done in this function.

Parameters -string **line** -The current Hilbish command line

number **pos** -Numerical position of the cursor

Example -lua --- stripped down version of the default implementation -function hilbish.completion.handler(line, pos) - local query = fields[#fields]

if #fields == 1 then - -- call bins handler here - else - -- call command completer or files completer here - end -end - -</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.editor/index.html b/versions/new-website/docs/api/hilbish/hilbish.editor/index.html deleted file mode 100644 index 55b8c916..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.editor/index.html +++ /dev/null @@ -1,62 +0,0 @@ - -Hilbish
Module hilbish.editor

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module hilbish.editor

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

Functions -||| -|----|----| -|<a href="#editor.deleteByAmount">deleteByAmount(amount)</a>|Deletes characters in the line by the given amount.| -|<a href="#editor.getLine">getLine() -> string</a>|Returns the current input line.| -|<a href="#editor.getVimRegister">getVimRegister(register) -> string</a>|Returns the text that is at the register.| -|<a href="#editor.insert">insert(text)</a>|Inserts text into the Hilbish command line.| -|<a href="#editor.getChar">getChar() -> string</a>|Reads a keystroke from the user. This is in a format of something like Ctrl-L.| -|<a href="#editor.setVimRegister">setVimRegister(register, text)</a>|Sets the vim register at register to hold the passed text.|

<hr> -<div id='editor.deleteByAmount'> -<h4 class='heading'> -hilbish.editor.deleteByAmount(amount) -<a href="#editor.deleteByAmount" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Deletes characters in the line by the given amount.

Parameters -number **amount**

</div>

<hr> -<div id='editor.getLine'> -<h4 class='heading'> -hilbish.editor.getLine() -> string -<a href="#editor.getLine" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns the current input line.

Parameters -This function has no parameters. -</div>

<hr> -<div id='editor.getVimRegister'> -<h4 class='heading'> -hilbish.editor.getVimRegister(register) -> string -<a href="#editor.getVimRegister" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns the text that is at the register.

Parameters -string **register**

</div>

<hr> -<div id='editor.insert'> -<h4 class='heading'> -hilbish.editor.insert(text) -<a href="#editor.insert" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Inserts text into the Hilbish command line.

Parameters -string **text**

</div>

<hr> -<div id='editor.getChar'> -<h4 class='heading'> -hilbish.editor.getChar() -> string -<a href="#editor.getChar" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Reads a keystroke from the user. This is in a format of something like Ctrl-L.

Parameters -This function has no parameters. -</div>

<hr> -<div id='editor.setVimRegister'> -<h4 class='heading'> -hilbish.editor.setVimRegister(register, text) -<a href="#editor.setVimRegister" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

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

Parameters -string **register**

string **text**

</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.history/index.html b/versions/new-website/docs/api/hilbish/hilbish.history/index.html deleted file mode 100644 index e2e9530a..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.history/index.html +++ /dev/null @@ -1,55 +0,0 @@ - -Hilbish
Module hilbish.history

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module hilbish.history

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

Functions -||| -|----|----| -|<a href="#history.add">add(cmd)</a>|Adds a command to the history.| -|<a href="#history.all">all() -> table</a>|Retrieves all history as a table.| -|<a href="#history.clear">clear()</a>|Deletes all commands from the history.| -|<a href="#history.get">get(index)</a>|Retrieves a command from the history based on the index.| -|<a href="#history.size">size() -> number</a>|Returns the amount of commands in the history.|

<hr> -<div id='history.add'> -<h4 class='heading'> -hilbish.history.add(cmd) -<a href="#history.add" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Adds a command to the history.

Parameters -string **cmd**

</div>

<hr> -<div id='history.all'> -<h4 class='heading'> -hilbish.history.all() -> table -<a href="#history.all" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Retrieves all history as a table.

Parameters -This function has no parameters. -</div>

<hr> -<div id='history.clear'> -<h4 class='heading'> -hilbish.history.clear() -<a href="#history.clear" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Deletes all commands from the history.

Parameters -This function has no parameters. -</div>

<hr> -<div id='history.get'> -<h4 class='heading'> -hilbish.history.get(index) -<a href="#history.get" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Retrieves a command from the history based on the index.

Parameters -number **index**

</div>

<hr> -<div id='history.size'> -<h4 class='heading'> -hilbish.history.size() -> number -<a href="#history.size" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns the amount of commands in the history.

Parameters -This function has no parameters. -</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.jobs/index.html b/versions/new-website/docs/api/hilbish/hilbish.jobs/index.html deleted file mode 100644 index b1184979..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.jobs/index.html +++ /dev/null @@ -1,78 +0,0 @@ - -Hilbish
Module hilbish.jobs

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module hilbish.jobs

Introduction

Manage interactive jobs in Hilbish via Lua.

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

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

<hr> -<div id='jobs.add'> -<h4 class='heading'> -hilbish.jobs.add(cmdstr, args, execPath) -<a href="#jobs.add" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Creates a new job. This function does not run the job. This function is intended to be -used by runners, but can also be used to create jobs via Lua. Commanders cannot be ran as jobs.

Parameters -string **cmdstr** -String that a user would write for the job

table **args** -Arguments for the commands. Has to include the name of the command.

string **execPath** -Binary to use to run the command. Needs to be an absolute path.

Example -lua -hilbish.jobs.add('go build', {'go', 'build'}, '/usr/bin/go') - -</div>

<hr> -<div id='jobs.all'> -<h4 class='heading'> -hilbish.jobs.all() -> table[<a href="/Hilbish/docs/api/hilbish/hilbish.jobs/#job" style="text-decoration: none;" id="lol">Job</a>] -<a href="#jobs.all" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns a table of all job objects.

Parameters -This function has no parameters. -</div>

<hr> -<div id='jobs.disown'> -<h4 class='heading'> -hilbish.jobs.disown(id) -<a href="#jobs.disown" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Disowns a job. This simply deletes it from the list of jobs without stopping it.

Parameters -number **id**

</div>

<hr> -<div id='jobs.get'> -<h4 class='heading'> -hilbish.jobs.get(id) -> <a href="/Hilbish/docs/api/hilbish/hilbish.jobs/#job" style="text-decoration: none;" id="lol">Job</a> -<a href="#jobs.get" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Get a job object via its ID.

Parameters -This function has no parameters. -</div>

<hr> -<div id='jobs.last'> -<h4 class='heading'> -hilbish.jobs.last() -> <a href="/Hilbish/docs/api/hilbish/hilbish.jobs/#job" style="text-decoration: none;" id="lol">Job</a> -<a href="#jobs.last" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns the last added job to the table.

Parameters -This function has no parameters. -</div>

Types -<hr>

Job -The Job type describes a Hilbish job. -Object properties -||| -|----|----| -|cmd|The user entered command string for the job.| -|running|Whether the job is running or not.| -|id|The ID of the job in the job table| -|pid|The Process ID| -|exitCode|The last exit code of the job.| -|stdout|The standard output of the job. This just means the normal logs of the process.| -|stderr|The standard error stream of the process. This (usually) includes error messages of the job.|

Methods

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

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

start() -Starts running the job.

stop() -Stops the job from running.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.messages/index.html b/versions/new-website/docs/api/hilbish/hilbish.messages/index.html deleted file mode 100644 index a3ca356e..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.messages/index.html +++ /dev/null @@ -1,88 +0,0 @@ - -Hilbish
Module hilbish.messages

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module hilbish.messages

Introduction -The messages interface defines a way for Hilbish-integrated commands, -user config and other tasks to send notifications to alert the user.z -The hilbish.message type is a table with the following keys: -title (string): A title for the message notification. -text (string): The contents of the message. -channel (string): States the origin of the message, hilbish.* is reserved for Hilbish tasks. -summary (string): A short summary of the text. -icon (string): Unicode (preferably standard emoji) icon for the message notification -read (boolean): Whether the full message has been read or not.

Functions -||| -|----|----| -|<a href="#unreadCount">unreadCount()</a>|Returns the amount of unread messages.| -|<a href="#send">send(message)</a>|Sends a message.| -|<a href="#readAll">readAll()</a>|Marks all messages as read.| -|<a href="#read">read(idx)</a>|Marks a message at idx as read.| -|<a href="#delete">delete(idx)</a>|Deletes the message at idx.| -|<a href="#clear">clear()</a>|Deletes all messages.| -|<a href="#all">all()</a>|Returns all messages.| -<hr> -<div id='all'> -<h4 class='heading'> -hilbish.messages.all() -<a href="#all" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns all messages. -#### Parameters -This function has no parameters. -</div>

<hr> -<div id='clear'> -<h4 class='heading'> -hilbish.messages.clear() -<a href="#clear" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Deletes all messages. -#### Parameters -This function has no parameters. -</div>

<hr> -<div id='delete'> -<h4 class='heading'> -hilbish.messages.delete(idx) -<a href="#delete" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Deletes the message at idx. -#### Parameters -idx **number**

</div>

<hr> -<div id='read'> -<h4 class='heading'> -hilbish.messages.read(idx) -<a href="#read" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Marks a message at idx as read. -#### Parameters -idx **number**

</div>

<hr> -<div id='readAll'> -<h4 class='heading'> -hilbish.messages.readAll() -<a href="#readAll" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Marks all messages as read. -#### Parameters -This function has no parameters. -</div>

<hr> -<div id='send'> -<h4 class='heading'> -hilbish.messages.send(message) -<a href="#send" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Sends a message. -#### Parameters -message **hilbish.message**

</div>

<hr> -<div id='unreadCount'> -<h4 class='heading'> -hilbish.messages.unreadCount() -<a href="#unreadCount" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns the amount of unread messages. -#### Parameters -This function has no parameters. -</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.module/index.html b/versions/new-website/docs/api/hilbish/hilbish.module/index.html deleted file mode 100644 index 27d4edf4..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.module/index.html +++ /dev/null @@ -1,33 +0,0 @@ - -Hilbish
Module hilbish.module

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

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

To make a valid native module, the Go plugin has to export a Loader function -with a signature like so: func(*rt.Runtime) rt.Value.

rt in this case refers to the Runtime type at -https://pkg.go.dev/github.com/arnodel/golua@master/runtime#Runtime

Hilbish uses this package as its Lua runtime. You will need to read -it to use it for a native plugin.

Here is some code for an example plugin: -go -package main

import ( - rt "github.com/arnodel/golua/runtime" -)

func Loader(rtm *rt.Runtime) rt.Value { - return rt.StringValue("hello world!") -} -

This can be compiled with go build -buildmode=plugin plugin.go. -If you attempt to require and print the result (print(require 'plugin')), it will show "hello world!"

Functions -||| -|----|----| -|<a href="#module.load">load(path)</a>|Loads a module at the designated path.|

Static module fields -||| -|----|----| -|paths|A list of paths to search when loading native modules. This is in the style of Lua search paths and will be used when requiring native modules. Example: ?.so;?/?.so|

<hr> -<div id='module.load'> -<h4 class='heading'> -hilbish.module.load(path) -<a href="#module.load" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Loads a module at the designated path. -It will throw if any error occurs.

Parameters -string **path**

</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.os/index.html b/versions/new-website/docs/api/hilbish/hilbish.os/index.html deleted file mode 100644 index a35822a7..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.os/index.html +++ /dev/null @@ -1,9 +0,0 @@ - -Hilbish
Module hilbish.os

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

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

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.runner/index.html b/versions/new-website/docs/api/hilbish/hilbish.runner/index.html deleted file mode 100644 index 4be7ae21..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.runner/index.html +++ /dev/null @@ -1,146 +0,0 @@ - -Hilbish
Module hilbish.runner

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

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

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): Exit code of the command

  • input (string): The text input of the user. This is used by Hilbish to append extra input, in case

more is requested. -- 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. -- continue (boolean): Whether Hilbish should prompt the user for no input -- newline (boolean): Whether a newline should be added at the end of input.

Here is a simple example of a fennel runner. It falls back to -shell script if fennel eval has an error. -lua -local fennel = require 'fennel'

hilbish.runnerMode(function(input) - local ok = pcall(fennel.eval, input) - if ok then - return { - input = input - } - end

return hilbish.runner.sh(input) -end) -

Functions -||| -|----|----| -|<a href="#runner.lua">lua(cmd)</a>|Evaluates cmd as Lua input. This is the same as using dofile| -|<a href="#sh">sh()</a>|nil| -|<a href="#setMode">setMode(mode)</a>|*NOTE: This function is deprecated and will be removed in 3.0| -|<a href="#setCurrent">setCurrent(name)</a>|Sets Hilbish's runner mode by name.| -|<a href="#set">set(name, runner)</a>|Sets* a runner by name. The difference between this function and| -|<a href="#run">run(input, priv)</a>|Runs input with the currently set Hilbish runner.| -|<a href="#getCurrent">getCurrent()</a>|Returns the current runner by name.| -|<a href="#get">get(name)</a>|Get a runner by name.| -|<a href="#exec">exec(cmd, runnerName)</a>|Executes cmd with a runner.| -|<a href="#add">add(name, runner)</a>|Adds a runner to the table of available runners.|

<hr> -<div id='runner.lua'> -<h4 class='heading'> -hilbish.runner.lua(cmd) -<a href="#runner.lua" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

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

Parameters -string **cmd**

</div>

<hr> -<div id='add'> -<h4 class='heading'> -hilbish.runner.add(name, runner) -<a href="#add" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Adds a runner to the table of available runners. -If runner is a table, it must have the run function in it. -#### Parameters -name **string** -Name of the runner

runner **function|table** -

</div>

<hr> -<div id='exec'> -<h4 class='heading'> -hilbish.runner.exec(cmd, runnerName) -<a href="#exec" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Executes cmd with a runner. -If runnerName is not specified, it uses the default Hilbish runner. -#### Parameters -cmd **string**

runnerName **string?**

</div>

<hr> -<div id='get'> -<h4 class='heading'> -hilbish.runner.get(name) -<a href="#get" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Get a runner by name. -#### Parameters -name **string** -Name of the runner to retrieve.

</div>

<hr> -<div id='getCurrent'> -<h4 class='heading'> -hilbish.runner.getCurrent() -<a href="#getCurrent" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns the current runner by name. -#### Parameters -This function has no parameters. -</div>

<hr> -<div id='run'> -<h4 class='heading'> -hilbish.runner.run(input, priv) -<a href="#run" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Runs input with the currently set Hilbish runner. -This method is how Hilbish executes commands. -priv is an optional boolean used to state if the input should be saved to history. -#### Parameters -input **string**

priv **bool**

</div>

<hr> -<div id='set'> -<h4 class='heading'> -hilbish.runner.set(name, runner) -<a href="#set" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Sets a runner by name. The difference between this function and -add, is set will not check if the named runner exists. -The runner table must have the run function in it. -#### Parameters -name **string**

runner **table**

</div>

<hr> -<div id='setCurrent'> -<h4 class='heading'> -hilbish.runner.setCurrent(name) -<a href="#setCurrent" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Sets Hilbish's runner mode by name. -#### Parameters -name **string**

</div>

<hr> -<div id='setMode'> -<h4 class='heading'> -hilbish.runner.setMode(mode) -<a href="#setMode" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

*NOTE: This function is deprecated and will be removed in 3.0* -Use hilbish.runner.setCurrent instead. -This is the same as the hilbish.runnerMode function. -It takes a callback, which will be used to execute all interactive input. -Or a string which names the runner mode to use. -#### Parameters -mode **string|function**

</div>

<hr> -<div id='sh'> -<h4 class='heading'> -hilbish.runner.sh() -<a href="#sh" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Parameters -This function has no parameters. -</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.timers/index.html b/versions/new-website/docs/api/hilbish/hilbish.timers/index.html deleted file mode 100644 index 97e32576..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.timers/index.html +++ /dev/null @@ -1,48 +0,0 @@ - -Hilbish
Module hilbish.timers

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module 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'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: -lua -local t = hilbish.timers.create(hilbish.timers.TIMEOUT, 5000, function() - print 'hello!' -end)

t:start() -print(t.running) // true -

Functions -||| -|----|----| -|<a href="#timers.create">create(type, time, callback) -> @Timer</a>|Creates a timer that runs based on the specified time.| -|<a href="#timers.get">get(id) -> @Timer</a>|Retrieves a timer via its ID.|

Static module fields -||| -|----|----| -|INTERVAL|Constant for an interval timer type| -|TIMEOUT|Constant for a timeout timer type|

<hr> -<div id='timers.create'> -<h4 class='heading'> -hilbish.timers.create(type, time, callback) -> <a href="/Hilbish/docs/api/hilbish/hilbish.timers/#timer" style="text-decoration: none;" id="lol">Timer</a> -<a href="#timers.create" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Creates a timer that runs based on the specified time.

Parameters -number **type** -What kind of timer to create, can either be hilbish.timers.INTERVAL or hilbish.timers.TIMEOUT

number **time** -The amount of time the function should run in milliseconds.

function **callback** -The function to run for the timer.

</div>

<hr> -<div id='timers.get'> -<h4 class='heading'> -hilbish.timers.get(id) -> <a href="/Hilbish/docs/api/hilbish/hilbish.timers/#timer" style="text-decoration: none;" id="lol">Timer</a> -<a href="#timers.get" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Retrieves a timer via its ID.

Parameters -number **id**

</div>

Types -<hr>

Timer -The Job type describes a Hilbish timer. -Object properties -||| -|----|----| -|type|What type of timer it is| -|running|If the timer is running| -|duration|The duration in milliseconds that the timer will run|

Methods

start() -Starts a timer.

stop() -Stops a timer.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/hilbish.userdir/index.html b/versions/new-website/docs/api/hilbish/hilbish.userdir/index.html deleted file mode 100644 index b170012d..00000000 --- a/versions/new-website/docs/api/hilbish/hilbish.userdir/index.html +++ /dev/null @@ -1,9 +0,0 @@ - -Hilbish
Module hilbish.userDir

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module 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's preferred directories -for configs and data.

Static module fields -||| -|----|----| -|config|The user's config directory| -|data|The user's directory for program data|

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/index.html b/versions/new-website/docs/api/hilbish/index.html index 579c7f12..35e83942 100644 --- a/versions/new-website/docs/api/hilbish/index.html +++ b/versions/new-website/docs/api/hilbish/index.html @@ -1,87 +1,158 @@ -Hilbish
Module hilbish

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module hilbish

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

Functions -||| -|----|----| -|<a href="#alias">alias(cmd, orig)</a>|Sets an alias, with a name of cmd to another command.| -|<a href="#appendPath">appendPath(dir)</a>|Appends the provided dir to the command path ($PATH)| -|<a href="#complete">complete(scope, cb)</a>|Registers a completion handler for the specified scope.| -|<a href="#cwd">cwd() -> string</a>|Returns the current directory of the shell.| -|<a href="#exec">exec(cmd)</a>|Replaces the currently running Hilbish instance with the supplied command.| -|<a href="#goro">goro(fn)</a>|Puts fn in a Goroutine.| -|<a href="#highlighter">highlighter(line)</a>|Line highlighter handler.| -|<a href="#hinter">hinter(line, pos)</a>|The command line hint handler. It gets called on every key insert to| -|<a href="#inputMode">inputMode(mode)</a>|Sets the input mode for Hilbish's line reader.| -|<a href="#interval">interval(cb, time) -> @Timer</a>|Runs the cb function every specified amount of time.| -|<a href="#multiprompt">multiprompt(str)</a>|Changes the text prompt when Hilbish asks for more input.| -|<a href="#prependPath">prependPath(dir)</a>|Prepends dir to $PATH.| -|<a href="#prompt">prompt(str, typ)</a>|Changes the shell prompt to the provided string.| -|<a href="#read">read(prompt) -> input (string)</a>|Read input from the user, using Hilbish's line editor/input reader.| -|<a href="#timeout">timeout(cb, time) -> @Timer</a>|Executed the cb function after a period of time.| -|<a href="#which">which(name) -> string</a>|Checks if name is a valid command.| -|<a href="#runnerMode">runnerMode(mode)</a>|Sets the execution/runner mode for interactive Hilbish.| -|<a href="#run">run(cmd, streams)</a>|Runs cmd in Hilbish's shell script interpreter.|

Static module fields -||| -|----|----| -|ver|The version of Hilbish| -|goVersion|The version of Go that Hilbish was compiled with| -|user|Username of the user| -|host|Hostname of the machine| -|dataDir|Directory for Hilbish data files, including the docs and default modules| -|interactive|Is Hilbish in an interactive shell?| -|login|Is Hilbish the login shell?| -|vimMode|Current Vim input mode of Hilbish (will be nil if not in Vim input mode)| -|exitCode|Exit code of the last executed command|

<hr> -<div id='alias'> -<h4 class='heading'> +Hilbish

Module hilbish

Module hilbish

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.
interval(cb, time) -> @TimerRuns the `cb` function every specified amount of `time`.
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.
timeout(cb, time) -> @TimerExecuted the `cb` function after a period of `time`.
which(name) -> stringChecks if `name` is a valid command.
+

Static module fields

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
verThe version of Hilbish
goVersionThe version of Go that Hilbish was compiled with
userUsername of the user
hostHostname of the machine
dataDirDirectory for Hilbish data files, including the docs and default modules
interactiveIs Hilbish in an interactive shell?
loginIs Hilbish the login shell?
vimModeCurrent Vim input mode of Hilbish (will be nil if not in Vim input mode)
exitCodeExit code of the last executed command
+

Functions


+
+

hilbish.alias(cmd, orig) -<a href="#alias" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Sets an alias, with a name of cmd to another command.

Parameters -string **cmd** -Name of the alias

string **orig** -Command that will be aliased

Example -lua --- With this, "ga file" will turn into "git add file" -hilbish.alias('ga', 'git add')

-- Numbered substitutions are supported here! + + + +

Sets an alias, with a name of cmd to another command.

Parameters

string *cmd* +Name of the alias

string *orig* +Command that will be aliased

Example

-- With this, "ga file" will turn into "git add file"
+hilbish.alias('ga', 'git add')
+
+-- Numbered substitutions are supported here!
 hilbish.alias('dircount', 'ls %1 | wc -l')
 -- "dircount ~" would count how many files are in ~ (home directory).
-
-</div>

<hr> -<div id='appendPath'> -<h4 class='heading'> +


+
+

hilbish.appendPath(dir) -<a href="#appendPath" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Appends the provided dir to the command path ($PATH)

Parameters -string|table **dir** -Directory (or directories) to append to path

Example -lua -hilbish.appendPath '~/go/bin' --- Will add ~/go/bin to the command path.

-- Or do multiple: + + + +

Appends the provided dir to the command path ($PATH)

Parameters

string|table *dir* +Directory (or directories) to append to path

Example

hilbish.appendPath '~/go/bin'
+-- Will add ~/go/bin to the command path.
+
+-- Or do multiple:
 hilbish.appendPath {
 	'~/go/bin',
 	'~/.local/bin'
 }
-
-</div>

<hr> -<div id='complete'> -<h4 class='heading'> +


+
+

hilbish.complete(scope, cb) -<a href="#complete" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Registers a completion handler for the specified scope. -A scope is expected to be command.<cmd>, -replacing <cmd> 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 -lua --- This is a very simple example. Read the full doc for completions for details. + + + +

Registers a completion handler for the specified scope. +A scope is expected to be command.<cmd>, +replacing <cmd> 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

-- This is a very simple example. Read the full doc for completions for details.
 hilbish.complete('command.sudo', function(query, ctx, fields)
 	if #fields == 0 then
 		-- complete for commands
@@ -89,238 +160,170 @@ hilbish.complete('command.sudo', function(query, ctx, fields)
 		local compGroup = {
 			items = comps, -- our list of items to complete
 			type = 'grid' -- what our completions will look like.
-		}

return {compGroup}, pfx - end

-- otherwise just be boring and return files

local comps, pfx = hilbish.completion.files(query, ctx, fields) + } + + return {compGroup}, pfx + end + + -- otherwise just be boring and return files + + local comps, pfx = hilbish.completion.files(query, ctx, fields) local compGroup = { items = comps, type = 'grid' - }

return {compGroup}, pfx + } + + return {compGroup}, pfx end) - -</div>

<hr> -<div id='cwd'> -<h4 class='heading'> -hilbish.cwd() -> string -<a href="#cwd" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Returns the current directory of the shell.

Parameters -This function has no parameters. -</div>

<hr> -<div id='exec'> -<h4 class='heading'> +


+
+

+hilbish.cwd() -> string + + + +

Returns the current directory of the shell.

Parameters

This function has no parameters.


+
+

hilbish.exec(cmd) -<a href="#exec" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

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

Parameters -string **cmd**

</div>

<hr> -<div id='goro'> -<h4 class='heading'> + + + +

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

Parameters

string *cmd*


+
+

hilbish.goro(fn) -<a href="#goro" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Puts fn in a Goroutine. + + + +

Puts fn in a Goroutine. This can be used to run any function in another thread at the same time as other Lua code. *NOTE: THIS FUNCTION MAY CRASH HILBISH IF OUTSIDE VARIABLES ARE ACCESSED.* -*This is a limitation of the Lua runtime.*

Parameters -function **fn**

</div>

<hr> -<div id='highlighter'> -<h4 class='heading'> +*This is a limitation of the Lua runtime.*

Parameters

function *fn*


+
+

hilbish.highlighter(line) -<a href="#highlighter" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Line highlighter handler. + + + +

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 -lua ---This code will highlight all double quoted strings in green. +Note that to set a highlighter, one has to override this function.

Parameters

string *line*

Example

--This code will highlight all double quoted strings in green.
 function hilbish.highlighter(line)
    return line:gsub('"%w+"', function(c) return lunacolors.green(c) end)
 end
-
-</div>

<hr> -<div id='hinter'> -<h4 class='heading'> +


+
+

hilbish.hinter(line, pos) -<a href="#hinter" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

The command line hint handler. It gets called on every key insert to + + + +

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** -Position of cursor in line. Usually equals string.len(line)

Example -lua --- this will display "hi" after the cursor in a dimmed color. +override this function with your custom handler.

Parameters

string *line*

number *pos* +Position of cursor in line. Usually equals string.len(line)

Example

-- this will display "hi" after the cursor in a dimmed color.
 function hilbish.hinter(line, pos)
 	return 'hi'
 end
-
-</div>

<hr> -<div id='inputMode'> -<h4 class='heading'> +


+
+

hilbish.inputMode(mode) -<a href="#inputMode" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Sets the input mode for Hilbish's line reader. -emacs is the default. Setting it to vim changes behavior of input to be -Vim-like with modes and Vim keybinds.

Parameters -string **mode** -Can be set to either emacs or vim

</div>

<hr> -<div id='interval'> -<h4 class='heading'> -hilbish.interval(cb, time) -> <a href="/Hilbish/docs/api/hilbish/hilbish.timers/#timer" style="text-decoration: none;" id="lol">Timer</a> -<a href="#interval" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Runs the cb function every specified amount of time. -This creates a timer that ticking immediately.

Parameters -function **cb**

number **time** -Time in milliseconds.

</div>

<hr> -<div id='multiprompt'> -<h4 class='heading'> + + + +

Sets the input mode for Hilbish's line reader. +emacs is the default. Setting it to vim changes behavior of input to be +Vim-like with modes and Vim keybinds.

Parameters

string *mode* +Can be set to either emacs or vim


+
+

+hilbish.interval(cb, time) -> @Timer + + + +

Runs the cb function every specified amount of time. +This creates a timer that ticking immediately.

Parameters

function *cb*

number *time* +Time in milliseconds.


+
+

hilbish.multiprompt(str) -<a href="#multiprompt" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

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 -lua ---[[ + + + +

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

--[[
 imagine this is your text input:
-user ~ ∆ echo "hey

but there's a missing quote! hilbish will now prompt you so the terminal +user ~ ∆ echo "hey + +but there's a missing quote! hilbish will now prompt you so the terminal will look like: user ~ ∆ echo "hey ---> ...!"

so then you get +--> ...!" + +so then you get user ~ ∆ echo "hey --> ...!" hey ...! ]]-- hilbish.multiprompt '-->' - -</div>

<hr> -<div id='prependPath'> -<h4 class='heading'> +


+
+

hilbish.prependPath(dir) -<a href="#prependPath" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Prepends dir to $PATH.

Parameters -string **dir**

</div>

<hr> -<div id='prompt'> -<h4 class='heading'> + + + +

Prepends dir to $PATH.

Parameters

string *dir*


+
+

hilbish.prompt(str, typ) -<a href="#prompt" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Changes the shell prompt to the provided string. + + + +

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 -lua --- the default hilbish prompt without color +%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

-- the default hilbish prompt without color
 hilbish.prompt '%u %d ∆'
 -- or something of old:
 hilbish.prompt '%u@%h :%d $'
 -- prompt: user@hostname: ~/directory $
-
-</div>

<hr> -<div id='read'> -<h4 class='heading'> -hilbish.read(prompt) -> input (string) -<a href="#read" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Read input from the user, using Hilbish's line editor/input reader. +


+
+

+hilbish.read(prompt) -> input (string) + + + +

Read input from the user, using Hilbish's line editor/input reader. This is a separate instance from the one Hilbish actually uses. -Returns input, will be nil if Ctrl-D is pressed, or an error occurs.

Parameters -string **prompt?** -Text to print before input, can be empty.

</div>

<hr> -<div id='timeout'> -<h4 class='heading'> -hilbish.timeout(cb, time) -> <a href="/Hilbish/docs/api/hilbish/hilbish.timers/#timer" style="text-decoration: none;" id="lol">Timer</a> -<a href="#timeout" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Executed the cb function after a period of time. -This creates a Timer that starts ticking immediately.

Parameters -function **cb**

number **time** -Time to run in milliseconds.

</div>

<hr> -<div id='which'> -<h4 class='heading'> -hilbish.which(name) -> string -<a href="#which" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Checks if name is a valid command. -Will return the path of the binary, or a basename if it's a commander.

Parameters -string **name**

</div>

Types -<hr>

Sink -A sink is a structure that has input and/or output to/from a desination.

Methods

autoFlush(auto) -Sets/toggles the option of automatically flushing output. -A call with no argument will toggle the value.

flush() -Flush writes all buffered input to the sink.

read() -> string -Reads a liine of input from the sink.

readAll() -> string -Reads all input from the sink.

write(str) -Writes data to a sink.

writeln(str) -Writes data to a sink with a newline at the end.

<hr> -<div id='run'> -<h4 class='heading'> -hilbish.run(cmd, streams) -<a href="#run" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Runs cmd in Hilbish's shell script interpreter. -The streams parameter specifies the output and input streams the command should use. -For example, to write command output to a sink. -As a table, the caller can directly specify the standard output, error, and input -streams of the command with the table keys out, err, and input respectively. -As a boolean, it specifies whether the command should use standard output or return its output streams. -#### Parameters -cmd **string**

streams **table|boolean**

Example -lua --- This code is the same as `ls -l | wc -l` -local fs = require 'fs' -local pr, pw = fs.pipe() -hilbish.run('ls -l', { - stdout = pw, - stderr = pw, -}) -pw:close() -hilbish.run('wc -l', { - stdin = pr -}) - -</div>

<hr> -<div id='runnerMode'> -<h4 class='heading'> -hilbish.runnerMode(mode) -<a href="#runnerMode" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Sets the execution/runner mode for interactive Hilbish. -*NOTE: This function is deprecated and will be removed in 3.0* -Use hilbish.runner.setCurrent instead. -This determines whether Hilbish wll try to run input as Lua -and/or sh or only do one of either. -Accepted values for mode are hybrid (the default), hybridRev (sh first then Lua), -sh, and lua. It also accepts a function, to which if it is passed one -will call it to execute user input instead. -Read about runner mode for more information. -#### Parameters -mode **string|function**

</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +Returns input, will be nil if Ctrl-D is pressed, or an error occurs.

Parameters

string *prompt?* +Text to print before input, can be empty.


+
+

+hilbish.timeout(cb, time) -> @Timer + + + +

Executed the cb function after a period of time. +This creates a Timer that starts ticking immediately.

Parameters

function *cb*

number *time* +Time to run in milliseconds.


+
+

+hilbish.which(name) -> string + + + +

Checks if name is a valid command. +Will return the path of the binary, or a basename if it's a commander.

Parameters

string *name*

Types


Sink

A sink is a structure that has input and/or output to/from a desination.

Methods

autoFlush(auto)

Sets/toggles the option of automatically flushing output. +A call with no argument will toggle the value.

flush()

Flush writes all buffered input to the sink.

read() -> string

Reads a liine of input from the sink.

readAll() -> string

Reads all input from the sink.

write(str)

Writes data to a sink.

writeln(str)

Writes data to a sink with a newline at the end.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/index.html b/versions/new-website/docs/api/index.html deleted file mode 100644 index 82ba0067..00000000 --- a/versions/new-website/docs/api/index.html +++ /dev/null @@ -1,3 +0,0 @@ - -Hilbish
API

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

API

Welcome to the API documentation for Hilbish. This documents Lua functions -provided by Hilbish.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/snail/index.html b/versions/new-website/docs/api/snail/index.html index cb0c682f..701acea1 100644 --- a/versions/new-website/docs/api/snail/index.html +++ b/versions/new-website/docs/api/snail/index.html @@ -1,22 +1,22 @@ -Hilbish
Module snail

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module snail

Introduction

The snail library houses Hilbish's Lua wrapper of its shell script interpreter. +Hilbish

Module snail

Module snail

Introduction

The snail library houses Hilbish's Lua wrapper of its shell script interpreter. It's not very useful other than running shell scripts, which can be done with other -Hilbish functions.

Functions -||| -|----|----| -|<a href="#new">new() -> @Snail</a>|Creates a new Snail instance.|

<hr> -<div id='new'> -<h4 class='heading'> -snail.new() -> <a href="/Hilbish/docs/api/snail/#snail" style="text-decoration: none;" id="lol">Snail</a> -<a href="#new" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Creates a new Snail instance.

Parameters -This function has no parameters. -</div>

Types -<hr>

Snail -A Snail is a shell script interpreter instance.

Methods

dir(path) -Changes the directory of the snail instance. +Hilbish functions.

Functions

+ + + + + + + +
new() -> @SnailCreates a new Snail instance.
+

Functions


+
+

+snail.new() -> @Snail + + + +

Creates a new Snail instance.

Parameters

This function has no parameters.

Types


Snail

A Snail is a shell script interpreter instance.

Methods

dir(path)

Changes the directory of the snail instance. The interpreter keeps its set directory even when the Hilbish process changes -directory, so this should be called on the hilbish.cd hook.

run(command, streams) -Runs a shell command. Works the same as hilbish.run, but only accepts a table of streams.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +directory, so this should be called on the hilbish.cd hook.

run(command, streams)

Runs a shell command. Works the same as hilbish.run, but only accepts a table of streams.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/api/terminal/index.html b/versions/new-website/docs/api/terminal/index.html index 64a285b7..40d86643 100644 --- a/versions/new-website/docs/api/terminal/index.html +++ b/versions/new-website/docs/api/terminal/index.html @@ -1,46 +1,52 @@ -Hilbish
Module terminal

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module terminal

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

Functions -||| -|----|----| -|<a href="#restoreState">restoreState()</a>|Restores the last saved state of the terminal| -|<a href="#saveState">saveState()</a>|Saves the current state of the terminal.| -|<a href="#setRaw">setRaw()</a>|Puts the terminal into raw mode.| -|<a href="#size">size()</a>|Gets the dimensions of the terminal. Returns a table with width and height|

<hr> -<div id='restoreState'> -<h4 class='heading'> +Hilbish

Module terminal

Module terminal

Introduction

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

Functions

+ + + + + + + + + + + + + + + + + + + +
restoreState()Restores the last saved state of the terminal
saveState()Saves the current state of the terminal.
setRaw()Puts the terminal into raw mode.
size()Gets the dimensions of the terminal. Returns a table with `width` and `height`
+

Functions


+
+

terminal.restoreState() -<a href="#restoreState" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Restores the last saved state of the terminal

Parameters -This function has no parameters. -</div>

<hr> -<div id='saveState'> -<h4 class='heading'> + + + +

Restores the last saved state of the terminal

Parameters

This function has no parameters.


+
+

terminal.saveState() -<a href="#saveState" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Saves the current state of the terminal.

Parameters -This function has no parameters. -</div>

<hr> -<div id='setRaw'> -<h4 class='heading'> + + + +

Saves the current state of the terminal.

Parameters

This function has no parameters.


+
+

terminal.setRaw() -<a href="#setRaw" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Puts the terminal into raw mode.

Parameters -This function has no parameters. -</div>

<hr> -<div id='size'> -<h4 class='heading'> + + + +

Puts the terminal into raw mode.

Parameters

This function has no parameters.


+
+

terminal.size() -<a href="#size" class='heading-link'> - <i class="fas fa-paperclip"></i> -</a> -</h4>

Gets the dimensions of the terminal. Returns a table with width and height -NOTE: The size refers to the amount of columns and rows of text that can fit in the terminal.

Parameters -This function has no parameters. -</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file + + + +

Gets the dimensions of the terminal. Returns a table with width and height +NOTE: The size refers to the amount of columns and rows of text that can fit in the terminal.

Parameters

This function has no parameters.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/completions/index.html b/versions/new-website/docs/completions/index.html index 0df7045b..9673d6d1 100644 --- a/versions/new-website/docs/completions/index.html +++ b/versions/new-website/docs/completions/index.html @@ -1,23 +1,23 @@ -Hilbish
Completions

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Completions

Completions for commands can be created with the hilbish.complete +Hilbish

Completions

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. +- 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 +- 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." +- 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 +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 +- 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: -lua +lua local cg = { items = { 'list item 1', @@ -29,22 +29,22 @@ local cg2 = { items = {'just', 'a bunch', 'of items', 'here', 'hehe'}, type = 'grid' }

return {cg, cg2}, prefix -

Which looks like this: -{{< video src="https://safe.saya.moe/t4CiLK6dgPbD.mp4" >}}

Completion Group Types

grid +

Which looks like this: +{{< video src="https://safe.saya.moe/t4CiLK6dgPbD.mp4" >}}

Completion Group Types

grid Grid is the simplest completion group type. All items are strings and when completion is done is displayed in a grid based on size.

Example: -lua +lua { items = {'just', 'a bunch', 'of items', 'here', 'hehe'}, type = 'grid' } -

list +

list The list completion group type displays in a list. A list item can either be a string, or a table for additional display options. -A completion alias can be specified either as the 2nd entry in the options table -or te alias key.

A description can optionally be displayed for a list item, which is either the 1st -entry or the description key.

Lastly, list entries can be styled. This is done with the display key. If this is present, this +A completion alias can be specified either as the 2nd entry in the options table +or te alias key.

A description can optionally be displayed for a list item, which is either the 1st +entry or the description key.

Lastly, list entries can be styled. This is done with the display key. If this is present, this overrides what the completion item looks like.

Example: -lua +lua { items = { ['--flag'] = { @@ -61,7 +61,7 @@ overrides what the completion item looks like.

Example: }, type = 'list' } -

Completion Handler +

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. @@ -69,11 +69,11 @@ 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. 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: -lua +for the command or fallback to file completions.

To overwrite it, just assign a function to hilbish.completion.handler like so: +lua -- line is the entire line as a string -- pos is the position of the cursor. function hilbish.completion.handler(line, pos) -- do things end -

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/faq/index.html b/versions/new-website/docs/faq/index.html index 7f585c8d..eaec0ccc 100644 --- a/versions/new-website/docs/faq/index.html +++ b/versions/new-website/docs/faq/index.html @@ -1,14 +1,14 @@ -Hilbish
Frequently Asked Questions

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Frequently Asked Questions

Is Hilbish POSIX compliant? +Hilbish
Frequently Asked Questions

Frequently Asked Questions

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? +(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.

Why? +checkout the discussion.

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.

Does it have "autocompletion" or "tab completion" +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.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +Inline hinting and syntax highlighting are also available.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/fe/index.html b/versions/new-website/docs/fe/index.html new file mode 100644 index 00000000..c7ca3c2e --- /dev/null +++ b/versions/new-website/docs/fe/index.html @@ -0,0 +1,5 @@ + +Hilbish
Features

Features

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.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/features/index.html b/versions/new-website/docs/features/index.html deleted file mode 100644 index e6ef4971..00000000 --- a/versions/new-website/docs/features/index.html +++ /dev/null @@ -1,5 +0,0 @@ - -Hilbish
Features

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Features

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.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/features/notifications/index.html b/versions/new-website/docs/features/notifications/index.html index 8ed2cb57..d4ff2362 100644 --- a/versions/new-website/docs/features/notifications/index.html +++ b/versions/new-website/docs/features/notifications/index.html @@ -1,23 +1,23 @@ -Hilbish
Notification

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Notification

Hilbish features a simple notification system which can be +Hilbish

Notification

Notification

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 +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. +- summary: A short summary of the notification and message. If this is not present and you are using this to display messages, -you should take part of the text instead.

The hilbish.message interface provides the following functions: -- send(message): Sends a message and emits the hilbish.notification -signal. DO NOT emit the hilbish.notification signal directly, or +you should take part of the text instead.

The hilbish.message interface provides the following functions: +- send(message): Sends a message and emits the hilbish.notification +signal. DO NOT emit the hilbish.notification signal directly, or the message will not be stored by the message handler. -- read(idx): Marks message at idx as read. -- delete(idx): Removes message at idx. -- readAll(): Marks all messages as read. -- clear(): Deletes all messages.

There are a few simple use cases of this notification/messaging system. +- read(idx): Marks message at idx as read. +- delete(idx): Removes message at idx. +- readAll(): Marks all messages as read. +- clear(): Deletes all messages.

There are a few simple use cases of this notification/messaging system. It could also be used as some "inter-shell" messaging system (???) but is intended to display to users.

An example is notifying users of completed jobs/commands ran in the background. Any Hilbish-native command (think the upcoming Greenhouse pager) can display -it.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +it.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/features/opts/index.html b/versions/new-website/docs/features/opts/index.html index 2f40f620..fd92d90b 100644 --- a/versions/new-website/docs/features/opts/index.html +++ b/versions/new-website/docs/features/opts/index.html @@ -1,11 +1,11 @@ -Hilbish
Options

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Options

Opts are simple toggle or value options a user can set in Hilbish. -As toggles, there are things like autocd or history saving. As values, -there is the motd which the user can either change to a custom string or disable.

Opts are accessed from the hilbish.opts table. Here they can either -be read or modified

autocd

Value: boolean -Default: false

The autocd opt makes it so that lone directories attempted to be executed are +Hilbish

Options

Options

Opts are simple toggle or value options a user can set in Hilbish. +As toggles, there are things like autocd or history saving. As values, +there is the motd which the user can either change to a custom string or disable.

Opts are accessed from the hilbish.opts table. Here they can either +be read or modified

autocd

Value: boolean +Default: false

The autocd opt makes it so that lone directories attempted to be executed are instead set as the shell's directory.

Example: - + ~/Directory ∆ ~ ~ @@ -14,22 +14,24 @@ instead set as the shell's directory.

Example: ∆ ../Documents ~/Documents ∆ -

<hr>

history

Value: boolean -Default: true +

<hr>

history

Value: boolean +Default: true Sets whether command history will be saved or not.

<hr> -### greeting -#### Value: boolean or string +### greeting +#### Value: boolean or string The greeting is the message that Hilbish shows on startup -(the one which says Welcome to Hilbish).

This can be set to either true/false to enable/disable or a custom greeting string.

<hr>

motd

Value: boolean -Default: true +(the one which says Welcome to Hilbish).

This can be set to either true/false to enable/disable or a custom greeting string.

<hr>

motd

Value: boolean +Default: true The message of the day shows the current major.minor version and -includes a small range of things added in the current release.

This can be set to false to disable the message.

<hr>

fuzzy

Value: boolean -Default: false +includes a small range of things added in the current release.

This can be set to false to disable the message.

<hr>

fuzzy

Value: boolean +Default: false Toggles the functionality of fuzzy history searching, usable via the menu in Ctrl-R. Fuzzy searching is an approximate searching method, which means results that match closest will be shown instead -of an exact match.

<hr>

notifyJobFinish

Value: boolean -Default: true +of an exact match.

<hr>

notifyJobFinish

Value: boolean +Default: true If this is enabled, when a background job is finished, -a notification will be sent.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +a notification will be sent.

processorSkipList

Value: table +Default: {} +A table listing the names of command processors to skip.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/features/runner-mode/index.html b/versions/new-website/docs/features/runner-mode/index.html index 0d1dbf70..c6d269ac 100644 --- a/versions/new-website/docs/features/runner-mode/index.html +++ b/versions/new-website/docs/features/runner-mode/index.html @@ -1,29 +1,29 @@ -Hilbish
Runner Mode

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Runner Mode

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

Runner Mode

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.

Runner mode can also be used to handle specific kinds of input before evaluating like normal, which is how Link.hsh -handles links.

The "runner mode" of Hilbish is customizable via hilbish.runnerMode, +handles links.

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 +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 +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 more detail, see the API documentation

The hilbish.runner interface is an alternative to using hilbish.runnerMode -and also provides the shell script and Lua runner functions that Hilbish itself uses.

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

These functions should be preferred over the previous ones. -+ setCurrent(mode) > The same as setMode, but works with runners managed +needs to run interactive input. For more detail, see the API documentation

The hilbish.runner interface is an alternative to using hilbish.runnerMode +and also provides the shell script and Lua runner functions that Hilbish itself uses.

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

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

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file ++ exec(cmd, runnerName) > Runs cmd with a runner. If runnerName isn't passed, +the current runner mode is used.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/getting-started/index.html b/versions/new-website/docs/getting-started/index.html index 911268ba..256214cf 100644 --- a/versions/new-website/docs/getting-started/index.html +++ b/versions/new-website/docs/getting-started/index.html @@ -1,28 +1,28 @@ -Hilbish
Getting Started

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

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

Getting Started

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

{{< warning It is not recommended to set Hilbish as your login shell. That +to make it your user/login shell.

{{< warning It is not recommended to set Hilbish as your login shell. That is expected to be a POSIX compliant shell, which Hilbish is not. Though if you still decide to do it, there will just be a few variables missing in -your environment >}}

To do that, simply run chsh -s /usr/bin/hilbish. -Some distros (namely Fedora) might have lchsh instead, which is used like lchsh <user>. -When prompted, you can put the path for Hilbish.

Default with terminal +your environment >}}

To do that, simply run chsh -s /usr/bin/hilbish. +Some distros (namely Fedora) might have lchsh instead, which is used like lchsh <user>. +When prompted, you can put the path for Hilbish.

Default with terminal The simpler way is to set the default shell for your terminal. The way of -doing this depends on how your terminal settings are configured.

Run after login shell -Some shells (like zsh) have an rc file, like .zlogin, which is ran when the shell session +doing this depends on how your terminal settings are configured.

Run after login shell +Some shells (like zsh) have an rc file, like .zlogin, which is ran when the shell session is a login shell. In that file, you can run Hilbish. Example:

exec hilbish -S -l
-

This will replace the shell with Hilbish, set $SHELL to Hilbish and launch it as a login shell.

Configuration +

This will replace the shell with Hilbish, set $SHELL to Hilbish and launch it as a login shell.

Configuration Once installation and setup has been done, you can then configure Hilbish. It is configured and scripted via Lua, so the config file is a Lua file. -You can use any pure Lua library to do whatever you want.

Hilbish's sample configuration is usually located in hilbish.dataDir .. '/.hilbishrc.lua'. -You can print that path via Lua to see what it is: print(hilbish.dataDir .. '/.hilbishrc.lua'). -As an example, it will usually will result in /usr/share/hilbish/.hilbishrc.lua on Linux.

To edit your user configuration, you can copy that file to hilbish.userDir.config .. '/hilbish/init.lua', -which follows XDG on Linux and MacOS, and is located in %APPDATA% on Windows.

As the directory is usually ~/.config on Linux, you can run this command to copy it: -cp /usr/share/hilbish/.hilbishrc.lua ~/.config/hilbish/init.lua

Now we can get to customization!

If we closely examine a small snippet of the default config: -lua +You can use any pure Lua library to do whatever you want.

Hilbish's sample configuration is usually located in hilbish.dataDir .. '/.hilbishrc.lua'. +You can print that path via Lua to see what it is: print(hilbish.dataDir .. '/.hilbishrc.lua'). +As an example, it will usually will result in /usr/share/hilbish/.hilbishrc.lua on Linux.

To edit your user configuration, you can copy that file to hilbish.userDir.config .. '/hilbish/init.lua', +which follows XDG on Linux and MacOS, and is located in %APPDATA% on Windows.

As the directory is usually ~/.config on Linux, you can run this command to copy it: +cp /usr/share/hilbish/.hilbishrc.lua ~/.config/hilbish/init.lua

Now we can get to customization!

If we closely examine a small snippet of the default config: +lua -- Default Hilbish config -- .. with some omitted code .. --

local function doPrompt(fail) hilbish.prompt(lunacolors.format( @@ -31,11 +31,11 @@ which follows XDG on Linux and MacOS, and is located in %APPDATA% on Windows.

doPrompt()

bait.catch('command.exit', function(code) doPrompt(code ~= 0) end) -

We see a whopping *three* Hilbish libraries being used in this part of code. -First is of course, named after the shell itself, hilbish. This is kind of a +

We see a whopping *three* Hilbish libraries being used in this part of code. +First is of course, named after the shell itself, hilbish. This is kind of a "catch-all" namespace for functions that directly related to shell functionality/settings.

And as we can see, the hilbish.prompt function is used -to change our prompt. Change our prompt to what, exactly?

The doc for the function states that the verbs %u and %dare used for username and current directory -of the shell, respectively.

We wrap this in the lunacolors.format function, to give -our prompt some nice color.

But you might have also noticed that this is in the doPrompt function, which is called once, -and then used again in a bait hook. Specifically, the command.exit hook, -which is called after a command exits, so when it finishes running.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +to change our prompt. Change our prompt to what, exactly?

The doc for the function states that the verbs %u and %dare used for username and current directory +of the shell, respectively.

We wrap this in the lunacolors.format function, to give +our prompt some nice color.

But you might have also noticed that this is in the doPrompt function, which is called once, +and then used again in a bait hook. Specifically, the command.exit hook, +which is called after a command exits, so when it finishes running.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/hooks/command/index.html b/versions/new-website/docs/hooks/command/index.html index fdc975cd..18ea4dcd 100644 --- a/versions/new-website/docs/hooks/command/index.html +++ b/versions/new-website/docs/hooks/command/index.html @@ -1,21 +1,21 @@ -Hilbish
Command

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Command

command.preexec -Thrown right before a command is executed.

Variables -string **input** +Hilbish

Command

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** -The command that will be directly executed by the current runner.

<hr>

command.exit -Thrown after the user's ran command is finished.

Variables -number **code** -The exit code of what was executed.

string **cmdStr** +etc.)

string **cmdStr** +The command that will be directly executed by the current runner.

<hr>

command.exit +Thrown after the user's ran command is finished.

Variables +number **code** +The exit code of what was executed.

string **cmdStr** The command or code that was executed

<hr> ## command.not-found Thrown if the command attempted to execute was not found. This can be used to customize the text printed when a command is not found. Example: -lua +lua local bait = require 'bait' -- Remove any present handlers on `command.not-found

local notFoundHooks = bait.hooks 'command.not-found' for _, hook in ipairs(notFoundHooks) do @@ -24,12 +24,12 @@ end

-- then assign custom bait.catch('command.not-found', function(cmd) print(string.format('The command "%s" was not found.', cmd)) end) -

Variables -string **cmdStr** +

Variables +string **cmdStr** The name of the command.

<hr> ## command.not-executable Thrown when the user attempts to run a file that is not executable -(like a text file, or Unix binary without +x permission).

Variables -string **cmdStr** -The name of the command.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +(like a text file, or Unix binary without +x permission).

Variables +string **cmdStr** +The name of the command.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/hooks/hilbish/index.html b/versions/new-website/docs/hooks/hilbish/index.html index 6f2230a6..03460dda 100644 --- a/versions/new-website/docs/hooks/hilbish/index.html +++ b/versions/new-website/docs/hooks/hilbish/index.html @@ -1,25 +1,25 @@ -Hilbish
Hilbish

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Hilbish

hilbish.exit -Sent when Hilbish is going to exit.

Variables -This signal returns no variables.

<hr>

hilbish.vimMode +Hilbish
Hilbish

Hilbish

hilbish.exit +Sent when Hilbish is going to exit.

Variables +This signal returns no variables.

<hr>

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

<hr>

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

Variables -This signal returns no variables.

<hr>

hilbish.notification -Thrown when a notification is sent.

<hr>

hilbish.cd +Can be these values: insert, normal, delete or replace

<hr>

hilbish.cancel +Sent when the user cancels their command input with Ctrl-C

Variables +This signal returns no variables.

<hr>

hilbish.notification +Thrown when a notification is sent.

<hr>

hilbish.cd Sent when the current directory of the shell is changed (via interactive means.) If you are implementing a custom command that changes the directory of the shell, -you must throw this hook manually for correctness.

Variables -string **path** -Absolute path of the directory that was changed to.

string **oldPath** -Absolute path of the directory Hilbish was in.

<hr>

hilbish.vimAction +you must throw this hook manually for correctness.

Variables +string **path** +Absolute path of the directory that was changed to.

string **oldPath** +Absolute path of the directory Hilbish was in.

<hr>

hilbish.vimAction Sent when the user does a "vim action," being something like yanking or pasting text. -See doc vim-mode actions for more info.

Variables -string **actionName** -Absolute path of the directory that was changed to.

table **args** -Table of args relating to the Vim action.

<hr>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +See doc vim-mode actions for more info.

Variables +string **actionName** +Absolute path of the directory that was changed to.

table **args** +Table of args relating to the Vim action.

<hr>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/hooks/index.html b/versions/new-website/docs/hooks/index.html deleted file mode 100644 index a8006d8b..00000000 --- a/versions/new-website/docs/hooks/index.html +++ /dev/null @@ -1,3 +0,0 @@ - -Hilbish
Signals

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Signals

Signals are global events emitted with the Bait module. -For more detail on how to use these signals, you may check the Bait page.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/hooks/job/index.html b/versions/new-website/docs/hooks/job/index.html index 57e1ce72..d40834d7 100644 --- a/versions/new-website/docs/hooks/job/index.html +++ b/versions/new-website/docs/hooks/job/index.html @@ -1,3 +1,3 @@ -Hilbish

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

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.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +Hilbish

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.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/hooks/signal/index.html b/versions/new-website/docs/hooks/signal/index.html index 3a902960..069e80cb 100644 --- a/versions/new-website/docs/hooks/signal/index.html +++ b/versions/new-website/docs/hooks/signal/index.html @@ -1,13 +1,13 @@ -Hilbish
Signal

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Signal

signal.sigint +Hilbish

Variables This signal returns no variables.

<hr> ## signal.resize -Thrown when the terminal is resized.

Variables -This signal returns no variables.

<hr>

signal.sigusr1 -Thrown when SIGUSR1 is sent to Hilbish.

Variables -This signal returns no variables.

<hr>

signal.sigusr2 -Thrown when SIGUSR2 is sent to Hilbish.

Variables -This signal returns no variables.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +Thrown when the terminal is resized.

Variables +This signal returns no variables.

<hr>

signal.sigusr1 +Thrown when SIGUSR1 is sent to Hilbish.

Variables +This signal returns no variables.

<hr>

signal.sigusr2 +Thrown when SIGUSR2 is sent to Hilbish.

Variables +This signal returns no variables.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/index.html b/versions/new-website/docs/index.html index 5823b3e8..9dcea6db 100644 --- a/versions/new-website/docs/index.html +++ b/versions/new-website/docs/index.html @@ -1,5 +1,9 @@ -Hilbish
Introduction

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Introduction

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.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +Hilbish
Nature

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

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/jobs/index.html b/versions/new-website/docs/jobs/index.html index 731c0de0..bbbe478c 100644 --- a/versions/new-website/docs/jobs/index.html +++ b/versions/new-website/docs/jobs/index.html @@ -1,30 +1,30 @@ -Hilbish

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

(This has mainly been replaced by hilbish.jobs).

Hilbish has pretty standard job control. It's missing one or two things, +Hilbish

(This has mainly been replaced by hilbish.jobs).

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

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +- background(): Run the job in the background after it has been suspended.
HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/lunacolors/index.html b/versions/new-website/docs/lunacolors/index.html index 5d468082..db8c5aa1 100644 --- a/versions/new-website/docs/lunacolors/index.html +++ b/versions/new-website/docs/lunacolors/index.html @@ -1,8 +1,8 @@ -Hilbish
Lunacolors

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Lunacolors

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

Lunacolors

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 +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 @@ -24,7 +24,7 @@ Styles: - italic - underline - invert

For the colors, there are background and bright variants. Background color -variants have a Bg suffix, while bright variants use the bright prefix. +variants have a Bg suffix, while bright variants use the bright prefix. These can also be combined. Note that appropriate camel casing must be applied. -For example, bright blue would be written as brightBlue, a cyan background as -cyanBg, and combining them would result in brightBlueBg.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +For example, bright blue would be written as brightBlue, a cyan background as +cyanBg, and combining them would result in brightBlueBg.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/nature/dirs/index.html b/versions/new-website/docs/nature/dirs/index.html index ce331d4e..8e9bf74c 100644 --- a/versions/new-website/docs/nature/dirs/index.html +++ b/versions/new-website/docs/nature/dirs/index.html @@ -1,14 +1,14 @@ -Hilbish
Module dirs

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module dirs

Introduction +Hilbish
Module dirs

Module dirs

Introduction The dirs module defines a small set of functions to store and manage -directories.

Functions +directories.

Functions ||| |----|----| |<a href="#setOld">setOld(d)</a>|Sets the old directory string.| |<a href="#recent">recent(idx)</a>|Get entry from recent directories list based on index.| -|<a href="#push">push(dir)</a>|Add dir to the recent directories list.| +|<a href="#push">push(dir)</a>|Add dir to the recent directories list.| |<a href="#pop">pop(num)</a>|Remove the specified amount of dirs from the recent directories list.| -|<a href="#peak">peak(num)</a>|Look at num amount of recent directories, starting from the latest.| +|<a href="#peak">peak(num)</a>|Look at num amount of recent directories, starting from the latest.| <hr> <div id='peak'> <h4 class='heading'> @@ -16,10 +16,10 @@ dirs.peak(num) <a href="#peak" class='heading-link'> <i class="fas fa-paperclip"></i> </a> -</h4>

Look at num amount of recent directories, starting from the latest. -This returns a table of recent directories, up to the num amount. +</h4>

Look at num amount of recent directories, starting from the latest. +This returns a table of recent directories, up to the num amount. #### Parameters -num **number**

</div>

<hr> +num **number**

</div>

<hr> <div id='pop'> <h4 class='heading'> dirs.pop(num) @@ -28,16 +28,16 @@ dirs.pop(num) </a> </h4>

Remove the specified amount of dirs from the recent directories list. #### Parameters -num **number**

</div>

<hr> +num **number**

</div>

<hr> <div id='push'> <h4 class='heading'> dirs.push(dir) <a href="#push" class='heading-link'> <i class="fas fa-paperclip"></i> </a> -</h4>

Add dir to the recent directories list. +</h4>

Add dir to the recent directories list. #### Parameters -dir **string**

</div>

<hr> +dir **string**

</div>

<hr> <div id='recent'> <h4 class='heading'> dirs.recent(idx) @@ -46,7 +46,7 @@ dirs.recent(idx) </a> </h4>

Get entry from recent directories list based on index. #### Parameters -idx **number**

</div>

<hr> +idx **number**

</div>

<hr> <div id='setOld'> <h4 class='heading'> dirs.setOld(d) @@ -55,4 +55,4 @@ dirs.setOld(d) </a> </h4>

Sets the old directory string. #### Parameters -d **string**

</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +d **string**

</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/nature/doc/index.html b/versions/new-website/docs/nature/doc/index.html index 8e4db55f..21307348 100644 --- a/versions/new-website/docs/nature/doc/index.html +++ b/versions/new-website/docs/nature/doc/index.html @@ -1,9 +1,9 @@ -Hilbish
Module doc

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Module doc

Introduction +Hilbish
Module doc

Module doc

Introduction The doc module contains a small set of functions used by the Greenhouse pager to render parts of the documentation pages. This is only documented for the sake of it. It's only intended use -is by the Greenhouse pager.

Functions +is by the Greenhouse pager.

Functions ||| |----|----| |<a href="#renderInfoBlock">renderInfoBlock(type, text)</a>|Renders an info block. An info block is a block of text with| @@ -18,7 +18,7 @@ doc.highlight(text) </a> </h4>

Performs basic Lua code highlighting. #### Parameters -text **string** +text **string** Code/text to do highlighting on.

</div>

<hr> <div id='renderCodeBlock'> <h4 class='heading'> @@ -30,7 +30,7 @@ doc.renderCodeBlock(text) the supplied text based on the number of command line columns, and styles it to resemble a code block. #### Parameters -text **string**

</div>

<hr> +text **string**

</div>

<hr> <div id='renderInfoBlock'> <h4 class='heading'> doc.renderInfoBlock(type, text) @@ -40,5 +40,5 @@ doc.renderInfoBlock(type, text) </h4>

Renders an info block. An info block is a block of text with an icon and styled text block. #### Parameters -type **string** -Type of info block. The only one specially styled is the warning.

text **string**

</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +type **string** +Type of info block. The only one specially styled is the warning.

text **string**

</div>

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/nature/index.html b/versions/new-website/docs/nature/index.html deleted file mode 100644 index 10f1fd5b..00000000 --- a/versions/new-website/docs/nature/index.html +++ /dev/null @@ -1,9 +0,0 @@ - -Hilbish
Nature

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

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

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/timers/index.html b/versions/new-website/docs/timers/index.html index c3c6b2ae..274be6fa 100644 --- a/versions/new-website/docs/timers/index.html +++ b/versions/new-website/docs/timers/index.html @@ -1,2 +1,2 @@ -Hilbish

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

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

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +Hilbish
HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/vi/index.html b/versions/new-website/docs/vi/index.html new file mode 100644 index 00000000..950f5fa4 --- /dev/null +++ b/versions/new-website/docs/vi/index.html @@ -0,0 +1,3 @@ + +Hilbish
Vim Mode

Vim Mode

Hilbish has a Vim binding input mode accessible for use. +It can be enabled with the hilbish.inputMode function (check doc hilbish).

This is documentation for everything relating to it.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/vim-mode/actions/index.html b/versions/new-website/docs/vim-mode/actions/index.html index 2f69db9b..b8d82e28 100644 --- a/versions/new-website/docs/vim-mode/actions/index.html +++ b/versions/new-website/docs/vim-mode/actions/index.html @@ -1,7 +1,7 @@ -Hilbish
Actions

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Actions

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

Actions

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

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +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.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/docs/vim-mode/index.html b/versions/new-website/docs/vim-mode/index.html deleted file mode 100644 index 40511cda..00000000 --- a/versions/new-website/docs/vim-mode/index.html +++ /dev/null @@ -1,3 +0,0 @@ - -Hilbish
Vim Mode

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Vim Mode

Hilbish has a Vim binding input mode accessible for use. -It can be enabled with the hilbish.inputMode function (check doc hilbish).

This is documentation for everything relating to it.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/index.html b/versions/new-website/index.html index 8db61f00..6894c1b2 100644 --- a/versions/new-website/index.html +++ b/versions/new-website/index.html @@ -1,8 +1,8 @@ -Hilbish

Hilbish

Something Unique.

Hilbish is the new Moon-powered interactive shell for Lua fans!
Extensible, scriptable, configurable: All in Lua.

Scroll for more

Feature Overview

The Moon-powered shell

Hilbish makes use of the Lua programming language for interactive and config scripting. +Hilbish

Hilbish

Something Unique.

Hilbish is the new Moon-powered interactive shell for Lua fans!
Extensible, scriptable, configurable: All in Lua.

Scroll for more

Feature Overview

The Moon-powered shell

Hilbish makes use of the Lua programming language for interactive and config scripting. If you write Lua on a regular basis, Hilbish will be the perfect resident in your terminal. You can still use shell script, but Lua takes the spotlight (or the moonlight..)

Modern, Helpful Interactive Features

Graphical TUI history, sensible tab completions, elegantly refreshing prompts, name it all and Hilbish either has it or it's 1 suggestion or 1 script away from being possible. Everything present in Hilbish is meant to enhance your interactive shell experience.

Sensible, Friendly Defaults

Hilbish's default config makes a simple but presentable showcase of its Lua API and a few of its features.

Truly Make It Yours

Many things about Hilbish are designed to be changed and swapped out. If you want to make use of a Lua derivative in your interactive use (like Fennel) instead of - Lua, that can be done!

Download It Now!

To find out all that Hilbish can do, you should just try it out! It's officially available on Linux, MacOS, Windows, and probably builds on anything Go is available on!

Featured Downloads

These are binary releases of Hilbish from GitHub. Install instructions are located at an INSTALL.md file.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file + Lua, that can be done!

Download It Now!

To find out all that Hilbish can do, you should just try it out! It's officially available on Linux, MacOS, Windows, and probably builds on anything Go is available on!

Featured Downloads

These are binary releases of Hilbish from GitHub. Install instructions are located at an INSTALL.md file.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file diff --git a/versions/new-website/install/index.html b/versions/new-website/install/index.html index 3c7874c6..7c14de3b 100644 --- a/versions/new-website/install/index.html +++ b/versions/new-website/install/index.html @@ -1,32 +1,6 @@ -Hilbish
Install

Sidebar

  • Vim Mode
  • Completions
  • Lunacolors
  • Frequently Asked Questions
  • Getting Started
  • Introduction
  • Module hilbish
  • Module fs
  • Module snail
  • Module terminal
  • Module commander
  • API
  • Module bait
  • Module hilbish.module
  • Module hilbish.abbr
  • Module hilbish.userDir
  • Module hilbish.os
  • Module hilbish.history
  • Module hilbish.completion
  • Module hilbish.messages
  • Module hilbish.aliases
  • Module hilbish.runner
  • Module hilbish.timers
  • Module hilbish
  • Module hilbish.jobs
  • Module hilbish.editor
  • Actions
  • Module doc
  • Nature
  • Module dirs
  • Hilbish
  • Command
  • Signals
  • Signal
  • Notification
  • Runner Mode
  • Options
  • Features

Install

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.

Package Repositories -Methods of installing Hilbish for your Linux distro.

Fedora (COPR) -An official COPR is offered to install Hilbish easily on Fedora. -Enable the repo: - -sudo dnf copr enable sammyette/Hilbish -

And install Hilbish: - -sudo dnf install hilbish -

Or for the latest development build from master: - -sudo dnf install hilbish-git -

Arch Linux (AUR) -Hilbish is on the AUR. Setup an AUR helper, and install. -Example with yay:

yay -S hilbish
-

Or, from master branch: - -yay -S hilbish-git -

Alpine Linux -Hilbish is currentlty in the testing/edge repository for Alpine. -Follow the steps here -(Using testing repositories) and install: - -apk add hilbish -

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +Hilbish
Install

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 available to install: +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.

Package Repositories

Methods of installing Hilbish for your Linux distro.

Fedora (COPR)

An official COPR is offered to install Hilbish easily on Fedora. +Enable the repo: dnf copr enable sammyette/Hilbish

And install Hilbish: dnf install hilbish

Or for the latest development build from master: dnf install hilbish-git

Arch Linux (AUR)

Hilbish is on the AUR. Setup an AUR helper, and install.

Example with yay: yay -S hilbish

Or, from master branch: yay -S hilbish-git

Alpine Linux

Hilbish is currentlty in the testing/edge repository for Alpine. +Follow the steps here (using testing repositories) and install: apk add hilbish

\ No newline at end of file diff --git a/versions/new-website/tailwind.css b/versions/new-website/tailwind.css index ea6ad1da..23ebc84f 100644 --- a/versions/new-website/tailwind.css +++ b/versions/new-website/tailwind.css @@ -1,4 +1,4 @@ -/*! tailwindcss v4.1.8 | MIT License | https://tailwindcss.com */ +/*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */ @layer properties; @layer theme, base, components, utilities; @layer theme { @@ -575,18 +575,12 @@ .top-0 { top: calc(var(--spacing) * 0); } - .top-22 { - top: calc(var(--spacing) * 22); - } .right-2 { right: calc(var(--spacing) * 2); } .bottom-4 { bottom: calc(var(--spacing) * 4); } - .left-0 { - left: calc(var(--spacing) * 0); - } .isolate { isolation: isolate; } @@ -728,9 +722,6 @@ .me-auto { margin-inline-end: auto; } - .-mt-2 { - margin-top: calc(var(--spacing) * -2); - } .mt-2 { margin-top: calc(var(--spacing) * 2); } @@ -746,8 +737,8 @@ .mt-auto { margin-top: auto; } - .-mb-4 { - margin-bottom: calc(var(--spacing) * -4); + .mb-1 { + margin-bottom: calc(var(--spacing) * 1); } .mb-2 { margin-bottom: calc(var(--spacing) * 2); @@ -864,9 +855,6 @@ width: auto; height: auto; } - .h-6 { - height: calc(var(--spacing) * 6); - } .h-8 { height: calc(var(--spacing) * 8); } @@ -876,8 +864,11 @@ .h-10 { height: calc(var(--spacing) * 10); } - .h-12 { - height: calc(var(--spacing) * 12); + .h-16 { + height: calc(var(--spacing) * 16); + } + .h-18 { + height: calc(var(--spacing) * 18); } .h-20 { height: calc(var(--spacing) * 20); @@ -933,9 +924,6 @@ .min-h-screen { min-height: 100vh; } - .w-64 { - width: calc(var(--spacing) * 64); - } .w-\[100px\] { width: 100px; } @@ -1008,8 +996,11 @@ .grow { flex-grow: 1; } - .basis-3\/5 { - flex-basis: calc(3/5 * 100%); + .basis-2\/10 { + flex-basis: calc(2/10 * 100%); + } + .basis-7\/7 { + flex-basis: calc(7/7 * 100%); } .basis-auto { flex-basis: auto; @@ -1561,6 +1552,9 @@ .overflow-hidden { overflow: hidden; } + .overflow-x-auto { + overflow-x: auto; + } .overflow-y-auto { overflow-y: auto; } @@ -1704,6 +1698,9 @@ .border-\[\#fbf0df\] { border-color: #fbf0df; } + .border-neutral-200 { + border-color: var(--color-neutral-200); + } .border-t-zinc-300 { border-top-color: var(--color-zinc-300); } @@ -1728,9 +1725,6 @@ background-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent); } } - .bg-gray-200 { - background-color: var(--color-gray-200); - } .bg-neutral-100 { background-color: var(--color-neutral-100); } @@ -1755,6 +1749,12 @@ .bg-stone-50 { background-color: var(--color-stone-50); } + .bg-stone-50\/80 { + background-color: color-mix(in srgb, oklch(98.5% 0.001 106.423) 80%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-stone-50) 80%, transparent); + } + } .bg-stone-500\/30 { background-color: color-mix(in srgb, oklch(55.3% 0.013 58.071) 30%, transparent); @supports (color: color-mix(in lab, red, red)) { @@ -1764,6 +1764,9 @@ .bg-transparent { background-color: transparent; } + .bg-white { + background-color: var(--color-white); + } .bg-zinc-300\/50 { background-color: color-mix(in srgb, oklch(87.1% 0.006 286.286) 50%, transparent); @supports (color: color-mix(in lab, red, red)) { @@ -2412,12 +2415,27 @@ .text-black { color: var(--color-black); } + .text-gray-500 { + color: var(--color-gray-500); + } + .text-neutral-400 { + color: var(--color-neutral-400); + } .text-neutral-500 { color: var(--color-neutral-500); } + .text-neutral-800 { + color: var(--color-neutral-800); + } .text-pink-300 { color: var(--color-pink-300); } + .text-pink-600 { + color: var(--color-pink-600); + } + .text-violet-600 { + color: var(--color-violet-600); + } .capitalize { text-transform: capitalize; } @@ -2938,11 +2956,6 @@ } } } - .peer-checked\:opacity-50 { - &:is(:where(.peer):checked ~ *) { - opacity: 50%; - } - } .peer-checked\:blur-sm { &:is(:where(.peer):checked ~ *) { --tw-blur: blur(var(--blur-sm)); @@ -3185,14 +3198,25 @@ } } } - .sm\:top-12 { + .sm\:flex { @media (width >= 40rem) { - top: calc(var(--spacing) * 12); + display: flex; } } - .sm\:h-svh { + .sm\:hidden { @media (width >= 40rem) { - height: 100svh; + display: none; + } + } + .sm\:translate-x-0 { + @media (width >= 40rem) { + --tw-translate-x: calc(var(--spacing) * 0); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .sm\:rounded-lg { + @media (width >= 40rem) { + border-radius: var(--radius-lg); } } .md\:w-3\/6 { @@ -3221,11 +3245,34 @@ align-items: flex-start; } } + .rtl\:text-right { + &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) { + text-align: right; + } + } + .dark\:border-neutral-700 { + @media (prefers-color-scheme: dark) { + border-color: var(--color-neutral-700); + } + } + .dark\:bg-neutral-800 { + @media (prefers-color-scheme: dark) { + background-color: var(--color-neutral-800); + } + } .dark\:bg-neutral-900 { @media (prefers-color-scheme: dark) { background-color: var(--color-neutral-900); } } + .dark\:bg-neutral-900\/80 { + @media (prefers-color-scheme: dark) { + background-color: color-mix(in srgb, oklch(20.5% 0 0) 80%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-neutral-900) 80%, transparent); + } + } + } .dark\:bg-zinc-800\/50 { @media (prefers-color-scheme: dark) { background-color: color-mix(in srgb, oklch(27.4% 0.006 286.033) 50%, transparent); @@ -3240,6 +3287,31 @@ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } } + .dark\:text-gray-400 { + @media (prefers-color-scheme: dark) { + color: var(--color-gray-400); + } + } + .dark\:text-neutral-300 { + @media (prefers-color-scheme: dark) { + color: var(--color-neutral-300); + } + } + .dark\:text-neutral-600 { + @media (prefers-color-scheme: dark) { + color: var(--color-neutral-600); + } + } + .dark\:text-pink-300 { + @media (prefers-color-scheme: dark) { + color: var(--color-pink-300); + } + } + .dark\:text-violet-400 { + @media (prefers-color-scheme: dark) { + color: var(--color-violet-400); + } + } .dark\:text-white { @media (prefers-color-scheme: dark) { color: var(--color-white);