any interface which has lua side objects that are from go side for its api (namely jobs) they will use userdata instead of always creating a table to represent the object. this might or might not bring lower ram usage since there is now only 1 single reference to an object instead of always creating a table to expose on lua
breaking change since methods need to be called with a colon instead of dot
* feat: add hilbish.job.add function
this is mainly to accomodate for the employer
handler (#152)
* feat!: add start function to jobs
the commit itself adds a few things but the
main purpose is to facilitate a lua side start
function that can restart the job
there is a breaking change in the hilbish.job.add
function; it is now required to provide an extra
table for arguments, since the first cmd
table isnt really what's actually ran
* fix: reuse standard files for jobs
* fix: deadlock in lua job add function and not taking proper amount of args
* fix: assign binary path to job
* feat: emit job.add hook when job is added
* chore: update modules
* fix: use setpgid on cmd procattr for background jobs
* fix: use right procattr on correct os
* fix: set bg proc attr in build tagged file
* feat: add disown function
* fix: stop jobs on exit
* feat: add disown command
* feat: add jobs.last function to get last job
* feat: make disown command get last job if id isnt suppied as arg
* chore: remove unused code
* feat: add job output
* chore: fix comments
* fix!: make exec path in job add explicit in lua side
* docs: add docs and changelogs relating to jobs
this is going to be a middle level interface
which brings functions for interacting
with the line editor used in hilbish
adds the following functions:
setVimRegister(reg, text) - sets text in a vim register
getVimRegister(reg) - gets text from a vim register
insert(text) - inserts text into the line
accessible via hilbish.editor
this adds `hilbish.opts`, a table to set
simple options akin to shopt or setopt on
other shells. this commit specifically also
includes the autocd opt, which functions the
way you expect it to
to set opts, simply do `hilbish.opts.name = val`,
where `name` is the opt you want to set and `val`
being the opt setting.
ie: `hilbish.opts.autocd = true` to turn on autocd
basically, i have a `c` alias which is `git commit`,
this would resolve to `git commit` literally to try
and complete `commit`, which wouldnt match.
this fixes that, and instead itll suggest commands
that start with `c`. if there is a space after and
completion is requested, itll use the alias properly