Novidades no MPS 2026.1

O MPS agora utiliza a IntelliJ Platform 2026.1, o JDK 25 e o Kotlin 2.3. A Build Language ganha dependências transitivas, as migrações tornam-se mais reproduzíveis e os stubs Java receberam uma atualização substancial em termos de qualidade. O plug-in Projectional Agent Toolkit, incluído no pacote, permite que os agentes de programação por IA leiam e escrevam modelos de MPS, abrindo assim uma série de conceitos de desenvolvimento de ponta para desenvolvedores MPS e autores de linguagens.

Explore a lista completa de mudanças abaixo.

Projectional Agent Toolkit – Agentes de programação por IA agora podem trabalhar diretamente com modelos de MPS

O MPS é fornecido com o Projectional Agent Toolkit, um plug-in que expõe a projeção, o modelo e o ambiente de trabalho de linguagem do MPS a agentes de programação por IA por meio do Model Context Protocol. Agentes como o Claude Code, o OpenAI Codex, o JetBrains Junie e qualquer outro cliente compatível com MCP podem se conectar a uma instância do MPS em execução e operá-la da mesma forma que um desenvolvedor faria – navegando por módulos e modelos, lendo e editando nós por meio do editor projecional, resolvendo referências, inspecionando hierarquias de conceitos, gerando código e executando configurações. Eles não precisam mais tratar arquivos .mps como XML opaco.

O Projectional Agent Toolkit oferece uma série de toolsets que abrangem todas as etapas de um projeto MPS:

  • Projetos, módulos e modelos – Permitem que os agentes identifiquem soluções, linguagens e devkits; abram e criem modelos; e resolvam dependências.
  • Linguagens e conceitos – Proporcionam aos agentes a capacidade de inspecionar hierarquias de conceitos, propriedades, elementos filhos, referências e herança, bem como implementar conceitos de estrutura a partir de um blueprint JSON.
  • Nós raiz e nós – Permitem que os agentes leiam, criem, atualizem, movam e excluam nós por meio de operações sensíveis aos nós que respeitam restrições conceituais, em vez de edições no nível do texto.
  • Referências e escopos – Permitem que os agentes consultem destinos atribuíveis para um link de referência, de modo que o agente selecione um referente válido logo na primeira tentativa.
  • Configurações de execução – Permitem que os agentes listem e executem configurações de execução de projetos para validar as alterações de ponta a ponta.

Para garantir que os agentes se tornem produtivos o mais rápido possível, o kit de ferramentas também inclui um conjunto de skills – guias práticos específicos e alinhados aos modelos que acompanham as ferramentas. Eles ensinam ao agente como as linguagens MPS são organizadas, como implementar conceitos de estrutura, como trabalhar com o editor, como escrever a BaseLanguage como uma AST JSON e como registrar memórias específicas da DSL para sessões futuras. As competências podem ser consultadas pelo mesmo canal MCP; assim, um agente recém-conectado pode perguntar ao MPS o que precisa saber antes de começar a editar.

A experiência de trabalhar com diversos assistentes de IA em IDEs baseadas no IntelliJ agora se estende naturalmente ao desenvolvimento de linguagens e DSLs: um agente pode implementar um novo conceito, configurar seu editor e suas restrições, adicionar métodos de comportamento, criar código DSL, regerá-lo, além de testar e executar o resultado — tudo isso sem sair do modelo semântico do MPS. Para os criadores de linguagens de programação, isso transforma a assistência da IA de uma simples funcionalidade de complementação de código em um colaborador capaz de compreender a projeção.

O Projectional Agent Toolkit é um recurso experimental e pode estar sujeito a alterações na API no futuro. Ele vem incluído e está ativado por padrão. Basta iniciar o servidor MCP embarcado e configurar seu agente compatível com MCP para a instância do MPS; os conjuntos de ferramentas e as habilidades serão exibidos automaticamente.

Leia a documentação do Projectional Agent Toolkit para conhecer todos os detalhes.

Migração para a IntelliJ Platform 2026.1, JDK 25 e Kotlin 2.3

A versão MPS 2026.1 conclui a transição para a geração atual da Plataforma IntelliJ. O runtime é o JDK 25, e a versão incorporada do Kotlin é a 2.3.0. Além disso, o MPS agora compila e distribui seus próprios artefatos kotlinx-metadata-klib / kotlin-metadata-jvm a partir do repositório Kotlin com a etiqueta 2.3.0 correspondente, restaurando o suporte a stubs Kotlin baseados em KLib que a última versão pública kotlinx-metadata-klib:0.0.6 já não conseguia oferecer.

Capacidade de verificar ICheckedNamePolicy em relação a linguagens naturais específicas

