无需登录 数据私有 本地保存

代码折叠编辑器演示 - 基于缩进的折叠功能

33
0
0
0
代码折叠(Code Folding)

代码折叠是一种代码编辑器的功能,允许用户将代码中的某些部分暂时隐藏,只保留关键结构的可见性。本工具中的代码折叠基于缩进层级实现,不依赖语言语法。折叠后的代码块可通过再次点击展开,且内层折叠状态被保留。该功能在IDE和文本编辑器中广泛应用。

缩进(Indentation)

缩进是指代码行开头的空白字符(空格或制表符)。缩进的层次决定了代码的结构层级,更深的缩进表示该行是上方行的子内容。本工具支持四种缩进尺寸:2空格、4空格、8空格和Tab。缩进是Python、YAML等语言的核心语法元素。

代码块(Code Block)

代码块是指由连续多行代码组成的一个逻辑单元。在本工具中,代码块根据缩进层级自动分割:缩进深度较大的连续行被视为同一个代码块。每个可折叠的代码块前有一个折叠按钮,点击后可隐藏该块及其子内容。统计信息会显示可折叠块的总数。

嵌套折叠(Nested Folding)

嵌套折叠是指在已折叠的代码块内部,还可以对更深层级的代码块进行独立折叠。当外层展开时,内层的折叠状态会被保留。这使得用户可以逐层深入查看代码结构,就像在VS Code或PyCharm等为业IDE中的体验一样。嵌套折叠对处理复杂的函数调用层次特别有用。

折叠范围(Fold Range)

折叠范围是指从折叠头行开始,向下查找所有缩进深度严格大于当前行的连续行,直到遇到第一个缩进深度不大于当前行的行为止。例如,缩进为0的def语句,其折叠范围包含所有缩进大于等于1的内部代码,直到下一个缩进为0的顶层语句之前。

缩进尺寸(Indent Size)

缩进尺寸是指每一级缩进所使用的空白字符数量或制表符宽度。常见的缩进尺寸包括2空格、4空格、8空格和Tab(等价于一定数量的空格)。不同的编程语言和项目可能采用不同的缩进尺寸。本工具允许用户切换缩进尺寸,以适配不同项目规范。

折叠状态(Fold State)

折叠状态指代码块当前是展开还是收起的状态。每个可折叠的代码块都有独立的折叠状态。折叠后,对应的代码块及其子内容被隐藏,行末显示折叠标记;展开时,代码内容恢复显示。嵌套折叠时,外层的状态变化不影响内层的状态,确保用户操作的精细控制。

前导空白(Leading Whitespace)

前导空白是指代码行开头的所有空白字符,包括空格和制表符。本工具通过分析每行的前导空白来确定代码块的层级关系。前导空白越多,表示该行的层级越深。分析器会计算每行前导空白的总宽度(按当前缩进尺寸换算),然后与上一行比较以判断是否属于同一个代码块。

代码概览(Code Overview)

代码概览是指通过折叠代码块来获得代码整体结构的快速浏览体验。将大量细节代码折叠后,只保留顶层的函数定义、类声明、模块导入等关键结构信息,帮助开发者快速理解代码的整体架构。这对于审查不熟悉的代码库或进行代码赘时非常有帮助。全局折叠/展开按钮可快速实现概览与细节查看的切换。

制表符(Tab Character)

制表符是一种特殊的空白字符,用于在文本中插入制表间隔。在缩进上下文中,Tab通常等价于一定数量的空格(如4个或8个)。本工具内置了Tab缩进尺寸选择,将Tab视为一个缩进层级。不同项目和语言对Tab和空格的使用习惯不同,工具通过缩进尺寸选择器让用户灵活切换。