{"id":588,"date":"2024-05-11T00:46:05","date_gmt":"2024-05-11T03:46:05","guid":{"rendered":"https:\/\/code4delphi.com.br\/blog\/?p=588"},"modified":"2026-04-15T08:58:11","modified_gmt":"2026-04-15T11:58:11","slug":"delphi-github-copilot","status":"publish","type":"post","link":"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/","title":{"rendered":"Delphi + GitHub Copilot + DelphiLSP + VS Code"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title ez-toc-toggle\" style=\"cursor:pointer\">Sum\u00e1rio<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabela de conte\u00fado\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/#Apresentacao\" >Apresenta\u00e7\u00e3o<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/#Plugin_Code4D-Wizard\" >Plugin Code4D-Wizard<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/#Ativando_o_DelphiLSP_Delphi_Alexandria_ou_superior_opcional\" >Ativando o DelphiLSP (Delphi Alexandria ou superior) (opcional)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/#Instalando_o_Visual_Studio_Code\" >Instalando o Visual Studio Code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/#Extensoes_%E2%80%93_instalacao_automatica_pelo_Code4D-Wizard\" >Extens\u00f5es &#8211; instala\u00e7\u00e3o autom\u00e1tica pelo Code4D-Wizard<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/#Extensao_DelphiLSP_%E2%80%93_instalacao_pelo_VS_Code\" >Extens\u00e3o DelphiLSP &#8211; instala\u00e7\u00e3o pelo VS Code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/#Extensao_GitHub_Copilot_%E2%80%93_instalacao_pelo_VS_Code\" >Extens\u00e3o GitHub Copilot  &#8211; instala\u00e7\u00e3o pelo VS Code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/#Se_inscrevendo_no_GitHub_Copilot\" >Se inscrevendo no GitHub Copilot<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/#Acessando_o_GitHub_Copilot_pelo_seu_VS_Code\" >Acessando o GitHub Copilot pelo seu VS Code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/code4delphi.com.br\/blog\/delphi-github-copilot\/#Tudo_pronto_Vamos_testar\" >Tudo pronto! Vamos testar?<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Apresentacao\"><\/span>Apresenta\u00e7\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Ol\u00e1, leitores! Neste post, vamos demonstrar como utilizar o GitHub Copilot para nos auxiliar no desenvolvimento de aplica\u00e7\u00f5es 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\u00e3o de uma NF-e.<\/p>\n<p>Infelizmente, n\u00e3o \u00e9 poss\u00edvel integrar o GitHub Copilot diretamente com o IDE do Delphi, pois ele n\u00e3o disponibiliza (pelo menos at\u00e9 a data da escrita deste artigo) nenhuma API para integra\u00e7\u00f5es. Portanto, para realizar nossos testes, teremos que usar a IDE do Delphi em conjunto com o VS Code (Visual Studio Code).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Plugin_Code4D-Wizard\"><\/span>Plugin Code4D-Wizard<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>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\u00f3rio: <a href=\"https:\/\/github.com\/Code4Delphi\/Code4D-Wizard\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/Code4Delphi\/Code4D-Wizard<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"565\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-1024x565.png\" alt=\"\" class=\"wp-image-653\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-1024x565.png 1024w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-300x166.png 300w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-768x424.png 768w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-920x508.png 920w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image.png 1247w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Devemos baixar o reposit\u00f3rio, o que pode ser feito tanto clonando o reposit\u00f3rio quanto baixando o arquivo ZIP. Em seguida, instalaremos o plugin na IDE do Delphi. Para isso, basta abrir o projeto e selecionar a op\u00e7\u00e3o &#8220;Install&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"359\" height=\"308\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-1.png\" alt=\"\" class=\"wp-image-654\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-1.png 359w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-1-300x257.png 300w\" sizes=\"auto, (max-width: 359px) 100vw, 359px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ativando_o_DelphiLSP_Delphi_Alexandria_ou_superior_opcional\"><\/span>Ativando o DelphiLSP (Delphi Alexandria ou superior) (opcional)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">* <strong>Esse passo \u00e9 opcional, pois n\u00e3o influencia no uso do GitHub Copilot.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DelphiLSP.exe \u00e9 um servidor de linguagem Delphi que implementa o Language Server Protocol (LSP). Ele encapsula recursos de linguagem, como auto completar (code completion) e percep\u00e7\u00e3o de erros (error insight) . Ele \u00e9 usado dentro do IDE, mas tamb\u00e9m pode ser usado com o Visual Studio Code ou outros editores que oferecem suporte ao protocolo LSP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ativar o DelphiLSP (<a href=\"https:\/\/docwiki.embarcadero.com\/RADStudio\/Athens\/en\/Using_DelphiLSP_Code_Insight_with_Other_Editors\">documenta\u00e7\u00e3o<\/a>) para usar corretamente a extens\u00e3o LSP no Visual Studio Code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"798\" height=\"552\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-8.png\" alt=\"\" class=\"wp-image-672\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-8.png 798w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-8-300x208.png 300w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-8-768x531.png 768w\" sizes=\"auto, (max-width: 798px) 100vw, 798px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Instalando_o_Visual_Studio_Code\"><\/span><strong>Instalando o Visual Studio Code<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Caso ainda n\u00e3o possua, instale o VS Code a trav\u00e9s do seguinte link: <a href=\"https:\/\/code.visualstudio.com\/download\" target=\"_blank\" rel=\"noopener\">https:\/\/code.visualstudio.com\/download<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"546\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/004-1024x546.png\" alt=\"\" class=\"wp-image-594\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/004-1024x546.png 1024w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/004-300x160.png 300w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/004-768x409.png 768w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/004-920x490.png 920w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/004.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Extensoes_%E2%80%93_instalacao_automatica_pelo_Code4D-Wizard\"><\/span>Extens\u00f5es &#8211; instala\u00e7\u00e3o autom\u00e1tica pelo Code4D-Wizard  <span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A instala\u00e7\u00e3o das extens\u00f5es DelphiLSP e GitHub Copilot no VS Code pode ser feita atrav\u00e9s da pr\u00f3pria IDE do Delphi, utilizando as seguintes op\u00e7\u00f5es do menu:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"323\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-3.png\" alt=\"\" class=\"wp-image-658\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-3.png 602w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-3-300x161.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Extensao_DelphiLSP_%E2%80%93_instalacao_pelo_VS_Code\"><\/span>Extens\u00e3o DelphiLSP &#8211; instala\u00e7\u00e3o pelo VS Code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Inicie o VS Code e instale a extens\u00e3o DelphiLSP a partir de seu maketplace:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/005-1024x610.png\" alt=\"\" class=\"wp-image-596\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/005-1024x610.png 1024w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/005-300x179.png 300w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/005-768x458.png 768w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/005-920x548.png 920w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/005.png 1223w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Extensao_GitHub_Copilot_%E2%80%93_instalacao_pelo_VS_Code\"><\/span>Extens\u00e3o GitHub Copilot  &#8211; instala\u00e7\u00e3o pelo VS Code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Instale a extens\u00e3o Github Copilot em seu VS Code<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"593\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/006-1024x593.png\" alt=\"\" class=\"wp-image-598\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/006-1024x593.png 1024w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/006-300x174.png 300w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/006-768x445.png 768w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/006-920x533.png 920w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/006.png 1258w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Se_inscrevendo_no_GitHub_Copilot\"><\/span>Se inscrevendo no GitHub Copilot<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Inscreva-se para usar o GitHub Copilot. Para isso acesse o seu GitHub na op\u00e7\u00e3o &#8220;Your Copilot&#8221; no popup menu que se abre quando se clica em seu avatar no canto superior direito no. Os primeiros 30 dias s\u00e3o um teste gratuito, depois custa 10 d\u00f3lares \/ m\u00eas, na minha opini\u00e3o um valor super acess\u00edvel.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"308\" height=\"471\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/007.png\" alt=\"\" class=\"wp-image-601\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/007.png 308w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/007-196x300.png 196w\" sizes=\"auto, (max-width: 308px) 100vw, 308px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Acessando_o_GitHub_Copilot_pelo_seu_VS_Code\"><\/span>Acessando o GitHub Copilot pelo seu VS Code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>De volta ao Visual Studio Code, entre com o Copilot, a op\u00e7\u00e3o fica no canto inferior esquerdo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"421\" height=\"269\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/008.png\" alt=\"\" class=\"wp-image-603\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/008.png 421w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/008-300x192.png 300w\" sizes=\"auto, (max-width: 421px) 100vw, 421px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tudo_pronto_Vamos_testar\"><\/span>Tudo pronto! Vamos testar?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Criei um projeto VCL vazio com o nome de &#8220;ACBrGithubCopilot&#8221;, e adicionei uma unit vazia com o nome &#8220;NFe.Emitir&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"598\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/020-1024x598.png\" alt=\"\" class=\"wp-image-606\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/020-1024x598.png 1024w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/020-300x175.png 300w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/020-768x449.png 768w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/020-920x538.png 920w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/020.png 1516w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Para que a unit selecionada no Delphi seja aberta no VS Code, existem duas op\u00e7\u00f5es: pelo bot\u00e3o adicionado \u00e0 barra de ferramentas (toolbar) do Delphi:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"542\" height=\"159\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-4.png\" alt=\"\" class=\"wp-image-661\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-4.png 542w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-4-300x88.png 300w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"habilitar-toolbar-VSCodeIntegration\">Para habilitar ou desabilitar a toolbar, basta clicar com o bot\u00e3o direito do mouse na parte superior do IDE, e selecionar a op\u00e7\u00e3o da toolbar &#8220;C4D VS Code Integration&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"562\" height=\"527\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/image.png\" alt=\"\" class=\"wp-image-681\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/image.png 562w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/image-300x281.png 300w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9m \u00e9 poss\u00edvel acessar a op\u00e7\u00e3o pelo item de menu do Code4D-Wizard:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"589\" height=\"334\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-6.png\" alt=\"\" class=\"wp-image-665\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-6.png 589w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/06\/image-6-300x170.png 300w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/figure>\n\n\n\n<p>Com isso nossa unit ser\u00e1 aberta no VS Code, e como \u00e9 poss\u00edvel ver na imagem a seguir, a extens\u00e3o GitHub Copilot adicionou uma aba Chat para que possamos interagir com a IA:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"708\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/022-1024x708.png\" alt=\"\" class=\"wp-image-609\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/022-1024x708.png 1024w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/022-300x207.png 300w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/022-768x531.png 768w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/022-920x636.png 920w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/022.png 1279w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>A partir da\u00ed, comecei a interagir com a IA atrav\u00e9s da IDE do VS Code. Primeiramente, perguntei se poder\u00edamos conversar em portugu\u00eas:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"449\" height=\"457\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/023.png\" alt=\"\" class=\"wp-image-611\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/023.png 449w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/023-295x300.png 295w\" sizes=\"auto, (max-width: 449px) 100vw, 449px\" \/><\/figure>\n\n\n\n<p>Ent\u00e3o, perguntei a ele: &#8220;Qual o jeito mais f\u00e1cil de emitir uma NF-e com o Delphi?&#8221; Ele indicou usar o ACBr para a emiss\u00e3o de NF-e e mostrou um exemplo de c\u00f3digo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"931\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/024-1-1024x931.png\" alt=\"\" class=\"wp-image-615\" srcset=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/024-1-1024x931.png 1024w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/024-1-300x273.png 300w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/024-1-768x699.png 768w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/024-1-920x837.png 920w, https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/024-1.png 1140w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Como \u00e9 poss\u00edvel ver na ilustra\u00e7\u00e3o a seguir, a utiliza\u00e7\u00e3o do c\u00f3digo sugerido \u00e9 bem simples. Basta posicionar o cursor no lugar desejado e selecionar a op\u00e7\u00e3o &#8220;Insert at Cursor&#8221; ou Ctrl+Enter. Por\u00e9m, como \u00e9 poss\u00edvel observar, ao voltar para o Delphi e tentar compilar, notamos que o c\u00f3digo cont\u00e9m erros:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1691\" height=\"1003\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/025-2.gif\" alt=\"\" class=\"wp-image-623\"\/><\/figure>\n\n\n\n<p>Voltei ao VS Code e pedi para que ele melhora-se o c\u00f3digo. E ele realmente fez isso:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1691\" height=\"1003\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/026-1.gif\" alt=\"\" class=\"wp-image-626\"\/><\/figure>\n\n\n\n<p>Estava dando erro ao compilar e informava que o Enum &#8220;ipVista&#8221; n\u00e3o estava sendo encontrado. Perguntei isso a ele, e ele conseguiu resolver adicionando &#8220;pcnConversao&#8221; ao bloco &#8220;uses&#8221; da unit.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1691\" height=\"1003\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/027.gif\" alt=\"\" class=\"wp-image-629\"\/><\/figure>\n\n\n\n<p>Ap\u00f3s eu perguntar novamente, ele tamb\u00e9m foi capaz de substituir &#8220;dhEmi&#8221; por &#8220;dEmi&#8221; e &#8220;DhSaiEnt&#8221; por &#8220;hSaiEnt&#8221; de maneira correta.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1691\" height=\"1003\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/028.gif\" alt=\"\" class=\"wp-image-630\"\/><\/figure>\n\n\n\n<p>Utilizei o recurso do Copilot na pr\u00f3pria linha do erro, neste caso, a falta de uso para o Date e o Time, por\u00e9m ele n\u00e3o conseguiu resolver. Em vez disso, adicionou tags XML usadas para a cria\u00e7\u00e3o de um Help Insight.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1691\" height=\"1003\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/029.gif\" alt=\"\" class=\"wp-image-631\"\/><\/figure>\n\n\n\n<p>Curiosamente, ao digitar a mesma pergunta na aba do chat, ele conseguiu resolver e sugerir a adi\u00e7\u00e3o da uses SysUtils \u00e0 Unit.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1691\" height=\"1003\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/030.gif\" alt=\"\" class=\"wp-image-632\"\/><\/figure>\n\n\n\n<p>Por \u00faltimo, informei que os enums &#8220;idNacional&#8221; e &#8220;TeNormal&#8221; n\u00e3o haviam sido encontrados. Dessa vez, ele n\u00e3o conseguiu resolver e insistiu que esses enums deveriam existir na unit &#8220;pcnConversao&#8221;. Por\u00e9m, a solu\u00e7\u00e3o correta seria adicionar &#8220;pcnConversaoNFe&#8221; \u00e0 lista &#8220;uses&#8221; da unit.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1691\" height=\"1003\" src=\"https:\/\/code4delphi.com.br\/blog\/wp-content\/uploads\/2024\/05\/031.gif\" alt=\"\" class=\"wp-image-634\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">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, \u00e9 isso! At\u00e9 a pr\u00f3xima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apresenta\u00e7\u00e3o Ol\u00e1, leitores! Neste post, vamos demonstrar como utilizar o GitHub Copilot para nos auxiliar no&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[52],"tags":[],"class_list":["post-588","post","type-post","status-publish","format-standard","hentry","category-inteligencia-artificial"],"_links":{"self":[{"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/posts\/588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/comments?post=588"}],"version-history":[{"count":34,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/posts\/588\/revisions"}],"predecessor-version":[{"id":1510,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/posts\/588\/revisions\/1510"}],"wp:attachment":[{"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/media?parent=588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code4delphi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}