用途:修复 UI5 linter 能检测但无法自动修复的 XML 视图与片段问题,这些问题需要理解模块路径与处理函数位置。
主要能力:处理三类规则。no-globals:为全局变量访问(sap、jQuery、应用命名空间)添加 core:require 并使用本地名;no-ambiguous-event-handler:为控制器方法加 . 前缀,或为模块方法添加 core:require;no-deprecated-api:把 template:require 的空格分隔列表改为对象写法。
使用方式:先读取 XML 文件并按规则 ID 解析 linter 错误;为 no-globals 在根元素添加 xmlns:core="sap.ui.core",把点号路径转为斜杠路径,按最近使用控件或最近公共祖先放置 core:require,片段中优先放在实际根控件(如 Dialog)而非 FragmentDefinition;事件处理器按 linter 给出的行列只改该处,加 . 前缀或改用本地别名;template:require 改为对象表示。
绑定规则:formatter 若函数内部使用 this,需追加 .bind($control);factory 与事件处理器一律不加 .bind()。判断函数是否使用 this 需运行 node scripts/verify-this-bind.js audit-fn --file <module.js> --fn <name>,脚本报告 USES_THIS 的必须绑定,NO_THIS 的不得绑定。编辑完成后运行 node scripts/verify-this-bind.js verify-xml --xml-root webapp --js-roots webapp/utils,webapp/model 校验,退出码 0 为通过。
适用场景:UI5 项目 XML 视图/片段中全局引用、事件处理器歧义、旧版 template:require 语法。
限制:仅处理 XML 文件中的问题;JS 应用命名空间全局不在本技能范围。具体安装方式与更多细节暂未提供。