Laravel Controller Finder
Extensão para VS Code focada no dia a dia de projetos Laravel: encontra onde uma
view é chamada nos Controllers/rotas, localiza a rota de um link e ainda oferece
atalhos para tarefas comuns (cache, Pint, Cypress, migrations) direto do editor.
Instalação
Via arquivo .vsix (recomendado para usar)
Baixe o .vsix mais recente na página de
Releases.
No VS Code: Ctrl+Shift+P → Extensions: Install from VSIX... → selecione
o arquivo. Ou pelo terminal:
code --install-extension laravel-controller-finder-0.0.15.vsix
A extensão funciona em qualquer janela do VS Code — em cada projeto as buscas e
comandos rodam no projeto daquela janela.
Depois de instalada, use Laravel Controller Finder: Atualizar plugin (via menu ou
paleta) para baixar e instalar a versão mais recente automaticamente.
Onde acessar os comandos
- Menu de buscas: ícone na barra de título do editor, item Laravel na
barra de status (canto inferior direito, sempre visível) ou clique direito
no editor. Todos abrem o mesmo menu.
- Paleta de comandos:
Ctrl+Shift+P e digite o nome do comando.
- CodeLens: atalhos de 1 clique que aparecem no topo de certos arquivos (veja
abaixo).
Funcionalidades
Buscar Controller da View
- Abra um arquivo de view (
.blade.php) ou qualquer .php dentro de
resources/views.
- Acione Buscar Controller da View pelo menu, pela paleta ou pelo CodeLens
"↑ Abrir Controller da View" exibido no topo do arquivo.
- A extensão deriva o nome da view a partir do caminho e procura por referências
entre aspas nos Controllers e arquivos de rotas do workspace.
- Uma referência encontrada: abre o arquivo e posiciona o cursor na linha.
- Várias referências: exibe uma lista (QuickPick) com o trecho da linha,
arquivo e caminho relativo para você escolher.
O CodeLens no topo da view só aparece quando existe ao menos um Controller/rota
que renderiza aquela view.
Buscar Rota do Link
- Acione Laravel: Buscar Rota do Link pelo menu ou pela paleta.
- Cole o link ou o caminho da URL (ex.:
/people-management/contracts/123/edit).
Se o clipboard já tiver uma URL, o campo vem pré-preenchido.
- A extensão consulta as rotas do projeto (
php artisan route:list) e casa o
link contra os padrões — segmentos numéricos ou variáveis casam com os
parâmetros da rota ({contract}).
- Abre a definição da rota (localizada pelo nome,
->name('...')).
- Se a rota não tiver nome, navega até a action do Controller.
- Havendo mais de uma rota (ex.: mesmo caminho em GET e POST), exibe uma lista
para você escolher.
Requer PHP acessível no PATH e um projeto Laravel no workspace.
Rodar spec no Cypress
- Abra um spec do Cypress (
*.cy.js, .cy.ts, .cy.jsx ou .cy.tsx).
- Use o CodeLens "🧪 Rodar spec no Cypress" no topo do arquivo, ou o item do
menu, para executar o spec atual no Chrome com janela visível
(
cypress run --spec ... --browser chrome --headed --no-exit).
- Sem um spec aberto, o item do menu vira Abrir Cypress, que abre a GUI
interativa (
cypress open --e2e --browser chrome).
Comandos de terminal
Rodam no terminal integrado do VS Code (a saída fica visível), a partir do menu
ou da paleta:
- Limpar cache —
php artisan optimize:clear
- Pint (arquivos alterados) —
./vendor/bin/pint --dirty
- Rodar migrations —
php artisan migrate
- Reverter migrations —
php artisan migrate:rollback
Atualizar plugin
Laravel Controller Finder: Atualizar plugin baixa o .vsix mais recente da release
do GitHub e o reinstala automaticamente. Ao final, recarregue a janela para
aplicar a nova versão.
Habilitar/desabilitar funcionalidades
Todas as funcionalidades vêm habilitadas por padrão. Cada uma pode ser ligada
ou desligada individualmente nas configurações do VS Code (procure por
Laravel Controller Finder em Settings, ou edite o settings.json):
| Configuração |
Funcionalidade |
laravel-controller-finder.features.viewControllerCodeLens |
CodeLens "Abrir Controller da View" no topo das views |
laravel-controller-finder.features.jsDefinition |
"Ir para definição" de funções JS em Blade |
laravel-controller-finder.features.cypressCodeLens |
CodeLens "Rodar spec no Cypress" nos *.cy.* |
laravel-controller-finder.features.statusBar |
Item "Laravel" na barra de status |
laravel-controller-finder.features.findController |
Comando Buscar Controller da View |
laravel-controller-finder.features.findRoute |
Comando Buscar Rota do Link |
laravel-controller-finder.features.clearCache |
Comando Limpar cache |
laravel-controller-finder.features.runPint |
Comando Pint |
laravel-controller-finder.features.cypress |
Comando Abrir/Rodar Cypress |
laravel-controller-finder.features.migrate |
Comando Rodar migrations |
laravel-controller-finder.features.migrateRollback |
Comando Reverter migrations |
laravel-controller-finder.features.updatePlugin |
Comando Atualizar plugin |
Os itens desabilitados somem do menu; CodeLens e barra de status refletem a
mudança na hora, sem reabrir o arquivo.
Como funciona a busca da view
O caminho da view é convertido para a notação de pontos do Laravel. Exemplo:
resources/views/project/management/detail/index.blade.php
-> project.management.detail.index
A busca cobre chamadas comuns: view('...'), View::make('...'),
->view('...'), @include('...'), etc. Pastas como vendor, node_modules,
storage e bootstrap/cache são ignoradas.
Escopo
A busca varre todas as pastas do workspace atual. Para usar em vários projetos
(ex.: igov e sgi), basta instalar a extensão globalmente — em cada janela
ela busca no projeto correspondente.
Desenvolvimento
git clone https://github.com/nelsoncosta/laravel-controller-finder.git
cd laravel-controller-finder
npm install
npm run compile # ou: npm run watch
Pressione F5 para abrir uma janela de desenvolvimento com a extensão carregada.
Para gerar um novo .vsix:
npx @vscode/vsce package --allow-missing-repository --skip-license