2
2
mirror of https://github.com/Hilbis/Hilbish synced 2025-06-06 12:32:03 +00:00

74 lines
10 KiB
HTML

<!doctype html>
<html class="bg-stone-50 dark:bg-neutral-900 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 property="og:url"></head><body class="min-h-screen flex flex-col"><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="h-10 flex py-2 px-4 border-b border-b-zinc-300 w-full gap-2 backdrop-blur-sm bg-zinc-300/50 dark:bg-zinc-800/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"><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 dark:bg-neutral-900 basis-3/5 transition-transform duration-300 -translate-x-full 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">Vim Mode</li><li class="mb-2">Completions</li><li class="mb-2">Lunacolors</li><li class="mb-2">Frequently Asked Questions</li><li class="mb-2">Getting Started</li><li class="mb-2">Introduction</li><li class="mb-2">Module hilbish</li><li class="mb-2">Module fs</li><li class="mb-2">Module snail</li><li class="mb-2">Module terminal</li><li class="mb-2">Module commander</li><li class="mb-2">API</li><li class="mb-2">Module bait</li><li class="mb-2">Module hilbish.module</li><li class="mb-2">Module hilbish.abbr</li><li class="mb-2">Module hilbish.userDir</li><li class="mb-2">Module hilbish.os</li><li class="mb-2">Module hilbish.history</li><li class="mb-2">Module hilbish.completion</li><li class="mb-2">Module hilbish.messages</li><li class="mb-2">Module hilbish.aliases</li><li class="mb-2">Module hilbish.runner</li><li class="mb-2">Module hilbish.timers</li><li class="mb-2">Module hilbish</li><li class="mb-2">Module hilbish.jobs</li><li class="mb-2">Module hilbish.editor</li><li class="mb-2">Actions</li><li class="mb-2">Module doc</li><li class="mb-2">Nature</li><li class="mb-2">Module dirs</li><li class="mb-2">Hilbish</li><li class="mb-2">Command</li><li class="mb-2">Signals</li><li class="mb-2">Signal</li><li class="mb-2">Notification</li><li class="mb-2">Runner Mode</li><li class="mb-2">Options</li><li class="mb-2">Features</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 class="font-bold text-4xl">Module hilbish.completion</h1><h2 class="font-bold text-3xl" id="Introduction-The-completions-interface-deals-with-tab-completions.">Introduction
The completions interface deals with tab completions.</h2><h2 class="font-bold text-3xl" id="Functions-|||-|----|----|-|&lt;a-href=&quot;completion.bins&quot;&gt;bins(query-ctx-fields)--&gt;-entries-(table)-prefix-(string)&lt;/a&gt;|Return-binaries/executables-based-on-the-provided-parameters.|-|&lt;a-href=&quot;completion.call&quot;&gt;call(name-query-ctx-fields)--&gt;-completionGroups-(table)-prefix-(string)&lt;/a&gt;|Calls-a-completer-function.-This-is-mainly-used-to-call-a-command-completer-which-will-have-a-name|-|&lt;a-href=&quot;completion.files&quot;&gt;files(query-ctx-fields)--&gt;-entries-(table)-prefix-(string)&lt;/a&gt;|Returns-file-matches-based-on-the-provided-parameters.|-|&lt;a-href=&quot;completion.handler&quot;&gt;handler(line-pos)&lt;/a&gt;|This-function-contains-the-general-completion-handler-for-Hilbish.-This-function-handles|">Functions
|||
|----|----|
|&lt;a href=&quot;#completion.bins&quot;&gt;bins(query, ctx, fields) -&gt; entries (table), prefix (string)&lt;/a&gt;|Return binaries/executables based on the provided parameters.|
|&lt;a href=&quot;#completion.call&quot;&gt;call(name, query, ctx, fields) -&gt; completionGroups (table), prefix (string)&lt;/a&gt;|Calls a completer function. This is mainly used to call a command completer, which will have a <code>name</code>|
|&lt;a href=&quot;#completion.files&quot;&gt;files(query, ctx, fields) -&gt; entries (table), prefix (string)&lt;/a&gt;|Returns file matches based on the provided parameters.|
|&lt;a href=&quot;#completion.handler&quot;&gt;handler(line, pos)&lt;/a&gt;|This function contains the general completion handler for Hilbish. This function handles|</h2><p>&lt;hr&gt;
&lt;div id=&#39;completion.bins&#39;&gt;
&lt;h4 class=&#39;heading&#39;&gt;
hilbish.completion.bins(query, ctx, fields) -&gt; entries (table), prefix (string)
&lt;a href=&quot;#completion.bins&quot; class=&#39;heading-link&#39;&gt;
&lt;i class=&quot;fas fa-paperclip&quot;&gt;&lt;/i&gt;
&lt;/a&gt;
&lt;/h4&gt;</p><p>Return binaries/executables based on the provided parameters.
This function is meant to be used as a helper in a command completion handler. </p><p class="font-bold text-xl" id="Parameters-string-**query**">Parameters
<code>string</code> **<code>query</code>** </p><p><code>string</code> **<code>ctx</code>** </p><p><code>table</code> **<code>fields</code>** </p><p class="font-bold text-xl" id="Example-lua----an-extremely-simple-completer-for-sudo.-hilbish.complete(&#39;command.sudo&#39;-function(query-ctx-fields)- table.remove(fields-1)- if-fields[1]-then- ---return-commands-because-sudo-runs-a-command-as-root..">Example
<code>lua
-- an extremely simple completer for sudo.
hilbish.complete(&#39;command.sudo&#39;, function(query, ctx, fields)
table.remove(fields, 1)
if #fields[1] then
-- return commands because sudo runs a command as root..!</code></p><p> local entries, pfx = hilbish.completion.bins(query, ctx, fields)
return {
type = &#39;grid&#39;,
items = entries
}, pfx
end</p><p> -- ... else suggest files or anything else ..
end)
<code>
&lt;/div&gt;</code></p><p>&lt;hr&gt;
&lt;div id=&#39;completion.call&#39;&gt;
&lt;h4 class=&#39;heading&#39;&gt;
hilbish.completion.call(name, query, ctx, fields) -&gt; completionGroups (table), prefix (string)
&lt;a href=&quot;#completion.call&quot; class=&#39;heading-link&#39;&gt;
&lt;i class=&quot;fas fa-paperclip&quot;&gt;&lt;/i&gt;
&lt;/a&gt;
&lt;/h4&gt;</p><p>Calls a completer function. This is mainly used to call a command completer, which will have a <code>name</code>
in the form of <code>command.name</code>, example: <code>command.git</code>.
You can check the Completions doc or <code>doc completions</code> for info on the <code>completionGroups</code> return value. </p><p class="font-bold text-xl" id="Parameters-string-**name**">Parameters
<code>string</code> **<code>name</code>** </p><p><code>string</code> **<code>query</code>** </p><p><code>string</code> **<code>ctx</code>** </p><p><code>table</code> **<code>fields</code>** </p><p>&lt;/div&gt;</p><p>&lt;hr&gt;
&lt;div id=&#39;completion.files&#39;&gt;
&lt;h4 class=&#39;heading&#39;&gt;
hilbish.completion.files(query, ctx, fields) -&gt; entries (table), prefix (string)
&lt;a href=&quot;#completion.files&quot; class=&#39;heading-link&#39;&gt;
&lt;i class=&quot;fas fa-paperclip&quot;&gt;&lt;/i&gt;
&lt;/a&gt;
&lt;/h4&gt;</p><p>Returns file matches based on the provided parameters.
This function is meant to be used as a helper in a command completion handler. </p><p class="font-bold text-xl">Parameters
<code>string</code> **<code>query</code>** </p><p><code>string</code> **<code>ctx</code>** </p><p><code>table</code> **<code>fields</code>** </p><p>&lt;/div&gt;</p><p>&lt;hr&gt;
&lt;div id=&#39;completion.handler&#39;&gt;
&lt;h4 class=&#39;heading&#39;&gt;
hilbish.completion.handler(line, pos)
&lt;a href=&quot;#completion.handler&quot; class=&#39;heading-link&#39;&gt;
&lt;i class=&quot;fas fa-paperclip&quot;&gt;&lt;/i&gt;
&lt;/a&gt;
&lt;/h4&gt;</p><p>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. </p><p class="font-bold text-xl" id="Parameters-string-**line**---The-current-Hilbish-command-line">Parameters
<code>string</code> **<code>line</code>**
The current Hilbish command line</p><p><code>number</code> **<code>pos</code>**
Numerical position of the cursor</p><p class="font-bold text-xl" id="Example-lua----stripped-down-version-of-the-default-implementation-function-hilbish.completion.handler(line-pos)- local-query-=-fields[fields]">Example
<code>lua
-- stripped down version of the default implementation
function hilbish.completion.handler(line, pos)
local query = fields[#fields]</code></p><p> if #fields == 1 then
-- call bins handler here
else
-- call command completer or files completer here
end
end
<code>
&lt;/div&gt;</code></p></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>