Pull to refresh

Comments 22

Ничего специфичного для Android Studio не заметил. Всё это есть в любой IDE от JB.

Жаль, что в Android Studio нет онбординга

В IDEA есть Tip of the day и вкладка Learn на экране приветствия. Думаю, что и в AS также.

https://www.jetbrains.com/idea/guide/tutorials/getting-started-intellij-idea/learning-the-ide/

Что ещё вы используете для ускорения ориентации в коде?

Force click маковского тачпада для Go to Declaration/Definition - получается удобная навигация без клавиатуры.

Для AS специфичный, например, Layout Inspector

А почему поиск по double shift обозван как умный поиск в отличии от Find In Files?

Первый удобен для быстрого поиска классов и файлов по названию, а также actions, которые может выполнить в ide. Так же он работает как и поиск по тексту, но у эти результаты ниже всех других вариантов (этот пункт есть в последней Canary). Он не грузит сразу весь список результатов, и нельзя увидеть где именно в файле находится найденный результат.

Это скорее быстрый поиск по файлам/классам (так я его для себя позиционирую и использую). Два раза тапнул по shift, вбил то что ищешь, если вверху нет того что надо, то проще перейти в Find In Files.
И вот как раз второй удобен тем, что есть сразу весь список результатов, с возможностью предосмотра файла. И находясь в нем легко перейти в режим Replace In Files и сразу произвести замену. Если очень надо.

Так же он работает как и поиск по тексту

я до сих пор слабо понимаю принцип, по которому он некоторые вещи находит, а некоторые нет

поэтому иногда прибегаю к "тупо найди совпадения", когда знаю точную строку

но 90% процентов конечно покрывает поиск по double shift

Проверьте какая у вас версия студии. Поиск по тексту по double shift точно есть в последней Canary, но в предыдущих версиях я его не замечал (это вкладка Text).
Без этой вкладки он ищет по названиям классов, названиям файлов, что понимается под Symbols не знаю, но туда попадают id ресурсов строк. Поиск по тексту не работает в этом поиске, поэтому найти что-то рандомное в нем не выйдет, как например содержимое ресурса. Вот здесь и нужен был Find In Place.

Спасибо! Не думал, что все настолько банально.

