Компания
216,03
рейтинг
2 октября 2015 в 15:05

Разработка → Доступна IntelliJ IDEA 15 Preview

Вчера JetBrains опубликовал превью IntelliJ IDEA 15.

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

image

Во-первых, продолжая адаптировать IDE к Java 8, мы улучшили взаимодействие дебаггера с лямбда выражениями. Теперь при установке брейкпоинта вы можете указать не всю строку, а конкретное лямбда выражение, которое в ней содержится. Точно также вы можете применять Run to cursor по отношению конкретному лямбда выражению вне зависимости от того, на какой строке оно находится. И наконец если вы вызываете Step Into, IDE предложит перейти к лямбда выражению, являющемуся параметром.

image

Кроме того в дебаггер был добавлен экшн Force return, который позволяет прервать исполнение текущего метода и вернуть выбранное вами значение. Это удобно, если вы хотите поменять логику выполнения кода в целях отладки.

Во-вторых, недавние улучшения алгоритма индексации позволили реализовать инспекцию для мгновенного обнаружения дубликатов кода. Теперь если напишете или скопируете код, уже содержащийся в другой части проекта, IDE сразу же вам об этом сообщит и покажет совпадения. Чтобы сделать инспекцию ненавязчивой, мы показываем только совпадения длиннее 5-ти строк.

image

Интерфейс также подвергся изменениям. Run configurations теперь имеют индикаторы состояния. Если конфигурация типа Single instance only, кнопка Run будет выглядеть как Restart.

image

Гаттер теперь позволяет запускать приложения и тесты. Более того, для тестов, он теперь умеет отображать результаты последнего запуска.

image

Появилась возможность скрывать ненужные Tool windows не отключая при этом плагин. Для этого достаточно выбрать пункт Remove from Sidebar в меню соответствующего Tool window.

Функция поиска текста также стала удобнее. Когда вы вызываете Find in Path, теперь IDE умеет отображать результаты мгновенно в закладке Preview. Это позволяет тратить меньше времени на переход в окно поиска и обратно.

image

Rebase стала полноценной операцией и доступна в меню Branches, унаследовав синхронные операции над несколькими репозиториями, автоматический стешинг (stashing) локальных изменений и резолв конфликтов. Само меню Branches стало доступно из закладки Log.

image

При нажатии на гаттер, IDE теперь выделяет изменения отдельных частей строки. Также гаттер научился отличать изменения whitespace от других изменений: грязно-желтый цвет вместо синего.

Во время операции по резолву конфликтов теперь можно пользоваться командой Undo. В Diff viewer был добавлен экшн Annotate.

Пользователи Mercurial получили инструменты для работы с патчами. Пользователи Perforce получили возможность хранить локальные изменения на сервере Perforce: операция Shelve in Perforce.

Плагин для работы с Docker улучшился за счет удобного редактирования настроек контейнера; быстрого создания контейнера для выбранного имаджа; и поддержки Docker Toolbox.

image

Мы поддержали новые возможности добавленные в Spring 4.2: @Bean на дэфолтных методах в интерфейсах; @Import для обычных классов; аннотации @EventListener, @AliasFor, и @ContextConfiguration.

image

Улучшена поддержка Spring Boot проектов: добавлены подсказки в application.yml и additional-spring-configuration-metadata.json файлах; добавлена автоматическая настройка фасета на основе аннотаций; улучшено создание проектов через Spring Initializr.

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

В Scala плагине были добавлены поддержка SAM (single abstract method); интеншн для развертывания макросов; Postfix комплишн; Inline рефакторинг дла Type aliases; а также распознавание динамических имен тестов (например “test(variable)” или “test(stringExpression)”).

Язык Kotlin, разрабатываемый в недрах JetBrains, приближается к скорому релизу, внося последние важные изменения в синтаксис, совместимость с Java, и поддержку IDE. Результатом этой работы стало то, что плагин для Kotlin теперь поставляется вместе с IDE. Для тех, кто не знаком с Kotlin, а также тех, кто давно не интересовался им, это прекрасная возможность исправить это. Подробнее о последних изменениях можно прочитать в блоге Kotlin.

Работая над Kotlin и Scala мы не забываем и про Groovy. Для него мы добавили поддержку Builder AST трансформации.

Фронтенд разработчики, использующие React, будут рады узнать об улучшенной поддержке в JSX файлах: добавлены комплишн, инспекшны, Surround with экшн, и навигация.

