Novidades no MPS 2019.3

Ação de definição rápida

Ação de definição rápida

A definição rápida é semelhante ao seu equivalente no IntelliJ IDEA. Clique em um nó, pressione e segure Ctrl-Shift-I, e você receberá um pop-up com a definição do nó. Nesse pop-up, você pode navegar, selecionar outros nós e executar a ação Find. Dessa forma, você não precisa abrir uma nova guia sempre que quiser dar uma olhada rápida no nó.

Saiba mais

Descarregamento de modelos

Descarregamento de modelos

Agora, é possível melhorar o consumo de memória removendo explicitamente todos os modelos da memória. Você pode clicar no indicador de memória ou definir um parâmetro de limpeza agendada (em segundos) com a ação de registro. No momento, esse recurso é experimental e planejamos aprimorá-lo em versões futuras.

Saiba mais

Módulos de geradores autônomos

Módulos de geradores autônomos e vários geradores por linguagem

Agora você pode criar mais de um gerador para uma linguagem e hospedá-los em uma linguagem (como nas versões anteriores) ou adicioná-los ao lado de uma linguagem como um módulo regular de nível superior. O uso de planos de geradores permite tirar o máximo proveito de vários geradores. Para ajudar na transição, apenas um dos geradores de linguagem continuará envolvido em um modelo sem um plano de geração explícito. O novo gerador pode ser criado no menu de contexto da linguagem e a caixa de diálogo a seguir possui uma nova caixa de seleção que você pode usar para torná-la independente.

Conversão de conceitos e interfaces

Conversão de conceitos e interfaces

Adicionamos uma nova intenção que converte um conceito em um conceito de interface, e vice-versa. Isso pode ser usado ao criar uma estrutura de linguagem e não altera o uso.

Criar a partir do uso

Criar a partir do uso

Agora, é possível criar conceitos, métodos e classes a partir de usos no código. A intenção pode criar uma classe sobre novas instruções, métodos em expressões, bem como conceitos e interfaces em funções filho/de referência e em extensões/implementos.

Gerando identificadores Java válidos

Gerando identificadores Java válidos a partir de INamedConcepts

Uma nova instrução de gerador permite gerar um identificador Java válido a partir de qualquer INamedConcept. Isso criará um nome exclusivo, removendo símbolos ilegais, colocando em maiúsculas e adicionando um prefixo, se necessário.

Encontre usos: nova instrução para relatar resultados de pesquisa arbitrários ao escrever um localizador

Nas versões anteriores do MPS, a instrução add result no localizador permitia apenas resultados de pesquisa baseados em node<>. Agora, com add raw result, o designer de idiomas pode exibir qualquer resultado que a visualização Find Usages seja capaz de visualizar.

O que foi corrigido

Gerador: controle o aviso de referências dinâmicas

O gerador do MPS emite um aviso quando tenta resolver uma referência dinâmica, mas falha, e isso causa muitos avisos, pois nem todos os geradores seguem uma abordagem estrita de construção de referência usando mapeamentos de rótulos. Portanto, adicionamos uma nova configuração para controlar se o aviso deve ou não aparecer.

Saiba mais

Melhor desempenho de carregamento de JavaStubs Patrocinado pelo Cliente

Melhoramos significativamente o desempenho ao carregar modelos de stub, especialmente em conjuntos de jars grandes e fortemente conectados. Os tempos de carregamento são agora de 2 a 3 vezes mais rápidos em nosso projeto de destino do que na versão 2019.2 (de 18 segundos para 6 segundos). Esse aumento também foi transferido ao MPS 2019.1 e ao MPS 2019.2.

Linguagem de compilação: raízes explícitas do modelo

O MPS costumava lidar com apenas um conjunto específico de arquivos como modelos, ou seja, *.mps e *.mpsr. No entanto, com a persistência de modelos personalizados, os nomes dos arquivos diferem. Para garantir que todos os arquivos de modelo necessários sejam agrupados quando um módulo for compilado, há uma declaração raiz explícita do modelo para um módulo no script de compilação que facilita os padrões de nome de arquivo personalizados.

Documentação

As amostras de persistência personalizada e a documentação para o novo assistente de solução de compilação receberam uma atualização. Os erros de tempo de geração na amostra Math e links quebrados nas páginas de documentação foram corrigidos. Várias caixas de diálogo e janelas de ferramentas também foram corrigidos.

Linguagem base

Literais binários e octais agora são compatíveis, e os parâmetros de tipo nos Javadocs são manipulados corretamente. Muitos outros problemas foram corrigidos também.

Correção rápida para atualizar objetos de identidade de módulo/modelo

O MPS detecta nomes desatualizados e fornece uma correção rápida para atualizá-los para objetos da linguagem SModel.

Saiba mais

Atualização de histórias para facetas de módulos

Com a faceta do módulo "Tests", os designers de linguagem agora têm total liberdade, e o MPS não exige mais que a faceta esteja presente no módulo Language.

Saiba mais

Envolver com...

A ação Surround with… agora está disponível quando vários nós são selecionados. Anteriormente, ela era habilitada apenas para seleções que continham um único nó.

Ação Show Affected Files na caixa de diálogo Root History

Para uma revisão em um histórico raiz, agora você pode dar uma olhada nos outros arquivos alterados na mesma revisão.

Histórico de raiz para modelos em persistência por raiz

A ação Show Root History, introduzida na versão 2019.2, está disponível para raízes de modelos mantidos em um único arquivo. Agora, modelos em persistência por raiz também são compatíveis.

Atualização da visualização Favorites

O MPS integra a bem conservada ferramenta Favorites da plataforma IntelliJ.

Saiba mais

Estilo de meta-linguagens

Todas as meta-linguagens agora oferecem o mesmo estilo e experiência de edição com relação a, entre outras coisas, navegação pelo teclado, comportamento da célula de espaço reservado nos editores e aparência "New Root".