Как добавить новый функционал в вашу любимую идеешку
![](https://habrastorage.org/getpro/habr/upload_files/cf2/8d6/c7c/cf28d6c7ce929150a27faaedc3ffbc18.jpg)
Привет, Хабр!
Хочу поведать о том, как я добавил новый функционал в Android Studio (спойлер, все то же самое работает в IntelliJ IDEA, PyCharm, CLion итд), и это ускорило мою жизнь в разы, а глаз почти что перестал дергаться.
Введение
Недавно, работая над одним из своих проектов в Android Studio, я осознал, что многие мои действия повторяются слишком часто.
Так, у меня была задача добавить новый UI элемент, который бы находился в самом конце списка. Соответственно, чтобы увидеть этот элемент, мне приходилось проматывать весь список вручную. А поскольку список был достаточно большим, мне приходилось тратить на это с десяток секунд. В какой-то момент мне это делать надоело.
Тогда я загуглил adb команду, которая делала бы это действие за меня.
Следующая команда помогла ускорить скролл вниз в несколько раз:
adb shell input swipe 500 1100 500 -30000
Численные параметры просто обозначают начальные и конечные точки по горизонтали и вертикали, по которым будет производиться скролл.
И получается, на этом этапе я просто открываю терминал и вызываю эту команду для супер быстрого скролла вниз.
Спустя время я придумал еще несколько команд для разных задач.
И здесь пришла другая проблема - мне постоянно приходилось держать терминал открытым. К тому же помнить, какая команда для чего нужна, мне не хотелось (нажимать на клавишу ↑ в терминале мне тоже стало неудобно из-за количества используемых команд).
Тогда я подумал: а что, если добавить в студию новый функционал? Писать плагин для студии мне показалось слишком долгим. Но этого оказалось и не надо. Я нашел раздел настроек, где можно добавить новый функционал, не потратив почти никакого времени.
External Tools
Сперва, надо добавить external tool в настройках вашей идеешки. Как я уже упоминал ранее, это можно сделать в любой среде разработки от JetBrains.
Для этого идем в Settings → Tools → External Tools.
Здесь просто нажимаем на плюсик и добавляем свою программу для запуска.
В моем случае - это adb. В качестве аргументов я прописываю shell input swipe 500 1100 500 -30000
Также можно добавить какое-нибудь имя, описание.
![Окно настроек External Tools Окно настроек External Tools](https://habrastorage.org/getpro/habr/upload_files/d8f/7e9/bf8/d8f7e9bf806e20a286bab61ef2d364d8.png)
Подробнее обо всех настройках можно почитать здесь.
Половина дела сделана.
Customize toolbars
Теперь можно добавить саму кнопку в студию. Мне понравилось место рядом с кнопкой выбора девайса. Где-нибудь на этом тулбаре тыкаем ПКМ → Customize Toolbar:
![Верхний Верхний](https://habrastorage.org/getpro/habr/upload_files/ba7/704/15a/ba770415a68c3c2e67768fd86d15739b.png)
Находим нужное место для вставки новой кнопки. Для удобства можно добавить сепаратор. Нажимаем на + → Add Action:
![Кастомизация тулбара Кастомизация тулбара](https://habrastorage.org/getpro/habr/upload_files/2d9/08f/d0e/2d908fd0efea8aa86e695ba62a50c786.png)
Вбиваем в поиск external tool и находим нашу новую тулу. Также можно выбрать иконку, чтобы не путаться среди добавленных кнопок. Нажимаем OK:
![Добавление своей тулы Добавление своей тулы](https://habrastorage.org/getpro/habr/upload_files/e83/8f1/c43/e838f1c43261d5ffc2b78a6cd262b7b3.png)
И вуаля: у нас в студии появилась новая кнопка. Теперь при нажатии на нее, на подключенном устройстве произойдет очень быстрый скролл вниз
![Новая кнопка на тулбаре Новая кнопка на тулбаре](https://habrastorage.org/getpro/habr/upload_files/a39/df4/6f8/a39df46f89a57ccc515c145afb7a496f.png)
Другие места вызова external tool
Если не хочется добавлять кнопки в студию, но все-таки хочется использовать сторонние скрипты, то есть следующие варианты использования.
Назначить комбинацию клавиш на новую тулу: Settings → Keymap
![Добавление комбинации клавиш Добавление комбинации клавиш](https://habrastorage.org/getpro/habr/upload_files/d42/e85/fbc/d42e85fbc68c7f93452c855683938291.png)
Запустить тулу через Tools menu:
![Выбор тулы в Tools menu Выбор тулы в Tools menu](https://habrastorage.org/getpro/habr/upload_files/eb9/6c7/e19/eb96c7e19d71cbb01752e5367c0fd212.png)
Или прямо в редакторе можно нажать ПКМ:
![Выбор тулы в редакторе Выбор тулы в редакторе](https://habrastorage.org/getpro/habr/upload_files/b73/2e5/5a2/b732e55a2a5dbf678fd5c6a72284b5a1.png)
Заключение
Таким образом в External Tools можно добавлять какие угодно скрипты / программы, например, помимо использования adb, я написал несколько python и batch скриптов.
В целом можно придумать много случаев из жизни, которые хотелось бы оптимизировать, но руки никак не доходили.
Для рабочего проекта я добавил больше 10 новых кнопок, среди которых скролл вверх, очистка базы данных приложения, очистка файловой системы приложения, force stop приложения. Это ускорило мою разработку в разы, чему я несомненно рад
![Как выглядит мой тулбар в рабочем проекта Как выглядит мой тулбар в рабочем проекта](https://habrastorage.org/getpro/habr/upload_files/7f7/53f/18d/7f753f18d043d0819a016736904666e1.png)
Надеюсь, эта статья оказалась для вас полезной, и вы модифицируете свою любимую идеешку под ваши нужды :)