当前位置: 首页 > news >正文

IRIS 代码格式化 Skill 使用说明

文章目录

  • IRIS 代码格式化 Skill 使用说明
    • 一、安装方法
      • 方式1:通过 WorkBuddy 安装(推荐)
      • 方式2:通过 OpenClaw/ClawHub 安装
      • 方式3:clawhub 下载
    • 二、使用方法
      • 触发方式
      • 使用示例
    • 代码审查报告
      • 问题汇总
      • 详细问题分析
        • 1. 方法大括号格式问题
        • 2. 运算符空格问题
        • 3. 参数命名问题
        • 4. 条件后置表达式空格问题
        • 5. 字符串拼接字段数超限
        • 6. 方法头注释不规范
      • 修正后完整代码
    • 三、规范速查表
      • 命名规范
      • 命令/函数缩写
      • 格式规范
    • 四、输出说明
      • 审查报告结构

IRIS 代码格式化 Skill 使用说明


一、安装方法

方式1:通过 WorkBuddy 安装(推荐)

  1. iris-code-formatter文件夹复制到 WorkBuddy skills 目录:
    Windows: C:\Users\<用户名>\.workbuddy\skills\

或直接如图直接上传

  1. 重启 WorkBuddy 或重新加载技能

方式2:通过 OpenClaw/ClawHub 安装

npx clawhubinstalliris-code-formatter--workdir<目标路径>--no-input

方式3:clawhub 下载

  • https://clawhub.ai/yaoxin521123/iris-code-formatter

二、使用方法

触发方式

在对话中直接提供 IRIS ObjectScript 代码,Skill 会自动激活并执行代码审查。

触发关键词:

  • “格式化这段IRIS代码”
  • “检查这段代码是否符合规范”
  • “审查ObjectScript代码”
  • “修正代码风格问题”
  • “按照IRIS规范格式化”

使用示例

输入:

Class Util.Encryption.SM3 Extends %RegisteredObject { ClassMethod HMAC(key As %Stream.GlobalCharacter, text As %Stream.GlobalCharacter) { s keyStream=..UTF8(key) s keyPadding=..KeyPadding(keyStream) q ..Str2Hex(hmacByte) } ... } 使用iris-code-formatter技能

输出:

  • 修正前代码

  • 修正后代码


以下是输出内容:



代码审查报告

问题汇总

类别问题严重程度
方法大括号方法大括号应换行显示⚠️ 警告
空格规范运算符两侧缺少空格⚠️ 警告
注释格式方法头注释不规范⚠️ 警告
变量命名参数命名未使用lowerCamelCase⚠️ 警告
条件后置表达式括号内空格使用错误⚠️ 警告
字符串拼接单行字段数超过限制⚠️ 警告

详细问题分析

1. 方法大括号格式问题

位置: 所有方法问题: ObjectScript方法大括号应换行显示

// 错误 ClassMethod OrderDetailGrpExecute(...) As %Status { s repid=$I(^CacheTemp) // 正确 ClassMethod OrderDetailGrpExecute(...) As %Status { s repid = $I(^CacheTemp)
2. 运算符空格问题

位置: 全局问题:=+-等运算符左右应加空格

// 错误 s repid=$I(^CacheTemp) s qHandle=$lb(0,repid,0) s ind=1 // 正确 s repid = $I(^CacheTemp) s qHandle = $lb(0, repid, 0) s ind = 1
3. 参数命名问题

位置: 所有Query参数问题: 参数应使用lowerCamelCase

// 错误 Query OrderDetailGrp(Oeori = "", Oeore = "", DspId = "", ProCode = "") // 正确 Query OrderDetailGrp(oeori = "", oeore = "", dspId = "", proCode = "")
4. 条件后置表达式空格问题

位置: OrderDetailGrpExecute, TimeLineExecute等问题: 括号内部条件运算符两侧有空格,但括号与逻辑运算符之间不应有空格

