Extensión oficial de Laravel para VS Code: ¡Ya disponible en Beta!

En octubre de 2024, Laravel anunció oficialmente que estaba trabajando en una extensión para Visual Studio Code. Desde entonces, muchos nos quedamos a la expectativa de cuándo la veríamos en acción y qué características traería bajo el brazo. ¡La espera ha terminado! El 16 de diciembre de 2024, el equipo de Laravel publicó la primera versión Beta de esta extensión en el Marketplace de VS Code.

¿Dónde conseguirla y qué ofrece?

La extensión ya está disponible de forma pública en el Visual Studio Marketplace. Puedes instalarla directamente desde Visual Studio Code abriendo la pestaña de extensiones (o con el atajo Ctrl + Shift + X / Cmd + Shift + X en macOS) y buscando Laravel.

Aunque se encuentra en versión Beta, la extensión promete un conjunto de funcionalidades que simplifican el desarrollo en Laravel, tales como:

  • Resaltado inteligente (intellisense) para Blade y archivos de configuración.

  • Autocompletado de directivas y funciones específicas de Laravel.

  • Navegación rápida a rutas, controladores y archivos Blade.

  • Snippets para facilitar la creación de componentes, directivas y estructuras típicas de Laravel.

  • Integración con Artisan para ejecutar comandos sin salir del editor.

Adiós a la multiplicidad de extensiones

Hasta ahora, la comunidad se apoyaba en diferentes extensiones separadas para Blade, para Artisan, para autocompletado de rutas, etc. Esta iniciativa unifica las necesidades más comunes de un desarrollador Laravel en un solo paquete, garantizando una experiencia más coherente y (al menos en teoría) con menos conflictos de configuración.

Características

Una lista no exhaustiva de las funcionalidades cubiertas por la extensión:

App Bindings

  • Ejemplos:

    app('auth')
    App::make('auth.driver')
    app()->make('auth.driver')
    App::bound('auth.driver')
    App::isShared('auth.driver')
  • Autocompletado

  • Enlaces directos a los bindings

  • Advertencias si el binding no se encuentra

  • Información al pasar el ratón (hover)


Assets

  • Ejemplo:

    asset('my-amazing-jpeg.png')
  • Autocompletado

  • Enlaces directos al recurso

  • Advertencias si el recurso no se encuentra


Blade

  • Resaltado de sintaxis


Config

  • Ejemplos:

    config('broadcasting.connections.reverb.app_id');
    Config::get('broadcasting.connections.reverb.app_id');
    Config::getMany([
        'broadcasting.connections.reverb.app_id',
        'broadcasting.connections.reverb.driver',
    ]);
    config()->string('broadcasting.connections.reverb.app_id');
  • Autocompletado

  • Enlaces directos al valor de configuración

  • Advertencias si la configuración no se encuentra

  • Información al pasar el ratón (hover)


Eloquent

  • Autocompletado de métodos

  • Autocompletado de campos (e.g., métodos where, create, make, creación de objetos)

  • Autocompletado de relaciones (e.g., métodos with y claves de arrays)

  • Autocompletado en subconsultas (e.g., with con claves de arrays y valores como closure)


Env

  • Ejemplos:

    env('REVERB_APP_ID');
    Env::get('REVERB_APP_ID');
  • Autocompletado

  • Enlaces directos al valor en .env

  • Advertencias si el valor no se encuentra, con soluciones rápidas:

    • Añadir al archivo .env

    • Copiar valor desde .env.example

  • Información al pasar el ratón (hover)


Inertia

  • Ejemplos:

    inertia('Pages/Dashboard');
    Inertia::render('Pages/Dashboard');
    Route::inertia('/dashboard', 'Pages/Dashboard');
  • Autocompletado

  • Enlaces directos a la vista en JavaScript

  • Advertencias si la vista no se encuentra, con soluciones rápidas:

    • Crear vista

  • Información al pasar el ratón (hover)


Route

  • Ejemplos:

    route('dashboard');
    signedRoute('dashboard');
    Redirect::route('dashboard');
    Redirect::signedRoute('dashboard');
    URL::route('dashboard');
    URL::signedRoute('dashboard');
    Route::middleware('auth');
    redirect()->route('dashboard');
  • Autocompletado

  • Enlaces directos a la definición de la ruta

  • Advertencias si la ruta no se encuentra

  • Información al pasar el ratón (hover)


Middleware

  • Ejemplos:

    Route::middleware('auth');
    Route::middleware(['auth', 'web']);
    Route::withoutMiddleware('auth');
  • Autocompletado

  • Enlaces directos al middleware correspondiente

  • Advertencias si el middleware no se encuentra

  • Información al pasar el ratón (hover)


Traducciones

  • Ejemplos:

    trans('auth.failed');
    __('auth.failed');
    Lang::has('auth.failed');
    Lang::get('auth.failed');
  • Autocompletado

  • Enlaces directos a las traducciones

  • Advertencias si la traducción no se encuentra

  • Información al pasar el ratón (hover)

  • Autocompletado de parámetros


Validación

  • Ejemplos:

    Validator::validate($input, ['name' => 'required']);
    request()->validate(['name' => 'required']);
    request()->sometimes(['name' => 'required']);
  • Autocompletado para cadenas y arrays (excepto combinaciones con | por ahora)


Views

  • Ejemplos:

    view('dashboard');
    Route::view('/', 'home');
  • Autocompletado

  • Enlaces directos a las vistas Blade

  • Advertencias si la vista no se encuentra, con soluciones rápidas:

    • Crear vista

  • Información al pasar el ratón (hover)


Próximamente

  • Integración con el ejecutor de pruebas de VS Code.

  • Soporte para Livewire.

  • Soporte para Volt.

  • Soporte para Pint.

  • Mejoras en el autocompletado, enlaces, información al pasar el ratón y diagnósticos en archivos Blade.


Disponibilidad de LSP

El enfoque actual está en crear la mejor experiencia para desarrolladores Laravel en VS Code. Aunque no se descarta la posibilidad de portar esta funcionalidad a un LSP (Language Server Protocol) en el futuro, por ahora no está en la hoja de ruta inmediata.

Conclusión

La llegada de esta extensión oficial es un paso importante para quienes desarrollan con Laravel en Visual Studio Code. Con una sola instalación, se podrá tener acceso a un ecosistema unificado de herramientas y ayudas contextuales, sin necesidad de combinar múltiples extensiones de terceros. Si aún no la has probado, te animo a que instales la versión Beta, explores sus funcionalidades y compartas tu experiencia con la comunidad.

Con esto, quedamos a la espera de futuras actualizaciones y el anuncio de la versión estable. Mientras tanto, esta versión Beta ya supone una excelente noticia para el día a día de cualquier desarrollador Laravel.

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Términos y condiciones para afiliados Formulario de contacto

Copyright 2025 © Todos los derechos reservados.

Contacto