this also makes the completion functions `bins`
and `files` also return the prefix to pass
to the completion handler.
this is an overhaul to the completion system,
which gets the completion handler from lua
instead of being made to only have lua provided
*command* completions.
it does not have any performance deficit, even
though it calls in to golua for completions.
with the change of blocking changes to the
hilbish table, i took an opportunity
to make the highlighter and hinter callbacks
set in a more natural way. instead of being
a function which takes a callback, you set
the function itself.
changed the way file completions are handed
completely, which fixes#130 and makes the
full name appear in the completion menu instead
of it being cut off
if an alias is something which isn't valid syntax,
specifically if hilbish cant split up the input
properly to execute, it will report the error to
the user. the previous behaviour was a panic since
on error the args slice will be of length 0
this is basically an edge case and fixes a bug
which shouldnt happen normally
Added emacsForwardWord and emacsBackwardWord which is used by M-f and
M-b directly. Also added M-d to ctrl delete and removed the bad old
funcion in favor of the fancy new one. Lastly I added alt delete which
deletes with emacsBackwardWord. Works identically to gnu readline
Co-authored-by: Renzix <DanielDeBruno@renzix.com>
* feat: add right prompt (closes#111)
* chore: add comment for set right prompt function
* fix: add 1 space at the end of right prompt to fix character cut off
* docs: update doc for prompt function
this introduces a breaking change to runner functions.
they are now required to return 3 values, the first
being the user's input, and the 2 others that it was
before. the `hilbish.runner` functions respectively
have been updated, so if you just return from those
there will be no difference
adds a map (but lets call it a pool) of all
running timers. this makes us able to keep
track of all running intervals and timeouts.
it also means hilbish can wait for them to
be done before exiting (it only waits when
non interactive).
this introduces the `hilbish.timers` interface,
documented by `doc timers`. the `hilbish.interval`
and `hilbish.timeout` functions return a timer
object now.