O MPS agora utiliza o suporte a linguagem natural da plataforma IntelliJ, fornecido pela Grazie. Isso significa que é possível verificar se os valores de strings em instâncias de ICheckedNamePolicy, tais como intenções, ações ou ferramentas, apresentam o uso correto de maiúsculas e minúsculas de acordo com as regras de uma língua natural específica.

Agora é possível instalar o suporte a linguagem natural para suas linguagens preferidas no MPS, e o IDE detectará a linguagem utilizada nas strings e verificará se as palavras individuais estão escritas com maiúscula corretamente. Você também pode ignorar o mecanismo de detecção de linguagem e especificar explicitamente a linguagem desejada.

Além das regras padrão de uso de maiúsculas Title-case (letras maiúsculas no início das palavras), o MPS oferece outras três opções:

  • Sentence-case (Maiúsculas e minúsculas), que segue as regras da Plataforma IntelliJ
  • Inherited (Herdado), que utiliza as regras de uso de maiúsculas do ancestral mais próximo ICheckedNamePolicy
  • No capitalization rules (Sem regras de uso de maiúsculas)

Capacidade de dividir operações binárias em várias linhas

No editor, agora é possível dividir linhas longas com operações binárias. Uma ação de intenção específica permite alternar entre os layouts de uma linha e de várias linhas para uma determinada BinaryOperation.

Novo estilo de editor booleano: read-only-inspector

O novo estilo read-only-inspector aplica a propriedade somente leitura a todas as células do editor no inspetor. Quando esse estilo é aplicado a uma célula no editor principal, o inspetor passa a ser somente leitura para o nó inspecionado quando a célula com esse estilo é selecionada. O novo estilo possui as seguintes propriedades:

  • Essa opção está desabilitada por padrão.
  • O estilo é herdável e pode ser substituído, assim como o estilo read-only.
  • Isso não afeta as células do editor principal.
  • O estilo read-only definido por este mecanismo pode ser substituído em qualquer célula localizada mais abaixo na árvore de células do editor do inspetor.

Dependências transitivas na Build Language

A Build Language já não é necessária para que todos os scripts de build acessíveis transitivamente sejam listados em dependencies. Isso significa que um script de build, BuildA, que depende de BuildB, agora pode acessar BuildC por meio de BuildB (desde que BuildB dependa de BuildC) sem precisar listar BuildC explicitamente. O gerador emite propriedades Ant ${artifacts.BuildC} para esses casos, e essas propriedades podem ser fornecidas pela ferramenta de build externa (Gradle, Maven, etc.).

Isso permite dividir builds grandes em builds menores, sem obrigar todos os usuários a atualizar as listas de dependências. Por exemplo, um único script de build platform pode englobar um conjunto cada vez maior de bibliotecas externas utilizadas em vários subprojetos.

Migrações mais confiáveis por meio de dependências registradas

O código de migração decidia anteriormente quais migrações aplicar com base nas dependências reais dos módulos e nas linguagens utilizadas, coletadas no momento da migração, mas lia as versões a partir do snapshot de dependências registrado no descritor do módulo. Essa incompatibilidade pode fazer com que as migrações utilizem uma visão do mundo diferente daquela em que o módulo foi modificado pela última vez.

Na versão 2026.1, o mecanismo de migração utiliza sistematicamente as dependências e as linguagens utilizadas registradas no descritor do módulo no momento da última modificação, e não o estado observável atualmente. O verificador de migração foi reformulado em conformidade. Agora, ele reutiliza as informações já coletadas para o processo de migração, em vez de recalculá-las sempre que necessário.

Stubs Java aprimorados

Um conjunto de bugs de longa data relacionados aos stubs Java foi corrigido, melhorando visivelmente a precisão dos stubs de BaseLanguage gerados para arquivos .jar importados e raízes do modelo Java Sources:

  • MPS-33174 (aberto desde 2021) – Classes com atributos InnerClasses agora são transformadas corretamente em stubs de BaseLanguage. As informações sobre as classes internas da assinatura e os tipos parametrizados dos proprietários são preservados; assim, os campos e métodos das classes internas de classes externas genéricas agora exibem o tipo correto, em vez de serem reduzidos ao tipo da classe externa.
  • MPS-39375 – Para variáveis de tipo em métodos genéricos de classes internas, os métodos que fazem referência a variáveis de tipo da classe externa não exibem mais java.lang.Object no lugar da variável de tipo real.
  • MPS-39007 – O erro falso Java imports annotation is present não aparece mais em todas as raízes de um modelo de stub de código-fonte Java.
  • MPS-39565 – As raízes dos stubs de código-fonte Java não desaparecem mais quando são feitas alterações nas propriedades do módulo que as contém; assim, as referências do código do projeto a essas raízes permanecem intactas quando as propriedades do módulo são alteradas.

