@phoenix-wing/kt-codegen 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -24,7 +24,10 @@ src/
24
24
  ├── KtCodegenTableCore.ts # 无 DOM 的整表编辑与 checkpoint
25
25
  ├── KtCodegenTableData.ts # 宿主交换的整表 DTO
26
26
  ├── KtCodegenTableColumns.ts # 17列描述与字段类型
27
- └── table/KtCodegenTable.ts # browser-only Web Component
27
+ └── table/
28
+ ├── KtCodegenTableViewModel.ts # 无 DOM 的动作、Combo、列宽与状态投影
29
+ ├── KtCodegenTableStyle.ts # pnw 类名、主题 token 与滚动视觉原语
30
+ └── KtCodegenTable.ts # browser-only Web Component
28
31
  ```
29
32
 
30
33
  规则如下:
@@ -60,6 +63,12 @@ src/
60
63
 
61
64
  旧 Start/End 文本协议、源码偏移和异常配对规则见[《自动代码标记扫描》](doc/自动代码标记扫描.md)。
62
65
 
66
+ Apply 默认保持 fail-closed,但允许一种明确的部分成功:当 Plan 的 error 仅为
67
+ `marker.missing-end` / `marker.orphan-end`,Marker 扫描器已经隔离不完整区域,
68
+ 且其余 Target、Region 与 Artifact 绑定全部有效时,`ktCodegenProjectApply` 只
69
+ 投影这些完整区域。模型、Renderer、Artifact 绑定、指纹、范围或重叠错误仍阻止
70
+ 全部写入。宿主可用 `ktCodegenCanApplyValidRegions(plan)` 展示“可部分应用”状态。
71
+
63
72
  首组已迁移 Renderer 的逐块行为和 golden 见[《普通 C++ 参数块迁移》](doc/普通C++参数块迁移.md)。
64
73
 
65
74
  CAA 实现类/纯虚接口 Get/Set 差异见[《CAA 接口头文件块迁移》](doc/CAA接口头文件块迁移.md)。
@@ -225,20 +234,34 @@ import {
225
234
 
226
235
  ktCodegenDefineTableElement();
227
236
  const table = document.querySelector<KtCodegenTable>("kt-codegen-table")!;
237
+ table.layout = "page";
238
+ table.collapsible = true;
228
239
  table.setData(data);
229
240
 
230
241
  table.addEventListener("kt-codegen-table-change", () => {
231
242
  // 宿主自行选择保存、页面隐藏或防抖时机,再整体取出;不需要逐单元格通信。
232
243
  const next: KtCodegenTableData = table.getData();
233
244
  });
245
+
246
+ table.addEventListener("kt-codegen-table-collapse-change", (event) => {
247
+ // 只响应用户点击;table.collapsed = true 不会回发事件。
248
+ console.log(event.detail.collapsed);
249
+ });
234
250
  ```
235
251
 
236
252
  - `setData()`/`getData()` 交换带 schema 与 `documentRevision` 的整表 DTO;返回值不暴露组件内部可变数组。
237
253
  - Sort、Copy/Paste、Insert、Duplicate、Move、Delete 和列宽自适应属于组件内部操作。
254
+ - 动作可用性、Combo 未知值/空值/分隔项、列宽拟合与状态栏计数由 UI-neutral `KtCodegenTableViewModel.ts` 统一投影;Web Component 只把这些描述装配成 DOM。该文件纳入 pure import graph,不可依赖 DOM、Vue、Node 或宿主 API。
255
+ - Shadow DOM 的 `pnw-kt-codegen-table-*` 类名、VS Code token 回退、工具栏/表格滚动与 sticky 表头由内部 `KtCodegenTableStyle.ts` 单点维护;组件只按 class map 装配。选中行在表格区有焦点时使用 `list.activeSelection*`,焦点移出后切换到 `list.inactiveSelection*`,避免高对比主题继续用 active 背景显示失焦选择。该视觉原语也纳入 pure import graph,但不从 browser 子路径公开导出。
256
+ - `layout="contained"` 是兼容默认值,保留组件高度与内部双向滚动;`layout="page"` 使用自然高度,表格区只保留横向溢出,由 Page shell 负责唯一纵向滚动。空表提示在 page 模式进入文档流,不会被零高度容器裁切。
257
+ - `collapsible` 启用 Header disclosure button,`collapsed` 可由宿主静默反射;只有用户点击会发出 `kt-codegen-table-collapse-change`,程序设置不发 change/dirty/collapse 事件。收起只隐藏 table shell 与 statusbar,全部表格工具仍留在 Header。
258
+ - 本地构建后可用 `test-fixtures/table-runtime.html?layout=page&collapsible` 在浏览器点检真实 Shadow DOM、自然高度、横向滚动、折叠和焦点;追加 `empty`/`collapsed`/`rows=40` 可覆盖空表、初始收起与长表。该夹具不进入 npm `files` 白名单。
238
259
  - `kt-codegen-table-change` 只提示“内部数据变化”;宿主决定何时获取整表。`kt-codegen-table-dirty-change` 只在 clean/dirty 跃迁时发出。
