我正在为 sublime 文本编辑器(使用 Python)编写一个插件,它只会在文件加载时折叠函数/方法。为了做到这一点,我必须解析文件内容,检测功能块并获取每个块的开始和结束位置(这是 API 进行折叠所必需的)。Regex 是我想到的第一件事,但我很快了解到它不适用于嵌套函数,尤其是对于 c 样式语法。
我目前这样做的方式是逐行查找'{'和'}'并检查函数定义是否在同一行或高于'{'。如果找不到函数定义,我认为它是一个控制结构。这远非完美,因为注释中不匹配的大括号符号将导致此逻辑失败。由于我不知道任何其他选择,这可能是完全错误的做法。有任何想法吗?