original_string: protected function _uninstall()
      {
          $allThemes = plugin()
              ->filter(function ($plugin) {
                  return $plugin->isTheme;
              })
              ->toArray();
          $index = 1;
          $this->out();
          foreach ($allThemes as $plugin) {
              $allThemes[$index] = $plugin;
              $this->out(__d('installer', '[{0, number}] {1}', [$index, $plugin->humanName]));
              $index++;
          }
          $this->out();
  
          $message = __d('installer', "Which theme would you like to uninstall?\n[Q]uit");
          while (true) {
              $in = trim($this->in($message));
              if (strtoupper($in) === 'Q') {
                  $this->err(__d('installer', 'Operation aborted'));
                  break;
              } elseif (intval($in) < 1 || !isset($allThemes[intval($in)])) {
                  $this->err(__d('installer', 'Invalid option'));
              } else {
                  $plugin = plugin($allThemes[$in]->name());
                  $this->hr();
                  $this->out(__d('installer', '<info>The following theme will be uninstalled</info>'));
                  $this->hr();
                  $this->out(__d('installer', 'Name:        {0}', $plugin->name));
                  $this->out(__d('installer', 'Description: {0}', $plugin->composer['description']));
                  $this->out(__d('installer', 'Path:        {0}', $plugin->path));
                  $this->hr();
                  $this->out();
  
                  $confirm = $this->in(__d('installer', 'Please type in "{0}" to uninstall', $allThemes[$in]->name));
                  if ($confirm === $allThemes[$in]->name) {
                      $task = $this->dispatchShell("Installer.plugins uninstall -p {$allThemes[$in]->name}");
  
                      if ($task === 0) {
                          $this->out(__d('installer', 'Plugin uninstalled!'));
                          Plugin::dropCache();
                      } else {
                          $this->err(__d('installer', 'Plugin could not be uninstalled.'), 2);
                          $this->out();
                      }
                  } else {
                      $this->err(__d('installer', 'Confirmation failure, operation aborted!'));
                  }
                  break;
              }
          }
  
          $this->out();
      }
code: protected function _uninstall()
      {
          $allThemes = plugin()
              ->filter(function ($plugin) {
                  return $plugin->isTheme;
              })
              ->toArray();
          $index = 1;
          $this->out();
          foreach ($allThemes as $plugin) {
              $allThemes[$index] = $plugin;
              $this->out(__d('installer', '[{0, number}] {1}', [$index, $plugin->humanName]));
              $index++;
          }
          $this->out();
  
          $message = __d('installer', "Which theme would you like to uninstall?\n[Q]uit");
          while (true) {
              $in = trim($this->in($message));
              if (strtoupper($in) === 'Q') {
                  $this->err(__d('installer', 'Operation aborted'));
                  break;
              } elseif (intval($in) < 1 || !isset($allThemes[intval($in)])) {
                  $this->err(__d('installer', 'Invalid option'));
              } else {
                  $plugin = plugin($allThemes[$in]->name());
                  $this->hr();
                  $this->out(__d('installer', '<info>The following theme will be uninstalled</info>'));
                  $this->hr();
                  $this->out(__d('installer', 'Name:        {0}', $plugin->name));
                  $this->out(__d('installer', 'Description: {0}', $plugin->composer['description']));
                  $this->out(__d('installer', 'Path:        {0}', $plugin->path));
                  $this->hr();
                  $this->out();
  
                  $confirm = $this->in(__d('installer', 'Please type in "{0}" to uninstall', $allThemes[$in]->name));
                  if ($confirm === $allThemes[$in]->name) {
                      $task = $this->dispatchShell("Installer.plugins uninstall -p {$allThemes[$in]->name}");
  
                      if ($task === 0) {
                          $this->out(__d('installer', 'Plugin uninstalled!'));
                          Plugin::dropCache();
                      } else {
                          $this->err(__d('installer', 'Plugin could not be uninstalled.'), 2);
                          $this->out();
                      }
                  } else {
                      $this->err(__d('installer', 'Confirmation failure, operation aborted!'));
                  }
                  break;
              }
          }
  
          $this->out();
      }
code_tokens: protected function _uninstall ( ) { $ allThemes = plugin ( ) -> filter ( function ( $ plugin ) { return $ plugin -> isTheme ; } ) -> toArray ( ) ; $ index = 1 ; $ this -> out ( ) ; foreach ( $ allThemes as $ plugin ) { $ allThemes [ $ index ] = $ plugin ; $ this -> out ( __d ( 'installer' , '[{0, number}] {1}' , [ $ index , $ plugin -> humanName ] ) ) ; $ index ++ ; } $ this -> out ( ) ; $ message = __d ( 'installer' , "Which theme would you like to uninstall?\n[Q]uit" ) ; while ( true ) { $ in = trim ( $ this -> in ( $ message ) ) ; if ( strtoupper ( $ in ) === 'Q' ) { $ this -> err ( __d ( 'installer' , 'Operation aborted' ) ) ; break ; } elseif ( intval ( $ in ) < 1 || ! isset ( $ allThemes [ intval ( $ in ) ] ) ) { $ this -> err ( __d ( 'installer' , 'Invalid option' ) ) ; } else { $ plugin = plugin ( $ allThemes [ $ in ] -> name ( ) ) ; $ this -> hr ( ) ; $ this -> out ( __d ( 'installer' , '<info>The following theme will be uninstalled</info>' ) ) ; $ this -> hr ( ) ; $ this -> out ( __d ( 'installer' , 'Name:        {0}' , $ plugin -> name ) ) ; $ this -> out ( __d ( 'installer' , 'Description: {0}' , $ plugin -> composer [ 'description' ] ) ) ; $ this -> out ( __d ( 'installer' , 'Path:        {0}' , $ plugin -> path ) ) ; $ this -> hr ( ) ; $ this -> out ( ) ; $ confirm = $ this -> in ( __d ( 'installer' , 'Please type in "{0}" to uninstall' , $ allThemes [ $ in ] -> name ) ) ; if ( $ confirm === $ allThemes [ $ in ] -> name ) { $ task = $ this -> dispatchShell ( "Installer.plugins uninstall -p {$allThemes[$in]->name}" ) ; if ( $ task === 0 ) { $ this -> out ( __d ( 'installer' , 'Plugin uninstalled!' ) ) ; Plugin :: dropCache ( ) ; } else { $ this -> err ( __d ( 'installer' , 'Plugin could not be uninstalled.' ) , 2 ) ; $ this -> out ( ) ; } } else { $ this -> err ( __d ( 'installer' , 'Confirmation failure, operation aborted!' ) ) ; } break ; } } $ this -> out ( ) ; }
docstring: Removes an existing theme.
  
  @return void
docstring_tokens: Removes an existing theme .