Configuración
Los ajustes se resuelven en orden creciente de precedencia: valores por
defecto integrados → archivo de configuración → entorno → flags de línea
de comandos. El archivo de configuración vive en
$XDG_CONFIG_HOME/leanreview/config.json
(~/.config/leanreview/config.json); un archivo mal formado se ignora con
una advertencia impresa al iniciar.
{
"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
}
Generar y validar
Empieza desde una base completa en lugar de un archivo en blanco:
leanreview --init-config # escribe el archivo de arriba con todos los
# valores por defecto, el mapa de teclas
# completo y una referencia $schema
Para una configuración que ya existe, complétala en lugar de regenerarla:
leanreview --fill-config # añade cada ajuste, enlace y secuencia que
# falte con su valor por defecto; los valores
# existentes y las claves desconocidas no se
# tocan nunca
El mapa keys generado lista todas las asignaciones por defecto, así
que reasignar es editar, no adivinar. El generador se niega a sobrescribir
un archivo existente.
Valida en cualquier momento:
leanreview --check-config # informa errores de tipeo, acciones
# desconocidas y valores inválidos; salida
# distinta de cero si hay problemas
Los editores también validan: la referencia $schema apunta al
esquema de configuración
publicado, dando validación y autocompletado (incluidos los nombres de
acción para keys) en VS Code y JetBrains sin configuración — consulta
editors/
para Vim/Neovim.
Ajustes
editor— comando del editor (interpretado como línea de comando, p. ej.code --wait).syntax/syntax_style— habilita el resaltado y elige un estilo de Chroma. El valor por defecto,auto, coincide con el fondo de tu terminal (monokaien oscuro,githuben claro); se puede establecer explícitamente cualquier nombre de estilo de Chroma.theme— paleta de la TUI: una integrada (default,default-light,default-dark,mono) o el nombre de un archivo de tema.tab_width— columnas a las que se expande un tab.context— líneas de contexto unificado por defecto cuando no se pasa-U.keymap— conjunto base de enlaces: un preajuste integrado (default,vim,vscode,sublime,intellij) o el nombre de una entrada dekeymaps. Los preajustes superponen atajos familiares sobre los valores por defecto (los terminales no pueden reportar todos los atajos de cada editor, así que son supraconjuntos, no clones);keysysequencessiguen teniendo prioridad.keymaps— mapas de teclas con nombre definidos por el usuario,{ "<name>": { "keys": {…}, "sequences": […] } }, cada uno superpuesto a los valores por defecto al seleccionarlo. Los nombres de los preajustes integrados están reservados.keys— reasigna los enlaces de modo normal,{ "<key>": "<action>" }. Ver Teclas.sequences— reasigna las secuencias de dos teclas, una lista de objetos{ "keys": ["<k1>", "<k2>"], "action": "<action>" }. Ver Teclas.list_engine/list_filter/list_filters— valores por defecto para--list: el motor de descubrimiento (ghoglab), el filtro de búsqueda de respaldo, y un mapa de filtros con nombre seleccionables como--list :name/--list engine:name.change_colors— cómo se colorean las líneas+/-con el resaltado de sintaxis activo:diff(por defecto: rojo/verde clásico, sintaxis solo en las líneas de contexto) osyntax(sintaxis en todas).change_tint— conchange_colors: syntax, respalda las líneas cambiadas con un fondo tenue rojo/verde para que el diff siga siendo legible de un vistazo (por defectotrue).images— renderizado de imágenes en comentarios:auto(protocolo kitty en kitty/ghostty,chafasi está instalado, desactivado en otro caso),kitty,chafauoff. En modo PR/MR, los adjuntos de comentarios (user-attachmentsde GitHub,/uploadsde GitLab, incluidos los<img>en HTML) se descargan con la autenticación del CLI del forge y se guardan en caché; otras URLs remotas se muestran como etiquetas.author— el nombre con el que se atribuyen tus respuestas en las conversaciones de intercambio de revisión (por defecto:$USER).wrap/wrap_width— ajuste de línea de líneas largas del diff y previsualizaciones de comentarios (activado por defecto,walterna). El código hace ajuste de línea duro en el borde de la columna, los comentarios en límites de palabra; en diseño unificado el punto de ajuste esmin(wrap_width, view)(120 por defecto), en diseño dividido es el ancho del panel lateral. Con el ajuste de línea desactivado, las líneas largas se recortan yh/llas desplazan.
Entorno
| Variable | Efecto |
|---|---|
LEANREVIEW_EDITOR |
comando del editor (anula el archivo de configuración) |
LEANREVIEW_SYNTAX=0 |
deshabilita el resaltado de sintaxis |
NO_COLOR |
deshabilita todo el color (tema mono) |
LEANREVIEW_AUTHOR |
nombre de atribución de respuestas (anula author) |
LEANREVIEW_IMAGES |
backend de renderizado de imágenes (anula images) |
LEANREVIEW_LOG |
ruta del archivo de log |
Estado en disco
- Borradores:
$XDG_STATE_HOME/leanreview/drafts/(~/.local/state/…), un archivo JSON por fuente, escrituras atómicas. - Logs:
$XDG_STATE_HOME/leanreview/leanreview.log— nunca stdout, que pertenece a la TUI.
Temas
default se adapta al fondo del terminal; default-light y
default-dark fijan esa elección. Más allá de los integrados, deja
archivos JSON de tema en una carpeta themes/ junto a la configuración.
Un tema se referencia por su nombre de metadatos (no por el nombre del
archivo), reestiliza solo los roles que nombra (el resto conserva la
paleta por defecto) y no puede reclamar un nombre integrado:
{
"$schema": "https://perrito666.github.io/leanreview/schema/leanreview-theme.schema.json",
"name": "dusk",
"description": "verdes apagados, acentos magenta",
"styles": {
"addition": { "fg": "108" },
"deletion": { "fg": "#d75f5f", "bold": true },
"title": { "fg": "15", "bg": "53" },
"addition_tint": { "bg": "236" }
}
}
Roles: addition, deletion, context, metadata, gutter, cursor,
select, search, marker, title, status, error, key, faint,
comment, addition_tint, deletion_tint. Los colores son índices de la
paleta ANSI o hex. leanreview --check-config valida la carpeta: archivos
rotos, nombres duplicados o reservados y roles desconocidos se informan.