// 错误 i Oeore'="" s Oeori=$p(Oeore,"||",1,2) e i DspId'="" s Oeori=$p($g(^DHCOEDISQTY(DspId)),"^",1) q:Oeori="" $$$OK // 正确 i (oeore '= "") s oeori = $p(oeore, "||", 1, 2) e i (dspId '= "") s oeori = $p($g(^DHCOEDISQTY(dspId)), "^", 1) q:(oeori = "") $$$OK
5. 字符串拼接字段数超限

位置: 多处问题: 单行字符串拼接超过5个字段

// 错误 s data = $lb(locDesc, qtyWithUom) // 建议保持现状($lb函数本身是内置函数调用)
6. 方法头注释不规范

位置: 所有方法问题: 缺少规范的docstring注释

// 错误 Query OrderDetailGrp(Oeori = "", ...) As websys.Query(...) // 正确 /// Desc: 医嘱明细,注意区分门诊住院 /// Output: 两列属性以及值 /// w ##class(%ResultSet).RunQuery("PHA.COM.Query","OrderDetailGrp","41||77") Query OrderDetailGrp(oeori = "", ...) As websys.Query(...)

修正后完整代码

以下是按照IRIS代码规范修正后的完整代码:

/// Desc: 医嘱明细,注意区分门诊住院 /// Output: 两列属性以及值 /// w ##class(%ResultSet).RunQuery("PHA.COM.Query","OrderDetailGrp","41||77") Query OrderDetailGrp(oeori = "", oeore = "", dspId = "", proCode = "") As websys.Query(ROWSPEC = "group,field1,value1,field2,value2") [ SqlProc ] { } ClassMethod OrderDetailGrpExecute(ByRef qHandle As %Binary, oeori = "", oeore = "", dspId = "", proCode = "") As %Status { s repid = $I(^CacheTemp) s qHandle = $lb(0, repid, 0) s ind = 1 #; 处理入参转换 i (oeore '= "") s oeori = $p(oeore, "||", 1, 2) e i (dspId '= "") s oeori = $p($g(^DHCOEDISQTY(dspId)), "^", 1) q:(oeori = "") $$$OK s ordId = +oeori s ordItm = $p(oeori, "||", 2) s dspId = $o(^DHCOEDISQTY(0, "OEORI", oeori, "")) s admId = $p($g(^OEORD(ordId)), "^", 1) q:(admId = "") $$$OK s patId = $p(^PAADM(admId), "^", 1) s admType = $p(^PAADM(admId), "^", 2) s OEORDI1 = $g(^OEORD(ordId, "I", ordItm, 1)) s OEORDI2 = $g(^OEORD(ordId, "I", ordItm, 2)) s OEORDI3 = $g(^OEORD(ordId, "I", ordItm, 3)) s OEORDI5 = $g(^OEORD(ordId, "I", ordItm, 5)) s OEORDI6 = $g(^OEORD(ordId, "I", ordItm, 6)) s OEORDI9 = $g(^OEORD(ordId, "I", ordItm, 9)) s OEORDI11 = $g(^OEORD(ordId, "I", ordItm, 11)) s OEORDIDHC = $g(^OEORD(ordId, "I", ordItm, "DHC")) ...


三、规范速查表

命名规范

类型规则正确示例错误示例
变量名lowerCamelCasestartDatestartdate
常量全大写MAXCOUNTMaxCount
布尔变量Flag后缀dispFlagisDisp
方法名UpperCamelCaseGetName()getname()
布尔方法Is开头IsExist()GetExistFlag()

命令/函数缩写

类型全拼缩写
命令set/do/quits/d/q
命令for/whilefor/while(全拼)
函数e x t r a c t / extract/extract/piece/$lengthe / e/e/p/$l
函数z c o n v e r t / zconvert/zconvert/zhexz c v t / zcvt/zcvt/zh

格式规范

