Kate substitui espaços de alinhamento por tabulações

3

Ao recuar um bloco de código no Kate (3.11.2), espaços usados para alinhamento são substituídos por tabulações, arruinando todos os alinhamentos e me colocando no inferno de restaurar todos esses espaços.

Exemplo:

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

( —→ são guias, espaços)

Eu recuo usando duas guias de caracteres largos. O problema é quando eu seleciono essas linhas e pressiono a tecla Tab para adicionar um nível de recuo: ela substitui grupos de dois espaços por uma guia:

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

Removendo o último espaço (ímpar). Isso está errado, pois a largura das guias é indefinida e deve ser capaz de variar sem interromper a apresentação do código.

Nas minhas configurações ( Editor Component → Editing → Indentation ), defino Indent using em Tabulators and Spaces , mas ele não é salvo e retorna imediatamente em Tabulators .

É um bug? Ou a minha Kate está mal configurada?

    
por lesenk 17.10.2013 / 08:49

1 resposta

4

Sendo um desenvolvedor do Kate, a resposta é a seguinte:

O sistema de recuo do Kate é compatível com o conceito de recuo e alinhamento :

Alternatively, an array of two elements can be returned:

   return [ indent, align ];

In this case, the first element is the indentation depth as above with the same meaning of the special values. However, the second element is an absolute value representing a column for "alignment". If this value is higher than the indent value, the difference represents a number of spaces to be added after the indentation of the first parameter. Otherwise, the second number is ignored. Using tabs and spaces for indentation is often referred to as "mixed mode".

Então, teoricamente, funciona. No entanto, na prática, o penetrador "C Style" e a maioria dos outros penetradores não suportam isso. Em vez disso, eles apenas retornam o nível de recuo sem distinguir recuo do alinhamento.

Em outras palavras: o recurso que você deseja não está implementado.

A boa notícia é que todos esses indenters são escritos em JavaScript e, portanto, podem ser mudou muito facilmente . Contribuições são sempre bem-vindas em [email protected]. Então, se você estiver interessado em trabalhar nisso, entre em contato conosco!

    
por 04.02.2014 / 00:33