Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Formatting errors – Laravel #473

Closed
shaneparsons opened this issue Sep 12, 2017 · 1 comment · Fixed by #504
Closed

Formatting errors – Laravel #473

shaneparsons opened this issue Sep 12, 2017 · 1 comment · Fixed by #504

Comments

@shaneparsons
Copy link

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.

@felixfbecker
Copy link
Owner

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

cc @roblourens

felixfbecker added a commit that referenced this issue Oct 28, 2017
BREAKING CHANGE: removes formatting support

closes #501
closes #474
closes #473
closes #468
closes #450
closes #445
closes #443
closes #423
closes #343
closes #296
closes #293
felixfbecker added a commit that referenced this issue Oct 28, 2017
BREAKING CHANGE: removes formatting support

closes #501
closes #474
closes #473
closes #468
closes #450
closes #445
closes #443
closes #423
closes #343
closes #296
closes #293
closes #499
closes #471
felixfbecker added a commit that referenced this issue Oct 28, 2017
BREAKING CHANGE: removes formatting support

closes #501
closes #474
closes #473
closes #468
closes #450
closes #445
closes #443
closes #423
closes #343
closes #296
closes #293
closes #499
closes #471
felixfbecker added a commit that referenced this issue Oct 28, 2017
BREAKING CHANGE: removes formatting support

closes #501
closes #474
closes #473
closes #468
closes #450
closes #445
closes #443
closes #423
closes #343
closes #296
closes #293
closes #499
closes #471
felixfbecker added a commit that referenced this issue Oct 28, 2017
BREAKING CHANGE: removes formatting support

closes #501
closes #474
closes #473
closes #468
closes #450
closes #445
closes #443
closes #423
closes #343
closes #296
closes #293
closes #499
closes #471
felixfbecker added a commit that referenced this issue Nov 5, 2017
At this point there are countless issues about the formatting done by CodeSniffer. It plain out doesn't work in many cases, overrides format options that are contributed by other extensions in VS Code and does not reuse any of our AST parsing. For that reason, I am starting to think there is no reason to keep it in here until we have proper pretty-printing support from https://github.com/Microsoft/tolerant-php-parser that actually reuses our ASTs and can work while editing. For people who want to use CodeSniffer to format their code, there could be a standalone CodeSniffer language server (like there is a TSLint language server and ESLint language server). As said, we don't reuse our state anyway.

BREAKING CHANGE: removes formatting support

closes #501
closes #474
closes #473
closes #468
closes #450
closes #445
closes #443
closes #423
closes #343
closes #296
closes #293
closes #499
closes #471
cgxxv pushed a commit to cgxxv/php-language-server that referenced this issue Mar 25, 2022
At this point there are countless issues about the formatting done by CodeSniffer. It plain out doesn't work in many cases, overrides format options that are contributed by other extensions in VS Code and does not reuse any of our AST parsing. For that reason, I am starting to think there is no reason to keep it in here until we have proper pretty-printing support from https://github.com/Microsoft/tolerant-php-parser that actually reuses our ASTs and can work while editing. For people who want to use CodeSniffer to format their code, there could be a standalone CodeSniffer language server (like there is a TSLint language server and ESLint language server). As said, we don't reuse our state anyway.

BREAKING CHANGE: removes formatting support

closes felixfbecker#501
closes felixfbecker#474
closes felixfbecker#473
closes felixfbecker#468
closes felixfbecker#450
closes felixfbecker#445
closes felixfbecker#443
closes felixfbecker#423
closes felixfbecker#343
closes felixfbecker#296
closes felixfbecker#293
closes felixfbecker#499
closes felixfbecker#471
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants