ruby-rubocop-use-bundler: New user option
* lisp/progmodes/ruby-mode.el (ruby-rubocop-use-bundler): New user option. (ruby-flymake-rubocop--use-bundler-p): Use it. * etc/NEWS: Mention it.
This commit is contained in:
parent
ad588f8131
commit
f560e75933
2 changed files with 26 additions and 5 deletions
5
etc/NEWS
5
etc/NEWS
|
@ -1706,6 +1706,11 @@ options of GNU 'ls'.
|
|||
If non-nil, moving point forward or backward between widgets by typing
|
||||
'TAB' or 'S-TAB' skips over inactive widgets. The default value is nil.
|
||||
|
||||
** Ruby mode
|
||||
New user option 'ruby-rubocop-use-bundler'. By default it retains the
|
||||
previous behavior: read the contens of Gemfile and act accordingly. But
|
||||
you can also set it to t or nil to skip the check.
|
||||
|
||||
** Miscellaneous
|
||||
|
||||
---
|
||||
|
|
|
@ -2553,6 +2553,16 @@ If there is no Rubocop config file, Rubocop will be passed a flag
|
|||
:type 'string
|
||||
:safe 'stringp)
|
||||
|
||||
(defcustom ruby-rubocop-use-bundler 'check
|
||||
"Non-nil with allow `ruby-flymake-rubocop' to use `bundle exec'.
|
||||
When the value is `check', it will first see whether Gemfile exists in
|
||||
the same directory as the configuration file, and whether it mentions
|
||||
the gem \"rubocop\". When t, it's used unconditionally. "
|
||||
:type '(choice (const :tag "Always" t)
|
||||
(const :tag "No" nil)
|
||||
(const :tag "If rubocop is in Gemfile" check))
|
||||
:safe 'booleanp)
|
||||
|
||||
(defun ruby-flymake-rubocop (report-fn &rest _args)
|
||||
"RuboCop backend for Flymake."
|
||||
(unless (executable-find "rubocop")
|
||||
|
@ -2614,11 +2624,17 @@ If there is no Rubocop config file, Rubocop will be passed a flag
|
|||
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)))))
|
||||
(cond
|
||||
((eq t ruby-rubocop-use-bundler)
|
||||
t)
|
||||
((null ruby-rubocop-use-bundler)
|
||||
nil)
|
||||
(t
|
||||
(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
|
||||
|
|
Loading…
Add table
Reference in a new issue