2013-07-12 27 views
5

Emacs cung cấp các cảnh báo hữu ích về việc biên dịch byte. Có plugin nào thêm cảnh báo về các hoạt động phá hoại đang được sử dụng không? Vì vậy mà khi tôi viết mã như thế này:Elisp cảnh báo hoạt động phá hoại?

(defun get-countdown() 
    (let ((x (number-sequence 0 10))) 
    (message (format "%s" (sort x #'>))) 
    x))# 

Emacs phàn nàn:

temp.el:4:5:Warning: using variable modified by `sort'. 

Hoặc có lẽ cái gì đó như elisp-newbie-mode làm nổi bật chức năng tất cả các phá hoại?

+0

Điều đó sẽ gọn gàng, nhưng trình biên dịch byte không thực hiện phân tích đủ tinh vi để cung cấp cho bạn loại thông tin đó. Đối với việc làm nổi bật các cuộc gọi đến 'sắp xếp',' nreverse', v.v ... thì rõ ràng là có thể, nhưng tôi không biết bất kỳ gói nào đã sẵn sàng cho điều đó. Hình như bạn có thể viết một? – Stefan

+0

Tôi muốn thử làm một với phân tích đôi khi. Có lẽ tôi có thể tạm thời xác định lại lambda để theo dõi những gì được thực hiện với các đối số của nó. –

Trả lời

1

Tôi đã gửi bản vá cho Emacs Dev ngày hôm nay để thêm phần này vào trình biên dịch byte.

Đó là sự khởi đầu. Xem Emacs bug #15122.

+0

Cảm ơn, đó là một sự khởi đầu. Điều này có tạo ra một kết quả dương tính giả cho '(setq x (sắp xếp x # '>))' không? –

+0

Có. Vâng, nó đưa ra cảnh báo. (Nhưng nó chỉ được cho là dương tính giả.) Giống như hầu hết các cảnh báo biên dịch byte, nó không phải là cực kỳ hiểu biết. – Drew

Các vấn đề liên quan