Metadata-Version: 2.4
Name: nonebot-plugin-namepy
Version: 0.1.0
Summary: NoneBot2 编程命名风格快速转换插件 (snake_case / camelCase / PascalCase / kebab-case / UPPER_SNAKE_CASE / Train-Case)
Project-URL: Homepage, https://github.com/Zmjjeff7/nonebot-plugin-namepy
Project-URL: Repository, https://github.com/Zmjjeff7/nonebot-plugin-namepy
Project-URL: Bug Tracker, https://github.com/Zmjjeff7/nonebot-plugin-namepy/issues
Author-email: Zmjjeff7 <2519416535@qq.com>
License: MIT
License-File: LICENSE
Keywords: case-converter,developer-tool,naming,nonebot,nonebot2
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Robot Framework
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: <4.0,>=3.9
Requires-Dist: nonebot2<3.0.0,>=2.2.0
Description-Content-Type: text/markdown

<!-- markdownlint-disable MD033 MD036 MD041 -->

<p align="center">
  <a href="https://nonebot.dev/"><img src="https://nonebot.dev/logo.png" width="200" height="200" alt="nonebot"></a>
</p>

<div align="center">

# nonebot-plugin-namepy

✨ NoneBot2 编程命名风格快速转换插件 ✨

</div>

<p align="center">
  <a href="./LICENSE">
    <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license">
  </a>
  <img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="python">
  <img src="https://img.shields.io/badge/nonebot-2.2+-red.svg" alt="nonebot">
</p>

## 📖 介绍

写代码时经常被 `userName` / `user_name` / `USER_NAME` 之间的转换打断思路？这个插件让你在群聊里一句话搞定。

支持在以下 6 种命名风格之间互转，自带智能分词，能正确处理形如 `XMLParserHTTP_url2name` 的混合大小写与缩写组合：

- `snake_case`
- `camelCase`
- `PascalCase`
- `kebab-case`
- `UPPER_SNAKE_CASE`
- `Train-Case`

## 💿 安装

<details open>
<summary>使用 nb-cli 安装</summary>

```bash
nb plugin install nonebot-plugin-namepy
```

</details>

<details>
<summary>使用包管理器安装</summary>

```bash
pip install nonebot-plugin-namepy
```

或

```bash
poetry add nonebot-plugin-namepy
```

打开 NoneBot 项目根目录下的 `pyproject.toml` 文件, 在 `[tool.nonebot]` 部分追加写入：

```toml
plugins = ["nonebot_plugin_namepy"]
```

</details>

## 🎉 使用

| 指令 | 说明 | 示例 |
| --- | --- | --- |
| `/命名 <标识符>` | 一次性展示全部 6 种风格 | `/命名 user_name` |
| `/驼峰 <标识符>` | 转 `camelCase` | `/驼峰 user_name` → `userName` |
| `/大驼峰 <标识符>` | 转 `PascalCase` | `/大驼峰 user_name` → `UserName` |
| `/下划线 <标识符>` | 转 `snake_case` | `/下划线 userName` → `user_name` |
| `/常量 <标识符>` | 转 `UPPER_SNAKE_CASE` | `/常量 userName` → `USER_NAME` |
| `/中划线 <标识符>` | 转 `kebab-case` | `/中划线 userName` → `user-name` |
| `/标题 <标识符>` | 转 `Train-Case` | `/标题 user_name` → `User-Name` |

支持的别名：`大驼峰` ↔ `帕斯卡`，`下划线` ↔ `蛇形`，`常量` ↔ `大写下划线` ↔ `大下划线`，`中划线` ↔ `连字符`，`标题` ↔ `火车`。

## 🔍 智能分词

输入 `/命名 XMLParserHTTP_url2name` 会得到：

```text
原始词元：['xml', 'parser', 'http', 'url', '2', 'name']
snake_case      : xml_parser_http_url_2_name
camelCase       : xmlParserHttpUrl2Name
PascalCase      : XmlParserHttpUrl2Name
kebab-case      : xml-parser-http-url-2-name
UPPER_SNAKE_CASE: XML_PARSER_HTTP_URL_2_NAME
Train-Case      : Xml-Parser-Http-Url-2-Name
```

可正确处理：

- 多重大写缩略词后接小写：`HTTPServer` → `["http", "server"]`
- 字母数字交替：`v2Tag42` → `["v", "2", "tag", "42"]`
- 已存在的分隔符：`user-id_FOO` → `["user", "id", "foo"]`

## 📄 许可

本项目采用 [MIT License](./LICENSE)。
