> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Laravel LSP — IDE-functionaliteit via het Language Server Protocol

> De officiële Language Server Protocol-implementatie van Laravel. Biedt je editor framework-bewuste aanvulling en hoverfunctionaliteit.

<Info>
  Dit artikel is gebaseerd op v0.0.27, stand juli 2026. Het pakket is geregistreerd op Packagist en is nu te installeren met `composer global require laravel/lsp`.
</Info>

## Wat is Laravel LSP?

**Laravel LSP** (Language Server Protocol) is de officiële tool die je editor IDE-functionaliteit biedt die het Laravel-framework begrijpt. Het [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) is een standaardprotocol voor de communicatie tussen een LSP-client (zoals een editor) en een LSP-server (Laravel LSP), waardoor een uniforme ontwikkelervaring in meerdere editors mogelijk wordt.

De functies die Laravel LSP biedt:

* **Aanvulling** — automatische aanvulling van routes, views, configuratiesleutels, vertaalsleutels, Livewire-componenten en meer
* **Hoverinformatie** — beweeg de cursor over iets en zie uitleg, documentatie en contextinformatie
* **Diagnostiek** — realtime detectie van problemen in je code
* **Documentlinks** — links tussen bestanden en resources
* **Quick fixes** — automatische herstelvoorstellen voor veelvoorkomende problemen
* **Ga naar definitie** — naar de plek waar een symbool is gedefinieerd

## Waarom is dit nodig?

De standaard PHP-aanvulling van je editor begrijpt de abstractielagen van het Laravel-framework niet. Bijvoorbeeld:

* Typ je een URI-patroon als eerste argument van `Route::get()`, dan is er geen aanvulling
* Typ je de viewnaam in `view('users.index')`, dan worden de daadwerkelijke viewbestandsnamen niet aangevuld
* Sleutels van configuratiebestanden (`config('app.name')`) en vertaalsleutels (`trans('messages.welcome')`) vallen buiten de aanvulling
* Ook aanvulling en validatie binnen Blade-templates worden door de standaardeditor niet ondersteund

Laravel LSP begrijpt deze "frameworkspecifieke context" en biedt nauwkeurige aanvulling en diagnostiek.

## Installatie

### Globale installatie

Globaal installeren met Composer:

```bash theme={null}
composer global require laravel/lsp
```

Controleer of de globale bin-directory van Composer in je `PATH` staat; daarna kun je starten met het volgende commando:

```bash theme={null}
laravel-lsp
```

### Installatie vanuit de broncode

Wil je de ontwikkelversie gebruiken, dan kun je de repository klonen en uitvoeren:

```bash theme={null}
gh repo clone laravel/lsp
cd lsp
composer install
php server
```

Stel een shell-alias in zodat je het commando `laravel-lsp` kunt gebruiken:

```bash theme={null}
# Voor Zsh
echo 'alias laravel-lsp="php /path/to/lsp/server"' >> ~/.zshrc
source ~/.zshrc

# Voor Bash
echo 'alias laravel-lsp="php /path/to/lsp/server"' >> ~/.bashrc
source ~/.bashrc
```

## Configuratiegids per editor

Laravel LSP gebruikt het standaard LSP-protocol en werkt daarom met elke editor die LSP ondersteunt. Hier volgen de configuratiemethoden voor de belangrijkste editors.

### Sublime Text

