Configuration
Les réglages se résolvent par ordre de priorité croissante : valeurs par
défaut intégrées → fichier de configuration → environnement → options de
ligne de commande. Le fichier de configuration se trouve à
$XDG_CONFIG_HOME/leanreview/config.json
(~/.config/leanreview/config.json) ; un fichier malformé est ignoré avec
un avertissement affiché au démarrage.
{
"editor": "nvim -f",
"syntax": true,
"syntax_style": "github",
"theme": "default",
"tab_width": 4,
"context": 3,
"keys": { " ": "down", "m": "next-hunk" },
"list_engine": "gh",
"list_filter": "is:open review-requested:@me",
"list_filters": { "bugs": "is:open label:bug" },
"wrap": true,
"wrap_width": 120
}
Générer et valider
Partez d'une base complète plutôt que d'un fichier vide :
leanreview --init-config # écrit le fichier ci-dessus avec toutes les
# valeurs par défaut, le keymap complet et une
# référence $schema
Pour une configuration qui existe déjà, complétez-la au lieu de la régénérer :
leanreview --fill-config # ajoute chaque réglage, liaison et séquence
# manquants à leur valeur par défaut ; les
# valeurs existantes et les clés inconnues ne
# sont jamais touchées
Le map keys généré liste toutes les associations par défaut : remapper
devient une édition, pas une devinette. Le générateur refuse d'écraser un
fichier existant.
Validez à tout moment :
leanreview --check-config # signale fautes de frappe, actions inconnues
# et valeurs invalides ; code de sortie non nul
# en cas de problème
Les éditeurs valident aussi : la référence $schema pointe vers le
schéma de configuration publié,
offrant validation et complétion (y compris les noms d'action pour keys)
dans VS Code et JetBrains sans réglage — voir
editors/
pour Vim/Neovim.
Réglages
editor— commande de l'éditeur (analysée comme une ligne de commande, p. ex.code --wait).syntax/syntax_style— active la coloration syntaxique et choisit un style Chroma. La valeur par défaut,auto, s'adapte à l'arrière-plan de votre terminal (monokaisur fond sombre,githubsur fond clair) ; tout nom de style Chroma peut être défini explicitement.theme— palette de la TUI : une palette intégrée (default,default-light,default-dark,mono) ou le nom d'un fichier de thème.tab_width— nombre de colonnes vers lesquelles une tabulation s'étend.context— nombre de lignes de contexte unifié par défaut quand-Un'est pas passé.keymap— jeu de liaisons de base : un préréglage intégré (default,vim,vscode,sublime,intellij) ou le nom d'une entrée dekeymaps. Les préréglages superposent des raccourcis familiers aux valeurs par défaut (les terminaux ne peuvent pas rapporter tous les raccourcis de chaque éditeur : ce sont des sur-ensembles, pas des clones) ;keysetsequencesgardent la priorité.keymaps— jeux de touches nommés définis par l'utilisateur,{ "<name>": { "keys": {…}, "sequences": […] } }, chacun superposé aux valeurs par défaut quand il est sélectionné. Les noms des préréglages intégrés sont réservés.keys— remappe les liaisons du mode normal,{ "<key>": "<action>" }. Voir Touches.sequences— remappe les séquences à deux touches, une liste d'objets{ "keys": ["<k1>", "<k2>"], "action": "<action>" }. Voir Touches.list_engine/list_filter/list_filters— valeurs par défaut pour--list: le moteur de découverte (ghouglab), le filtre de recherche de secours, et une table de filtres nommés sélectionnables sous la forme--list :name/--list engine:name.change_colors— coloration des lignes+/-quand la coloration syntaxique est active :diff(par défaut : rouge/vert classique, syntaxe réservée aux lignes de contexte) ousyntax(syntaxe partout).change_tint— avecchange_colors: syntax, souligne les lignes modifiées d'un fond discret rouge/vert pour que le diff reste lisible au premier coup d'œil (par défauttrue).images— rendu des images des commentaires :auto(protocole kitty sur kitty/ghostty,chafas'il est installé, désactivé sinon),kitty,chafaouoff. En mode PR/MR, les pièces jointes des commentaires (user-attachmentsGitHub,/uploadsGitLab, y compris les balises HTML<img>) sont téléchargées via l'authentification du CLI de la forge et mises en cache ; les autres URL distantes s'affichent comme des étiquettes.author— le nom attribué à vos réponses dans les conversations d'échange de revue (par défaut :$USER).wrap/wrap_width— retour à la ligne des lignes de diff longues et des aperçus de commentaires (activé par défaut,wbascule). Le code revient à la ligne strictement au bord de la colonne, les commentaires aux limites de mots ; en disposition unifiée, le point de retour à la ligne estmin(wrap_width, view)(120 par défaut), en disposition scindée c'est la largeur du panneau latéral. Retour à la ligne désactivé, les lignes longues sont tronquées eth/lles font défiler.
Environnement
| Variable | Effet |
|---|---|
LEANREVIEW_EDITOR |
commande de l'éditeur (remplace le fichier de configuration) |
LEANREVIEW_SYNTAX=0 |
désactive la coloration syntaxique |
NO_COLOR |
désactive toute couleur (thème mono) |
LEANREVIEW_AUTHOR |
nom d'attribution des réponses (remplace author) |
LEANREVIEW_IMAGES |
backend de rendu des images (remplace images) |
LEANREVIEW_LOG |
chemin du fichier journal |
État sur le disque
- Brouillons :
$XDG_STATE_HOME/leanreview/drafts/(~/.local/state/…), un fichier JSON par source, écritures atomiques. - Journaux :
$XDG_STATE_HOME/leanreview/leanreview.log— jamais la sortie standard, dont la TUI est propriétaire.
Thèmes
default s'adapte au fond du terminal ; default-light et
default-dark figent ce choix. Au-delà des palettes intégrées, déposez
des fichiers JSON de thème dans un dossier themes/ à côté de la
configuration. Un thème est référencé par son nom de métadonnées (pas
par le nom du fichier), ne restyle que les rôles qu'il nomme (le reste
garde la palette par défaut) et ne peut pas revendiquer un nom intégré :
{
"$schema": "https://perrito666.github.io/leanreview/schema/leanreview-theme.schema.json",
"name": "dusk",
"description": "verts sourds, accents magenta",
"styles": {
"addition": { "fg": "108" },
"deletion": { "fg": "#d75f5f", "bold": true },
"title": { "fg": "15", "bg": "53" },
"addition_tint": { "bg": "236" }
}
}
Rôles : addition, deletion, context, metadata, gutter, cursor,
select, search, marker, title, status, error, key, faint,
comment, addition_tint, deletion_tint. Les couleurs sont des indices
de la palette ANSI ou de l'hex. leanreview --check-config valide le
dossier : fichiers cassés, noms dupliqués ou réservés et rôles inconnus
sont tous signalés.