2
2
mirror of https://github.com/Hilbis/Hilbish synced 2025-05-06 04:13:24 +00:00

123 lines
9.9 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>Module hilbish.completion</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>Module hilbish.completion</h1><Tag xmlns="namespace"><h2>Introduction</h2>
<p>The completions interface deals with tab completions.</p>
<h2>Functions</h2>
<table>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#completion.bins" rel="noopener noreferrer">bins(query, ctx, fields) -&gt; entries (table), prefix (string)</a></td>
<td>Return binaries/executables based on the provided parameters.</td>
</tr>
<tr>
<td><a href="#completion.call" rel="noopener noreferrer">call(name, query, ctx, fields) -&gt; completionGroups (table), prefix (string)</a></td>
<td>Calls a completer function. This is mainly used to call a command completer, which will have a <code>name</code></td>
</tr>
<tr>
<td><a href="#completion.files" rel="noopener noreferrer">files(query, ctx, fields) -&gt; entries (table), prefix (string)</a></td>
<td>Returns file matches based on the provided parameters.</td>
</tr>
<tr>
<td><a href="#completion.handler" rel="noopener noreferrer">handler(line, pos)</a></td>
<td>This function contains the general completion handler for Hilbish. This function handles</td>
</tr>
</tbody>
</table>
<hr>
<div>
<h4>
hilbish.completion.bins(query, ctx, fields) -&gt; entries (table), prefix (string)
<a href="#completion.bins" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Return binaries/executables based on the provided parameters.<br>
This function is meant to be used as a helper in a command completion handler.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>query</code></strong></p>
<p><code>string</code> <strong><code>ctx</code></strong></p>
<p><code>table</code> <strong><code>fields</code></strong></p>
<h4>Example</h4>
<pre><code><span><span>-- an extremely simple completer for sudo.</span>
</span><span><span>hilbish</span><span>.</span><span>complete</span><span>(</span><span>'command.sudo'</span><span>,</span> <span>function</span><span>(</span><span>query</span><span>,</span> <span>ctx</span><span>,</span> <span>fields</span><span>)</span>
</span><span> <span>table</span><span>.</span><span>remove</span><span>(</span><span>fields</span><span>,</span> <span>1</span><span>)</span>
</span><span> <span>if</span> <span>#</span><span>fields</span><span>[</span><span>1</span><span>]</span> <span>then</span>
</span><span> <span>-- return commands because sudo runs a command as root..!</span>
</span><span>
</span><span> <span>local</span> <span>entries</span><span>,</span> <span>pfx</span> <span>=</span> <span>hilbish</span><span>.</span><span>completion</span><span>.</span><span>bins</span><span>(</span><span>query</span><span>,</span> <span>ctx</span><span>,</span> <span>fields</span><span>)</span>
</span><span> <span>return</span> <span>&lbrace;</span>
</span><span> <span>type</span> <span>=</span> <span>'grid'</span><span>,</span>
</span><span> <span>items</span> <span>=</span> <span>entries</span>
</span><span> <span>&rbrace;</span><span>,</span> <span>pfx</span>
</span><span> <span>end</span>
</span><span>
</span><span> <span>-- ... else suggest files or anything else ..</span>
</span><span><span>end</span><span>)</span>
</span></code></pre>
</div>
<hr>
<div>
<h4>
hilbish.completion.call(name, query, ctx, fields) -&gt; completionGroups (table), prefix (string)
<a href="#completion.call" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Calls a completer function. This is mainly used to call a command completer, which will have a <code>name</code><br>
in the form of <code>command.name</code>, example: <code>command.git</code>.<br>
You can check the Completions doc or <code>doc completions</code> for info on the <code>completionGroups</code> return value.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>name</code></strong></p>
<p><code>string</code> <strong><code>query</code></strong></p>
<p><code>string</code> <strong><code>ctx</code></strong></p>
<p><code>table</code> <strong><code>fields</code></strong></p>
</div>
<hr>
<div>
<h4>
hilbish.completion.files(query, ctx, fields) -&gt; entries (table), prefix (string)
<a href="#completion.files" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Returns file matches based on the provided parameters.<br>
This function is meant to be used as a helper in a command completion handler.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>query</code></strong></p>
<p><code>string</code> <strong><code>ctx</code></strong></p>
<p><code>table</code> <strong><code>fields</code></strong></p>
</div>
<hr>
<div>
<h4>
hilbish.completion.handler(line, pos)
<a href="#completion.handler" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>This function contains the general completion handler for Hilbish. This function handles<br>
completion of everything, which includes calling other command handlers, binaries, and files.<br>
This function can be overriden to supply a custom handler. Note that alias resolution is required to be done in this function.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>line</code></strong><br>
The current Hilbish command line</p>
<p><code>number</code> <strong><code>pos</code></strong><br>
Numerical position of the cursor</p>
<h4>Example</h4>
<pre><code><span><span>-- stripped down version of the default implementation</span>
</span><span><span>function</span> <span>hilbish</span><span>.</span><span>completion</span><span>.</span><span>handler</span><span>(</span><span>line</span><span>,</span> <span>pos</span><span>)</span>
</span><span> <span>local</span> <span>query</span> <span>=</span> <span>fields</span><span>[</span><span>#</span><span>fields</span><span>]</span>
</span><span>
</span><span> <span>if</span> <span>#</span><span>fields</span> <span>==</span> <span>1</span> <span>then</span>
</span><span> <span>-- call bins handler here</span>
</span><span> <span>else</span>
</span><span> <span>-- call command completer or files completer here</span>
</span><span> <span>end</span>
</span><span><span>end</span>
</span></code></pre>
</div></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>