В MPS 2020.2 обновлен интерфейс управления версиями, поддержано тестирование быстрых исправлений, улучшены планы генерации и многие другие аспекты системы.
Мы усовершенствовали взаимодействие с системой контроля версий. Ширина редактора больше не фиксирована, и разделитель можно двигать в обоих направлениях. Изменения тоже подсвечиваются по-новому. Всплывающие подсказки отображаются как в области редактора, так и в области разделителя. Кроме того, мы заменили треугольники и трапеции в области разделителя аккуратными многоугольниками.
Действие Show Root History в 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.
Вся информация о пул-реквестах теперь доступна по щелчку мыши в специальном вертикальном окне инструментов. В главном окне редактора показаны обсуждения, и вы можете добавлять комментарии напрямую. Если у вас есть доступ к управлению пул-реквестами, вы можете их просматривать, назначать и объединять, читать и отправлять комментарии, а также принимать изменения прямо в IDE.
Мы обновили дизайн диалогов Merge, Pull и Rebase — взаимодействовать с ними стало удобнее. Теперь четко видно, какие Git-команды будут выполняться. Кроме того, добавлены новые параметры, например –rebase в диалоге Pull и –no-verify в диалоге Merge.
Теперь можно выбрать несколько коммитов из локальной ветки и объединить их в один. Откройте вкладку Log в окне Git, выберите локальные коммиты и действие Squash Commits. Если вы решите изменить комментарий к коммиту, все изменения в этих коммитах будут помещены в один коммит вместе с обновленным комментарием. Кроме того, теперь можно удалять коммиты из Git-лога.
Теперь при сравнении двух веток, IDE открывает списки их коммитов в одном представлении в редакторе. В отличие от окна VCS, в новом представлении достаточно места для полной информации о том, какие коммиты есть в каждой ветке и какие файлы затронуты изменениями.
Вместо авторизации в GitHub по паролю с этой версии будет использоваться авторизация по протоколу OAuth.