Đã viết một vài comint
chế độ tùy chỉnh , tôi thường thấy khó khăn khi quyết định cách theo dõi bộ đệm và quy trình: ví dụ, để liên kết các bộ đệm nguồn khác nhau với các trình thông dịch khác nhau. Là tốt hơn để giữ một tham chiếu đến bộ đệm hoặc quá trình?
Đưa ra một bộ đệm, người ta có thể tìm thấy quá trình liên quan của nó bằng cách sử dụng get-buffer-process
. Ngược lại, đưa ra một quy trình, process-buffer
trả về bộ đệm liên quan của nó. Cả bộ đệm và quy trình cũng cho phép thêm một lớp cảm ứng bằng cách tìm kiếm chúng theo tên duy nhất, nhưng điều này có vẻ mong manh so với việc chỉ giữ một tham chiếu đến chính đối tượng.
Một khả năng rõ ràng là xấu, vì nó vi phạm nguyên tắc lưu trữ dữ liệu một lần duy nhất: cụ thể là, giữ các tham chiếu đến cả bộ đệm và quy trình.
Hầu hết các comint-
hàm để gửi đầu vào đều lấy một quá trình chứ không phải là một bộ đệm làm đối số, lập luận cho việc treo vào đối tượng tiến trình, chứ không phải bộ đệm. Mặt khác, bộ đệm có xu hướng gắn bó lâu hơn các quy trình: một quy trình có thể kết thúc hoặc bị giết và một quy trình mới bắt đầu trong bộ đệm mà nó đã sử dụng trước đó.
Có những lý lẽ thuyết phục khác để tham khảo quá trình hoặc bộ đệm của nó?