我想在 textmate 中启用 markdown 的代码折叠。
具体来说,我希望任何标题(前面有一个或多个“#”字符的文本)成为在其与下一个标题和/或水平线之间切换 block 的行。示例:
# Level 1 Heading - I'd like the block below to fold
The text I'd like to fold away
## Level 2 Heading
More text...
BBEdit 似乎对 Markdown 来说做得很好。 TextMate 支持代码折叠,对于用成对(且缩进相同)大括号表示 block 的语言来说效果很好。
我知道 TextMate 提供了两个可以在语言语法文件中设置的变量,但我需要更多的正则表达式人才才能弄清楚。以下是当前 Markdown 语言语法中代码折叠设置的内容:
foldingStartMarker = '(?x)
(<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?>
|<!--(?!.*-->)
|\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/)))
)';
foldingStopMarker = '(?x)
(</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>
|^\s*-->
|(^|\s)\}
)';
非常感谢任何帮助!
最佳答案
TextMate 完全无法做到这一点。
TextMate 的语言解析器逐行读取文件。这意味着为了折叠代码,需要有一个开始标记和一个结束标记。喜欢<ul>
和</ul>
。在这种情况下,由于除了下一节的开头之外,一个节的结尾没有被任何其他内容标记,因此逐行解析器无法返回并说空行应该标记代码折叠 block 的结尾。
这有意义吗?
关于textmate - 如何在 TextMate 中启用 markdown 代码折叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4880484/