239
260
  - `configure()` 可替换列描述和 Combo 候选;未知旧值仍显示并保持,不会因渲染被清空。
240
261
  - 文件 URI、JSON/CSV、保存冲突、Preflight 编排和 Output/Problems 留在产品宿主;Apply 的纯文本投影、指纹复核和多文件回滚事务复用 `KtCodegenApply`。DeskTools 可直接组合组件或再包一层 Vue wrapper。
241
262
 
263
+ 布局责任、属性反射、事件和无障碍边界见[《KtCodegenTable 布局与折叠契约》](doc/KtCodegenTable布局与折叠契约.md)。
264
+
242
265
  ## 共享 Apply 与宿主边界
243
266
 
244
267
  `KtCodegenApply.ts` 把原先散落在产品宿主中的无 UI 算法集中为三组 API:
@@ -253,7 +276,7 @@ Wing 不选择工作区、不弹窗、不发布 Problems、不决定源码编码
253
276
 
254
277
  宿主在解释序列化 Analyze Plan 前必须调用 `ktCodegenCheckPlanCompatibility()`。当前只接受 `kind: "kt.codegen.plan"`、`schemaVersion: 1`;未知未来版本返回 `contract.unsupported-schema-version`,不能由宿主按字段猜测兼容。
255
278
 
256
- `@phoenix-wing/kt-codegen/fixtures/codegen-host-contract-v1.json` 是 Analyze、marker、legacy v4 JSON 与 17 列 CSV 的联合 golden;它冻结参数归一化、Marker 字节偏移、Renderer 身份、Artifact 内容哈希和版本拒绝结果。`apply-projection-v1.json` 独立冻结 Apply 的 CRLF 投影、审计顺序、冲突码与最终 UTF-8 字节。Auto Code 与 Desk Tools 只保存字节一致的消费副本并调用本包 API,不复制协议解释。
279
+ `@phoenix-wing/kt-codegen/fixtures/codegen-host-contract-v1.json` 是 Analyze、marker、legacy v4 JSON 与 17 列 CSV 的联合 golden;它冻结参数归一化、Marker 字节偏移、Renderer 身份、Artifact 内容哈希和版本拒绝结果。`apply-projection-v1.json` 独立冻结 Apply 的 CRLF 投影、审计顺序、冲突码与最终 UTF-8 字节。Auto Code 与 Desk Tools 直接导入 Registry 包中的同一 fixture 并调用本包 API,不保存副本,也不复制协议解释。
257
280
 
258
281
  fixtures 的 `schemaVersion` 是测试 bundle 版本,Analyze Plan 的 `schemaVersion` 是运行时 envelope 版本,两者都独立于 npm 包版本。变更任一公开语义时,必须新增版本或提供兼容判定,不能静默覆盖既有 v1 golden。
259
282
 
@@ -312,7 +335,7 @@ const committed = await ktCodegenCommitApplyWrites(filePort, encodedWrites);
312
335
  - 32个 block 的 VB 调用、源码位置、主目标和废弃状态迁移矩阵;
313
336
  - 第一组默认值、类型和列表核心 helper;
314
337
  - 旧 Kevin Start/End 标记构造、只读扫描和精确替换偏移;
315
- - 标记孤立、缺失、嵌套、错配和未知 block 诊断;
338
+ - 标记孤立、缺失和错配诊断、未知 block 透传,并在下一个语法完整 Start 恢复扫描;
316
339
  - 标记区域进入 Analyze Plan;
