DslContext | 首页
完整导出参考。各导出的详细文档请点击链接前往对应 wiki 页面。
| 导出 |
签名 |
说明 |
详情 |
| parseRichText |
(text: string, options?: ParseOptions) => TextToken[] |
将 DSL 文本解析为 token 树 |
API 参考 |
| stripRichText |
(text: string, options?: ParseOptions) => string |
解析并展平为纯文本 |
API 参考 |
| createParser |
(defaults: ParseOptions) => Parser |
带有预填选项的可复用解析器 |
API 参考 |
| parseStructural |
(text: string, options?: StructuralParseOptions) => StructuralNode[] |
保留形式的结构化树 |
API 参考 |
| printStructural |
(nodes: StructuralNode[], options?: PrintOptions) => string |
将结构化树序列化为 DSL |
API 参考 |
| buildZones |
(nodes: readonly StructuralNode[]) => Zone[] |
将结构化节点分组为连续 zone |
API 参考 |
parseIncremental、createIncrementalSession 是稳定的公开增量 API。
运行时启发式/性能调优仍可能继续演进;版本升级时请关注 版本语义说明。
| 导出 |
签名 |
说明 |
详情 |
| parseIncremental |
(source: string, options?: IncrementalParseOptions) => IncrementalDocument |
构建增量 structural 快照 |
增量解析 |
| createIncrementalSession |
(source: string, options?: IncrementalParseOptions, sessionOptions?: IncrementalSessionOptions) => { getDocument: () => IncrementalDocument; applyEdit: (...) => IncrementalSessionApplyResult; applyEditWithDiff: (...) => IncrementalSessionApplyWithDiffResult; rebuild: (...) => IncrementalDocument } |
会话级增量 API(自动回退 + 结构化 diff + 自适应策略) |
增量解析 |
| 导出 |
签名 |
说明 |
详情 |
| DEFAULT_SYNTAX |
SyntaxInput |
内置语法 token |
自定义语法 |
| createEasySyntax |
(overrides?: Partial<SyntaxInput> & { closeMiddle?: string }) => SyntaxConfig |
自动派生构建器 |
自定义语法 |
| createSyntax |
(overrides?: Partial<SyntaxInput>) => SyntaxConfig |
纯合并构建器 |
自定义语法 |
| DEFAULT_TAG_NAME |
TagNameConfig |
内置标签名规则 |
自定义标签名字符 |
| createTagNameConfig |
(overrides?: Partial<TagNameConfig>) => TagNameConfig |
标签名配置构建器 |
自定义标签名字符 |
| createEasyStableId |
(options?: EasyStableIdOptions) => CreateId |
基于内容的稳定 ID |
稳定 Token ID |
| 导出 |
签名 |
说明 |
详情 |
| createPassthroughTags |
(names: string[]) => Record<string, TagHandler> |
旧的直通标签辅助函数(已弃用) |
处理器辅助函数 |
| createPipeHandlers |
(definitions: Record<string, PipeHandlerDefinition>) => Record<string, TagHandler> |
管道感知的多形式构建器 |
处理器辅助函数 |
| createPipeBlockHandlers |
(names: string[]) => Record<string, TagHandler> |
createPipeHandlers 的 block 简写(已弃用) |
处理器辅助函数 |
| createPipeRawHandlers |
(names: string[]) => Record<string, TagHandler> |
createPipeHandlers 的 raw 简写(已弃用) |
处理器辅助函数 |
| createSimpleInlineHandlers |
(names: string[]) => Record<string, TagHandler> |
批量 inline handler |
处理器辅助函数 |
| createSimpleBlockHandlers |
(names: string[]) => Record<string, TagHandler> |
批量 block handler |
处理器辅助函数 |
| createSimpleRawHandlers |
(names: string[]) => Record<string, TagHandler> |
批量 raw handler |
处理器辅助函数 |
| declareMultilineTags |
(names: BlockTagInput[]) => BlockTagInput[] |
声明多行规范化 |
处理器辅助函数 |
| 导出 |
签名 |
说明 |
详情 |
| parsePipeArgs |
(tokens: TextToken[], ctx?: DslContext) => PipeArgs |
按管道分割 token |
处理器工具函数 |
| parsePipeTextArgs |
(text: string, ctx?: DslContext) => PipeArgs |
按管道分割文本 |
处理器工具函数 |
| parsePipeTextList |
(text: string, ctx?: DslContext) => string[] |
分割文本为字符串数组 |
处理器工具函数 |
| extractText |
(input?: TextToken | TextToken[]) => string |
递归纯文本提取 |
处理器工具函数 |
| createTextToken |
(value: string, ctx?: DslContext) => TextToken |
创建文本叶 token |
处理器工具函数 |
| splitTokensByPipe |
(tokens: TextToken[], ctx?: DslContext) => TextToken[][] |
原始管道分割 |
处理器工具函数 |
| materializeTextTokens |
(tokens: TextToken[], ctx?: DslContext) => TextToken[] |
反转义文本叶节点 |
处理器工具函数 |
| unescapeInline |
(str: string, ctx?: DslContext | SyntaxConfig) => string |
反转义字符串 |
处理器工具函数 |
| readEscapedSequence |
(text: string, i: number, ctx?: DslContext | SyntaxConfig) => [string | null, number] |
转义扫描器 |
处理器工具函数 |
| createToken |
(token: TokenDraft, position?: SourceSpan, ctx?: DslContext | CreateId) => TextToken |
从 draft 构建 token |
处理器工具函数 |
| createTokenGuard |
<TMap>() => (token, type) => token is NarrowToken |
类型收窄守卫工厂 |
Token 结构 |
| resetTokenIdSeed |
() => void |
旧的全局 ID 计数器重置(已弃用) |
待弃用 API |
| 导出 |
签名 |
说明 |
详情 |
| withSyntax |
<T>(syntax, fn, suppressWarning?) => T |
旧的 ambient syntax 包装器 |
待弃用 API |
| getSyntax |
() => SyntaxConfig |
读取 ambient syntax |
待弃用 API |
| withTagNameConfig |
<T>(tagName, fn, suppressWarning?) => T |
旧的 ambient tagName 包装器 |
待弃用 API |
| 导出 |
签名 |
说明 |
详情 |
| walkTokens |
(tokens: TextToken[], visitor: WalkVisitor) => void |
前序只读访问器 |
Token 遍历 |
| mapTokens |
(tokens: TextToken[], visitor: MapVisitor) => TextToken[] |
后序不可变变换 |
Token 遍历 |
| filterTokens |
<T>(tokens: TextToken[], predicate: FilterVisitor<T>) => T[] |
mapTokens 保留/删除快捷方式 |
Token 遍历 |
| 导出 |
签名 |
说明 |
详情 |
| buildPositionTracker |
(text: string) => PositionTracker |
构建行偏移表 |
源码位置追踪 |
| 类型 |
说明 |
详情 |
| TextToken |
核心 token 节点——type、value、id、可选 position
|
Token 结构 |
| TokenDraft |
handler 返回类型——type、value + 额外字段 |
Token 结构 |
| StructuralNode |
保留形式的节点(inline / raw / block / text / escape / separator) |
API 参考 |
| Zone |
带源码偏移量的连续结构化节点分组 |
API 参考 |
| 类型 |
说明 |
详情 |
| IncrementalDocument |
structural 增量快照(source/tree/zones) |
增量解析 |
| IncrementalEdit |
session.applyEdit(...) 的单次编辑描述符 |
增量解析 |
| IncrementalParseOptions |
不含 trackPositions 的 StructuralParseOptions
|
增量解析 |
| IncrementalSessionOptions |
createIncrementalSession 的会话策略配置(含 softZoneNodeCap 与可选 diff 默认配置) |
增量解析 |
| IncrementalDiffRefinementOptions |
applyEditWithDiff(...) 的 diff 细化预算配置类型(可放 session 默认或按次覆盖) |
增量解析 |
| IncrementalSessionApplyResult |
applyEdit(...) 的返回结果 |
增量解析 |
| IncrementalSessionApplyWithDiffResult |
applyEditWithDiff(...) 的返回结果 |
增量解析 |
| TokenDiffResult |
顶层 patch / unchangedRanges / 路径感知 ops / dirty span 组成的结构化 diff 结果 |
增量解析 |
TokenDiffPatch、TokenDiffUnchangedRange、StructuralDiffPath、StructuralDiffOp 以及各个具体 op 类型都不单独从
root 入口导出。这是刻意控制公开面:稳定接入面是 TokenDiffResult 本身,而不是每个细碎命名类型都单独承诺长期兼容。
如需消费这些细粒度结构,推荐直接从结果字段推导:
type DiffPatch = TokenDiffResult["patches"][number];
type DiffRange = TokenDiffResult["unchangedRanges"][number];
type DiffOp = TokenDiffResult["ops"][number];
同理,IncrementalSession、IncrementalSessionApplyMode、IncrementalSessionFallbackReason 当前也不从 root 入口导出;
如果你需要会话对象类型,推荐直接从 ReturnType<typeof createIncrementalSession> 推导。
| 类型 |
说明 |
详情 |
| NarrowToken |
TextToken & { type: TType } & TExtra —— 收窄后的 token 类型 |
Token 结构 |
| NarrowDraft |
TokenDraft & { type: TType } & TExtra —— 收窄后的 draft 类型 |
Token 结构 |
| NarrowTokenUnion |
从 token map 生成的 NarrowToken 联合类型 |
Token 结构 |
| 类型 |
说明 |
详情 |
| Parser |
createParser 返回的对象——parse、strip、structural、print
|
API 参考 |
| ParseOptions |
parseRichText 的选项——handlers、syntax、tracking 等 |
ParseOptions 选项 |
| ParserBaseOptions |
ParseOptions 和 StructuralParseOptions 的共享基类 |
API 参考 |
| StructuralParseOptions |
parseStructural 的选项 |
API 参考 |
| PrintOptions |
printStructural / parser.print 的选项 |
API 参考 |
| DslContext |
解析会话的语法配置 + createId 捆绑 |
DslContext |
| 类型 |
说明 |
详情 |
| TagHandler |
带有可选 inline、block、raw 方法的 handler 对象 |
编写标签处理器 |
| TagForm |
"inline" | "block" | "raw" |
DSL 语法 |
| InlineShorthandOption |
boolean | readonly string[] —— implicitInlineShorthand 的简写控制类型 |
ParseOptions 选项 |
| PipeArgs |
带文本/token 访问器的已解析管道分隔参数 |
处理器工具函数 |
| PipeHandlerDefinition |
createPipeHandlers 的每标签定义 |
处理器辅助函数 |
| BlockTagInput |
declareMultilineTags 的输入形状 |
处理器辅助函数 |
| BlockTagLookup |
已解析的 block 标签查找表 |
处理器辅助函数 |
| MultilineForm |
"inline" | "raw" | "block" —— 多行标签形式(TagForm 别名) |
处理器辅助函数 |
| 类型 |
说明 |
详情 |
| SyntaxInput |
createSyntax 的输入形状;createEasySyntax 额外接受 closeMiddle?: string
|
自定义语法 |
| SyntaxConfig |
完全解析的语法配置(只读) |
自定义语法 |
| TagNameConfig |
有效标签名字符规则 |
自定义标签名字符 |
| CreateId |
(draft: TokenDraft) => string —— ID 工厂函数 |
稳定 Token ID |
| EasyStableIdOptions |
createEasyStableId 的选项 |
稳定 Token ID |
| 类型 |
说明 |
详情 |
| SourcePosition |
{offset, line, column} —— 源码中的单个点 |
源码位置追踪 |
| SourceSpan |
{start, end} —— 覆盖一个 token 的范围 |
源码位置追踪 |
| PositionTracker |
带 resolve(offset) 的对象,用于偏移量到位置的映射 |
源码位置追踪 |
| 类型 |
说明 |
详情 |
| TokenVisitContext |
{parent, depth, index} —— 传递给 walk/map 的上下文 |
Token 遍历 |
| WalkVisitor |
walkTokens 的访问器类型(函数或 record) |
Token 遍历 |
| MapVisitor |
mapTokens 的访问器类型 |
Token 遍历 |
| 类型 |
说明 |
详情 |
| ErrorCode |
所有错误码字符串的联合类型 |
错误处理 |
| ParseError |
错误对象——code、message、line、column、snippet
|
错误处理 |