VScode格式化程序,保持开放括号在同一行(PHP)

31

我已经启用了"editor.formatOnSave"设置,但当格式化代码时,在php文件中所有的开括号都会移到新的一行。我只希望它们保持在同一行上,例如

我启用了"editor.formatOnSave"设置,但在php文件中当代码被格式化后,所有的开括号都会跳到新的一行。我只想让它们留在同一行。

function test{

}

function test
{

}

我一整天都在寻找解决方案,但什么都找不到。


你使用了任何插件吗? - Script47
1
@Script47 没有与代码格式相关的插件。 - Alt-Rock Ninja
这里也有同样的问题。你找到任何解决方案了吗?我正在使用PHP智能感知。 - Guilherme Ramalho
@GuilhermeRamalho 不好意思,还是没有任何进展。 - Alt-Rock Ninja
你使用哪个格式化程序?你是否已经安装了 https://github.com/bmewburn/vscode-intelephense? - Ovsyanka
@Ovsyanka 是的,我有。 - Alt-Rock Ninja
4个回答

65

如果您想让您的PHP代码格式如此

function test {

}

然后使用Intelephense并使用以下设置。

  "intelephense.format.braces": "k&r"

编辑

正如 @Pinonirvana 在他的答案中所说,你现在可以通过GUI来完成这个操作。
你可以在用户设置下找到这些信息:

快捷键 -> Ctrl+,

或者

文件 > 首选项 > 设置

进入图像描述


4
真不敢相信我花了这么长时间才找到这个解决方法。非常感谢!!! - Rahi
3
谢谢您的留言,这个选项是在2020年在vscode-intelephense中引入的(https://github.com/bmewburn/vscode-intelephense/issues/730),比Ovsyanka的解决方案更简单,因此应该成为新的被接受的答案! - Edu Wass
1
这个网址 https://dev59.com/f1MI5IYBdhLWcg3wxudI#66115402 的截图很有帮助。 - Ryan
甚至稍微快一些:菜单文件 > 首选项 > 设置,然后在“搜索设置”输入框中键入“intelephense format braces”,即可直接进入“Intelephense > 格式:括号”设置。 - Kai Carver
你救了某个人,耶! - Joshua Kusaasira

12

最新的VScode版本已经包含了这个功能。

你只需在VScode设置中搜索“intelephense”,然后找到一个名为“Braces”的设置。

VScode Intelephense braces setting


太好了!轻松切换! - Rocky Kev
这对我仍然不起作用 :-( ... 我有VSCode 1.62.3,我已经将大括号的格式更改为k&r,但是当我创建一个类时,括号仍然会跳到下一行。你有什么想法我做错了什么吗? - Jon
你解决了吗,Jon?我也遇到了同样的问题... - MetalBearSolid

10

Intelephence中有默认的格式化程序,而且没有太多自定义选项。您可以在php语言特定设置中禁用它:

~/.config/Code - OSS/User/settings.json:
----------
...
"[php]": {
    // "editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
    "editor.defaultFormatter": "kokororin.vscode-phpfmt"
},
...

然后你可以使用其他支持自定义的格式化工具,例如phpfmt。这是我的设置:

"phpfmt.exclude": [
    "AllmanStyleBraces"
],
"phpfmt.smart_linebreak_after_curly": true,
"phpfmt.psr2": false,
"phpfmt.detect_indent": true

太好了!在将“detect_indent”替换为“phpfmt.indent_with_space”: 4之后,效果更佳。 - Teson

4

简单步骤,请按照以下步骤操作 -

  1. 输入图片描述

  2. 输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接