Integrar inteligência artificial a uma IDE vai muito além de colocar um chat ao lado do editor. Para ajudar de verdade, a ferramenta precisa compreender o projeto que está aberto, reconhecer os tipos envolvidos, acompanhar arquivos ainda em edição e saber quando possui informações suficientes para sugerir uma alteração.
O RadIA 2.14.0 avança justamente nessa direção. A nova versão fortalece o motor semântico para Object Pascal e amplia a validação das decisões tomadas dentro do Delphi. O objetivo não é apenas encontrar mais símbolos ou oferecer mais sugestões, mas tornar cada resposta mais previsível, explicável e segura.
Essa evolução também muda a forma como avaliamos a qualidade do produto. Em vez de perguntar somente se uma unit compila, a validação passa a acompanhar jornadas completas: criar um projeto, abrir o formulário no Designer, editar, compilar, testar, iniciar uma sessão de depuração e interagir com a aplicação em execução.
Compreender código exige mais do que encontrar palavras
Em um projeto Delphi real, o significado de um identificador depende do contexto. Uma classe pode estar declarada em outra unit, herdar membros de um ancestral, implementar contratos definidos em interfaces e compartilhar o mesmo nome curto com tipos de outros projetos do grupo.
Também existe o estado transitório do editor. Enquanto o desenvolvedor digita, o arquivo pode conter um método incompleto, uma diretiva condicional aberta ou uma seção implementation ainda ausente. Esse código não está pronto para o compilador, mas já contém informações úteis que uma assistência integrada precisa preservar.
Analisar tudo isso apenas como texto pode levar a respostas aparentemente corretas, mas baseadas no símbolo errado. O motor semântico do RadIA mantém uma representação local e reconstruível do workspace, considerando projetos, buffers abertos, relacionamentos entre tipos e bibliotecas relevantes do Delphi.
Na versão 2.14.0, essa representação ficou mais transparente. Uma consulta não precisa mais terminar apenas com um resultado ou uma lista vazia. O motor passa a explicar o que conseguiu compreender e por que chegou àquela conclusão.
Respostas que apresentam o motivo da decisão
Uma das mudanças centrais desta versão é o novo contrato de resolução semântica. Quando o RadIA procura um símbolo ou tenta completar uma expressão, o resultado pode informar o estado da consulta, o motivo da decisão, a origem do símbolo e as alternativas encontradas.
Isso permite separar situações que antes poderiam parecer iguais. Uma lista vazia pode significar que o nome não foi encontrado, que o tipo existe mas não possui membros, que nenhum membro corresponde ao prefixo digitado ou que todos os contratos necessários já foram implementados.
Essas diferenças são especialmente importantes para o modo agente. Um agente precisa distinguir certeza, ambiguidade e ausência de contexto antes de modificar um projeto. Quando duas units oferecem tipos com o mesmo nome curto, escolher silenciosamente a primeira opção seria rápido, mas arriscado.
O RadIA agora identifica esse cenário, apresenta as alternativas e evita transformar uma hipótese em certeza. A capacidade de recusar uma resposta insegura é tão importante quanto a capacidade de encontrar uma resposta correta.
Um segundo olhar sobre o próprio parser
Um parser pode concluir uma análise sem emitir erros e, ainda assim, deixar de reconhecer parte da estrutura de uma unit. Para evitar que o motor valide apenas a própria interpretação, o RadIA 2.14.0 introduz um oráculo lexical independente.
Esse mecanismo observa os tokens do código, identifica declarações estruturais e compara seus resultados com a árvore produzida pelo parser semântico. Classes, records e interfaces precisam aparecer de forma coerente nas duas leituras, incluindo sua posição no arquivo.
Na prática, o parser deixa de ser juiz do próprio trabalho. A verificação independente ajuda a encontrar situações em que uma construção válida poderia engolir a declaração seguinte, produzir um intervalo incorreto ou simplesmente desaparecer do índice sem gerar um diagnóstico evidente.
O resultado é uma base mais confiável para completion, navegação, geração de implementações e contexto do agente.
Validação em código real da RTL e da VCL
Testes pequenos e cuidadosamente preparados são importantes, mas não representam toda a diversidade de uma linguagem madura. Por isso, o motor foi confrontado com fontes reais instaladas com o Delphi 12 e o Delphi 13.
A validação percorreu 677 units no Delphi 12 e 689 units no Delphi 13, totalizando 1.366 arquivos da RTL e da VCL. Em todos os casos avaliados, a cobertura dos tokens foi exata e as declarações estruturais corresponderam ao oráculo independente.
Esse corpus contém construções que aparecem no desenvolvimento cotidiano, acumuladas ao longo de anos de evolução das bibliotecas do Delphi. Ele oferece uma prova muito mais representativa do que um conjunto formado apenas por exemplos artificiais criados para passar na suíte.
Completion medida em milhares de pontos reais
A completion também ganhou uma avaliação própria. O processo percorre as bibliotecas instaladas, encontra membros reais em tipos não ambíguos e cria pontos determinísticos de consulta.
Foram validados 2.000 pontos no Delphi 12 e outros 2.000 no Delphi 13. As 4.000 consultas retornaram estados e motivos explícitos, resolveram candidatos compatíveis com os prefixos informados e não produziram respostas silenciosamente vazias.
Mesmo com as novas informações de explicabilidade, o desempenho continuou adequado ao uso interativo. O percentil 95 da latência final ficou próximo de 0,23 milissegundo no Delphi 12 e 0,24 milissegundo no Delphi 13.
Isso permite que o RadIA consulte primeiro o conhecimento estrutural local e recorra ao provider de inteligência artificial apenas quando a tarefa realmente precisa de geração ou interpretação mais ampla. O usuário recebe uma resposta mais rápida, e o projeto compartilha menos contexto desnecessário com serviços externos.
O compilador como prova externa
Algumas regras de Object Pascal só podem ser tratadas com segurança quando o comportamento esperado é confirmado pelo próprio compilador. Sobrecargas, interfaces herdadas, implementações fornecidas por ancestrais e diretivas condicionais são exemplos em que uma leitura superficial pode levar a uma alteração redundante ou incorreta.
Na versão 2.14.0, os probes semânticos não terminam quando o motor produz uma edição. Cada cenário identifica os membros realmente ausentes, aplica a mudança, repete a análise para confirmar que não haverá duplicação e submete o resultado aos compiladores suportados.
Os executáveis gerados também instanciam as classes, convertem os objetos para os contratos de interface e executam chamadas em runtime. Assim, a validação confirma não apenas a sintaxe, mas também o funcionamento das tabelas de despacho e dos contratos implementados.
Esse cuidado reduz o risco de uma ferramenta declarar sucesso porque o código compila, mesmo que a alteração tenha modificado silenciosamente um comportamento que já era fornecido por herança ou por outra forma de resolução.
Formulários, DFM e arquivos ainda incompletos
O cotidiano de uma aplicação Delphi não está limitado às units Pascal. Formulários VCL mantêm uma relação direta entre a classe declarada no código, a estrutura armazenada no DFM, os componentes visuais e os eventos associados.
O corpus representativo da versão 2.14.0 inclui projetos completos com DPR, Pascal e DFM. A validação cruza a classe raiz do formulário com a declaração correspondente e confirma que eventos, como um OnClick, apontam para métodos realmente existentes.
Também foram incluídos buffers interrompidos antes da seção implementation. Isso reproduz um estado comum durante a digitação e garante que o motor preserve as declarações estáveis que já podem ser compreendidas, sem exigir que o arquivo esteja pronto para compilar.
Essa tolerância é fundamental para recursos integrados ao editor. A assistência precisa funcionar enquanto o código está sendo criado, e não apenas depois que todo o trabalho já terminou.
Da criação do projeto à aplicação em execução
O fortalecimento do motor semântico foi acompanhado por uma jornada completa dentro do RAD Studio. O RadIA criou uma calculadora VCL, abriu o projeto gerado, ativou o formulário no Designer, alternou entre a interface e o código, aplicou mudanças visuais com preview e consentimento e compilou o resultado.
A aplicação também passou por cinco testes funcionais. Depois disso, foi iniciada pelo depurador, teve sua sessão e pilha de chamadas inspecionadas e recebeu interações reais em seus controles. A automação acionou os botões 2, +, 3 e = e confirmou que o resultado exibido foi 5.
O mesmo fluxo foi comprovado no Delphi 12 Win32, no Delphi 13 Win32 e no Delphi 13 IDE64. Essa matriz conecta várias partes do produto em uma única prova: templates, consentimento, Open Tools API, Form Designer, compilador, DUnitX, depurador e automação da aplicação em execução.
Essa é uma diferença importante entre possuir recursos isolados e entregar uma experiência completa. Criar arquivos é apenas o começo. O resultado precisa abrir corretamente na IDE, compilar, funcionar e permanecer observável durante o diagnóstico.
Qualidade verificada nos três ambientes
A suíte principal executou 1.191 testes no Delphi 12 Win32, 1.191 no Delphi 13 Win32 e 1.191 no Delphi 13 IDE64. Todos foram aprovados, sem testes ignorados, falhas, erros ou vazamentos de memória detectados.
A execução em IDE64 também encontrou e corrigiu diferenças de tipo entre Integer e NativeInt em alguns asserts do DUnitX. O plugin já compilava, mas a suíte expôs uma incompatibilidade que uma validação restrita ao Win32 não encontraria. Esse caso reforça por que os três alvos precisam participar do gate da release.
O SonarQube aprovou o Quality Gate com 84,4% de cobertura global e nenhuma issue, bug, vulnerabilidade, hotspot de segurança ou code smell. A documentação, os links internos, as configurações, os comandos e as referências das ferramentas também passaram por nova verificação.
Instalação
O RadIA 2.14.0 mantém o modelo de distribuição simplificado do projeto. A release publica apenas o instalador visual, que contém os pacotes para Delphi 12 Win32, Delphi 13 Win32 e Delphi 13 IDE64.
Antes de instalar ou atualizar, todas as instâncias do RAD Studio devem estar fechadas. O instalador não possui assinatura Authenticode, conforme a decisão do projeto de código aberto, que também pode ser compilado diretamente pelo usuário.
O download está disponível na página oficial da release:
O SHA-256 do instalador publicado é:
2510D99A3897C5CE58101483CAC0AF8DCD0B6C9596FED553B0F05BB4B1DCF4BA
Uma base mais confiável para as próximas evoluções
O RadIA 2.14.0 não representa apenas um aumento na quantidade de funcionalidades. O principal ganho está na confiança depositada nas capacidades que já fazem parte da experiência.
O motor semântico agora explica melhor suas decisões, reconhece ambiguidades, preserva informações úteis em arquivos incompletos e pode ser confrontado com um oráculo independente. Completion, geração de implementações e contexto agentivo passam a depender de uma base mais verificável.
Ao mesmo tempo, os testes acompanham a jornada que realmente interessa ao usuário: pedir uma aplicação, vê-la surgir dentro do Delphi, trabalhar com o formulário, compilar, executar testes, iniciar o depurador e confirmar o comportamento da interface.
Esse é o caminho para transformar assistência de código em uma experiência de desenvolvimento completa. A inteligência artificial continua importante, mas passa a trabalhar apoiada por contexto local, regras da linguagem, evidências produzidas pela IDE e decisões que podem ser explicadas.
O código-fonte, a documentação e o instalador estão disponíveis no GitHub:
github.com/regyssilveira/RadIA-Plugin
Se você utiliza Delphi 12 ou Delphi 13, a versão 2.14.0 é uma oportunidade para experimentar não apenas novas sugestões, mas uma assistência mais consciente do projeto e mais transparente sobre aquilo que realmente compreende.
Descubra mais sobre Régys Borges da Silveira
Assine para receber nossas notícias mais recentes por e-mail.
Dê-nos sua opinião, seu comentário ajuda o site a crescer e melhorar a qualidade dos artigos.