当前位置: 首页 > 知识库问答 >
问题:

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

郎鸿
2023-03-14

我希望修改 VS Code 的缩进行为,以便在键入如下行后按 Enter 键:

variable = function(param1,

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

variable = function(param1,
                    param2)

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

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

我希望我使用的几乎所有语言都有这种行为,尽管在C或C#中使用大括号行为是不必要的(甚至可能是不可取的)。

这与Sublime文本的indent_to_bracket设置非常相似。

有什么办法可以做到这一点?如果没有设定,我愿意做任何必要的修改。我也乐于接受可以做到这一点的扩展,甚至在必要和有意义的情况下编写一个扩展。

共有3个答案

潘修文
2023-03-14

看起来ESLint会为您做这件事。

带有2,{ " function expression ":{ " parameters ":" first " } }选项的此规则的正确代码示例:

/*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/

var foo = function(bar, baz,
                   qux, boop) {
  qux();
}

来自缩进规则:函数表达式。

安装扩展 vs 代码-埃斯林集成,然后

如果尚未在本地或全局安装 ESLint,请通过运行工作区文件夹中的 npm 安装 eslint 进行本地安装,或在全局安装中运行 npm 安装 -g eslint。

然后是这样的规则

"indent": ["error", 2, { "FunctionExpression": {"body": 1, "parameters": "first"} }],

在您的. eslintrc.json文件中会做您想做的事情——至少在保存时

"eslint.autoFixOnSave": true

在您的设置中。默认值为false。我不相信你能让它在你打字的时候“修复”问题——但只能在保存的时候。您也可以修改此设置

//应该由ESLint验证的语言id数组

“eslint.validate”: [ “javascript”, “javascriptreact” ],

裴俊智
2023-03-14

自2019年以来,有一个名为Python缩进的扩展程序。你提到的方式在那里被称为“括号对之间”。这是该扩展中的示例:

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

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

魏康安
2023-03-14

这个特性在GitHub上有一个封闭的问题。开发团队最近的评论如下:

在接下来的6-12个月的路线图中不会考虑此功能请求,因此将关闭此功能请求,以保持我们必须保持可操作的问题数量。感谢理解和快乐编码!

因此,在可预见的将来,它不会被包括在内。

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

 类似资料:
  • 问题内容: 有没有办法用TypeScript语言进行方法重载? 我想实现以下目标: 这是我不想做的一个例子(我真的很讨厌JS中重载hack的那一部分): 问题答案: 根据规范,TypeScript确实支持方法重载,但是它很笨拙,并且包含许多手动检查参数类型的工作。我认为这主要是因为在纯JavaScript中最接近方法重载的地方还包括检查,并且TypeScript尝试不修改实际的方法主体,以避免任何

  • 问题内容: 假设我有一个使用lambda表达式(闭包)定义的对象列表。有没有一种方法可以检查它们以便进行比较? 我最感兴趣的代码是 完整的代码是 似乎唯一的解决方案是将每个lambda定义为一个字段,并且仅使用这些字段。如果要打印出称为的方法,最好使用。lambda表达式有更好的方法吗? 此外,是否可以打印lambda并获得人类可读的内容?如果你打印而不是 得到类似的东西 甚至使用和方法。 问题答

  • 问题内容: 我写了一个查询来查找3月至4月美国10个最繁忙的机场。它产生所需的输出,但是我想尝试进一步优化它。 是否有任何适用于查询的HiveQL特定优化? 是适用在这里吗?我是Hive的新手,现在这是我提出的最短的查询。 表列如下: 飞机场 Flights_stats 问题答案: 按机场(内部联接)过滤,并在UNION ALL之前进行聚合,以减少传递到最终聚合简化程序的数据集。具有UNION A

  • Spring HATEOAS提供了方便的ControllerLinkBuilder来创建指向控制器方法的链接,这些方法将作为HREF添加到返回给客户端的JSON/XML中。例如: ... 可能会生成类似以下内容的JSON: 然而... 我倾向于通过反向代理访问我的服务。我想大多数人可能会这样做。这让我可以在不同的端口上运行多个服务,但让我可以通过相同的基本URL访问它们。不幸的是,通过代理访问意味

  • 这个程序应该输出 但是如果我输入的大小是4,我只输入这些值,但是如果我写的大小是4。。。它不需要我提供4个参数,而是需要3个参数并打印('',1,2,3) 请帮帮忙

  • 我们正在为机器学习应用程序使用python中的h5py处理大型(1.2TB)未压缩、未分块的hdf5文件,这需要我们重复处理完整的数据集,以随机顺序单独加载约15MB的切片。我们正在使用具有192 GB RAM的linux(Ubuntu 18.04)机器。我们注意到该程序正在慢慢填充缓存。当缓存的总大小达到与整机RAM相当的大小时(前0位的可用内存几乎为0,但有大量“可用”内存)交换会减慢所有其他