szermatt / emacs-bash-completion

Add programmable bash completion to Emacs shell-mode
GNU General Public License v2.0
279 stars 33 forks source link

Completions are not shown in `compile' minibuffer when helm-mode is on. #43

Closed daanturo closed 3 years ago

daanturo commented 3 years ago

Hi. This package is fantastic for shell, but recently the new update broke "compile" if helm is used.

With "helm-mode" on. After invoking "compile" and the mini buffer is ready (with "make -k " typically), pressing TAB gives the following messages:

Minibuf-1 /some-directory/ t nil boundaries metadata signal (error) bash-completion-comm mapcar process-get completion-ignore-case try-completion t test-completion default-directory bash-completion-nospace bash-completion-use-separate-processes] 8

(fn STR PREDICATE ACTION)] nil (nil) (metadata) nil t (0) helm-set-case-fold-search completion-all-completions last nil 0 emacs completion-metadata-get display-sort-function #[257 \300\301"\207 [sort helm-generic-sort-fn] 4

(fn CANDIDATES)] t copy-sequence helm-completion-in-region--initial-filter completion-ignore-case helm-completion-style helm-completion--sorting-done] 12

(fn STR PREDICATE ACTION)] nil nil nil t nil t helm-comp-read-get-candidates helm-cr-default helm-pattern] 6]’ (wrong-type-argument stringp t)

This doesn't happen if "helm-mode" is off or "bash-completion" hasn't been initialized.

szermatt commented 3 years ago

Yes, something was really wrong with the way bash-completion handled predicate functions passed to dynamic completion functions.

I fixed that and it looks like bash completion now works again with helm mode enabled. Please let me know if doesn't work on your system.