public interface Symbol {

/**

  • @return a pointer which is used to restore the Symbol between read actions */ @NotNull Pointer<? extends Symbol> createPointer();

/**

int hashCode();
}

Классный список, спасибо!
Я бы подкинул в него еще пару инструментов, которые часто помогают мне:

1. Поиск по Recent Files (Ctrl+E).
Показывает список последних просмотренных файлов (можно отфильтровать только измененнные). В этом диалоге так же можно воспользоваться Speed Search, т.е. начать вводить текст, и список будет фильтроваться по введеному паттерну.

2. Поиск по Recent Locations (Ctrl+Shift+E)
Та же концепция, что и в п.1, но выдает не список файлов, а список недавно посещенных мест в коде

3. Show history for selection
Этот диалог хорошо дополнит поиск автора кода по Git Blame. К сожалению, Blame не всегда покажет реального автора кода. Если Петя добавил метод, а потом Вася поменял его форматирование, Git Blame покажет автором Васю. И чтобы добраться до истинного автора, придется сделать еще несколько не очень простых шагов. Но если выделить кусок кода, открыть "Умный поиск" (Double Shift) и вбить там "history for selection" (ну или любую комбинацию слов "selection" и "history"). То можно найти экшн, который откроет диалог со списком всех коммитов, которые затронули выделенный участок кода. Сразу с окошком предпросмотра, где будет показано, что именно менялось каждым автором.


огонь

для полного счастья не хватает только сверх умного поиска, который понимал бы тебя на человеческом языке

"покажи все классы, которые работают с данными из этой базы данных"

Вы не поверите... Если немного учесть, что подключение к конкретной БД - настраиваемый параметр, то есть такая штука как Edit - Find - Search structurally. Там же и replace. Ну или регулярками по тексту, тоже так неплохо работает.

Скоро в AS придет Meet studio bot, а там и посмотрим, может даже такая задача не покажется ему трудной)

Вынужден отметить, что многие вышеприведённые советы... не вполне эффективны. КМК профессиональный разработчик должен делать всё, что только можно не отрываясь от клавиатуры. Так тупо быстрее, и думать не нужно - только понадобилось, а руки уже сделали. И IDEA это всё поддерживает - достаточно сходить в Help - Keyboard Shortcuts PDF, распечатать, повесить на стену и выучить всё. Тот же Select opened file - под Win Alt-F1 и далее либо Enter сразу, либо куда хочешь... Обратно в окно редактора из дерева проекта - Esc. Ну и так далее, переписывать весь PDF в комментарий к статье (да их там три PDF, по одному на каждую из основных ОС) - дело неблагодарное.

А вот совет который явно отсутствует - научится пользоваться bookmarks, как окном и разными списками заметок, так и установкой именованных по горячим клавишам. Потому что найдя что-то, нужно ещё запомнить где оно и зачем вообще искали. Открывать 100500 файлов и помнить визуально где какая вкладка - можно, но неэффективно. А в этих списках ещё и комментарии можно писать к строке - что имели в виду, когда искали.

Для тех, кто не готов заучивать весь Keymap PDF, могу порекомендовать искать экшены через Find Action (Ctrl/Cmd+Shift+A). Решил заинлайнить переменную, но забыл шорткат? Поставил курсор на переменную, нажал Ctrl+Shift+A, ввел "inli", и вот тебе нужный экшн. Удобно для экшнов, которые используются не так часто, и их шорткаты не оседают в памяти. Выходит куда быстрее, чем в меню искать.
Можно, в принципе, вместо Ctrl+Shift+A тот же Double Shift использовать, но там будут не только экшны.

Еще есть плагин key promoter x, который научит запоминать горячие клавиши, что ускоряет работу с IDE в целом :)

:) Вы не использовали shortcut XYZ 7851 раз. И 7852-й раз не использую, потому что я долго и со вкусом перед эти ковырялся мышкой в run configuration, и кликнуть чуть быстрее, чем опять уходить на клавиатуру

Круто расписано. Спасибо!
Есть что дополнить)

  1. Breadcrumbs
    Breadcrumbs кликабельные на наше счастье) Часто на них жму, чтобы открыть в дереве файлов директорию текущего пакета.

  1. Открыть текущий файл
    Кажется, что раньше можно было нажать на файл в breadcrumbs и он выделялся в дереве файлов. А может это никогда и не было, а я только открывал пакеты ?
    В любом случае, сейчас, чтобы открыть файл, начал привыкать к комбинации Cmd+F1, 1. Удобно получается за счёт того, что больше не нужно переключаться на мышь.

  1. Умный поиск
    Чаще стал уточнять умный поиск, чтобы не искать лишнего. Например, если нужно запустить какую-нибудь команду IDE, то я нажимаю не Shift, Shift, а Cmd+Shift+A. А то порой, пока попадёшь на нужный action среди кучи файлов и функций, рабочий день успеет закончиться ?

  1. Find Usages

    Дополню, что есть комбинация клавиш (которую я постоянно забываю) - Option+F7. Но вообще пользуюсь ей в тех редких случаях, когда интуитивного Cmd+Click не хватает. Например, вкладка Find Usages не пропадает в отличии от выпадающего окна по Cmd+Click ?

  2. Go to -> Implementation(s)

    Открыть реализацию можно не только по клику на иконке рядом с методом/классом. Есть ещё команда Go to -> Implementation(s). Вызывается она:

    • либо из контекстного меню при нажатии ПКМ -> Go to -> Implementation(s);

    • либо по нажатию комбинации Cmd+Option+B.

  3. Поиск человека

    Поддержу ответ @m_chrom, что ПКМ -> Show History (For Selection) реально порой спасает ничуть не хуже, чем git blame.

    А так ещё добавлю, что blame с недавних пор появился в Android Studio ещё и как полупрозрачный текст с именем автора над методом/классом. Текст кликабельный. При нажатии раскрывает сбоку столбец с авторством так же, как это делает команда annotate.

    Плюс воспользуюсь собственным текстом из п.3 и скажу, что Cmd+Shift+A -> "blame" -> Enter порой сделать быстрее, чем переключаться на мышку)

Плагин GitToolbox вообще делает blame автоматически для выделенной строки, помимо всего остального.

А ещё из полезных вещей, которыми почему-то никто не пользуется - Call Hierarchy и Analyze Data Flow to here. Но с первым нужно быть аккуратным и обязательно настроить частный scope на файлы и либы проекта, иначе упёршись в какой-нибудь Thread.run эта штука попытается просканировать весь maven и подвиснет вместе с IDEA

такие статьи появляются из-за того, что люди мало интересуются оптимизацией своей работы..

также из полезных фич можно добавить про букмарки, но это уже не совсем про поиск, а про маркировку определенных мест в коде и быструю навигацию к нему..

также, есть кастомизатор для своих TODO/FIXME комментариев и быстрый поиск по ним

Кнопка Windows + (кнопка <- лево) или (кнопка ->право) переход по местам где был раньше. Очень помагает когда много бегаешь по мелким правкам по всему проекту.

Огонь, спасибо за статью! Ещё всеми этими возможностями удобно пользоваться "на автомате" с помощью шорткатов. Писал о том, как начать использовать шорткаты и не возненавидеть мир в этой статье, надеюсь, будет полезно ?

Отличные советы по оптимизации отладки кода в Andoid Studio.
А что можете посоветовать поизучать начинающим? Есть ли где-то описанные лайфхаки или какие-то полезные источники?

Sign up to leave a comment.