Après avoir écrit quelques comint
modes personnalisés , je trouve souvent difficile de décider comment garder une trace des tampons et des processus: par exemple, pour associer différents tampons source à différents interprètes. Est-il préférable de conserver une référence au tampon ou au processus?
Étant donné un tampon, on peut trouver son processus associé en utilisant get-buffer-process
. Inversement, étant donné un processus, process-buffer
retourne son tampon associé. Les tampons et les processus permettent également une couche supplémentaire d'indirection en les recherchant par un nom unique, mais cela semble fragile par rapport à la simple conservation d'une référence à l'objet lui-même.
Une possibilité semble clairement mauvaise, car elle viole le principe de stockage des données une fois et une seule fois: à savoir conserver les références à la fois au tampon et au processus.
La plupart des comint-
fonctions d'envoi d'entrée prennent un processus plutôt qu'un tampon comme argument, ce qui plaide pour s'accrocher à l'objet processus, pas au tampon. D'un autre côté, les tampons ont tendance à rester plus longtemps que les processus: un processus peut se terminer ou être tué et un nouveau processus démarré dans le tampon qu'il utilisait précédemment.
Existe-t-il d'autres arguments convaincants pour référencer le processus ou son tampon?