mirror of
https://github.com/Hilbis/Hilbish
synced 2025-05-06 04:13:24 +00:00
91 lines
9.5 KiB
HTML
91 lines
9.5 KiB
HTML
<!doctype html>
|
||
<html class="bg-stone-50 dark:bg-neutral-950 text-black dark:text-white"><head><meta content="width=device-width, initial-scale=1.0" name="viewport"><link href="/tailwind.css" rel="stylesheet"><title>Hilbish</title><meta content="#ff89dd" name="theme-color"><meta content="./hilbish-flower.png" property="og:image"><meta content="Hilbish" property="og:title"><meta content="Hilbish" property="og:site_name"><meta content="website" property="og:type"><meta content="Something Unique. Hilbish is the new interactive shell for Lua fans. Extensible, scriptable, configurable: All in Lua." property="og:description"><meta content="Something Unique. Hilbish is the new interactive shell for Lua fans. Extensible, scriptable, configurable: All in Lua." name="description"><meta content="Lua,Shell,Hilbish,Linux,zsh,bash" name="keywords"><meta content="https://rosettea.github.io/Hilbish/versions/new-website" property="og:url"></head><body><nav class="flex sticky top-0 w-full z-50 border-b border-b-zinc-300 backdrop-blur-md h-12"><div class="flex my-auto px-2"><div><a class="flex items-center gap-1" href="/"><img class="h-6" src="/hilbish-flower.png"><span class="self-center text-2xl">Hilbish</span></a></div></div></nav><div class="flex flex-col"><div class="block sm:hidden h-10 sticky top-12 flex py-2 px-4 border-b border-b-zinc-300 w-full gap-2 backdrop-blur-sm bg-zinc-300/50 z-50"><label class="cursor-pointer" for="sidebar-toggle"><tag><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" class="fill-black"><path d="M120-240v-80h240v80H120Zm0-200v-80h480v80H120Zm0-200v-80h720v80H120Z"/></svg></tag></label><span>Hilbish v2.0 Release</span></div><div class="grid sm:flex"><input class="peer hidden" id="sidebar-toggle" type="checkbox"><div class="border-r border-r-zinc-300 col-start-1 row-start-1 sticky top-22 sm:top-12 h-full sm:h-svh bg-neutral-200 basis-3/5 transition-transform duration-300 -translate-x-full sm:translate-x-0 peer-checked:translate-x-0 z-30"><div class="p-4 -mb-4 overflow-y-auto h-full"><h2 class="text-xl font-semibold mb-4">Sidebar</h2><ul><li class="mb-2">Lunacolors</li><li class="mb-2">Introduction</li><li class="mb-2">Completions</li><li class="mb-2">Frequently Asked Questions</li><li class="mb-2">Getting Started</li><li class="mb-2">Options</li><li class="mb-2">Features</li><li class="mb-2">Runner Mode</li><li class="mb-2">Notification</li><li class="mb-2">Signals</li><li class="mb-2">Signal</li><li class="mb-2">Command</li><li class="mb-2">Hilbish</li><li class="mb-2">Vim Mode</li><li class="mb-2">Actions</li><li class="mb-2">Module bait</li><li class="mb-2">Module terminal</li><li class="mb-2">API</li><li class="mb-2">Module fs</li><li class="mb-2">Module commander</li><li class="mb-2">Module snail</li><li class="mb-2">Module hilbish.aliases</li><li class="mb-2">Module hilbish.abbr</li><li class="mb-2">Module hilbish</li><li class="mb-2">Module hilbish.userDir</li><li class="mb-2">Module hilbish.messages</li><li class="mb-2">Module hilbish.runner</li><li class="mb-2">Module hilbish.history</li><li class="mb-2">Module hilbish.jobs</li><li class="mb-2">Module hilbish.editor</li><li class="mb-2">Module hilbish.module</li><li class="mb-2">Module hilbish.os</li><li class="mb-2">Module hilbish.completion</li><li class="mb-2">Module hilbish.timers</li><li class="mb-2">Module dirs</li><li class="mb-2">Nature</li><li class="mb-2">Module doc</li></ul></div></div><main class="col-start-1 row-start-1 transition-all duration-300 peer-checked:filter peer-checked:blur-sm peer-checked:bg-black/30 px-4 pt-2"><h1>Hilbish v2.0 Release</h1><Tag xmlns="namespace"><p>Hilbish v2.0 has been released!
|
||
Well actually, it was released a week ago, but I only wrote this
|
||
Hilbish blog <em>after</em> that.</p>
|
||
<p>This is a <strong>big</strong> 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.</p>
|
||
<h1>Documentation</h1>
|
||
<p>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 (<code>hilbish.timers</code>,
|
||
<code>hilbish.jobs</code> and all that).</p>
|
||
<p>I have tried to improve this by working on documenting all the
|
||
interfaces (except for some functions of <code>hilbish.runner</code>, 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 <code>doc</code> command.</p>
|
||
<p>Hopefully this addresses documentation complaints, and if not, please open an issue.</p>
|
||
<h1>Main Bug Fixes</h1>
|
||
<p>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!</p>
|
||
<h2>Readline Bug Fixes</h2>
|
||
<p>The pure Go readline library is good in some ways and bad in others.
|
||
A good portion of the bug fixes are for the readline library, and also
|
||
related to text input with east asian characters and the like (Korean, Japanese,
|
||
etc.)</p>
|
||
<p>A few of the fixes (and additions) include:</p>
|
||
<ul>
|
||
<li>Fixing various crashes, including when there is a “stray” newline at the end of text</li>
|
||
<li>Grid completion menu causing spam and duplicate text when there are items longer than
|
||
the terminal and/or contain Japanese or other characters.</li>
|
||
<li>Cursor positioning with CJK characters</li>
|
||
<li>Adding new keybinds and fixing others</li>
|
||
</ul>
|
||
<h2>Other fixes</h2>
|
||
<p>There are a lot more fixes, even more than the ones listed here, but these are the main ones:
|
||
- Don’t put alias expanded command in history (I’ve fixed this 5 times now….)
|
||
- Handle stdin being nonblocking
|
||
- Completion related fixes, like showing the full name, completing files with spaces</p>
|
||
<h1>Breaking changes</h1>
|
||
<p>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).</p>
|
||
<h2>Lua 5.4</h2>
|
||
<p>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
|
||
<a href="https://github.com/arnodel/golua/" rel="noopener noreferrer">golua</a>, which implements Lua 5.4.</p>
|
||
<p>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.</p>
|
||
<h2>Userdata</h2>
|
||
<p>Previously, objects such as jobs or timers were represented by tables.
|
||
This has been changed to userdata to make more sense.</p>
|
||
<h2>Other changes</h2>
|
||
<p>Runner functions are now required to return a table.
|
||
It can (at the moment) have 4 variables:</p>
|
||
<ul>
|
||
<li><code>input</code> (user input)</li>
|
||
<li><code>exitCode</code> (exit code)</li>
|
||
<li><code>error</code> (error message)</li>
|
||
<li><code>continue</code> (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. <code>continue</code>
|
||
got added so that it would be easier for runners to get continued input
|
||
without having to actually handle it at all.</li>
|
||
</ul>
|
||
<p>The MacOS config paths now match Linux, since it makes more sense for
|
||
a program like Hilbish.</p>
|
||
<p>The Hilbish greeting is now an <em>opt</em>, and is printed by default.</p>
|
||
<h1>Feature Additions</h1>
|
||
<p>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.</p>
|
||
<p>Some new hooks have been added, like <code>hilbish.cancel</code> and <code>hilbish.init</code>.
|
||
You can look at all the hooks via the <code>doc hooks</code> command</p>
|
||
<p>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.</p>
|
||
<p>The <code>hilbish.timers</code> API interface was also added in this release!</p>
|
||
<h1>Closing Off</h1>
|
||
<p>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!</p>
|
||
<p>If you want to check the FULL changelog, you can <a href="https://github.com/Rosettea/Hilbish/releases/tag/v2.0.0" rel="noopener noreferrer">do so here.</a>
|
||
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.</p>
|
||
<p>Thanks for reading, and I’ll be back for the v2.1 release notes, or maybe
|
||
something else in between.</p></Tag></main></div></div><footer class="py-4 px-6 flex flex-row justify-around border-t border-t-zinc-300"><div class="flex flex-col"><a class="flex items-center gap-1" href="/"><img class="h-24" src="/hilbish-flower.png"><span class="self-center text-6xl">Hilbish</span></a><span class="text-xl">The Moon-powered shell!</span><span class="text-light text-neutral-500">MIT License, copyright sammyette 2025</span></div><div class="flex flex-col"><a href="https://github.com/Rosettea/Hilbish"><span class="text-pink-300 text-light">GitHub</span></a></div></footer></body></html> |