Laravel Idea Lite
A free, alternative to PhpStorm's Laravel Idea plugin for Visual Studio Code. Navigate, autocomplete, rename symbols, and generate Laravel code — with full nwidart/laravel-modules support.
Features
Ctrl+Click Navigation (Go to Definition)
Click the string argument inside any of these helpers and jump straight to the source file:
| Code |
Jumps to |
route('orders.index') |
The ->name('orders.index') line in the route file |
view('order::payments.index') |
Modules/Order/Resources/views/payments/index.blade.php |
view('emails.welcome') |
resources/views/emails/welcome.blade.php |
config('services.stripe') |
config/services.php (jumps to the key) |
__('messages.welcome') |
The matching language file |
Also works with signedRoute(), to_route(), View::make(), Route::view(), Config::get(), trans(), trans_choice(), Lang::get(), and @lang().
Autocomplete
Type inside route('...'), view('...'), config('...'), or __('...') and get live suggestions from your project's indexed route names, views, config keys, and translation groups.
Module-namespaced names like order::payments.index are included automatically.
Hover over any route, view, config, or lang string to see where it resolves to — or a warning if it's missing from the index.
Rename Symbol (F2)
Place your cursor on any PHP symbol and press F2 to rename it across your entire workspace. Powered by AST parsing via php-parser.
Supported symbols:
| Symbol |
Example |
Scope |
| Variable |
$customer |
Current function/method |
| Class |
Customer |
All PHP files |
| Interface |
CustomerInterface |
All PHP files |
| Trait |
HasRoles |
All PHP files |
| Method |
register() |
All PHP files |
| Property |
$this->auth |
All PHP files |
| Function |
helper() |
All PHP files |
Laravel-aware: Recognizes the [Controller::class, 'method'] pattern used in route definitions, event listeners, and job dispatching — renaming a method will also update these string references.
// Renaming 'show' via F2 updates this too
Route::get('stores/{store}', [CatalogController::class, 'show']);
Artisan Generators
Ctrl+Shift+P → Laravel: Generate... (or right-click a folder in the explorer).
Pick a type, enter a name, choose a target module (or root app), and toggle options. The extension runs the correct artisan command for you:
- Root:
php artisan make:model Invoice -m -c
- Module:
php artisan module:make-model Invoice Billing -m -c
Supported generators:
| Generator |
Root command |
Module command |
| Model |
make:model |
module:make-model |
| Controller |
make:controller |
module:make-controller |
| Migration |
make:migration |
module:make-migration |
| Command |
make:command |
module:make-command |
| Seeder |
make:seeder |
module:make-seed |
| Form Request |
make:request |
module:make-request |
| Middleware |
make:middleware |
module:make-middleware |
| API Resource |
make:resource |
module:make-resource |
| Event |
make:event |
module:make-event |
| Listener |
make:listener |
module:make-listener |
| Job |
make:job |
module:make-job |
| Mailable |
make:mail |
module:make-mail |
| Notification |
make:notification |
module:make-notification |
| Policy |
make:policy |
module:make-policy |
| Validation Rule |
make:rule |
module:make-rule |
| Service Provider |
make:provider |
module:make-provider |
| Factory |
make:factory |
module:make-factory |
| Test |
make:test |
module:make-test |
| Helper Class |
(writes file directly) |
(writes file directly) |
| Module (new) |
— |
module:make |
IDE Helper Generation
Ctrl+Shift+P → Laravel: Generate IDE Helpers
Integrates with barryvdh/laravel-ide-helper to generate:
- Facade helpers (
_ide_helper.php)
- Model annotations (
_ide_helper_models.php)
- PhpStorm meta (
.phpstorm.meta.php)
If the package isn't installed, the extension will offer to install it for you.
Run Artisan Commands
Ctrl+Shift+P → Laravel: Run artisan command...
Type any artisan command (e.g. migrate --seed, route:list) and it runs in a dedicated terminal.
Status Bar
Shows the number of indexed routes and views in the bottom status bar. Click it to re-index.
nwidart/laravel-modules Support
The extension is built with modular Laravel projects in mind. It automatically:
- Indexes routes from
Modules/*/Routes/**/*.php
- Indexes views from
Modules/*/Resources/views/**
- Indexes config from
Modules/*/Config/*.php
- Indexes translations from
Modules/*/Resources/lang/**
- Detects modules for the generator target picker
- Resolves module-namespaced view names (e.g.
order::payments.index)
Commands
| Command |
Description |
Laravel: Generate... |
Pick a generator type and create a new file |
Laravel: New Model |
Create a new Eloquent model |
Laravel: New Controller |
Create a new controller |
Laravel: New Migration |
Create a new migration |
Laravel: New Command |
Create a new artisan command |
Laravel: New Helper Class |
Create a PSR-4 helper class |
Laravel: Generate IDE Helpers |
Generate barryvdh/laravel-ide-helper files |
Laravel: Run artisan command... |
Run any artisan command |
Laravel: Refresh Index |
Re-scan the workspace |
Settings
| Setting |
Default |
Description |
laravelIdea.phpCommand |
"php" |
Command to run PHP/artisan (e.g. "docker compose exec app php") |
laravelIdea.modulesPath |
"Modules" |
Folder where nwidart modules live (relative to workspace root) |
laravelIdea.viewExtensions |
[".blade.php", ".php"] |
File extensions treated as views when indexing |
Requirements
- Visual Studio Code 1.75+
- A Laravel project (detected by the presence of an
artisan file)
How It Works
On activation, the extension scans the workspace and builds in-memory lookup tables for routes, views, config keys, and translation groups. File watchers automatically re-index when files change (debounced at 500ms). Generators trigger a refresh after they run.
No PHP reflection or background artisan calls are needed for navigation — files are parsed directly with regex, keeping it fast and offline-friendly.
Development
git clone https://gitlab.com/ariya-projects/vs-code-extensions/laravel-idea-vscode.git
cd laravel-idea-vscode
npm install
npm run compile
Press F5 in VS Code to launch an Extension Development Host for testing.
Build & Install
npm run build
npx @vscode/vsce package --no-dependencies
code --install-extension laravel-idea-lite-0.1.0.vsix
Or on Windows, double-click build.bat.
Support Us
If this extension saved you time, consider supporting development:
| Currency |
Address |
| TRX |
TY4wx4Pd5ftsmRLjZwRq8ikdNenoyXXWsx |
| ETH |
0x872B453BbE046662990e7048d6dC992d09c16e7b |
Contributing
Contributions are welcome! Please open an issue or submit a merge request.
License
MIT