Saltar a contenido

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 (monokai en oscuro, github en 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 de keymaps. 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); keys y sequences siguen 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 (gh o glab), 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) o syntax (sintaxis en todas).
  • change_tint — con change_colors: syntax, respalda las líneas cambiadas con un fondo tenue rojo/verde para que el diff siga siendo legible de un vistazo (por defecto true).
  • images — renderizado de imágenes en comentarios: auto (protocolo kitty en kitty/ghostty, chafa si está instalado, desactivado en otro caso), kitty, chafa u off. En modo PR/MR, los adjuntos de comentarios (user-attachments de GitHub, /uploads de 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, w alterna). 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 es min(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 y h/l las 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.