O MPS 2021.2 vem com um mecanismo de verificação ortográfica, pop-up de complementação automática, melhoramentos de VCS e muito mais.
A complementação automática de código, que normalmente é chamada através das teclas Ctrl/Cmd + Espaço, agora aparece automaticamente depois que você para de digitar, com um atraso de meio segundo por default. O recurso ainda pode ser aberto manualmente, se necessário. Saiba mais.
Mudanças de empacotamento agora estão muito mais flexíveis. É possível ter mudanças internas independentes dentro das mudanças de empacotamento e desempacotamento. Além disso, é possível ter várias mudanças de empacotamento e desempacotamento lado a lado. Os movimentos internos agora são detectados dentro de nós com IDs alterados.
Anteriormente, as células do editor para atributos não eram destacadas corretamente na caixa de diálogo Diff. Geralmente, todo o nó contendo o atributo era realçado se um atributo fosse adicionado ou excluído, em vez de apenas destacar o atributo em questão.
A funcionalidade MPS que emprega um mecanismo de verificação ortográfica do IntelliJ IDEA para verificar comentários e literais de string em busca de erros de digitação e sintaxe foi estendida para funcionar com qualquer texto que possa aparecer em uma célula de rótulo. Para indicar que o texto de uma célula deve ser verificado em um dicionário (conforme configurado em Preferences), você só precisa adicionar o estilo spellcheck
à célula, na sua declaração de editor.
Para plataformas Rich Client (RCP), não esqueça de incluir o plug-in jetbrains.mps.editor.spellcheck
na distribuição.
Nós lidamos com o cenário onde um projeto que foi migrado para uma versão mais recente do MPS é acessado por um desenvolvedor com uma versão mais antiga do MPS. O subsistema de migração agora rastreia a versão da plataforma MPS ao aplicar migrações e avisa caso um projeto que você estiver tentando abrir tiver migrado para uma versão mais recente. Isto ajuda a evitar a corrupção não intencional de modelos.
Há um mecanismo para compartilhar partes avaliadas do escopo durante a leitura de um único modelo. Foram introduzidas novas expressões em jmlang.constraints
para escopos de compartilhamento: for model [ factory, key]
, visible roots [concept]
e visible nodes [concept]
como substituições para new ModelPlusImportedScope(model, rootsOnly, concept)
. As novas expressões são usadas para salvar o escopo de um modelo na memória cache, o que significa que ele só precisa ser registrado e calculado uma única vez.
Os autores de extensões devem selecionar o tipo de acesso a ser concedido ao escrever código que funcione com modelos MPS. Para operações SNode (por exemplo, setProperty(), addChild(), etc.), só era possível conceder command access, mesmo sem a interação da IU. Essa limitação foi eliminada e qualquer código que tenha write access para o modelo agora pode modificar os nós.
O recurso Tooltips agora possui uma funcionalidade chamada radar, que mostra quais células têm dicas de contexto. O radar de dicas de contexto pode ser ativado pressionando e segurando a tecla Ctrl.
Agora é possível em baseLanguage usar o operador diamante Java em construtores para inferir parâmetros genéricos a partir do contexto. O operador diamante será ativado por default para código recém-escrito. Para ativá-lo nos seus construtores existentes, remova seus parâmetros de tipo existentes e defina infer type parameters como true no inspetor ou digite <>
novamente e depois remova o parâmetro vazio.
As propriedades em baseLanguage agora são levadas em consideração corretamente na verificação de tipo. Não serão gerados erros para métodos não implementados quando uma propriedade herdar a interface ou métodos abstratos. Ao definir uma propriedade com tipo genérico, o tipo correto será usado para acessar a propriedade de uma instância.
Observe que o setter exposto para uma propriedade de tipo T
retornará um objeto do tipo T
, em vez de void
.
O MPS agora mostra a diferença entre as versões inicial e alterada dos arquivos na aba do editor. Não importa como você invoca a ação Show Diff, o IDE abrirá a diff no editor por default.
Se você preferir rastrear alterações numa janela separada, você pode arrastar o arquivo desejado do editor. Se fizer isso, o IDE se lembrará disso e abrirá diffs futuras em uma janela separada.
Novas setas estão localizadas no canto superior direito da janela em Preferences/Settings para ajudá-lo a navegar através das seções. Elas permitem que você salte entre as seções.
Agora, ficou mais fácil arrastar e soltar uma janela de ferramentas para movê-la dentro da janela principal do IDE ou para torná-la uma janela separada. Você pode arrastar uma janela de ferramentas clicando e segurando a sua barra de nome e soltando-a em qualquer local realçado.
Existem novas opções para o formato do cursor no terminal embutido. Além disso, o terminal também agora oferece suporte para atalhos usando Option (⌥) como uma tecla Meta. Por exemplo, você pode usar os seguintes atalhos: