php - 基于括号的 VS Code 折叠 - 不缩进

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

你好 Stackoverflow 社区,

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

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

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

最佳答案

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

  • 基于缩进(加上基本 #region 支持)。这适用于许多语言,但非常简单。它只查看缩进来确定代码应该如何折叠
  • Syntax aware code folding .这必须按语言实现。 VS Code 附带了针对 javascript、typescript、html、css、json 和 markdown 的语法感知折叠。扩展可以提供对其他语言的支持

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

    关于php - 基于括号的 VS Code 折叠 - 不缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53506896/

    相关文章:

    php - php heredocs语法中的条件语句?

    php - 如何在 MYSQL 插入查询中编写

    php - 合并两个 mysql 字段并使用 php 更新第三个字段

    visual-studio-code - Visual Studio Code - 在 Windows 上的 'select default shell' 列表中添加选项?

    python - VS 代码 : Tell pylint to ignore the next line?

    visual-studio-code - 不用 ctrl+space 自动完成

    visual-studio-code - 防止 Intellisense 在 VS Code 中插入分号

    javascript - 在 AJAX 和 PHP 之间发送值

    visual-studio-code - Stylelint VScode 不起作用

    visual-studio-code - 在 Visual Studio Code 中调试时是否可以不显示调试侧栏?