public function renderModuleStatus(AphrontRequest $request)
 {
     $viewer = $request->getViewer();
     $extensions = PhabricatorFulltextEngineExtension::getAllExtensions();
     $rows = array();
     foreach ($extensions as $extension) {
         $rows[] = array(get_class($extension), $extension->getExtensionName());
     }
     return id(new AphrontTableView($rows))->setHeaders(array(pht('Class'), pht('Name')))->setColumnClasses(array(null, 'wide pri'));
 }
 public final function buildFulltextIndexes()
 {
     $object = $this->getObject();
     $extensions = PhabricatorFulltextEngineExtension::getAllExtensions();
     foreach ($extensions as $key => $extension) {
         if (!$extension->shouldIndexFulltextObject($object)) {
             unset($extensions[$key]);
         }
     }
     $document = $this->newAbstractDocument($object);
     $this->buildAbstractDocument($document, $object);
     foreach ($extensions as $extension) {
         $extension->indexFulltextObject($object, $document);
     }
     $storage_engine = PhabricatorFulltextStorageEngine::loadEngine();
     $storage_engine->reindexAbstractDocument($document);
 }