VS Code有没有办法缩进开放式括号?

Guy*_*zmo 5 indentation visual-studio-code

我想修改VS Code的缩进行为,这样如果我在输入这样的行后按Enter键:

variable = function(param1,
Run Code Online (Sandbox Code Playgroud)

它将缩进到左括号的级别,以便我可以轻松地格式化这样的代码:

variable = function(param1,
                    param2)
Run Code Online (Sandbox Code Playgroud)

我希望它适用于开放方括号和大括号:

variable = function([1, 2, 3, 4
                     5, 6, 7, 8],
                    param2,
                    {'a': 1, 'b': 2,
                     'c': 3, 'd': 4},
                    param4)
Run Code Online (Sandbox Code Playgroud)

我更喜欢它对我使用的几乎所有语言都有这种行为,尽管在C++或C#中工作时,花括号行为不是必需的(甚至可能是不可取的).

这与Sublime Text的indent_to_bracket设置非常相似.

有没有办法实现这个目标?如果没有设置,我愿意修补任何必要的东西.我也对可以做到这一点的扩展开放,或者甚至在必要时编写扩展,并且这样做是有道理的.

her*_*off 6

这个功能在GitHub上有一个封闭的问题.开发团队最近的评论内容如下:

此功能请求将在未来6-12个月的路线图中考虑,因此将关闭以保持我们必须维持的问题数量.感谢您的理解和快乐的编码!

因此,在可预见的将来不会包括它.

现在唯一的选择是尝试创建一个完全正确的扩展,甚至破解主编辑器源代码.我建议你从这里开始:https://code.visualstudio.com/docs/extensions/overview

  • 荒谬的是,一年多过去了,这仍然没有实施。 (2认同)

Edw*_*ard 6

自 2019 年起就有一个可用的扩展,称为Python Indent。你提到的方式被称为“括号对之间”。这是该扩展的示例:

data = {'a': 0,
        | # <- pressing enter should put your cursor at the "|"
| # <- This is where default VS Code puts your cursor.
Run Code Online (Sandbox Code Playgroud)

PEP 8中,它被称为“与开始分隔符对齐”。