На прошлой неделе JetBrains объявила о выходе IntelliJ IDEA 15. Как всегда, IDE доступна в двух редакциях: коммерческая Ultimate и бесплатная Community Edition. Скачать новую версию можно на официальном сайте JetBrains. Этот пост вкратце о том, что в ней нового и интересного.

image

Kotlin
Главная новость заключается в том, что одновременно с релизом IntelliJ IDEA 15 вышел и Kotlin Beta — практически готовый к релизу JVM язык программирования, разрабатываемый в недрах JetBrains. В IntelliJ IDEA 15 поддержка Kotlin доступна “из коробки”.

Отладчик
Популярность Java 8 продолжает набирать обороты, а JetBrains продолжает делать отладчик более удобным для работы с лямбда-выражениями. При добавлении точки останова IDE теперь позволяет выбрать конкретное выражение. Перейти в конкретное лямбда-выражение теперь можно и при помощи Step Into и Run to Cursor.

Также в отладчик был добавлен инструмент Force Return. Он позволяет прервать исполнение текущего метода и вернуть выбранное значение. Это может быть удобно, если вы хотите поменять логику выполнения программы без изменения кода и без перезапуска.



Обнаружение дубликатов в коде
Раннее поиск дубликатов в IntelliJ IDEA осуществлялся через инструмент Analyze ? Locate Duplicates. Результатов этой операции можно было ожидать несколько минут. Изменения, внесенные в алгоритм индексации в IntelliJ IDEA 15, позволили сделать поиск дубликатов мгновенным: с помощью инспекции Duplicated Code. Инспекцию можно настроить или отключить в Settings ? Inspections.



Поиск текста
Поиск текста — относительно простая операция, тем не менее IntelliJ IDEA продолжает совершенствовать его с каждой версией (ранее была добавлена возможность выбора контекста поиска: комментарии, строковые литералы и т. п.). В IntelliJ IDEA 15 в диалог поиска добавлена панель с мгновенными результатами.



Запуск приложений и тестов
Теперь рядом с методами main, а также рядом с каждым тестом в левой части редактора отображается иконка, нажатием на которую можно быстро запустить соответствующий метод или тест. Для каждого теста иконка отображает результат последнего запуска.

Кроме того, конфигурации запуска получили индикаторы состояния: теперь легко отличить запущенную конфигурацию от остановленной, а кнопка Run на панеле инструментов выглядит как Restart для запущенной конфигурации типа Single instance only.

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



Системы контроля версий
Интеграция с Git, Mercurial, Perforce и другими системами контроля версий подверглась ряду улучшений. Rebase стала полноправной операцией в меню Branch operations на равне с Merge. Само меню Branch operations стало доступно в Log.

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

При реформатировании только измененных строк IDE теперь понимает необходимость реформатирования и контекстно-зависимых строк, например отступы в объявлении методов. В окне Merge стала доступна операция Undo.

Для Mercurial появилась возможность управления патчами MQ. Для Perforce появилась функция Shelve in Perforce. Для TFS появилась возможность работы с древовидными Work items, а также с Saved queries.



Серверные фреймворки
Поддержка фреймворков была также обновлена в соответствии с их последними версиями. Поддерживаются новые функции, добавленные в Spring 4.2: аннотация Bean на default методах, автодополнение и навигация для кода использующего аннотации EventListener; а также аннотация @AliasFor.



Кроме того, в IntelliJ IDEA 15 появилась долгожданная поддержка Grails 3.



Добавлена экспериментальная поддержка Arquillian: контейнеры можно конфигурировать на уровне IDE и указывать их при запуске тестов.

Scala
Плагин для Scala также обновился за счет поддержки SAM (Single Abstract Method), подсказки, позволяющей разворачивать макросы, постфикс автодополнений, Inline рефакторинга для Type aliases и некоторых других улучшений.



Фронтенд разработка
Веб-разработчики будут рады узнать о поддержке TypeScript 1.6, интеграции с TSLint и значительно улучшенной поддержке React фреймворка (включая разметки JSX и TSX):



В IntelliJ IDEA 15 доступны возможности, добавленные в Android Studio 1.3: Android Memory (HPROF) Viewer и Allocation Tracker. Более поздние изменения Android Studio скоро также появятся в минорных обновлениях IntelliJ IDEA 15.

Базы данных и SQL
Инструменты для работы с базами данных и SQL были значительно обновлены: теперь можно быстрее получать точную информацию об объектах баз данных для Oracle, PostgreSQL, MySQL и SQL Server, генерировать код для CREATE TABLE и INSERT конструкций; визуально редактировать существующие таблицы; строить план выполнения запросов; сравнивать результаты нескольких запросов и не только.



Цены и лицензирование
IntelliJ IDEA 15 является частью JetBrains Toolbox и доступна теперь по подписке. Кроме новых цен и условий лицензирования, это также означает, что, если раньше вы пользовались несколькими продуктами JetBrains одновременно, теперь вы можете купить их по более выгодной цене.

Если вы еще не попробовали IntelliJ IDEA 15 самостоятельно, приглашаем вас сделать это прямо сейчас.

