Laravel Maestro
Enterprise-grade Laravel intelligence for VS Code — zero helper files, instantaneous completions, and full PhpStorm-class IDE support for Laravel applications.
✨ Features
🛣 Routing Intelligence
route()/to_route() completion — autocomplete all named routes with method badges, URI previews, and parameter info.
- Hover documentation — hover over any route string to see methods, action, middleware stack, and parameters.
- Go-to-Definition —
Ctrl+Click on 'UserController@index' or a route name jumps to the exact file and line.
- CodeLens — ghost
[GET /users] annotations above each controller method.
- Route List webview — full filterable route table via
Laravel Maestro: Show Route List.
- Workspace-wide rename — rename a route name in one step; all usages updated atomically with single-undo.
🗄 Eloquent Virtualization
where* magic methods — whereEmail(), whereNotActive(), etc. synthesized from live DB schema.
- Column property completions —
$user->created_at, $user->is_active with type annotations.
- Relationship completions —
$user->posts, $user->posts_count (when withCount applied).
- Scope completions —
::active(), ::withPendingOrders() from scopeActive() etc.
- Mass-assignment keys —
User::create(['|'] shows all fillable fields with types.
- Variable-type inference — detects
$user = User::find($id) and provides context-aware completions on $user->.
- Inlay hints — ghost type annotations on
factory()->create([...]) array keys.
🧩 Blade Intelligence
- Directive completions — full
@if, @foreach, @can, @vite, @class, etc. with snippet expansion.
<x-component> completions — all components with props, required-prop snippet insertion.
- Component attribute completions — auto-complete
<x-alert | with typed props from @props([...]).
- View name completions —
@include, @extends, view() autocomplete from discovered views.
- Section name completions —
@yield('|') and @push('|') aware of defined sections.
- Blade hover — hover over
<x-alert> to see its class, file, and prop types.
- Embedded PHP highlighting — full syntax support inside
@php/@if blocks.
⚙️ Config & i18n
config('|') completion — all dot-notated keys with current values.
__('|') / trans('|') completion — all translation keys with value previews.
- i18n Quick Fix — select a raw string → "Extract to translation" → writes
lang/en/messages.php and replaces the source.
- Config inlay hints —
config('app.debug') /* bool */.
🏗 Code Generation
All generators use interactive QuickPick/InputBox flows — no terminal required.
| Command |
Description |
Generate Controller |
Resource, API, Invokable, or Plain; optional model binding |
Generate Model |
With optional migration, factory, resource, controller, policy |
Generate Form Request |
Stubbed authorize() + rules() |
Generate API Resource |
JSON resource scaffold |
Generate Job |
Queueable ShouldQueue job |
Generate Event |
Dispatchable event |
Generate Listener |
Event listener stub |
Generate Mailable |
Full Mailable with envelope() + content() |
Generate Policy |
All seven CRUD policy methods; optional model binding |
🚀 Getting Started
Prerequisites
- VS Code
^1.85.0
- PHP
^8.1 in PATH (or configured via laravelMaestro.phpExecutable)
- A Laravel project with an
artisan file in the workspace root
Installation
- Install from the VS Code Marketplace:
ext install laravel-maestro.laravel-maestro
- Open your Laravel project folder.
- The extension activates automatically when
artisan is detected.
- Watch the status bar for
⚡ Maestro [12R · 5M] (routes · models).
First Run
The extension performs two indexing passes on activation:
- Static AST pass (~2–5s): walks all
*.php files (excluding vendor/), builds the symbol table.
- Runtime pass (~3–8s): executes
extract.php as a child process to get live routes, DB schema, and config.
⚙️ Configuration
| Setting |
Default |
Description |
laravelMaestro.phpExecutable |
"php" |
Path to PHP binary |
laravelMaestro.runtimeExtractionTimeout |
10000 |
Max ms for PHP extractor |
laravelMaestro.enableEloquentCompletion |
true |
Eloquent virtual methods |
laravelMaestro.enableRouteCompletion |
true |
Route name completions |
laravelMaestro.enableBladeCompletion |
true |
Blade directives/components |
laravelMaestro.enableInlayHints |
true |
Ghost text type hints |
laravelMaestro.enableCodeLens |
true |
Route badges on methods |
laravelMaestro.excludePatterns |
["vendor/**", ...] |
Glob patterns to skip |
laravelMaestro.lruCacheSize |
500 |
Max AST entries in cache |
📖 Developer & Technical Documentation
All deep technical, structural, and contribution guidelines have been moved to the docs/ directory:
- Architecture & Hybrid Indexing — In-depth details on the Static AST Parser, dynamic extractor, workspace contexts, and caching architecture.
- Development Setup Guide — Requirements, local compilation commands, debugging inside VS Code, testing suites, and packaging commands.
- PHP Worker Specification — Complete details on sandboxing, safe bootstrapping, database compatibility, execution constraints, and payload formats of the background PHP worker.
- Custom Helper Extensibility — Documenting how to configure an
ide.json file in your project root to register custom helper completions.
- Extending the Extension — Guide on contributing, writing new completion providers, registering new commands, and following performance rules.
📄 License
Proprietary / Commercial License © Laravel Maestro. All rights reserved. Please refer to LICENSE.md for full terms and conditions.
| |