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 []; }
public function handleCompleteEvent($e) { if (!$this->project) { return; } $context = $e->context; if ($context->isMethodCall()) { list($type, $isThis, $types, $workingNode) = $context->getData(); // This is kind a workaround, for some reason types are empty // and workingNode is not function call when assaigning variable // even if (in my opinon) it shoud be (at this event at least). // Eg. $model = Mage::getModel( // I would expect this event to be // aware that completion should be provided for getModel function, // instead its getting useless information about var assign. // Unless I'm missing something here... $workingNode = $this->helper->findStaticCallNode($workingNode); $fqcm = end($types); if ($this->checkForContainerClass($fqcm) && $this->shouldComplete($workingNode)) { $e->completer = $this->completer; } } }