Что нового в MPS 2026.1

Теперь MPS использует IntelliJ Platform 2026.1, JDK 25 и Kotlin 2.3. В Build Language появились транзитивные зависимости, миграции стали более воспроизводимыми, а качество Java-стабов заметно выросло. Благодаря встроенному плагину Projectional Agent Toolkit, ИИ-агенты теперь способны полноценно читать и редактировать модели MPS. Это открывает перед MPS-разработчиками и авторами языков принципиально новые возможности.

Полный список изменений — ниже.

Projectional Agent Toolkit: ИИ-агенты теперь могут работать напрямую с моделями MPS

MPS поставляется с плагином Projectional Agent Toolkit, который открывает ИИ-агентам доступ к проекциям, моделям и языковой рабочей среде MPS через протокол Model Context Protocol (MCP). Агенты (такие как Claude Code, OpenAI Codex, JetBrains Junie или любые другие MCP-совместимые клиенты) могут подключаться к запущенному экземпляру MPS и работать с ним точно так же, как это делал бы разработчик: перемещаться по модулям и моделям, читать и редактировать узлы через проекционный редактор, разрешать ссылки, исследовать иерархии концептов, генерировать код и запускать конфигурации. Им больше не приходится воспринимать файлы .mps как непрозрачный XML.

Projectional Agent Toolkit добавляет около десятка наборов инструментов, которые покрывают все аспекты проекта MPS:

  • Projects, modules, and models — позволяют агентам получать списки решений, языков и devkit-модулей, открывать и создавать модели, а также разрешать зависимости.
  • Языки и концепты — позволяют агентам просматривать иерархии концептов, свойства, дочерние элементы, ссылки и наследование, а также реализовывать структурные концепты по JSON-описанию.
  • Root nodes and nodes — позволяют агентам читать, создавать, обновлять, перемещать и удалять узлы с помощью операций, учитывающих структуру узлов и ограничения концептов, а не простое редактирование текста.
  • References and scopes — позволяют агентам запрашивать допустимые цели для ссылок, благодаря чему они с первого раза выбирают корректный целевой объект.
  • Run configurations — позволяют агентам просматривать и выполнять конфигурации запуска проекта, чтобы проверять изменения от начала до конца.

Чтобы агенты могли как можно быстрее включиться в работу, в инструментарий входит набор навыков (skills) — специализированных сценариев, разработанных с учетом специфики моделей. Они объясняют агенту, как устроены языки MPS, как реализовывать структурные концепты, как работать с редактором, как записывать BaseLanguage в виде JSON AST и как сохранять DSL-специфичную память для будущих сессий. Навыки доступны через тот же MCP-канал, поэтому только что подключившийся агент может сразу запросить у MPS всю необходимую информацию перед началом редактирования.

Опыт работы с различными ИИ-ассистентами в IDE на базе IntelliJ теперь естественным образом распространяется на разработку языков и DSL. Агент может реализовать новый концепт, настроить для него редактор и ограничения, добавить методы поведения, создать DSL-код, перегенерировать его, а также протестировать и запустить результат — и все это оставаясь в рамках семантической модели MPS. Для проектировщиков языков это превращает ИИ-помощь из удобного автодополнения кода в полноценного соавтора, который понимает проекции.

Projectional Agent Toolkit — экспериментальная возможность, и ее API может измениться в будущем. Она встроена и включена по умолчанию. Просто запустите встроенный MCP-сервер и подключите к экземпляру MPS агент с поддержкой MCP — наборы инструментов и навыки появятся автоматически.

Подробности см. в документации Projectional Agent Toolkit.

Переход на IntelliJ Platform 2026.1, JDK 25 и Kotlin 2.3

MPS 2026.1 завершает переход на актуальное поколение IntelliJ Platform. Средой выполнения теперь служит JDK 25, а встроенная версия Kotlin обновлена до 2.3.0. Кроме того, теперь MPS самостоятельно собирает и поставляет артефакты kotlinx-metadata-klib / kotlin-metadata-jvm из репозитория Kotlin с соответствующим тегом 2.3.0. Это позволило вернуть поддержку Kotlin-стабов на базе KLib, которую последняя публичная версия kotlinx-metadata-klib:0.0.6 уже не могла обеспечить.

