Статьи

Новые приемы IntelliJ, которые я выучил. Часть 2

По-видимому, я все о непрерывном обучении — после того, как я написал  последний пост о IntelliJ Tips , я продолжил просматривать документацию и, конечно же, обнаружил множество вещей, которых я не знал. И это все только в разделе  Быстрый старт  !

Итак, вот следующая партия (хотя еще раз я не уверен, сколько из них применимо только к IntelliJ 14). Все сочетания клавиш для Windows, если не указано иное, и пользователи Mac должны иметь возможность заменить клавишу Ctrl на Cmd во всех этих случаях.

Навигация между методами

Теперь я знал, что вы можете использовать  структуру thingie  (Ctrl + F12), чтобы позволить вам переходить к методам в вашем классе (хотя я никогда не использовал его, он почему-то никогда не застревает в моей голове). Чего я  не  знал, так это того, что вы можете переключаться между методами,  используя клавиши Alt + Up / Down. Это кажется мне очень полезным, особенно для просмотра тестов.

Рефакторинг фрагментов строки

Я хотел эту функцию очень много раз, но никогда не мог найти ее или заставить ее работать — знаете ли вы, что вы можете  преобразовать части жестко закодированной строки в переменную / поле / константу? Выберите раздел строки, который вы хотите извлечь, и используйте обычные ярлыки «Извлечь…» — например, Ctrl + Alt + V, чтобы извлечь его в переменную.

Я уверен, что пробовал это раньше, и это не сработало. Но я проверил это, и это делает!

Инвертировать логическое

По-видимому, комбинация клавиш по умолчанию не отображается, но с помощью «Refactor -> Invert Boolean…» (или с помощью  нашего недавно обнаруженного сочетания клавиш «Navigate to Action» для Shift + Ctrl + A и ввода «Invert») вы можете Скажите IntelliJ, что вы хотите, чтобы булево поле означало  противоположное  , и оно будет  менять значение повсюду . Например, у вас может быть saved флаг, и теперь вы хотите, чтобы он имел значение  notSaved — IntelliJ позаботится о том, чтобы  isSaved метод вернулся  !notSaved.

Волшебный Рефактор Предложения

Вы не всегда точно знаете, какую операцию рефакторинга вы хотите выполнить, и IntelliJ готов помочь — он может  предложить рефакторинг, доступный в текущем контексте,  используя броское волшебное заклинание Ctrl + Shift + Alt + T. Кажется полезным, но я уверен, что не запомню это.

Выделите реализованные / переопределенные методы

Мне нравится все в способности IntelliJ находить способы использования вещей — находить, где вызываются методы, находить реализации метода, выделять использование поля, метода или переменной … Что я не знал, так это то, что вы можете  выделить методы, которые реализуют или переопределить определенный интерфейс или суперкласс . Для некоторых людей это может добавить немного, так как ваш маленький значок «Я переопределяю»

Что-то переопределяет

в сочетании с  @Override аннотацией может рассказать вам все, что вам нужно знать. Но это действительно работает, только если вы реализуете единый интерфейс. Если вы правильно разделили свои проблемы, вы можете реализовать несколько интерфейсов и захотеть узнать, какие методы используются для конкретного. Вот тут вам пригодятся Shift + Ctrl + F7 по ключевому слову «extends».

Провести индивидуальный осмотр по имени

Я  часто использую  инспекции . Они особенно полезны, если у вас есть кодовая база, которая не совсем соответствует вашим идеальным стандартам, поэтому вы еще не можете включить автоматические проверки, такие как checkstyle, чтобы сломать сборку, когда код не соответствует — есть начальный шаг, где Сначала вам нужно очистить код. Инспекции — это здорово, потому что IntelliJ может дать вам маленькие желтые отметки, чтобы показать, где вещи неоптимальны, и стремиться регистрировать только файлы без маленьких желтых отметок.

Чего я не знал, так это того, что вы можете  запустить одну проверку  файлов в любом объеме. Так, если, например, вы хотите убедиться, что в коде, к которому вы обратились в этом изменении, нет неиспользуемых битов, таких как неиспользуемые параметры или неиспользуемые / непроверенные методы, вы можете нажать Shift + Alt + Ctrl + I и набрать «unused» , Выберите проверку «Неиспользованная декларация» и запустите ее для всех незафиксированных файлов. Это скажет вам, где вы можете очистить свой код, и каждый коммит должен сделать вашу кодовую базу немного лучше.

