Les espaces semblent simples jusqu’à la rencontre des tabulations, retraits, espaces insécables et fins de texte. Un outil doit dire quels caractères comptent pour l’égalité. TextDiff normalise toujours les fins de transport puis applique une seule règle dans chaque ligne. L’écriture affichée des deux versions ne change jamais. On réduit ainsi un bruit connu sans prétendre que les caractères ignorés ont disparu.

Trois modes répondent à des questions différentes

Le mode exact compare chaque caractère et l’indicateur de fin. Le mode bords retire les espaces Unicode uniquement au début et à la fin avant de créer la clé : le retrait peut correspondre tandis que l’espace intérieur reste significatif. Tous les espaces retire chaque groupe de la clé ; `role: editor` et `role: editor` correspondent alors. Rien ne réécrit le texte affiché. Changer de mode change la question, pas les sources.

CRLF et LF sont des différences de transport

Une copie Windows peut employer CRLF, un autre système LF et un ancien texte CR seul. TextDiff convertit les trois en LF avant la tokenisation, afin qu’une conversion globale ne remplace pas visuellement chaque ligne. C’est une règle du produit, pas une comparaison octet par octet. Si le type exact importe, utilisez un outil binaire ou de gestion de versions. TextDiff compare du texte normalisé et ne conserve pas le séparateur d’origine.

Le retour final fait partie de la structure

Après normalisation, la présence du LF final reste liée à la dernière ligne logique. De nombreux formats terminent chaque ligne, tandis que les extraits copiés ne le font souvent pas. Masquer cet état peut faire diverger la comparaison d’une revue de code. TextDiff distingue donc les états et affiche un marqueur après l’enregistrement non terminé. Ce marqueur explique ; la vue copiée n’est pas promise comme correctif POSIX applicable.