Completed
Push — master ( cb2c73...1a2628 )
by Aleh
12s
created

ClassNameCompleter   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 7

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 5
c 2
b 0
f 0
lcom 0
cbo 7
dl 0
loc 24
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getEntries() 0 16 4
A canHandle() 0 4 1
1
<?php
2
3
namespace Padawan\Domain\Completer;
4
5
use Padawan\Domain\Core\Project;
6
use Padawan\Domain\Core\Completion\Context;
7
use Padawan\Domain\Core\Completion\Entry;
8
9
class ClassNameCompleter implements CompleterInterface
10
{
11
    public function getEntries(Project $project, Context $context) {
12
        $entries = [];
13
        $postfix = trim("");
14
        foreach ($project->getIndex()->getClasses() as $fqcn => $class) {
15
            if (!empty($postfix) && strpos($fqcn, $postfix) === false) {
16
                continue;
17
            }
18
            $fqcn = $context->getScope()->getUses()->findAlias($class->fqcn);
19
            $complete = str_replace($postfix, "", $fqcn);
20
            $entries[] = new Entry(
21
                $complete, '', '',
22
                $fqcn
23
            );
24
        }
25
        return $entries;
26
    }
27
28
    public function canHandle(Project $project, Context $context)
29
    {
30
        return $context->isClassName();
31
    }
32
}
33