📦 Component Library — Kit de Desenvolvimento Laravel para VS Code (v2.1.0)
📋 Índice
🎯 Visão GeralO que éA Component Library é uma extensão VS Code que acelera o desenvolvimento Laravel oferecendo:
Problemas que resolve
Proposta de valorTudo que você precisa para ir de 🚀 Instalação e SetupPré-requisitos
Passo 1: Empacotar a extensão
Passo 2: Instalar no VS CodeVia linha de comando:
Via interface:
Passo 3: Verificar instalação
Como usar snippets no VS Code
⚡ Comandos da Extensão
Detalhes do Scaffold (
|
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-blade-layout |
Layout base completo (app.blade.php) com <!DOCTYPE>, <head>, @yield, <nav>, <footer> |
Primeiro arquivo de qualquer projeto. Crie em resources/views/layouts/app.blade.php |
cl-blade-dashboard |
Dashboard completo com KPIs, gráfico e lista de atividades | Página inicial após login |
Páginas CRUD
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-blade-index |
Página de listagem completa com busca, tabela e paginação | View index.blade.php de qualquer recurso |
cl-blade-create |
Página de cadastro com formulário e validação | View create.blade.php |
cl-blade-edit |
Página de edição com formulário preenchido | View edit.blade.php |
cl-blade-show |
Página de visualização com detalhes e botão excluir | View show.blade.php |
Componentes de Tabela
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-blade-table-search |
Card com busca + tabela + paginação integrados | Quando precisa de tabela com filtro de busca |
cl-blade-table-forelse |
Tabela com @forelse, @empty e ações CRUD (editar/excluir) |
Quando quer só a tabela, sem card externo |
Formulários
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-blade-form |
Form com @csrf |
Formulário de criação simples |
cl-blade-form-put |
Form com @csrf + @method('PUT') |
Formulário de edição |
cl-blade-form-delete |
Form de exclusão com confirm() |
Botão de excluir na tabela |
cl-blade-form-create |
Formulário de criação completo com validação | Alternativa ao cl-blade-create quando só precisa do form |
cl-blade-form-edit |
Formulário de edição completo com validação | Alternativa ao cl-blade-edit quando só precisa do form |
cl-blade-input |
Input completo com old(), @error e classes de validação |
Cada campo de formulário |
cl-blade-error |
@error com mensagem de feedback |
Exibição de erro individual |
cl-blade-forelse |
@forelse com @empty fallback |
Qualquer loop com possibilidade de lista vazia |
Autenticação e Autorização
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-auth-admin |
@if(auth()->user()->is_admin) |
Conteúdo visível apenas para admins |
cl-auth-user |
@auth ... @endauth |
Conteúdo para usuários logados |
cl-auth-guest |
@guest ... @endguest |
Conteúdo para visitantes |
cl-auth-can |
@can('action', $model) |
Verificar permissão via Policy |
cl-php-can-edit |
@can('update') com botão/link de editar |
Botão editar protegido por autorização |
cl-php-can-delete |
@can('delete') com form de exclusão |
Botão excluir protegido por autorização |
Paginação e Relacionamentos
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-php-pagination-full |
Paginação com withQueryString() e info "Exibindo X a Y de Z registros" |
Qualquer listagem paginada |
cl-php-related-foreach |
@foreach para relacionamentos com contagem e fallback |
Exibir dados relacionados (ex: $post->comments) |
PHP (9 snippets)
Arquivo: snippets/php.code-snippets — Linguagem: php
Controllers
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-controller-index |
Controller index com search, filtros, ordenação e paginate() |
Método index com busca e paginação |
cl-controller-crud |
Controller CRUD completo (index, create, store, show, edit, update, destroy) | Controller resource completo |
cl-controller-filter |
Controller index com filtros múltiplos (busca, status, categoria), ordenação dinâmica e paginação |
Quando precisa de vários filtros na listagem |
Models
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-model |
Model com $fillable, $casts e scopeSearch |
Model básico |
cl-model-full |
Model completo com $fillable, $casts, relacionamentos (belongsTo, hasMany), SoftDeletes e scopes (scopeActive, scopeSearch) |
Model com relacionamentos e soft delete |
Outros
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-form-request |
FormRequest com rules() e messages() customizadas |
Validação de formulários |
cl-migration |
Migration completa com Schema::create e campos comuns |
Criar tabela no banco |
cl-api-resource |
API Resource para transformação de dados | APIs com Laravel |
cl-route-auth |
Route::resource com middleware auth/verified + grupo admin |
Definir rotas protegidas |
HTML (34 snippets)
Arquivo: snippets/html.code-snippets — Linguagem: html
Layout e Estrutura
| Prefixo | Descrição |
|---|---|
cl-navbar |
Navbar responsiva com logo, menu e área de ações |
cl-container |
Container responsivo centralizado |
cl-row |
Row do grid |
cl-col |
Coluna do grid |
cl-grid |
Layout completo container + row + colunas |
Cards
| Prefixo | Descrição |
|---|---|
cl-card |
Card com header, body e footer |
cl-card-simple |
Card simples com body |
Tabelas
| Prefixo | Descrição |
|---|---|
cl-table |
Tabela responsiva com striped, hover e ações |
cl-table-sortable |
Tabela com cabeçalhos clicáveis para ordenação |
Formulários
| Prefixo | Descrição |
|---|---|
cl-form-group |
Grupo com label, input e texto de ajuda |
cl-form-select |
Select dropdown com label |
cl-form-textarea |
Textarea com label |
Botões
| Prefixo | Descrição |
|---|---|
cl-btn-primary |
Botão primário (ação principal) |
cl-btn-secondary |
Botão secundário |
cl-btn-outline |
Botão com estilo contornado |
cl-btn-danger |
Botão de perigo/excluir com confirm() |
cl-btn-success |
Botão de sucesso |
cl-btn-icon |
Botão com ícone e texto |
cl-btn-group |
Grupo de botões |
Busca e Filtros
| Prefixo | Descrição |
|---|---|
cl-search |
Formulário de busca com input e botão |
cl-search-bar |
Barra de pesquisa básica |
cl-search-icon |
Barra de pesquisa com ícone integrado |
cl-search-filter |
Barra de pesquisa com filtros dropdown |
Selects
| Prefixo | Descrição |
|---|---|
cl-select-basic |
Select básico com label |
cl-select-group |
Select com optgroups |
cl-select-multiple |
Select com seleção múltipla |
cl-select-custom |
Select com estilo personalizado |
Componentes Interativos
| Prefixo | Descrição |
|---|---|
cl-modal |
Modal acessível com backdrop, header, body e footer |
cl-alert |
Alerta com ícone e botão fechar |
cl-badge |
Badge/tag colorido |
cl-spinner |
Spinner de carregamento |
cl-tabs |
Sistema de abas com navegação e painéis |
cl-pagination |
Componente de paginação |
cl-breadcrumb |
Navegação breadcrumb |
CSS (25 snippets)
Organizados em 8 arquivos — Linguagem: css
Design Tokens (css-variables.code-snippets)
| Prefixo | Descrição |
|---|---|
cl-css-root |
Variáveis :root completas — cores, tipografia, spacing, radius, shadows, transitions |
cl-css-colors-palette |
Paleta customizada com 10 tons (50-900) |
cl-css-sizes |
Variáveis de tamanhos, container widths e breakpoints |
Utilitários Gerais (css-utilities.code-snippets)
| Prefixo | Descrição |
|---|---|
cl-css-colors |
Classes bg-*, text-*, text-align, font-weight/size |
cl-css-display |
Classes d-none, d-flex, d-grid, visible/invisible, overflow, position, w-100/h-100 |
cl-css-borders |
Classes border-*, rounded-*, shadow-* |
Flexbox (css-flexbox.code-snippets)
| Prefixo | Descrição |
|---|---|
cl-css-flexbox |
Classes flex-direction, wrap, justify, align, gap |
cl-css-flex-container |
Container flexbox customizável |
cl-css-flex-center |
Centralização com flexbox |
Grid (css-grid.code-snippets)
| Prefixo | Descrição |
|---|---|
cl-css-grid |
Sistema de grid 12 colunas responsivo (col-, col-md-, col-lg-*) |
cl-css-grid-template |
CSS Grid com repeat, minmax, auto-fit |
cl-css-grid-areas |
Layout com grid areas nomeadas |
Spacing (css-spacing.code-snippets)
| Prefixo | Descrição |
|---|---|
cl-css-spacing |
Classes m-0 a m-8, p-0 a p-8, variantes mt-, mb-, mx-, py-, etc. |
Botões (css-buttons.code-snippets)
| Prefixo | Descrição |
|---|---|
cl-css-buttons |
Estilos .btn, variantes primary/secondary/success/danger/outline, tamanhos sm/lg |
cl-css-buttons-variants |
Warning, info, outline variants, btn-icon, btn-group |
Formulários (css-forms.code-snippets)
| Prefixo | Descrição |
|---|---|
cl-css-forms |
Estilos para form-group, form-label, form-control, validação (is-invalid/is-valid) |
cl-css-selects |
Estilos para select, custom arrow, multi-select |
cl-css-searchbar |
Estilos para search-bar, search-with-icon, search-with-filters |
cl-css-checkbox-radio |
Estilos para checkboxes e radios customizados |
CSS Consolidado (css.code-snippets)
| Prefixo | Descrição |
|---|---|
cl-css-root |
Variáveis :root (mesmo de css-variables) |
cl-css-spacing |
Spacing (mesmo de css-spacing) |
cl-css-flexbox |
Flexbox (mesmo de css-flexbox) |
cl-css-colors |
Cores (mesmo de css-utilities) |
cl-css-grid |
Grid (mesmo de css-grid) |
cl-css-buttons |
Botões (mesmo de css-buttons) |
Nota: O arquivo
css.code-snippetsé uma versão consolidada. Os arquivos separados (css-variables,css-flexbox, etc.) oferecem versões mais detalhadas.
JavaScript (12 snippets)
Organizados em 2 arquivos — Linguagem: javascript
Scripts de Componentes (javascript.code-snippets)
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-js-modal |
Sistema de modais com acessibilidade, focus trapping e Escape | Com o snippet cl-modal |
cl-js-tabs |
Navegação de abas com teclado (Arrow, Home/End) | Com o snippet cl-tabs |
cl-js-sortable-table |
Ordenação de tabela por clique no cabeçalho (string, number, date) | Com cl-table-sortable |
cl-js-alert |
Fechar alertas com animação fade-out + slide-up | Com cl-alert |
cl-js-form-validation |
Validação client-side (required, email, minlength) | Qualquer formulário |
cl-js-dropdown |
Menus dropdown com toggle e click-outside | Menus de ação |
Comportamentos (javascript-behaviors.code-snippets)
| Prefixo | Descrição | Quando usar |
|---|---|---|
cl-js-confirm-delete |
Confirmação estilo SweetAlert antes de excluir | Botões de delete na tabela |
cl-js-alert-close |
Auto-fechar alertas com timer e animação | Mensagens flash |
cl-js-toggle-password |
Mostrar/ocultar senha em inputs password | Formulários de login/registro |
cl-js-image-preview |
Preview de imagem antes do upload | Formulários com upload de foto |
cl-js-char-counter |
Contador de caracteres para textarea | Campos com limite de texto |
cl-js-toast |
Sistema de notificações toast flutuantes | Feedback de ações (salvar, excluir) |
🧩 Guia Mestre — Como Criar Qualquer Aplicação Laravel
Este guia mostra o fluxo universal para criar qualquer sistema usando os snippets e comandos da extensão.
Etapa 1: Setup do Projeto
laravel new meu-projeto
cd meu-projeto
Etapa 2: Instalar CSS Assets
Pressione Ctrl+Alt+C → Gera public/css/components.css e public/css/utilities.css
Etapa 3: Criar Layout Base
Arquivo: resources/views/layouts/app.blade.php
Snippet: cl-blade-layout
Gera o layout completo com <!DOCTYPE>, <head>, navbar, @yield('content') e footer. Adicione os links CSS no <head>:
<link rel="stylesheet" href="{{ asset('css/components.css') }}">
<link rel="stylesheet" href="{{ asset('css/utilities.css') }}">
Etapa 4: Gerar CRUD com Scaffold
Pressione Ctrl+Shift+G:
- Nome da classe:
Produto - Campos:
nome:string, preco:decimal, descricao:text, ativo:boolean - Admin? Não
→ 11 arquivos gerados automaticamente. Execute php artisan migrate.
Etapa 5: Configurar Autenticação (se necessário)
Pressione Ctrl+Shift+A → Gera migration, middleware, views de login/register e rotas.
Execute php artisan migrate.
Etapa 6: Personalizar Views
Use os snippets Blade para ajustar as views geradas:
- Adicionar campo ao formulário:
cl-blade-input - Proteger botões por permissão:
cl-php-can-edit,cl-php-can-delete - Paginação completa:
cl-php-pagination-full - Mostrar relacionamentos:
cl-php-related-foreach
Etapa 7: Adicionar Dashboard
Arquivo: resources/views/dashboard.blade.php
Snippet: cl-blade-dashboard
Gera dashboard com KPIs, gráficos e lista de atividades.
Etapa 8: Adicionar JavaScript
Use conforme necessidade:
cl-js-confirm-delete→ Confirmação antes de excluircl-js-toast→ Notificações flutuantescl-js-toggle-password→ Mostrar/ocultar senhacl-js-sortable-table→ Tabela ordenável
Resumo do Fluxo
1. laravel new projeto
2. Ctrl+Alt+C → CSS Assets
3. cl-blade-layout → Layout base
4. Ctrl+Shift+G → CRUD completo
5. Ctrl+Shift+A → Auth (opcional)
6. cl-blade-dashboard → Dashboard (opcional)
7. cl-js-* → JavaScript (conforme necessidade)
8. php artisan migrate → Rodar migrations
9. php artisan serve → Testar
🏗️ Blueprints de Aplicações Reais
Blueprint 1: Sistema de Estoque
Objetivo: CRUD de Produtos com dashboard e controle admin.
Sequência:
| Etapa | Ação | Snippet/Comando |
|---|---|---|
| 1 | Instalar CSS | Ctrl+Alt+C |
| 2 | Layout base | cl-blade-layout |
| 3 | Scaffold Produto | Ctrl+Shift+G → Produto, nome:string, preco:decimal, quantidade:integer, categoria:string, ativo:boolean |
| 4 | Auth + Admin | Ctrl+Shift+A |
| 5 | Dashboard | cl-blade-dashboard |
| 6 | Proteger ações | cl-php-can-edit + cl-php-can-delete nas views |
| 7 | Paginação | cl-php-pagination-full na index |
| 8 | JavaScript | cl-js-confirm-delete + cl-js-toast |
Estrutura de arquivos gerada:
resources/views/layouts/app.blade.php ← cl-blade-layout
resources/views/dashboard.blade.php ← cl-blade-dashboard
resources/views/produtos/index.blade.php ← Scaffold
resources/views/produtos/create.blade.php ← Scaffold
resources/views/produtos/edit.blade.php ← Scaffold
resources/views/produtos/show.blade.php ← Scaffold
app/Http/Controllers/ProdutoController.php
app/Models/Produto.php
app/Policies/ProdutoPolicy.php
Blueprint 2: Todo List com Prioridades
Objetivo: CRUD de Tarefas com filtros por status e prioridade.
Sequência:
| Etapa | Ação | Snippet/Comando |
|---|---|---|
| 1 | CSS + Layout | Ctrl+Alt+C + cl-blade-layout |
| 2 | Scaffold Tarefa | Ctrl+Shift+G → Tarefa, titulo:string, descricao:text, prioridade:string, status:string, data_limite:date |
| 3 | Auth | Ctrl+Shift+A |
| 4 | Filtros avançados | cl-controller-filter no TarefaController |
| 5 | Badges de status | cl-badge (HTML) nas views |
Snippets úteis para customização:
cl-blade-table-forelse→ Tabela com status como badgescl-blade-input→ Campos de formuláriocl-php-pagination-full→ Paginação mantendo filtros
Blueprint 3: Blog com Categorias
Objetivo: Posts e Categorias com relacionamentos.
Sequência:
| Etapa | Ação | Snippet/Comando |
|---|---|---|
| 1 | CSS + Layout | Ctrl+Alt+C + cl-blade-layout |
| 2 | Scaffold Categoria | Ctrl+Shift+G → Categoria, nome:string, descricao:text |
| 3 | Scaffold Post | Ctrl+Shift+G → Post, titulo:string, conteudo:text, publicado:boolean, data_publicacao:date |
| 4 | Relacionamentos | cl-model-full → Adicionar belongsTo(Categoria) no Post |
| 5 | Listar relacionados | cl-php-related-foreach → Comentários/posts por categoria |
Blueprint 4: Cadastro de Clientes
Objetivo: CRUD de clientes com busca e exportação.
| Etapa | Ação | Snippet/Comando |
|---|---|---|
| 1 | CSS + Layout | Ctrl+Alt+C + cl-blade-layout |
| 2 | Scaffold Cliente | Ctrl+Shift+G → Cliente, nome:string, email:email, telefone:string, cidade:string, ativo:boolean |
| 3 | Filtro avançado | cl-controller-filter |
| 4 | Paginação | cl-php-pagination-full |
| 5 | Proteção | cl-auth-can + cl-php-can-edit |
🔄 Fluxo Real de Trabalho (DX)
Dia a dia com a extensão
- Novo recurso? →
Ctrl+Shift+Ggera tudo. Customize depois. - Novo campo no form? →
cl-blade-inputdentro do formulário. - Precisa de permissão? →
cl-auth-canoucl-php-can-edit/cl-php-can-delete. - Tabela com busca? →
cl-blade-table-searchpronto. - Precisa de modal? →
cl-modal(HTML) +cl-js-modal(JS). - Estilizar CSS? → Use
cl-css-rootpara definir variáveis, depois os utilitários. - Documentação? →
Ctrl+Shift+Da qualquer momento.
Reduzindo repetição
| Tarefa repetitiva | Solução |
|---|---|
| Criar layout em cada projeto | cl-blade-layout + Ctrl+Alt+C |
| Montar CRUD manualmente | Ctrl+Shift+G |
| Copiar blocos de validação | cl-blade-input com @error integrado |
| Escrever @forelse do zero | cl-blade-forelse |
| Configurar auth toda vez | Ctrl+Shift+A |
| Criar CSS de componentes | Ctrl+Alt+C instala tudo |
Padronização
Todos os snippets seguem as mesmas convenções:
- Prefixo
cl-unificado - Classes CSS compatíveis entre HTML snippets e CSS Assets
- Placeholders com
Tabpara preenchimento rápido - Código Laravel seguindo PSR-12 e boas práticas oficiais
✅ Boas Práticas
Combinação de snippets
| Cenário | Snippets recomendados |
|---|---|
| Listagem CRUD completa | cl-blade-index ou cl-blade-table-search + cl-php-pagination-full |
| Formulário com validação | cl-blade-form + cl-blade-input (repetir por campo) + cl-blade-error |
| Formulário de edição | cl-blade-form-put + cl-blade-input |
| Exclusão segura | cl-blade-form-delete ou cl-php-can-delete |
| Controller filtrado | cl-controller-filter ou cl-controller-index |
| Model completo | cl-model-full (com relacionamentos) ou cl-model (básico) |
| Tabela ordenável | cl-table-sortable (HTML) + cl-js-sortable-table (JS) |
| Modal funcional | cl-modal (HTML) + cl-js-modal (JS) |
| Abas funcionais | cl-tabs (HTML) + cl-js-tabs (JS) |
Organização de código
- Um layout, muitas views: Crie o layout com
cl-blade-layout, estenda com@extends('layouts.app') - Snippets Blade em
.blade.php: Os snippetscl-blade-*ecl-php-*funcionam em arquivos Blade - Snippets PHP em
.php: Os snippetscl-controller-*,cl-model-*, etc. funcionam em arquivos PHP - CSS primeiro: Rode
Ctrl+Alt+Cantes de usar os snippets HTML para ter estilos prontos
Segurança Laravel
- Sempre use
@csrfem formulários (já incluído nos snippetscl-blade-form-*) - Use
@method('PUT'/'DELETE')para métodos HTTP corretos - Use FormRequests para validação server-side (
cl-form-requestou Scaffold) - Use Policies para autorização (
cl-auth-can,cl-php-can-edit) - Nunca confie em dados do usuário — valide tudo no backend
🛠️ Troubleshooting
Snippet não aparece
Causa: O arquivo não está na linguagem correta.
| Snippet | Linguagem necessária | Extensão do arquivo |
|---|---|---|
cl-blade-*, cl-auth-*, cl-php-* (Blade) |
Blade | .blade.php |
cl-controller-*, cl-model-*, cl-migration, etc. |
PHP | .php |
cl-navbar, cl-card, cl-table, etc. |
HTML | .html |
cl-css-* |
CSS | .css |
cl-js-* |
JavaScript | .js |
Solução:
- Verifique a extensão do arquivo
- Verifique a linguagem no canto inferior direito do VS Code
- Para Blade: certifique-se que o VS Code reconhece
.blade.phpcomo "Blade" (instale extensão de suporte Blade se necessário)
Snippets Blade não aparecem em .blade.php
- Instale uma extensão de suporte Blade (ex: "Laravel Blade Snippets" ou "Laravel Blade formatter")
- Verifique se a linguagem está como "Blade" e não "HTML" no status bar
- Se necessário, clique na linguagem no status bar e selecione "Blade"
Autocomplete não funciona
- Pressione
Ctrl+Spacepara forçar o IntelliSense - Verifique em Settings →
editor.quickSuggestions→ deve estar habilitado parastrings - Adicione no
settings.json:
{
"editor.quickSuggestions": {
"other": true,
"comments": false,
"strings": true
},
"editor.snippetSuggestions": "top"
}
Scaffold não detecta o projeto Laravel
- Certifique-se de abrir a pasta raiz do projeto Laravel (onde está o
artisan) - O arquivo
artisandeve estar na raiz do workspace
CSS Assets não funcionam visualmente
- Verifique se adicionou os
<link>no<head>do layout - Verifique se o servidor está rodando (
php artisan serve) - Limpe o cache do navegador (
Ctrl+Shift+R)
Conflito entre HTML e Blade
Se snippets HTML (cl-navbar, cl-card) não aparecem em .blade.php:
- Isso é esperado — snippets HTML são registrados para linguagem
html - Em Blade, use os snippets
cl-blade-*que já incluem os componentes HTML - Ou mude temporariamente a linguagem do arquivo para HTML
📁 Estrutura da Extensão
vscode_component_library_extension/
├── package.json # Manifesto (v2.1.0)
├── extension.js # Lógica dos 4 comandos
├── icon.png # Ícone da extensão
├── snippets/
│ ├── blade.code-snippets # 24 snippets Blade/Laravel
│ ├── php.code-snippets # 9 snippets PHP/Laravel
│ ├── html.code-snippets # 34 snippets HTML
│ ├── css.code-snippets # 6 snippets CSS (consolidado)
│ ├── css-variables.code-snippets # 3 snippets de design tokens
│ ├── css-utilities.code-snippets # 3 snippets utilitários
│ ├── css-flexbox.code-snippets # 3 snippets flexbox
│ ├── css-grid.code-snippets # 3 snippets grid
│ ├── css-spacing.code-snippets # 1 snippet spacing
│ ├── css-buttons.code-snippets # 2 snippets botões
│ ├── css-forms.code-snippets # 4 snippets formulários
│ ├── javascript.code-snippets # 6 scripts de componentes
│ └── javascript-behaviors.code-snippets # 6 scripts de comportamento
├── templates/
│ ├── scaffold/ # Templates do Scaffold CRUD
│ │ ├── controller.template.js
│ │ ├── model.template.js
│ │ ├── migration.template.js
│ │ ├── request.template.js # Store + Update FormRequests
│ │ ├── policy.template.js
│ │ ├── view-index.template.js
│ │ ├── view-create.template.js
│ │ ├── view-edit.template.js
│ │ └── view-show.template.js
│ ├── auth/ # Templates de Auth
│ │ ├── migration-add-admin.template.js
│ │ ├── middleware-admin.template.js
│ │ ├── view-login.template.js
│ │ └── view-register.template.js
│ └── assets/ # Templates de CSS Assets
│ ├── components.template.js
│ └── utilities.template.js
├── docs/
│ └── index.html # Documentação interativa (11 abas)
├── examples/
│ ├── listagem-crud.md # Blueprint de listagem
│ ├── cadastro-formulario.md # Blueprint de formulário
│ └── dashboard.md # Blueprint de dashboard
└── README.md # Este arquivo
🔧 Desenvolvimento
Modo de desenvolvimento
cd vscode_component_library_extension
code .
# Pressione F5 → Nova janela do VS Code com a extensão carregada
Adicionar novo snippet
Edite o arquivo .code-snippets correspondente:
{
"Nome do Snippet": {
"prefix": "cl-meu-snippet",
"body": [
"<div class=\"meu-componente\">",
"\t${1:conteúdo}",
"</div>"
],
"description": "Descrição do snippet"
}
}
Placeholders:
${1:texto}— Placeholder com valor padrão${1|op1,op2|}— Placeholder com dropdown de opções$0— Posição final do cursor\t— Tabulação
📄 Licença
MIT License
🙏 Créditos
Desenvolvido por fabianogdb. Inspirado nas melhores práticas de Laravel e princípios de produtividade (DX).
💡 Dica final: Use
Ctrl+Spaceem qualquer arquivo para ver todos os snippetscl-disponíveis. E useCtrl+Shift+Dpara acessar a documentação interativa completa a qualquer momento.