lewang/flx

Reference to free variable flx-ido-mode

lazywei opened this issue · 6 comments

Hi

I'm using el-get for flx and flx-ido. It works fine.
But I will get the warning everytime I install a new package:

Compiling no file at Tue Jun 17 00:12:53 2014
flx/flx-ido.elc:Warning: reference to free variable `flx-ido-mode'

It doesn't effect the functionalities of flx though.

Thanks for the headsup. I'll fix it soon.

Yeah, I also get this every time. Using Emacs 24.4+.

I don't get this warning. Can you provide detailed repro steps?

Using Emacs 24.4 (obtained from http://emacsbinw64.sourceforge.net/) and with the following init.el:

(add-to-list 'load-path "~/.emacs.d/packages/")
(add-to-list 'load-path "~/.emacs.d/packages/flx/")

;; ido
(require 'ido)
(setq ido-enable-flex-matching t
      ido-enable-regexp nil
      ido-case-fold t
      ido-enable-prefix nil
      ido-enable-dot-prefix nil
      ido-use-filename-at-point 'guess
      ido-use-url-at-point nil
      ido-max-prospects 10
      ido-buffer-disable-smart-matches t
      ido-auto-merge-work-directories-length -1
      ido-show-dot-for-dired t
      ido-confirm-unique-completion t
      ido-enable-last-directory-history t
      ido-max-work-directory-list 20
      ido-max-work-file-list 50
      ido-save-directory-list-file (concat "~/.emacs.d/session/" ".ido"))
(ido-mode 'both)
(ido-everywhere t)

;; better flex in ido
(require 'flx-ido)
(setq ido-enable-flex-matching t
      ido-use-faces nil
      flx-ido-use-faces t)
(flx-ido-mode t)

Every time I start Emacs the *Compile-Log* states:

~/.emacs.d/packages/flx/flx-ido.el:Warning: reference to free variable
    `flx-ido-mode'
~/.emacs.d/packages/flx/flx-ido.el:Warning: reference to free variable
    `flx-ido-mode'

I am using flx directly from GitHub.

Every time I start Emacs, a window pops up with

Warning (bytecomp): reference to free variable ‘flx-ido-mode’ [5 times]

The advice about putting (defvar flx-ido-mode) or (eval-when-compile (devar flx-ido-mode)) in .emacs before requiring the file didn't work. The warnings come from the uses of flx-ido-mode variable in flx-ido.el. It doesn't matter if flx-ido.elc exists or not.

I don't use the package system. flx.el and flx-ido.el are on a directory listed on load-path.