场景正确错误
运算符空格a = ba=b
后置表达式q:(info = "")q:info=""
多条件后置q:(a = "")&&(b = "")q:(a = "") && (b = "")
else格式} else {}\nelse {

四、输出说明

审查报告结构

## 代码审查报告 ### 问题汇总 - [严重] 问题1描述(行号) - [警告] 问题2描述(行号) ### 详细说明 #### 1. 变量命名问题 **位置**:第X行 **问题**:描述 **规范依据**:引用具体规则 **建议修正**:代码示例 ### 修正后完整代码 ```objectscript // 完整的修正后代码
http://www.jsqmd.com/news/657059/

相关文章:

  • SAP SMARTFORMS打印批次号,如何手动换行才不踩坑?CL_ABAP_CHAR_UTILITIES.CR_LF实战
  • TrafficMonitor插件:让Windows任务栏变身全能信息中心的5个实用技巧
  • Flutter 三方库 dio 的鸿蒙化适配指南:实战文章列表功能
  • 网络工程师转行全攻略:6大高薪方向+实战步骤,建议收藏转发
  • 为什么说企业的效率差距,核心在自动化能力的差距?2026企业数字化转型:实在Agent重塑人机协同新范式
  • 2026届最火的六大AI辅助写作方案推荐
  • 【Gartner实测认证】:3类典型用户故事(User Story)经AI辅助编码后验收通过率提升至91.6%,附可复用的Prompt工程Checklist
  • Translategemma图文翻译模型快速上手:从安装到使用完整指南
  • 官方认证|2026年山东五大正规高中国际部学校 / 高中国际部课程排名,青岛等地格兰德国际部综合实力遥遥领先 - 十大品牌榜
  • 在CentOS 7上为Nginx部署ModSecurity WAF完整教程
  • 手把手教你配置UNIS CD2000国产台式机:从开机BIOS到统信UOS系统安装全流程
  • 你的企业还在靠人工做合规检查?同行已经用 AI 自动预警了 | 实在Agent企业级风险防控方案
  • Windows系统激活终极解决方案:3分钟免费一键激活完整指南
  • 官方认证|2026年山东五大正规中学国际部学校 / 课程排名,格兰德国际部升学实力遥遥领先,青岛等地 - 十大品牌榜
  • 告别FirmAE网络下载失败:手动部署binaries文件夹与国内镜像加速实战
  • BilibiliDown:免费跨平台B站视频下载器终极指南
  • Python 类的定义
  • Spug无Agent自动化运维平台架构解析:面向中小企业的轻量级解决方案
  • 数据结构进入“编译时代”:2026奇点大会实测显示——AI生成B+树查询性能提升3.7倍,但89%团队因忽略这2个约束而回滚
  • 从UE5 Nanite到传统LOD:游戏与仿真领域渲染优化的技术演进与选型思考
  • 3分钟快速上手PlantUML Editor:免费在线UML绘图终极解决方案
  • 从H.264到AV1:看懂显卡规格表里那些视频编码参数,帮你选对剪辑、直播和看片的GPU
  • Wan2.2-I2V-A14B环境隔离部署:使用WSL2在Windows上搭建Linux开发测试环境
  • GPU算力优化实践:Pixel Language Portal在A10/A100上显存占用降低40%的部署调优教程
  • 智能代码生成安全检查不是“锦上添花”,而是GDPR/等保2.0合规刚需:12类自动生成代码的CWE-Top25映射对照表(含自动化检测规则模板)
  • 官方认证|2026年山东五大正规初中国际部学校 / 初中国际部课程排名,青岛等地,格兰德国际部综合实力遥遥领先 - 十大品牌榜
  • 从CT扫描到雷达成像:聊聊BP算法背后的思想与实战应用场景
  • 从零精通Ultimaker Cura:3D打印切片软件实战配置指南
  • 从‘抛硬币’到AB测试:聊聊二项分布在概率性功能测试中的常见误区与正确姿势
  • DRG/DIP 支付改革下医院成本核算系统解决方案梳理 - 业财科技