Installeer en configureer de officiële [Laravel Sublime Text extension](https://github.com/laravel/sublime-extension).

### Zed

Installeer en configureer de officiële [Laravel Zed extension](https://github.com/laravel/zed-extension).

### VS Code

Installeer en configureer de officiële [Laravel VS Code extension](https://github.com/laravel/vs-code-extension).

### Cursor

Cursor ondersteunt VS Code-extensies, dus de bovengenoemde [Laravel VS Code extension](https://github.com/laravel/vs-code-extension) werkt daar gewoon.

### Neovim

In Neovim 0.11 en hoger kun je rechtstreeks een custom LSP-configuratie toevoegen:

```lua theme={null}
vim.lsp.config("laravel_lsp", {
    cmd = { "laravel-lsp" },
    filetypes = { "php", "blade" },
    root_markers = { "artisan", "composer.json", ".git" },
})

vim.lsp.enable("laravel_lsp")
```

Gebruik je `nvim-lspconfig`, registreer dan als volgt:

```lua theme={null}
local lspconfig = require("lspconfig")
local configs = require("lspconfig.configs")

if not configs.laravel_lsp then
    configs.laravel_lsp = {
        default_config = {
            cmd = { "laravel-lsp" },
            filetypes = { "php", "blade" },
            root_dir = lspconfig.util.root_pattern("artisan", "composer.json", ".git"),
        },
    }
end

lspconfig.laravel_lsp.setup({})
```

### OpenCode

Schakel LSP-ondersteuning in via `opencode.json` en configureer Laravel LSP als custom server:

```json theme={null}
{
    "$schema": "https://opencode.ai/config.json",
    "lsp": {
        "laravel-lsp": {
            "command": ["laravel-lsp"],
            "extensions": [".php", ".blade.php"]
        }
    }
}
```

## Configuratie voor de GitHub Copilot CLI

Gebruik je de GitHub Copilot CLI, dan kun je dit globaal configureren via `~/.copilot/lsp-config.json`. Een aparte editorconfiguratie is niet nodig:

```json theme={null}
{
  "lspServers": {
    "laravel-lsp": {
      "command": "laravel-lsp",
      "fileExtensions": {
        ".php": "php",
        ".blade.php": "blade"
      }
    }
  }
}
```

De LSP-serverconfiguratie van de Copilot CLI ondersteunt ook `initializationOptions`, dus je kunt alle hieronder beschreven gedetailleerde instellingen gebruiken.

## Configuratieopties

LSP-clients kunnen gedetailleerde instellingen aan Laravel LSP doorgeven via `initializationOptions`.

### Detectie van de PHP-omgeving

Met de optie `phpEnvironment` bepaal je welk PHP-commando wordt gebruikt om de projectdata te indexeren. De standaard is `auto` voor automatische detectie:

| Waarde  | Gedrag van het PHP-commando                                             |
| ------- | ----------------------------------------------------------------------- |
| `auto`  | Detectie in de volgorde Herd → Valet → Sail → Lando → DDEV → lokale PHP |
| `herd`  | Gebruikt `herd which-php`                                               |
| `valet` | Gebruikt `valet which-php`                                              |
| `sail`  | Gebruikt `./vendor/bin/sail php` terwijl Sail draait                    |
| `lando` | Gebruikt `lando php`                                                    |
| `ddev`  | Gebruikt `ddev php`                                                     |
| `local` | Gebruikt de lokale PHP-binary rechtstreeks                              |

Mislukt de detectie of wordt een ongeldige waarde doorgegeven, dan valt hij terug op `php`.

### Basisconfiguratievoorbeeld

```json theme={null}
{
    "phpEnvironment": "auto",
    "phpCommand": ["php"],
    "definitionProvider": false
}
```

### Docblocks voor Pest-helpers

Deze optie is toegevoegd in v0.0.27. Wanneer Pest-tests of Composer-autoloadbestanden wijzigen, worden de docblocks voor Pest-helpers automatisch gegenereerd en bijgewerkt:

| Optie                   | Type      | Standaardwaarde                         | Beschrijving                                                                 |
| ----------------------- | --------- | --------------------------------------- | ---------------------------------------------------------------------------- |
| `pestGenerateDocBlocks` | `boolean` | `true`                                  | Of de docblocks voor Pest-helpers worden gegenereerd en bijgewerkt           |
| `pestHelperFilePath`    | `string`  | `"storage/framework/testing/_pest.php"` | Het uitvoerpad van de Pest-helper (relatief ten opzichte van de projectroot) |

```json theme={null}
{
    "pestGenerateDocBlocks": true,
    "pestHelperFilePath": "storage/framework/testing/_pest.php"
}
```

### Instellingen per functie

Elke functie is afzonderlijk in of uit te schakelen. De suffixen zijn onder andere `Completion`, `Diagnostics`, `Hover` en `Link`:

```json theme={null}
{
    "routeCompletion": true,
    "routeDiagnostics": true,
    "viewDiagnostics": false,
    "translationHover": true,
    "configLink": true,
    "envCompletion": true,
    "bladeComponentLink": true
}
```

## Overzicht van de geboden functies

| Functiegebied       | Aanvulling | Hover | Diagnostiek | Links | Quick fixes |
| ------------------- | ---------- | ----- | ----------- | ----- | ----------- |
| Routes              | ✓          | ✓     | ✓           | ✓     | -           |
| Views & Blade       | ✓          | ✓     | ✓           | ✓     | ✓           |
| Vertalingen         | ✓          | ✓     | -           | -     | -           |
| Configuratie        | ✓          | ✓     | ✓           | ✓     | -           |
| Omgevingsvariabelen | ✓          | ✓     | ✓           | ✓     | ✓           |
| Assets & Mix        | ✓          | ✓     | ✓           | ✓     | -           |
| Middleware          | ✓          | ✓     | ✓           | ✓     | -           |
| Inertia             | ✓          | -     | ✓           | ✓     | -           |
| Livewire            | ✓          | ✓     | -           | ✓     | -           |
| Auth & Policies     | ✓          | ✓     | ✓           | ✓     | -           |
| Containerbindings   | ✓          | ✓     | ✓           | ✓     | -           |
| Validatie           | ✓          | -     | -           | -     | -           |
| Controlleracties    | ✓          | -     | ✓           | ✓     | -           |
| Eloquent            | ✓          | -     | -           | -     | -           |

## Snelstart

1. **Installeren** — `composer global require laravel/lsp`
2. **Editor configureren** — zie de bovenstaande gids per editor
3. **Een Laravel-project openen** — de server indexeert vanaf de root de projectdata zoals routes, views, translations en config
4. **Aanvulling gebruiken** — in PHP-bestanden en Blade-templates werkt de framework-bewuste aanvulling automatisch

## Conclusie

Laravel LSP is een tool die de ontwikkelaarservaring flink verbetert. Hij begrijpt de frameworkspecifieke context waar de standaardfuncties van je editor niet bij kunnen, en biedt nauwkeurigere en nuttigere aanvulling en diagnostiek.

**Vereisten:**

* PHP 8.2 of hoger
* Composer
* Een editor met LSP-ondersteuning (Sublime Text, Neovim, Cursor, VS Code, enz.)

**Referenties:**

* [Laravel LSP GitHub-repository](https://github.com/laravel/lsp)
* [Officiële Language Server Protocol-site](https://microsoft.github.io/language-server-protocol/)
* [Configuratiegids voor LSP in de GitHub Copilot CLI](https://docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/add-lsp-servers)


## Related topics

- [Laravel MCP](/nl/mcp.md)
- [Laravel-updates van juli 2026](/nl/blog/changelog/202607.md)
- [Core — AT Protocol-kernbewerkingen](/nl/packages/laravel-bluesky/core.md)
- [Plugin directories](/nl/packages/laravel-copilot-sdk/plugin-directories.md)
- [Laravel AI-agents ondersteunen nu MCP-servers](/nl/blog/ai-sdk-mcp-client.md)
