O Rad IA, assistente de inteligência artificial integrado diretamente à IDE do Delphi, passou por uma série de atualizações profundas desde a versão v0.0.21. O foco do desenvolvimento nesse período foi elevar a robustez da integração com o ecossistema Embarcadero, introduzir ferramentas inteligentes de auditoria e melhorar significativamente a experiência visual e a confiabilidade das refatorações direto no editor de código.
Abaixo, detalhamos as principais novidades, recursos e correções implementadas nas últimas versões do plugin.
Versão 0.0.22: Economia de Tokens e Fidelidade na Formatação
Nesta versão, a prioridade foi dar controle ao desenvolvedor sobre a verbosidade das respostas da inteligência artificial e garantir a integridade do código enviado ao chat.
Respostas Concisas Configuráveis
Foi adicionada a configuração “Prefer concise AI responses” (Preferir respostas concisas da IA) nas opções gerais do plugin. Com ela ativada, o sistema de prompts injeta uma diretriz global na IA para que ela retorne explicações curtas e focadas no código, reduzindo o desperdício de tokens sem impedir respostas mais detalhadas quando requisitadas explicitamente pelo usuário.
Preservação da Formatação no Envio de Contexto
Ao disparar ações a partir do menu contextual do editor do Delphi (como explicar código ou analisar bugs), as quebras de linha e a indentação do código Pascal original agora são 100% preservadas. O assistente orquestra o empacotamento do trecho de código em blocos Markdown adequados, o que evita que o código seja compactado em uma única linha contínua pela IA.
Versão 0.0.23: Otimização Contextual de Consultas SQL
A produtividade em bancos de dados recebeu uma grande melhoria com o lançamento do analisador de consultas SQL embutido.
Otimizador de SQL no Editor
O comando de barra /sqloptimize e a respectiva opção no menu do editor realizam a varredura e a otimização de strings de consultas SQL diretamente no editor Delphi. A IA analisa a estrutura da consulta, aponta a falta de índices adequados, simplifica JOINs ineficientes e valida a sintaxe. Internamente, o motor utiliza uma temperatura baixa (0.1) para garantir precisão técnica.
Considere o seguinte exemplo de string SQL ineficiente no código Delphi:
var
LQuery: string;
begin
LQuery := 'SELECT c.nome, p.data, p.valor ' +
'FROM clientes c, pedidos p ' +
'WHERE c.id = p.cliente_id AND c.status = ''Ativo'' ' +
'ORDER BY p.data DESC';
end;
Após rodar o otimizador, a IA sugere a reescrita estrutural moderna e recomenda a criação de índices no banco de dados para melhorar a performance:
-- Query recomendada com INNER JOIN explícito
SELECT c.nome, p.data, p.valor
FROM clientes c
INNER JOIN pedidos p ON c.id = p.cliente_id
WHERE c.status = 'Ativo'
ORDER BY p.data DESC;
-- Sugestão de índices para o banco de dados:
-- CREATE INDEX idx_clientes_status ON clientes(status);
-- CREATE INDEX idx_pedidos_cliente_data ON pedidos(cliente_id, data DESC);
Versão 0.0.24: Scanner de Alertas de Compilação, SO e Estabilidade da IDE
Esta versão focou em auditoria estática preventiva, ajudando a identificar problemas de concorrência e vazamentos de recursos que o compilador do Delphi por si só não bloqueia.
Scanner de Avisos do Compilador e Sistema Operacional
Através do comando de barra /scanwarnings, o plugin analisa o bloco de código ativo em busca de variáveis locais não inicializadas, possíveis exceções silenciosas, violações de segurança em threads (como acessar a UI da IDE de dentro de uma thread secundária) e vazamento de handles do Windows, como recursos de GDI.
Considere este exemplo de erro clássico de Thread-Safety no Delphi:
procedure TMinhaThread.Execute;
begin
// Incorreto: modificando componentes de tela diretamente de uma Thread secundária
FormPrincipal.ProgressBar.Position := 100;
end;O analisador de alertas do Rad IA detecta essa falha crítica e sugere a correção encapsulando a chamada no método de sincronização correto:
procedure TMinhaThread.Execute;
begin
TThread.Queue(nil,
procedure
begin
FormPrincipal.ProgressBar.Position := 100;
end);
end;
Correção de Falhas de Elisão no Editor
O motor de hooking do menu de contexto foi totalmente reestruturado. Nas versões anteriores, a tentativa de interceptar recursivamente menus de componentes internos provocava Access Violations e travamentos indesejados quando se utilizava recursos como elisão de código (code folding) no editor do Delphi. A interceptação agora atua de forma direta e limpa apenas no menu do editor principal.
Versão 0.0.25: Interface Premium, Suporte ao Delphi 11 e Aplicação Cirúrgica de Alterações
A versão mais recente trouxe uma grande remodelação visual, simplificação da arquitetura de suporte às versões do Delphi e maior segurança no fluxo de aplicação das refatorações sugeridas.
Interface de Chat com Bolhas Premium e Destaque Inteligente
A interface baseada em WebView2 foi redesenhada para utilizar balões/bolhas de mensagens modernas e assimétricas, com sombras sutis e cores adaptadas que seguem a paleta da IDE (tanto no tema escuro quanto no tema claro da IDE, incluindo suporte ao clássico Mountain Mist).
Além disso, foi criada uma heurística de detecção automática para realce de sintaxe Pascal. Se a IA responder com um bloco de código genérico ou com marcações incorretas (como delphi ou objectpascal sem o motor de markdown entender), o plugin inspeciona o código em busca de palavras-chave Delphi (como procedure, := e begin) e força o realce adequado usando Prism.js, além de habilitar o botão de aplicação automática.
Suporte Unificado ao Delphi 11
A partir desta versão, o Delphi 11 Alexandria passou a ser o requisito mínimo recomendado. Isso permitiu simplificar as units do plugin, unificando a assinatura de eventos do WebView2 (OnWebMessageReceived usando TWebMessageReceivedEventArgs) sem depender de diretivas condicionais legadas complexas. Na parte de escrita, a inserção de código no Delphi 11 foi corrigida para usar ponteiros PAnsiChar(LUtf8Text), solucionando problemas de encoding ao injetar trechos gerados.
Fechamento Automático de Sessões no Web Login
Ao utilizar conexões híbridas que abrem a tela do navegador interno para acessar contas do ChatGPT Plus ou Gemini Advanced, o assistente agora consegue identificar automaticamente se o usuário já se encontra autenticado. Nesses casos, a tela de login exibe a mensagem “You are already signed in. Returning to Rad IA…” e se fecha sozinha após 900ms, poupando cliques do desenvolvedor.
Redesenho do Editor e Aplicação de Diff Seguro
Um dos pontos mais críticos corrigidos foi a aplicação automática de código sugerido pela IA. No fluxo anterior, caso o usuário recebesse um código de substituição (Smart Diff) e movesse o cursor para outra parte do arquivo antes de clicar no botão “Aplicar Alteração”, o código poderia ser colado na posição errada.
Agora, o Rad IA envia o bloco de código original como parâmetro. Se não houver seleção ativa, o plugin busca o código original exato em todo o buffer de texto do editor. Se encontrar, faz a substituição cirúrgica naquele ponto, independentemente de onde o cursor esteja. Se o código original não for encontrado (por exemplo, se o usuário já realizou modificações manuais no trecho), o plugin exibe um aviso claro e impede a substituição indevida.
Ao aplicar com sucesso, o editor de código agora é forçado a redesenhar a tela (Paint) e a reposicionar o cursor de forma imediata através da thread principal de UI do Delphi, eliminando a sensação de travamento visual temporário que ocorria no buffer do editor.
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.