# --- Activation des numéros de ligne (Repérage rapide) ---
set linenumbers

# --- Tabulation à 4 espaces (Standard Epitech/42) ---
set tabsize 4
set tabstospaces

# --- Coloration Syntaxique C Optimisée pour la lisibilité ---
syntax "c" "\.(c|h)$"

# 1. LES COMMENTAIRES : Gris sombre ou discret
# On veut qu'ils ne polluent pas la lecture du code actif
color brightblack "//.*"
color brightblack start="/\*" end="\*/"

# 2. LES TYPES : Bleu Cyan très vif
# Pour repérer immédiatement "int", "char", "void"
color cyan "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|(un)?signed|inline)\>"

# 3. LES POINTEURS ET ADRESSES : Rouge vif ou Magenta (LE PLUS IMPORTANT)
# C'est votre point faible visuel. On le met en alerte rouge.
# Cela va colorer tous les '*' et '&'
color brightred "[\*&]"

# 4. LES NOMBRES : Vert
# Pour distinguer "0" de "NULL" ou d'une lettre
color green "\<[0-9]+\>"
color green "\<0x[0-9a-fA-F]+\>"

# 5. LES STRING (Chaînes) : Jaune
# Pour bien voir où commence et finit le texte
color yellow ""(\\.|[^"])*""
color yellow "'(\\.|[^'])*'"

# 6. LES MOTS-CLÉS DE CONTRÔLE : Magenta ou Violet
# if, while, return... pour structurer le bloc visuel
color magenta "\<(for|if|while|do|else|case|default|switch)\>"
color magenta "\<(try|throw|catch|operator|new|delete)\>"
color magenta "\<(goto|continue|break|return)\>"

# 7. LES FONCTIONS : Blanc Brillant (ou autre couleur qui ressort)
# Pour voir les actions
color white "\<[a-z_][a-z0-9_]*\("

# 8. MACROS ET INCLUDES : Bleu
color blue "^[[:space:]]*#[[:space:]]*(define|include|(un|ifn?)def|endif|el(if|se)|if|warning|error)"

# 9. POINT-VIRGULE OUBLIÉ ? (Astuce visuelle)
# On peut colorer le ; en blanc brillant pour vérifier qu'ils sont là
color brightwhite ";"

# 10. Erreurs courantes (Espaces en fin de ligne - INTERDIT)
# Ça s'affichera en fond rouge, impossible de le rater
color ,red "[[:space:]]+$"
