#lua #parser #neovim #lua-cats #vimdoc

bin+lib vimcats

LuaCATS解析器和vimdoc转换器

2个版本 (1个稳定版)

1.0.0 2024年8月22日
0.13.0 2024年8月22日

#465 in 解析实现

GPL-2.0+

64KB
1.5K SLoC

🐈 vimCATS 📖

A CLI用于从LuaCATS生成vimdoc。由lemmy-help派生。

[!警告]

这个分支是早期的WIP。它尚未完全迁移。

vimcats

什么?

vimcats是一个LuaCATS解析器,也是一个CLI,它将解析树转换为vim帮助文档。

安装

Packaging status

LuaCATS

要正确生成文档,您应遵循luaCATS规范。该解析器可以解析大多数(不是所有)的LuaCATS语法。您可以阅读以下文档,了解如何正确编写LuaCATS注释。

用法

使用CLI很简单,只需提供lua文件的路径;它将解析它们并将帮助文档打印到stdout

vimcats /path/to/{first,second,third}.lua > doc/PLUGIN_NAME.txt

CLI

vimcats

USAGE:
    vimcats [FLAGS] [OPTIONS] <FILES>...

ARGS:
    <FILES>...                  Path to lua 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

OPTIONS:
    -i, --indent <u8>           Controls the indent width [default: 4]
    -l, --layout <layout>       Vimdoc text layout [default: 'default']
                                - "default" : Default layout
                                - "compact[:n=0]" : Aligns [desc] with <type>
                                  and uses {n}, if provided, to indent the
                                  following new lines. This option only
                                  affects ---@field and ---@param tags
                                - "mini[:n=0]" : Aligns [desc] from the start
                                  and uses {n}, if provided, to indent the
                                  following new lines. This option affects
                                  ---@field, ---@param and ---@return tags

USAGE:
    vimcats /path/to/first.lua /path/to/second.lua > doc/PLUGIN_NAME.txt
    vimcats -c -a /path/to/{first,second,third}.lua > doc/PLUGIN_NAME.txt
    vimcats --layout compact:2 /path/to/plugin.lua > doc/PLUGIN_NAME.txt

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

CI [待办事项]

name: vimcats

on: [push]

env:
  PLUGIN_NAME: plugin-name

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

      - name: Generating help
        run: |
          # TODO

      - 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

致谢

许可

本项目根据GPL版本2或(根据您的选择)任何较新版本进行授权

lemmy-help(本项目从中派生)根据MIT授权

依赖关系

~2.5MB
~36K SLoC