317
340
  - 普通 C++ Parameter 的构造、声明、析构和赋值四块 Renderer;
318
341
  - CAA 实现类与纯虚接口的 Get/Set 四块 Renderer;
@@ -69,6 +69,15 @@ export type KtCodegenApplyCommitResult<TTarget> = {
69
69
  readonly error: unknown;
70
70
  readonly rollbackFailures: readonly TTarget[];
71
71
  };
72
+ /**
73
+ * 判断计划是否可安全写入其中已经形成完整 Region/Artifact 绑定的部分。
74
+ *
75
+ * `plan.canApply` 仍表示“整份计划无 error”。缺失或孤立 Marker 会让该值为
76
+ * false,但 Marker 扫描器已经隔离这些不完整区域;只要其余 Target 全部 ready、
77
+ * Artifact 都绑定到完整 Region,就允许 Apply 这些已验证区域。其他模型、Renderer
78
+ * 或 Artifact 错误仍保持 fail-closed。
79
+ */
80
+ export declare function ktCodegenCanApplyValidRegions(plan: KtCodegenPlan): boolean;
72
81
  /**
73
82
  * 汇总计划中的 Target、控制符区域和 Artifact 绑定关系。
74
83
  *
@@ -1 +1 @@
1
- {"version":3,"file":"KtCodegenApply.d.ts","sourceRoot":"","sources":["../src/KtCodegenApply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KtCodegenApply.d.ts","sourceRoot":"","sources":["../src/KtCodegenApply.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,33 @@ function ktCodegenApplyDiagnostic(code, message, file, row) {
15
15
  ...(file ? { path: { source: "source", file, row: row ?? 0, column: 0 } } : {}),
16
16
  };
17
17
  }
18
+ const KT_CODEGEN_RECOVERABLE_PARTIAL_APPLY_DIAGNOSTICS = new Set([
19
+ "marker.missing-end",
20
+ "marker.orphan-end",
21
+ ]);
22
+ /**
23
+ * 判断计划是否可安全写入其中已经形成完整 Region/Artifact 绑定的部分。
24
+ *
25
+ * `plan.canApply` 仍表示“整份计划无 error”。缺失或孤立 Marker 会让该值为
26
+ * false,但 Marker 扫描器已经隔离这些不完整区域;只要其余 Target 全部 ready、
27
+ * Artifact 都绑定到完整 Region,就允许 Apply 这些已验证区域。其他模型、Renderer
28
+ * 或 Artifact 错误仍保持 fail-closed。
29
+ */
30
+ export function ktCodegenCanApplyValidRegions(plan) {
31
+ if (plan.canApply)
32
+ return true;
33
+ if (!plan.targets.length || plan.targets.some((target) => target.status !== "ready"))
34
+ return false;
35
+ if (!plan.artifacts.length)
36
+ return false;
37
+ const regionIds = new Set(plan.markerRegions.map((region) => region.id));
38
+ if (plan.artifacts.some((artifact) => !regionIds.has(artifact.regionId)))
39
+ return false;
40
+ return plan.diagnostics
41
+ .filter((diagnostic) => diagnostic.severity === "error")
42
+ .every((diagnostic) => (diagnostic.path?.source === "source"
43
+ && KT_CODEGEN_RECOVERABLE_PARTIAL_APPLY_DIAGNOSTICS.has(diagnostic.code)));
44
+ }
18
45
  /**
19
46
  * 汇总计划中的 Target、控制符区域和 Artifact 绑定关系。
20
47
  *
@@ -61,10 +88,10 @@ export function ktCodegenNormalizeGeneratedEol(text, eol) {
61
88
  * 本函数不访问文件系统,也不修改传入的计划或源码快照。
62
89
  */
