Novidades no MPS 2018.2

Testes de geradores

Além da família existente de testes de nó e editor, implementamos uma nova maneira de testar geradores. O objetivo é garantir que um gerador, ou um conjunto de geradores, faça seu trabalho. Os modos de execução em processo e fora de processo são suportados pelo IDE, bem como a execução de scripts de compilação Ant do MPS.

Bifurcação em planos de geração

Há uma nova declaração em planos de geração: bifurcação com o plano de outra geração para ramificar a sequência de transformação em um determinado ponto. O plano referenciado recebe um modelo no estado em que estava na etapa da bifurcação e prossegue como uma transformação regular. No exemplo, primeiro, transformamos o modelo de entrada com o gerador crossmodel.entity e registramos o estado e, em seguida, continuamos com o gerador crossmodel.property#prop2class para obter o modelo de saída #1. Em seguida, o gerador crossmodel.property#prop2xml transforma o modelo gravado para obter o modelo de saída #2. Observe que "then" aqui não é um contrato - não há promessa de que os branches serão processados em qualquer ordem específica, exceto que o branch "primária", a do plano inicial, fornecerá o modelo de saída "primeiro e único" disponível através da antiga API (GenerationStatus#getOutputModel) para fins de compatibilidade/migração.

Bifurcação em testes de geração

Testes de gerador oferecem suporte a planos de geração com uma instrução de bifurcação e correspondem todos os modelos de saída com os modelos de referência que foram fornecidos.

Novo aspecto VCS

Introduzimos um novo aspecto da linguagem VCS. Em vez de escrever anotações na declaração de conceito, agora você cria um aspecto de linguagem para isso. O aspecto é gerado para um código de tempo de execução específico. O aspecto VCS substituiu a anotação MergeHints, e a migração está incluída.

Plug-in do GitHub

O plug-in GitHub agora está implementado. Você pode fazer login em VCS -> Checkout from Version Control -> Git -> Log in to GitHub...

Notificações de migração

Implementamos notificações de migração para fornecer uma melhor comunicação sobre o que está acontecendo: agora você receberá uma notificação se um projeto depender de uma linguagem que não possa ser carregada por qualquer motivo ou quando a migração é adiada.