X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fpsy%2Fpsysh%2Fsrc%2FTabCompletion%2FMatcher%2FObjectMethodDefaultParametersMatcher.php;fp=vendor%2Fpsy%2Fpsysh%2Fsrc%2FTabCompletion%2FMatcher%2FObjectMethodDefaultParametersMatcher.php;h=cb95ae7ef0a8faa5af7835815dc610b74f51f864;hp=0000000000000000000000000000000000000000;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php b/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php new file mode 100644 index 000000000..cb95ae7ef --- /dev/null +++ b/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php @@ -0,0 +1,71 @@ +getVariable($objectName); + $reflection = new \ReflectionObject($object); + } catch (\InvalidArgumentException $e) { + return []; + } catch (\ReflectionException $e) { + return []; + } + + $methods = $reflection->getMethods(); + + foreach ($methods as $method) { + if ($method->getName() === $functionName[1]) { + return $this->getDefaultParameterCompletion($method->getParameters()); + } + } + + return []; + } + + public function hasMatched(array $tokens) + { + $openBracket = array_pop($tokens); + + if ($openBracket !== '(') { + return false; + } + + $functionName = array_pop($tokens); + + if (!self::tokenIs($functionName, self::T_STRING)) { + return false; + } + + $operator = array_pop($tokens); + + if (!self::tokenIs($operator, self::T_OBJECT_OPERATOR)) { + return false; + } + + return true; + } +}