我的文件夹中包含.go
文件和函数。
是否可以在命令行中列出当前文件夹中的所有函数声明,可能是godoc
?
godoc list functions /path/to/fileOrFolder
要获得这样的输出:
func Foo(a, b int) int
func Bar(c, d int) int
答案 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