Что нового в MPS 2019.1

Редактор

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

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

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

Язык генератора

Поддержка автоматического вывода типов для нового макроса VAR

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

Поддержка плагинов

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

Использование плагинов MPS из задачи Ant для миграции

Теперь, если для миграции проекта необходим определенный плагин, его можно указать в Ant-задаче <migrate>. Соответствующий плагин будет включен вместе со всеми зависимостями. По просьбе клиента, направившего запрос в техническую поддержку, мы также интегрировали эту функциональность в версию 2018.3.5.

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

Поддержка развертывания плагинов с помощью инструкции «run code from solution» в скриптах сборки

Инструкция «run code from solution» позволяет активировать плагины в той копии MPS, в которой будет запускаться код. При этом будут включены зависимости плагина. Эта функциональность также была интегрирована в версию 2018.3.5 в результате запроса, поступившего в техническую поддержку.

Улучшения IDE

Создание пользовательских тем интерфейса

Раскрасьте свое рабочее окружение! В IntelliJ Platform появилась функциональность настройки тем интерфейса, а поскольку MPS основана на IntelliJ Platform, то теперь и вы можете настраивать внешний вид своей IDE.

Импортируйте новые готовые темы, доступные в виде плагинов, или создайте свои собственные при помощи IntelliJ IDEA. Попробуйте новые светло-голубую и темно-сиреневую темы.

Возможность указать в конфигурации запуска JUnit плагины для развертывания

Теперь, аналогично конфигурациям запуска копии MPS, вы можете указать список плагинов IntelliJ IDEA для развертывания при запуске тестов. Задача «Assemble Plugins» в разделе «before launch» также доступна в конфигурации запуска JUnit. Она автоматически выполняет сборку развертываемых плагинов и копирует артефакты в директорию настроек.

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

Сортировка дерева ProjectPane

Мы добавили класс TreeNodeSortService для управления пользовательскими классами, реализующими интерфейс ChildComparatorProvider, благодаря чему вам теперь доступен полный контроль над дочерними элементами MPSTreeNode в дереве ProjectPane. Пользователи теперь могут регистрировать и отменять регистрацию классов-провайдеров в разделах «application» или «project» своего плагина.

Просмотр входящих и исходящих коммитов

IDE теперь сообщает о доступности входящих и исходящих коммитов для отдельных веток во всплывающем окне Branches. Просто активируйте новую опцию «Mark Branches that have incoming/outgoing commits in the Branches popup» в разделе Preferences/Settings | Version Control | Git.

BaseLanguage

Статические методы в интерфейсах baseLanguage

MPS теперь позволяет создавать статические методы в интерфейсах.

Разное

Прощай, Confluence. Встречаем Справочный центр!

Вот уже долгое время документация к MPS размещалась в Confluence, но теперь проект вырос и готов покинуть его пределы. Мы переносим всю документацию в наш Справочный центр; в настоящее время там уже доступны руководство пользователя и руководство для быстрого старта. В будущих версиях документацию ожидают новые улучшения.

Сигнатуры методов-заглушек

Идентификаторы узлов ID, создаваемые в моделях-заглушках Java, больше не включают тип возвращаемого значения метода. Теперь для идентификации методов используется их истинная сигнатура в соответствии со спецификацией Java. Вам не придется повторно сохранять все модели, ссылающиеся на метод из модели-заглушки, даже если в новой версии библиотеки изменился тип возвращаемого значения этого метода. Автоматическая миграция обновит все модели MPS, исправив существующие ссылки на методы моделей-заглушек.

Новое предназначение флажка «Compile in MPS»

Теперь, если в свойствах модуля не установлен флажок «Compile in MPS», это больше не означает, что компиляция кода будет выполняться в подключенной копии IntelliJ IDEA. Если флажок установлен, то компиляция выполняется в MPS, а если снят, то не выполняется вовсе. .

Автоматическое отображение агрегированных языков

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