Emacs: Статический анализ Ruby-кода
Rubocop – это полезный инструмент для любого Ruby-разработчика. Rubocop осуществляет статический анализ Ruby-кода основываясь на Ruby Style Guide и помогает сделать ваш код чуточку читабельнее (а значит и лучше).
Так как Rubocop является утилитой командной строки, его ручной запуск является не самым удобным в работе решением. Однако, нет ничего сложного в том, чтобы настроить интеграцию Rubocop и Emacs, получив при этом:
- Автоматический запуск Rubocop для текущего файла
- Подсветку ошибок и предупреждений прямо в коде
- Возможность получить список всех ошибок с ссылками на те месте, где они обнаружены
Ну что же, сделаем это!
rvm.el
Вы ведь используете RVM и Bundler? Тогда мне не нужно объяснять почему очень важно настроить взаимодействие Emacs и RVM.
Для решения этой задачи нам потребуется пакет rvm.el. Его установка и настройка тривиальна в случае если у вас настроен package.el (пример):
1 2 3 4 5 6 |
|
Вот и все, rvm.el настроен.
Flycheck
Flycheck – это пакет, который является связующей прослойкой между различными статическими анализаторами кода и Emacs. Крайне полезный инструмент. Итак, его настройка:
1 2 3 4 5 6 7 8 9 10 11 |
|
Все, Flycheck настроен. А знаете что самое приятное? При следующем открытии Ruby-файла Flycheck автоматически начнет использовать Rubocop! Добрая магия.
Так, нажав C-c ! l
можно получить список всех предупреждений для текущего файла:
P.S. rubocop-emacs
Есть еще одна маленькая вещь о которой стоит упомянуть. Пакет rubocop-emacs от автора Rubocop. По сравнению с Flycheck этот пакет далеко не так удобен, однако в нем есть одна интересная возможность: автоматическая коррекция части ошибок и предупреждений в вашем коде. Итак:
1 2 3 4 5 6 7 8 |
|
Теперь, нажав C-c C-r F
мы сделаем наш код чуточку чище.