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
major rewrite which changes the library hilbish uses for it's lua vm
this one implements lua 5.4, and since that's a major version bump,
it's a breaking change. introduced here also is a fix for `hilbish.login`
not being the right value
* refactor: start work on lua 5.4
lots of commented out code
ive found a go lua library which implements lua 5.4
and found an opportunity to start working on it.
this commit basically removes everything and just leaves
enough for the shell to be "usable" and able to start.
there are no builtins or libraries (besides the `hilbish` global)
* fix: call cont next in prompt function
this continues execution of lua, very obvious
fixes an issue with code stopping at the prompt function
* fix: handle errors in user config
* fix: handle panic in lua input if it is incorrect
* feat: implement bait
* refactor: use util funcs to run lua where possible
* refactor: move arg handle function to util
* feat: implement commander
* feat: implement fs
* feat: add hilbish module functions used by prelude
* chore: use custom fork of golua
* fix: make sure args to setenv are strings in prelude
* feat: implement completions
* chore: remove comment
* feat: implement terminal
* feat: implement hilbish.interval
* chore: update lunacolors
* chore: update golua
* feat: implement aliases
* feat: add input mode
* feat: implement runner mode
* style: use comma separated cases instead of fallthrough
* feat: implement syntax highlight and hints
* chore: add comments to document util functions
* chore: fix dofile comment doc
* refactor: make loader functions for go modules unexported
* feat: implement job management
* feat: add hilbish properties
* feat: implement all hilbish module functions
* feat: implement history interface
* feat: add completion interface
* feat: add module description docs
* feat: implement os interface
* refactor: use hlalias for add function in hilbish.alias interface
* feat: make it so hilbish.run can return command output
* fix: set hilbish.exitCode to last command exit code
* fix(ansikit): flush on io.write
* fix: deregister commander if return isnt number
* feat: run script when provided path
* fix: read file manually in DoFile to avoid shebang
* chore: add comment for reason of unreading byte
* fix: remove prelude error printing
* fix: add names at chunk load for context in errors
* fix: add newline at the beginning of file buffer when there is shebang
this makes the line count in error messages line up properly
* fix: remove extra newline after error
* fix: handle path binaries properly on windows (closes#117, #118)
* refactor: dont return exec name since it isnt needed
* fix: return correct error in find exec function and stat always
* fix: remove filepath import for exec file check on unix
this is a pretty big commit which mainly contains a refactor
and breaking change to how command completions are done.
before that, a hilbish.completion interface has been added
which for now just has 2 functions (`files` and `bins`)
for completions of normal files and executables.
hilbish.complete is now expected to return a table of
"completions groups," which are as the name suggests a group
for a completion. a completion group is a table which has
the fields `type`, which can be either `list` or `grid`,
and `items`, being an array (or string keyed table) of items
if an item is string keyed the item itself is the key name
and the value is a table with the first value in it being the
description for the item. this description is only applied
with the list type.
this is probably the longest commit message ive written
same reason as not using ~/.hilbishrc.lua, and also
the fact that users can now just check if
`hilbish.login` is true in their config which is
more organized