diff: `-y` draws the gutter marker at the wrong column unless the gutter is 3 or 4 columns wide
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 68/100
Direção de pesquisa
Comece rastreando Config::separator_pos e process_half_line no caminho de saída lado a lado para ver onde o marcador da gutter é emitido e onde a coluna dois começa. Reproduza o problema com diff -y --width=40 e as combinações de largura e tamanho de tabulação descritas e, em seguida, adicione cobertura de regressão mostrando que o marcador fica centralizado em separator_pos para gutters mais largas.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
In side-by-side output, Config::separator_pos holds the middle of the gutter, but the gutter marker is not written there. It goes wherever process_half_line stopped padding the left half line, which is one column past sdiff_half_width. separator_pos is only read afterwards, to pad from the marker to the start of column two.
For a gutter g columns wide, separator_pos is sdiff_half_width + (g - 1) / 2. The two positions agree only when g is 3 or 4. The default --width=130 --tabsize=8 produces a gutter of exactly 3, which is why the default output looks correct, but any width or tab size where the tab alignment pushes column two further past the balance point drifts. --width=130 --tabsize=4 is off by one, --width=200 --tabsize=8 by two, --width=130 --tabsize=128 by 61.
printf 'aa\n' > f1; : > f2
diff -y --width=40 f1 f2 | expand | cat -A
aa <$
diffutils diff -y --width=40 f1 f2 | expand | cat -A
aa <$
- Linguagem predominante
- Rust
- Estrelas
- 276
- Forks
- 39
- Merge médio
- 4d 12h
- PRs com merge (30d)
- 3
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de uutils/diffutils
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
Todas as issues de uutils/diffutils
Issues semelhantes
-
bug github_actions
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
registrystack/registry-stack#1393 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
longbridge/gpui-kit#3223 ·
-
bug engine
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
rocky-data/rocky#2181 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
oasisprotocol/oasis-sdk#2523 ·
-
[indexer] [QA] Add a focused test for the new NonRetryableError / assertSocketAlive() behavior. Abertabot:ai-assisted component:indexer QA-roadmap status:untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
midnightntwrk/midnight-indexer#1557 ·