Biên dịch byte của chế độ của tôi:
(defun dict-setup-expansions ()
"Add `dict-mode' specific expansions."
(set (make-local-variable 'er/try-expand-list) (list #'dict-mark-article)))
đưa ra cảnh báo:
Warning: assignment to free variable `er/try-expand-list'
Đây là tình huống bình thường vì er/try-expand-list
được định nghĩa trong externa; thư viện expand-region
tại http://elpa.gnu.org
Chế độ của tôi đăng ký mở rộng vào expand-region
thư viện nhưng vẫn ổn khi chạy chế độ của tôi mà không có expand-region
chế độ.
Tôi nghĩ rằng cách thích hợp để đối phó với cảnh báo là thêm khai báo:
(defvar er/try-expand-list)
defvar
tài liệu nói:
The `defvar' form also declares the variable as "special",
so that it is always dynamically bound even if `lexical-binding' is t.
Tôi sử dụng -*- lexical-binding: t -*-
. Điều đó có nghĩa là không có defvar
biến er/try-expand-list
trong phạm vi từ vựng và tôi có lỗi thực sự?
(defvar er/try-expand-list)
.