Je comprends ce que le chargement automatique fait pour les fonctions (enregistrer le fichier à charger lorsqu'une telle fonction est appelée ou que sa chaîne de documentation est récupérée). Cependant, il n'est pas clair comment utiliser la fonction de chargement automatique en conjonction avec des variables et des macros.
J'ai deux questions:
Que se passe-t-il lorsque le package a un paramètre implémenté en tant que variable que l'utilisateur peut définir, mais qu'il n'est pas chargé automatiquement? Ces variables doivent-elles être chargées automatiquement? Sinon, il s'avère que de telles variables n'existent pas, l'environnement Lisp n'en sait rien, y compris leurs valeurs par défaut, jusqu'à ce qu'une fonction de chargement automatique du package soit utilisée (généralement après le chargement des fichiers de configuration), puis si l'utilisateur les définit dans son / son fichier de configuration, c'est comme définir une variable non existante. Si la valeur de la variable est une liste non vide et que l'utilisateur utilise
push
ouadd-to-list
pour modifier sa valeur, que se passe-t-il exactement? Les valeurs par défaut sont-elles perdues?Que se passe-t-il lorsqu'une macro est chargée automatiquement? Quand faut-il charger automatiquement une macro?
setq
éditées (c'est-à-dire peu importe les valeurs qu'elles avaient avant) peuvent avoir une valeur par défaut spécifiée dansdefvar
oudefcustom
sous forme, mais en cas de liste qui peut être étendue par l'utilisateur, il est préférable d'utilisereval-after-load
non? De plus, parfois de bons défauts sont bons, même s'ils prennent la forme d'une liste ;-)