--- title: Module hilbish.completion description: tab completions layout: doc menu: docs: parent: "API" --- ## Introduction The completions interface deals with tab completions. ## Functions ||| |----|----| |call(name, query, ctx, fields) -> completionGroups (table), prefix (string)|Calls a completer function. This is mainly used to call a command completer, which will have a `name`| |handler(line, pos)|This function contains the general completion handler for Hilbish. This function handles| |bins(query, ctx, fields) -> entries (table), prefix (string)|Return binaries/executables based on the provided parameters.| |files(query, ctx, fields) -> entries (table), prefix (string)|Returns file matches based on the provided parameters.|

hilbish.completion.call(name, query, ctx, fields) -> completionGroups (table), prefix (string)

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

hilbish.completion.handler(line, pos)

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

hilbish.completion.bins(query, ctx, fields) -> entries (table), prefix (string)

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) ````

hilbish.completion.files(query, ctx, fields) -> entries (table), prefix (string)

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