docs: 更新文档

This commit is contained in:
2025-07-15 11:14:31 +08:00
parent 3ade1fd1aa
commit c71c9b6d15

167
README.md
View File

@@ -82,4 +82,169 @@ int main(int argc, char *argv[]) {
```bash
example -h
```
![帮助信息](docs/images/help.png)
![帮助信息](docs/images/help.png)
# API
该API将分为两类一类是用于构造解析器另一类将用于解析参数
## 构造解析器
1. 初始化解析器
```c
ArgParse *argParseInit(char *documentation);
```
- `documentation` 解析器的文档信息
2. 添加命令
```c
Command *argParseAddCommand(ArgParse *argParse,
char *name,
char *help,
char *default_val,
ArgParseCallback callback,
CommandGroup *group,
ArgParseValueType value_type);
```
- `argParse` 解析器
- `name` 命令名称
- `help` 命令帮助信息
- `defaultVal` 默认值
- `callback` 命令回调函数(可选)
- `group` 命令组(可选)
- `valueType` 命令参数类型
3. 添加命令参数
```c
CommandArgs *argParseAddArg(Command *command,
char *short_opt,
char *long_opt,
char *help,
char *default_val,
ArgParseCallback callback,
bool required,
ArgParseValueType value_type);
```
- `command` 命令
- `shortOpt` 短选项
- `longOpt` 长选项
- `help` 帮助信息
- `defaultVal` 默认值
- `callback` 回调函数(可选)
- `required` 是否必须
- `valueType` 参数类型
4. 添加子命令
```c
Command *argParseAddSubCommand(Command *Parent,
char *name,
char *help,
char *default_val,
ArgParseCallback callback,
CommandGroup *group,
ArgParseValueType value_type);
```
- `Parent` 父命令
- `name` 命令名称
- `help` 命令帮助信息
- `defaultVal` 默认值
- `callback` 回调函数(可选)
- `group` 命令组(可选)
- `valueType` 命令参数类型
5. 添加全局参数
```c
CommandArgs *argParseAddGlobalArg(ArgParse *argParse,
char *short_opt,
char *long_opt,
char *help,
char *default_val,
ArgParseCallback callback,
bool required,
ArgParseValueType value_type);
```
- `argParse` 解析器
- `shortOpt` 短选项
- `longOpt` 长选项
- `help` 帮助信息
- `defaultVal` 默认值
- `callback` 回调函数(可选)
- `required` 是否必须
- `valueType` 参数类型
## 解析参数API
1. 解析参数
```c
void argParseParse(ArgParse *argParse, int argc, char *argv[]);
```
- `argParse` 解析器
- `argc` 参数个数
- `argv` 参数列表
2. 获取当前解析到的命令名字
```c
char *argParseGetCurCommandName(ArgParse *argParse);
```
- `argParse` 解析器
> 注意,解析到的命令为最后一次出现的命令,也可能是子命令
3. 获取当前命令的值
```c
char *argParseGetCurCommandValue(ArgParse *argParse);
```
- `argParse` 解析器
> 注意,解析到的命令为最后一次出现的命令,也可能是子命令
4. 获取当前命令的某个参数的值
```c
char *argParseGetCurArg(ArgParse *argParse, char *opt);
```
- `argParse` 解析器
- `opt` 参数选项
5. 获取当前命令的某个选项的值列表(当为多值类型时使用该函数)
```c
char **argParseGetCurArgList(ArgParse *argParse, char *opt, int *len);
```
- `argParse` 解析器
- `opt` 参数选项
- `len` 参数个数
6. 获取全局选项的值
```c
char *argParseGetGlobalArg(ArgParse *argParse, char *opt);
```
- `argParse` 解析器
- `opt` 参数选项
7. 获取全局选项的值列表
```c
char **argParseGetGlobalArgList(ArgParse *argParse, char *opt, int *len);
```
- `argParse` 解析器
- `opt` 参数选项
- `len` 参数个数
### 触发检测API
1. 检测当前检测的命令的某个选项是否触发
```c
bool argParseCheckCurArgTriggered(ArgParse *argParse, char *opt);
```
- `argParse` 解析器
- `opt` 参数选项
2. 检测某个命令是否被触发
```c
bool argParseCheckCommandTriggered(ArgParse *argParse, char *command_name);
```
- `argParse` 解析器
- `command_name` 命令名称
3. 检测某个全局选项是否被触发
```c
bool argParseCheckGlobalTriggered(ArgParse *argParse, char *opt);
```
- `argParse` 解析器
- `opt` 参数选项