Проверка ICheckedNamePolicy для конкретных естественных языков

MPS теперь использует встроенную в IntelliJ Platform поддержку естественных языков на базе технологии Grazie. Благодаря этому можно проверять, правильно ли используются заглавные буквы в строковых значениях для объектов с интерфейсом ICheckedNamePolicy (например, в названиях интеншенов, действий или инструментов) согласно правилам конкретного языка.

Теперь можно установить в MPS поддержку нужных естественных языков: IDE будет определять язык строк и проверять корректность написания отдельных слов с заглавной буквы. Также можно обойти механизм определения языка и явно указать нужный язык.

Помимо правил капитализации Title-case, используемых по умолчанию, MPS предлагает еще три варианта:

  • Sentence-case, который следует правилам IntelliJ Platform
  • Inherited, который использует правила капитализации ближайшего предка ICheckedNamePolicy
  • No capitalization rules (Без правил капитализации)

Возможность разбивать бинарные операции на несколько строк

В редакторе появилась возможность разбивать длинные строки с бинарными операциями. С помощью специального intention-действия можно быстро переключаться между однострочным и многострочным отображением для выбранного выражения BinaryOperation.

Новый стиль редактора: read-only-inspector

Новый стиль read-only-inspector применяет свойство read-only ко всем ячейкам редактора в инспекторе. Если этот стиль назначен ячейке в основном редакторе, то при ее выборе инспектор переходит в режим «только чтение» для текущего просматриваемого узла. Особенности нового стиля:

  • По умолчанию он отключен.
  • Стиль наследуется и может быть переопределен, как и стиль read-only.
  • Он не влияет на ячейки основного редактора.
  • Стиль read-only, заданный этим механизмом, можно переопределить в любой ячейке ниже по дереву элементов инспектора.

Транзитивные зависимости в Build Language

В Build Language больше не нужно указывать в dependencies каждый транзитивно достижимый скрипт сборки. Это значит, что скрипт сборки BuildA, зависящий от BuildB, теперь может получить доступ к BuildC через BuildB (при условии, что BuildB зависит от BuildC) без необходимости явно указывать BuildC. Для таких случаев генератор создает Ant-свойства вида ${artifacts.BuildC}, которые можно передать из внешнего инструмента сборки (Gradle, Maven и т. д.).

Это позволяет разбивать крупные сборки на более мелкие без необходимости вручную обновлять списки зависимостей при каждом изменении. Например, один скрипт сборки platform может включать растущий набор внешних библиотек, используемых в разных подпроектах.

Более надежная миграция благодаря зафиксированным зависимостям

Раньше код миграции определял, какие именно миграции нужно применить, на основе фактических зависимостей модуля и используемых языков, собранных прямо в момент запуска процесса. При этом версии считывались из снимка зависимостей, сохраненного в дескрипторе модуля. Из-за этого несоответствия миграции могли выполняться в контексте, отличном от того, в котором модуль находился при своем последнем изменении.

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

Улучшенные Java-стабы

Исправлен ряд давних ошибок в Java-стабах. Это заметно повысило точность генерации стабов BaseLanguage для импортированных .jar-файлов и корней моделей Java Sources:

  • MPS-33174 (открыта с 2021 года) — классы с атрибутами InnerClasses теперь корректно преобразуются в стабы BaseLanguage. Информация о внутренних классах в сигнатуре и параметризованные типы-владельцы сохраняются, поэтому поля и методы внутренних классов обобщенных внешних классов теперь показывают правильный тип, а не сворачиваются до внешнего класса.
  • MPS-39375 — для переменных типа в обобщенных методах внутренних классов методы, ссылающиеся на переменные типа внешнего класса, больше не показывают java.lang.Object вместо реальной переменной типа.
  • MPS-39007 — ложная ошибка Java imports annotation is present больше не появляется в каждом корневом узле стаб-модели исходного кода Java.
  • MPS-39565 — Корни Java-стабов больше не исчезают при изменении свойств содержащего их модуля, поэтому ссылки на них из кода проекта не ломаются.

