Chris@13: getNamespaceAndClass($tokens); Chris@13: Chris@13: try { Chris@13: $reflection = new \ReflectionClass($class); Chris@13: } catch (\ReflectionException $e) { Chris@13: // In this case the class apparently does not exist, so we can do nothing Chris@13: return []; Chris@13: } Chris@13: Chris@13: $methods = $reflection->getMethods(\ReflectionMethod::IS_STATIC); Chris@13: Chris@13: foreach ($methods as $method) { Chris@13: if ($method->getName() === $functionName[1]) { Chris@13: return $this->getDefaultParameterCompletion($method->getParameters()); Chris@13: } Chris@13: } Chris@13: Chris@13: return []; Chris@13: } Chris@13: Chris@13: public function hasMatched(array $tokens) Chris@13: { Chris@17: $openBracket = \array_pop($tokens); Chris@13: Chris@13: if ($openBracket !== '(') { Chris@13: return false; Chris@13: } Chris@13: Chris@17: $functionName = \array_pop($tokens); Chris@13: Chris@13: if (!self::tokenIs($functionName, self::T_STRING)) { Chris@13: return false; Chris@13: } Chris@13: Chris@17: $operator = \array_pop($tokens); Chris@13: Chris@13: if (!self::tokenIs($operator, self::T_DOUBLE_COLON)) { Chris@13: return false; Chris@13: } Chris@13: Chris@13: return true; Chris@13: } Chris@13: }