列出源代码中的所有函数

时间:2018-03-30 11:05:05

标签: go godoc

我的文件夹中包含.go文件和函数。

是否可以在命令行中列出当前文件夹中的所有函数声明,可能是godoc

godoc list functions /path/to/fileOrFolder

要获得这样的输出:

func Foo(a, b int) int
func Bar(c, d int) int

2 个答案:

答案 0 :(得分:2)

彼得的答案肯定是足够的,但是如果你想要走下兔子洞......并为了它的乐趣。使用golang std lib ast的力量。

/**
 * Implements hook_theme_suggestions_HOOK_alter().
 */
function MYTHEME_theme_suggestions_page_alter(&$suggestions, $variables, $hook) {
  /**
   * 404 template suggestion.
   */
  if (!is_null(Drupal::requestStack()->getCurrentRequest()->attributes->get('exception'))) {
    $status_code = Drupal::requestStack()->getCurrentRequest()->attributes->get('exception')->getStatusCode();
    switch ($status_code) {
      case 404: {
        $suggestions[] = 'page__' . (string) $status_code;
        break;
      }
      default:
        break;
    }
  }
}

答案 1 :(得分:1)

基于@Peter 的想法,您可以使用简单的 grep + 正则表达式提取所有导出的函数,如下所示:

grep -rP '^func\s(?:\([^\)]+\)\s)?[A-Z].*' *.go