- ;; Add one level of children.
- (dolist (child (company-files-directory-files file ""))
- (push (concat file
- (unless (eq (aref file (1- (length file))) ?/) "/")
- child) candidates))))
- (setq company-files-completion-cache (cons dir (nreverse candidates))))
- (cdr company-files-completion-cache)))
+ (push file directories)))
+ (dolist (directory (reverse directories))
+ ;; Add one level of children.
+ (dolist (child (company-files--directory-files directory ""))
+ (push (concat directory
+ (unless (eq (aref directory (1- (length directory))) ?/) "/")
+ child) candidates)))
+ (setq company-files--completion-cache (cons key (nreverse candidates))))
+ (all-completions prefix
+ (cdr company-files--completion-cache))))
+
+(defun company-file--keys-match-p (new old)
+ (and (equal (cdr old) (cdr new))
+ (string-prefix-p (car old) (car new))))