Well, it'd be:
(setq flycheck-command-wrapper-function
(lambda (command)
(append '("bundle" "exec") command)))
I think that there's a misunderstanding here, and I see that command
is quite a confusing name here.
You can't use funcall
here because command
is not an Emacs Lisp interactive command—i.e. what you'd execute with M-x
—in this case. It's a list of strings that constitute an executable command for the operating system. Essentially it's what you'd type into your shell to run a syntax checker, although Flycheck does not use the shell to run its commands for safety and efficiency reasons.
Right before it's about to execute such a command for a syntax checker Flycheck gives to whole command as argument to flycheck-command-wrapper-function
. The function must then return another, potentially entirely different, list which is the command that Flycheck will subsequently execute without any further checks.
To run a syntax checker through bundle we just need to return the command with bundle exec
prepended. Mind you, Flycheck doesn't use the shell so you need to pass bundle exec
as two separate list items.
I hope that this clears up things a little bit.