Atom украсить Ruby с Rubocop не работает

У меня в Atom установлен плагин Atom Beautify, а в моём приложении установлен гем rubocop. Даже после этих шагов украшение не работает.

Мое местоположение в рубокопе:

  $ which rubocop 
  /home/leonardo/.rbenv/shims/rubocop

В моем config.cson у меня есть код:

...
    ruby:
      rubocop_path: "/home/leonardo/.rbenv/shims/rubocop"
...

Когда я пытаюсь использовать Beatify (Ctrl+Alt+B), это возвращает ошибку:

Error: rbenv: rubocop: command not found
The `rubocop' command exists in these Ruby versions:
  2.4.3
    at /home/leonardo/.atom/packages/atom-beautify/src/beautifiers/executable.coffee:182:23
    at tryCatcher (/home/leonardo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/home/leonardo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (/home/leonardo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromise0 (/home/leonardo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/home/leonardo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:693:18)
    at Async._drainQueue (/home/leonardo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/async.js:133:16)
    at Async._drainQueues (/home/leonardo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/async.js:143:10)
    at Async.drainQueues (/home/leonardo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/async.js:17:14)
    at process._tickCallback (internal/process/next_tick.js:103:7)

2 ответа

Решение

У меня была такая же проблема. Мой проект был на версии 2.2.2, и в этой версии был установлен rubocop gem.

Атом бежал atom-beautify, но используя глобальный rbenv версия (в моем случае была 2.4.0), и это было причиной ошибки. Итак, решение было:

$ cd ~
$ rbenv version
2.4.0
$ gem install rubocop

Затем перезапустите Атом, запустите atom-beautify и теперь все должно быть хорошо.

На днях я столкнулся с той же проблемой. Я использую Ruby 2.7.4, и чтобы получить путь к использованию Atom Beautify, я использовал rbenv which rubocop вместо того which rubocop.

      $ rbenv which rubocop
/Users/YourUsername/.rbenv/versions/2.7.4/bin/rubocop

После этого скопируйте и вставьте указанный выше путь в настройки Atom Beautify-> Исполняемые файлы -> Rubocop -> Текстовое поле Путь к двоичному файлу / скрипту. А затем перезапустите Atom.

Другие вопросы по тегам