Php-language-server: Formatting errors – Laravel

Created on 12 Sep 2017  Â·  1Comment  Â·  Source: felixfbecker/php-language-server

When working in a Laravel project, I often get errors when trying to format. Most of the time it happens if the formatting has already been done and I try doing it again.

Here's an example file that trips up the seeder:

<?php

use Illuminate\Database\Seeder;

class TestSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}

And here's the error that pops up:

[Error - 10:00:41] Request textDocument/formatting failed.
  Message: Exception: Unable to format file in /Users/30ptdesign/.vscode-insiders/extensions/felixfbecker.php-intellisense-1.5.1/vendor/felixfbecker/language-server/src/Formatter.php:52
Stack trace:
#0 /Users/30ptdesign/.vscode-insiders/extensions/felixfbecker.php-intellisense-1.5.1/vendor/felixfbecker/language-server/src/PhpDocument.php(179): LanguageServer\Formatter::format('<?php\n\nuse Illu...', 'file:///Users/3...')
#1 /Users/30ptdesign/.vscode-insiders/extensions/felixfbecker.php-intellisense-1.5.1/vendor/felixfbecker/language-server/src/Server/TextDocument.php(172): LanguageServer\PhpDocument->getFormattedText()
#2 /Users/30ptdesign/.vscode-insiders/extensions/felixfbecker.php-intellisense-1.5.1/vendor/sabre/event/lib/Promise.php(242): LanguageServer\Server\TextDocument->LanguageServer\Server\{closure}(Object(LanguageServer\PhpDocument))
#3 /Users/30ptdesign/.vscode-insiders/extensions/felixfbecker.php-intellisense-1.5.1/vendor/sabre/event/lib/Loop/Loop.php(261): Sabre\Event\Promise->Sabre\Event\{closure}()
#4 /Users/30ptdesign/.vscode-insiders/extensions/felixfbecker.php-intellisense-1.5.1/vendor/sabre/event/lib/Loop/Loop.php(215): Sabre\Event\Loop\Loop->runNextTicks()
#5 /Users/30ptdesign/.vscode-insiders/extensions/felixfbecker.php-intellisense-1.5.1/vendor/sabre/event/lib/Loop/Loop.php(194): Sabre\Event\Loop\Loop->tick(true)
#6 /Users/30ptdesign/.vscode-insiders/extensions/felixfbecker.php-intellisense-1.5.1/vendor/sabre/event/lib/Loop/functions.php(122): Sabre\Event\Loop\Loop->run()
#7 /Users/30ptdesign/.vscode-insiders/extensions/felixfbecker.php-intellisense-1.5.1/vendor/felixfbecker/language-server/bin/php-language-server.php(102): Sabre\Event\Loop\run()
#8 {main}
  Code: -32603 

Yet, you can hit the format keybindings over and over with this file:

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

I doubt this issue is entirely specific to Laravel, but I generally don't code php without it.

bug formatting

Most helpful comment

Formatting is done by PHP CodeSniffer. I am waiting for tolerant-php-parser to add pretty printing support to improve the formatting.

cc @roblourens

>All comments

Formatting is done by PHP CodeSniffer. I am waiting for tolerant-php-parser to add pretty printing support to improve the formatting.

cc @roblourens

Was this page helpful?
0 / 5 - 0 ratings

Related issues

felixfbecker picture felixfbecker  Â·  7Comments

Jarzebowsky picture Jarzebowsky  Â·  8Comments

Ciantic picture Ciantic  Â·  6Comments

vielhuber picture vielhuber  Â·  3Comments

Ciantic picture Ciantic  Â·  7Comments