Autocompleting PhpSpec's SUS in PhpStorm

TL;DR: adding @mixin annotation to your specifications you will give you SUS auto-completion.

I think one of the problems of PhpSpec adaptation is lack of IDE's support, and while community is doing heck of a job asking for official support on Jetbrains Issue tracker we still can make our life easier with a little trick.

To quickly explain how @mixin annotation in PhpStorm works I'll quote Jetbrains blog:

PhpStorm will interpret @mixin annotation the same way as actual “use trait”

And this essentially will give us full auto-completion and hinting of methods that we may want to use.

Let's consider following example of String Calculator:

class StringCalculator
    public function sum($number)
        return (int) $number;

And in order to get auto-completion of the SUS your spec needs to look like:

namespace spec;

use PhpSpec\ObjectBehavior;
use StringCalculator;

 * @mixin StringCalculator
class StringCalculatorSpec extends ObjectBehavior
    function it_returns_bare_number()

And that's it. Hope it will enrich your PhpSpec and PhpStorm experience.

I've also included video that demonstrates usage: