Deux éditeurs côte à côte : Code (gauche) et Patch/Diff (droite).
Actions rapides : Copier, Coller, Coller dans le code et Snapshot manuel.
Bouton « Appliquer le patch » avec compteur de hunks et temps de traitement.
Panneau « Sortie / erreurs » toujours visible et repliable sous l’éditeur de patch.
Teinte d’arrière‑plan selon le résultat : vert (OK), jaune (partiel), rouge (erreur).
Zébrage par hunk dans l’éditeur de patch pour faciliter la lecture.
Pastilles d’état (OK/Partiel/Erreur) et nombre de hunks ; clic pour passer à l’échec suivant.
Barre d’onglets avec noms modifiables (double‑clic/double‑tap) et indicateur de modifications non enregistrées.
Application de patchs
Prend en charge les diffs unifiés standard et les patchs sans en‑têtes ; reconnaît les hunks implicites « @@ ».
Tolérant aux espaces : bords rognés, exact, ignorer l’indentation, ignorer tous les espaces et mode souple qui ignore guillemets/échappements/commentaires.
Respecte et normalise les fins de ligne (LF/CRLF) et préserve la dernière ligne vide si elle existait.
Insertions par contexte quand il n’y a pas de suppressions ; balayage local quand ctx/del/add sont mélangés.
Évite les insertions en double si le contenu est déjà appliqué (idempotent).
Reconnaît et préserve « No newline at end of file » et les en‑têtes Git courants, en les ignorant lors de l’application.
Nomme automatiquement l’onglet à partir des en‑têtes ---/+++ du diff lorsque c’est pertinent.
Visualisation des erreurs
Surligne les lignes problématiques dans le code et marque le numéro de ligne avec un point.
Marque la ligne correspondante dans l’éditeur de patch pour référence croisée.
Journal détaillé de l’essai (mode utilisé, candidats, raison de l’échec, attendu vs. réel).
Navigation entre les échecs avec Alt+↑ et Alt+↓.
Historique et versions
Historique par onglet avec snapshots automatiques après application d’un patch et snapshots manuels à la demande.
Snapshot automatique lors du collage ou du glisser‑déposer dans l’éditeur de code.
Option « Original » pour revenir à l’état initial de l’onglet.
Chaque entrée affiche date/heure, hunks appliqués et taille (lignes/octets).
Fichiers et projet
Plusieurs onglets de fichiers avec indicateur « non enregistré ».
Enregistrer le projet dans le navigateur (IndexedDB) avec nom et ID stables.
Charger et gérer les projets enregistrés (liste et suppression).
Renommer le projet depuis le chip de l’en‑tête (double‑clic/double‑tap).
Nom d’onglet automatique à partir du nom de fichier détecté dans le diff.
Importation et exportation
Télécharger le fichier actif en .txt en respectant le nom de l’onglet.
Télécharger tout le projet en ZIP (un fichier par onglet).
Glisser‑déposer des fichiers ou du texte dans l’un ou l’autre éditeur.
Si vous déposez un fichier dans l’éditeur de code, son contenu est utilisé et l’onglet peut être renommé d’après lui.
Si vous collez/glissez un diff dans l’éditeur de patch, le fichier est détecté et l’onglet peut être nommé automatiquement.
Presse‑papiers
Copier rapidement le contenu de l’éditeur de code.
Coller depuis le presse‑papiers dans les deux éditeurs.
Copie automatique du résultat dans le presse‑papiers lorsque le patch s’applique à 100 % (état : « Appliqué, copié dans le presse‑papiers »).
Langues et localisation
Interface disponible en 13 langues (es, en, fr, de, it, pt, ru, zh, ja, ko, ar, hi, tr).
Sélecteur de langue avec mode « Auto » ; persistance dans le navigateur.
L’URL inclut ?lang=XX pour partager la langue.
Prise en charge de l’écriture de droite à gauche pour l’arabe.
Thème et apparence
Sélecteur de thème : Clair, Sombre ou Automatique (suit le système).
Synchronise le thème de CodeMirror pour un confort de lecture.
Ajustement automatique du zébrage des hunks et des contrastes selon le thème.
Édition et détection de langue
Détection automatique de la langue du fichier et sélection manuelle optionnelle par onglet.
Chargement dynamique des modes CodeMirror pour la coloration syntaxique.
Mode ajusté par l’extension de fichier détectée.
Accessibilité et utilisabilité
Raccourcis clavier pour naviguer entre les échecs et les actions courantes.
Libellés d’accessibilité (aria‑label) et info‑bulles sur les boutons.
Avertissement lors de la fermeture/du rechargement s’il existe des modifications non enregistrées.
Gestes mobiles : double‑tap pour renommer onglets et projet.
Sécurité et données
Les projets et l’historique sont stockés localement dans votre navigateur (IndexedDB).
Le presse‑papiers est utilisé localement ; le navigateur peut demander une autorisation.
Les packs de langue sont chargés depuis "/i18n/<code>.json" sans téléverser vos fichiers.
Options
Choisir la langue de l’interface (ou « Auto »).
Choisir le thème de l’interface (Clair, Sombre ou Automatique).
Définir manuellement la langue du fichier par onglet (ou laisser Auto).
Enregistrer/charger des projets et gérer les éléments enregistrés.
Télécharger le fichier actif ou tout le projet en ZIP.