{"id":206,"date":"2026-09-17T12:23:13","date_gmt":"2026-09-17T15:23:13","guid":{"rendered":"https:\/\/rdconsolo.com.br\/?p=206"},"modified":"2026-09-17T15:49:15","modified_gmt":"2026-09-17T18:49:15","slug":"zed-para-uso-com-codeigniter4","status":"publish","type":"post","link":"https:\/\/rdconsolo.com.br\/?p=206","title":{"rendered":"ZED para uso com CodeIgniter4 no macOS"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Recentemente resolvi migrar do VSCode para o ZED editor e aqui vai o setup para uso e formata\u00e7\u00e3o com projetos em CodeIgniter4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Extens\u00f5es:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HTML<\/li>\n\n\n\n<li>Dockerfile<\/li>\n\n\n\n<li>Docker Compose<\/li>\n\n\n\n<li>SQL<\/li>\n\n\n\n<li>PHP<\/li>\n\n\n\n<li>XML<\/li>\n\n\n\n<li>LOG<\/li>\n\n\n\n<li>CSV<\/li>\n\n\n\n<li>HTML Snippets<\/li>\n\n\n\n<li>PHP Snippets<\/li>\n\n\n\n<li>Git Firefly<\/li>\n\n\n\n<li>Catppuccin<\/li>\n\n\n\n<li>Catppuccin Icons<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Na raiz do projeto, dentro da pasta .zed, modifico as seguinte diretivas para n\u00e3o conflitar o LSP (Language Server Protocol):<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-json\" data-lang=\"JSON\"><code>{\n  &quot;languages&quot;: {\n    &quot;CSS&quot;: {\n      &quot;language_servers&quot;: [&quot;!tailwindcss-language-server&quot;, &quot;...&quot;],\n    },\n    &quot;HTML&quot;: {\n      &quot;language_servers&quot;: [&quot;!tailwindcss-language-server&quot;, &quot;...&quot;],\n    },\n    &quot;PHP&quot;: {\n      &quot;language_servers&quot;: [\n        &quot;intelephense&quot;,\n        &quot;custom-code-folding&quot;,\n        &quot;!phpactor&quot;,\n        &quot;!phptools&quot;,\n        &quot;!phpantom&quot;,\n        &quot;!tailwindcss-language-server&quot;,\n        &quot;...&quot;,\n      ],\n    },\n  },\n}\n<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Nas views, anotar as vari\u00e1veis no topo:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-php\" data-lang=\"PHP\"><code>&lt;?php\n\/**\n * @var string $titulo\n * @var App\\Entities\\Chamado[] $chamados\n * @var int $totalPendentes\n *\/\n?&gt;\n&lt;h1&gt;&lt;?= $titulo ?&gt;&lt;\/h1&gt;<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Prefiro padronizar o code formatter com o php-cs-fixer. Ent\u00e3o vamos declarar o pacote no projeto:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>composer require --dev friendsofphp\/php-cs-fixer<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Instalar o bin\u00e1rio do php-cs-fixer globalmente:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>curl -L https:\/\/cs.symfony.com\/download\/php-cs-fixer-v3.phar -o php-cs-fixer\nchmod +x php-cs-fixer\nsudo mv php-cs-fixer \/usr\/local\/bin\/php-cs-fixer<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Para o ZED usar o php-cs-fixer, ele tem que usar um wrapper que aplica o fix no arquivo e depois manda o conte\u00fado j\u00e1 corrigido:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>#!\/usr\/bin\/env bash\nset -e\nFILE=&quot;$1&quot;\nphp-cs-fixer fix --quiet &quot;$FILE&quot; &gt;\/dev\/null 2&gt;&1\ncat &quot;$FILE&quot;<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Salve esse script como php-cs-fixer-format, execut\u00e1vel (chmod +x), em uma pasta no seu perfil, .zed, por exemplo e chame ele no settings.json do ZED:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-json\" data-lang=\"JSON\"><code>&quot;formatter&quot;: {\n  &quot;external&quot;: {\n    &quot;command&quot;: &quot;\/Users\/SEU_USUARIO\/.zed\/php-cs-fixer-format&quot;,\n    &quot;arguments&quot;: [&quot;{buffer_path}&quot;]\n  }\n}<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Recentemente resolvi migrar do VSCode para o ZED editor e aqui vai o setup para uso e formata\u00e7\u00e3o com projetos em CodeIgniter4. Extens\u00f5es: Na raiz do projeto, dentro da pasta .zed, modifico as seguinte diretivas para n\u00e3o conflitar o LSP (Language Server Protocol): Nas views, anotar as vari\u00e1veis no topo: Prefiro padronizar o code formatter &hellip; <a href=\"https:\/\/rdconsolo.com.br\/?p=206\" class=\"more-link\">Continue lendo<span class=\"screen-reader-text\"> &#8220;ZED para uso com CodeIgniter4 no macOS&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-206","post","type-post","status-publish","format-standard","hentry","category-sem-categoria"],"_links":{"self":[{"href":"https:\/\/rdconsolo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rdconsolo.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rdconsolo.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rdconsolo.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rdconsolo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=206"}],"version-history":[{"count":11,"href":"https:\/\/rdconsolo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/206\/revisions"}],"predecessor-version":[{"id":217,"href":"https:\/\/rdconsolo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/206\/revisions\/217"}],"wp:attachment":[{"href":"https:\/\/rdconsolo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rdconsolo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rdconsolo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}