Редактор
Настраиваемый стиль и приоритет вариантов автодополнения
Разработчики языков теперь могут настраивать стиль и приоритет вариантов в меню автодополнения. Можно настроить цвет фона и текста, стиль шрифта (жирный, курсов), а также скрыть некоторые элементы. Данная функциональность является экспериментальной, поэтому в будущем ее дизайн может измениться. Подробнее о функциональности.
Язык генератора
![](/mps/whatsnew/screenshots/2019-1/image6.png)
Поддержка автоматического вывода типов для нового макроса VAR
Теперь в языке трансформации моделей поддерживается объявление нескольких переменных в рамках одного макроса VAR. Если тип не указан явно, то он определяется автоматически на основе запроса объявления.
Поддержка плагинов
![](/mps/whatsnew/screenshots/2019-1/image5.png)
Использование плагинов MPS из задачи Ant для миграции
Теперь, если для миграции проекта необходим определенный плагин, его можно указать в Ant-задаче <migrate>. Соответствующий плагин будет включен вместе со всеми зависимостями. По просьбе клиента, направившего запрос в техническую поддержку, мы также интегрировали эту функциональность в версию 2018.3.5.
![](/mps/whatsnew/screenshots/2019-1/image7.png)
Поддержка развертывания плагинов с помощью инструкции «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
![](/mps/whatsnew/screenshots/2019-1/image4.png)
Статические методы в интерфейсах baseLanguage
MPS теперь позволяет создавать статические методы в интерфейсах.
Разное
![](/mps/whatsnew/screenshots/2019-1/image2.png)
Прощай, Confluence. Встречаем Справочный центр!
Вот уже долгое время документация к MPS размещалась в Confluence, но теперь проект вырос и готов покинуть его пределы. Мы переносим всю документацию в наш Справочный центр; в настоящее время там уже доступны руководство пользователя и руководство для быстрого старта. В будущих версиях документацию ожидают новые улучшения.
Сигнатуры методов-заглушек
Идентификаторы узлов ID, создаваемые в моделях-заглушках Java, больше не включают тип возвращаемого значения метода. Теперь для идентификации методов используется их истинная сигнатура в соответствии со спецификацией Java. Вам не придется повторно сохранять все модели, ссылающиеся на метод из модели-заглушки, даже если в новой версии библиотеки изменился тип возвращаемого значения этого метода. Автоматическая миграция обновит все модели MPS, исправив существующие ссылки на методы моделей-заглушек.
Новое предназначение флажка «Compile in MPS»
Теперь, если в свойствах модуля не установлен флажок «Compile in MPS», это больше не означает, что компиляция кода будет выполняться в подключенной копии IntelliJ IDEA. Если флажок установлен, то компиляция выполняется в MPS, а если снят, то не выполняется вовсе. .
Автоматическое отображение агрегированных языков
В структурных аспектах теперь отображаются языки, включенные в них посредством агрегации (например, если в дочерней роли используется сторонний концепт). Больше не нужно явно импортировать такие языки в модель: агрегированные языки будут доступны при редактировании автоматически.