Skip to content

Commit 599f0e4

Browse files
committed
Add ArrayValue to searchForAutocompleting
Fixes N1ebieski#7
1 parent 5823a57 commit 599f0e4

File tree

5 files changed

+24
-7
lines changed

5 files changed

+24
-7
lines changed

app/Contexts/AbstractContext.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace App\Contexts;
44

5+
use App\Contexts\Contracts\PossibleAutocompleting;
56
use Illuminate\Support\Arr;
67
use Microsoft\PhpParser\Range;
78

@@ -48,20 +49,20 @@ public function flip()
4849
public function findAutocompleting(?AbstractContext $context = null)
4950
{
5051
$context = $context ?? $this;
51-
$result = $this->seachForAutocompleting($context, true);
52+
$result = $this->searchForAutocompleting($context, true);
5253
$lastResult = null;
5354

5455
while ($result !== null) {
5556
$lastResult = $result;
56-
$result = $this->seachForAutocompleting($result);
57+
$result = $this->searchForAutocompleting($result);
5758
}
5859

5960
return $lastResult;
6061
}
6162

62-
protected function seachForAutocompleting(AbstractContext $context, $checkCurrent = false)
63+
protected function searchForAutocompleting(AbstractContext $context, $checkCurrent = false)
6364
{
64-
if ($checkCurrent && $context->autocompleting && ($context instanceof MethodCall || $context instanceof ObjectValue)) {
65+
if ($checkCurrent && $context->autocompleting && $context instanceof PossibleAutocompleting) {
6566
return $context;
6667
}
6768

app/Contexts/ArrayValue.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace App\Contexts;
44

5-
class ArrayValue extends AbstractContext
5+
use App\Contexts\Contracts\PossibleAutocompleting;
6+
7+
class ArrayValue extends AbstractContext implements PossibleAutocompleting
68
{
79
public function type(): string
810
{
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace App\Contexts\Contracts;
6+
7+
/**
8+
* Only contexts implementing this interface can return a result for autocompleting
9+
*/
10+
interface PossibleAutocompleting {}

app/Contexts/MethodCall.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace App\Contexts;
44

5-
class MethodCall extends AbstractContext
5+
use App\Contexts\Contracts\PossibleAutocompleting;
6+
7+
class MethodCall extends AbstractContext implements PossibleAutocompleting
68
{
79
public ?string $methodName = null;
810

app/Contexts/ObjectValue.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace App\Contexts;
44

5-
class ObjectValue extends AbstractContext
5+
use App\Contexts\Contracts\PossibleAutocompleting;
6+
7+
class ObjectValue extends AbstractContext implements PossibleAutocompleting
68
{
79
public ?string $className = null;
810

0 commit comments

Comments
 (0)