Mercurial > hg > isophonics-drupal-site
comparison vendor/psy/psysh/src/TabCompletion/Matcher/ClassNamesMatcher.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | c2387f117808 |
children |
comparison
equal
deleted
inserted
replaced
16:c2387f117808 | 17:129ea1e6d783 |
---|---|
24 * {@inheritdoc} | 24 * {@inheritdoc} |
25 */ | 25 */ |
26 public function getMatches(array $tokens, array $info = []) | 26 public function getMatches(array $tokens, array $info = []) |
27 { | 27 { |
28 $class = $this->getNamespaceAndClass($tokens); | 28 $class = $this->getNamespaceAndClass($tokens); |
29 if (strlen($class) > 0 && $class[0] === '\\') { | 29 if (\strlen($class) > 0 && $class[0] === '\\') { |
30 $class = substr($class, 1, strlen($class)); | 30 $class = \substr($class, 1, \strlen($class)); |
31 } | 31 } |
32 $quotedClass = preg_quote($class); | 32 $quotedClass = \preg_quote($class); |
33 | 33 |
34 return array_map( | 34 return \array_map( |
35 function ($className) use ($class) { | 35 function ($className) use ($class) { |
36 // get the number of namespace separators | 36 // get the number of namespace separators |
37 $nsPos = substr_count($class, '\\'); | 37 $nsPos = \substr_count($class, '\\'); |
38 $pieces = explode('\\', $className); | 38 $pieces = \explode('\\', $className); |
39 //$methods = Mirror::get($class); | 39 //$methods = Mirror::get($class); |
40 return implode('\\', array_slice($pieces, $nsPos, count($pieces))); | 40 return \implode('\\', \array_slice($pieces, $nsPos, \count($pieces))); |
41 }, | 41 }, |
42 array_filter( | 42 \array_filter( |
43 get_declared_classes(), | 43 \get_declared_classes(), |
44 function ($className) use ($quotedClass) { | 44 function ($className) use ($quotedClass) { |
45 return AbstractMatcher::startsWith($quotedClass, $className); | 45 return AbstractMatcher::startsWith($quotedClass, $className); |
46 } | 46 } |
47 ) | 47 ) |
48 ); | 48 ); |
51 /** | 51 /** |
52 * {@inheritdoc} | 52 * {@inheritdoc} |
53 */ | 53 */ |
54 public function hasMatched(array $tokens) | 54 public function hasMatched(array $tokens) |
55 { | 55 { |
56 $token = array_pop($tokens); | 56 $token = \array_pop($tokens); |
57 $prevToken = array_pop($tokens); | 57 $prevToken = \array_pop($tokens); |
58 | 58 |
59 $blacklistedTokens = [ | 59 $blacklistedTokens = [ |
60 self::T_INCLUDE, self::T_INCLUDE_ONCE, self::T_REQUIRE, self::T_REQUIRE_ONCE, | 60 self::T_INCLUDE, self::T_INCLUDE_ONCE, self::T_REQUIRE, self::T_REQUIRE_ONCE, |
61 ]; | 61 ]; |
62 | 62 |
63 switch (true) { | 63 switch (true) { |
64 case self::hasToken([$blacklistedTokens], $token): | 64 case self::hasToken([$blacklistedTokens], $token): |
65 case self::hasToken([$blacklistedTokens], $prevToken): | 65 case self::hasToken([$blacklistedTokens], $prevToken): |
66 case is_string($token) && $token === '$': | 66 case \is_string($token) && $token === '$': |
67 return false; | 67 return false; |
68 case self::hasToken([self::T_NEW, self::T_OPEN_TAG, self::T_NS_SEPARATOR, self::T_STRING], $prevToken): | 68 case self::hasToken([self::T_NEW, self::T_OPEN_TAG, self::T_NS_SEPARATOR, self::T_STRING], $prevToken): |
69 case self::hasToken([self::T_NEW, self::T_OPEN_TAG, self::T_NS_SEPARATOR], $token): | 69 case self::hasToken([self::T_NEW, self::T_OPEN_TAG, self::T_NS_SEPARATOR], $token): |
70 case self::hasToken([self::T_OPEN_TAG, self::T_VARIABLE], $token): | 70 case self::hasToken([self::T_OPEN_TAG, self::T_VARIABLE], $token): |
71 case self::isOperator($token): | 71 case self::isOperator($token): |