Después de haber escrito un par de comint
modos personalizados , a menudo me resulta difícil decidir cómo hacer un seguimiento de los buffers y procesos: por ejemplo, asociar diferentes buffers de origen con diferentes intérpretes. ¿Es mejor mantener una referencia al búfer o al proceso?
Dado un búfer, uno puede encontrar su proceso asociado usando get-buffer-process
. Por el contrario, dado un proceso, process-buffer
devuelve su búfer asociado. Tanto los buffers como los procesos también permiten una capa adicional de indirección al buscarlos por un nombre único, pero esto parece frágil en comparación con solo mantener una referencia al objeto en sí.
Una posibilidad parece claramente mala, ya que viola el principio de almacenar datos una sola vez: es decir, mantener referencias tanto al búfer como al proceso.
La mayoría de las comint-
funciones para enviar entradas toman un proceso en lugar de un búfer como argumento, lo que argumenta aferrarse al objeto del proceso, no al búfer. Por otro lado, los búferes tienden a permanecer más tiempo que los procesos: un proceso puede finalizar o finalizar y se inicia un nuevo proceso en el búfer que utilizó anteriormente.
¿Hay otros argumentos convincentes para hacer referencia al proceso o su búfer?