В MPS 2025.3 был серьезно переработан язык JavaDoc, заметно изменены планы генерации и существенно обновлен рефлексивный редактор. Кроме того, добавлена поддержка действий с клавиатуры в логическом представлении Logical View, а в TextIcon теперь есть разные визуальные варианты для светлой и темной темы интерфейса.
Полный список изменений — ниже.
Язык JavaDoc был полностью переведен на использование языка jetbrains.mps.lang.text для представления и редактирования текста. Для пользователей это изменение практически не заметно. При этом оно позволило устранить множество проблем:
jetbrains.mps.lang.text, как, например, комментарии BaseLanguage или документация языка описания структуры. Подробнее о редактировании текста — на странице фасета документации. jetbrains.mps.lang.text, и вставлять в любые из таких мест. Кроме того, можно копировать и вставлять простой текст. Одновременно были решены несколько проблем, связанных с языком JavaDoc:
jetbrains.mps.lang.text вместо свойств строки, поэтому в блочных тегах доступны те же функции редактирования, копирования и вставки, а также стиля. {@literal ...} в соответствии с требованиями спецификации языка Java. CodeSnippet корректно разрешает локальные переменные. NodeWrapper теперь корректно генерирует текст для содержащихся в нем узлов. Помимо существующих действий Paste as Java Statement и Paste as Class Content, переработанный язык JavaDoc поддерживает новое действие для легкой вставки текстового кода JavaDoc в BaseLanguage. Главное преимущество этого действия в том, что оно обеспечивает корректный парсинг кода JavaDoc в виде строк текста, блочных и строчных тегов JavaDoc, включая возможные разрешения ссылок (например, для тегов @param или {@link }).
Новое действие Paste as JavaDoc выполняет парсинг текста из буфера и вставляет его в комментарий JavaDoc в текущей позиции курсора. Если курсор не находится в существующем комментарии JavaDoc, действие присоединяет обработанные элементы JavaDoc к JavaDoc следующего определения поля/метода/класса, создавая при необходимости новый файл JavaDoc.
Мы внесли ряд крупных изменений в планы генерации, сделав более удобной работу с трансформациями сложных моделей. Новое понятие PlanContribution полностью заменяет экспериментальную функцию fork as, которая появилась в версии 2024.1.
Кроме того, мы добавили механизм обозначения модели ветки (для любой ветки, созданной из плана или дополнения к плану) с помощью дополнительных атрибутов модели. Это можно использовать, например, если автор проекта языка/плана хочет добавить собственные атрибуты модели, чтобы идентифицировать результаты определенной ветки для последующей обработки. Один из атрибутов, которые используются в самом MPS, — targetFacet (см. модель jetbrains.mps.generator.extensions.common). Он указывает <mps.make>, к какому GenerationTargetFacet/ModuleFacet обращаться при определении правильного местоположения результатов для той или иной модели.
И шаг fork, и PlanContribution в плане генерации поддерживают активацию при выполнении заданного условия. В новой версии выбранные ветки плана можно активировать только при выполнении определенных критериев. В настоящее время в MPS используется условное выражение, которое проверяет значения указанных plan parameters. В дальнейшем мы планируем расширить использование выражений, обеспечив поддержку логических (and/or) и других возможных операций, сохраняя строгую интерпретацию планов генерации (т. е. в планах не должно быть кода BaseLanguage).
Автор проекта языка может указать собственные классы ParameterDeclaration. Значения этих параметров могут быть добавлены с помощью точки расширения PlanParameterContributor. В MPS включен ряд предварительно заданных параметров. Подробную информацию о них см. в модели jetbrains.mps.generator.extensions.common.
Слои TextIcon теперь можно настроить на использование светлой, темной или обеих тем. Кроме того, литералы цвета в определении TextIcon могут передавать разные значения для светлой и темной темы.
Интерфейс используемого по умолчанию рефлексивного редактора был изменен. Редактор просмотра, использовавшийся по умолчанию, был объединен с рефлексивным редактором, так что путаницы между ними больше не будет.
Мы существенно улучшили процесс создания новых элементов на панели Logical представления Project с использованием сочетаний клавиш. Новые модули, модели и узлы теперь можно добавить без мыши.
Подсветка использований в узле в текущем положении курсора теперь ограничивается только ссылками, которые в настоящий момент видны в редакторе. Использования в узлах, которые не отображаются в редакторе узлов, не подсвечиваются.
В MPS 2025.3 исправлено большое число ошибок. Полный список устраненных проблем приведен здесь.
В MPS 2025.3 встроена новая тема Islands, которая теперь используется по умолчанию.
Перед каждым крупным релизом мы готовим инструкции по миграции с более старых версий MPS, чтобы все прошло гладко. Внимательно прочитайте обновленное руководство по миграции.