VScode自动缩进和缩进指南,以及制表符大小(editor.tabSize)

11

我有一个文件,使用4列缩进级别,并假设制表符字符对应8个空格,就像这样(我使用 . 表示空格,<------>表示制表符字符):

class Foo {
....void bar() {
<------>if (boz) {
<------>....return x;
<------>}
....}
}

这在某些编码风格中很常见,例如Java的Oracle编码规范:

应当使用四个空格作为缩进单位。缩进的确切构造(空格还是制表符)未指定。制表符必须每8个空格设置一次(而不是4个)。

我在VSCode中无法正确呈现:

  • 如果我将editor.tabSize设置为4,则会呈现得很糟糕,如下所示:
class Foo {
....void bar() {
<-->if (boz) {
<-->....return x;
<-->}
....}
}
  • 如果我将editor.tabSize设置为8,则文本会被正确地呈现,但缩进指南不正确(在void bar()缩进级别缺少指南):

indentation guides

更重要的是,自动缩进(按下“tab”键或在{字符后按下“回车”时进行即时缩进)现在使用8个列进行缩进,使编辑器难以使用。

一个明显的解决方法是仅使用空格进行缩进,但这在打开现有文件时不适用。

是否有一种方法可以配置缩进指南每4列显示一次,同时仍然以每8列呈现制表符?

editorconfig跨编辑器配置文件规范中,这对应于我希望能够独立更改的tab_widthindent_size属性。

我曾经使用Emacs,例如这将对应于tab-widthc-basic-offset


相关:https://marketplace.visualstudio.com/items?itemName=spywhere.guides和https://hudochenkov.com/posts/spaces-to-tabs/...不幸的是,这个(https://marketplace.visualstudio.com/items?itemName=SteveDowerMSFT.IndentGuides)只适用于VS。 - sancho.s ReinstateMonicaCellio
请问您能否提供操作系统和 VS Code 的版本信息? - Nadeem Taj
这是 VSCode 1.48,运行在 Ubuntu 20.04 上。 - Matthieu Moy
好的,我找到了问题所在:https://github.com/microsoft/vscode/issues/10339。这个问题已经存在一段时间了,但似乎没有计划修复。 - Matthieu Moy
2个回答

2

2020年的评论中提到的问题,microsoft/vscode 问题10339,终于在2022年11月关闭了!

PR 155450允许分别设置缩进和制表符字符的显示宽度,这是一些旧项目或编码风格的常见要求。

除了添加对editor.indentSize属性的支持外,状态栏上的缩进选项已更新,以允许独立配置editor.indentSizeeditor.tabSize

所以:

editor.indentSize:用于缩进的空格数,或'tabSize',以使用editor.tabSize的值。
editor.detectIndentation开启时,此设置将被文件内容覆盖。

这应该很快就会在VSCode Insiders中可用,并在VSCode 1.74(2022年11月)发布。


0

很遗憾,目前还没有基于(当前制表符大小的空格/制表符)的设置或扩展。


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