abap2UI5 插头
验证没有 SAP 系统的 abap2UI5 应用类 国家综合倡议、图书馆和 GitHub 动作取自 样本控制,其中,他们 保护生成的 UI5 演示包样本的端口( 有多少个在其中 ) 那个仓库的 状况 —— 说 它每周增长, 和一个数字 写在这里是一个数字去停滞.
它检查一个 整个应用类,而不仅仅是它发出的XML:ABAP源和 它所建的视图被验证在一起。 最重要的缺陷是 生活在两者之间者——其ABAP领域不包含的有约束属性 已存在, 控件从不提供的事件参数—— 且 UI5 工具无法 看他们,因为视图只在运行时存在.
npx @abap2ui5/linter src
这就是它的全部:没有安装,没有SAP系统,没有配置。 ~600 kB 键 并且没有依附关系,所以上面的行是快的.
src/zcl_my_app.clas.abap
36:14 error sap.m.Page has no aggregation contentt - typo? unknown-aggregation
40:22 error sap.m.Button type="Emphasised" is not a valid value (allowed: ...) invalid-property-value
然后,当你想要它保持绿色:
npm install -D @abap2ui5/linter # pin it for CI and for your machine
npx --no-install abap2ui5lint --init # write a commented abap2ui5lint.jsonc
npx --no-install abap2ui5lint src --all-classes # every class: the ones that build no view get the source-side rules
npx --no-install abap2ui5lint src --watch # run, then re-run on every save - the loop for Eclipse ADT + abapGit
npx --no-install abap2ui5lint --explain unknown-control # what a reported id means, with the before/after pair - in the terminal
--no-install 故意: abap2ui5lint 是命令软件包
安装,而不是软件包名称,以及空的 npx abap2ui5lint 运行在哪里
不安装软件包将下载以该名称发布的任何内容
时间npm。 没有安装, 请使用范围 npx @abap2ui5/linter …。 。 。 .
文档
→ 圆柱形,满地都是
两道门和每道门都捕到什么, --screenshot, (中文(简体) ), --fix放弃,
在已有的编码库上通过该编码的基线
文件、 GitHub 动作、 徽章和库 API.
→ 规则参考 每一个规则 id与 解释其含义和存在原因的段落。 身份证印在 发现的结尾是锚.
另外两个切入点:
| 添加渲染门 | npm i -D @abap2ui5/linter-render + 键 npx playwright install chromium - 无头人 XMLView.create 捕捉到一个无法 装入 |
| 启动项目 | 已连接的CLI、配置和工作流程 |
可移植应用程序( opt- in)
Abap2UI5应用在UI5前端运行,无论它写什么. 留着它
可由 非UI5 前端 以及——UI5网络组件前端
(单位:千美元)前端网络组件, (中文(简体) ),
适配出卡制造器、代理设备——要求 portable-app 规则:
// abap2ui5lint.jsonc
{
"rules": { "portable-app": "error" } // or "warning" / "hint"; off by default
}
它报告Abap2UI5协议之外的一切
便携式配置文件 v1数字 :
- 控制及其未列出的成员, z2ui5.cc 自定义控件, 名称
模型和其他约束形式,表达体构造在其语法之外
(单位:千美元)RegExp, (中文(简体) ), odata.*),事件参数,例如 $event前端动作
例如 CONTROL_BY_ID,以及嵌入式取景槽(nest_view_display( )) (中文(简体) ).
每个发现名称的原因 规则卡
全部列出 该简介为协议的逐字记录
profiles/portable-v1.json 内 data/ (它的源头在它的旁边),
刷新过 npm run sync-portable-profile一个类选择退出
" abap2ui5lint-disable portable-app 在它的顶端, 一条道路与规则的
exclude 列表中选择一个选项.
旧目标上无遗留密码
ui5 是您系统运行的释放,一旦被损坏就会报告
在那里是有效的—— 右“ 将这一个休息”, 沉默的"是这个"
遗产。 维持在1.71的应用软件 这样它仍然可以运行在旧系统上
以 SAP 的无后遗症基线衡量,并附带第二个约束:
// abap2ui5lint.jsonc
{
"ui5": "1.71",
"deprecatedAt": "1.136" // or --deprecated-at 1.136
}
一切在目标之后和地平线上被破坏的事物——控制,
他们的地产和事件,以及本地的XHTML/SVG标记——然后是一个
deprecated-after-target
提示替换对象的姓名, 并显示目标是否已经存在
(单位:千美元)sap.m.MessagePage → IllustratedMessage,这需要1.98:保持到
目标移动。 所有其他规则 仍然法官反对 ui5。 。 。 .
它运行的地方
CLI, 一个 GitHub 动作(abap2UI5/linter@v0图书馆——加两个
该图书馆的消费者:
mcp 服务器 暴露这些门是MCP
用于 AI 编码代理工具,以及
VS 代码扩展 显示
输入时作为编辑器诊断结果。 他们都读的一样
abap2ui5lint.jsonc所以编辑、探员和CI都同意.
用于
11个公共仓库 声明 @abap2ui5/linter 在一个明显的地方 GitHub 自己的列表,每月在此刷新一次 :
- abap2UI5-addons/layout-管理
- abap2UI5 -- -- addons/弹出
- abap2UI5-addons/rfc-连接器
- abap2UI5-addons/se16n (中文(简体) )
- abap2UI5-addons/所选屏幕
- abap2UI5-addons/sql-收音机
- abap2UI5 -- -- 添加/表维护
- abap2UI5/abap2UI5 互联网档案馆的存檔,存档日期2013-12-2
- abap2UI5/docs (中文(简体) )
- abap2UI5/样本
- NSSecat/09-26-abap2ui5号卫星
仅a 显示 条目在此计算——这就是 GitHub 的依赖性
图表可见. 运行插件的仓库 npx --yes 或
动作是一个用户,但从未在此列表中出现.
研究此存储库
npm ci
npx playwright install chromium # the render runtime is an npm workspace here
node cli.mjs test/fixtures --no-render # the CLI, from the checkout, over its own fixtures
node cli.mjs ../your-app/src # or over a sibling app (this checkout has no src/)
npm test
AGENTS.md 携带公约和每个大门检查的东西;
CONTRIBUTING.md 财务报告和审定财务报表 RELEASING.md 其余的工作流程.
四件工艺品由 npm test所以一个僵硬的失败了
构建 :
npm run generate-metadata # data/properties.json, from the @openui5 sources
npm run generate-schema # data/abap2ui5lint.schema.json — editor completion
npm run generate-rules-page # site/index.html — the published rule reference
npm run generate-compat # data/compat.json — which abap2UI5 releases this linter line understands (the ./compat export)
另外两台发电机需要网络,所以套房无法再生它们 所承诺的文件是合同; 计划的工作流程将每个更新 打开 diff 的 PR :
npm run generate-icons # data/icons.json — the SAP icon-font snapshot
npm run generate-dependents # the "Used by" list above, from GitHub's dependents page
一个文件是从另一个仓库销售而不是生成的,而且
协议移动时手动刷新( u)npm test 针起它的花序
每周上游同步工作流程报告漂移情况 :
npm run sync-portable-profile # data/portable-v1.json — abap2UI5/protocol's portable profile (-- --local <checkout> to read a clone)
site/ 规则参考文献
https://abap2ui5.github.io/linter/ (中文(简体) )),而不是关于此寄存器的文档.
experimental/github-app/ 是一个尖锐的柱子——一个工作原型,作为iinter的一个
主机为 GitHub App, 保存为恰好执行的文档 。 没错 没有
已部署、未登记、未在npm上发运且未支持交付
频道有CLI,库和Action.
贷项
重建、模拟模型的衍生、利用和财产大门
建造和试验
样本控制
与官方的UI5示范套装设备——其中 scripts/view-gates.mjs
现在消耗这个软件包 取出这些原始的大门.
这个包裹是独立提取的.