Apresentação
Olá, leitores! Neste post, vamos demonstrar como utilizar o GitHub Copilot para nos auxiliar no desenvolvimento de aplicações Delphi. Esse recurso pode nos ajudar a aumentar significativamente nossa velocidade e produtividade no desenvolvimento. Vou mostrar como ele se saiu em um pequeno teste, no qual pedi sua ajuda para a emissão de uma NF-e.
Infelizmente, não é possível integrar o GitHub Copilot diretamente com o IDE do Delphi, pois ele não disponibiliza (pelo menos até a data da escrita deste artigo) nenhuma API para integrações. Portanto, para realizar nossos testes, teremos que usar a IDE do Delphi em conjunto com o VS Code (Visual Studio Code).
Plugin Code4D-Wizard
Utilizaremos o plugin Code4D-Wizard para integrar o Delphi com o VS Code. Este plugin nos permite abrir arquivos e units no VS Code diretamente a partir do IDE do Delphi. Para isso, vamos acessar o repositório: https://github.com/Code4Delphi/Code4D-Wizard
Devemos baixar o repositório, o que pode ser feito tanto clonando o repositório quanto baixando o arquivo ZIP. Em seguida, instalaremos o plugin na IDE do Delphi. Para isso, basta abrir o projeto e selecionar a opção “Install”:
Ativando o DelphiLSP (Delphi Alexandria ou superior) (opcional)
* Esse passo é opcional, pois não influencia no uso do GitHub Copilot.
DelphiLSP.exe é um servidor de linguagem Delphi que implementa o Language Server Protocol (LSP). Ele encapsula recursos de linguagem, como auto completar (code completion) e percepção de erros (error insight) . Ele é usado dentro do IDE, mas também pode ser usado com o Visual Studio Code ou outros editores que oferecem suporte ao protocolo LSP.
Ativar o DelphiLSP (documentação) para usar corretamente a extensão LSP no Visual Studio Code.
Instalando o Visual Studio Code
Caso ainda não possua, instale o VS Code a través do seguinte link: https://code.visualstudio.com/download
Extensões – instalação automática pelo Code4D-Wizard
A instalação das extensões DelphiLSP e GitHub Copilot no VS Code pode ser feita através da própria IDE do Delphi, utilizando as seguintes opções do menu:
Extensão DelphiLSP – instalação pelo VS Code
Inicie o VS Code e instale a extensão DelphiLSP a partir de seu maketplace:
Extensão GitHub Copilot – instalação pelo VS Code
Instale a extensão Github Copilot em seu VS Code
Se inscrevendo no GitHub Copilot
Inscreva-se para usar o GitHub Copilot. Para isso acesse o seu GitHub na opção “Your Copilot” no popup menu que se abre quando se clica em seu avatar no canto superior direito no. Os primeiros 30 dias são um teste gratuito, depois custa 10 dólares / mês, na minha opinião um valor super acessível.
Acessando o GitHub Copilot pelo seu VS Code
De volta ao Visual Studio Code, entre com o Copilot, a opção fica no canto inferior esquerdo:
Tudo pronto! Vamos testar?
Criei um projeto VCL vazio com o nome de “ACBrGithubCopilot”, e adicionei uma unit vazia com o nome “NFe.Emitir”:
Para que a unit selecionada no Delphi seja aberta no VS Code, existem duas opções: pelo botão adicionado à barra de ferramentas (toolbar) do Delphi:
Para habilitar ou desabilitar a toolbar, basta clicar com o botão direito do mouse na parte superior do IDE, e selecionar a opção da toolbar “C4D VS Code Integration”:
Também é possível acessar a opção pelo item de menu do Code4D-Wizard:
Com isso nossa unit será aberta no VS Code, e como é possível ver na imagem a seguir, a extensão GitHub Copilot adicionou uma aba Chat para que possamos interagir com a IA:
A partir daí, comecei a interagir com a IA através da IDE do VS Code. Primeiramente, perguntei se poderíamos conversar em português:
Então, perguntei a ele: “Qual o jeito mais fácil de emitir uma NF-e com o Delphi?” Ele indicou usar o ACBr para a emissão de NF-e e mostrou um exemplo de código:
Como é possível ver na ilustração a seguir, a utilização do código sugerido é bem simples. Basta posicionar o cursor no lugar desejado e selecionar a opção “Insert at Cursor” ou Ctrl+Enter. Porém, como é possível observar, ao voltar para o Delphi e tentar compilar, notamos que o código contém erros:
Voltei ao VS Code e pedi para que ele melhora-se o código. E ele realmente fez isso:
Estava dando erro ao compilar e informava que o Enum “ipVista” não estava sendo encontrado. Perguntei isso a ele, e ele conseguiu resolver adicionando “pcnConversao” ao bloco “uses” da unit.
Após eu perguntar novamente, ele também foi capaz de substituir “dhEmi” por “dEmi” e “DhSaiEnt” por “hSaiEnt” de maneira correta.
Utilizei o recurso do Copilot na própria linha do erro, neste caso, a falta de uso para o Date e o Time, porém ele não conseguiu resolver. Em vez disso, adicionou tags XML usadas para a criação de um Help Insight.
Curiosamente, ao digitar a mesma pergunta na aba do chat, ele conseguiu resolver e sugerir a adição da uses SysUtils à Unit.
Por último, informei que os enums “idNacional” e “TeNormal” não haviam sido encontrados. Dessa vez, ele não conseguiu resolver e insistiu que esses enums deveriam existir na unit “pcnConversao”. Porém, a solução correta seria adicionar “pcnConversaoNFe” à lista “uses” da unit.
Como podemos notar, o uso do GitHub Copilot pode nos auxiliar bastante no aumento da produtividade e velocidade, tanto para criar novos recursos quanto para resolver problemas. Pretendo trazer novamente esse tema ao nosso blog, explorando novas formas de utilizar a IA em conjunto com o Delphi. Por enquanto, é isso! Até a próxima!
[…] Delphi + GitHub Copilot […]
A instalação ocorreu sem erros, mas o VSCode não aparece na IDE do Delphi RIO
Olá, Gilson!
Acredito que o item da toolbar não esteja aparecendo, correto? Eu me esqueci de adicionar ao post que é necessário habilitar essa opção para que ela apareça. Já fiz a alteração no post, adicionando as instruções de como fazer isso: Click aqui para ver a instrução.
Basicamente, é só clicar com o botão direito do mouse na parte superior do IDE e habilitar a opção “C4D VS Code Integration”. Com isso, a toolbar será exibida.
Peço que verifique se era isso mesmo. Fico à disposição para eventuais dúvidas.
Agradeço pelo comentário.
Olá Cezar, boa tarde!
Não era isso não, continua não aparecendo a opção
Eu enviei um print no email.
Legal Gilson, mas não recebi o e-mail. Habilitei para que você consiga anexar imagens aqui nos comentários, anexe o print fazendo o favor. Se preferir envie um e-mail para contato@code4delphi.com.br.
Outra opção, ainda mais fácil é enviar pelo nosso grupo no Telegram, segue o link: https://t.me/Code4Delphi.
Você pode mandar em qualquer dessas 3 opções. Valeu.
Segue o print que eu tinha enviado por email
Gilson, acho que sei o que aconteceu, você instalou pelo GetIt né? Se foi é isso que esta acontecendo, a versão do GetIt esta desatualizada, vou enviar a nova versão para eles essa semana ainda.
Por hora peço que instale diretamente pelo repositório do GitHub, é super fácil e tem o passo a passo no repositório, segue o link: https://github.com/Code4Delphi/Code4D-Wizard
Peço que me confirme se deu certo! Fico a disposição.
Não, eu baixei pelo github mesmo, assim como está no tutorial acima, baixei o zip e instalei.
O meu amigo, me desculpe! Eu acabei esquecendo de criar a release no GitHub. Acabei de fazer isso, abaixa ele novamente do GitHub e faz a instalação fazendo o favor, acredito que agora vai dar certo.
O botão do VSCode apareceu na IDE do Delphi agora, mas ao clicar no botão não acontece nada. Mesmo abrindo o VSCode manualmente e depois clicando no botão o arquivo não é aberto no VSCode.
Vamos fazer alguns teste para ver o que pode ser:
1: Tenta executar o Delphi com permissões de Administrador para ver se funciona
2: Abra o um terminal/prompt do seu computador e tente executar o comando: code
3: Depois tente executar o comando: code -n<caminho-da-parta-do-projeto>
Peço que faça estes testes e me informe se deram certo. Obrigado
Olá Cesar, boa tarde!
Fiz os testes aqui:
Olá Gilson, peço desculpas pela demora a lhe responder. Vamos tentar achar a solução para esse erro, vou te pedir mais algumas informações.
1 – Você esta tentando usar o recurso em um projeto VCL ou FMX?
2 – Se você selecionar uma outra opção como por exemplo a de instalar uma extensão no VS Code (opção da imagem em anexo), da certo ou nada acontece também.
Fico no aguardo de suas respostas, e agradeço os feedbacks.
Olá César, boa tarde!
Peço desculpas pela demora, eu havia removido o componente do meu Delphi, mas instalei novamente para te responder.