Làm thế nào các chế độ có nguồn gốc comint theo dõi bộ đệm và quá trình?


8

Đã viết một vài comintchế độ 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-buffertrả 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 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ó?

Câu trả lời:


6

Vì những lý do bạn cung cấp, tôi thường thích giữ bộ đệm. Sau đó, tôi viết một foo-prochàm trả về quá trình tương ứng, có khả năng khởi động lại nó nếu cần. Và thậm chí đôi khi tôi còn viết một foo-bufferhàm gọi foo-procđể nó không chỉ cung cấp cho tôi bộ đệm mà còn đảm bảo rằng tiến trình đang chạy.


Cảm ơn, đây là loại hướng dẫn tôi đang tìm kiếm và tôi không có khả năng tìm thấy một nguồn tốt hơn!
Jon O.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.