public function getEntries(Project $project, Context $context) { list($type, $isThis, $types, $workingNode) = $context->getData(); // @see Plugin::handleCompleteEvent $workingNode = $this->helper->findStaticCallNode($workingNode); $methodName = $workingNode->name; switch ($methodName) { case 'helper': return $this->handleType(MageAdapter::TYPE_HELPER); case 'getSingleton': //Mage::getSingleton() //no break; //Mage::getSingleton() //no break; case 'getModel': //Mage::gerModel() return $this->handleModel(); case 'getResourceModel': //Mage::gerResourceModel() return $this->handleType(MageAdapter::TYPE_RESURCE_MODEL); case 'getStoreConfig': //Mage::getStoreConfig() //no break; //Mage::getStoreConfig() //no break; case 'getStoreConfigFlag': //Mage::getStoreConfigFlag() //not implemented yet! break; } return []; }
protected function createContext(Scope $scope, Token $token, $badLine, Index $index) { $context = new Context($scope, $token); $nodes = $this->parser->parse($this->prepareLine($badLine)); if ($token->isObjectOperator() || $token->isStaticOperator() || $token->isMethodCall()) { if (is_array($nodes)) { $workingNode = array_pop($nodes); } else { $workingNode = $nodes; } $isThis = false; if ($workingNode instanceof Variable && $workingNode->name === 'this') { $isThis = true; } if ($workingNode instanceof Name) { $nodeFQCN = $this->useParser->getFQCN($workingNode); if ($scope->getFQCN() instanceof FQCN && $nodeFQCN->toString() === $scope->getFQCN()->toString()) { $isThis = true; } } $types = $this->typeResolver->getChainType($workingNode, $index, $scope); $context->setData([array_pop($types), $isThis, $types, $workingNode]); } if ($token->isUseOperator() || $token->isNamespaceOperator() || $token->isNewOperator()) { $context->setData(trim($token->getSymbol())); } return $context; }
public function getCompleter(Context $context, Project $project) { if ($context->isNamespace()) { return $this->namespaceCompleter; } elseif ($context->isUse()) { return $this->useCompleter; } elseif ($context->isClassName()) { return $this->classNameCompleter; } elseif ($context->isInterfaceName()) { return $this->interfaceNameCompleter; } elseif ($context->isThis() || $context->isObject()) { return $this->objectCompleter; } elseif ($context->isClassStatic()) { return $this->staticCompleter; } elseif ($context->isVar()) { return $this->varCompleter; } $event = new CustomCompleterEvent($project, $context); $this->dispatcher->dispatch(self::CUSTOM_COMPLETER, $event); $completer = $event->completer; if ($completer) { return $completer; } return null; }
public function getEntries(Project $project, Context $context) { $entries = []; $postfix = trim(""); foreach ($project->getIndex()->getClasses() as $fqcn => $class) { if (!empty($postfix) && strpos($fqcn, $postfix) === false) { continue; } $fqcn = $context->getScope()->getUses()->findAlias($class->fqcn); $complete = str_replace($postfix, "", $fqcn); $entries[] = new Entry($complete, '', '', $fqcn); } return $entries; }
public function getEntries(Project $project, Context $context) { $entries = []; $postfix = trim($context->getData()); $index = $project->getIndex(); $fqcns = array_merge($index->getClasses(), $index->getInterfaces()); foreach ($fqcns as $fqcn => $class) { if (!empty($postfix) && strpos($fqcn, $postfix) === false) { continue; } $complete = str_replace($postfix, "", $fqcn); $entries[] = new Entry($complete, '', '', $fqcn); } return $entries; }
public function getEntries(Project $project, Context $context) { $entries = []; $postfix = trim($context->getData()); foreach ($project->getIndex()->getFQCNs() as $fqcn) { $namespace = $fqcn->getNamespace(); if (!empty($postfix) && strpos($namespace, $postfix) === false) { continue; } $complete = str_replace($postfix, "", $namespace); $entries[$namespace] = new Entry($complete, "", "", $namespace); } $entries = array_values($entries); return $entries; }
public function getEntries(Project $project, Context $context) { /** @var FQCN $fqcn */ list($fqcn, $isThis) = $context->getData(); $this->logger->debug('creating static entries'); if (!$fqcn instanceof FQCN) { return []; } $index = $project->getIndex(); $this->logger->debug('Creating completion for ' . $fqcn->toString()); $class = $index->findClassByFQCN($fqcn); if (empty($class)) { $class = $index->findInterfaceByFQCN($fqcn); } if (empty($class)) { return []; } $entries = []; $spec = new Specification($isThis ? 'private' : 'public', 1); if ($class->methods !== null) { foreach ($class->methods->all($spec) as $method) { $entry = $this->createEntryForMethod($method); $entries[$method->name] = $entry; } } if ($class instanceof InterfaceData) { return $entries; } if ($class->properties !== null) { foreach ($class->properties->all($spec) as $property) { $entries[$property->name] = $this->createEntryForProperty($property); } } if ($class->constants !== null) { foreach ($class->constants->all() as $const) { $entries[$const] = $this->createEntryForConst($const); } } ksort($entries); return $entries; }
public function getEntries(Project $project, Context $context) { return array_map([$this, 'createEntry'], $context->getScope()->getVars()); }