Экономия энергии с подсветкой

Я не знал, что вы могли бы легко  изменить активные ошибки / предупреждения и использовать это для экономии энергии. Довольно интересно.

Автоматический отступ ваших строк

Я почти одержимо переформатирую свой код, нажимая  Ctrl + Alt + L, почти как мышечные движения. Однако я только что обнаружил, что есть  ярлык, который просто исправит отступ строки , который, вероятно, в любом случае составляет 80% от того, что мне нужно — Ctrl + Alt + I.

Исправление конкатенации злой строки

Я не могу поверить, что я не заметил этого раньше — вы знаете, сколько раз я ходил и менял вручную:

System.out.println("This thing " + something + " is " + somethingElse);

в

System.out.printf("This thing %s is %s%n", something, somethingElse);

Вы??? В любом случае вам не нужно — Alt + Enter внутри параметров  предложит замену и сделает это за вас . Ницца.

VCS Быстрый доступ

Одна из областей, где я  определенно  не использую IntelliJ в меру своих возможностей — это интеграция с Git. Я использую  SourceTree в  сочетании с IntelliJ для большей части управления VCS (извините, я просто не человек командной строки, мне нужно его  увидеть  ). С новым ноутбуком я еще не установил SourceTree, и я собираюсь попробовать все через IDE. Ранее я использовал меню, вызываемое правой кнопкой мыши, главным образом для управления операциями VCS, иногда меню VCS, и делал большинство вещей в окне «Изменения». Но теперь я обнаружил Alt + «Back Quote» (Ctrl + V на Mac), чтобы вызвать  меню мерзких операций для этого контекста., Чтобы вам не пришлось охотиться по всей клавиатуре, чтобы узнать, что же такое «обратная цитата», это «, которая на обеих моих клавиатурах в Великобритании и США (Windows) находится в верхнем левом углу клавиатуры (на Mac, он находится слева внизу рядом со сменой, но он вам не нужен, так как ваш ярлык в любом случае другой).

Поправка коммитов

Я только что обнаружил, что вы можете зафиксировать изменение, которое добавляется в ваш последний коммит и исправляет его. Я предполагаю, что он фиксирует новые изменения и (потенциально) обновленное сообщение о коммите в последнем изменении. Мне бы очень хотелось, чтобы я знал об этом раньше, в ряде случаев за последние несколько месяцев я делал это либо вручную, либо с помощью довольно опасного мягкого сброса. Я  определенно  буду использовать это в будущем.

Изменить коммит

Курсор как точка останова

Знаете ли вы, что вы можете  использовать курсор в качестве временной точки останова ? Я не. Ну, теперь ты знаешь.

Изменения в маркировке

Я надеюсь, что к настоящему времени никто из нас, разработчиков, не делает такую ​​странную вещь с именами и каталогами «Копия…» и «Резервная копия…»,  чтобы отслеживать наши версии. Мы все используем VCS, конечно. Но если вы строго следите за тем, чтобы каждый коммит приводил к работающей сборке (мы все это делаем, верно…?), То иногда даже распределенные файловые системы, такие как git, с его локальными ветвями слишком тяжелы для экспериментов и отладки.

У IntelliJ есть местная история, на которую, я лично думаю, вы никогда не должны   полагаться, но иногда она спасла мой бекон во времена раздоров. Это также делает эту действительно хорошую вещь (автоматически), когда она помечает версии, где проходили тесты, так что у вас есть некоторый уровень уверенности в том, что в тот момент, в этой редакции, вещи не были ужасно нарушены. По крайней мере, они должны были скомпилированы. Чего я не знал, так это того, что вы можете  добавить свои собственные метки , чтобы можно было пометить некоторую локальную не зафиксированную версию файла как «функция x работает, а y нет» (или, возможно, что-то намного более короткое).

Я думаю, это выглядит полезным. Как я уже сказал,  не  замена для VCS, а дополнение.

Итак, это конец первой недели в JetBrains, и я уже изучил целую кучу вещей. Я уверен, что это еще не все, так что следите за обновлениями!