<!--
  Copyright 2020 The Go Authors. All rights reserved.
  Use of this source code is governed by a BSD-style
  license that can be found in the LICENSE file.
-->

<optgroup label="Documentation">
  {{if or .Doc (index .Examples.Map "")}}
    <option value="pkg-overview">Overview</option>
  {{end}}
  {{if or .Consts .Vars .Funcs .Types}}
    <option value="pkg-index">Index</option>
  {{end}}
  {{if .Examples.List}}
    <option value="pkg-examples">Examples</option>
  {{end}}
  {{if .Consts}}
    <option value="pkg-constants">Constants</option>
  {{end}}
  {{if .Vars}}
    <option value="pkg-variables">Variables</option>
  {{end}}
</optgroup>
{{if .Funcs}}
  <optgroup label="Functions">
    {{range .Funcs}}
      <option value="{{.Name}}">{{render_short_synopsis .Decl}}</option>
    {{end}}
  </optgroup>
{{end}}
{{if .Types}}
  <optgroup label="Types">
    {{range .Types}}
      {{$tname := .Name}}
      <option value="{{$tname}}">type {{$tname}}</option>
      {{range .Funcs}}
        <option value="{{.Name}}">{{render_short_synopsis .Decl}}</option>
      {{end}}
      {{range .Methods}}
        <option value="{{$tname}}.{{.Name}}">{{render_short_synopsis .Decl}}</option>
      {{end}}
    {{end}} {{/* range .Types */}}
  </optgroup>
{{end}}
{{if .Notes}}
  <optgroup label="Notes">
    {{range $marker, $item := .Notes}}
      <option value="pkg-note-{{$marker}}">{{(index $.NoteHeaders $marker).Label}}s</option>
    {{end}}
  </optgroup>
{{end}}
