2018-08-20

YAPF + PyCharm = ❤️

Из данной статьи вы узнаете о том, как интегрировать между собой YAPF и IDE от JetBrains: PyCharm или InteliJ IDEA.

link YAPF

YAPF(Yet Another Python Formater) - Это очень удобный инструмент для поддержания оформления кода в консистентом состояние без утомительных код ревью. Поделившись стайл-гайдом с коллегами можно легко форматировать код в одном стиле.

К плюсам YAPF можно отнести:

  • Простоту использования
  • Совместимость с PEP8
  • Гибкие возможности для настройки
  • Удобную модель конфигурирования (глобальные файлы в пользовательской директории или локальные папки в репозитории проекта)

По умолчанию IDE от JetBrains не умеют работать с YAPF. Но силами сообщества (в лице Chaerim Yeo) был разработан плагин yapf-jetbrains, именно его мы и будем использовать.

link Базовая настройка

Прежде всего необходимо установить сам YAPF, если вы не сделали этого раньше Я рекомендую устанавливать его глобально с помощью команды:.

    pip install yapf
  

Теперь можно установить плагин:

  1. Запускаем IDE и переходим в Preferences > Plugins > Browse Repositories
Окно Preferences Окно Preferences
  1. В поле для ввода поискового запроса вводим YAPF и устанавливаем плагин
Окно Browse Repositories Окно Browse Repositories
  1. Перезапускаем IDE
  2. Открываем *.py файл
  3. Форматируем файл одним из двух способов:
    • Открываем меню Code, и кликаем по Reformat Code with YAPF
    • Нажимаем комбинацию клавиш: ^⌥;

link Продвинутая настройка

Среди прочего функционала для рефакторинга, в IDE от JetBrains присутствует возможность отсортировать импорты в питоновских модулях. Её можно объединить с YAPF форматирование используя встроенные возможности IDE - макросы.

link Создание макроса
  1. Открываем меню Edit, переводим курсор на Macros, и кликаем по Start Macro Recording
  2. Открываем меню Code, и кликаем по Reformat Code with YAPF
  3. Открываем меню Code, и кликаем по Optimize Imports
  4. Открываем меню Edit, переводим курсор на Macros, и кликаем по Stop Macro Recording
  5. Вводим имя для нового макроса: YAPF
  6. Открываем меню Edit, переводим курсор на Macros, и кликаем по Edit Macros
  7. Ищем макрос, который мы только что создали: YAPF
  8. В правой части окна удаляем все ненужные шаги, до тех пор пока не останутся только два:
    • Action: YapfFormat
    • Action: OptimizeImports
  9. Кликаем OK в окне Edit Macros
  10. Открываем *.py файл
  11. Форматируем файл с помощью нашего макроса: открываем меню Edit, переводим курсор на Macros, и кликаем по YAPF
Окно Edit Macros Окно Edit Macros
link Настройка горячих клавиш
  1. Открываем настройки Preferences > Keymap
  2. В строке поиска вводим имя макроса: YAPF
  3. Находим в списке элемент Macros > YAPF
  4. Открываем контекстное меню для этого пункта и кликаем по Add Keyboard Shortcut
  5. Вводим удобную комбинацию клавиш, я использую: ^⌥L
  6. Кликаем OK в окне Keyboard Shortcut
  7. Кликаем OK в окне Preferences
  8. Открываем *.py файл
  9. Форматируем файл с помощью комбинации ^⌥L
Окно Preferences Окно Preferences