Kate 用制表符替换对齐空格

Kate 用制表符替换对齐空格

当在 Kate (3.11.2) 中缩进代码块时,用于对齐的空格被制表符取代,破坏了所有对齐,并使我陷入恢复所有这些空格的地狱。

例子:

if (true)
{
—→$foo = 'bar'.
—→•••••••'baz';
}

—→是制表符、空格)

我使用两个字符宽的制表符缩进。问题是,当我选择这些行并按按键添加Tab缩进级别时:它用一个制表符替换两个空格的组:

—→if (true)
—→{
—→—→$foo = 'bar'.
—→—→—→—→—→'baz';
—→}

删除最后一个(奇数)空格。这是错误的,因为选项卡宽度未定义,并且必须能够在不破坏代码表示的情况下变化。

在我的设置 ( Editor Component → Editing → Indentation) 中,我设置为Indent usingonTabulators and Spaces但它不会保存它并立即返回到Tabulators

这是一个错误吗?或者我的凯特配置错误?

答案1

作为一名Kate开发者,答案如下:

Kate 的压痕系统支持缩进和对齐的概念:

或者,可以返回两个元素的数组:

   return [ indent, align ];

在这种情况下,第一个元素是上面的压痕深度,与特殊值的含义相同。然而,第二个元素是表示“对齐”的列的绝对值。如果该值高于缩进值,则差值表示在第一个参数的缩进后添加的空格数。否则,第二个数字将被忽略。使用制表符和空格进行缩进通常称为“混合模式”。

所以理论上它是有效的。然而,实际上“C 型”压头和大多数其他压头并不支持这一点。相反,它们只是返回缩进级别,而不区分缩进和对齐。

换句话说:你想要的功能没有实现。

好消息是所有这些压头都是用 JavaScript 编写的,因此可以很容易改变。随时欢迎您的贡献[电子邮件受保护]。因此,如果您有兴趣从事这方面的工作,请联系我们!

相关内容