Skip to content
dsh.fish
Bundle

dsh-case

DSH plugin: case/naming conversion tool (case_convert).

Source
ZhijiangTang
stars
1 stars
License
MIT
Updated
Updated 15 days ago

Readme

# dsh-case

DSH 插件:命名/大小写风格转换工具,注册一个 `case_convert` 工具。

纯 ESM、零依赖、无构建步骤。

## 安装

```sh
dsh plugin --profile <name> add file:./plugins/dsh-case
# 或发布后
dsh plugin --profile <name> add dsh-case
```

## 工具 `case_convert`

参数:

| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| `text` | string | 是 | 待转换文本 |
| `target` | string(enum) | 是 | 目标风格 |
| `source` | string(enum) | 否 | 源风格,默认 `auto` 自动检测 |

返回值(规范 JSON 对象):

```json
{ "input": "...", "target": "camelCase", "source": "snake_case", "output": "...", "words": ["..."] }
```

## 各 target 示例

以 `hello_world`(snake_case)为输入:

| target | 输出 |
|---|---|
| `camelCase` | `helloWorld` |
| `PascalCase` | `HelloWorld` |
| `snake_case` | `hello_world` |
| `kebab-case` | `hello-world` |
| `CONSTANT_CASE` | `HELLO_WORLD` |
| `UPPER` | `HELLO WORLD` |
| `lower` | `hello world` |
| `Title Case` | `Hello World` |

## 分词规则

1. 按分隔符 `-`、`_`、空白、`.` 切词。
2. 在无分隔符片段内按大小写边界切词:
   - 小写 → 大写(`helloWorld` → `hello` / `World`)
   - 连续大写后接小写(`HTTPApi` → `HTTP` / `Api`)
   - 数字后接「大写 + 小写」(`my2Factor` → `my2` / `Factor`)
3. 数字粘合到相邻单词,不单独成词:`version2` → `version2`;开头的 `2FA` 保持为一个整体不拆分。
4. 空输入或纯符号输入原样返回,`words` 为空数组。

`source` 用于 `auto` 检测时的判定(分隔符 + 连续大写规则);分词算法对全部分隔符与大小写边界一视同仁,因此 `source` 主要作为结果中的标注,不影响转换正确性。

Install

dsh plugin --profile web add github:ZhijiangTang/dsh-case

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source