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):