...

パッケージ doc

import "go/doc"
概要
目次

概要 ▾

doc パッケージは,Go AST からソースコードドキュメントを抽出します。

変数

var IllegalPrefixes = []string{
    "copyright",
    "all rights",
    "author",
}

func IsPredeclared 1.8

func IsPredeclared(s string) bool

IsPredeclared は, s が事前宣言されている識別子かどうかを報告します。

func Synopsis

func Synopsis(s string) string

Synopsis は, s の最初の文をクリーンにした文を返します。 その文は最初の,ちょうど 1 文字の大文字が先行しないピリオドの後にスペースが続いた場所までです。 結果の文字列には \n , \r ,または \t の文字は含まれず,単語間のスペースは 1 つだけになります。 s が IllegalPrefix のいずれかで始まる場合,結果は空の文字列になります。

func ToHTML

func ToHTML(w io.Writer, text string, words map[string]string)

ToHTML はコメントテキストをフォーマットされた HTML に変換します。 コメントは DocReader によって作成されたので,先頭,末尾の空白行,および末尾に末尾のスペースがないことが知られています。 コメントマーカーは既に削除されています。

インデントされていない非ブランク行の各スパンは, 1 つの段落に変換されます。 この規則には 1 つ例外があります。 単一行で構成され,その後に別の段落が続き,大文字で始まり,括弧以外に句読点が含まれていないスパン,およびコンマは見出しとしてフォーマットされます。

インデントされた行のスパンは <pre> ブロックに変換され,共通のインデントプレフィックスは削除されます。

コメントテキスト内の URL はリンクに変換されます。 URL が map という単語にも含まれている場合は,リンクはマップから取得されます (対応する map 値が空の文字列の場合, URL はリンクに変換されません) 。

単語マップに表示される Go 識別子はイタリック体で表記されています。 対応する map 値が空の文字列ではない場合,それは URL と見なされ,単語はリンクに変換されます。

func ToText

func ToText(w io.Writer, text string, indent, preIndent string, width int)

ToText は,テキスト出力で表示するためのコメントテキストを準備します。 テキストの段落を幅以下の Unicode コードポイントにラップしてから,各行の先頭にインデントを付けます。 フォーマット済みセクション (プログラムテキストなど) では,空白でない各行の先頭に preIndent が付きます。

type Example

例は,ソースファイルにある関数の例を表します。

type Example struct {
    Name        string // 例の名前
    Doc         string // 関数ドキュメントの文字列例
    Code        ast.Node
    Play        *ast.File // 例のプログラム全体のバージョン; added in Go 1.1
    Comments    []*ast.CommentGroup
    Output      string // 期待される出力
    Unordered   bool // Go 1.7
    EmptyOutput bool // 空の出力を期待する; added in Go 1.1
    Order       int  // 元のソースコードの順序; added in Go 1.1
}

func Examples

func Examples(files ...*ast.File) []*Example

Examples は,ファイルで見つかった例を Name フィールドでソートして返します。 Order フィールドは,例が見つかった順序を記録します。

実行可能な例は,名前が "_test" で終わるパッケージ内になければなりません。 例は,次のいずれかの状況で "実行可能" (Play フィールドは nil 以外) です。

- 例の関数は自己完結型です。
  この関数は他のパッケージからの識別子 (または "int" などの事前宣言された識別子) のみを参照します。
  テストファイルにはドットインポートは含まれません。
- テストファイル全体が例です。
  このファイルには,厳密に 1 つの関数例,ゼロ個のテスト関数またはベンチマーク関数,および例関数以外の少なくとも 1 つの最上位関数,型,変数,または定数宣言が含まれています。

type Filter

type Filter func(string) bool

type Func

Func は func 宣言のドキュメンテーションです。

type Func struct {
    Doc  string
    Name string
    Decl *ast.FuncDecl

    // メソッド (関数の場合,これらのフィールドはそれぞれゼロ値を持ちます)
    Recv  string // 実際のレシーバ "T" または "*T"
    Orig  string // 元のレシーバ "T" または "*T"
    Level int    // 埋め込みレベル 0 は埋め込まれていないことを意味します
}

type Mode

Mode 値は, New の動作を制御します。

type Mode int
const (
    // AllDecls は,エクスポートされたものだけではなく,すべてのパッケージレベルの宣言に関するドキュメントを抽出するように指示します。
    AllDecls Mode = 1 << iota

    // AllMethods は,見えない (未エクスポートの) 匿名フィールドのメソッドだけでなく,すべての埋め込みメソッドを表示するように指示します。
    AllMethods

    // PreserveAST は AST を変更しないでおくように指示します。
    // もともと,関数本体などの AST の断片は, godoc のメモリを節約するために無駄にされていましたが,すべてのプログラムがそのような動作を望んでいるわけではありません。
    PreserveAST
)

type Note 1.1

Note は, "MARKER(uid): note body" で始まるマーク付きコメントを表します。 2 文字以上の大文字の [A-Z] 文字のマーカーと少なくとも 1 文字の uid を持つノートはすべて認識されます。 uid に続く ":" はオプションです。 メモは,メモマーカーでインデックス付けされた Package.Notes マップに集められます。

type Note struct {
    Pos, End token.Pos // マーカーを含むコメントの位置範囲
    UID      string    // マーカーで見つかった uid
    Body     string    // メモ本文
}

type Package

Package はパッケージ全体のドキュメントです。

type Package struct {
    Doc        string
    Name       string
    ImportPath string
    Imports    []string
    Filenames  []string
    Notes      map[string][]*Note // Go 1.1

    // 非推奨 : 下位互換性のため,Bugs にはまだデータが入れられていますが,すべての新しいコードでは代わりに Notes を使用する必要があります。
    Bugs []string

    // 宣言
    Consts []*Value
    Types  []*Type
    Vars   []*Value
    Funcs  []*Func
}

func New

func New(pkg *ast.Package, importPath string, mode Mode) *Package

New は与えられたパッケージ AST のパッケージドキュメントを計算します。 New は AST pkg の所有権を取り,それを編集または上書きすることができます。

func (*Package) Filter

func (p *Package) Filter(f Filter)

フィルタは,フィルタを通過しない名前の説明を削除します。 TODO(gri): "Type.Method" を名前として認識します。

type Type

Type は型宣言のドキュメントです。

type Type struct {
    Doc  string
    Name string
    Decl *ast.GenDecl

    // 関連する宣言
    Consts  []*Value // この型の (大部分) 定数のソート済みリスト
    Vars    []*Value // (主に) この型の変数のソートされたリスト
    Funcs   []*Func  // この型を返す関数のソートされたリスト
    Methods []*Func  // この型のメソッド (ソートされたものも含む) のソートされたリスト
}

type Value

Value は, (場合によってはグループ化された) var または const 宣言のドキュメントです。

type Value struct {
    Doc   string
    Names []string // 宣言順の var または const 名
    Decl  *ast.GenDecl
    // エクスポートされていないフィールドがあります
}