packages feed

docvim-0.3.2.0: tests/fixtures/integration/loupe/golden/ast.golden

Project
  [ DocBlock
      [ PluginAnnotation "loupe" "Loupe plug-in for Vim"
      , TOC
          [ "Intro"
          , "Installation"
          , "Mappings"
          , "Options"
          , "Functions"
          , "Overrides"
          , "Related"
          , "Website"
          , "License"
          , "Development"
          , "Authors"
          , "History"
          ]
      ]
  , HeadingAnnotation "Intro"
  , Blockquote
      [ Paragraph
          [ Plaintext "\"loupe"
          , Whitespace
          , Plaintext "(noun)"
          , BreakTag
          , Plaintext "a"
          , Whitespace
          , Plaintext "small"
          , Whitespace
          , Plaintext "magnifying"
          , Whitespace
          , Plaintext "glass"
          , Whitespace
          , Plaintext "used"
          , Whitespace
          , Plaintext "by"
          , Whitespace
          , Plaintext "jewelers"
          , Whitespace
          , Plaintext "and"
          , Whitespace
          , Plaintext "watchmakers.\""
          ]
      ]
  , LinkTargets [ "loupe-features" ]
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "enhances"
      , Whitespace
      , Plaintext "Vim's"
      , Whitespace
      , Link "search-commands"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "four"
      , Whitespace
      , Plaintext "ways:"
      ]
  , SubheadingAnnotation
      "1. Makes the currently selected match easier to see"
  , Paragraph
      [ Plaintext "When"
      , Whitespace
      , Plaintext "searching"
      , Whitespace
      , Plaintext "using"
      , Whitespace
      , Link "/"
      , Plaintext ","
      , Whitespace
      , Link "?"
      , Plaintext ","
      , Whitespace
      , Link "star"
      , Plaintext ","
      , Whitespace
      , Link "#"
      , Plaintext ","
      , Whitespace
      , Link "n"
      , Plaintext ","
      , Whitespace
      , Link "N"
      , Whitespace
      , Plaintext "or"
      , Whitespace
      , Plaintext "similar,"
      , Whitespace
      , Plaintext "it"
      , Whitespace
      , Plaintext "can"
      , Whitespace
      , Plaintext "be"
      , Whitespace
      , Plaintext "hard"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "see"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "\"current\""
      , Whitespace
      , Plaintext "match"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "among"
      , Whitespace
      , Plaintext "all"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "matches"
      , Whitespace
      , Plaintext "that"
      , Whitespace
      , Plaintext "'hlsearch'"
      , Whitespace
      , Plaintext "highlights."
      , Whitespace
      , Plaintext "Loupe"
      , Whitespace
      , Plaintext "makes"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "currently"
      , Whitespace
      , Plaintext "selected"
      , Whitespace
      , Plaintext "match"
      , Whitespace
      , Plaintext "easier"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "see"
      , Whitespace
      , Plaintext "by:"
      ]
  , List
      [ ListItem
          [ Plaintext "Applying"
          , Whitespace
          , Plaintext "a"
          , Whitespace
          , Plaintext "different"
          , Whitespace
          , Link ":highlight"
          , Whitespace
          , Plaintext "group"
          , Whitespace
          , Plaintext "(by"
          , Whitespace
          , Plaintext "default,"
          , Whitespace
          , Link "hl-IncSearch"
          , Plaintext ")"
          , Whitespace
          , Plaintext "to"
          , Whitespace
          , Plaintext "the"
          , Whitespace
          , Plaintext "match"
          , Whitespace
          , Plaintext "under"
          , Whitespace
          , Plaintext "the"
          , Whitespace
          , Plaintext "cursor."
          ]
      , ListItem
          [ Plaintext "Keeping"
          , Whitespace
          , Plaintext "the"
          , Whitespace
          , Plaintext "matching"
          , Whitespace
          , Plaintext "line"
          , Whitespace
          , Plaintext "centered"
          , Whitespace
          , Plaintext "within"
          , Whitespace
          , Plaintext "the"
          , Whitespace
          , Plaintext "window"
          , Whitespace
          , Plaintext "when"
          , Whitespace
          , Plaintext "jumping"
          , Whitespace
          , Plaintext "between"
          , Whitespace
          , Plaintext "matches"
          , Whitespace
          , Plaintext "with"
          , Whitespace
          , Link "n"
          , Whitespace
          , Plaintext "and"
          , Whitespace
          , Link "N"
          , Plaintext "."
          ]
      ]
  , SubheadingAnnotation "2. Applies sane pattern syntax by default"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "makes"
      , Whitespace
      , Plaintext "\"very"
      , Whitespace
      , Plaintext "magic\""
      , Whitespace
      , Plaintext "("
      , Link "/\\v"
      , Plaintext ")"
      , Whitespace
      , Plaintext "syntax"
      , Whitespace
      , Plaintext "apply"
      , Whitespace
      , Plaintext "by"
      , Whitespace
      , Plaintext "default"
      , Whitespace
      , Plaintext "when"
      , Whitespace
      , Plaintext "searching."
      , Whitespace
      , Plaintext "This"
      , Whitespace
      , Plaintext "is"
      , Whitespace
      , Plaintext "true"
      , Whitespace
      , Plaintext "even"
      , Whitespace
      , Plaintext "if"
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "initiate"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "search"
      , Whitespace
      , Plaintext "via"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "novel"
      , Whitespace
      , Plaintext "means,"
      , Whitespace
      , Plaintext "such"
      , Whitespace
      , Plaintext "as"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "visual"
      , Whitespace
      , Plaintext "selection"
      , Whitespace
      , Plaintext "or"
      , Whitespace
      , Plaintext "with"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "complicated"
      , Whitespace
      , Link ":range"
      , Whitespace
      , Plaintext "prefix."
      ]
  , Paragraph
      [ Plaintext "This"
      , Whitespace
      , Plaintext "means"
      , Whitespace
      , Plaintext "that"
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "can"
      , Whitespace
      , Plaintext "use"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "pattern"
      , Whitespace
      , Plaintext "syntax"
      , Whitespace
      , Plaintext "closer"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "familiar"
      , Whitespace
      , Plaintext "regular"
      , Whitespace
      , Plaintext "expression"
      , Whitespace
      , Plaintext "syntax"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "languages"
      , Whitespace
      , Plaintext "such"
      , Whitespace
      , Plaintext "as"
      , Whitespace
      , Plaintext "Perl,"
      , Whitespace
      , Plaintext "Ruby,"
      , Whitespace
      , Plaintext "JavaScript"
      , Whitespace
      , Plaintext "(indeed,"
      , Whitespace
      , Plaintext "most"
      , Whitespace
      , Plaintext "other"
      , Whitespace
      , Plaintext "modern"
      , Whitespace
      , Plaintext "languages"
      , Whitespace
      , Plaintext "that"
      , Whitespace
      , Plaintext "support"
      , Whitespace
      , Plaintext "regular"
      , Whitespace
      , Plaintext "expressions)."
      ]
  , SubheadingAnnotation
      "3. Provides a shortcut to remove search highlighting"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "maps"
      , Whitespace
      , Plaintext "<leader>n"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "quickly"
      , Whitespace
      , Plaintext "remove"
      , Whitespace
      , Plaintext "all"
      , Whitespace
      , Plaintext "'hlsearch'"
      , Whitespace
      , Plaintext "highlighting"
      , Whitespace
      , Plaintext "(although"
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "can"
      , Whitespace
      , Plaintext "provide"
      , Whitespace
      , Plaintext "an"
      , Whitespace
      , Plaintext "alternative"
      , Whitespace
      , Plaintext "mapping"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Plaintext "choosing"
      , Whitespace
      , Plaintext "or"
      , Whitespace
      , Plaintext "suppress"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "feature"
      , Whitespace
      , Plaintext "entirely)."
      ]
  , SubheadingAnnotation
      "4. Sensible defaults for search-related features"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "provides"
      , Whitespace
      , Plaintext "reasonable"
      , Whitespace
      , Plaintext "defaults"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "most"
      , Whitespace
      , Plaintext "search-related"
      , Whitespace
      , Plaintext "Vim"
      , Whitespace
      , Plaintext "settings"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "provide"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "good"
      , Whitespace
      , Plaintext "\"out"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "box\""
      , Whitespace
      , Plaintext "experience."
      , Whitespace
      , Plaintext "For"
      , Whitespace
      , Plaintext "more"
      , Whitespace
      , Plaintext "details,"
      , Whitespace
      , Plaintext "or"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "see"
      , Whitespace
      , Plaintext "how"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "override"
      , Whitespace
      , Plaintext "Loupe's"
      , Whitespace
      , Plaintext "settings,"
      , Whitespace
      , Plaintext "see"
      , Whitespace
      , Link "loupe-overrides"
      , Plaintext "."
      ]
  , HeadingAnnotation "Installation"
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "install"
      , Whitespace
      , Plaintext "Loupe,"
      , Whitespace
      , Plaintext "use"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Plaintext "plug-in"
      , Whitespace
      , Plaintext "management"
      , Whitespace
      , Plaintext "system"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "choice."
      ]
  , Paragraph
      [ Plaintext "If"
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "don't"
      , Whitespace
      , Plaintext "have"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "\"plug-in"
      , Whitespace
      , Plaintext "management"
      , Whitespace
      , Plaintext "system"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "choice\","
      , Whitespace
      , Plaintext "I"
      , Whitespace
      , Plaintext "recommend"
      , Whitespace
      , Plaintext "Pathogen"
      , Whitespace
      , Plaintext "(https://github.com/tpope/vim-pathogen)"
      , Whitespace
      , Plaintext "due"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "its"
      , Whitespace
      , Plaintext "simplicity"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "robustness."
      , Whitespace
      , Plaintext "Assuming"
      , Whitespace
      , Plaintext "that"
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "have"
      , Whitespace
      , Plaintext "Pathogen"
      , Whitespace
      , Plaintext "installed"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "configured,"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "that"
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "want"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "install"
      , Whitespace
      , Plaintext "Loupe"
      , Whitespace
      , Plaintext "into"
      , Whitespace
      , Code "~/.vim/bundle"
      , Plaintext ","
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "can"
      , Whitespace
      , Plaintext "do"
      , Whitespace
      , Plaintext "so"
      , Whitespace
      , Plaintext "with:"
      ]
  , Fenced
      [ "git clone https://github.com/wincent/loupe.git ~/.vim/bundle/loupe"
      ]
  , Paragraph
      [ Plaintext "Alternatively,"
      , Whitespace
      , Plaintext "if"
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "use"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "Git"
      , Whitespace
      , Plaintext "submodule"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "each"
      , Whitespace
      , Plaintext "Vim"
      , Whitespace
      , Plaintext "plug-in,"
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "could"
      , Whitespace
      , Plaintext "do"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "following"
      , Whitespace
      , Plaintext "after"
      , Whitespace
      , Code "cd"
      , Plaintext "-ing"
      , Whitespace
      , Plaintext "into"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "top-level"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Plaintext "Git"
      , Whitespace
      , Plaintext "superproject:"
      ]
  , Fenced
      [ "git submodule add https://github.com/wincent/loupe.git ~/vim/bundle/loupe"
      , "git submodule init"
      ]
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "generate"
      , Whitespace
      , Plaintext "help"
      , Whitespace
      , Plaintext "tags"
      , Whitespace
      , Plaintext "under"
      , Whitespace
      , Plaintext "Pathogen,"
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "can"
      , Whitespace
      , Plaintext "do"
      , Whitespace
      , Plaintext "so"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "inside"
      , Whitespace
      , Plaintext "Vim"
      , Whitespace
      , Plaintext "with:"
      ]
  , Fenced [ ":call pathogen#helptags()" ]
  , Project
      [ Unit
          [ FunctionDeclaration
              { functionBang = True
              , functionName = "loupe#hlmatch"
              , functionArguments = ArgumentList []
              , functionAttributes = [ "abort" ]
              , functionBody =
                  [ Empty
                  , LetStatement
                      { letLexpr = "l:highlight"
                      , letValue = "get(g:, 'LoupeHighlightGroup', 'IncSearch')"
                      }
                  , GenericStatement "if empty(l:highlight)"
                  , GenericStatement "return"
                  , GenericStatement "endif"
                  , GenericStatement "if has('autocmd')"
                  , GenericStatement "augroup LoupeHightlightMatch"
                  , GenericStatement "autocmd!"
                  , GenericStatement "augroup END"
                  , GenericStatement "endif"
                  , GenericStatement "call loupe#private#clear_highlight()"
                  , LetStatement
                      { letLexpr = "l:pattern" , letValue = "'\\c\\%#' . @/" }
                  , GenericStatement "if exists('*matchadd')"
                  , LetStatement
                      { letLexpr = "w:loupe_hlmatch"
                      , letValue = "matchadd(l:highlight, l:pattern)"
                      }
                  , GenericStatement "endif"
                  ]
              }
          ]
      , Unit
          [ FunctionDeclaration
              { functionBang = True
              , functionName = "loupe#private#very_magic_slash"
              , functionArguments = ArgumentList [ Argument "slash" ]
              , functionAttributes = [ "abort" ]
              , functionBody =
                  [ GenericStatement "if getcmdtype() != ':'"
                  , GenericStatement "return a:slash"
                  , GenericStatement "endif"
                  , LetStatement { letLexpr = "l:pos" , letValue = "getcmdpos()" }
                  , LetStatement { letLexpr = "l:cmd" , letValue = "getcmdline()" }
                  , GenericStatement "if len(l:cmd) + 1 != l:pos"
                  , GenericStatement "return a:slash"
                  , GenericStatement "endif"
                  , GenericStatement "while 1"
                  , LetStatement
                      { letLexpr = "l:stripped" , letValue = "s:strip_ranges(l:cmd)" }
                  , GenericStatement "if l:stripped ==# l:cmd"
                  , GenericStatement "break"
                  , GenericStatement "else"
                  , LetStatement { letLexpr = "l:cmd" , letValue = "l:stripped" }
                  , GenericStatement "endif"
                  , GenericStatement "endwhile"
                  , GenericStatement "if index(['g', 's', 'v'], l:cmd) != -1"
                  , GenericStatement
                      "return loupe#private#prepare_highlight(a:slash . '\\v')"
                  , GenericStatement "endif"
                  , GenericStatement "return a:slash"
                  ]
              }
          , FunctionDeclaration
              { functionBang = True
              , functionName = "s:strip_ranges"
              , functionArguments = ArgumentList [ Argument "cmdline" ]
              , functionAttributes = []
              , functionBody =
                  [ LetStatement { letLexpr = "l:cmdline" , letValue = "a:cmdline" }
                  , LetStatement
                      { letLexpr = "l:modifier" , letValue = "'\\([+-]\\d*\\)*'" }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, '^\\d\\+' . l:modifier, '', '') \" line number"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, '^\\.' . l:modifier, '', '') \" current line"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, '^$' . l:modifier, '', '') \" last line in file"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, '^%' . l:modifier, '', '') \" entire file"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, \"^'[a-z]\\\\c\" . l:modifier, '', '') \" mark t (or T)"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, \"^'[<>]\" . l:modifier, '', '') \" visual selection marks"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, '^/[^/]\\+/' . l:modifier, '', '') \" /{pattern}/"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, '^?[^?]\\+?' . l:modifier, '', '') \" ?{pattern}?"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, '^\\\\/' . l:modifier, '', '') \" \\/ (next match of previous pattern)"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, '^\\\\?' . l:modifier, '', '') \" \\? (last match of previous pattern)"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue =
                          "substitute(l:cmdline, '^\\\\&' . l:modifier, '', '') \" \\& (last match of previous substitution)"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue = "substitute(l:cmdline, '^,', '', '') \" , (separator)"
                      }
                  , LetStatement
                      { letLexpr = "l:cmdline"
                      , letValue = "substitute(l:cmdline, '^;', '', '') \" ; (separator)"
                      }
                  , GenericStatement "return l:cmdline"
                  ]
              }
          , FunctionDeclaration
              { functionBang = True
              , functionName = "loupe#private#prepare_highlight"
              , functionArguments = ArgumentList [ Argument "result" ]
              , functionAttributes = [ "abort" ]
              , functionBody =
                  [ GenericStatement "if has('autocmd')"
                  , GenericStatement "augroup LoupeHightlightMatch"
                  , GenericStatement "autocmd!"
                  , GenericStatement "autocmd CursorMoved * :call loupe#hlmatch()"
                  , GenericStatement "augroup END"
                  , GenericStatement "endif"
                  , GenericStatement "return a:result"
                  ]
              }
          , FunctionDeclaration
              { functionBang = True
              , functionName = "loupe#private#clear_highlight"
              , functionArguments = ArgumentList []
              , functionAttributes = [ "abort" ]
              , functionBody =
                  [ GenericStatement "if exists('w:loupe_hlmatch')"
                  , GenericStatement "try"
                  , GenericStatement "call matchdelete(w:loupe_hlmatch)"
                  , GenericStatement "catch /\\v<(E802|E803)>/"
                  , GenericStatement "finally"
                  , UnletStatement
                      { unletBang = False , unletBody = "w:loupe_hlmatch" }
                  , GenericStatement "endtry"
                  , GenericStatement "endif"
                  ]
              }
          , FunctionDeclaration
              { functionBang = True
              , functionName = "loupe#private#cleanup"
              , functionArguments = ArgumentList []
              , functionAttributes = [ "abort" ]
              , functionBody =
                  [ GenericStatement "if !exists('v:hlsearch') || !v:hlsearch"
                  , GenericStatement "call loupe#private#clear_highlight()"
                  , GenericStatement "endif"
                  ]
              }
          ]
      , Unit
          [ GenericStatement
              "if exists('g:LoupeLoaded') || &compatible || v:version < 700"
          , GenericStatement "finish"
          , GenericStatement "endif"
          , LetStatement { letLexpr = "g:LoupeLoaded" , letValue = "1" }
          , LetStatement
              { letLexpr = "s:cpoptions" , letValue = "&cpoptions" }
          , GenericStatement "set cpoptions&vim"
          , GenericStatement "if &history < 1000"
          , GenericStatement
              "set history=1000 \" Longer search and command history (default is 50)."
          , GenericStatement "endif"
          , GenericStatement "if has('extra_search')"
          , GenericStatement "set hlsearch \" Highlight search strings."
          , GenericStatement
              "set incsearch \" Incremental search (\"find as you type\")."
          , GenericStatement "endif"
          , GenericStatement "set ignorecase \" Ignore case when searching."
          , GenericStatement
              "set shortmess+=s \" Don't echo search wrap messages."
          , GenericStatement
              "set smartcase \" Case-sensitive search if search string includes a capital letter."
          , LetStatement
              { letLexpr = "s:clear"
              , letValue = "get(g:, 'LoupeClearHighlightMap', 1)"
              }
          , GenericStatement "if s:clear"
          , GenericStatement
              "if !hasmapto('<Plug>(LoupeClearHighlight)') && maparg('<leader>n', 'n') ==# ''"
          , GenericStatement
              "nmap <silent> <unique> <leader>n <Plug>(LoupeClearHighlight)"
          , GenericStatement "endif"
          , GenericStatement "endif"
          , GenericStatement
              "nnoremap <silent> <Plug>(LoupeClearHighlight) :nohlsearch<CR> :call loupe#private#clear_highlight()<CR>"
          , GenericStatement
              "cabbrev <silent> <expr> noh (getcmdtype() == ':' && getcmdpos() == 4 ? 'noh <bar> call loupe#private#clear_highlight()<CR>' : 'noh')"
          , GenericStatement
              "cabbrev <silent> <expr> nohl (getcmdtype() == ':' && getcmdpos() == 5 ? 'nohl <bar> call loupe#private#clear_highlight()<CR>' : 'nohl')"
          , GenericStatement
              "cabbrev <silent> <expr> nohls (getcmdtype() == ':' && getcmdpos() == 6 ? 'nohls <bar> call loupe#private#clear_highlight()<CR>' : 'nohls')"
          , GenericStatement
              "cabbrev <silent> <expr> nohlse (getcmdtype() == ':' && getcmdpos() == 7 ? 'nohlse <bar> call loupe#private#clear_highlight()<CR>' : 'nohlse')"
          , GenericStatement
              "cabbrev <silent> <expr> nohlsea (getcmdtype() == ':' && getcmdpos() == 8 ? 'nohlsea <bar> call loupe#private#clear_highlight()<CR>' : 'nohlsea')"
          , GenericStatement
              "cabbrev <silent> <expr> nohlsear (getcmdtype() == ':' && getcmdpos() == 9 ? 'nohlsear <bar> call loupe#private#clear_highlight()<CR>' : 'nohlsear')"
          , GenericStatement
              "cabbrev <silent> <expr> nohlsearc (getcmdtype() == ':' && getcmdpos() == 10 ? 'nohlsearc <bar> call loupe#private#clear_highlight()<CR>' : 'nohlsearc')"
          , GenericStatement
              "cabbrev <silent> <expr> nohlsearch (getcmdtype() == ':' && getcmdpos() == 11 ? 'nohlsearch <bar> call loupe#private#clear_highlight()<CR>' : 'nohlsearch')"
          , FunctionDeclaration
              { functionBang = False
              , functionName = "s:MagicString"
              , functionArguments = ArgumentList []
              , functionAttributes = []
              , functionBody =
                  [ LetStatement
                      { letLexpr = "s:magic"
                      , letValue = "get(g:, 'LoupeVeryMagic', 1)"
                      }
                  , GenericStatement "return s:magic ? '\\v' : ''"
                  ]
              }
          , GenericStatement
              "nnoremap <expr> / loupe#private#prepare_highlight('/' . <SID>MagicString())"
          , GenericStatement
              "nnoremap <expr> ? loupe#private#prepare_highlight('?' . <SID>MagicString())"
          , GenericStatement
              "xnoremap <expr> / loupe#private#prepare_highlight('/' . <SID>MagicString())"
          , GenericStatement
              "xnoremap <expr> ? loupe#private#prepare_highlight('?' . <SID>MagicString())"
          , GenericStatement "if !empty(s:MagicString())"
          , GenericStatement
              "cnoremap <expr> ! loupe#private#very_magic_slash('!')"
          , GenericStatement
              "cnoremap <expr> # loupe#private#very_magic_slash('#')"
          , GenericStatement
              "cnoremap <expr> $ loupe#private#very_magic_slash('$')"
          , GenericStatement
              "cnoremap <expr> % loupe#private#very_magic_slash('%')"
          , GenericStatement
              "cnoremap <expr> & loupe#private#very_magic_slash('&')"
          , GenericStatement
              "cnoremap <expr> ' loupe#private#very_magic_slash(\"'\")"
          , GenericStatement
              "cnoremap <expr> ( loupe#private#very_magic_slash('(')"
          , GenericStatement
              "cnoremap <expr> ) loupe#private#very_magic_slash(')')"
          , GenericStatement
              "cnoremap <expr> * loupe#private#very_magic_slash('*')"
          , GenericStatement
              "cnoremap <expr> + loupe#private#very_magic_slash('+')"
          , GenericStatement
              "cnoremap <expr> , loupe#private#very_magic_slash(',')"
          , GenericStatement
              "cnoremap <expr> - loupe#private#very_magic_slash('-')"
          , GenericStatement
              "cnoremap <expr> . loupe#private#very_magic_slash('.')"
          , GenericStatement
              "cnoremap <expr> / loupe#private#very_magic_slash('/')"
          , GenericStatement
              "cnoremap <expr> : loupe#private#very_magic_slash(':')"
          , GenericStatement
              "cnoremap <expr> ; loupe#private#very_magic_slash(';')"
          , GenericStatement
              "cnoremap <expr> < loupe#private#very_magic_slash('<')"
          , GenericStatement
              "cnoremap <expr> = loupe#private#very_magic_slash('=')"
          , GenericStatement
              "cnoremap <expr> > loupe#private#very_magic_slash('>')"
          , GenericStatement
              "cnoremap <expr> ? loupe#private#very_magic_slash('?')"
          , GenericStatement
              "cnoremap <expr> @ loupe#private#very_magic_slash('@')"
          , GenericStatement
              "cnoremap <expr> [ loupe#private#very_magic_slash('[')"
          , GenericStatement
              "cnoremap <expr> ] loupe#private#very_magic_slash(']')"
          , GenericStatement
              "cnoremap <expr> ^ loupe#private#very_magic_slash('^')"
          , GenericStatement
              "cnoremap <expr> _ loupe#private#very_magic_slash('_')"
          , GenericStatement
              "cnoremap <expr> ` loupe#private#very_magic_slash('`')"
          , GenericStatement
              "cnoremap <expr> { loupe#private#very_magic_slash('{')"
          , GenericStatement
              "cnoremap <expr> } loupe#private#very_magic_slash('}')"
          , GenericStatement
              "cnoremap <expr> ~ loupe#private#very_magic_slash('~')"
          , GenericStatement "endif"
          , FunctionDeclaration
              { functionBang = True
              , functionName = "s:map"
              , functionArguments =
                  ArgumentList [ Argument "keys" , Argument "name" ]
              , functionAttributes = []
              , functionBody =
                  [ Empty
                  , LetStatement
                      { letLexpr = "s:center"
                      , letValue = "get(g:, 'LoupeCenterResults', 1)"
                      }
                  , LetStatement
                      { letLexpr = "s:center_string"
                      , letValue = "s:center ? 'zz' : ''"
                      }
                  , GenericStatement "if !hasmapto('<Plug>(Loupe' . a:name . ')')"
                  , GenericStatement
                      "execute 'nmap <silent> ' . a:keys . ' <Plug>(Loupe' . a:name . ')'"
                  , GenericStatement "endif"
                  , GenericStatement
                      "execute 'nnoremap <silent> <Plug>(Loupe' . a:name . ')' . ' ' . a:keys . s:center_string . ':call loupe#hlmatch()<CR>'"
                  ]
              }
          , GenericStatement "call s:map('#', 'Octothorpe')"
          , GenericStatement "call s:map('*', 'Star')"
          , GenericStatement "call s:map('N', 'N')"
          , GenericStatement "call s:map('g#', 'GOctothorpe')"
          , GenericStatement "call s:map('g*', 'GStar')"
          , GenericStatement "call s:map('n', 'n')"
          , GenericStatement "if has('autocmd') && has('extra_search')"
          , GenericStatement "augroup LoupeCleanUp"
          , GenericStatement "autocmd!"
          , GenericStatement
              "autocmd WinEnter * :call loupe#private#cleanup()"
          , GenericStatement "augroup END"
          , GenericStatement "endif"
          , LetStatement
              { letLexpr = "&cpoptions" , letValue = "s:cpoptions" }
          , UnletStatement { unletBang = False , unletBody = "s:cpoptions" }
          ]
      ]
  , MappingsAnnotation
  , MappingAnnotation "<Plug>(LoupeClearHighlight)"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "maps"
      , Whitespace
      , Plaintext "<leader>n"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Link "<Plug>(LoupeClearHighlight)"
      , Plaintext ","
      , Whitespace
      , Plaintext "which"
      , Whitespace
      , Plaintext "clears"
      , Whitespace
      , Plaintext "all"
      , Whitespace
      , Plaintext "visible"
      , Whitespace
      , Plaintext "highlights"
      , Whitespace
      , Plaintext "(like"
      , Whitespace
      , Link ":nohighlight"
      , Whitespace
      , Plaintext "does)."
      , Whitespace
      , Plaintext "To"
      , Whitespace
      , Plaintext "use"
      , Whitespace
      , Plaintext "an"
      , Whitespace
      , Plaintext "alternative"
      , Whitespace
      , Plaintext "mapping"
      , Whitespace
      , Plaintext "instead,"
      , Whitespace
      , Plaintext "create"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "different"
      , Whitespace
      , Plaintext "one"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Link ".vimrc"
      , Whitespace
      , Plaintext "instead"
      , Whitespace
      , Plaintext "using"
      , Whitespace
      , Link ":nmap"
      , Plaintext ":"
      ]
  , Fenced
      [ "\" Instead of <leader>n, use <leader>x."
      , "nmap <leader>x <Plug>(LoupeClearHighlight)"
      ]
  , Paragraph
      [ Plaintext "Note"
      , Whitespace
      , Plaintext "that"
      , Whitespace
      , Plaintext "Loupe"
      , Whitespace
      , Plaintext "will"
      , Whitespace
      , Plaintext "not"
      , Whitespace
      , Plaintext "try"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "set"
      , Whitespace
      , Plaintext "up"
      , Whitespace
      , Plaintext "its"
      , Whitespace
      , Plaintext "<leader>n"
      , Whitespace
      , Plaintext "mapping"
      , Whitespace
      , Plaintext "if"
      , Whitespace
      , Plaintext "any"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "following"
      , Whitespace
      , Plaintext "are"
      , Whitespace
      , Plaintext "true:"
      ]
  , List
      [ ListItem
          [ Plaintext "A"
          , Whitespace
          , Plaintext "mapping"
          , Whitespace
          , Plaintext "for"
          , Whitespace
          , Plaintext "<leader>n"
          , Whitespace
          , Plaintext "already"
          , Whitespace
          , Plaintext "exists."
          ]
      , ListItem
          [ Plaintext "An"
          , Whitespace
          , Plaintext "alternative"
          , Whitespace
          , Plaintext "mapping"
          , Whitespace
          , Plaintext "for"
          , Whitespace
          , Link "<Plug>(LoupeClearHighlight)"
          , Whitespace
          , Plaintext "has"
          , Whitespace
          , Plaintext "already"
          , Whitespace
          , Plaintext "been"
          , Whitespace
          , Plaintext "set"
          , Whitespace
          , Plaintext "up"
          , Whitespace
          , Plaintext "from"
          , Whitespace
          , Plaintext "a"
          , Whitespace
          , Link ".vimrc"
          , Plaintext "."
          ]
      , ListItem
          [ Plaintext "The"
          , Whitespace
          , Plaintext "mapping"
          , Whitespace
          , Plaintext "has"
          , Whitespace
          , Plaintext "been"
          , Whitespace
          , Plaintext "suppressed"
          , Whitespace
          , Plaintext "by"
          , Whitespace
          , Plaintext "setting"
          , Whitespace
          , Link "g:LoupeClearHighlightMap"
          , Whitespace
          , Plaintext "to"
          , Whitespace
          , Plaintext "1"
          , Whitespace
          , Plaintext "in"
          , Whitespace
          , Plaintext "your"
          , Whitespace
          , Link ".vimrc"
          , Plaintext "."
          ]
      ]
  , MappingAnnotation "<Plug>(LoupeOctothorpe)"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "maps"
      , Whitespace
      , Link "#"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Link "<Plug>(LoupeOctothorpe)"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "order"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "implement"
      , Whitespace
      , Plaintext "custom"
      , Whitespace
      , Plaintext "highlighting"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "line-centering"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "current"
      , Whitespace
      , Plaintext "match."
      ]
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "prevent"
      , Whitespace
      , Plaintext "this"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "happening,"
      , Whitespace
      , Plaintext "create"
      , Whitespace
      , Plaintext "an"
      , Whitespace
      , Plaintext "alternate"
      , Whitespace
      , Plaintext "mapping"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Link ".vimrc"
      , Plaintext ":"
      ]
  , Fenced [ "nmap <Nop> <Plug>(LoupeOctothorpe)" ]
  , MappingAnnotation "<Plug>(LoupeStar)"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "maps"
      , Whitespace
      , Link "star"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Link "<Plug>(LoupeStar)"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "order"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "implement"
      , Whitespace
      , Plaintext "custom"
      , Whitespace
      , Plaintext "highlighting"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "line-centering"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "current"
      , Whitespace
      , Plaintext "match."
      ]
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "prevent"
      , Whitespace
      , Plaintext "this"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "happening,"
      , Whitespace
      , Plaintext "create"
      , Whitespace
      , Plaintext "an"
      , Whitespace
      , Plaintext "alternate"
      , Whitespace
      , Plaintext "mapping"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Link ".vimrc"
      , Plaintext ":"
      ]
  , Fenced [ "nmap <Nop> <Plug>(LoupeStar)" ]
  , MappingAnnotation "<Plug>(LoupeN)"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "maps"
      , Whitespace
      , Link "N"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Link "<Plug>(LoupeN)"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "order"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "implement"
      , Whitespace
      , Plaintext "custom"
      , Whitespace
      , Plaintext "highlighting"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "line-centering"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "current"
      , Whitespace
      , Plaintext "match."
      ]
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "prevent"
      , Whitespace
      , Plaintext "this"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "happening,"
      , Whitespace
      , Plaintext "create"
      , Whitespace
      , Plaintext "an"
      , Whitespace
      , Plaintext "alternate"
      , Whitespace
      , Plaintext "mapping"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Link ".vimrc"
      , Plaintext ":"
      ]
  , Fenced [ "nmap <Nop> <Plug>(LoupeN)" ]
  , MappingAnnotation "<Plug>(LoupeGOctothorpe)"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "maps"
      , Whitespace
      , Link "g#"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Link "<Plug>(LoupeGOctothorpe)"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "order"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "implement"
      , Whitespace
      , Plaintext "custom"
      , Whitespace
      , Plaintext "highlighting"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "line-centering"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "current"
      , Whitespace
      , Plaintext "match."
      ]
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "prevent"
      , Whitespace
      , Plaintext "this"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "happening,"
      , Whitespace
      , Plaintext "create"
      , Whitespace
      , Plaintext "an"
      , Whitespace
      , Plaintext "alternate"
      , Whitespace
      , Plaintext "mapping"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Link ".vimrc"
      , Plaintext ":"
      ]
  , Fenced [ "nmap <Nop> <Plug>(LoupeGOctothorpe)" ]
  , MappingAnnotation "<Plug>(LoupeGStar)"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "maps"
      , Whitespace
      , Link "gstar"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Link "<Plug>(LoupeGStar)"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "order"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "implement"
      , Whitespace
      , Plaintext "custom"
      , Whitespace
      , Plaintext "highlighting"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "line-centering"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "current"
      , Whitespace
      , Plaintext "match."
      ]
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "prevent"
      , Whitespace
      , Plaintext "this"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "happening,"
      , Whitespace
      , Plaintext "create"
      , Whitespace
      , Plaintext "an"
      , Whitespace
      , Plaintext "alternate"
      , Whitespace
      , Plaintext "mapping"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Link ".vimrc"
      , Plaintext ":"
      ]
  , Fenced [ "nmap <Nop> <Plug>(LoupeGStar)" ]
  , MappingAnnotation "<Plug>(Loupen)"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "maps"
      , Whitespace
      , Link "n"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Link "<Plug>(Loupen)"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "order"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "implement"
      , Whitespace
      , Plaintext "custom"
      , Whitespace
      , Plaintext "highlighting"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "line-centering"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "current"
      , Whitespace
      , Plaintext "match."
      ]
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "prevent"
      , Whitespace
      , Plaintext "this"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "happening,"
      , Whitespace
      , Plaintext "create"
      , Whitespace
      , Plaintext "an"
      , Whitespace
      , Plaintext "alternate"
      , Whitespace
      , Plaintext "mapping"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Link ".vimrc"
      , Plaintext ":"
      ]
  , Fenced [ "nmap <Nop> <Plug>(Loupen)" ]
  , OptionsAnnotation
  , OptionAnnotation
      "g:LoupeHighlightGroup" "string" (Just "IncSearch")
  , Paragraph
      [ Plaintext "Specifies"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Link ":highlight"
      , Whitespace
      , Plaintext "group"
      , Whitespace
      , Plaintext "used"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "emphasize"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "match"
      , Whitespace
      , Plaintext "currently"
      , Whitespace
      , Plaintext "under"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "cursor"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "current"
      , Whitespace
      , Plaintext "search"
      , Whitespace
      , Plaintext "pattern."
      , Whitespace
      , Plaintext "Defaults"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "\"IncSearch\""
      , Whitespace
      , Plaintext "(ie."
      , Whitespace
      , Link "hl-IncSearch"
      , Plaintext ")."
      , Whitespace
      , Plaintext "For"
      , Whitespace
      , Plaintext "example:"
      ]
  , Fenced [ "let g:LoupeHighlightGroup='Error'" ]
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "prevent"
      , Whitespace
      , Plaintext "any"
      , Whitespace
      , Plaintext "special"
      , Whitespace
      , Plaintext "highlighting"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "being"
      , Whitespace
      , Plaintext "applied,"
      , Whitespace
      , Plaintext "set"
      , Whitespace
      , Plaintext "this"
      , Whitespace
      , Plaintext "option"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "\"\""
      , Whitespace
      , Plaintext "(ie."
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "empty"
      , Whitespace
      , Plaintext "string)."
      ]
  , OptionAnnotation "g:LoupeLoaded" "any" Nothing
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "prevent"
      , Whitespace
      , Plaintext "Loupe"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "being"
      , Whitespace
      , Plaintext "loaded,"
      , Whitespace
      , Plaintext "set"
      , Whitespace
      , Link "g:LoupeLoaded"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "any"
      , Whitespace
      , Plaintext "value"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "your"
      , Whitespace
      , Link ".vimrc"
      , Plaintext "."
      , Whitespace
      , Plaintext "For"
      , Whitespace
      , Plaintext "example:"
      ]
  , Fenced [ "let g:LoupeLoaded=1" ]
  , OptionAnnotation "g:LoupeClearHighlightMap" "boolean" (Just "1")
  , Paragraph
      [ Plaintext "Controls"
      , Whitespace
      , Plaintext "whether"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "set"
      , Whitespace
      , Plaintext "up"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Link "<Plug>(LoupeClearHighlight)"
      , Whitespace
      , Plaintext "mapping."
      , Whitespace
      , Plaintext "To"
      , Whitespace
      , Plaintext "prevent"
      , Whitespace
      , Plaintext "any"
      , Whitespace
      , Plaintext "mapping"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "being"
      , Whitespace
      , Plaintext "configured,"
      , Whitespace
      , Plaintext "set"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "0:"
      ]
  , Fenced [ "let g:LoupeClearHighlightMap=0" ]
  , OptionAnnotation "g:LoupeVeryMagic" "boolean" (Just "1")
  , Paragraph
      [ Plaintext "Controls"
      , Whitespace
      , Plaintext "whether"
      , Whitespace
      , Plaintext "\"very"
      , Whitespace
      , Plaintext "magic\""
      , Whitespace
      , Plaintext "pattern"
      , Whitespace
      , Plaintext "syntax"
      , Whitespace
      , Plaintext "("
      , Link "/\\v"
      , Plaintext ")"
      , Whitespace
      , Plaintext "is"
      , Whitespace
      , Plaintext "applied"
      , Whitespace
      , Plaintext "by"
      , Whitespace
      , Plaintext "default."
      , Whitespace
      , Plaintext "To"
      , Whitespace
      , Plaintext "disable,"
      , Whitespace
      , Plaintext "set"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "0:"
      ]
  , Fenced [ "let g:LoupeVeryMagic=0" ]
  , OptionAnnotation "g:LoupeCenterResults" "boolean" (Just "1")
  , Paragraph
      [ Plaintext "Controls"
      , Whitespace
      , Plaintext "whether"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "match's"
      , Whitespace
      , Plaintext "line"
      , Whitespace
      , Plaintext "is"
      , Whitespace
      , Plaintext "vertically"
      , Whitespace
      , Plaintext "centered"
      , Whitespace
      , Plaintext "within"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "window"
      , Whitespace
      , Plaintext "when"
      , Whitespace
      , Plaintext "jumping"
      , Whitespace
      , Plaintext "(via"
      , Whitespace
      , Link "n"
      , Plaintext ","
      , Whitespace
      , Link "N"
      , Whitespace
      , Plaintext "etc)."
      , Whitespace
      , Plaintext "To"
      , Whitespace
      , Plaintext "disable,"
      , Whitespace
      , Plaintext "set"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "0:"
      ]
  , Fenced [ "let g:LoupeCenterResults=0" ]
  , FunctionsAnnotation
  , FunctionAnnotation "loupe#hlmatch"
  , Paragraph
      [ Plaintext "Apply"
      , Whitespace
      , Plaintext "highlighting"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "current"
      , Whitespace
      , Plaintext "search"
      , Whitespace
      , Plaintext "match."
      ]
  , FooterAnnotation
  , HeadingAnnotation "Overrides"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "sets"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "number"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "search-related"
      , Whitespace
      , Plaintext "Vim"
      , Whitespace
      , Plaintext "settings"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "reasonable"
      , Whitespace
      , Plaintext "defaults"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "order"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "provide"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "good"
      , Whitespace
      , Plaintext "\"out"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "box\""
      , Whitespace
      , Plaintext "experience."
      , Whitespace
      , Plaintext "The"
      , Whitespace
      , Plaintext "following"
      , Whitespace
      , Plaintext "overrides"
      , Whitespace
      , Plaintext "will"
      , Whitespace
      , Plaintext "be"
      , Whitespace
      , Plaintext "set"
      , Whitespace
      , Plaintext "unless"
      , Whitespace
      , Plaintext "suppressed"
      , Whitespace
      , Plaintext "or"
      , Whitespace
      , Plaintext "overridden"
      , Whitespace
      , Plaintext "(see"
      , Whitespace
      , Link "loupe-suppress-overrides"
      , Plaintext "):"
      ]
  , IndentAnnotation
  , LinkTargets [ "loupe-history-override" ]
  , Paragraph [ Plaintext "'history'" ]
  , Paragraph
      [ Plaintext "Increased"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "1000,"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "increase"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "number"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "previous"
      , Whitespace
      , Plaintext "searches"
      , Whitespace
      , Plaintext "remembered."
      , Whitespace
      , Plaintext "Note"
      , Whitespace
      , Plaintext "that"
      , Whitespace
      , Plaintext "Loupe"
      , Whitespace
      , Plaintext "only"
      , Whitespace
      , Plaintext "applies"
      , Whitespace
      , Plaintext "this"
      , Whitespace
      , Plaintext "setting"
      , Whitespace
      , Plaintext "if"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "current"
      , Whitespace
      , Plaintext "value"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "'history'"
      , Whitespace
      , Plaintext "is"
      , Whitespace
      , Plaintext "less"
      , Whitespace
      , Plaintext "than"
      , Whitespace
      , Plaintext "1000."
      ]
  , LinkTargets [ "loupe-hlsearch-override" ]
  , Paragraph [ Plaintext "'hlsearch'" ]
  , Paragraph
      [ Plaintext "Turned"
      , Whitespace
      , Plaintext "on"
      , Whitespace
      , Plaintext "(when"
      , Whitespace
      , Plaintext "there"
      , Whitespace
      , Plaintext "is"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "previous"
      , Whitespace
      , Plaintext "search"
      , Whitespace
      , Plaintext "pattern,"
      , Whitespace
      , Plaintext "highlight"
      , Whitespace
      , Plaintext "all"
      , Whitespace
      , Plaintext "its"
      , Whitespace
      , Plaintext "matches)."
      ]
  , LinkTargets [ "loupe-incsearch-override" ]
  , Paragraph [ Plaintext "'incsearch'" ]
  , Paragraph
      [ Plaintext "Turned"
      , Whitespace
      , Plaintext "on"
      , Whitespace
      , Plaintext "(while"
      , Whitespace
      , Plaintext "typing"
      , Whitespace
      , Plaintext "a"
      , Whitespace
      , Plaintext "search"
      , Whitespace
      , Plaintext "command,"
      , Whitespace
      , Plaintext "show"
      , Whitespace
      , Plaintext "where"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "pattern"
      , Whitespace
      , Plaintext "matches,"
      , Whitespace
      , Plaintext "as"
      , Whitespace
      , Plaintext "it"
      , Whitespace
      , Plaintext "was"
      , Whitespace
      , Plaintext "typed"
      , Whitespace
      , Plaintext "so"
      , Whitespace
      , Plaintext "far)."
      ]
  , LinkTargets [ "loupe-ignorecase-override" ]
  , Paragraph [ Plaintext "'ignorecase'" ]
  , Paragraph
      [ Plaintext "Turned"
      , Whitespace
      , Plaintext "on"
      , Whitespace
      , Plaintext "(to"
      , Whitespace
      , Plaintext "ignore"
      , Whitespace
      , Plaintext "case"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "search"
      , Whitespace
      , Plaintext "patterns)."
      ]
  , LinkTargets [ "loupe-shortmess-override" ]
  , Paragraph [ Plaintext "'shortmess'" ]
  , Paragraph
      [ Plaintext "Adds"
      , Whitespace
      , Plaintext "\"s\","
      , Whitespace
      , Plaintext "which"
      , Whitespace
      , Plaintext "suppresses"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "display"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "\"search"
      , Whitespace
      , Plaintext "hit"
      , Whitespace
      , Plaintext "BOTTOM,"
      , Whitespace
      , Plaintext "continuing"
      , Whitespace
      , Plaintext "at"
      , Whitespace
      , Plaintext "TOP\""
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "\"search"
      , Whitespace
      , Plaintext "hit"
      , Whitespace
      , Plaintext "TOP,"
      , Whitespace
      , Plaintext "continuing"
      , Whitespace
      , Plaintext "at"
      , Whitespace
      , Plaintext "BOTTOM\""
      , Whitespace
      , Plaintext "messages."
      ]
  , LinkTargets [ "loupe-smartcase-override" ]
  , Paragraph [ Plaintext "'smartcase'" ]
  , Paragraph
      [ Plaintext "Turned"
      , Whitespace
      , Plaintext "on"
      , Whitespace
      , Plaintext "(overrides"
      , Whitespace
      , Plaintext "'ignorecase',"
      , Whitespace
      , Plaintext "making"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "search"
      , Whitespace
      , Plaintext "pattern"
      , Whitespace
      , Plaintext "case-sensitive"
      , Whitespace
      , Plaintext "whenever"
      , Whitespace
      , Plaintext "it"
      , Whitespace
      , Plaintext "containers"
      , Whitespace
      , Plaintext "uppercase"
      , Whitespace
      , Plaintext "characters)."
      ]
  , DedentAnnotation
  , LinkTargets [ "loupe-suppress-overrides" ]
  , SubheadingAnnotation
      "Preventing Loupe overrides from taking effect"
  , Paragraph
      [ Plaintext "To"
      , Whitespace
      , Plaintext "override"
      , Whitespace
      , Plaintext "any"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "these"
      , Whitespace
      , Plaintext "choices,"
      , Whitespace
      , Plaintext "you"
      , Whitespace
      , Plaintext "can"
      , Whitespace
      , Plaintext "place"
      , Whitespace
      , Plaintext "overrides"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "an"
      , Whitespace
      , Link "after-directory"
      , Whitespace
      , Plaintext "(ie."
      , Whitespace
      , Code "~/.vim/after/plugin/loupe.vim"
      , Plaintext ")."
      , Whitespace
      , Plaintext "For"
      , Whitespace
      , Plaintext "example:"
      ]
  , Fenced
      [ " \" Override Loupe's 'history' setting from 1000 to 10000."
      , " set history=10000"
      , ""
      , " \" Reset Loupe's 'incsearch' back to Vim default."
      , " set incsearch&vim"
      , ""
      , " \" Remove unwanted 's' from 'shortmess'."
      , " set shortmess-=s"
      ]
  , HeadingAnnotation "Related"
  , Paragraph
      [ Plaintext "Just"
      , Whitespace
      , Plaintext "as"
      , Whitespace
      , Plaintext "Loupe"
      , Whitespace
      , Plaintext "aims"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "improve"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "within-file"
      , Whitespace
      , Plaintext "search"
      , Whitespace
      , Plaintext "experience,"
      , Whitespace
      , Plaintext "Ferret"
      , Whitespace
      , Plaintext "does"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "same"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "multi-file"
      , Whitespace
      , Plaintext "searching"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "replacing:"
      ]
  , List
      [ ListItem [ Plaintext "https://github.com/wincent/ferret" ] ]
  , HeadingAnnotation "Website"
  , Paragraph
      [ Plaintext "The"
      , Whitespace
      , Plaintext "official"
      , Whitespace
      , Plaintext "Loupe"
      , Whitespace
      , Plaintext "source"
      , Whitespace
      , Plaintext "code"
      , Whitespace
      , Plaintext "repo"
      , Whitespace
      , Plaintext "is"
      , Whitespace
      , Plaintext "at:"
      ]
  , List
      [ ListItem [ Plaintext "http://git.wincent.com/loupe.git" ] ]
  , Paragraph
      [ Plaintext "A"
      , Whitespace
      , Plaintext "mirror"
      , Whitespace
      , Plaintext "exists"
      , Whitespace
      , Plaintext "at:"
      ]
  , List
      [ ListItem [ Plaintext "https://github.com/wincent/loupe" ] ]
  , Paragraph
      [ Plaintext "Official"
      , Whitespace
      , Plaintext "releases"
      , Whitespace
      , Plaintext "are"
      , Whitespace
      , Plaintext "listed"
      , Whitespace
      , Plaintext "at:"
      ]
  , List
      [ ListItem
          [ Plaintext "http://www.vim.org/scripts/script.php?script_id=5215"
          ]
      ]
  , HeadingAnnotation "License"
  , Paragraph
      [ Plaintext "Copyright"
      , Whitespace
      , Plaintext "2015-present"
      , Whitespace
      , Plaintext "Greg"
      , Whitespace
      , Plaintext "Hurrell."
      , Whitespace
      , Plaintext "All"
      , Whitespace
      , Plaintext "rights"
      , Whitespace
      , Plaintext "reserved."
      ]
  , Paragraph
      [ Plaintext "Redistribution"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "use"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "source"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "binary"
      , Whitespace
      , Plaintext "forms,"
      , Whitespace
      , Plaintext "with"
      , Whitespace
      , Plaintext "or"
      , Whitespace
      , Plaintext "without"
      , Whitespace
      , Plaintext "modification,"
      , Whitespace
      , Plaintext "are"
      , Whitespace
      , Plaintext "permitted"
      , Whitespace
      , Plaintext "provided"
      , Whitespace
      , Plaintext "that"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "following"
      , Whitespace
      , Plaintext "conditions"
      , Whitespace
      , Plaintext "are"
      , Whitespace
      , Plaintext "met:"
      ]
  , Paragraph
      [ Plaintext "1."
      , Whitespace
      , Plaintext "Redistributions"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "source"
      , Whitespace
      , Plaintext "code"
      , Whitespace
      , Plaintext "must"
      , Whitespace
      , Plaintext "retain"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "above"
      , Whitespace
      , Plaintext "copyright"
      , Whitespace
      , Plaintext "notice,"
      , Whitespace
      , Plaintext "this"
      , Whitespace
      , Plaintext "list"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "conditions"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "following"
      , Whitespace
      , Plaintext "disclaimer."
      ]
  , Paragraph
      [ Plaintext "2."
      , Whitespace
      , Plaintext "Redistributions"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "binary"
      , Whitespace
      , Plaintext "form"
      , Whitespace
      , Plaintext "must"
      , Whitespace
      , Plaintext "reproduce"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "above"
      , Whitespace
      , Plaintext "copyright"
      , Whitespace
      , Plaintext "notice,"
      , Whitespace
      , Plaintext "this"
      , Whitespace
      , Plaintext "list"
      , Whitespace
      , Plaintext "of"
      , Whitespace
      , Plaintext "conditions"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "following"
      , Whitespace
      , Plaintext "disclaimer"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "documentation"
      , Whitespace
      , Plaintext "and/or"
      , Whitespace
      , Plaintext "other"
      , Whitespace
      , Plaintext "materials"
      , Whitespace
      , Plaintext "provided"
      , Whitespace
      , Plaintext "with"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "distribution."
      ]
  , Paragraph
      [ Plaintext "THIS"
      , Whitespace
      , Plaintext "SOFTWARE"
      , Whitespace
      , Plaintext "IS"
      , Whitespace
      , Plaintext "PROVIDED"
      , Whitespace
      , Plaintext "BY"
      , Whitespace
      , Plaintext "THE"
      , Whitespace
      , Plaintext "COPYRIGHT"
      , Whitespace
      , Plaintext "HOLDERS"
      , Whitespace
      , Plaintext "AND"
      , Whitespace
      , Plaintext "CONTRIBUTORS"
      , Whitespace
      , Plaintext "\"AS"
      , Whitespace
      , Plaintext "IS\""
      , Whitespace
      , Plaintext "AND"
      , Whitespace
      , Plaintext "ANY"
      , Whitespace
      , Plaintext "EXPRESS"
      , Whitespace
      , Plaintext "OR"
      , Whitespace
      , Plaintext "IMPLIED"
      , Whitespace
      , Plaintext "WARRANTIES,"
      , Whitespace
      , Plaintext "INCLUDING,"
      , Whitespace
      , Plaintext "BUT"
      , Whitespace
      , Plaintext "NOT"
      , Whitespace
      , Plaintext "LIMITED"
      , Whitespace
      , Plaintext "TO,"
      , Whitespace
      , Plaintext "THE"
      , Whitespace
      , Plaintext "IMPLIED"
      , Whitespace
      , Plaintext "WARRANTIES"
      , Whitespace
      , Plaintext "OF"
      , Whitespace
      , Plaintext "MERCHANTABILITY"
      , Whitespace
      , Plaintext "AND"
      , Whitespace
      , Plaintext "FITNESS"
      , Whitespace
      , Plaintext "FOR"
      , Whitespace
      , Plaintext "A"
      , Whitespace
      , Plaintext "PARTICULAR"
      , Whitespace
      , Plaintext "PURPOSE"
      , Whitespace
      , Plaintext "ARE"
      , Whitespace
      , Plaintext "DISCLAIMED."
      , Whitespace
      , Plaintext "IN"
      , Whitespace
      , Plaintext "NO"
      , Whitespace
      , Plaintext "EVENT"
      , Whitespace
      , Plaintext "SHALL"
      , Whitespace
      , Plaintext "THE"
      , Whitespace
      , Plaintext "COPYRIGHT"
      , Whitespace
      , Plaintext "HOLDERS"
      , Whitespace
      , Plaintext "OR"
      , Whitespace
      , Plaintext "CONTRIBUTORS"
      , Whitespace
      , Plaintext "BE"
      , Whitespace
      , Plaintext "LIABLE"
      , Whitespace
      , Plaintext "FOR"
      , Whitespace
      , Plaintext "ANY"
      , Whitespace
      , Plaintext "DIRECT,"
      , Whitespace
      , Plaintext "INDIRECT,"
      , Whitespace
      , Plaintext "INCIDENTAL,"
      , Whitespace
      , Plaintext "SPECIAL,"
      , Whitespace
      , Plaintext "EXEMPLARY,"
      , Whitespace
      , Plaintext "OR"
      , Whitespace
      , Plaintext "CONSEQUENTIAL"
      , Whitespace
      , Plaintext "DAMAGES"
      , Whitespace
      , Plaintext "(INCLUDING,"
      , Whitespace
      , Plaintext "BUT"
      , Whitespace
      , Plaintext "NOT"
      , Whitespace
      , Plaintext "LIMITED"
      , Whitespace
      , Plaintext "TO,"
      , Whitespace
      , Plaintext "PROCUREMENT"
      , Whitespace
      , Plaintext "OF"
      , Whitespace
      , Plaintext "SUBSTITUTE"
      , Whitespace
      , Plaintext "GOODS"
      , Whitespace
      , Plaintext "OR"
      , Whitespace
      , Plaintext "SERVICES;"
      , Whitespace
      , Plaintext "LOSS"
      , Whitespace
      , Plaintext "OF"
      , Whitespace
      , Plaintext "USE,"
      , Whitespace
      , Plaintext "DATA,"
      , Whitespace
      , Plaintext "OR"
      , Whitespace
      , Plaintext "PROFITS;"
      , Whitespace
      , Plaintext "OR"
      , Whitespace
      , Plaintext "BUSINESS"
      , Whitespace
      , Plaintext "INTERRUPTION)"
      , Whitespace
      , Plaintext "HOWEVER"
      , Whitespace
      , Plaintext "CAUSED"
      , Whitespace
      , Plaintext "AND"
      , Whitespace
      , Plaintext "ON"
      , Whitespace
      , Plaintext "ANY"
      , Whitespace
      , Plaintext "THEORY"
      , Whitespace
      , Plaintext "OF"
      , Whitespace
      , Plaintext "LIABILITY,"
      , Whitespace
      , Plaintext "WHETHER"
      , Whitespace
      , Plaintext "IN"
      , Whitespace
      , Plaintext "CONTRACT,"
      , Whitespace
      , Plaintext "STRICT"
      , Whitespace
      , Plaintext "LIABILITY,"
      , Whitespace
      , Plaintext "OR"
      , Whitespace
      , Plaintext "TORT"
      , Whitespace
      , Plaintext "(INCLUDING"
      , Whitespace
      , Plaintext "NEGLIGENCE"
      , Whitespace
      , Plaintext "OR"
      , Whitespace
      , Plaintext "OTHERWISE)"
      , Whitespace
      , Plaintext "ARISING"
      , Whitespace
      , Plaintext "IN"
      , Whitespace
      , Plaintext "ANY"
      , Whitespace
      , Plaintext "WAY"
      , Whitespace
      , Plaintext "OUT"
      , Whitespace
      , Plaintext "OF"
      , Whitespace
      , Plaintext "THE"
      , Whitespace
      , Plaintext "USE"
      , Whitespace
      , Plaintext "OF"
      , Whitespace
      , Plaintext "THIS"
      , Whitespace
      , Plaintext "SOFTWARE,"
      , Whitespace
      , Plaintext "EVEN"
      , Whitespace
      , Plaintext "IF"
      , Whitespace
      , Plaintext "ADVISED"
      , Whitespace
      , Plaintext "OF"
      , Whitespace
      , Plaintext "THE"
      , Whitespace
      , Plaintext "POSSIBILITY"
      , Whitespace
      , Plaintext "OF"
      , Whitespace
      , Plaintext "SUCH"
      , Whitespace
      , Plaintext "DAMAGE."
      ]
  , HeadingAnnotation "Development"
  , SubheadingAnnotation "Contributing patches"
  , Paragraph
      [ Plaintext "Patches"
      , Whitespace
      , Plaintext "can"
      , Whitespace
      , Plaintext "be"
      , Whitespace
      , Plaintext "sent"
      , Whitespace
      , Plaintext "via"
      , Whitespace
      , Plaintext "mail"
      , Whitespace
      , Plaintext "to"
      , Whitespace
      , Plaintext "greg@hurrell.net,"
      , Whitespace
      , Plaintext "or"
      , Whitespace
      , Plaintext "as"
      , Whitespace
      , Plaintext "GitHub"
      , Whitespace
      , Plaintext "pull"
      , Whitespace
      , Plaintext "requests"
      , Whitespace
      , Plaintext "at:"
      , Whitespace
      , Plaintext "https://github.com/wincent/loupe/pulls"
      ]
  , SubheadingAnnotation "Cutting a new release"
  , Paragraph
      [ Plaintext "At"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "moment"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Plaintext "release"
      , Whitespace
      , Plaintext "process"
      , Whitespace
      , Plaintext "is"
      , Whitespace
      , Plaintext "manual:"
      ]
  , List
      [ ListItem
          [ Plaintext "Perform"
          , Whitespace
          , Plaintext "final"
          , Whitespace
          , Plaintext "sanity"
          , Whitespace
          , Plaintext "checks"
          , Whitespace
          , Plaintext "and"
          , Whitespace
          , Plaintext "manual"
          , Whitespace
          , Plaintext "testing"
          ]
      , ListItem
          [ Plaintext "Update"
          , Whitespace
          , Plaintext "the"
          , Whitespace
          , Link "loupe-history"
          , Whitespace
          , Plaintext "section"
          , Whitespace
          , Plaintext "of"
          , Whitespace
          , Plaintext "the"
          , Whitespace
          , Plaintext "documentation"
          ]
      , ListItem
          [ Plaintext "Verify"
          , Whitespace
          , Plaintext "clean"
          , Whitespace
          , Plaintext "work"
          , Whitespace
          , Plaintext "tree:"
          ]
      ]
  , Fenced [ "git status" ]
  , List
      [ ListItem
          [ Plaintext "Tag"
          , Whitespace
          , Plaintext "the"
          , Whitespace
          , Plaintext "release:"
          ]
      ]
  , Fenced [ "git tag -s -m \"$VERSION release\" $VERSION" ]
  , List
      [ ListItem
          [ Plaintext "Publish"
          , Whitespace
          , Plaintext "the"
          , Whitespace
          , Plaintext "code:"
          ]
      ]
  , Fenced
      [ "git push origin master --follow-tags"
      , "git push github master --follow-tags"
      ]
  , List
      [ ListItem
          [ Plaintext "Produce"
          , Whitespace
          , Plaintext "the"
          , Whitespace
          , Plaintext "release"
          , Whitespace
          , Plaintext "archive:"
          ]
      ]
  , Fenced [ "git archive -o loupe-$VERSION.zip HEAD -- ." ]
  , List
      [ ListItem
          [ Plaintext "Upload"
          , Whitespace
          , Plaintext "to"
          , Whitespace
          , Plaintext "http://www.vim.org/scripts/script.php?script_id=5215"
          ]
      ]
  , HeadingAnnotation "Authors"
  , Paragraph
      [ Plaintext "Loupe"
      , Whitespace
      , Plaintext "is"
      , Whitespace
      , Plaintext "written"
      , Whitespace
      , Plaintext "and"
      , Whitespace
      , Plaintext "maintained"
      , Whitespace
      , Plaintext "by"
      , Whitespace
      , Plaintext "Greg"
      , Whitespace
      , Plaintext "Hurrell"
      , Whitespace
      , Plaintext "<greg@hurrell.net>."
      ]
  , Paragraph
      [ Plaintext "The"
      , Whitespace
      , Plaintext "original"
      , Whitespace
      , Plaintext "idea"
      , Whitespace
      , Plaintext "for"
      , Whitespace
      , Plaintext "the"
      , Whitespace
      , Link "g:LoupeHighlightGroup"
      , Whitespace
      , Plaintext "feature"
      , Whitespace
      , Plaintext "was"
      , Whitespace
      , Plaintext "taken"
      , Whitespace
      , Plaintext "from"
      , Whitespace
      , Plaintext "Damian"
      , Whitespace
      , Plaintext "Conway's"
      , Whitespace
      , Plaintext "Vim"
      , Whitespace
      , Plaintext "set-up:"
      ]
  , List
      [ ListItem
          [ Plaintext
              "https://github.com/thoughtstream/Damian-Conway-s-Vim-Setup/blob/master/plugin/hlnext.vim"
          ]
      ]
  , Paragraph
      [ Plaintext "Which"
      , Whitespace
      , Plaintext "he"
      , Whitespace
      , Plaintext "discussed"
      , Whitespace
      , Plaintext "in"
      , Whitespace
      , Plaintext "his"
      , Whitespace
      , Plaintext "\"More"
      , Whitespace
      , Plaintext "Instantly"
      , Whitespace
      , Plaintext "Better"
      , Whitespace
      , Plaintext "Vim\""
      , Whitespace
      , Plaintext "presentation"
      , Whitespace
      , Plaintext "at"
      , Whitespace
      , Plaintext "OSCON"
      , Whitespace
      , Plaintext "2013:"
      ]
  , List
      [ ListItem
          [ Plaintext "https://www.youtube.com/watch?v=aHm36-na4-4" ]
      ]
  , HeadingAnnotation "History"
  , Paragraph
      [ Plaintext "1.1"
      , Whitespace
      , Plaintext "(15"
      , Whitespace
      , Plaintext "June"
      , Whitespace
      , Plaintext "2016)"
      ]
  , List
      [ ListItem
          [ Plaintext "Make"
          , Whitespace
          , Plaintext "compatible"
          , Whitespace
          , Plaintext "with"
          , Whitespace
          , Plaintext "older"
          , Whitespace
          , Plaintext "versions"
          , Whitespace
          , Plaintext "of"
          , Whitespace
          , Plaintext "Vim"
          , Whitespace
          , Plaintext "that"
          , Whitespace
          , Plaintext "do"
          , Whitespace
          , Plaintext "not"
          , Whitespace
          , Plaintext "have"
          , Whitespace
          , Link "v:hlsearch"
          , Plaintext "."
          ]
      , ListItem
          [ Plaintext "Add"
          , Whitespace
          , Plaintext "support"
          , Whitespace
          , Plaintext "for"
          , Whitespace
          , Plaintext "special"
          , Whitespace
          , Plaintext "delimiters"
          , Whitespace
          , Plaintext "with"
          , Whitespace
          , Link ":substitute"
          , Whitespace
          , Plaintext "command."
          ]
      ]
  , SubheadingAnnotation "1.0 (28 December 2015)"
  , List
      [ ListItem
          [ Plaintext "Renamed"
          , Whitespace
          , Plaintext "the"
          , Whitespace
          , Link "<Plug>LoupeClearHighlight"
          , Whitespace
          , Plaintext "mapping"
          , Whitespace
          , Plaintext "to"
          , Whitespace
          , Link "<Plug>(LoupeClearHighlight)"
          , Plaintext "."
          ]
      ]
  , SubheadingAnnotation "0.1 (5 July 2015)"
  , List
      [ ListItem
          [ Plaintext "Initial"
          , Whitespace
          , Plaintext "release,"
          , Whitespace
          , Plaintext "extracted"
          , Whitespace
          , Plaintext "from"
          , Whitespace
          , Plaintext "my"
          , Whitespace
          , Plaintext "dotfiles"
          , Whitespace
          , Plaintext "(https://github.com/wincent/wincent)."
          ]
      ]
  ]