Что нового в MPS 2020.2

В MPS 2020.2 обновлен интерфейс управления версиями, поддержано тестирование быстрых исправлений, улучшены планы генерации и многие другие аспекты системы.

Обновленный интерфейс для работы с VCS

Обновленный интерфейс для работы с VCS

Мы усовершенствовали взаимодействие с системой контроля версий. Ширина редактора больше не фиксирована, и разделитель можно двигать в обоих направлениях. Изменения тоже подсвечиваются по-новому. Всплывающие подсказки отображаются как в области редактора, так и в области разделителя. Кроме того, мы заменили треугольники и трапеции в области разделителя аккуратными многоугольниками.

Улучшенная иcтория узла и корня в VCS

Улучшенная иcтория узла и корня в VCS

Действие Show Root History в VCS не всегда отображало правильные результаты. Мы это исправили: теперь вместо исходных файлов сравниваются модели, поэтому результаты в выдаче всегда имеют смысл. Кроме того, теперь можно просмотреть историю любого узла, а не только корневого.

Новый тип изменений в VCS

Новый тип изменений в VCS

MPS теперь может выполнять структурный diff/merge частей моделей BaseLanguage, на которые не может быть ссылок. Для любых экземпляров концептов BaseLanguage, которые не могут быть целью ссылки (например, BlockStatement или ForStatement), алгоритм сравнения/слияния MPS проигнорирует ID узла и вместо этого сравнит структурные различия. Это предотвратит ситуации, в которых структурно идентичные изменения приводят к ошибкам слияния.

Подробнее

Выбрать соседний узел

Теперь можно выбрать несколько узлов одного уровня, используя Shift+стрелки влево/вправо. Так можно выделять параметры метода, значения литералов массива и операторы.

Тестирование быстрых исправлений

В язык тестирования редактора добавлен концепт ApplyQuickFix. Используйте его в разделе кода вашего тест-кейса так же, как при тестировании intention-действия. Вы можете выполнить быстрое исправление, доступное для выбранного узла, или конкретно указать, какое исправление необходимо выполнить.

Конкретное исправление

Исправление, доступное для выбранного узла

Настройки шрифтов и цветовой схемы

Настройки шрифтов и цветовой схемы

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

Подробнее

Улучшения планов генерации

Улучшения планов генерации

Действие Show Generation Plan дает четкое понимание того, что происходит на каждом этапе преобразования модели. Теперь, помимо шагов преобразования, действие также определяет, откуда берется план генерации (например, из настраиваемого фасета модуля или из devkit), и предоставляет его имя вместе со ссылкой на узел плана генерации.

Подробнее

Улучшения в языке сборки и упаковки

Улучшения в языке сборки и упаковки

Теперь для нумерации версий в idea branding (BuildMps_Branding) можно использовать макросы. В билд-скрипт MPS добавлены макросы ${version.major}, ${version.minor}, ${version.bugfixNr} и ${version.eap}. Старый формат все еще поддерживается, но считается устаревшим. Чтобы переключиться на новую версию в билд-скрипте, используйте intention-действие Convert deprecated branding version to the new format.

Другие улучшения

Полная поддержка пул-реквестов GitHub

Полная поддержка пул-реквестов GitHub

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

Обновленные диалоги для работы с Git

Обновленные диалоги для работы с Git

Мы обновили дизайн диалогов Merge, Pull и Rebase — взаимодействовать с ними стало удобнее. Теперь четко видно, какие Git-команды будут выполняться. Кроме того, добавлены новые параметры, например –rebase в диалоге Pull и –no-verify в диалоге Merge.

Объединение локальных коммитов на вкладке Log

Объединение локальных коммитов на вкладке Log

Теперь можно выбрать несколько коммитов из локальной ветки и объединить их в один. Откройте вкладку Log в окне Git, выберите локальные коммиты и действие Squash Commits. Если вы решите изменить комментарий к коммиту, все изменения в этих коммитах будут помещены в один коммит вместе с обновленным комментарием. Кроме того, теперь можно удалять коммиты из Git-лога.

Удобное сравнение веток

Теперь при сравнении двух веток, IDE открывает списки их коммитов в одном представлении в редакторе. В отличие от окна VCS, в новом представлении достаточно места для полной информации о том, какие коммиты есть в каждой ветке и какие файлы затронуты изменениями.

Авторизация

Вместо авторизации в GitHub по паролю с этой версии будет использоваться авторизация по протоколу OAuth.