afnanenayet / afnanenayet/diffsitter

[feature]: capture semantically non-meaningful changes separately

Aberta
#1,276 1 comentário 1 reação 0 responsáveis Ver no GitHub
enhancement
Linguagem predominante
Rust
Estrelas
2.4k
Forks
53
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

**Is your feature request related to a problem? Please describe.**
The goal of diffsitter is to highlight **semantically meaningful code changes** using ASTs, unlike traditional line-based text diffs, which include both meaningful and trivial edits and simple formatting that is often the case when developing code. However, there is currently no way to isolate the *remainder* of the diff — the changes that are syntactically present but **semantically irrelevant** (e.g., formatting, ordering, whitespace, or other non-functional edits).

This could be useful for tools that automate the commit message generation with LLM: to keep the important and meaningless information separate, and generate better accuracy: paying more attention to semantically important changes and potentially using a more expensive LLM model, while processing the remainder of less important changes with a cheaper model, asking to keep the summary short and saving output tokens.

**Describe the solution you'd like**
Provide an option to output **two complementary diff views**:
- **Semantic diff** — semantically meaningful changes (current behavior).
- **Non-semantic diff** — the remaining changes after semantic ones are removed.

This would allow the semantic diff to remain clean while still keeping track of the **non-essential modifications explicitly visible**.

**Describe alternatives you've considered**
Using both a traditional diff and diffsitter output. However, this results in **overlap**, where semantically meaningful changes appear in both outputs, creating duplication and reducing clarity.

**Additional context**
This feature would enable clearer review workflows by separating **behavioral changes** from **cosmetic or structural edits**.

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.