基于括号的VS代码折叠-不缩进

时间:2018-11-27 19:36:08

标签: php visual-studio-code vscode-settings vscode-extensions folding

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中有#endregionvscode/extensions/php/snippets/php.snippets.json设置。问题是折叠是用正则表达式设置的,我找不到单独使用正则表达式来匹配括号的方法

这对我来说是重要的功能,因为我正在学习新的代码库,并且具有功能/方法折叠功能确实可以提高大文件的可读性。我可以快速扫描所需内容,并根据需要进行扩展。 VS Code尝试执行此操作,但是,如果在函数中故意故意省略任何行,例如,为了使注释更明显,VS Code会停止在此处折叠而不是转到函数末尾。非常感谢在此问题上的任何帮助!

tldr;我需要找到一种方法,根据匹配的括号而不是VS Code中的缩进来折叠代码。

1 个答案:

答案 0 :(得分:0)

VS Code有两种处理语言折叠的方式:

  • 基于缩进(加上基本的#region支持)。这对于许多语言都是开箱即用的,但是非常简单。它仅查看缩进来确定应如何折叠代码

  • Syntax aware code folding。这必须按照每种语言来实现。 VS Code附带了可识别语法的javascript,Typescript,html,css,json和markdown折叠功能。扩展可以提供对其他语言的支持

我不知道任何现有扩展可实现php的语法识别折叠。如果您想自己实施,请查看folding provider api