Hello Stackoverflow社区,
这是我在这里的第一篇文章。我正在使用VS Code,目前正在寻找一种方法来默认启用方法和函数折叠,例如PHPStorm中提供的功能。我环顾四周,发现一些帖子显示您可以按照此处所述折叠所有代码或缩进级别:https://stackoverflow.com/a/30077543/10713286
但是,我正在寻找一种使用匹配括号作为折叠方法而不是缩进或使用//#region
和//#endregion
来折叠函数和方法的方法。理想情况下,这可以是默认设置,我可以根据需要展开代码。 PHPStorm做到了这一点,并保留了文档编制方法和函数注释作为选项的方式。我认为这可能需要通过编写扩展来完成。不过,我在寻找一种方法时遇到了麻烦。我拉出VS Code git repo并进行了一些grep搜索,发现vscode/extensions/php/package.nls.json:3
中设置了可折叠方法(用于php)。第243和250行的#region
中有#endregion
和vscode/extensions/php/snippets/php.snippets.json
设置。问题是折叠是用正则表达式设置的,我找不到单独使用正则表达式来匹配括号的方法
这对我来说是重要的功能,因为我正在学习新的代码库,并且具有功能/方法折叠功能确实可以提高大文件的可读性。我可以快速扫描所需内容,并根据需要进行扩展。 VS Code尝试执行此操作,但是,如果在函数中故意故意省略任何行,例如,为了使注释更明显,VS Code会停止在此处折叠而不是转到函数末尾。非常感谢在此问题上的任何帮助!
tldr;我需要找到一种方法,根据匹配的括号而不是VS Code中的缩进来折叠代码。
答案 0 :(得分:0)
VS Code有两种处理语言折叠的方式:
基于缩进(加上基本的#region
支持)。这对于许多语言都是开箱即用的,但是非常简单。它仅查看缩进来确定应如何折叠代码
Syntax aware code folding。这必须按照每种语言来实现。 VS Code附带了可识别语法的javascript,Typescript,html,css,json和markdown折叠功能。扩展可以提供对其他语言的支持
我不知道任何现有扩展可实现php的语法识别折叠。如果您想自己实施,请查看folding provider api