63
90
  export function ktCodegenProjectApply(plan, sources) {
64
- if (!plan.canApply) {
91
+ if (!ktCodegenCanApplyValidRegions(plan)) {
65
92
  return {
66
93
  changes: [],
67
- diagnostics: [ktCodegenApplyDiagnostic("apply.plan-not-applicable", "当前预检计划包含错误或没有可应用的生成产物。")],
94
+ diagnostics: [ktCodegenApplyDiagnostic("apply.plan-not-applicable", "当前预检计划没有可安全隔离应用的生成产物。")],
68
95
  };
69
96
  }
70
97
  const diagnostics = [];
@@ -1 +1 @@
1
- {"version":3,"file":"KtCodegenApply.js","sourceRoot":"","sources":["../src/KtCodegenApply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KtCodegenApply.js","sourceRoot":"","sources":["../src/KtCodegenApply.ts"],"names":[],"mappings":"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"}
@@ -62,9 +62,9 @@ export interface KtCodegenMarkerRegion {
62
62
  }
63
63
  /** 一次只读源码标记扫描的结果。 */
64
64
  export interface KtCodegenMarkerScanResult {
65
- /** 结构完整且没有嵌套或错配风险的标记区域。 */
65
+ /** 结构完整且没有错配风险的标记区域。 */
66
66
  readonly regions: readonly KtCodegenMarkerRegion[];
67
- /** 孤立、缺失、嵌套、错配或格式异常标记的结构化诊断。 */
67
+ /** 孤立、缺失、错配或格式异常标记的结构化诊断。 */
68
68
  readonly diagnostics: readonly KtCodegenDiagnostic[];
69
69
  }
70
70
  /**
@@ -72,7 +72,8 @@ export interface KtCodegenMarkerScanResult {
72
72
  *
73
73
  * 本类复现 `KevinCAAFileGuide` 的 `START/END KEVIN CAA WIZARD SECTION`
74
74
  * 文本协议和缩进提取规则,但不生成业务代码、不修改源码,也不写文件。
75
- * 对旧实现会静默吞掉的嵌套、错配和孤立标记,本类返回明确 error 诊断。
75
+ * 控制块严格同级、不允许嵌套;对旧实现会静默吞掉的缺失、错配和孤立标记,
76
+ * 本类返回明确 error 诊断并在下一处语法完整的 Start 恢复扫描。
76
77
  */
77
78
  export declare class KtCodegenMarker {
78
79
  /** 根据共享参数和后缀创建旧标记使用的类身份。 */
@@ -98,6 +99,10 @@ export declare class KtCodegenMarker {
98
99
  scan(param: KtCodegenParam, snapshot: KtCodegenSnapshot, blockKeys?: readonly KtCodegenBlockKey[]): KtCodegenMarkerScanResult;
99
100
  /** 顺序扫描单个文件,并保持旧实现一次只处理一个打开块的基本模型。 */
100
101
  private scanFile;
102
+ /** 在旧 Start 位置报告其直到下一条完整 marker 仍未闭合。 */
103
+ private missingEndDiagnostic;
104
+ /** 把没有可闭合 open 的已选 End 作为独立错误定位。 */
105
+ private orphanEndDiagnostic;
101
106
  /** 将文件文本拆成保留精确绝对偏移的逻辑行。 */
102
107
  private splitLines;
103
108
  /** 解析单行中的旧标记;普通源码行返回空结果。 */
@@ -1 +1 @@
1
- {"version":3,"file":"KtCodegenMarker.d.ts","sourceRoot":"","sources":["../src/KtCodegenMarker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KtCodegenMarker.d.ts","sourceRoot":"","sources":["../src/KtCodegenMarker.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@ function isArchivedBlockKey(value) {
10
10
  *
11
11
  * 本类复现 `KevinCAAFileGuide` 的 `START/END KEVIN CAA WIZARD SECTION`
12
12
  * 文本协议和缩进提取规则,但不生成业务代码、不修改源码,也不写文件。
13
- * 对旧实现会静默吞掉的嵌套、错配和孤立标记,本类返回明确 error 诊断。
13
+ * 控制块严格同级、不允许嵌套;对旧实现会静默吞掉的缺失、错配和孤立标记,
14
+ * 本类返回明确 error 诊断并在下一处语法完整的 Start 恢复扫描。
14
15
  */
15
16
  export class KtCodegenMarker {
16
17
  /** 根据共享参数和后缀创建旧标记使用的类身份。 */
@@ -66,74 +67,96 @@ export class KtCodegenMarker {
66
67
  }
67
68
  if (!parsed.marker)
68
69
  continue;
69
- if (!isArchivedBlockKey(parsed.marker.blockKey) ||
70
- !requestedBlocks.has(parsed.marker.blockKey)) {
71
- if (open) {
72
- diagnostics.push(this.sourceDiagnostic(parsed.marker.kind === "start"
73
- ? "marker.nested-start"
74
- : "marker.mismatched-end", "error", `${parsed.marker.kind === "start" ? "Start" : "End"} marker ${parsed.marker.classId} ${parsed.marker.blockKey} appears inside the open ${open.marker.classId} ${open.marker.blockKey} region.`, file.path, line.number, parsed.marker.column));
75
- open.invalid = true;
70
+ let marker = null;
71
+ if (isArchivedBlockKey(parsed.marker.blockKey) &&
72
+ requestedBlocks.has(parsed.marker.blockKey)) {
73
+ const nameSuffix = expectedClassIds.get(parsed.marker.classId);
74
+ if (nameSuffix !== undefined) {
75
+ const knownMarker = {
76
+ ...parsed.marker,
77
+ blockKey: parsed.marker.blockKey,
78
+ };
79
+ marker = this.toMarkerPoint(file.path, knownMarker, nameSuffix);
76
80
  }
77
- continue;
78
81
  }
79
- const nameSuffix = expectedClassIds.get(parsed.marker.classId);
80
- if (nameSuffix === undefined) {
81
- if (open && parsed.marker.kind === "start") {
82
- diagnostics.push(this.sourceDiagnostic("marker.nested-start", "error", `A foreign Start marker appears before ${open.marker.classId} ${open.marker.blockKey} is closed.`, file.path, line.number, parsed.marker.column));
83
- open.invalid = true;
82
+ // Kevin 控制块严格同级、不允许嵌套。任何下一条语法完整 marker 都是当前
83
+ // 打开块的边界;只有身份完全匹配的 End 能闭合它。Start 或错配 End 都先
84
+ // 终止旧状态,避免一个手误向文件后部级联出 nested/mismatched 诊断。
85
+ if (open) {
86
+ if (parsed.marker.kind === "start") {
87
+ diagnostics.push(this.missingEndDiagnostic(file.path, open, parsed.marker));
88
+ open = null;
84
89
  }
85
- else if (open && parsed.marker.kind === "end") {
86
- diagnostics.push(this.sourceDiagnostic("marker.mismatched-end", "error", `End marker ${parsed.marker.classId} ${parsed.marker.blockKey} does not close ${open.marker.classId} ${open.marker.blockKey}.`, file.path, line.number, parsed.marker.column));
87
- open.invalid = true;
90
+ else if (!marker ||
91
+ open.marker.classId !== marker.classId ||
92
+ open.marker.blockKey !== marker.blockKey) {
93
+ diagnostics.push(this.missingEndDiagnostic(file.path, open, parsed.marker));
94
+ open = null;
95
+ if (marker)
96
+ diagnostics.push(this.orphanEndDiagnostic(marker));
97
+ continue;
88
98
  }
89
- continue;
90
- }
91
- const knownMarker = {
92
- ...parsed.marker,
93
- blockKey: parsed.marker.blockKey,
94
- };
95
- const marker = this.toMarkerPoint(file.path, knownMarker, nameSuffix);
96
- if (marker.kind === "start") {
97
- if (open) {
98
- diagnostics.push(this.sourceDiagnostic("marker.nested-start", "error", `Start marker ${marker.classId} ${marker.blockKey} appears before ${open.marker.classId} ${open.marker.blockKey} is closed.`, file.path, marker.line, marker.column));
99
- open.invalid = true;
99
+ else {
100
+ if (!open.invalid) {
101
+ regions.push({
102
+ id: `${file.path}:${open.marker.lineStartOffset}:${marker.lineEndOffset}`,
103
+ path: file.path,
104
+ sourceFingerprint: file.fingerprint,
105
+ classId: marker.classId,
106
+ nameSuffix: marker.nameSuffix,
107
+ blockKey: marker.blockKey,
108
+ start: open.marker,
109
+ end: marker,
110
+ bodyStartOffset: open.marker.lineEndOffset,
111
+ bodyEndOffset: marker.lineStartOffset,
112
+ replaceStartOffset: open.marker.lineStartOffset,
113
+ replaceEndOffset: marker.lineEndOffset,
114
+ });
115
+ }
116
+ open = null;
100
117
  continue;
101
118
  }
102
- open = { marker, invalid: false };
103
- continue;
104
- }
105
- if (!open) {
106
- diagnostics.push(this.sourceDiagnostic("marker.orphan-end", "error", `End marker ${marker.classId} ${marker.blockKey} has no preceding Start marker.`, file.path, marker.line, marker.column));
107
- continue;
108
119
  }
109
- if (open.marker.classId !== marker.classId ||
110
- open.marker.blockKey !== marker.blockKey) {
111
- diagnostics.push(this.sourceDiagnostic("marker.mismatched-end", "error", `End marker ${marker.classId} ${marker.blockKey} does not close ${open.marker.classId} ${open.marker.blockKey}.`, file.path, marker.line, marker.column));
112
- open.invalid = true;
120
+ // 未请求 block 和其他类的 marker 也能切断旧 open,但其自身保持静默,
121
+ // 避免一次局部扫描把未选择的正常控制块误报为孤立标记。
122
+ if (!marker)
113
123
  continue;
124
+ if (marker.kind === "start") {
125
+ open = { marker, invalid: false };
114
126
  }
115
- if (!open.invalid) {
116
- regions.push({
117
- id: `${file.path}:${open.marker.lineStartOffset}:${marker.lineEndOffset}`,
118
- path: file.path,
119
- sourceFingerprint: file.fingerprint,
120
- classId: marker.classId,
121
- nameSuffix: marker.nameSuffix,
122
- blockKey: marker.blockKey,
123
- start: open.marker,
124
- end: marker,
125
- bodyStartOffset: open.marker.lineEndOffset,
126
- bodyEndOffset: marker.lineStartOffset,
127
- replaceStartOffset: open.marker.lineStartOffset,
128
- replaceEndOffset: marker.lineEndOffset,
129
- });
127
+ else {
128
+ diagnostics.push(this.orphanEndDiagnostic(marker));
130
129
  }
131
- open = null;
132
130
  }
133
131
  if (open) {
134
- diagnostics.push(this.sourceDiagnostic("marker.missing-end", "error", `Start marker ${open.marker.classId} ${open.marker.blockKey} has no matching End marker.`, file.path, open.marker.line, open.marker.column));
132
+ diagnostics.push(this.sourceDiagnostic("marker.missing-end", "error", `Start marker ${open.marker.classId} ${open.marker.blockKey} has no matching End marker.`, file.path, open.marker.line, open.marker.column, {
133
+ kind: open.marker.kind,
134
+ classId: open.marker.classId,
135
+ blockKey: open.marker.blockKey,
136
+ }));
135
137
  }
136
138
  }
139
+ /** 在旧 Start 位置报告其直到下一条完整 marker 仍未闭合。 */
140
+ missingEndDiagnostic(path, open, boundary) {
141
+ const boundaryKind = boundary.kind === "start" ? "Start" : "End";
142
+ return this.sourceDiagnostic("marker.missing-end", "error", `Start marker ${open.marker.classId} ${open.marker.blockKey} has no matching End marker before ${boundaryKind} marker at line ${boundary.line.number + 1}.`, path, open.marker.line, open.marker.column, {
143
+ kind: open.marker.kind,
144
+ classId: open.marker.classId,
145
+ blockKey: open.marker.blockKey,
146
+ boundary: {
147
+ kind: boundary.kind,
148
+ line: boundary.line.number + 1,
149
+ },
150
+ });
151
+ }
152
+ /** 把没有可闭合 open 的已选 End 作为独立错误定位。 */
153
+ orphanEndDiagnostic(marker) {
154
+ return this.sourceDiagnostic("marker.orphan-end", "error", `End marker ${marker.classId} ${marker.blockKey} has no preceding Start marker.`, marker.path, marker.line, marker.column, {
155
+ kind: marker.kind,
156
+ classId: marker.classId,
157
+ blockKey: marker.blockKey,
158
+ });
159
+ }
137
160
  /** 将文件文本拆成保留精确绝对偏移的逻辑行。 */
138
161
  splitLines(text) {
139
162
  const lines = [];
@@ -234,12 +257,13 @@ export class KtCodegenMarker {
234
257
  };
235
258
  }
236
259
  /** 创建带文件、行、列定位的源码诊断。 */
237
- sourceDiagnostic(code, severity, message, file, row, column) {
260
+ sourceDiagnostic(code, severity, message, file, row, column, marker) {
238
261
  return {
239
262
  code,
240
263
  severity,
241
264
  message,
242
265
  path: { source: "source", file, row, column },
266
+ ...(marker ? { marker } : {}),
243
267
  };
244
268
  }
245
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KtCodegenMarker.js","sourceRoot":"","sources":["../src/KtCodegenMarker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KtCodegenMarker.js","sourceRoot":"","sources":["../src/KtCodegenMarker.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,22 @@ export interface KtCodegenDiagnosticPath {
13
13
  /** 相关模型字段、请求字段或生成目标。 */
14
14
  readonly field?: string;
15
15
  }
16
+ /** 源码 marker 诊断对应的结构化控制符身份。 */
17
+ export interface KtCodegenDiagnosticMarker {
18
+ /** 诊断所定位控制符的开始或结束种类。 */
19
+ readonly kind: "start" | "end";
20
+ /** `NamePrefix + NameMiddle + NameSuffix` 组成的旧类身份。 */
21
+ readonly classId: string;
22
+ /** 控制符协议中的稳定块 key。 */
23
+ readonly blockKey: string;
24
+ /** 未闭合 Start 被下一条完整控制符截断时的边界。 */
25
+ readonly boundary?: {
26
+ /** 截断边界是下一条 Start 还是 End。 */
27
+ readonly kind: "start" | "end";
28
+ /** 截断边界在源码中的 1-based 行号。 */
29
+ readonly line: number;
30
+ };
31
+ }
16
32
  /** 参数读取、校验或生成过程中产生的稳定诊断。 */
17
33
  export interface KtCodegenDiagnostic {
18
34
  /** 可供测试、UI 和自动化判断使用的稳定诊断代码。 */
@@ -23,6 +39,8 @@ export interface KtCodegenDiagnostic {
23
39
  readonly message: string;
24
40
  /** 可选的结构化定位信息。 */
25
41
  readonly path?: KtCodegenDiagnosticPath;
42
+ /** 可选的源码控制符上下文;消费者无需解析 message 即可定位对应 block。 */
43
+ readonly marker?: KtCodegenDiagnosticMarker;
26
44
  }
27
45
  /** Reader、Adapter 等数据边界统一使用的结果结构。 */
28
46
  export interface KtCodegenDataResult<T> {
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../../src/model/diagnostic.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,MAAM,MAAM,2BAA2B,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvE,4BAA4B;AAC5B,MAAM,WAAW,uBAAuB;IACtC,cAAc;IACd,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAClE,qBAAqB;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe;IACf,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,4BAA4B;AAC5B,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,oBAAoB;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,uBAAuB,CAAC;CACzC;AAED,qCAAqC;AACrC,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACzB,oBAAoB;IACpB,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACtD;AAED,6BAA6B;AAC7B,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,SAAS,mBAAmB,EAAE,GAC1C,OAAO,CAET"}
1
+ {"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../../src/model/diagnostic.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,MAAM,MAAM,2BAA2B,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvE,4BAA4B;AAC5B,MAAM,WAAW,uBAAuB;IACtC,cAAc;IACd,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAClE,qBAAqB;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe;IACf,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,+BAA+B;AAC/B,MAAM,WAAW,yBAAyB;IACxC,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,6BAA6B;QAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;QAC/B,4BAA4B;QAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,4BAA4B;AAC5B,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,oBAAoB;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,uBAAuB,CAAC;IACxC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC;CAC7C;AAED,qCAAqC;AACrC,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACzB,oBAAoB;IACpB,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACtD;AAED,6BAA6B;AAC7B,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,SAAS,mBAAmB,EAAE,GAC1C,OAAO,CAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/model/diagnostic.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAyCtC,6BAA6B;AAC7B,MAAM,UAAU,4BAA4B,CAC1C,WAA2C;IAE3C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/model/diagnostic.ts"],"names":[],"mappings":"AAAA,sCAAsC;AA4DtC,6BAA6B;AAC7B,MAAM,UAAU,4BAA4B,CAC1C,WAA2C;IAE3C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;AAC3E,CAAC"}
@@ -1,13 +1,9 @@
1
1
  import { type KtCodegenTableColumn } from "../KtCodegenTableColumns.js";
2
2
  import type { KtCodegenTableData } from "../KtCodegenTableData.js";
3
+ import { type KtCodegenTableLayout, type KtCodegenTableOptions } from "./KtCodegenTableViewModel.js";
4
+ export type { KtCodegenTableLayout, KtCodegenTableOptions, } from "./KtCodegenTableViewModel.js";
3
5
  /** 默认 Web Component 标签名。 */
4
6
  export declare const KT_CODEGEN_TABLE_TAG_NAME = "kt-codegen-table";
5
- /** 表格 Combo 候选项;未知当前值始终会额外保留。 */
6
- export interface KtCodegenTableOptions {
7
- readonly tcKind: readonly string[];
8
- readonly catAttrInOut: readonly string[];
9
- readonly component: readonly string[];
10
- }
11
7
  /** 表格可替换的列和候选项配置。 */
12
8
  export interface KtCodegenTableConfiguration {
13
9
  readonly columns: readonly KtCodegenTableColumn[];
@@ -24,6 +20,10 @@ export interface KtCodegenTableChangeDetail {
24
20
  readonly documentRevision: number;
25
21
  readonly itemCount: number;
26
22
  }
23
+ /** 用户通过 Header disclosure button 改变折叠状态。 */
24
+ export interface KtCodegenTableCollapseChangeDetail {
25
+ readonly collapsed: boolean;
26
+ }
27
27
  export type KtCodegenTableStatus = "idle" | "saving" | "saved" | "error";
28
28
  /**
29
29
  * 独立的 Codegen 17列表格 Web Component。
@@ -32,6 +32,7 @@ export type KtCodegenTableStatus = "idle" | "saving" | "saved" | "error";
32
32
  * 交换整表,只在 clean/dirty 状态跃迁时接收 kt-codegen-table-dirty-change。
33
33
  */
34
34
  export declare class KtCodegenTable extends HTMLElement {
35
+ static get observedAttributes(): readonly string[];
35
36
  private readonly param;
36
37
  private readonly core;
37
38
  private readonly root;
@@ -40,6 +41,16 @@ export declare class KtCodegenTable extends HTMLElement {
40
41
  private options;
41
42
  constructor();
42
43
  connectedCallback(): void;
44
+ attributeChangedCallback(name: string, _oldValue: string | null, newValue: string | null): void;
45
+ /** contained 为组件内双向滚动;page 为页面自然高度和表格横向滚动。 */
46
+ get layout(): KtCodegenTableLayout;
47
+ set layout(value: KtCodegenTableLayout);
48
+ /** 是否允许用户通过 Header button 展开/收起。 */
49
+ get collapsible(): boolean;
50
+ set collapsible(value: boolean);
51
+ /** 宿主可静默控制的折叠偏好;只有 collapsible 同时存在时才隐藏内容。 */
52
+ get collapsed(): boolean;
53
+ set collapsed(value: boolean);
43
54
  configure(configuration: Partial<KtCodegenTableConfiguration>): void;
44
55
  setData(data: KtCodegenTableData): void;
45
56
  getData(): KtCodegenTableData;
@@ -55,6 +66,8 @@ export declare class KtCodegenTable extends HTMLElement {
55
66
  private changeCell;
56
67
  private selectRow;
57
68
  private handleAction;
69
+ private handleCollapseToggle;
70
+ private syncDisclosure;
58
71
  private syncSelection;
59
72
  private syncActions;
60
73
  /** 轻量复现 Qt resizeColumnsToContents;只改变组件布局,不修改表格数据。 */
@@ -71,5 +84,10 @@ declare global {
71
84
  interface HTMLElementTagNameMap {
72
85
  "kt-codegen-table": KtCodegenTable;
73
86
  }
87
+ interface HTMLElementEventMap {
88
+ "kt-codegen-table-change": CustomEvent<KtCodegenTableChangeDetail>;
89
+ "kt-codegen-table-collapse-change": CustomEvent<KtCodegenTableCollapseChangeDetail>;
90
+ "kt-codegen-table-dirty-change": CustomEvent<KtCodegenTableDirtyChangeDetail>;
91
+ }
74
92
  }
75
93
  //# sourceMappingURL=KtCodegenTable.d.ts.map