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.
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.
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.
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.
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.
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.
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.
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".
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.
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.
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á.
As melhorias da BaseLanguage foram um dos principais objetivos desta versão. Corrigimos muitos problemas relacionados a BaseLanguages, desde bugs até problemas de usabilidade.
Com base nos comentários da comunidade, adicionamos um novo projeto de amostra para geração de XML.
Temos verificação ortográfica para comentários de linha única, texto Javadoc e literais de string.
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.