Novidades no MPS 2019.2

Tipo de dados de enumeração

Tipo de dados de enumeração

Novas declarações de tipos de dados de enumeração fornecem uma maneira concisa de declarar uma lista de opções: cada opção é expressa com um membro de enumeração nomeado. Opcionalmente, é possível alterar a apresentação do editor para alguns membros e escolher o membro padrão usado quando nenhum membro é definido explicitamente em uma propriedade.

Saiba mais

Personalização de mensagens de erro

Personalização de mensagens de erro Patrocinado pelo Cliente

Por algum tempo, houve solicitações para a possibilidade de personalizar algumas mensagens de erro do MPS. Graças a uma solicitação de um de nossos clientes pagantes, conseguimos atribuir um estado de prioridade mais alta a esse recurso. Agora, todas as restrições de relatórios de erros podem ser modificadas. Planejamos disponibilizar essa personalização de relatórios para outros tipos de erros nas próximas versões.

Um novo aspecto chamado "feedback" está disponível para personalização do texto do erro.

Saiba mais

Linguagem de restrições baseada em regras

Linguagem de restrições baseada em regras

A linguagem de restrições baseada em regras foi criada para substituir a restrição canBe* atualmente disponível da linguagem de restrições do MPS comum no futuro. Consideramos a linguagem de restrições baseada em regras como uma funcionalidade experimental e, portanto, esperamos que ela evolua significativamente nos próximos lançamentos.

Saiba mais

Histórico da raiz

Histórico da raiz

O menu Git vem com uma nova ação para mostrar o histórico de alterações do VCS em uma raiz específica. A ação está disponível no menu de contexto do editor.

Saiba mais

Pesquisa de texto completo

Pesquisa de texto completo

A pesquisa de texto completo nos valores da propriedade está pronta. Edit–>Find–> ação Find Text in Project (Ctrl+Alt+Shift+F) permite procurar nós com valores de propriedade que correspondem ao texto especificado.

Verificação de erros específica

Verificação de erros específica

Um dos casos de uso comuns de uma linguagem de teste é verificar os nós em busca de mensagens de erro ou avisos. O subsistema de teste do MPS às vezes não conseguia distinguir entre erros diferentes que apareciam no mesmo nó. Isso podia levar a um comportamento enganoso: mesmo que o usuário especifique o erro esperado na anotação de teste correspondente, quaisquer erros e avisos adicionais relatados neste nó não serão relatados como violações de teste.

Saiba mais

Verificando regras definidas em busca de padrões

Verificando regras definidas em busca de padrões

Ao definir uma regra de verificação para um conceito, a regra é chamada para cada nó que é uma instância do conceito.

Agora, em vez de substituir qualquer regra herdada do superconceito, a lista de regras a serem substituídas pode ser especificada explicitamente. É altamente recomendável revisar todas as suas regras de verificação que usam o recurso de substituições e determinar quais regras devem ser substituídas.

Saiba mais

API de fachada de verificação de tipos

A partir desta versão, a nova API de fachada é a única maneira suportada de executar consultas de verificação de tipo.

Nova API: Consulte jetbrains.mps.typechecking.TypecheckingFacade e classes relacionadas.

API preterida (legada): A hierarquia dos pacotes jetbrains.mps.typesystem.* agora está descontinuada. Qualquer uso direto de classes nessa hierarquia é desencorajado, exceto o código gerado automaticamente a partir do conteúdo de um aspecto "sistema de tipos".

Alterações futuras nas seguintes versões

A seguir, é apresentado um plano experimental de alterações a serem feitas em relação ao suporte para sistema de tipos. O aspecto que foi responsável pela implementação do sistema de tipos e a linguagem usada nesse aspecto se tornará legado. Com o tempo, a linguagem e o suporte ao tempo de execução serão migrados para um plug-in separado.

Um novo aspecto a ser introduzido que substituirá essencialmente a parte "não pertencente ao sistema de tipos" do aspecto do sistema de tipos. Uma migração será fornecida para extrair regras de verificação do aspecto do sistema de tipos legado.

Uma nova estrutura de verificação de tipos e o suporte ao tempo de execução a serem introduzidos, o que significa uma reescrita total do mecanismo legado.

Make em segundo plano

Processos Make em segundo plano funcionam corretamente. Estamos trabalhando para melhorar a capacidade de resposta da interface do usuário durante o Make em segundo plano. Para restaurar a versão anterior, há uma nova configuração de interface do usuário para controlar tudo isso: Preferences –> Project Settings –> Perform in background.

Java 11 como tempo de execução

O MPS agora será executado no JDK 11. Isso afetará o mecanismo de carregamento de modelos stub. A maior parte do projeto não precisará de migração, exceto o uso raro de algumas classes e campos recompactados no JDK 11.

No plug-in IntelliJ IDEA, os módulos com a faceta do MPS agora devem estar associados ao JDK versão 11. Caso contrário, a geração do código falhará.

BaseLanguage

As melhorias da BaseLanguage foram um dos principais objetivos desta versão. Corrigimos muitos problemas relacionados a BaseLanguages, desde bugs até problemas de usabilidade.

Nova amostra

Com base nos comentários da comunidade, adicionamos um novo projeto de amostra para geração de XML.

Verificação ortográfica em comentários BL

Temos verificação ortográfica para comentários de linha única, texto Javadoc e literais de string.

Configuração Git local

Alteramos as configurações do driver de merge de global para local (repositório por Git) e, portanto, agora é possível ter tantos drivers de merge quanto as instalações do MPS.