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.
Formatting is done by PHP CodeSniffer. I am waiting for tolerant-php-parser to add pretty printing support to improve the formatting.
cc @roblourens
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