Ciclo de vida de projetos modernizado

Como MPSProject passou de um ProjectComponent legado do IntelliJ IDEA para um serviço de projeto, os recursos compatíveis com MPS precisam de uma maneira confiável de ser notificados sobre a disponibilidade e a retirada de MPSProject.

Esta versão introduz um mecanismo específico para gerenciar as atividades de inicialização e desligamento de MPSProject, permitindo ao MPS controlar a sequência, o agrupamento, a ordenação e a execução em threads dessas atividades. Isso era algo que os componentes ProjectActivity e MPSProjectActivity da plataforma não podiam oferecer.

Como funciona: os desenvolvedores se registram no ponto de extensão jetbrains.mps.project.lifecycleListener (declarado em MPSCore.xml) por meio de um ProjectLifecycleListener.Bean com um listenerClass e um priority inteiro opcional. O arquivo LifecycleEventDispatch.java dentro de MPSProject pode disparar:

  • projectReady (sem bloqueio)
  • projectDiscarded (com bloqueio)
  • asyncProjectClosed (sem bloqueio)

Wayland por padrão

O MPS agora oferece o Wayland como protocolo de exibição padrão nos sistemas Linux compatíveis. Ao ser executado em um ambiente compatível com Wayland, o MPS muda automaticamente para um backend Wayland nativo, em vez de depender de camadas de compatibilidade com o X11, alinhando-se assim aos padrões modernos de desktop Linux.

Essa transição melhora a integração geral com o sistema, proporcionando maior estabilidade nos compositores Wayland, suporte adequado a métodos de entrada e ao recurso de arrastar e soltar, além de uma renderização mais consistente — especialmente em configurações HiDPI e de escalabilidade fracionária. Embora a experiência do usuário permaneça em grande parte familiar, algumas diferenças (como o posicionamento das janelas ou os elementos decorativos) podem ser perceptíveis devido à arquitetura do Wayland.

Diversas correções de bugs

O MPS 2026.1 inclui uma ampla gama de correções de bugs. A lista completa de problemas resolvidos pode ser encontrada em aqui.

Atualizações da plataforma

Atualizações na interface do usuário

Com o JetBrains MPS 2026.1, continuamos a priorizar o máximo conforto e uma interface de usuário ergonômica, garantindo que seu espaço de trabalho seja tão acessível e personalizável quanto seu código.

A tão esperada funcionalidade de sincronizar o tema do IDE com o sistema operacional já está disponível para usuários do Linux, estabelecendo paridade com o macOS e o Windows. Habilite-a em Settings | Appearance & Behavior | Appearance.

Os usuários do Windows que utilizam o teclado agora podem selecionar o menu principal do IDE pressionando a tecla Alt. Essa alteração melhora a acessibilidade para usuários de leitores de tela.

Atualizações do controle de versão

Continuamos a implementar pequenas melhorias de grande impacto que reduzem os obstáculos e facilitam o seu fluxo de trabalho diário.

Agora você pode alterar qualquer commit recente diretamente da janela de ferramentas Commit – sem mais complicações envolvendo rebase interativo. Basta selecionar o commit de destino e as alterações necessárias e, em seguida, confirmá-las – o IDE cuidará do resto.

Além das árvores de trabalho do Git, aprimoramos os workflows de branches com a introdução da ação Checkout & Update, que faz um pull de todas as alterações remotas.

Além disso, agora é possível automatizar a recuperação de alterações – sem necessidade de um plug-in separado. Habilite Fetch remote changes automatically em Settings | Git.

Atualizações do terminal

  • Pare de memorizar comandos. Comece a descobri-los. A complementação no terminal ajuda você a explorar os subcomandos e parâmetros disponíveis, à medida que você digita. Quer você esteja trabalhando com ferramentas complexas de linha de comando, como Git, Docker ou kubectl, ou usando os seus próprios scripts personalizados, este recurso sugere opções válidas de forma inteligente e em tempo real.

    Introduzida anteriormente para shells Bash e Zsh, agora também disponível para o PowerShell.

  • Corrigimos o comportamento de Esc – agora ele é tratado pelo shell, em vez de transferir o foco para o editor, de modo que não interrompe o workflow do agente de IA. Além disso, Shift+Enter agora insere uma nova linha, facilitando a escrita direta de prompts e comandos com várias linhas. Esse comportamento pode ser desativado em Settings | Advanced Settings | Terminal.

Guia de migração

Para cada lançamento principal, preparamos instruções sobre como migrar de versões mais antigas do MPS para garantir que tudo corra bem. Veja-os em detalhes no guia de migração atualizado.