image

Также добавлена поддержка новых языковых конструкций TypeScript 1.6 и некоторые EcmaScript 7 (например async/await).

Не секрет, что JetBrains трудится над новой IDE для работы с SQL и базами данных. Поскольку IntellIJ IDEA включает этот функционал, стоит упомянуть его улучшения. Главным из них является нативная и быстрая интроспекция: получение информации об объектах базы данных с учетом специфики неучтенной в JDBC драйверах. Также появился удобный редактор таблиц, и возможность смотреть Execute plan для запросов.

image

Кроме прочего превью включает изменения Android Studio 1.3, включая Android Memory (HPROF) Viewer и Allocation Tracker.

Буду рад ответить на любые вопросы!
Автор: @andreycheptsov
JetBrains
рейтинг 216,03

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

  • +2
    Дебаг лямбда-выражений по отдельности — это очень круто, но очень хотелось бы такое получить в Scala-плагине для анонимных функций. Это одна из немногих вещей, отсутствие которой делает дебаг сложных выражений со многими функциями высшего порядка очень неудобным. Планируется ли что-то такое?
    • +10
      Для Scala это теперь тоже работает.
  • +2
    Немного не в тему, но есть ли в текущих стабильных версиях какие-либо актуальные ключи для принудительного НЕ включения дискретной графики на макбуках?
    Что-то типа devnet.jetbrains.com/message/5509880
    • 0
      Вообще проблем не должно наблюдаться. Если у вас что-то такое было, то напишите продукт и версию.
      • +1
        Так с точки зрения OS и IDE проблем и не наблюдается. Запускается джава-приложение, рендерит в OpenGL и ему включается GPU.
        У меня вот запущен PhpStrom версии 141.24_62, я пробовал на всякий случай ему ставить ключи и той ссылки, что я писал вверху — но он не реагирует (особо и не надеялся — топик старый, но лучше не нашел). А с постоянно включенным радеоном бедняга переводит батарею в тепло за 4 часа. Поэтому я поставил программку, которая принудительно позволяет переключать на интергрированное видео. Жить можно, но на всякий случай решил спросить, может есть какой-то современный ключ для конфига…

        • 0
          Эта проблема исправлена, в продуктах с версией 142 включаться не должно уже
  • –2
    Можно вопрос человека, не использовавшего никогда эту IDE, но постоянно на неё посматривающего?
    А тёмная тема для IDE есть? Я вот не люблю жирные ключевые слова и белый фон, у меня от такого быстро глаза болеть начинают.
    • +6
      Есть, и она прекрасна. Там не только фон становится темным, но и все интерфейсные элементы. Картинки
      • 0
        Спасибо, то что нужно.
    • +2
      Есть, конечно, Darcula
    • +1
      Можно посмотреть например здесь: www.jetbrains.com/idea/features/darcula_retina.html
      • 0
        Классная страница. Жаль только что ещё далеко не все иконки стандартных плагинов, в том числе и достаточно распространённых, таких как maven, grails или testNG адаптированы под retina.
        • 0
          Вообще страница старая, в IDE уже почти все обновлено.
          • 0
            Увы, специально скачал 15-ю чтобы проверить.
            • +1
              О как, проверим!
    • +2
      А ещё есть замечательный сайт с сотней тёмных (и сотней светлых) тем: ideacolorthemes.org
  • +6
    Есть какой-то шанс, что под линуксом когда-нибудь появится нативный рендеринг шрифтов?
    • +13
      Да. Для этого мы наладили выпуск собственной JRE, построенной на базе OpenJDK. Там у нас есть возможность фиксить проблемы рендеринга без участия Oracle. Мы постараемся открыть доступ к сборке под линукс для особо нуждающихся, чтобы собрать фидбек. В ближайший релиз мы не успеем всё протестировать, чтобы гарантировать качество на всех Линуксах.
      image
      • +1
        Да пребудет с вами сила!
      • +1
        Есть ли хотя бы какая-то фича, о которой вас спрашивают и она не в процессе или не готова? :)
    • 0
      Да вроде он и сейчас нормальный, нет?

      image
      • 0
        Увы, нет. Вот, например, Consolas 13 в Sublime и в IDEA:
        https://habrastorage.org/files/b98/4d5/7ca/b984d57ca08b4b50b998a4c3b56d41c5.png
        • 0
          Попробуйте прост понднстроить рендеринг. У меня не наблюдается такой разницы
          image

          (На фоне — idea)
          • +1
            Что вы имеете в виду под «поднастроить»? У вас на скриншоте видна разница, правда не такая бросающаяся в глаза, как у меня, да.

            Antialiasing для JVM переменными окружения я ставил, но это имеет лишь некоторый позитивный эффект. Я изготовил шрифт Consolas без hinting и он выглядит несколько лучше, но имеются другие косяки, а именно некоторые штрихи стали непропорционально толще. В Ubuntu рендеринг шрифтов патченный, а у меня Arch. Ставил Infinality. Всё равно не то.

            Все программы, включая Sublime, Eclipse и прочие, рендерят шрифты одинаково и только в IDEA у меня что-то иное. Из-за этого и не пользуюсь этой, во всех остальных отношениях замечательной, IDE. Это такая странная тема, я согласен. Коллеги недоумённо качают головой, когда я пытаюсь показать им в чём разница и почему я сижу в Sublime. Но она есть и я не могу её не замечать.
            • 0
              Отличается начертание самого шрифта — потому что это разные шрифты — но я бы не сказал, что один шрифт хуже или лучше второго, и что один рендерится хуже или лучше второго
              • +4
                Ну что вы меня обманываете? :( Мой пойнт в том, что один и тот же шрифт рендерится по-разному там и здесь.
                • 0
                  А мой в том — что и в idea рендерится хорошо :)

                  Мне как-то больше важно, чтобы смотрелся хорошо, а не конкретное начертание.

                  Ну и если честно, то я и сам забыл, что шрифты отличаются. в Idea — source code pro
        • 0
          А в чём проблема, не подскажете?
  • 0
    Оффтоп: никто не подскажет, как включить отображение табов стрелками в идее под виндовс? Не смог найти :(
    • +2
      Сначала так screencast.com/t/FrxQ0nxqNb61 потом так screencast.com/t/0ygCkHrlnycm для определённого языка
      • 0
        спасибо :)
        • 0
          Второе не нужно, кроме того случая, если вы хотите при нажатии tab вставлять \t, а не соответствующее количество пробелов.
          • 0
            да я догадался)
  • +2
  • 0
    Добрый день,

    Скажите пожалуйста, планируете ли вы добавить в IDEA решения типа Continuous Testing, на подобие того что команда из R# добавит в DotCover след версии? Заранее благодарен за информацию.
    • 0
      Есть такие планы, но когда именно это появится пока не могу сказать.
  • 0
    Распознавание и autocomplete тегов Thymeleaf починили?
    • 0
      А можно номер issue?
  • 0
    Потыркал в editor.zero.latency.typing и не заметил улучшения. В scala-проекте субъективно есть даже ухудшение latency. FYI, используется IdeaVim plugin.
  • 0
    Все еще нет поддержки последних версий Spring Data, а именно: репозиториев без явных реализаций, а так ждал…

    • +1
      всё пашет. возможно у вас эта бага.


      build: IU-142.5239.7
      • 0
        Точно, спасибо!
  • 0
    Aвтоимпорты в TypeScript это мега-круто, но хотелось бы чтобы они работали с абсолютными путями.
    Нужна возможность указать корневую директорию src, относительно которой строился бы абсолютный путь.

    Как сейчас:
    import CanvasContextMenu = require("../../../commons/contextmenu/CanvasContextMenu");

    Как хочется:
    import CanvasContextMenu = require(«application/canvas/commons/contextmenu/CanvasContextMenu»)
    • 0
      Есть идея вычитывать эти импорты относительно ближайшего tsconfig.json (чтобы можно было обойтись без указания «src» директории). Это вам помогло бы?
      • 0
        Да, это решение подходит
  • +2
    Первое впечатление: мне показалось что подсказки Ctrl+Space стали хуже работать. Раньше IDE почти никогда не ошибалась, я даже не смотрел что там предлагается, просто Ctrl+Space и Enter. Теперь часто на первом месте стоит не то, что мне нужно. До этого пользовался: IU-141.2735.5
    • 0
      для какого-то конкретно языка или общая проблема стала?
      • 0
        Java 8. Рапример при создании нового списка:
        Раньше предлагал new ArrayList<>, а сейчас иногда на первом месте что-то другое
        Пример
        image
      • +1
        Это правда очень сильно мешает. Зачем IntelliJ предлагает интерфейсы но не реализации? Это как-то связано с лямбдами?

        image

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка