# my-uorm **Repository Path**: hibixby/my-uorm ## Basic Information - **Project Name**: my-uorm - **Description**: 这是vscode 类型的插件,类似mybatis-X, 对rust orm 框架 uorm 上支持 ide 中的跳转和预览。快速阅读rust 代码和sql xml 定义 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-13 - **Last Updated**: 2026-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # My UORM VS Code 插件,为自研 ORM 框架 [uorm](https://gitee.com/luoge_1/uorm.git) 提供 Rust DAO 代码与 XML mapper 文件之间的双向跳转能力,类似 MyBatis-X 插件。 ## 功能 ### Gutter Icon 双向跳转 - 在 Rust DAO 方法的行号旁显示蓝色箭头图标,点击跳转到对应的 XML SQL 语句 - 在 XML statement 标签的行号旁显示橙色箭头图标,点击跳转到对应的 Rust DAO 方法 ### Go-to-Definition (Ctrl+Click) - 在 `#[sql("id")]` 属性上支持 Ctrl+Click / F12,直接跳转到 XML 中对应的 `` 标签 ### Hover SQL 预览 - 在 Rust DAO 方法上悬浮鼠标,显示对应 XML 中的 SQL 语句内容,包含 namespace、statement id、XML 文件路径等信息 ### Mapper 目录自动发现 - 自动扫描工作区中 `mapper_assets!["path/to/mappers"]` 宏调用,定位 XML mapper 目录 - 支持通过 VS Code 配置项手动指定 mapper 目录 ## 安装 ### 从 .vsix 文件安装 ```bash code --install-extension my-uorm-0.0.1.vsix ``` ### 从源码构建 ```bash cd debug/my-uorm npm install npm run build npx vsce package code --install-extension my-uorm-0.0.1.vsix ``` ## 配置 | 配置项 | 类型 | 默认值 | 说明 | |--------|------|--------|------| | `my-uorm.mapperDirs` | `string[]` | `[]` | 显式指定 mapper XML 目录列表(相对于工作区根目录)。如果设置,将跳过自动发现。 | ### 配置示例 在 `.vscode/settings.json` 中: ```json { "my-uorm.mapperDirs": ["luya-app/resources/mappers"] } ``` 如果不配置此项,插件会自动扫描 Rust 源码中的 `mapper_assets!["..."]` 宏调用来发现 mapper 目录。 ## 工作原理 ### 映射关系 ``` Rust 代码 XML Mapper ───────────── ────────── #[sql("global_provider")] pub struct GlobalProviderDao; ... pub async fn list(...) { exec!() } #[sql("insert")] INSERT INTO ... pub async fn insert(...) { exec!() } } ``` ### 索引构建 1. 插件激活时全量扫描工作区 `.rs` 和 `.xml` 文件 2. 解析 Rust 文件中的 `#[sql("namespace")]` struct 和 `#[sql("id")]` fn 3. 解析 XML 文件中的 `` 和 statement 标签 4. 构建 namespace → statementId 的双向索引 5. 文件修改时增量更新索引 ## 限制 - 不支持 `` 引用跳转 - 不提供 SQL 语法高亮或编辑功能 - 不提供诊断检查 - 不提供自动补全 ## 开发 ```bash # 安装依赖 npm install # 编译 npm run build # 监听模式 npm run watch # 运行测试 npx tsc && node out/test/runTest.js # 打包 npx vsce package ``` ## 技术栈 - TypeScript - VS Code Extension API (1.85+) - esbuild (打包) - Mocha (测试)