🤝 lemmy-help

Everyone needs help, so lemmy-help you

lemmy-help

What?

lemmy-help is a emmylua parser as well as a CLI which takes that parsed tree and converts it into vim help docs.

Installation

bash cargo install lemmy-help --features=cli

```bash

Using yay

yay -S lemmy-help

Using paru

paru -S lemmy-help ```

Check out the release page for prebuild binaries available for different operating systems.

Emmylua

To properly generate docs you should follow emmylua spec. The parser is capable of parsing most (not all) of the emmylua syntax. You can read the following doc which can give you the idea on how to properly write emmylua comments.

Usage

Using the CLI is simple just give it the path to the lua files; it will parse them and prints the help doc to stdout

bash lemmy-help /path/to/{first,second,third}.lua > doc/PLUGIN_NAME.txt

Cli

```help lemmy-help

USAGE: lemmy-help [FLAGS] ...

ARGS: ... Path to the files

FLAGS: -h, --help Print help information -v, --version Print version information -M, --no-modeline Don't print modeline at the end -f, --prefix-func Prefix function name with ---@mod name -a, --prefix-alias Prefix ---@alias tag with return/---@mod name -c, --prefix-class Prefix ---@class tag with return/---@mod name -t, --prefix-type Prefix ---@type tag with ---@mod name --expand-opt Expand '?' (optional) to 'nil' type

USAGE: lemmy-help /path/to/first.lua /path/to/second.lua > doc/PLUGINNAME.txt lemmy-help -c -a /path/to/{first,second,third}.lua > doc/PLUGINNAME.txt

NOTES: - The order of parsing + rendering is relative to the given files ```

CI

```yaml name: lemmy-help

on: [push]

env: PLUGIN_NAME: plugin-name

jobs: docs: runs-on: ubuntu-latest name: emmylua to vimdoc steps: - uses: actions/checkout@v2

  - name: Generating help
    run: |
      curl -Lq https://github.com/numToStr/lemmy-help/releases/latest/download/lemmy-help-x86_64-unknown-linux-gnu.tar.gz | tar xz
      ./lemmy-help [args] <path> > doc/${{env.PLUGIN_NAME}}.txt

  - name: Commit
    uses: stefanzweifel/git-auto-commit-action@v4
    with:
      branch: ${{ github.head_ref }}
      commit_message: "chore(docs): auto-generate vimdoc"
      file_pattern: doc/*.txt

```

Credits