Программируйте с удовольствием!
Команда IntelliJ IDEA

Комментарии (26)


  1. xGromMx
    09.11.2015 12:35

    А будет ли поддержка дебагинга лямбд в javascript?


    1. Develar
      09.11.2015 12:47

      Не могли бы написать задачу в https://youtrack.jetbrains.com/ c примером кода? Насколько я понимаю, в JS не очень компактная запись функций, вы пишете на чистом JS или Typescript?


      1. xGromMx
        09.11.2015 13:19

        В nodejs можно полноценно использовать стрелочные функции.


        1. Fesor
          10.11.2015 12:04

          Да как бы даже не потенциально, Node4 поддерживает уже это все, на подходе Node5.


          1. xGromMx
            10.11.2015 12:30

            Node 5 зарелизили давно =) 4 у них LTS


          1. TheShock
            10.11.2015 17:17
            +1

            полноценно, а не потенциально =)


  1. sabio
    09.11.2015 13:36

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

    У меня маркер по-прежнему синий, если я, например, вставляю в строке дополнительный отступ или заменяю Tab-ы на пробелы. Пробовал и в светлом L&F, и в Darcula.
    При этом в настройках цветов (Colors & Fonts > General > Gutter) действительно указан жёлтый для Lines with whitespace-only modifications.

    … Как оказалось, эту фичу надо включить: «Settings > Editor > General» — IDEA-138701

    Не логично только, что отметка на скроллбаре по-прежнему синяя. Было бы удобно сразу видеть, где в файле существенные изменения.


    1. andreycheptsov
      09.11.2015 13:45

      Не логично только, что отметка на скроллбаре по-прежнему синяя. Было бы удобно сразу видеть, где в файле существенные изменения.
      Согласен, думаю мы сможем это поправить: youtrack.jetbrains.com/issue/IDEA-147637


    1. sabio
      09.11.2015 13:46

      IDEA-147636 — Use the gutter color for «whitespace-only changes» scrollbar stripe


  1. ruslanys
    09.11.2015 15:13
    +5

    Куда делась сова из заставки? :(

    Она была очень клевой.


    1. msd
      09.11.2015 15:29
      +8

      У нас даже issue на эту тему есть youtrack.jetbrains.com/issue/IDEA-147023 :)


      1. ruslanys
        09.11.2015 15:35

        Супер! Спасибо)


  1. Prototik
    09.11.2015 19:25

    Кроме того, в IntelliJ IDEA 15 появилась долгожданная поддержка Grails 3.

    А стоит ли ждать поддержки Griffon 2 в ближайшем (обозримом) будущем?


    1. andreycheptsov
      09.11.2015 20:08
      +1

      Пока не ясно: либо в 16, либо в 15.1.


  1. lostmsu
    09.11.2015 20:40
    +3

    Зря не написали про поддержку Hi DPI на Windows. Это то, из-за чего я поставил EAP.


  1. Tab10id
    09.11.2015 20:50

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


  1. pesh1983
    10.11.2015 08:54

    Вы пишете, что теперь среда доступна по подписке, и ниже сразу же указываете «теперь вы можете купить») Тогда уж не купить, а арендовать, не путайте людей пожалуйста)


    1. andreycheptsov
      10.11.2015 16:42
      +2

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


  1. chaetal
    10.11.2015 10:28
    +1

    (особенно по поводу Отладчика): еще лет 20 и, наконец, Smalltalk будет снова изобретен! :)


  1. VYakushev
    10.11.2015 16:07

    Когда будет восстановлен режим Pinned Mode? Уж очень неудобно без него.


    1. andreycheptsov
      10.11.2015 16:41

      Очень вероятно, что это будет пофикшено в 15.0.1. Подробнее тут: youtrack.jetbrains.com/issue/IDEA-146684


      1. VYakushev
        10.11.2015 16:53

        Ну, недельку подождем. Спасибо


      1. zorro1211
        14.11.2015 18:15

        Скажите, а можно ли вот эту проблему с pinned mode тоже пофиксить? youtrack.jetbrains.com/issue/PY-16380 Проблема выражается в отсутствии pinned mode.


  1. VYakushev
    10.11.2015 17:01

    Кстати, поиск дубликатов в коде работает для меня странно. Он мне отметил как дубликаты два куска кода, состоящие из четырех строк в блоке try...catch. При этом в самом try было всего две строки в каждом куске и похожей была только одна из них. А catch у обоих была запись ошибки в лог и оператор return. Даже, если сделать под эти два куска кода метод с возвратом флага успешного выполнения, то строк получится в коде больше.


    1. nicity
      11.11.2015 02:32

      Для квалифицированного ответа нам нужны подробности в багтрекере. Заранее благодарны!


  1. SerJook
    12.11.2015 16:22

    Почему в Community Edition перестала подхватываться Android SDK (Ubuntu). Хочу добавить SDK в проект… а его нет в списке.
    Так и должно быть?
    Вручную добавляю SDK, оно там что-то индексирует, но навигация в коде не работает.
    Откатился на 14 версию :(((( Хнык-хнык