【问题标题】:VS Code Folding Based on Brackets - Not Indentation基于括号的VS代码折叠 - 不是缩进
【发布时间】:2019-04-29 14:52:57
【问题描述】:

你好 Stackoverflow 社区,

这是我在这里的第一篇文章。我正在使用 VS Code,目前正在寻找一种默认启用方法和函数折叠的方法,就像 PHPStorm 中可用的功能一样。我环顾四周,发现一些帖子显示您可以折叠所有代码或缩进​​级别,如下所述:https://stackoverflow.com/a/30077543/10713286 但是,我正在寻找一种使用匹配括号作为折叠方法而不是缩进或使用//#region 和//#endregion 来折叠函数和方法的方法。理想情况下,这可能是默认设置,我可以根据需要展开代码。 PHPStorm 很好地做到了这一点,并将文档方法和函数 cmets 作为一个选项展开。我认为这可能需要通过编写扩展来完成。我很难找到一种方法来做到这一点。我提取了 VS Code git repo 并运行了一些 grep 搜索,发现折叠方法(用于 php)设置在 vscode/extensions/php/package.nls.json:3 中。第 243 行和第 250 行的 vscode/extensions/php/snippets/php.snippets.json 中有 #region 和 #endregion 设置。问题是折叠是用正则表达式设置的,我找不到单独使用正则表达式匹配括号的方法。

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    • Syntax aware code folding。这必须按语言实现。 VS Code 附带了 javascript、typescript、html、css、json 和 markdown 的语法感知折叠。扩展可以提供对其他语言的支持

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

    【讨论】:

      猜你喜欢
      • 2011-11-06
      • 2020-08-29
      • 2019-06-13
      • 2019-08-20
      • 1970-01-01
      • 2020-01-24
      • 2013-03-09
      • 1970-01-01
      • 2021-10-18
      相关资源
      最近更新 更多