Что нового в MPS 2020.1

MPS 2020.1: усовершенствованный редактор, язык шаблонов Light patterns, Javadoc для моделей-заглушек, улучшения в BaseLanguage и другие возможности.

Разные разделители в зависимости от позиции в списке

Разные разделители в зависимости от позиции в списке

При редактировании узлов с количеством элементов (0, n) или (1, n) можно использовать разделитель между значениями с помощью реализации функции запроса разделителя. Мы расширили эту функциональность: функция запроса принимает больше аргументов (prevNode и nextNode), так что для каждой пары значений можно указать свой разделитель. На скриншоте “and” и “,” являются разделителями.

Подробнее

Light patterns

Light patterns

Язык шаблонов помогает описывать структурные шаблоны и сопоставлять с ними узлы. При этом используются обычные редакторы концептов, в которых шаблон похож на узлы, которые он принимает. Но для некоторых сложных редакторов, которые не полностью соответствуют структуре концепта, практичнее использовать light patterns (построители шаблонов), описывающие требуемую структуру буквально.

Подробнее

Подсказки

Подсказки

The editor extension of the Tooltips from mbeddr platform has been added to MPS. Для языка mbeddr будет предоставлена миграция.

Подробнее

Реорганизация меню Transform и Substitute

Реорганизация меню Transform и Substitute

Мы упростили меню Substitution, удалив отдельные концепты SubstituteMenu_Named и SubstituteMenu_Default. Теперь они объединены в родительском концепте SubstituteMenu. Тип меню выбирается в редакторе меню. Меню Transformation было преобразовано аналогичным образом.

Обнаружение ошибок в неисправных редакторах

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

Подробнее

Режим замещения напечатанного текста

Мы добавили функцию, которая делает проекционный редактор MPS больше похожим на текстовый редактор. Если вы попытаетесь ввести в текстовой ячейке символ, который и так уже есть справа от курсора, курсор просто перескочит через существующий символ — он не будет напечатан повторно. Эта функция сработает, только если вводимый символ не может быть корректно обработан и должен быть проигнорирован (например, в постоянных ячейках) или он сделает содержимое ячейки недействительным.

По умолчанию эта функция включена, вы можете отключить ее в меню «Settings / Editor / General.

Подробнее

Удаление ненужных языковых расширений

Генератор теперь распознает расширения редактора для других языков и генерирует код, который явно выражает зависимость между языками. Это означает, что разработчикам языка не нужно беспокоиться об этой зависимости. Для активации расширений редактора больше не требуется наличие зависимости 'extends' между языковыми модулями.

Подробнее

Комментарии Javadoc в моделях-заглушках Java

Новый механизм позволяет указать zip-файл, который содержит исходные файлы библиотеки, вместе с jar-файлом. Теперь MPS умеет извлекать Javadoc из исходников, чтобы отображать документацию вместе с информацией, извлеченной из файлов классов.

Подробнее

Многострочные комментарии для BaseLanguage

Мы немного расширили функциональность SingleLineComment и добавили в BaseLanguage концепт MultiLineComment, который позволяет добавлять многострочные комментарии, заключенные в /* … */, как в Java.

Новые возможности Java в BaseLanguage

BaseLanguage теперь поддерживает конструкцию try with resources, обработку нескольких исключений в блоке catch, вывод типов для локальных переменных, а также default- и private-методы в интерфейсах. Чтобы обеспечить совместимость с процессами сборки, которые требуют определенного уровня Java, для каждого решения можно заблокировать языковые возможности, несовместимые с требуемым уровнем. Для функции вывода типов локальных переменных требуется j.m.baseLanguage.varVariable, для остальных возможностей не нужно ничего импортировать.

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

Другие улучшения

Немодальный интерфейс коммита

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

Попробуйте новый способ работы с коммитами, выбрав опцию Use non-modal commit interface в меню Preferences/Settings | Version Control | Commit.

Режим полного погружения

Новый режим погружения Zen сочетает в себе Distraction Free Mode и Full-Screen Mode, чтобы вы могли полностью сосредоточиться на работе с кодом. Zen включается в меню: View | Appearance | Enter Zen Mode.

Установка Git через IDE

Больше не нужно заранее устанавливать Git вручную. Когда вы клонируете существующий Git-репозиторий, IDE будет искать исполняемый файл Git на вашем компьютере и, если не найдет, предложит загрузить и установить программу.

Путь к конфигурационным файлам

В MPS 2020.1 изменился путь к конфигурационным файлам.

Подробнее

Новый шрифт по умолчанию

Теперь в MPS по умолчанию используется новый шрифт JetBrains Mono, созданный специально для разработчиков (Preferences / Settings | Editor | Font). Узнайте, в чем его особенности, на нашем сайте.

Плагины для MPS на Marketplace

JetBrains Plugin Marketplace is now available in MPS. Это открывает новые возможности: вы можете получать доход от продажи плагинов.