Commit Graph

68 Commits (midnight-edition)

Author SHA1 Message Date
sammyette 3afd1c518a
fix: attempt to implement more/fix go library loading 2024-12-22 00:03:21 -04:00
sammyette 1f9fd80fbb
feat: begin initial port to c lua 2024-07-21 11:37:08 -04:00
sammyette 17a3e2c0c4
refactor(bait): catch function 2024-07-20 15:18:05 -04:00
sammyette f37f5b7ddc
refactor: rewrite terminal library with moonlight 2024-07-20 11:59:14 -04:00
sammyette 57a65cb039
feat: add moonlight to commander 2024-07-20 11:46:07 -04:00
sammyette a5f695eb98
feat: implement parts of fs 2024-07-20 11:34:39 -04:00
sammyette a15b1030d4
chore: update branch 2024-07-20 11:00:01 -04:00
sammyette 56045ed236
feat: implement bait loading 2024-07-20 10:50:04 -04:00
sammyette 5f8d942f0a
fix: reuse shell runner instance (#312) 2024-07-20 09:31:57 -04:00
sammyette 42ab856e45
feat(commander): add function to return all commanders (closes #266) 2024-04-27 21:29:06 -04:00
sammyette a20123fc24
feat: allow hilbish.run to take a table of files to use for output (#291) 2024-04-27 21:03:54 -04:00
sammyette 8fdae6c1d7
refactor: doc improvements (again) (#260) 2023-12-25 22:08:29 -05:00
sammyette 9e1ec1641c
docs: fix return types for functions (closes #229) 2023-02-07 18:18:03 -04:00
sammyette 61914f8dc7
docs: add docs for sink type (closes #233) 2023-02-07 15:39:22 -04:00
sammyette 2f6ab5fd92
feat: add sink for commanders to write output/read input (#232)
to write output, you would usually just use the print builtin
since commanders are just lua custom commands but this does not
consider the fact of pipes or other shell operators being used
to redirect or whatever.

this adds readable/writable "sinks" which is a type for input
or output and is currently only used for commanders but can be
used for other hilbish things in the future
2023-01-20 19:07:42 -04:00
sammyette a105b8e38d
docs: improve emmy lua annotations 2022-12-20 20:59:55 -04:00
sammyette 78c95de784
refactor: remove doc prop related code
should very very slightly improve startup. it's dead, obsolete,
and unused code now anyways with the docs refactor
2022-12-20 00:54:05 -04:00
sammyette e5eefb1d2d
refactor!: rework docs and doc command (#218)
changes the actual file format of docs to markup since that's basically what we have been
using in the first place.

the docgen command has been modified to write markdown headings with the function name and
yaml metadata for easy consumption by hugo for the website.

all other docs have been moved to markdown as well this is the main reason this is a "breaking" change
users will have to reinstall hilbish (task uninstall and task install) to remove the old plaintext docs
2022-12-15 00:00:54 -04:00
TorchedSammy 5e2b3367de
docs(bait): add annotation strings for release and hooks functions 2022-12-01 20:04:24 -04:00
TorchedSammy 068a5b5149
feat(bait): add error hook and hooks function (closes #205)
an `error` hook is now thrown when an event in lua
throws an error (errors from go side should not happen)
it includes the event name, handler, and error message

a hooks function has also been added. it returns a table
of handlers for a specific event.
2022-10-11 17:41:13 -04:00
sammy 2337f9ab60
refactor: use custom event emitter (#193)
* refactor: use custom event emitter

* fix: sigint hook emit on windows

* fix: restore correct hilbish conf file

* fix: call recoverer for go listeners

* refactor(golibs/bait): use 1 map for listeners

* feat: add once listeners, ability to remove listeners and remove listener on error

* perf: reslice listener slice instead of trying to do ordered move with append

* feat(bait): add release function to remove event listener

* perf: remove listener directly from once emit instead of using off function

* refactor: use bait event emitter on commander

* docs(golibs/bait): add doc strings for functions

* docs: set changelog

* docs(golibs/bait): add docs for lua release function
2022-08-17 18:01:32 -04:00
TorchedSammy 083c266438
feat(golibs/fs): add join function to join path elements 2022-07-13 15:38:07 -04:00
TorchedSammy 453ba9f8ad
feat(fs): add some functions and properties (closes #168) 2022-06-20 16:47:16 -04:00
TorchedSammy db437905e0
fix: implicitly expand tilde on args to all fs functions 2022-05-01 00:49:59 -04:00
TorchedSammy 1714aeac36
feat: add fs.abs 2022-04-23 00:03:49 -04:00
sammyette 0fc5f457ad
refactor!: support lua 5.4 (#129)
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
2022-04-04 06:40:02 -04:00
TorchedSammy a74c9a4200
docs(fs): change bool to boolean 2022-02-25 18:17:04 -04:00
TorchedSammy a77b997942
refactor: add emmylua docs for all functions appropriate 2022-02-25 18:15:25 -04:00
TorchedSammy dc608436c1
fix(commander): omit the 'in the shell' part for the description 2022-02-25 18:08:49 -04:00
TorchedSammy 51b1219003
feat(bait): add catchOnce function 2021-12-04 17:59:19 -04:00
TorchedSammy 4a517bde5e
fix: remove handler when error in hook occurs 2021-12-01 17:35:12 -04:00
TorchedSammy 6a526dbbe4
fix: dont panic when error in bait hook occurs 2021-12-01 17:30:06 -04:00
TorchedSammy 3568b62219
style: use decl and assign operator instead of var and = 2021-12-01 17:29:14 -04:00
TorchedSammy 538ba3547f
chore: reorder code 2021-11-22 18:58:30 -05:00
sammyette 80acd0857d
fix(cd): use correct var 2021-10-21 20:55:54 -04:00
sammyette 1a7dccb757
feat(cd): show path in error messages 2021-10-21 20:49:00 -04:00
sammyette 86013e6576
fix: use RaiseError function from gopher-lua instead of Error 2021-10-17 17:55:21 -04:00
sammyette 006f0f986e
fix(fs): stop using luar, make readdir return a proper table 2021-10-17 17:26:29 -04:00
sammyette 3d53e85fc9
feat: add terminal package
a simple, smaller but lower level terminal library, mainly used to set
raw mode. functions:
size, save and restore current state, set raw mode. documentation is in
docs/terminal.txt or `doc terminal` in hilbish
2021-10-17 16:10:57 -04:00
sammyette 6b065dc035
fix(fs): make stat better
return a table with 4 values: name, size, mode and isDir
name -> name of path
size -> size (obviously)
mode -> permissions mode in a string as octal format
isDir -> whether path is a directory
2021-10-17 12:56:45 -04:00
sammyette bd3e9fdca6
docs: make linebreaks to descriptions for better alignment 2021-10-16 15:36:30 -04:00
sammyette 20acfad2c2
fix(fs)!: handle mkdir error, change error return for cd
breaking change: cd now returns a message instead of a code to indicate the error.
any error in mkdir is now handled
2021-10-16 13:49:01 -04:00
sammyette 539a39f83a
feat: add fs.readdir function
it takes 1 argument: the directory to read.
2021-10-16 13:47:39 -04:00
sammyette 452335d84a
fix: change luaErr to return string instead of code 2021-10-16 13:47:09 -04:00
sammyette 3cafbe8c4f
docs: document `hilbish` module functions, xdg vars, and add descriptions for modules 2021-10-16 12:41:10 -04:00
sammyette 1689d80721
feat: add docgen program, document almost all hilbish functions 2021-10-16 10:21:05 -04:00
sammyette 63061e3a52
fix(bait): allow more than 1 argment for catch callback 2021-10-13 23:41:20 -04:00
sammyette afcc6fe63a
fix: handle error case of target in fs.cd not being a dir (closes #66) 2021-09-28 22:55:08 -04:00
sammyette a6a3962044
fix: correct url to github repo and add newline after error 2021-09-28 22:54:04 -04:00
sammyette a413b28f2a
fix: define deregister function in commander module 2021-06-12 10:32:48 -04:00