Prepend 'rubocop' with 'bundle exec' when appropriate
This commit is contained in:
parent
e533848dd3
commit
9916410fa8
2 changed files with 16 additions and 1 deletions
2
etc/NEWS
2
etc/NEWS
|
@ -511,6 +511,8 @@ This enables more efficient backends. See the docstring of
|
|||
*** The Rubocop Flymake diagnostic function will only run Lint cops if
|
||||
it can't find the config file.
|
||||
|
||||
*** Rubocop is called with 'bundle exec' if Gemfile mentions it.
|
||||
|
||||
** Package
|
||||
|
||||
*** New function 'package-get-version' lets packages query their own version.
|
||||
|
|
|
@ -2323,6 +2323,7 @@ If there is no Rubocop config file, Rubocop will be passed a flag
|
|||
(let ((command (list "rubocop" "--stdin" buffer-file-name "--format" "emacs"
|
||||
"--cache" "false" ; Work around a bug in old version.
|
||||
"--display-cop-names"))
|
||||
(default-directory default-directory)
|
||||
config-dir)
|
||||
(when buffer-file-name
|
||||
(setq config-dir (locate-dominating-file buffer-file-name
|
||||
|
@ -2331,7 +2332,12 @@ If there is no Rubocop config file, Rubocop will be passed a flag
|
|||
(setq command (append command '("--lint")))
|
||||
(setq command (append command (list "--config"
|
||||
(expand-file-name ruby-rubocop-config
|
||||
config-dir)))))
|
||||
config-dir))))
|
||||
(when (ruby-flymake-rubocop--use-bundler-p config-dir)
|
||||
(setq command (append '("bundle" "exec") command))
|
||||
;; In case of a project with multiple nested subprojects,
|
||||
;; each one with a Gemfile.
|
||||
(setq default-directory config-dir)))
|
||||
|
||||
(ruby-flymake--helper
|
||||
"rubocop-flymake"
|
||||
|
@ -2369,6 +2375,13 @@ If there is no Rubocop config file, Rubocop will be passed a flag
|
|||
into diags
|
||||
finally (funcall report-fn diags)))))))
|
||||
|
||||
(defun ruby-flymake-rubocop--use-bundler-p (dir)
|
||||
(let ((file (expand-file-name "Gemfile" dir)))
|
||||
(and (file-exists-p file)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
(re-search-forward "^ *gem ['\"]rubocop['\"]" nil t)))))
|
||||
|
||||
(defun ruby-flymake-auto (report-fn &rest args)
|
||||
(apply
|
||||
(if (and ruby-flymake-use-rubocop-if-available
|
||||
|
|
Loading…
Add table
Reference in a new issue