From e258f9c8baf032a61b847b1c00149853e51a0190 Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Fri, 2 Dec 2022 16:57:38 -0400 Subject: [PATCH] fix: doc generation for hilbish module --- cmd/docgen/docgen.go | 5 +- docs/api/hilbish.md | 117 ++++++++++++++++++++++++++++++++++++++++ emmyLuaDocs/hilbish.lua | 62 ++++++++++++++------- 3 files changed, 164 insertions(+), 20 deletions(-) diff --git a/cmd/docgen/docgen.go b/cmd/docgen/docgen.go index ab432aa..b633a89 100644 --- a/cmd/docgen/docgen.go +++ b/cmd/docgen/docgen.go @@ -78,9 +78,10 @@ func main() { for l, f := range pkgs { p := doc.New(f, "./", doc.AllDecls) pieces := []docPiece{} + mod := l for _, t := range p.Funcs { - mod := l if strings.HasPrefix(t.Name, "hl") { mod = "hilbish" } + if !strings.HasPrefix(t.Name, "hl") && l == "main" { continue } if !strings.HasPrefix(t.Name, prefix[mod]) || t.Name == "Loader" { continue } parts := strings.Split(strings.TrimSpace(t.Doc), "\n") funcsig := parts[0] @@ -151,7 +152,7 @@ func main() { descParts := strings.Split(strings.TrimSpace(p.Doc), "\n") shortDesc := descParts[0] desc := descParts[1:] - docs[l] = module{ + docs[mod] = module{ Docs: pieces, ShortDescription: shortDesc, Description: strings.Join(desc, "\n"), diff --git a/docs/api/hilbish.md b/docs/api/hilbish.md index baba4aa..61c3637 100644 --- a/docs/api/hilbish.md +++ b/docs/api/hilbish.md @@ -1,7 +1,14 @@ --- name: Module hilbish +description: Here is the core api for the hilbi shell itself +layout: apidoc --- +## Introduction +Basically, stuff about the shell itself and other functions +go here. + +## Functions ### alias(cmd, orig) Sets an alias of `cmd` to `orig` @@ -82,3 +89,113 @@ Returns a `timer` object (see `doc timers`). ### which(name) Checks if `name` is a valid command +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + +### + diff --git a/emmyLuaDocs/hilbish.lua b/emmyLuaDocs/hilbish.lua index 3f0907e..ca34425 100644 --- a/emmyLuaDocs/hilbish.lua +++ b/emmyLuaDocs/hilbish.lua @@ -2,82 +2,108 @@ local hilbish = {} ---- +--- Sets an alias of `cmd` to `orig` --- @param cmd string --- @param orig string function hilbish.alias(cmd, orig) end ---- +--- Appends `dir` to $PATH --- @param dir string|table function hilbish.appendPath(dir) end ---- +--- Registers a completion handler for `scope`. +--- A `scope` is currently only expected to be `command.`, +--- replacing with the name of the command (for example `command.git`). +--- `cb` must be a function that returns a table of "completion groups." +--- Check `doc completions` for more information. --- @param scope string --- @param cb function function hilbish.complete(scope, cb) end ---- +--- Returns the current directory of the shell function hilbish.cwd() end ---- +--- Replaces running hilbish with `cmd` --- @param cmd string function hilbish.exec(cmd) end ---- +--- Puts `fn` in a goroutine --- @param fn function function hilbish.goro(fn) end ---- +--- Line highlighter handler. This is mainly for syntax highlighting, but in +--- reality could set the input of the prompt to *display* anything. The +--- callback is passed the current line and is expected to return a line that +--- will be used as the input display. --- @param line string function hilbish.highlighter(line) end ---- +--- The command line hint handler. It gets called on every key insert to +--- determine what text to use as an inline hint. It is passed the current +--- line and cursor position. It is expected to return a string which is used +--- as the text for the hint. This is by default a shim. To set hints, +--- override this function with your custom handler. --- @param line string --- @param pos int function hilbish.hinter(line, pos) end ---- +--- Sets the input mode for Hilbish's line reader. Accepts either emacs or vim --- @param mode string function hilbish.inputMode(mode) end ---- +--- Runs the `cb` function every `time` milliseconds. +--- Returns a `timer` object (see `doc timers`). --- @param cb function --- @param time number --- @return table function hilbish.interval(cb, time) end ---- +--- Changes the continued line prompt to `str` --- @param str string function hilbish.multiprompt(str) end ---- +--- Prepends `dir` to $PATH --- @param dir string function hilbish.prependPath(dir) end ---- +--- Changes the shell prompt to `str` +--- There are a few verbs that can be used in the prompt text. +--- These will be formatted and replaced with the appropriate values. +--- `%d` - Current working directory +--- `%u` - Name of current user +--- `%h` - Hostname of device --- @param str string --- @param typ string Type of prompt, being left or right. Left by default. function hilbish.prompt(str, typ) end ---- +--- Read input from the user, using Hilbish's line editor/input reader. +--- This is a separate instance from the one Hilbish actually uses. +--- Returns `input`, will be nil if ctrl + d is pressed, or an error occurs (which shouldn't happen) --- @param prompt string function hilbish.read(prompt) end ---- +--- Runs `cmd` in Hilbish's sh interpreter. +--- If returnOut is true, the outputs of `cmd` will be returned as the 2nd and +--- 3rd values instead of being outputted to the terminal. --- @param cmd string function hilbish.run(cmd) end ---- +--- Sets the execution/runner mode for interactive Hilbish. This determines whether +--- Hilbish wll try to run input as Lua and/or sh or only do one of either. +--- Accepted values for mode are hybrid (the default), hybridRev (sh first then Lua), +--- sh, and lua. It also accepts a function, to which if it is passed one +--- will call it to execute user input instead. --- @param mode string|function function hilbish.runnerMode(mode) end ---- +--- Runs the `cb` function after `time` in milliseconds +--- Returns a `timer` object (see `doc timers`). --- @param cb function --- @param time number --- @return table function hilbish.timeout(cb, time) end ---- +--- Checks if `name` is a valid command --- @param binName string function hilbish.which(binName) end