feat(tsl-codegen): support unified API declarations

Add TSF conversion and shared Markdown recognition for mixed
function, class, and unit declarations.

Extend generation, linting, indexing, examples, and tests around
the unified declaration model.
This commit is contained in:
csh
2026-07-29 15:45:50 +08:00
parent bd25835d2d
commit 9edc8fc868
13 changed files with 8438 additions and 310 deletions
+157 -36
View File
@@ -1,39 +1,160 @@
module: 示例 / 数组
path: base/example
module: OfficeXml / OpenXml
path: officexml/openxml/elements
declarations:
- kind: class
name: OpenXmlAttribute
desc: 表示 OpenXml 属性
tags: [OpenXml, XML, 属性]
members:
- kind: method
name: create
visibility: public
binding: instance
signature: create(_prefix, _local_name)
desc: 创建 OpenXml 属性
tags: [OpenXml, 属性, 创建]
params:
- name: _prefix
type: string
desc: 命名空间前缀
- name: _local_name
type: string
desc: 本地名称
functions:
- signature: demoNow()
desc: 返回示例值。
returns: integer
example: |
return demoNow();
// 输出:1
- kind: method
name: CreateVirtual
visibility: public
binding: class
signature: CreateVirtual(position, row_index, _story)
desc: 创建虚段落
params:
- name: position
type: integer
desc: 段落位置
- name: row_index
type: integer
desc: 行索引
- name: _story
type: StoryNode
desc: 故事节点
returns: ParagraphSegment
- signature: demoFn(src, mode, factor, ...)
tags: [示例, 数组]
desc: 按指定模式处理数组并返回结果。
params:
- name: src
type: array
desc: 待处理数组
- name: mode
- kind: property
name: Prefix
visibility: public
desc: 命名空间前缀
type: string
access: readwrite
- kind: property
name: NamespaceUri
visibility: public
desc: 命名空间 URI
access: read
- kind: field
name: value_
visibility: protected
desc: 属性值存储
type: any
- kind: field
name: Count
visibility: public
desc: 属性实例数量
type: integer
desc: 处理模式,取值见下。
values:
- value: 0
desc: 原样返回
- value: 1
desc: 去重
- name: factor
type: float
optional: true
desc: 默认 1.0,结果乘以该系数。
- name: "..."
type: nil|array
optional: true
desc: 需要追加处理的其他数组。
returns: array
example: |
src := array(1, 1, 2);
return demoFn(src, 1, 2.0);
// 输出:array(2,4)
static: true
- kind: constant
name: DefaultPrefix
visibility: public
desc: 默认命名空间前缀
type: string
value: xml
- kind: constant
name: MaximumAttributes
visibility: public
desc: 最大属性数量
type: integer
value: 256
static: true
- kind: function
name: ParseOpenXml
signature: ParseOpenXml(xml)
desc: 解析 OpenXml 文本
tags: [OpenXml, 解析]
params:
- name: xml
type: string
desc: OpenXml 文本
returns: OpenXmlElement
examples:
- desc: 解析根元素
code: |-
xml := '<root/>';
return ParseOpenXml(xml);
- kind: unit
name: OpenXmlRuntime
desc: 提供 OpenXml 运行时接口
tags: [OpenXml, 运行时]
members:
- kind: constant
name: DefaultSize
desc: 默认文档容量
type: integer
value: 100
- kind: variable
name: CurrentDocument
desc: 当前文档
type: Document
- kind: function
name: OpenDocument
signature: OpenDocument(path)
desc: 打开文档
tags: [OpenXml, 文档, 打开]
params:
- name: path
type: string
desc: 文档路径
returns: Document
- kind: class
name: Document
desc: 表示 OpenXml 文档
tags: [OpenXml, 文档]
members:
- kind: method
name: Save
visibility: public
binding: instance
signature: Save(path)
desc: 保存文档
params:
- name: path
type: string
desc: 保存路径
returns: boolean
- kind: method
name: Create
visibility: public
binding: class
signature: Create(name)
desc: 创建文档
params:
- name: name
type: string
desc: 文档名称
returns: Document
- kind: property
name: Title
visibility: public
desc: 文档标题
type: string
access: readwrite