[{"data":1,"prerenderedAt":594},["ShallowReactive",2],{"navigation":3,"-design-cst-features":239,"-design-cst-features-surround":591},[4,159],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"指南","\u002Fguide","00.guide\u002F00.index",[9,11,16,21,53,84,116,142],{"title":5,"path":6,"stem":7,"icon":10},"lucide:book",{"title":12,"path":13,"stem":14,"icon":15},"快速开始","\u002Fguide\u002Fgetting-started","00.guide\u002F01.getting-started","lucide:rocket",{"title":17,"path":18,"stem":19,"icon":20},"基础语法","\u002Fguide\u002Fbasic-syntax","00.guide\u002F02.basic-syntax","lucide:code-2",{"title":22,"path":23,"stem":24,"children":25,"icon":27},"数据类型","\u002Fguide\u002Fdata-types","00.guide\u002F03.data-types\u002F00.index",[26,28,33,38,43,48],{"title":22,"path":23,"stem":24,"icon":27},"lucide:database",{"title":29,"path":30,"stem":31,"icon":32},"基本类型","\u002Fguide\u002Fdata-types\u002Fbasic_types","00.guide\u002F03.data-types\u002F01.basic_types","lucide:type",{"title":34,"path":35,"stem":36,"icon":37},"复合类型","\u002Fguide\u002Fdata-types\u002Fcomposite_types","00.guide\u002F03.data-types\u002F02.composite_types","lucide:layers",{"title":39,"path":40,"stem":41,"icon":42},"类型推导","\u002Fguide\u002Fdata-types\u002Ftype_inference","00.guide\u002F03.data-types\u002F03.type_inference","lucide:brain-circuit",{"title":44,"path":45,"stem":46,"icon":47},"结构体","\u002Fguide\u002Fdata-types\u002Fstruct","00.guide\u002F03.data-types\u002F04.struct","lucide:box-select",{"title":49,"path":50,"stem":51,"icon":52},"内建类型表面","\u002Fguide\u002Fdata-types\u002Fbuilt-in-surface","00.guide\u002F03.data-types\u002F05.built-in-surface","lucide:wrench",{"title":54,"path":55,"stem":56,"children":57,"icon":59},"流程控制","\u002Fguide\u002Fcontrol-flow","00.guide\u002F04.control-flow\u002F00.index",[58,60,64,69,74,79],{"title":54,"path":55,"stem":56,"icon":59},"lucide:git-branch",{"title":61,"path":62,"stem":63,"icon":59},"if 表达式","\u002Fguide\u002Fcontrol-flow\u002Fif-expressions","00.guide\u002F04.control-flow\u002F01.if-expressions",{"title":65,"path":66,"stem":67,"icon":68},"for 循环","\u002Fguide\u002Fcontrol-flow\u002Ffor-loops","00.guide\u002F04.control-flow\u002F02.for-loops","lucide:repeat",{"title":70,"path":71,"stem":72,"icon":73},"break 和 continue","\u002Fguide\u002Fcontrol-flow\u002Fbreak-continue","00.guide\u002F04.control-flow\u002F03.break-continue","lucide:skip-forward",{"title":75,"path":76,"stem":77,"icon":78},"return","\u002Fguide\u002Fcontrol-flow\u002Freturn","00.guide\u002F04.control-flow\u002F04.return","lucide:corner-up-left",{"title":80,"path":81,"stem":82,"icon":83},"注意事项","\u002Fguide\u002Fcontrol-flow\u002Fnotes","00.guide\u002F04.control-flow\u002F05.notes","lucide:alert-triangle",{"title":85,"path":86,"stem":87,"children":88,"icon":90},"函数","\u002Fguide\u002Ffunctions","00.guide\u002F05.functions\u002F00.index",[89,91,96,101,106,111],{"title":85,"path":86,"stem":87,"icon":90},"lucide:braces",{"title":92,"path":93,"stem":94,"icon":95},"基础函数","\u002Fguide\u002Ffunctions\u002Fbasic-functions","00.guide\u002F05.functions\u002F01.basic-functions","lucide:function-square",{"title":97,"path":98,"stem":99,"icon":100},"参数与默认值","\u002Fguide\u002Ffunctions\u002Fadvanced-parameters","00.guide\u002F05.functions\u002F02.advanced-parameters","lucide:settings-2",{"title":102,"path":103,"stem":104,"icon":105},"匿名函数","\u002Fguide\u002Ffunctions\u002Fclosures","00.guide\u002F05.functions\u002F03.closures","lucide:curly-braces",{"title":107,"path":108,"stem":109,"icon":110},"内建函数","\u002Fguide\u002Ffunctions\u002Fbuiltin-functions","00.guide\u002F05.functions\u002F04.builtin-functions","lucide:box",{"title":112,"path":113,"stem":114,"icon":115},"main 函数","\u002Fguide\u002Ffunctions\u002Fmain-function","00.guide\u002F05.functions\u002F05.main-function","lucide:play",{"title":117,"path":118,"stem":119,"children":120,"icon":37},"模块化","\u002Fguide\u002Fmodules","00.guide\u002F06.modules\u002F00.index",[121,122,127,132,137],{"title":117,"path":118,"stem":119,"icon":37},{"title":123,"path":124,"stem":125,"icon":126},"导出","\u002Fguide\u002Fmodules\u002Fexport","00.guide\u002F06.modules\u002F01.export","lucide:upload",{"title":128,"path":129,"stem":130,"icon":131},"导入","\u002Fguide\u002Fmodules\u002Fimport","00.guide\u002F06.modules\u002F02.import","lucide:download",{"title":133,"path":134,"stem":135,"icon":136},"最佳实践","\u002Fguide\u002Fmodules\u002Fbest-practices","00.guide\u002F06.modules\u002F03.best-practices","lucide:check-circle-2",{"title":138,"path":139,"stem":140,"icon":141},"完整示例","\u002Fguide\u002Fmodules\u002Fcomplete-example","00.guide\u002F06.modules\u002F04.complete-example","lucide:file-code-2",{"title":143,"path":144,"stem":145,"children":146,"icon":148},"高级特性概述","\u002Fguide\u002Fadvanced","00.guide\u002F07.advanced\u002F00.index",[147,149,154],{"title":143,"path":144,"stem":145,"icon":148},"lucide:zap",{"title":150,"path":151,"stem":152,"icon":153},"泛型","\u002Fguide\u002Fadvanced\u002Fgenerics","00.guide\u002F07.advanced\u002F05.generics","lucide:git-merge",{"title":155,"path":156,"stem":157,"icon":158},"类型转换","\u002Fguide\u002Fadvanced\u002Ftype-conversion","00.guide\u002F07.advanced\u002F06.type-conversion","lucide:refresh-cw",{"title":160,"path":161,"stem":162,"children":163,"icon":15},"设计","\u002Fdesign","01.design\u002F00.index",[164,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,232,235],{"title":160,"path":161,"stem":162,"icon":15},{"title":166,"path":167,"stem":168},"CST 特性","\u002Fdesign\u002Fcst-features","01.design\u002F01.cst-features",{"title":170,"path":171,"stem":172},"注释关联规则","\u002Fdesign\u002Fcomment-association","01.design\u002F02.comment-association",{"title":174,"path":175,"stem":176},"错误处理","\u002Fdesign\u002Ferror-handling","01.design\u002F03.error-handling",{"title":178,"path":179,"stem":180},"代码优化","\u002Fdesign\u002Foptimization","01.design\u002F04.optimization",{"title":182,"path":183,"stem":184},"注释保留","\u002Fdesign\u002Fcomments","01.design\u002F05.comments",{"title":186,"path":187,"stem":188},"结构体设计","\u002Fdesign\u002Fstruct-design","01.design\u002F06.struct-design",{"title":190,"path":191,"stem":192},"comparable 约束设计","\u002Fdesign\u002Fcomparable-constraint","01.design\u002F07.comparable-constraint",{"title":194,"path":195,"stem":196},"文档分层约定","\u002Fdesign\u002Fdocumentation-convention","01.design\u002F08.documentation-convention",{"title":198,"path":199,"stem":200},"类型系统总纲","\u002Fdesign\u002Ftype-system","01.design\u002F09.type-system",{"title":202,"path":203,"stem":204},"泛型系统","\u002Fdesign\u002Fgenerics-system","01.design\u002F10.generics-system",{"title":206,"path":207,"stem":208},"值语义与共享语义","\u002Fdesign\u002Fvalue-and-sharing-semantics","01.design\u002F11.value-and-sharing-semantics",{"title":210,"path":211,"stem":212},"函数与调用","\u002Fdesign\u002Ffunctions-and-calls","01.design\u002F12.functions-and-calls",{"title":214,"path":215,"stem":216},"表达式与语句","\u002Fdesign\u002Fexpressions-and-statements","01.design\u002F13.expressions-and-statements",{"title":218,"path":219,"stem":220},"模块系统","\u002Fdesign\u002Fmodule-system","01.design\u002F14.module-system",{"title":222,"path":223,"stem":224},"渲染内建","\u002Fdesign\u002Frender-intrinsics","01.design\u002F15.render-intrinsics",{"title":226,"path":227,"stem":228},"Any 设计","\u002Fdesign\u002Fany-design","01.design\u002F16.any-design",{"title":49,"path":230,"stem":231},"\u002Fdesign\u002Fbuilt-in-types-surface","01.design\u002F17.built-in-types-surface",{"title":107,"path":233,"stem":234},"\u002Fdesign\u002Fbuilt-in-functions","01.design\u002F18.built-in-functions",{"title":236,"path":237,"stem":238},"内建结构体与运行时类型","\u002Fdesign\u002Fbuilt-in-structs-and-runtime-types","01.design\u002F19.built-in-structs-and-runtime-types",{"id":240,"title":166,"body":241,"description":300,"extension":586,"meta":587,"navigation":588,"path":167,"seo":589,"stem":168,"__hash__":590},"content\u002F01.design\u002F01.cst-features.md",{"type":242,"value":243,"toc":573},"minimark",[244,248,253,256,280,287,291,294,365,368,382,386,389,432,435,439,442,453,457,460,464,470,473,476,479,482,484,487,491,569],[245,246,247],"p",{},"与 AST（抽象语法树）不同，CST（具体语法树）保留以下信息：",[249,250,252],"h2",{"id":251},"_1-注释保留","1. 注释保留",[245,254,255],{},"所有注释都保留在 CST 中，包括：",[257,258,259,268,274],"ul",{},[260,261,262,263,267],"li",{},"单行注释（",[264,265,266],"code",{},"\u002F\u002F","）",[260,269,270,271,267],{},"文档注释（",[264,272,273],{},"\u002F\u002F\u002F",[260,275,276,277,267],{},"模块注释（",[264,278,279],{},"\u002F\u002F!",[245,281,282,283,286],{},"注释存储在对应节点的 ",[264,284,285],{},"comments"," 字段中。",[249,288,290],{"id":289},"_2-位置信息","2. 位置信息",[245,292,293],{},"每个节点包含精确的位置范围：",[295,296,301],"pre",{"className":297,"code":298,"language":299,"meta":300,"style":300},"language-rust shiki shiki-themes github-light github-dark github-dark","pub struct Span {\n    pub start: Position,\n    pub end: Position,\n}\n\npub struct Position {\n    pub line: usize,\n    pub column: usize,\n    pub offset: usize,\n}\n","rust","",[264,302,303,311,317,323,329,336,342,348,354,360],{"__ignoreMap":300},[304,305,308],"span",{"class":306,"line":307},"line",1,[304,309,310],{},"pub struct Span {\n",[304,312,314],{"class":306,"line":313},2,[304,315,316],{},"    pub start: Position,\n",[304,318,320],{"class":306,"line":319},3,[304,321,322],{},"    pub end: Position,\n",[304,324,326],{"class":306,"line":325},4,[304,327,328],{},"}\n",[304,330,332],{"class":306,"line":331},5,[304,333,335],{"emptyLinePlaceholder":334},true,"\n",[304,337,339],{"class":306,"line":338},6,[304,340,341],{},"pub struct Position {\n",[304,343,345],{"class":306,"line":344},7,[304,346,347],{},"    pub line: usize,\n",[304,349,351],{"class":306,"line":350},8,[304,352,353],{},"    pub column: usize,\n",[304,355,357],{"class":306,"line":356},9,[304,358,359],{},"    pub offset: usize,\n",[304,361,363],{"class":306,"line":362},10,[304,364,328],{},[245,366,367],{},"位置信息用于：",[257,369,370,373,376,379],{},[260,371,372],{},"错误报告",[260,374,375],{},"源代码映射",[260,377,378],{},"调试信息",[260,380,381],{},"LSP 支持",[249,383,385],{"id":384},"_3-语法结构","3. 语法结构",[245,387,388],{},"保留完整的语法结构，包括所有标点符号：",[257,390,391,404,416],{},[260,392,393,394,397,398,397,401],{},"括号：",[264,395,396],{},"()",", ",[264,399,400],{},"{}",[264,402,403],{},"[]",[260,405,406,407,397,410,397,413],{},"标点：",[264,408,409],{},":",[264,411,412],{},",",[264,414,415],{},";",[260,417,418,419,397,422,397,425,397,428,431],{},"运算符：",[264,420,421],{},"+",[264,423,424],{},"-",[264,426,427],{},"*",[264,429,430],{},"\u002F",", etc.",[245,433,434],{},"这使得 CST 可以精确重建源代码。",[249,436,438],{"id":437},"_4-源代码重建","4. 源代码重建",[245,440,441],{},"可以从 CST 精确重建源代码，包括：",[257,443,444,447,450],{},[260,445,446],{},"所有语法结构",[260,448,449],{},"所有注释",[260,451,452],{},"原始格式（通过位置信息）",[249,454,456],{"id":455},"lsp-功能支持","LSP 功能支持",[245,458,459],{},"CST 特性为以下 LSP 功能提供了更好的支持：",[461,462,463],"h3",{"id":463},"悬停提示",[245,465,466,467,469],{},"从 CST 节点的 ",[264,468,285],{}," 字段提取文档注释，显示在悬停提示中。",[461,471,472],{"id":472},"代码补全",[245,474,475],{},"利用 CST 的完整结构信息提供智能代码补全。",[461,477,478],{"id":478},"跳转定义",[245,480,481],{},"利用 CST 的位置信息实现精确的跳转定义功能。",[461,483,372],{"id":372},[245,485,486],{},"利用 CST 的位置信息提供准确的错误位置和上下文。",[249,488,490],{"id":489},"cst-vs-ast","CST vs AST",[492,493,494,510],"table",{},[495,496,497],"thead",{},[498,499,500,504,507],"tr",{},[501,502,503],"th",{},"特性",[501,505,506],{},"CST",[501,508,509],{},"AST",[511,512,513,525,536,547,558],"tbody",{},[498,514,515,519,522],{},[516,517,518],"td",{},"注释",[516,520,521],{},"保留",[516,523,524],{},"丢弃",[498,526,527,530,533],{},[516,528,529],{},"位置信息",[516,531,532],{},"精确",[516,534,535],{},"可能不完整",[498,537,538,541,544],{},[516,539,540],{},"语法结构",[516,542,543],{},"完整",[516,545,546],{},"抽象",[498,548,549,552,555],{},[516,550,551],{},"源代码重建",[516,553,554],{},"可行",[516,556,557],{},"困难",[498,559,560,563,566],{},[516,561,562],{},"适用场景",[516,564,565],{},"LSP、格式化",[516,567,568],{},"编译、优化",[570,571,572],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":300,"searchDepth":313,"depth":313,"links":574},[575,576,577,578,579,585],{"id":251,"depth":313,"text":252},{"id":289,"depth":313,"text":290},{"id":384,"depth":313,"text":385},{"id":437,"depth":313,"text":438},{"id":455,"depth":313,"text":456,"children":580},[581,582,583,584],{"id":463,"depth":319,"text":463},{"id":472,"depth":319,"text":472},{"id":478,"depth":319,"text":478},{"id":372,"depth":319,"text":372},{"id":489,"depth":313,"text":490},"md",{},{},{"title":166,"description":300},"3Hf1W5nFy-V1cwqhoY0kjR2Oa3M4f8_G-ON83bA4R_0",[592,593],{"title":160,"path":161,"stem":162,"description":300,"icon":15,"children":-1},{"title":170,"path":171,"stem":172,"description":300,"children":-1},1776981319055]