✨ 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:
@@ -1,53 +1,213 @@
|
||||
{
|
||||
"module": "示例 / 数组",
|
||||
"path": "base/example",
|
||||
"functions": [
|
||||
"module": "OfficeXml / OpenXml",
|
||||
"path": "officexml/openxml/elements",
|
||||
"declarations": [
|
||||
{
|
||||
"signature": "demoNow()",
|
||||
"desc": "返回示例值。",
|
||||
"returns": "integer",
|
||||
"example": "return demoNow();\n// 输出:1"
|
||||
},
|
||||
{
|
||||
"signature": "demoFn(src, mode, factor, ...)",
|
||||
"tags": ["示例", "数组"],
|
||||
"desc": "按指定模式处理数组并返回结果。",
|
||||
"params": [
|
||||
"kind": "class",
|
||||
"name": "OpenXmlAttribute",
|
||||
"desc": "表示 OpenXml 属性",
|
||||
"tags": ["OpenXml", "XML", "属性"],
|
||||
"members": [
|
||||
{
|
||||
"name": "src",
|
||||
"type": "array",
|
||||
"desc": "待处理数组"
|
||||
},
|
||||
{
|
||||
"name": "mode",
|
||||
"type": "integer",
|
||||
"desc": "处理模式,取值见下。",
|
||||
"values": [
|
||||
"kind": "method",
|
||||
"name": "create",
|
||||
"visibility": "public",
|
||||
"binding": "instance",
|
||||
"signature": "create(_prefix, _local_name)",
|
||||
"desc": "创建 OpenXml 属性",
|
||||
"tags": ["OpenXml", "属性", "创建"],
|
||||
"params": [
|
||||
{
|
||||
"value": 0,
|
||||
"desc": "原样返回"
|
||||
"name": "_prefix",
|
||||
"type": "string",
|
||||
"desc": "命名空间前缀"
|
||||
},
|
||||
{
|
||||
"value": 1,
|
||||
"desc": "去重"
|
||||
"name": "_local_name",
|
||||
"type": "string",
|
||||
"desc": "本地名称"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "factor",
|
||||
"type": "float",
|
||||
"optional": true,
|
||||
"desc": "默认 1.0,结果乘以该系数。"
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"name": "...",
|
||||
"type": "nil|array",
|
||||
"optional": true,
|
||||
"desc": "需要追加处理的其他数组。"
|
||||
"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",
|
||||
"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": "array",
|
||||
"example": "src := array(1, 1, 2);\nreturn demoFn(src, 1, 2.0);\n// 输出:array(2,4)"
|
||||
"returns": "OpenXmlElement",
|
||||
"examples": [
|
||||
{
|
||||
"desc": "解析根元素",
|
||||
"code": "xml := '<root/>';\nreturn 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user