Kompilacja bajtowa mojego trybu:
(defun dict-setup-expansions ()
"Add `dict-mode' specific expansions."
(set (make-local-variable 'er/try-expand-list) (list #'dict-mark-article)))
daje ostrzeżenie:
Warning: assignment to free variable `er/try-expand-list'
Jest to normalna sytuacja, ponieważ er/try-expand-list
jest zdefiniowana w externa; biblioteka, expand-region
która znajduje się na stronie http://elpa.gnu.org
Mój tryb rejestruje rozszerzenie do expand-region
biblioteki, ale można uruchomić mój tryb bez expand-region
trybu.
Myślę, że właściwym sposobem postępowania z ostrzeżeniem jest dodanie deklaracji:
(defvar er/try-expand-list)
defvar
doktorzy mówią:
The `defvar' form also declares the variable as "special",
so that it is always dynamically bound even if `lexical-binding' is t.
Używam -*- lexical-binding: t -*-
. Czy to oznacza, że bez defvar
zmiennej er/try-expand-list
jest w zakresie leksykalnym i mam prawdziwy błąd?
(defvar er/try-expand-list)
.