mirror of https://github.com/Hilbis/Hilbish
65 lines
13 KiB
HTML
65 lines
13 KiB
HTML
|
<!doctype html><html><head><title>Hilbish v2.0 Release — Hilbish</title>
|
||
|
<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><meta name=theme-color content="#ff89dd"><meta content="/Hilbish/hilbish-flower.png" property="og:image"><meta property="og:site_name" content="Hilbish"><meta content="Hilbish v2.0 Release — Hilbish" property="og:title"><meta content="Hilbish v2.0 has been released! Well actually, it was released a week ago, but I only wrote this Hilbish blog after that.
|
||
|
This is a big release, coming 9 months after the previous v1.2.0 and featuring over 40+ bug fixes and tons of new features and enhancements, so let’s see what is in this release.
|
||
|
Documentation When querying about the problems people have with Hilbish, one of the issues was its poor documentation." property="og:description"><meta content="Hilbish v2.0 has been released! Well actually, it was released a week ago, but I only wrote this Hilbish blog after that.
|
||
|
This is a big release, coming 9 months after the previous v1.2.0 and featuring over 40+ bug fixes and tons of new features and enhancements, so let’s see what is in this release.
|
||
|
Documentation When querying about the problems people have with Hilbish, one of the issues was its poor documentation." name=description><meta name=revisit-after content="2 days"><meta name=keywords content="Lua,Hilbish,Linux,Shell"><meta property="og:locale" content="en_GB"><link rel=canonical href=https://rosettea.github.io/Hilbish/><meta property="og:url" content="https://rosettea.github.io/Hilbish/"><link href=https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css rel=stylesheet integrity=sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor crossorigin=anonymous><script src=https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js integrity=sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2 crossorigin=anonymous></script><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin=anonymous referrerpolicy=no-referrer><link rel=stylesheet href=/Hilbish/versions/refs/tags/v2.2.0/css/syntax.min.eb77978873f3b324603120b558a36c98ad57d6ee7b77928e3bc131bd76c5935a.css integrity="sha256-63eXiHPzsyRgMSC1WKNsmK1X1u57d5KOO8ExvXbFk1o="></link><style>.heading>.heading-link{opacity:0}.heading:hover>.heading-link{visibility:visible;opacity:1;transition:all .1s ease-in}@keyframes highlight{0%{background:0 0}50%{background:#fff2cf}100%{background:0 0}}div:target{animation:highlight 1.2s;animation-timing-function:cubic-bezier(1,-.02,.45,.89)}table{border-width:1px;border-style:solid;border-color:#565c64;border-collapse:collapse;margin-bottom:12px}table td{padding:5px}table tr{border-width:1px}thead{display:none}</style></head><body class="d-flex flex-column min-vh-100" style=overflow-x:hidden><svg xmlns="http://www.w3.org/2000/svg" style="display:none"><symbol id="check-circle-fill" fill="currentcolor" viewBox="0 0 16 16"><path d="M16 8A8 8 0 110 8a8 8 0 0116 0zm-3.97-3.03a.75.75.0 00-1.08.022L7.477 9.417 5.384 7.323a.75.75.0 00-1.06 1.06L6.97 11.03a.75.75.0 001.079-.02l3.992-4.99a.75.75.0 00-.01-1.05z"/></symbol><symbol id="info-fill" fill="currentcolor" viewBox="0 0 16 16"><path d="M8 16A8 8 0 108 0a8 8 0 000 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194.0.487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703.0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 110-2 1 1 0 010 2z"/></symbol><symbol id="exclamation-triangle-fill" fill="currentcolor" viewBox="0 0 16 16"><path d="M8.982 1.566a1.13 1.13.0 00-1.96.0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889.0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535.0.954.462.9.995l-.35 3.507a.552.552.0 01-1.1.0L7.1 5.995A.905.905.0 018 5zm.002 6a1 1 0 110 2 1 1 0 010-2z"/></symbol></svg><header><nav class="navbar navbar-expand-md sticky-top bg-light border-bottom"><div class=container-fluid><a class=navbar-brand href=/Hilbish><img src=/Hilbish/hilbish-logo-and-text.png alt height=48>
|
||
|
</a><button class=navbar-toggler type=button data-bs-toggle=collapse data-bs-target=#navbarSupportedContent aria-controls=navbarSupportedContent aria-expanded=false aria-label="Toggle navigation">
|
||
|
<span class=navbar-toggler-icon></span></button><div class="collapse navbar-collapse" id=navbarSupportedContent><ul class="navbar-nav me-auto mb-2 mb-lg-0"><li class=nav-item><a href=/Hilbish/versions/refs/tags/v2.2.0/ class=nav-link>Home</a></li><li class=nav-item><a href=/Hilbish/versions/refs/tags/v2.2.0/install/ class=nav-link>Install</a></li><li class=nav-item><a href=/Hilbish/versions/refs/tags/v2.2.0/docs/ class=nav-link>Docs</a></li><li class=nav-item><a href=/Hilbish/versions/refs/tags/v2.2.0/blog/ class=nav-link>Blog</a></li></ul></div></div></nav></header><main><div class="container mt-2"><h1>Hilbish v2.0 Release</h1><img src='https://avatars1.githubusercontent.com/u/38820196?s=460&u=b9f4efb2375bae6cb30656d790c6e0a2939327c0&v=4' width=48 style=border-radius:100%>
|
||
|
<em class=text-muted>by <strong>sammyette</strong><time> // December 29, 2022</time></em><div class=my-4><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><h2 id=documentation class=heading>Documentation
|
||
|
<a href=#documentation class=heading-link><i class="fas fa-paperclip"></i></a></h2><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><h2 id=main-bug-fixes class=heading>Main Bug Fixes
|
||
|
<a href=#main-bug-fixes class=heading-link><i class="fas fa-paperclip"></i></a></h2><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><h3 id=readline-bug-fixes class=heading>Readline Bug Fixes
|
||
|
<a href=#readline-bug-fixes class=heading-link><i class="fas fa-paperclip"></i></a></h3><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><h3 id=other-fixes class=heading>Other fixes
|
||
|
<a href=#other-fixes class=heading-link><i class="fas fa-paperclip"></i></a></h3><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><h2 id=breaking-changes class=heading>Breaking changes
|
||
|
<a href=#breaking-changes class=heading-link><i class="fas fa-paperclip"></i></a></h2><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><h3 id=lua-54 class=heading>Lua 5.4
|
||
|
<a href=#lua-54 class=heading-link><i class="fas fa-paperclip"></i></a></h3><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/ target=_blank rel=noopener>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><h3 id=userdata class=heading>Userdata
|
||
|
<a href=#userdata class=heading-link><i class="fas fa-paperclip"></i></a></h3><p>Previously, objects such as jobs or timers were represented by tables.
|
||
|
This has been changed to userdata to make more sense.</p><h3 id=other-changes class=heading>Other changes
|
||
|
<a href=#other-changes class=heading-link><i class="fas fa-paperclip"></i></a></h3><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><h2 id=feature-additions class=heading>Feature Additions
|
||
|
<a href=#feature-additions class=heading-link><i class="fas fa-paperclip"></i></a></h2><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><h2 id=closing-off class=heading>Closing Off
|
||
|
<a href=#closing-off class=heading-link><i class="fas fa-paperclip"></i></a></h2><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 target=_blank rel=noopener>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></div></div></main><footer class="footer mt-auto mt-auto py-3 bg-light row border-top"><div class="col mb-3"></div><div class="col mb-3"><a href=/Hilbish class="d-flex align-items-center mb-3 link-dark text-decoration-none"><img src=/Hilbish/hilbish-logo-and-text.png alt height=48 class="d-inline-block align-text-top" style=margin-left:-20px></a><ul class="nav flex-column"><li class="nav-item mb-2"><a href=/Hilbish class="nav-link p-0 text-muted">Home</a></li><li class="nav-item mb-2"><a href=/Hilbish/docs/faq class="nav-link p-0 text-muted">FAQ</a></li><li class="nav-item mb-2"><a href=https://github.com/Rosettea/Hilbish class="nav-link p-0 text-muted">Source</a></li><li class="nav-item mb-2"><a href=https://github.com/Rosettea/Hilbish/releases class="nav-link p-0 text-muted">Releases</a></li><li class="nav-item mb-2"><a href=/Hilbish/docs class="nav-link p-0 text-muted">Documentation</a></li></ul></div><div class="col mb-3"></div><div class="col mb-3"></div><div class="col mb-3"></div><div class="col mb-3"><p class="text-muted mt-4">Rosettea © 2022-2023<br>Made with <i class="fa-solid fa-heart" style=color:#f6345b></i></p></div><div class="col mb-3"></div></footer></body></html>
|