Обновленный жизненный цикл проекта

В связи с переходом MPSProject с устаревшего ProjectComponent IntelliJ IDEA на сервис проекта, компонентам с поддержкой MPS нужен надежный способ получать уведомления о создании и закрытии MPSProject.

В этой версии добавлен отдельный механизм для управления процессами запуска и завершения работы MPSProject. Он позволяет MPS гибко контролировать их последовательность, группировку, порядок и распределение по потокам. Такой возможности не предоставляли платформенные ProjectActivity и MPSProjectActivity.

Как это работает: реализации регистрируются в точке расширения jetbrains.mps.project.lifecycleListener (объявлена в MPSCore.xml) через ProjectLifecycleListener.Bean с listenerClass и необязательным целочисленным priority. LifecycleEventDispatch.java внутри MPSProject может инициировать следующие события:

  • projectReady (неблокирующее)
  • projectDiscarded (блокирующее)
  • asyncProjectClosed (неблокирующее)

Wayland по умолчанию

Теперь MPS использует Wayland как протокол отображения по умолчанию в поддерживаемых Linux-системах. В среде с поддержкой Wayland MPS автоматически переключается на нативный бэкенд вместо слоев совместимости X11, что соответствует современным стандартам Linux-десктопа.

Переход улучшает интеграцию с системой, обеспечивая стабильную работу в окружении Wayland, правильную поддержку ввода и drag-and-drop, а также четкую отрисовку интерфейса (особенно для HiDPI и дробного масштабирования). UX останется прежним, но из-за специфики архитектуры Wayland возможны небольшие отличия, например в расположении или оформлении окон.

Исправленные ошибки

В MPS 2026.1 исправлено множество ошибок. Полный список устраненных проблем приведен здесь.

Обновления платформы

Изменения в интерфейсе

В JetBrains MPS 2026.1 мы продолжили уделять особое внимание комфорту и эргономичности, чтобы рабочее пространство было таким же доступным и настраиваемым, как ваш код.

Долгожданная возможность синхронизировать тему IDE с ОС, помимо macOS и Windows. теперь доступна и на Linux. Включить ее можно в Settings | Appearance & Behavior | Appearance.

Пользователи Windows, которые работают с клавиатуры, теперь могут перевести фокус на главное меню IDE, нажав клавишу Alt. Это делает IDE удобнее для пользователей скринридеров.

Системы контроля версий

Мы продолжаем вносить небольшие, но заметные улучшения, которые упрощают повседневную работу.

Теперь можно изменить любой недавний коммит прямо из окна Commit — без лишних действий с интерактивным rebase. Просто выберите нужный коммит и необходимые изменения, затем подтвердите их — IDE сделает все остальное.

Помимо Git worktree, мы улучшили работу с ветками и добавили действие Checkout & Update, которое загружает все удаленные изменения.

Кроме того, получение изменений теперь можно автоматизировать — отдельный плагин больше не нужен. Включите Fetch remote changes automatically в Settings | Git.

Обновления терминала

  • Команды больше не нужно помнить наизусть — находите их прямо в процессе. Автодополнение в терминале позволяет сразу видеть доступные подкоманды и параметры по мере ввода. Работаете ли вы со сложными CLI-инструментами вроде Git, Docker или kubectl или пишете свои скрипты — эта функция будет на лету предлагать подходящие варианты.

    Раньше функция была доступна только в Bash и Zsh, теперь она работает и в PowerShell.

  • Мы исправили поведение клавиши Esc: теперь она корректно обрабатывается самой оболочкой терминала, а не переключает фокус на редактор кода, что часто нарушало рабочий процесс при взаимодействии с ИИ-агентами. Кроме того, сочетание Shift+Enter теперь переносит строку, упрощая написание многострочных промптов и команд. Такое поведение можно отключить в Settings | Advanced Settings | Terminal.

Руководство по миграции

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