]> git.wincent.com - docvim.git/blob - tests/fixtures/integration/loupe/golden/ast.golden
Tweak function and command output in Vim help printer to stand out more
[docvim.git] / tests / fixtures / integration / loupe / golden / ast.golden
1 Project
2   [ DocBlock
3       [ PluginAnnotation "loupe" "Loupe plug-in for Vim"
4       , TOC
5           [ "Intro"
6           , "Installation"
7           , "Mappings"
8           , "Options"
9           , "Functions"
10           , "Overrides"
11           , "Related"
12           , "Website"
13           , "License"
14           , "Development"
15           , "Authors"
16           , "History"
17           ]
18       ]
19   , HeadingAnnotation "Intro"
20   , Blockquote
21       [ Paragraph
22           [ Plaintext "\"loupe"
23           , Whitespace
24           , Plaintext "(noun)"
25           , BreakTag
26           , Plaintext "a"
27           , Whitespace
28           , Plaintext "small"
29           , Whitespace
30           , Plaintext "magnifying"
31           , Whitespace
32           , Plaintext "glass"
33           , Whitespace
34           , Plaintext "used"
35           , Whitespace
36           , Plaintext "by"
37           , Whitespace
38           , Plaintext "jewelers"
39           , Whitespace
40           , Plaintext "and"
41           , Whitespace
42           , Plaintext "watchmakers.\""
43           ]
44       ]
45   , LinkTargets [ "loupe-features" ]
46   , Paragraph
47       [ Plaintext "Loupe"
48       , Whitespace
49       , Plaintext "enhances"
50       , Whitespace
51       , Plaintext "Vim's"
52       , Whitespace
53       , Link "search-commands"
54       , Whitespace
55       , Plaintext "in"
56       , Whitespace
57       , Plaintext "four"
58       , Whitespace
59       , Plaintext "ways:"
60       ]
61   , SubheadingAnnotation
62       "1. Makes the currently selected match easier to see"
63   , Paragraph
64       [ Plaintext "When"
65       , Whitespace
66       , Plaintext "searching"
67       , Whitespace
68       , Plaintext "using"
69       , Whitespace
70       , Link "/"
71       , Plaintext ","
72       , Whitespace
73       , Link "?"
74       , Plaintext ","
75       , Whitespace
76       , Link "star"
77       , Plaintext ","
78       , Whitespace
79       , Link "#"
80       , Plaintext ","
81       , Whitespace
82       , Link "n"
83       , Plaintext ","
84       , Whitespace
85       , Link "N"
86       , Whitespace
87       , Plaintext "or"
88       , Whitespace
89       , Plaintext "similar,"
90       , Whitespace
91       , Plaintext "it"
92       , Whitespace
93       , Plaintext "can"
94       , Whitespace
95       , Plaintext "be"
96       , Whitespace
97       , Plaintext "hard"
98       , Whitespace
99       , Plaintext "to"
100       , Whitespace
101       , Plaintext "see"
102       , Whitespace
103       , Plaintext "the"
104       , Whitespace
105       , Plaintext "\"current\""
106       , Whitespace
107       , Plaintext "match"
108       , Whitespace
109       , Plaintext "from"
110       , Whitespace
111       , Plaintext "among"
112       , Whitespace
113       , Plaintext "all"
114       , Whitespace
115       , Plaintext "the"
116       , Whitespace
117       , Plaintext "matches"
118       , Whitespace
119       , Plaintext "that"
120       , Whitespace
121       , Plaintext "'hlsearch'"
122       , Whitespace
123       , Plaintext "highlights."
124       , Whitespace
125       , Plaintext "Loupe"
126       , Whitespace
127       , Plaintext "makes"
128       , Whitespace
129       , Plaintext "the"
130       , Whitespace
131       , Plaintext "currently"
132       , Whitespace
133       , Plaintext "selected"
134       , Whitespace
135       , Plaintext "match"
136       , Whitespace
137       , Plaintext "easier"
138       , Whitespace
139       , Plaintext "to"
140       , Whitespace
141       , Plaintext "see"
142       , Whitespace
143       , Plaintext "by:"
144       ]
145   , List
146       [ ListItem
147           [ Plaintext "Applying"
148           , Whitespace
149           , Plaintext "a"
150           , Whitespace
151           , Plaintext "different"
152           , Whitespace
153           , Link ":highlight"
154           , Whitespace
155           , Plaintext "group"
156           , Whitespace
157           , Plaintext "(by"
158           , Whitespace
159           , Plaintext "default,"
160           , Whitespace
161           , Link "hl-IncSearch"
162           , Plaintext ")"
163           , Whitespace
164           , Plaintext "to"
165           , Whitespace
166           , Plaintext "the"
167           , Whitespace
168           , Plaintext "match"
169           , Whitespace
170           , Plaintext "under"
171           , Whitespace
172           , Plaintext "the"
173           , Whitespace
174           , Plaintext "cursor."
175           ]
176       , ListItem
177           [ Plaintext "Keeping"
178           , Whitespace
179           , Plaintext "the"
180           , Whitespace
181           , Plaintext "matching"
182           , Whitespace
183           , Plaintext "line"
184           , Whitespace
185           , Plaintext "centered"
186           , Whitespace
187           , Plaintext "within"
188           , Whitespace
189           , Plaintext "the"
190           , Whitespace
191           , Plaintext "window"
192           , Whitespace
193           , Plaintext "when"
194           , Whitespace
195           , Plaintext "jumping"
196           , Whitespace
197           , Plaintext "between"
198           , Whitespace
199           , Plaintext "matches"
200           , Whitespace
201           , Plaintext "with"
202           , Whitespace
203           , Link "n"
204           , Whitespace
205           , Plaintext "and"
206           , Whitespace
207           , Link "N"
208           , Plaintext "."
209           ]
210       ]
211   , SubheadingAnnotation "2. Applies sane pattern syntax by default"
212   , Paragraph
213       [ Plaintext "Loupe"
214       , Whitespace
215       , Plaintext "makes"
216       , Whitespace
217       , Plaintext "\"very"
218       , Whitespace
219       , Plaintext "magic\""
220       , Whitespace
221       , Plaintext "("
222       , Link "/\\v"
223       , Plaintext ")"
224       , Whitespace
225       , Plaintext "syntax"
226       , Whitespace
227       , Plaintext "apply"
228       , Whitespace
229       , Plaintext "by"
230       , Whitespace
231       , Plaintext "default"
232       , Whitespace
233       , Plaintext "when"
234       , Whitespace
235       , Plaintext "searching."
236       , Whitespace
237       , Plaintext "This"
238       , Whitespace
239       , Plaintext "is"
240       , Whitespace
241       , Plaintext "true"
242       , Whitespace
243       , Plaintext "even"
244       , Whitespace
245       , Plaintext "if"
246       , Whitespace
247       , Plaintext "you"
248       , Whitespace
249       , Plaintext "initiate"
250       , Whitespace
251       , Plaintext "a"
252       , Whitespace
253       , Plaintext "search"
254       , Whitespace
255       , Plaintext "via"
256       , Whitespace
257       , Plaintext "a"
258       , Whitespace
259       , Plaintext "novel"
260       , Whitespace
261       , Plaintext "means,"
262       , Whitespace
263       , Plaintext "such"
264       , Whitespace
265       , Plaintext "as"
266       , Whitespace
267       , Plaintext "from"
268       , Whitespace
269       , Plaintext "a"
270       , Whitespace
271       , Plaintext "visual"
272       , Whitespace
273       , Plaintext "selection"
274       , Whitespace
275       , Plaintext "or"
276       , Whitespace
277       , Plaintext "with"
278       , Whitespace
279       , Plaintext "a"
280       , Whitespace
281       , Plaintext "complicated"
282       , Whitespace
283       , Link ":range"
284       , Whitespace
285       , Plaintext "prefix."
286       ]
287   , Paragraph
288       [ Plaintext "This"
289       , Whitespace
290       , Plaintext "means"
291       , Whitespace
292       , Plaintext "that"
293       , Whitespace
294       , Plaintext "you"
295       , Whitespace
296       , Plaintext "can"
297       , Whitespace
298       , Plaintext "use"
299       , Whitespace
300       , Plaintext "a"
301       , Whitespace
302       , Plaintext "pattern"
303       , Whitespace
304       , Plaintext "syntax"
305       , Whitespace
306       , Plaintext "closer"
307       , Whitespace
308       , Plaintext "to"
309       , Whitespace
310       , Plaintext "the"
311       , Whitespace
312       , Plaintext "familiar"
313       , Whitespace
314       , Plaintext "regular"
315       , Whitespace
316       , Plaintext "expression"
317       , Whitespace
318       , Plaintext "syntax"
319       , Whitespace
320       , Plaintext "from"
321       , Whitespace
322       , Plaintext "languages"
323       , Whitespace
324       , Plaintext "such"
325       , Whitespace
326       , Plaintext "as"
327       , Whitespace
328       , Plaintext "Perl,"
329       , Whitespace
330       , Plaintext "Ruby,"
331       , Whitespace
332       , Plaintext "JavaScript"
333       , Whitespace
334       , Plaintext "(indeed,"
335       , Whitespace
336       , Plaintext "most"
337       , Whitespace
338       , Plaintext "other"
339       , Whitespace
340       , Plaintext "modern"
341       , Whitespace
342       , Plaintext "languages"
343       , Whitespace
344       , Plaintext "that"
345       , Whitespace
346       , Plaintext "support"
347       , Whitespace
348       , Plaintext "regular"
349       , Whitespace
350       , Plaintext "expressions)."
351       ]
352   , SubheadingAnnotation
353       "3. Provides a shortcut to remove search highlighting"
354   , Paragraph
355       [ Plaintext "Loupe"
356       , Whitespace
357       , Plaintext "maps"
358       , Whitespace
359       , Plaintext "<leader>n"
360       , Whitespace
361       , Plaintext "to"
362       , Whitespace
363       , Plaintext "quickly"
364       , Whitespace
365       , Plaintext "remove"
366       , Whitespace
367       , Plaintext "all"
368       , Whitespace
369       , Plaintext "'hlsearch'"
370       , Whitespace
371       , Plaintext "highlighting"
372       , Whitespace
373       , Plaintext "(although"
374       , Whitespace
375       , Plaintext "you"
376       , Whitespace
377       , Plaintext "can"
378       , Whitespace
379       , Plaintext "provide"
380       , Whitespace
381       , Plaintext "an"
382       , Whitespace
383       , Plaintext "alternative"
384       , Whitespace
385       , Plaintext "mapping"
386       , Whitespace
387       , Plaintext "of"
388       , Whitespace
389       , Plaintext "your"
390       , Whitespace
391       , Plaintext "choosing"
392       , Whitespace
393       , Plaintext "or"
394       , Whitespace
395       , Plaintext "suppress"
396       , Whitespace
397       , Plaintext "the"
398       , Whitespace
399       , Plaintext "feature"
400       , Whitespace
401       , Plaintext "entirely)."
402       ]
403   , SubheadingAnnotation
404       "4. Sensible defaults for search-related features"
405   , Paragraph
406       [ Plaintext "Loupe"
407       , Whitespace
408       , Plaintext "provides"
409       , Whitespace
410       , Plaintext "reasonable"
411       , Whitespace
412       , Plaintext "defaults"
413       , Whitespace
414       , Plaintext "for"
415       , Whitespace
416       , Plaintext "most"
417       , Whitespace
418       , Plaintext "search-related"
419       , Whitespace
420       , Plaintext "Vim"
421       , Whitespace
422       , Plaintext "settings"
423       , Whitespace
424       , Plaintext "to"
425       , Whitespace
426       , Plaintext "provide"
427       , Whitespace
428       , Plaintext "a"
429       , Whitespace
430       , Plaintext "good"
431       , Whitespace
432       , Plaintext "\"out"
433       , Whitespace
434       , Plaintext "of"
435       , Whitespace
436       , Plaintext "the"
437       , Whitespace
438       , Plaintext "box\""
439       , Whitespace
440       , Plaintext "experience."
441       , Whitespace
442       , Plaintext "For"
443       , Whitespace
444       , Plaintext "more"
445       , Whitespace
446       , Plaintext "details,"
447       , Whitespace
448       , Plaintext "or"
449       , Whitespace
450       , Plaintext "to"
451       , Whitespace
452       , Plaintext "see"
453       , Whitespace
454       , Plaintext "how"
455       , Whitespace
456       , Plaintext "to"
457       , Whitespace
458       , Plaintext "override"
459       , Whitespace
460       , Plaintext "Loupe's"
461       , Whitespace
462       , Plaintext "settings,"
463       , Whitespace
464       , Plaintext "see"
465       , Whitespace
466       , Link "loupe-overrides"
467       , Plaintext "."
468       ]
469   , HeadingAnnotation "Installation"
470   , Paragraph
471       [ Plaintext "To"
472       , Whitespace
473       , Plaintext "install"
474       , Whitespace
475       , Plaintext "Loupe,"
476       , Whitespace
477       , Plaintext "use"
478       , Whitespace
479       , Plaintext "your"
480       , Whitespace
481       , Plaintext "plug-in"
482       , Whitespace
483       , Plaintext "management"
484       , Whitespace
485       , Plaintext "system"
486       , Whitespace
487       , Plaintext "of"
488       , Whitespace
489       , Plaintext "choice."
490       ]
491   , Paragraph
492       [ Plaintext "If"
493       , Whitespace
494       , Plaintext "you"
495       , Whitespace
496       , Plaintext "don't"
497       , Whitespace
498       , Plaintext "have"
499       , Whitespace
500       , Plaintext "a"
501       , Whitespace
502       , Plaintext "\"plug-in"
503       , Whitespace
504       , Plaintext "management"
505       , Whitespace
506       , Plaintext "system"
507       , Whitespace
508       , Plaintext "of"
509       , Whitespace
510       , Plaintext "choice\","
511       , Whitespace
512       , Plaintext "I"
513       , Whitespace
514       , Plaintext "recommend"
515       , Whitespace
516       , Plaintext "Pathogen"
517       , Whitespace
518       , Plaintext "(https://github.com/tpope/vim-pathogen)"
519       , Whitespace
520       , Plaintext "due"
521       , Whitespace
522       , Plaintext "to"
523       , Whitespace
524       , Plaintext "its"
525       , Whitespace
526       , Plaintext "simplicity"
527       , Whitespace
528       , Plaintext "and"
529       , Whitespace
530       , Plaintext "robustness."
531       , Whitespace
532       , Plaintext "Assuming"
533       , Whitespace
534       , Plaintext "that"
535       , Whitespace
536       , Plaintext "you"
537       , Whitespace
538       , Plaintext "have"
539       , Whitespace
540       , Plaintext "Pathogen"
541       , Whitespace
542       , Plaintext "installed"
543       , Whitespace
544       , Plaintext "and"
545       , Whitespace
546       , Plaintext "configured,"
547       , Whitespace
548       , Plaintext "and"
549       , Whitespace
550       , Plaintext "that"
551       , Whitespace
552       , Plaintext "you"
553       , Whitespace
554       , Plaintext "want"
555       , Whitespace
556       , Plaintext "to"
557       , Whitespace
558       , Plaintext "install"
559       , Whitespace
560       , Plaintext "Loupe"
561       , Whitespace
562       , Plaintext "into"
563       , Whitespace
564       , Code "~/.vim/bundle"
565       , Plaintext ","
566       , Whitespace
567       , Plaintext "you"
568       , Whitespace
569       , Plaintext "can"
570       , Whitespace
571       , Plaintext "do"
572       , Whitespace
573       , Plaintext "so"
574       , Whitespace
575       , Plaintext "with:"
576       ]
577   , Fenced
578       [ "git clone https://github.com/wincent/loupe.git ~/.vim/bundle/loupe"
579       ]
580   , Paragraph
581       [ Plaintext "Alternatively,"
582       , Whitespace
583       , Plaintext "if"
584       , Whitespace
585       , Plaintext "you"
586       , Whitespace
587       , Plaintext "use"
588       , Whitespace
589       , Plaintext "a"
590       , Whitespace
591       , Plaintext "Git"
592       , Whitespace
593       , Plaintext "submodule"
594       , Whitespace
595       , Plaintext "for"
596       , Whitespace
597       , Plaintext "each"
598       , Whitespace
599       , Plaintext "Vim"
600       , Whitespace
601       , Plaintext "plug-in,"
602       , Whitespace
603       , Plaintext "you"
604       , Whitespace
605       , Plaintext "could"
606       , Whitespace
607       , Plaintext "do"
608       , Whitespace
609       , Plaintext "the"
610       , Whitespace
611       , Plaintext "following"
612       , Whitespace
613       , Plaintext "after"
614       , Whitespace
615       , Code "cd"
616       , Plaintext "-ing"
617       , Whitespace
618       , Plaintext "into"
619       , Whitespace
620       , Plaintext "the"
621       , Whitespace
622       , Plaintext "top-level"
623       , Whitespace
624       , Plaintext "of"
625       , Whitespace
626       , Plaintext "your"
627       , Whitespace
628       , Plaintext "Git"
629       , Whitespace
630       , Plaintext "superproject:"
631       ]
632   , Fenced
633       [ "git submodule add https://github.com/wincent/loupe.git ~/vim/bundle/loupe"
634       , "git submodule init"
635       ]
636   , Paragraph
637       [ Plaintext "To"
638       , Whitespace
639       , Plaintext "generate"
640       , Whitespace
641       , Plaintext "help"
642       , Whitespace
643       , Plaintext "tags"
644       , Whitespace
645       , Plaintext "under"
646       , Whitespace
647       , Plaintext "Pathogen,"
648       , Whitespace
649       , Plaintext "you"
650       , Whitespace
651       , Plaintext "can"
652       , Whitespace
653       , Plaintext "do"
654       , Whitespace
655       , Plaintext "so"
656       , Whitespace
657       , Plaintext "from"
658       , Whitespace
659       , Plaintext "inside"
660       , Whitespace
661       , Plaintext "Vim"
662       , Whitespace
663       , Plaintext "with:"
664       ]
665   , Fenced [ ":call pathogen#helptags()" ]
666   , Project
667       [ Unit
668           [ FunctionDeclaration
669               { functionBang = True
670               , functionName = "loupe#hlmatch"
671               , functionArguments = ArgumentList []
672               , functionAttributes = [ "abort" ]
673               , functionBody =
674                   [ Empty
675                   , LetStatement
676                       { letLexpr = "l:highlight"
677                       , letValue = "get(g:, 'LoupeHighlightGroup', 'IncSearch')"
678                       }
679                   , GenericStatement "if empty(l:highlight)"
680                   , GenericStatement "return"
681                   , GenericStatement "endif"
682                   , GenericStatement "if has('autocmd')"
683                   , GenericStatement "augroup LoupeHightlightMatch"
684                   , GenericStatement "autocmd!"
685                   , GenericStatement "augroup END"
686                   , GenericStatement "endif"
687                   , GenericStatement "call loupe#private#clear_highlight()"
688                   , LetStatement
689                       { letLexpr = "l:pattern" , letValue = "'\\c\\%#' . @/" }
690                   , GenericStatement "if exists('*matchadd')"
691                   , LetStatement
692                       { letLexpr = "w:loupe_hlmatch"
693                       , letValue = "matchadd(l:highlight, l:pattern)"
694                       }
695                   , GenericStatement "endif"
696                   ]
697               }
698           ]
699       , Unit
700           [ FunctionDeclaration
701               { functionBang = True
702               , functionName = "loupe#private#very_magic_slash"
703               , functionArguments = ArgumentList [ Argument "slash" ]
704               , functionAttributes = [ "abort" ]
705               , functionBody =
706                   [ GenericStatement "if getcmdtype() != ':'"
707                   , GenericStatement "return a:slash"
708                   , GenericStatement "endif"
709                   , LetStatement { letLexpr = "l:pos" , letValue = "getcmdpos()" }
710                   , LetStatement { letLexpr = "l:cmd" , letValue = "getcmdline()" }
711                   , GenericStatement "if len(l:cmd) + 1 != l:pos"
712                   , GenericStatement "return a:slash"
713                   , GenericStatement "endif"
714                   , GenericStatement "while 1"
715                   , LetStatement
716                       { letLexpr = "l:stripped" , letValue = "s:strip_ranges(l:cmd)" }
717                   , GenericStatement "if l:stripped ==# l:cmd"
718                   , GenericStatement "break"
719                   , GenericStatement "else"
720                   , LetStatement { letLexpr = "l:cmd" , letValue = "l:stripped" }
721                   , GenericStatement "endif"
722                   , GenericStatement "endwhile"
723                   , GenericStatement "if index(['g', 's', 'v'], l:cmd) != -1"
724                   , GenericStatement
725                       "return loupe#private#prepare_highlight(a:slash . '\\v')"
726                   , GenericStatement "endif"
727                   , GenericStatement "return a:slash"
728                   ]
729               }
730           , FunctionDeclaration
731               { functionBang = True
732               , functionName = "s:strip_ranges"
733               , functionArguments = ArgumentList [ Argument "cmdline" ]
734               , functionAttributes = []
735               , functionBody =
736                   [ LetStatement { letLexpr = "l:cmdline" , letValue = "a:cmdline" }
737                   , LetStatement
738                       { letLexpr = "l:modifier" , letValue = "'\\([+-]\\d*\\)*'" }
739                   , LetStatement
740                       { letLexpr = "l:cmdline"
741                       , letValue =
742                           "substitute(l:cmdline, '^\\d\\+' . l:modifier, '', '') \" line number"
743                       }
744                   , LetStatement
745                       { letLexpr = "l:cmdline"
746                       , letValue =
747                           "substitute(l:cmdline, '^\\.' . l:modifier, '', '') \" current line"
748                       }
749                   , LetStatement
750                       { letLexpr = "l:cmdline"
751                       , letValue =
752                           "substitute(l:cmdline, '^$' . l:modifier, '', '') \" last line in file"
753                       }
754                   , LetStatement
755                       { letLexpr = "l:cmdline"
756                       , letValue =
757                           "substitute(l:cmdline, '^%' . l:modifier, '', '') \" entire file"
758                       }
759                   , LetStatement
760                       { letLexpr = "l:cmdline"
761                       , letValue =
762                           "substitute(l:cmdline, \"^'[a-z]\\\\c\" . l:modifier, '', '') \" mark t (or T)"
763                       }
764                   , LetStatement
765                       { letLexpr = "l:cmdline"
766                       , letValue =
767                           "substitute(l:cmdline, \"^'[<>]\" . l:modifier, '', '') \" visual selection marks"
768                       }
769                   , LetStatement
770                       { letLexpr = "l:cmdline"
771                       , letValue =
772                           "substitute(l:cmdline, '^/[^/]\\+/' . l:modifier, '', '') \" /{pattern}/"
773                       }
774                   , LetStatement
775                       { letLexpr = "l:cmdline"
776                       , letValue =
777                           "substitute(l:cmdline, '^?[^?]\\+?' . l:modifier, '', '') \" ?{pattern}?"
778                       }
779                   , LetStatement
780                       { letLexpr = "l:cmdline"
781                       , letValue =
782                           "substitute(l:cmdline, '^\\\\/' . l:modifier, '', '') \" \\/ (next match of previous pattern)"
783                       }
784                   , LetStatement
785                       { letLexpr = "l:cmdline"
786                       , letValue =
787                           "substitute(l:cmdline, '^\\\\?' . l:modifier, '', '') \" \\? (last match of previous pattern)"
788                       }
789                   , LetStatement
790                       { letLexpr = "l:cmdline"
791                       , letValue =
792                           "substitute(l:cmdline, '^\\\\&' . l:modifier, '', '') \" \\& (last match of previous substitution)"
793                       }
794                   , LetStatement
795                       { letLexpr = "l:cmdline"
796                       , letValue = "substitute(l:cmdline, '^,', '', '') \" , (separator)"
797                       }
798                   , LetStatement
799                       { letLexpr = "l:cmdline"
800                       , letValue = "substitute(l:cmdline, '^;', '', '') \" ; (separator)"
801                       }
802                   , GenericStatement "return l:cmdline"
803                   ]
804               }
805           , FunctionDeclaration
806               { functionBang = True
807               , functionName = "loupe#private#prepare_highlight"
808               , functionArguments = ArgumentList [ Argument "result" ]
809               , functionAttributes = [ "abort" ]
810               , functionBody =
811                   [ GenericStatement "if has('autocmd')"
812                   , GenericStatement "augroup LoupeHightlightMatch"
813                   , GenericStatement "autocmd!"
814                   , GenericStatement "autocmd CursorMoved * :call loupe#hlmatch()"
815                   , GenericStatement "augroup END"
816                   , GenericStatement "endif"
817                   , GenericStatement "return a:result"
818                   ]
819               }
820           , FunctionDeclaration
821               { functionBang = True
822               , functionName = "loupe#private#clear_highlight"
823               , functionArguments = ArgumentList []
824               , functionAttributes = [ "abort" ]
825               , functionBody =
826                   [ GenericStatement "if exists('w:loupe_hlmatch')"
827                   , GenericStatement "try"
828                   , GenericStatement "call matchdelete(w:loupe_hlmatch)"
829                   , GenericStatement "catch /\\v<(E802|E803)>/"
830                   , GenericStatement "finally"
831                   , UnletStatement
832                       { unletBang = False , unletBody = "w:loupe_hlmatch" }
833                   , GenericStatement "endtry"
834                   , GenericStatement "endif"
835                   ]
836               }
837           , FunctionDeclaration
838               { functionBang = True
839               , functionName = "loupe#private#cleanup"
840               , functionArguments = ArgumentList []
841               , functionAttributes = [ "abort" ]
842               , functionBody =
843                   [ GenericStatement "if !exists('v:hlsearch') || !v:hlsearch"
844                   , GenericStatement "call loupe#private#clear_highlight()"
845                   , GenericStatement "endif"
846                   ]
847               }
848           ]
849       , Unit
850           [ GenericStatement
851               "if exists('g:LoupeLoaded') || &compatible || v:version < 700"
852           , GenericStatement "finish"
853           , GenericStatement "endif"
854           , LetStatement { letLexpr = "g:LoupeLoaded" , letValue = "1" }
855           , LetStatement
856               { letLexpr = "s:cpoptions" , letValue = "&cpoptions" }
857           , GenericStatement "set cpoptions&vim"
858           , GenericStatement "if &history < 1000"
859           , GenericStatement
860               "set history=1000 \" Longer search and command history (default is 50)."
861           , GenericStatement "endif"
862           , GenericStatement "if has('extra_search')"
863           , GenericStatement "set hlsearch \" Highlight search strings."
864           , GenericStatement
865               "set incsearch \" Incremental search (\"find as you type\")."
866           , GenericStatement "endif"
867           , GenericStatement "set ignorecase \" Ignore case when searching."
868           , GenericStatement
869               "set shortmess+=s \" Don't echo search wrap messages."
870           , GenericStatement
871               "set smartcase \" Case-sensitive search if search string includes a capital letter."
872           , LetStatement
873               { letLexpr = "s:clear"
874               , letValue = "get(g:, 'LoupeClearHighlightMap', 1)"
875               }
876           , GenericStatement "if s:clear"
877           , GenericStatement
878               "if !hasmapto('<Plug>(LoupeClearHighlight)') && maparg('<leader>n', 'n') ==# ''"
879           , GenericStatement
880               "nmap <silent> <unique> <leader>n <Plug>(LoupeClearHighlight)"
881           , GenericStatement "endif"
882           , GenericStatement "endif"
883           , GenericStatement
884               "nnoremap <silent> <Plug>(LoupeClearHighlight) :nohlsearch<bar> call loupe#private#clear_highlight()<CR>"
885           , GenericStatement
886               "cnoreabbrev <silent> <expr> noh (getcmdtype() == ':' && getcmdpos() == 4 ? 'noh <bar> call loupe#private#clear_highlight()' : 'noh')"
887           , GenericStatement
888               "cnoreabbrev <silent> <expr> nohl (getcmdtype() == ':' && getcmdpos() == 5 ? 'nohl <bar> call loupe#private#clear_highlight()' : 'nohl')"
889           , GenericStatement
890               "cnoreabbrev <silent> <expr> nohls (getcmdtype() == ':' && getcmdpos() == 6 ? 'nohls <bar> call loupe#private#clear_highlight()' : 'nohls')"
891           , GenericStatement
892               "cnoreabbrev <silent> <expr> nohlse (getcmdtype() == ':' && getcmdpos() == 7 ? 'nohlse <bar> call loupe#private#clear_highlight()' : 'nohlse')"
893           , GenericStatement
894               "cnoreabbrev <silent> <expr> nohlsea (getcmdtype() == ':' && getcmdpos() == 8 ? 'nohlsea <bar> call loupe#private#clear_highlight()' : 'nohlsea')"
895           , GenericStatement
896               "cnoreabbrev <silent> <expr> nohlsear (getcmdtype() == ':' && getcmdpos() == 9 ? 'nohlsear <bar> call loupe#private#clear_highlight()' : 'nohlsear')"
897           , GenericStatement
898               "cnoreabbrev <silent> <expr> nohlsearc (getcmdtype() == ':' && getcmdpos() == 10 ? 'nohlsearc <bar> call loupe#private#clear_highlight()' : 'nohlsearc')"
899           , GenericStatement
900               "cnoreabbrev <silent> <expr> nohlsearch (getcmdtype() == ':' && getcmdpos() == 11 ? 'nohlsearch <bar> call loupe#private#clear_highlight()' : 'nohlsearch')"
901           , FunctionDeclaration
902               { functionBang = False
903               , functionName = "s:MagicString"
904               , functionArguments = ArgumentList []
905               , functionAttributes = []
906               , functionBody =
907                   [ LetStatement
908                       { letLexpr = "s:magic"
909                       , letValue = "get(g:, 'LoupeVeryMagic', 1)"
910                       }
911                   , GenericStatement "return s:magic ? '\\v' : ''"
912                   ]
913               }
914           , GenericStatement
915               "nnoremap <expr> / loupe#private#prepare_highlight('/' . <SID>MagicString())"
916           , GenericStatement
917               "nnoremap <expr> ? loupe#private#prepare_highlight('?' . <SID>MagicString())"
918           , GenericStatement
919               "xnoremap <expr> / loupe#private#prepare_highlight('/' . <SID>MagicString())"
920           , GenericStatement
921               "xnoremap <expr> ? loupe#private#prepare_highlight('?' . <SID>MagicString())"
922           , GenericStatement "if !empty(s:MagicString())"
923           , GenericStatement
924               "cnoremap <expr> ! loupe#private#very_magic_slash('!')"
925           , GenericStatement
926               "cnoremap <expr> # loupe#private#very_magic_slash('#')"
927           , GenericStatement
928               "cnoremap <expr> $ loupe#private#very_magic_slash('$')"
929           , GenericStatement
930               "cnoremap <expr> % loupe#private#very_magic_slash('%')"
931           , GenericStatement
932               "cnoremap <expr> & loupe#private#very_magic_slash('&')"
933           , GenericStatement
934               "cnoremap <expr> ' loupe#private#very_magic_slash(\"'\")"
935           , GenericStatement
936               "cnoremap <expr> ( loupe#private#very_magic_slash('(')"
937           , GenericStatement
938               "cnoremap <expr> ) loupe#private#very_magic_slash(')')"
939           , GenericStatement
940               "cnoremap <expr> * loupe#private#very_magic_slash('*')"
941           , GenericStatement
942               "cnoremap <expr> + loupe#private#very_magic_slash('+')"
943           , GenericStatement
944               "cnoremap <expr> , loupe#private#very_magic_slash(',')"
945           , GenericStatement
946               "cnoremap <expr> - loupe#private#very_magic_slash('-')"
947           , GenericStatement
948               "cnoremap <expr> . loupe#private#very_magic_slash('.')"
949           , GenericStatement
950               "cnoremap <expr> / loupe#private#very_magic_slash('/')"
951           , GenericStatement
952               "cnoremap <expr> : loupe#private#very_magic_slash(':')"
953           , GenericStatement
954               "cnoremap <expr> ; loupe#private#very_magic_slash(';')"
955           , GenericStatement
956               "cnoremap <expr> < loupe#private#very_magic_slash('<')"
957           , GenericStatement
958               "cnoremap <expr> = loupe#private#very_magic_slash('=')"
959           , GenericStatement
960               "cnoremap <expr> > loupe#private#very_magic_slash('>')"
961           , GenericStatement
962               "cnoremap <expr> ? loupe#private#very_magic_slash('?')"
963           , GenericStatement
964               "cnoremap <expr> @ loupe#private#very_magic_slash('@')"
965           , GenericStatement
966               "cnoremap <expr> [ loupe#private#very_magic_slash('[')"
967           , GenericStatement
968               "cnoremap <expr> ] loupe#private#very_magic_slash(']')"
969           , GenericStatement
970               "cnoremap <expr> ^ loupe#private#very_magic_slash('^')"
971           , GenericStatement
972               "cnoremap <expr> _ loupe#private#very_magic_slash('_')"
973           , GenericStatement
974               "cnoremap <expr> ` loupe#private#very_magic_slash('`')"
975           , GenericStatement
976               "cnoremap <expr> { loupe#private#very_magic_slash('{')"
977           , GenericStatement
978               "cnoremap <expr> } loupe#private#very_magic_slash('}')"
979           , GenericStatement
980               "cnoremap <expr> ~ loupe#private#very_magic_slash('~')"
981           , GenericStatement "endif"
982           , FunctionDeclaration
983               { functionBang = True
984               , functionName = "s:map"
985               , functionArguments =
986                   ArgumentList [ Argument "keys" , Argument "name" ]
987               , functionAttributes = []
988               , functionBody =
989                   [ Empty
990                   , LetStatement
991                       { letLexpr = "s:center"
992                       , letValue = "get(g:, 'LoupeCenterResults', 1)"
993                       }
994                   , LetStatement
995                       { letLexpr = "s:center_string"
996                       , letValue = "s:center ? 'zz' : ''"
997                       }
998                   , GenericStatement "if !hasmapto('<Plug>(Loupe' . a:name . ')')"
999                   , GenericStatement
1000                       "execute 'nmap <silent> ' . a:keys . ' <Plug>(Loupe' . a:name . ')'"
1001                   , GenericStatement "endif"
1002                   , GenericStatement
1003                       "execute 'nnoremap <silent> <Plug>(Loupe' . a:name . ')' . ' ' . a:keys . s:center_string . ':call loupe#hlmatch()<CR>'"
1004                   ]
1005               }
1006           , GenericStatement "call s:map('#', 'Octothorpe')"
1007           , GenericStatement "call s:map('*', 'Star')"
1008           , GenericStatement "call s:map('N', 'N')"
1009           , GenericStatement "call s:map('g#', 'GOctothorpe')"
1010           , GenericStatement "call s:map('g*', 'GStar')"
1011           , GenericStatement "call s:map('n', 'n')"
1012           , GenericStatement "if has('autocmd') && has('extra_search')"
1013           , GenericStatement "augroup LoupeCleanUp"
1014           , GenericStatement "autocmd!"
1015           , GenericStatement
1016               "autocmd WinEnter * :call loupe#private#cleanup()"
1017           , GenericStatement "augroup END"
1018           , GenericStatement "endif"
1019           , LetStatement
1020               { letLexpr = "&cpoptions" , letValue = "s:cpoptions" }
1021           , UnletStatement { unletBang = False , unletBody = "s:cpoptions" }
1022           ]
1023       ]
1024   , MappingsAnnotation
1025   , MappingAnnotation "<Plug>(LoupeClearHighlight)"
1026   , Paragraph
1027       [ Plaintext "Loupe"
1028       , Whitespace
1029       , Plaintext "maps"
1030       , Whitespace
1031       , Plaintext "<leader>n"
1032       , Whitespace
1033       , Plaintext "to"
1034       , Whitespace
1035       , Link "<Plug>(LoupeClearHighlight)"
1036       , Plaintext ","
1037       , Whitespace
1038       , Plaintext "which"
1039       , Whitespace
1040       , Plaintext "clears"
1041       , Whitespace
1042       , Plaintext "all"
1043       , Whitespace
1044       , Plaintext "visible"
1045       , Whitespace
1046       , Plaintext "highlights"
1047       , Whitespace
1048       , Plaintext "(like"
1049       , Whitespace
1050       , Link ":nohighlight"
1051       , Whitespace
1052       , Plaintext "does)."
1053       , Whitespace
1054       , Plaintext "To"
1055       , Whitespace
1056       , Plaintext "use"
1057       , Whitespace
1058       , Plaintext "an"
1059       , Whitespace
1060       , Plaintext "alternative"
1061       , Whitespace
1062       , Plaintext "mapping"
1063       , Whitespace
1064       , Plaintext "instead,"
1065       , Whitespace
1066       , Plaintext "create"
1067       , Whitespace
1068       , Plaintext "a"
1069       , Whitespace
1070       , Plaintext "different"
1071       , Whitespace
1072       , Plaintext "one"
1073       , Whitespace
1074       , Plaintext "in"
1075       , Whitespace
1076       , Plaintext "your"
1077       , Whitespace
1078       , Link ".vimrc"
1079       , Whitespace
1080       , Plaintext "instead"
1081       , Whitespace
1082       , Plaintext "using"
1083       , Whitespace
1084       , Link ":nmap"
1085       , Plaintext ":"
1086       ]
1087   , Fenced
1088       [ "\" Instead of <leader>n, use <leader>x."
1089       , "nmap <leader>x <Plug>(LoupeClearHighlight)"
1090       ]
1091   , Paragraph
1092       [ Plaintext "Note"
1093       , Whitespace
1094       , Plaintext "that"
1095       , Whitespace
1096       , Plaintext "Loupe"
1097       , Whitespace
1098       , Plaintext "will"
1099       , Whitespace
1100       , Plaintext "not"
1101       , Whitespace
1102       , Plaintext "try"
1103       , Whitespace
1104       , Plaintext "to"
1105       , Whitespace
1106       , Plaintext "set"
1107       , Whitespace
1108       , Plaintext "up"
1109       , Whitespace
1110       , Plaintext "its"
1111       , Whitespace
1112       , Plaintext "<leader>n"
1113       , Whitespace
1114       , Plaintext "mapping"
1115       , Whitespace
1116       , Plaintext "if"
1117       , Whitespace
1118       , Plaintext "any"
1119       , Whitespace
1120       , Plaintext "of"
1121       , Whitespace
1122       , Plaintext "the"
1123       , Whitespace
1124       , Plaintext "following"
1125       , Whitespace
1126       , Plaintext "are"
1127       , Whitespace
1128       , Plaintext "true:"
1129       ]
1130   , List
1131       [ ListItem
1132           [ Plaintext "A"
1133           , Whitespace
1134           , Plaintext "mapping"
1135           , Whitespace
1136           , Plaintext "for"
1137           , Whitespace
1138           , Plaintext "<leader>n"
1139           , Whitespace
1140           , Plaintext "already"
1141           , Whitespace
1142           , Plaintext "exists."
1143           ]
1144       , ListItem
1145           [ Plaintext "An"
1146           , Whitespace
1147           , Plaintext "alternative"
1148           , Whitespace
1149           , Plaintext "mapping"
1150           , Whitespace
1151           , Plaintext "for"
1152           , Whitespace
1153           , Link "<Plug>(LoupeClearHighlight)"
1154           , Whitespace
1155           , Plaintext "has"
1156           , Whitespace
1157           , Plaintext "already"
1158           , Whitespace
1159           , Plaintext "been"
1160           , Whitespace
1161           , Plaintext "set"
1162           , Whitespace
1163           , Plaintext "up"
1164           , Whitespace
1165           , Plaintext "from"
1166           , Whitespace
1167           , Plaintext "a"
1168           , Whitespace
1169           , Link ".vimrc"
1170           , Plaintext "."
1171           ]
1172       , ListItem
1173           [ Plaintext "The"
1174           , Whitespace
1175           , Plaintext "mapping"
1176           , Whitespace
1177           , Plaintext "has"
1178           , Whitespace
1179           , Plaintext "been"
1180           , Whitespace
1181           , Plaintext "suppressed"
1182           , Whitespace
1183           , Plaintext "by"
1184           , Whitespace
1185           , Plaintext "setting"
1186           , Whitespace
1187           , Link "g:LoupeClearHighlightMap"
1188           , Whitespace
1189           , Plaintext "to"
1190           , Whitespace
1191           , Plaintext "1"
1192           , Whitespace
1193           , Plaintext "in"
1194           , Whitespace
1195           , Plaintext "your"
1196           , Whitespace
1197           , Link ".vimrc"
1198           , Plaintext "."
1199           ]
1200       ]
1201   , MappingAnnotation "<Plug>(LoupeOctothorpe)"
1202   , Paragraph
1203       [ Plaintext "Loupe"
1204       , Whitespace
1205       , Plaintext "maps"
1206       , Whitespace
1207       , Link "#"
1208       , Whitespace
1209       , Plaintext "to"
1210       , Whitespace
1211       , Link "<Plug>(LoupeOctothorpe)"
1212       , Whitespace
1213       , Plaintext "in"
1214       , Whitespace
1215       , Plaintext "order"
1216       , Whitespace
1217       , Plaintext "to"
1218       , Whitespace
1219       , Plaintext "implement"
1220       , Whitespace
1221       , Plaintext "custom"
1222       , Whitespace
1223       , Plaintext "highlighting"
1224       , Whitespace
1225       , Plaintext "and"
1226       , Whitespace
1227       , Plaintext "line-centering"
1228       , Whitespace
1229       , Plaintext "for"
1230       , Whitespace
1231       , Plaintext "the"
1232       , Whitespace
1233       , Plaintext "current"
1234       , Whitespace
1235       , Plaintext "match."
1236       ]
1237   , Paragraph
1238       [ Plaintext "To"
1239       , Whitespace
1240       , Plaintext "prevent"
1241       , Whitespace
1242       , Plaintext "this"
1243       , Whitespace
1244       , Plaintext "from"
1245       , Whitespace
1246       , Plaintext "happening,"
1247       , Whitespace
1248       , Plaintext "create"
1249       , Whitespace
1250       , Plaintext "an"
1251       , Whitespace
1252       , Plaintext "alternate"
1253       , Whitespace
1254       , Plaintext "mapping"
1255       , Whitespace
1256       , Plaintext "in"
1257       , Whitespace
1258       , Plaintext "your"
1259       , Whitespace
1260       , Link ".vimrc"
1261       , Plaintext ":"
1262       ]
1263   , Fenced [ "nmap <Nop> <Plug>(LoupeOctothorpe)" ]
1264   , MappingAnnotation "<Plug>(LoupeStar)"
1265   , Paragraph
1266       [ Plaintext "Loupe"
1267       , Whitespace
1268       , Plaintext "maps"
1269       , Whitespace
1270       , Link "star"
1271       , Whitespace
1272       , Plaintext "to"
1273       , Whitespace
1274       , Link "<Plug>(LoupeStar)"
1275       , Whitespace
1276       , Plaintext "in"
1277       , Whitespace
1278       , Plaintext "order"
1279       , Whitespace
1280       , Plaintext "to"
1281       , Whitespace
1282       , Plaintext "implement"
1283       , Whitespace
1284       , Plaintext "custom"
1285       , Whitespace
1286       , Plaintext "highlighting"
1287       , Whitespace
1288       , Plaintext "and"
1289       , Whitespace
1290       , Plaintext "line-centering"
1291       , Whitespace
1292       , Plaintext "for"
1293       , Whitespace
1294       , Plaintext "the"
1295       , Whitespace
1296       , Plaintext "current"
1297       , Whitespace
1298       , Plaintext "match."
1299       ]
1300   , Paragraph
1301       [ Plaintext "To"
1302       , Whitespace
1303       , Plaintext "prevent"
1304       , Whitespace
1305       , Plaintext "this"
1306       , Whitespace
1307       , Plaintext "from"
1308       , Whitespace
1309       , Plaintext "happening,"
1310       , Whitespace
1311       , Plaintext "create"
1312       , Whitespace
1313       , Plaintext "an"
1314       , Whitespace
1315       , Plaintext "alternate"
1316       , Whitespace
1317       , Plaintext "mapping"
1318       , Whitespace
1319       , Plaintext "in"
1320       , Whitespace
1321       , Plaintext "your"
1322       , Whitespace
1323       , Link ".vimrc"
1324       , Plaintext ":"
1325       ]
1326   , Fenced [ "nmap <Nop> <Plug>(LoupeStar)" ]
1327   , MappingAnnotation "<Plug>(LoupeN)"
1328   , Paragraph
1329       [ Plaintext "Loupe"
1330       , Whitespace
1331       , Plaintext "maps"
1332       , Whitespace
1333       , Link "N"
1334       , Whitespace
1335       , Plaintext "to"
1336       , Whitespace
1337       , Link "<Plug>(LoupeN)"
1338       , Whitespace
1339       , Plaintext "in"
1340       , Whitespace
1341       , Plaintext "order"
1342       , Whitespace
1343       , Plaintext "to"
1344       , Whitespace
1345       , Plaintext "implement"
1346       , Whitespace
1347       , Plaintext "custom"
1348       , Whitespace
1349       , Plaintext "highlighting"
1350       , Whitespace
1351       , Plaintext "and"
1352       , Whitespace
1353       , Plaintext "line-centering"
1354       , Whitespace
1355       , Plaintext "for"
1356       , Whitespace
1357       , Plaintext "the"
1358       , Whitespace
1359       , Plaintext "current"
1360       , Whitespace
1361       , Plaintext "match."
1362       ]
1363   , Paragraph
1364       [ Plaintext "To"
1365       , Whitespace
1366       , Plaintext "prevent"
1367       , Whitespace
1368       , Plaintext "this"
1369       , Whitespace
1370       , Plaintext "from"
1371       , Whitespace
1372       , Plaintext "happening,"
1373       , Whitespace
1374       , Plaintext "create"
1375       , Whitespace
1376       , Plaintext "an"
1377       , Whitespace
1378       , Plaintext "alternate"
1379       , Whitespace
1380       , Plaintext "mapping"
1381       , Whitespace
1382       , Plaintext "in"
1383       , Whitespace
1384       , Plaintext "your"
1385       , Whitespace
1386       , Link ".vimrc"
1387       , Plaintext ":"
1388       ]
1389   , Fenced [ "nmap <Nop> <Plug>(LoupeN)" ]
1390   , MappingAnnotation "<Plug>(LoupeGOctothorpe)"
1391   , Paragraph
1392       [ Plaintext "Loupe"
1393       , Whitespace
1394       , Plaintext "maps"
1395       , Whitespace
1396       , Link "g#"
1397       , Whitespace
1398       , Plaintext "to"
1399       , Whitespace
1400       , Link "<Plug>(LoupeGOctothorpe)"
1401       , Whitespace
1402       , Plaintext "in"
1403       , Whitespace
1404       , Plaintext "order"
1405       , Whitespace
1406       , Plaintext "to"
1407       , Whitespace
1408       , Plaintext "implement"
1409       , Whitespace
1410       , Plaintext "custom"
1411       , Whitespace
1412       , Plaintext "highlighting"
1413       , Whitespace
1414       , Plaintext "and"
1415       , Whitespace
1416       , Plaintext "line-centering"
1417       , Whitespace
1418       , Plaintext "for"
1419       , Whitespace
1420       , Plaintext "the"
1421       , Whitespace
1422       , Plaintext "current"
1423       , Whitespace
1424       , Plaintext "match."
1425       ]
1426   , Paragraph
1427       [ Plaintext "To"
1428       , Whitespace
1429       , Plaintext "prevent"
1430       , Whitespace
1431       , Plaintext "this"
1432       , Whitespace
1433       , Plaintext "from"
1434       , Whitespace
1435       , Plaintext "happening,"
1436       , Whitespace
1437       , Plaintext "create"
1438       , Whitespace
1439       , Plaintext "an"
1440       , Whitespace
1441       , Plaintext "alternate"
1442       , Whitespace
1443       , Plaintext "mapping"
1444       , Whitespace
1445       , Plaintext "in"
1446       , Whitespace
1447       , Plaintext "your"
1448       , Whitespace
1449       , Link ".vimrc"
1450       , Plaintext ":"
1451       ]
1452   , Fenced [ "nmap <Nop> <Plug>(LoupeGOctothorpe)" ]
1453   , MappingAnnotation "<Plug>(LoupeGStar)"
1454   , Paragraph
1455       [ Plaintext "Loupe"
1456       , Whitespace
1457       , Plaintext "maps"
1458       , Whitespace
1459       , Link "gstar"
1460       , Whitespace
1461       , Plaintext "to"
1462       , Whitespace
1463       , Link "<Plug>(LoupeGStar)"
1464       , Whitespace
1465       , Plaintext "in"
1466       , Whitespace
1467       , Plaintext "order"
1468       , Whitespace
1469       , Plaintext "to"
1470       , Whitespace
1471       , Plaintext "implement"
1472       , Whitespace
1473       , Plaintext "custom"
1474       , Whitespace
1475       , Plaintext "highlighting"
1476       , Whitespace
1477       , Plaintext "and"
1478       , Whitespace
1479       , Plaintext "line-centering"
1480       , Whitespace
1481       , Plaintext "for"
1482       , Whitespace
1483       , Plaintext "the"
1484       , Whitespace
1485       , Plaintext "current"
1486       , Whitespace
1487       , Plaintext "match."
1488       ]
1489   , Paragraph
1490       [ Plaintext "To"
1491       , Whitespace
1492       , Plaintext "prevent"
1493       , Whitespace
1494       , Plaintext "this"
1495       , Whitespace
1496       , Plaintext "from"
1497       , Whitespace
1498       , Plaintext "happening,"
1499       , Whitespace
1500       , Plaintext "create"
1501       , Whitespace
1502       , Plaintext "an"
1503       , Whitespace
1504       , Plaintext "alternate"
1505       , Whitespace
1506       , Plaintext "mapping"
1507       , Whitespace
1508       , Plaintext "in"
1509       , Whitespace
1510       , Plaintext "your"
1511       , Whitespace
1512       , Link ".vimrc"
1513       , Plaintext ":"
1514       ]
1515   , Fenced [ "nmap <Nop> <Plug>(LoupeGStar)" ]
1516   , MappingAnnotation "<Plug>(Loupen)"
1517   , Paragraph
1518       [ Plaintext "Loupe"
1519       , Whitespace
1520       , Plaintext "maps"
1521       , Whitespace
1522       , Link "n"
1523       , Whitespace
1524       , Plaintext "to"
1525       , Whitespace
1526       , Link "<Plug>(Loupen)"
1527       , Whitespace
1528       , Plaintext "in"
1529       , Whitespace
1530       , Plaintext "order"
1531       , Whitespace
1532       , Plaintext "to"
1533       , Whitespace
1534       , Plaintext "implement"
1535       , Whitespace
1536       , Plaintext "custom"
1537       , Whitespace
1538       , Plaintext "highlighting"
1539       , Whitespace
1540       , Plaintext "and"
1541       , Whitespace
1542       , Plaintext "line-centering"
1543       , Whitespace
1544       , Plaintext "for"
1545       , Whitespace
1546       , Plaintext "the"
1547       , Whitespace
1548       , Plaintext "current"
1549       , Whitespace
1550       , Plaintext "match."
1551       ]
1552   , Paragraph
1553       [ Plaintext "To"
1554       , Whitespace
1555       , Plaintext "prevent"
1556       , Whitespace
1557       , Plaintext "this"
1558       , Whitespace
1559       , Plaintext "from"
1560       , Whitespace
1561       , Plaintext "happening,"
1562       , Whitespace
1563       , Plaintext "create"
1564       , Whitespace
1565       , Plaintext "an"
1566       , Whitespace
1567       , Plaintext "alternate"
1568       , Whitespace
1569       , Plaintext "mapping"
1570       , Whitespace
1571       , Plaintext "in"
1572       , Whitespace
1573       , Plaintext "your"
1574       , Whitespace
1575       , Link ".vimrc"
1576       , Plaintext ":"
1577       ]
1578   , Fenced [ "nmap <Nop> <Plug>(Loupen)" ]
1579   , OptionsAnnotation
1580   , OptionAnnotation
1581       "g:LoupeHighlightGroup" "string" (Just "IncSearch")
1582   , Paragraph
1583       [ Plaintext "Specifies"
1584       , Whitespace
1585       , Plaintext "the"
1586       , Whitespace
1587       , Link ":highlight"
1588       , Whitespace
1589       , Plaintext "group"
1590       , Whitespace
1591       , Plaintext "used"
1592       , Whitespace
1593       , Plaintext "to"
1594       , Whitespace
1595       , Plaintext "emphasize"
1596       , Whitespace
1597       , Plaintext "the"
1598       , Whitespace
1599       , Plaintext "match"
1600       , Whitespace
1601       , Plaintext "currently"
1602       , Whitespace
1603       , Plaintext "under"
1604       , Whitespace
1605       , Plaintext "the"
1606       , Whitespace
1607       , Plaintext "cursor"
1608       , Whitespace
1609       , Plaintext "for"
1610       , Whitespace
1611       , Plaintext "the"
1612       , Whitespace
1613       , Plaintext "current"
1614       , Whitespace
1615       , Plaintext "search"
1616       , Whitespace
1617       , Plaintext "pattern."
1618       , Whitespace
1619       , Plaintext "Defaults"
1620       , Whitespace
1621       , Plaintext "to"
1622       , Whitespace
1623       , Plaintext "\"IncSearch\""
1624       , Whitespace
1625       , Plaintext "(ie."
1626       , Whitespace
1627       , Link "hl-IncSearch"
1628       , Plaintext ")."
1629       , Whitespace
1630       , Plaintext "For"
1631       , Whitespace
1632       , Plaintext "example:"
1633       ]
1634   , Fenced [ "let g:LoupeHighlightGroup='Error'" ]
1635   , Paragraph
1636       [ Plaintext "To"
1637       , Whitespace
1638       , Plaintext "prevent"
1639       , Whitespace
1640       , Plaintext "any"
1641       , Whitespace
1642       , Plaintext "special"
1643       , Whitespace
1644       , Plaintext "highlighting"
1645       , Whitespace
1646       , Plaintext "from"
1647       , Whitespace
1648       , Plaintext "being"
1649       , Whitespace
1650       , Plaintext "applied,"
1651       , Whitespace
1652       , Plaintext "set"
1653       , Whitespace
1654       , Plaintext "this"
1655       , Whitespace
1656       , Plaintext "option"
1657       , Whitespace
1658       , Plaintext "to"
1659       , Whitespace
1660       , Plaintext "\"\""
1661       , Whitespace
1662       , Plaintext "(ie."
1663       , Whitespace
1664       , Plaintext "the"
1665       , Whitespace
1666       , Plaintext "empty"
1667       , Whitespace
1668       , Plaintext "string)."
1669       ]
1670   , OptionAnnotation "g:LoupeLoaded" "any" Nothing
1671   , Paragraph
1672       [ Plaintext "To"
1673       , Whitespace
1674       , Plaintext "prevent"
1675       , Whitespace
1676       , Plaintext "Loupe"
1677       , Whitespace
1678       , Plaintext "from"
1679       , Whitespace
1680       , Plaintext "being"
1681       , Whitespace
1682       , Plaintext "loaded,"
1683       , Whitespace
1684       , Plaintext "set"
1685       , Whitespace
1686       , Link "g:LoupeLoaded"
1687       , Whitespace
1688       , Plaintext "to"
1689       , Whitespace
1690       , Plaintext "any"
1691       , Whitespace
1692       , Plaintext "value"
1693       , Whitespace
1694       , Plaintext "in"
1695       , Whitespace
1696       , Plaintext "your"
1697       , Whitespace
1698       , Link ".vimrc"
1699       , Plaintext "."
1700       , Whitespace
1701       , Plaintext "For"
1702       , Whitespace
1703       , Plaintext "example:"
1704       ]
1705   , Fenced [ "let g:LoupeLoaded=1" ]
1706   , OptionAnnotation "g:LoupeClearHighlightMap" "boolean" (Just "1")
1707   , Paragraph
1708       [ Plaintext "Controls"
1709       , Whitespace
1710       , Plaintext "whether"
1711       , Whitespace
1712       , Plaintext "to"
1713       , Whitespace
1714       , Plaintext "set"
1715       , Whitespace
1716       , Plaintext "up"
1717       , Whitespace
1718       , Plaintext "the"
1719       , Whitespace
1720       , Link "<Plug>(LoupeClearHighlight)"
1721       , Whitespace
1722       , Plaintext "mapping."
1723       , Whitespace
1724       , Plaintext "To"
1725       , Whitespace
1726       , Plaintext "prevent"
1727       , Whitespace
1728       , Plaintext "any"
1729       , Whitespace
1730       , Plaintext "mapping"
1731       , Whitespace
1732       , Plaintext "from"
1733       , Whitespace
1734       , Plaintext "being"
1735       , Whitespace
1736       , Plaintext "configured,"
1737       , Whitespace
1738       , Plaintext "set"
1739       , Whitespace
1740       , Plaintext "to"
1741       , Whitespace
1742       , Plaintext "0:"
1743       ]
1744   , Fenced [ "let g:LoupeClearHighlightMap=0" ]
1745   , OptionAnnotation "g:LoupeVeryMagic" "boolean" (Just "1")
1746   , Paragraph
1747       [ Plaintext "Controls"
1748       , Whitespace
1749       , Plaintext "whether"
1750       , Whitespace
1751       , Plaintext "\"very"
1752       , Whitespace
1753       , Plaintext "magic\""
1754       , Whitespace
1755       , Plaintext "pattern"
1756       , Whitespace
1757       , Plaintext "syntax"
1758       , Whitespace
1759       , Plaintext "("
1760       , Link "/\\v"
1761       , Plaintext ")"
1762       , Whitespace
1763       , Plaintext "is"
1764       , Whitespace
1765       , Plaintext "applied"
1766       , Whitespace
1767       , Plaintext "by"
1768       , Whitespace
1769       , Plaintext "default."
1770       , Whitespace
1771       , Plaintext "To"
1772       , Whitespace
1773       , Plaintext "disable,"
1774       , Whitespace
1775       , Plaintext "set"
1776       , Whitespace
1777       , Plaintext "to"
1778       , Whitespace
1779       , Plaintext "0:"
1780       ]
1781   , Fenced [ "let g:LoupeVeryMagic=0" ]
1782   , OptionAnnotation "g:LoupeCenterResults" "boolean" (Just "1")
1783   , Paragraph
1784       [ Plaintext "Controls"
1785       , Whitespace
1786       , Plaintext "whether"
1787       , Whitespace
1788       , Plaintext "the"
1789       , Whitespace
1790       , Plaintext "match's"
1791       , Whitespace
1792       , Plaintext "line"
1793       , Whitespace
1794       , Plaintext "is"
1795       , Whitespace
1796       , Plaintext "vertically"
1797       , Whitespace
1798       , Plaintext "centered"
1799       , Whitespace
1800       , Plaintext "within"
1801       , Whitespace
1802       , Plaintext "the"
1803       , Whitespace
1804       , Plaintext "window"
1805       , Whitespace
1806       , Plaintext "when"
1807       , Whitespace
1808       , Plaintext "jumping"
1809       , Whitespace
1810       , Plaintext "(via"
1811       , Whitespace
1812       , Link "n"
1813       , Plaintext ","
1814       , Whitespace
1815       , Link "N"
1816       , Whitespace
1817       , Plaintext "etc)."
1818       , Whitespace
1819       , Plaintext "To"
1820       , Whitespace
1821       , Plaintext "disable,"
1822       , Whitespace
1823       , Plaintext "set"
1824       , Whitespace
1825       , Plaintext "to"
1826       , Whitespace
1827       , Plaintext "0:"
1828       ]
1829   , Fenced [ "let g:LoupeCenterResults=0" ]
1830   , FunctionsAnnotation
1831   , FunctionAnnotation "loupe#hlmatch"
1832   , Paragraph
1833       [ Plaintext "Apply"
1834       , Whitespace
1835       , Plaintext "highlighting"
1836       , Whitespace
1837       , Plaintext "to"
1838       , Whitespace
1839       , Plaintext "the"
1840       , Whitespace
1841       , Plaintext "current"
1842       , Whitespace
1843       , Plaintext "search"
1844       , Whitespace
1845       , Plaintext "match."
1846       ]
1847   , FooterAnnotation
1848   , HeadingAnnotation "Overrides"
1849   , Paragraph
1850       [ Plaintext "Loupe"
1851       , Whitespace
1852       , Plaintext "sets"
1853       , Whitespace
1854       , Plaintext "a"
1855       , Whitespace
1856       , Plaintext "number"
1857       , Whitespace
1858       , Plaintext "of"
1859       , Whitespace
1860       , Plaintext "search-related"
1861       , Whitespace
1862       , Plaintext "Vim"
1863       , Whitespace
1864       , Plaintext "settings"
1865       , Whitespace
1866       , Plaintext "to"
1867       , Whitespace
1868       , Plaintext "reasonable"
1869       , Whitespace
1870       , Plaintext "defaults"
1871       , Whitespace
1872       , Plaintext "in"
1873       , Whitespace
1874       , Plaintext "order"
1875       , Whitespace
1876       , Plaintext "to"
1877       , Whitespace
1878       , Plaintext "provide"
1879       , Whitespace
1880       , Plaintext "a"
1881       , Whitespace
1882       , Plaintext "good"
1883       , Whitespace
1884       , Plaintext "\"out"
1885       , Whitespace
1886       , Plaintext "of"
1887       , Whitespace
1888       , Plaintext "the"
1889       , Whitespace
1890       , Plaintext "box\""
1891       , Whitespace
1892       , Plaintext "experience."
1893       , Whitespace
1894       , Plaintext "The"
1895       , Whitespace
1896       , Plaintext "following"
1897       , Whitespace
1898       , Plaintext "overrides"
1899       , Whitespace
1900       , Plaintext "will"
1901       , Whitespace
1902       , Plaintext "be"
1903       , Whitespace
1904       , Plaintext "set"
1905       , Whitespace
1906       , Plaintext "unless"
1907       , Whitespace
1908       , Plaintext "suppressed"
1909       , Whitespace
1910       , Plaintext "or"
1911       , Whitespace
1912       , Plaintext "overridden"
1913       , Whitespace
1914       , Plaintext "(see"
1915       , Whitespace
1916       , Link "loupe-suppress-overrides"
1917       , Plaintext "):"
1918       ]
1919   , IndentAnnotation
1920   , LinkTargets [ "loupe-history-override" ]
1921   , Paragraph [ Plaintext "'history'" ]
1922   , Paragraph
1923       [ Plaintext "Increased"
1924       , Whitespace
1925       , Plaintext "to"
1926       , Whitespace
1927       , Plaintext "1000,"
1928       , Whitespace
1929       , Plaintext "to"
1930       , Whitespace
1931       , Plaintext "increase"
1932       , Whitespace
1933       , Plaintext "the"
1934       , Whitespace
1935       , Plaintext "number"
1936       , Whitespace
1937       , Plaintext "of"
1938       , Whitespace
1939       , Plaintext "previous"
1940       , Whitespace
1941       , Plaintext "searches"
1942       , Whitespace
1943       , Plaintext "remembered."
1944       , Whitespace
1945       , Plaintext "Note"
1946       , Whitespace
1947       , Plaintext "that"
1948       , Whitespace
1949       , Plaintext "Loupe"
1950       , Whitespace
1951       , Plaintext "only"
1952       , Whitespace
1953       , Plaintext "applies"
1954       , Whitespace
1955       , Plaintext "this"
1956       , Whitespace
1957       , Plaintext "setting"
1958       , Whitespace
1959       , Plaintext "if"
1960       , Whitespace
1961       , Plaintext "the"
1962       , Whitespace
1963       , Plaintext "current"
1964       , Whitespace
1965       , Plaintext "value"
1966       , Whitespace
1967       , Plaintext "of"
1968       , Whitespace
1969       , Plaintext "'history'"
1970       , Whitespace
1971       , Plaintext "is"
1972       , Whitespace
1973       , Plaintext "less"
1974       , Whitespace
1975       , Plaintext "than"
1976       , Whitespace
1977       , Plaintext "1000."
1978       ]
1979   , LinkTargets [ "loupe-hlsearch-override" ]
1980   , Paragraph [ Plaintext "'hlsearch'" ]
1981   , Paragraph
1982       [ Plaintext "Turned"
1983       , Whitespace
1984       , Plaintext "on"
1985       , Whitespace
1986       , Plaintext "(when"
1987       , Whitespace
1988       , Plaintext "there"
1989       , Whitespace
1990       , Plaintext "is"
1991       , Whitespace
1992       , Plaintext "a"
1993       , Whitespace
1994       , Plaintext "previous"
1995       , Whitespace
1996       , Plaintext "search"
1997       , Whitespace
1998       , Plaintext "pattern,"
1999       , Whitespace
2000       , Plaintext "highlight"
2001       , Whitespace
2002       , Plaintext "all"
2003       , Whitespace
2004       , Plaintext "its"
2005       , Whitespace
2006       , Plaintext "matches)."
2007       ]
2008   , LinkTargets [ "loupe-incsearch-override" ]
2009   , Paragraph [ Plaintext "'incsearch'" ]
2010   , Paragraph
2011       [ Plaintext "Turned"
2012       , Whitespace
2013       , Plaintext "on"
2014       , Whitespace
2015       , Plaintext "(while"
2016       , Whitespace
2017       , Plaintext "typing"
2018       , Whitespace
2019       , Plaintext "a"
2020       , Whitespace
2021       , Plaintext "search"
2022       , Whitespace
2023       , Plaintext "command,"
2024       , Whitespace
2025       , Plaintext "show"
2026       , Whitespace
2027       , Plaintext "where"
2028       , Whitespace
2029       , Plaintext "the"
2030       , Whitespace
2031       , Plaintext "pattern"
2032       , Whitespace
2033       , Plaintext "matches,"
2034       , Whitespace
2035       , Plaintext "as"
2036       , Whitespace
2037       , Plaintext "it"
2038       , Whitespace
2039       , Plaintext "was"
2040       , Whitespace
2041       , Plaintext "typed"
2042       , Whitespace
2043       , Plaintext "so"
2044       , Whitespace
2045       , Plaintext "far)."
2046       ]
2047   , LinkTargets [ "loupe-ignorecase-override" ]
2048   , Paragraph [ Plaintext "'ignorecase'" ]
2049   , Paragraph
2050       [ Plaintext "Turned"
2051       , Whitespace
2052       , Plaintext "on"
2053       , Whitespace
2054       , Plaintext "(to"
2055       , Whitespace
2056       , Plaintext "ignore"
2057       , Whitespace
2058       , Plaintext "case"
2059       , Whitespace
2060       , Plaintext "in"
2061       , Whitespace
2062       , Plaintext "search"
2063       , Whitespace
2064       , Plaintext "patterns)."
2065       ]
2066   , LinkTargets [ "loupe-shortmess-override" ]
2067   , Paragraph [ Plaintext "'shortmess'" ]
2068   , Paragraph
2069       [ Plaintext "Adds"
2070       , Whitespace
2071       , Plaintext "\"s\","
2072       , Whitespace
2073       , Plaintext "which"
2074       , Whitespace
2075       , Plaintext "suppresses"
2076       , Whitespace
2077       , Plaintext "the"
2078       , Whitespace
2079       , Plaintext "display"
2080       , Whitespace
2081       , Plaintext "of"
2082       , Whitespace
2083       , Plaintext "\"search"
2084       , Whitespace
2085       , Plaintext "hit"
2086       , Whitespace
2087       , Plaintext "BOTTOM,"
2088       , Whitespace
2089       , Plaintext "continuing"
2090       , Whitespace
2091       , Plaintext "at"
2092       , Whitespace
2093       , Plaintext "TOP\""
2094       , Whitespace
2095       , Plaintext "and"
2096       , Whitespace
2097       , Plaintext "\"search"
2098       , Whitespace
2099       , Plaintext "hit"
2100       , Whitespace
2101       , Plaintext "TOP,"
2102       , Whitespace
2103       , Plaintext "continuing"
2104       , Whitespace
2105       , Plaintext "at"
2106       , Whitespace
2107       , Plaintext "BOTTOM\""
2108       , Whitespace
2109       , Plaintext "messages."
2110       ]
2111   , LinkTargets [ "loupe-smartcase-override" ]
2112   , Paragraph [ Plaintext "'smartcase'" ]
2113   , Paragraph
2114       [ Plaintext "Turned"
2115       , Whitespace
2116       , Plaintext "on"
2117       , Whitespace
2118       , Plaintext "(overrides"
2119       , Whitespace
2120       , Plaintext "'ignorecase',"
2121       , Whitespace
2122       , Plaintext "making"
2123       , Whitespace
2124       , Plaintext "the"
2125       , Whitespace
2126       , Plaintext "search"
2127       , Whitespace
2128       , Plaintext "pattern"
2129       , Whitespace
2130       , Plaintext "case-sensitive"
2131       , Whitespace
2132       , Plaintext "whenever"
2133       , Whitespace
2134       , Plaintext "it"
2135       , Whitespace
2136       , Plaintext "containers"
2137       , Whitespace
2138       , Plaintext "uppercase"
2139       , Whitespace
2140       , Plaintext "characters)."
2141       ]
2142   , DedentAnnotation
2143   , LinkTargets [ "loupe-suppress-overrides" ]
2144   , SubheadingAnnotation
2145       "Preventing Loupe overrides from taking effect"
2146   , Paragraph
2147       [ Plaintext "To"
2148       , Whitespace
2149       , Plaintext "override"
2150       , Whitespace
2151       , Plaintext "any"
2152       , Whitespace
2153       , Plaintext "of"
2154       , Whitespace
2155       , Plaintext "these"
2156       , Whitespace
2157       , Plaintext "choices,"
2158       , Whitespace
2159       , Plaintext "you"
2160       , Whitespace
2161       , Plaintext "can"
2162       , Whitespace
2163       , Plaintext "place"
2164       , Whitespace
2165       , Plaintext "overrides"
2166       , Whitespace
2167       , Plaintext "in"
2168       , Whitespace
2169       , Plaintext "an"
2170       , Whitespace
2171       , Link "after-directory"
2172       , Whitespace
2173       , Plaintext "(ie."
2174       , Whitespace
2175       , Code "~/.vim/after/plugin/loupe.vim"
2176       , Plaintext ")."
2177       , Whitespace
2178       , Plaintext "For"
2179       , Whitespace
2180       , Plaintext "example:"
2181       ]
2182   , Fenced
2183       [ " \" Override Loupe's 'history' setting from 1000 to 10000."
2184       , " set history=10000"
2185       , ""
2186       , " \" Reset Loupe's 'incsearch' back to Vim default."
2187       , " set incsearch&vim"
2188       , ""
2189       , " \" Remove unwanted 's' from 'shortmess'."
2190       , " set shortmess-=s"
2191       ]
2192   , HeadingAnnotation "Related"
2193   , Paragraph
2194       [ Plaintext "Just"
2195       , Whitespace
2196       , Plaintext "as"
2197       , Whitespace
2198       , Plaintext "Loupe"
2199       , Whitespace
2200       , Plaintext "aims"
2201       , Whitespace
2202       , Plaintext "to"
2203       , Whitespace
2204       , Plaintext "improve"
2205       , Whitespace
2206       , Plaintext "the"
2207       , Whitespace
2208       , Plaintext "within-file"
2209       , Whitespace
2210       , Plaintext "search"
2211       , Whitespace
2212       , Plaintext "experience,"
2213       , Whitespace
2214       , Plaintext "Ferret"
2215       , Whitespace
2216       , Plaintext "does"
2217       , Whitespace
2218       , Plaintext "the"
2219       , Whitespace
2220       , Plaintext "same"
2221       , Whitespace
2222       , Plaintext "for"
2223       , Whitespace
2224       , Plaintext "multi-file"
2225       , Whitespace
2226       , Plaintext "searching"
2227       , Whitespace
2228       , Plaintext "and"
2229       , Whitespace
2230       , Plaintext "replacing:"
2231       ]
2232   , List
2233       [ ListItem [ Plaintext "https://github.com/wincent/ferret" ] ]
2234   , HeadingAnnotation "Website"
2235   , Paragraph
2236       [ Plaintext "The"
2237       , Whitespace
2238       , Plaintext "official"
2239       , Whitespace
2240       , Plaintext "Loupe"
2241       , Whitespace
2242       , Plaintext "source"
2243       , Whitespace
2244       , Plaintext "code"
2245       , Whitespace
2246       , Plaintext "repo"
2247       , Whitespace
2248       , Plaintext "is"
2249       , Whitespace
2250       , Plaintext "at:"
2251       ]
2252   , List
2253       [ ListItem [ Plaintext "http://git.wincent.com/loupe.git" ] ]
2254   , Paragraph
2255       [ Plaintext "A"
2256       , Whitespace
2257       , Plaintext "mirror"
2258       , Whitespace
2259       , Plaintext "exists"
2260       , Whitespace
2261       , Plaintext "at:"
2262       ]
2263   , List
2264       [ ListItem [ Plaintext "https://github.com/wincent/loupe" ] ]
2265   , Paragraph
2266       [ Plaintext "Official"
2267       , Whitespace
2268       , Plaintext "releases"
2269       , Whitespace
2270       , Plaintext "are"
2271       , Whitespace
2272       , Plaintext "listed"
2273       , Whitespace
2274       , Plaintext "at:"
2275       ]
2276   , List
2277       [ ListItem
2278           [ Plaintext "http://www.vim.org/scripts/script.php?script_id=5215"
2279           ]
2280       ]
2281   , HeadingAnnotation "License"
2282   , Paragraph
2283       [ Plaintext "Copyright"
2284       , Whitespace
2285       , Plaintext "2015-present"
2286       , Whitespace
2287       , Plaintext "Greg"
2288       , Whitespace
2289       , Plaintext "Hurrell."
2290       , Whitespace
2291       , Plaintext "All"
2292       , Whitespace
2293       , Plaintext "rights"
2294       , Whitespace
2295       , Plaintext "reserved."
2296       ]
2297   , Paragraph
2298       [ Plaintext "Redistribution"
2299       , Whitespace
2300       , Plaintext "and"
2301       , Whitespace
2302       , Plaintext "use"
2303       , Whitespace
2304       , Plaintext "in"
2305       , Whitespace
2306       , Plaintext "source"
2307       , Whitespace
2308       , Plaintext "and"
2309       , Whitespace
2310       , Plaintext "binary"
2311       , Whitespace
2312       , Plaintext "forms,"
2313       , Whitespace
2314       , Plaintext "with"
2315       , Whitespace
2316       , Plaintext "or"
2317       , Whitespace
2318       , Plaintext "without"
2319       , Whitespace
2320       , Plaintext "modification,"
2321       , Whitespace
2322       , Plaintext "are"
2323       , Whitespace
2324       , Plaintext "permitted"
2325       , Whitespace
2326       , Plaintext "provided"
2327       , Whitespace
2328       , Plaintext "that"
2329       , Whitespace
2330       , Plaintext "the"
2331       , Whitespace
2332       , Plaintext "following"
2333       , Whitespace
2334       , Plaintext "conditions"
2335       , Whitespace
2336       , Plaintext "are"
2337       , Whitespace
2338       , Plaintext "met:"
2339       ]
2340   , Paragraph
2341       [ Plaintext "1."
2342       , Whitespace
2343       , Plaintext "Redistributions"
2344       , Whitespace
2345       , Plaintext "of"
2346       , Whitespace
2347       , Plaintext "source"
2348       , Whitespace
2349       , Plaintext "code"
2350       , Whitespace
2351       , Plaintext "must"
2352       , Whitespace
2353       , Plaintext "retain"
2354       , Whitespace
2355       , Plaintext "the"
2356       , Whitespace
2357       , Plaintext "above"
2358       , Whitespace
2359       , Plaintext "copyright"
2360       , Whitespace
2361       , Plaintext "notice,"
2362       , Whitespace
2363       , Plaintext "this"
2364       , Whitespace
2365       , Plaintext "list"
2366       , Whitespace
2367       , Plaintext "of"
2368       , Whitespace
2369       , Plaintext "conditions"
2370       , Whitespace
2371       , Plaintext "and"
2372       , Whitespace
2373       , Plaintext "the"
2374       , Whitespace
2375       , Plaintext "following"
2376       , Whitespace
2377       , Plaintext "disclaimer."
2378       ]
2379   , Paragraph
2380       [ Plaintext "2."
2381       , Whitespace
2382       , Plaintext "Redistributions"
2383       , Whitespace
2384       , Plaintext "in"
2385       , Whitespace
2386       , Plaintext "binary"
2387       , Whitespace
2388       , Plaintext "form"
2389       , Whitespace
2390       , Plaintext "must"
2391       , Whitespace
2392       , Plaintext "reproduce"
2393       , Whitespace
2394       , Plaintext "the"
2395       , Whitespace
2396       , Plaintext "above"
2397       , Whitespace
2398       , Plaintext "copyright"
2399       , Whitespace
2400       , Plaintext "notice,"
2401       , Whitespace
2402       , Plaintext "this"
2403       , Whitespace
2404       , Plaintext "list"
2405       , Whitespace
2406       , Plaintext "of"
2407       , Whitespace
2408       , Plaintext "conditions"
2409       , Whitespace
2410       , Plaintext "and"
2411       , Whitespace
2412       , Plaintext "the"
2413       , Whitespace
2414       , Plaintext "following"
2415       , Whitespace
2416       , Plaintext "disclaimer"
2417       , Whitespace
2418       , Plaintext "in"
2419       , Whitespace
2420       , Plaintext "the"
2421       , Whitespace
2422       , Plaintext "documentation"
2423       , Whitespace
2424       , Plaintext "and/or"
2425       , Whitespace
2426       , Plaintext "other"
2427       , Whitespace
2428       , Plaintext "materials"
2429       , Whitespace
2430       , Plaintext "provided"
2431       , Whitespace
2432       , Plaintext "with"
2433       , Whitespace
2434       , Plaintext "the"
2435       , Whitespace
2436       , Plaintext "distribution."
2437       ]
2438   , Paragraph
2439       [ Plaintext "THIS"
2440       , Whitespace
2441       , Plaintext "SOFTWARE"
2442       , Whitespace
2443       , Plaintext "IS"
2444       , Whitespace
2445       , Plaintext "PROVIDED"
2446       , Whitespace
2447       , Plaintext "BY"
2448       , Whitespace
2449       , Plaintext "THE"
2450       , Whitespace
2451       , Plaintext "COPYRIGHT"
2452       , Whitespace
2453       , Plaintext "HOLDERS"
2454       , Whitespace
2455       , Plaintext "AND"
2456       , Whitespace
2457       , Plaintext "CONTRIBUTORS"
2458       , Whitespace
2459       , Plaintext "\"AS"
2460       , Whitespace
2461       , Plaintext "IS\""
2462       , Whitespace
2463       , Plaintext "AND"
2464       , Whitespace
2465       , Plaintext "ANY"
2466       , Whitespace
2467       , Plaintext "EXPRESS"
2468       , Whitespace
2469       , Plaintext "OR"
2470       , Whitespace
2471       , Plaintext "IMPLIED"
2472       , Whitespace
2473       , Plaintext "WARRANTIES,"
2474       , Whitespace
2475       , Plaintext "INCLUDING,"
2476       , Whitespace
2477       , Plaintext "BUT"
2478       , Whitespace
2479       , Plaintext "NOT"
2480       , Whitespace
2481       , Plaintext "LIMITED"
2482       , Whitespace
2483       , Plaintext "TO,"
2484       , Whitespace
2485       , Plaintext "THE"
2486       , Whitespace
2487       , Plaintext "IMPLIED"
2488       , Whitespace
2489       , Plaintext "WARRANTIES"
2490       , Whitespace
2491       , Plaintext "OF"
2492       , Whitespace
2493       , Plaintext "MERCHANTABILITY"
2494       , Whitespace
2495       , Plaintext "AND"
2496       , Whitespace
2497       , Plaintext "FITNESS"
2498       , Whitespace
2499       , Plaintext "FOR"
2500       , Whitespace
2501       , Plaintext "A"
2502       , Whitespace
2503       , Plaintext "PARTICULAR"
2504       , Whitespace
2505       , Plaintext "PURPOSE"
2506       , Whitespace
2507       , Plaintext "ARE"
2508       , Whitespace
2509       , Plaintext "DISCLAIMED."
2510       , Whitespace
2511       , Plaintext "IN"
2512       , Whitespace
2513       , Plaintext "NO"
2514       , Whitespace
2515       , Plaintext "EVENT"
2516       , Whitespace
2517       , Plaintext "SHALL"
2518       , Whitespace
2519       , Plaintext "THE"
2520       , Whitespace
2521       , Plaintext "COPYRIGHT"
2522       , Whitespace
2523       , Plaintext "HOLDERS"
2524       , Whitespace
2525       , Plaintext "OR"
2526       , Whitespace
2527       , Plaintext "CONTRIBUTORS"
2528       , Whitespace
2529       , Plaintext "BE"
2530       , Whitespace
2531       , Plaintext "LIABLE"
2532       , Whitespace
2533       , Plaintext "FOR"
2534       , Whitespace
2535       , Plaintext "ANY"
2536       , Whitespace
2537       , Plaintext "DIRECT,"
2538       , Whitespace
2539       , Plaintext "INDIRECT,"
2540       , Whitespace
2541       , Plaintext "INCIDENTAL,"
2542       , Whitespace
2543       , Plaintext "SPECIAL,"
2544       , Whitespace
2545       , Plaintext "EXEMPLARY,"
2546       , Whitespace
2547       , Plaintext "OR"
2548       , Whitespace
2549       , Plaintext "CONSEQUENTIAL"
2550       , Whitespace
2551       , Plaintext "DAMAGES"
2552       , Whitespace
2553       , Plaintext "(INCLUDING,"
2554       , Whitespace
2555       , Plaintext "BUT"
2556       , Whitespace
2557       , Plaintext "NOT"
2558       , Whitespace
2559       , Plaintext "LIMITED"
2560       , Whitespace
2561       , Plaintext "TO,"
2562       , Whitespace
2563       , Plaintext "PROCUREMENT"
2564       , Whitespace
2565       , Plaintext "OF"
2566       , Whitespace
2567       , Plaintext "SUBSTITUTE"
2568       , Whitespace
2569       , Plaintext "GOODS"
2570       , Whitespace
2571       , Plaintext "OR"
2572       , Whitespace
2573       , Plaintext "SERVICES;"
2574       , Whitespace
2575       , Plaintext "LOSS"
2576       , Whitespace
2577       , Plaintext "OF"
2578       , Whitespace
2579       , Plaintext "USE,"
2580       , Whitespace
2581       , Plaintext "DATA,"
2582       , Whitespace
2583       , Plaintext "OR"
2584       , Whitespace
2585       , Plaintext "PROFITS;"
2586       , Whitespace
2587       , Plaintext "OR"
2588       , Whitespace
2589       , Plaintext "BUSINESS"
2590       , Whitespace
2591       , Plaintext "INTERRUPTION)"
2592       , Whitespace
2593       , Plaintext "HOWEVER"
2594       , Whitespace
2595       , Plaintext "CAUSED"
2596       , Whitespace
2597       , Plaintext "AND"
2598       , Whitespace
2599       , Plaintext "ON"
2600       , Whitespace
2601       , Plaintext "ANY"
2602       , Whitespace
2603       , Plaintext "THEORY"
2604       , Whitespace
2605       , Plaintext "OF"
2606       , Whitespace
2607       , Plaintext "LIABILITY,"
2608       , Whitespace
2609       , Plaintext "WHETHER"
2610       , Whitespace
2611       , Plaintext "IN"
2612       , Whitespace
2613       , Plaintext "CONTRACT,"
2614       , Whitespace
2615       , Plaintext "STRICT"
2616       , Whitespace
2617       , Plaintext "LIABILITY,"
2618       , Whitespace
2619       , Plaintext "OR"
2620       , Whitespace
2621       , Plaintext "TORT"
2622       , Whitespace
2623       , Plaintext "(INCLUDING"
2624       , Whitespace
2625       , Plaintext "NEGLIGENCE"
2626       , Whitespace
2627       , Plaintext "OR"
2628       , Whitespace
2629       , Plaintext "OTHERWISE)"
2630       , Whitespace
2631       , Plaintext "ARISING"
2632       , Whitespace
2633       , Plaintext "IN"
2634       , Whitespace
2635       , Plaintext "ANY"
2636       , Whitespace
2637       , Plaintext "WAY"
2638       , Whitespace
2639       , Plaintext "OUT"
2640       , Whitespace
2641       , Plaintext "OF"
2642       , Whitespace
2643       , Plaintext "THE"
2644       , Whitespace
2645       , Plaintext "USE"
2646       , Whitespace
2647       , Plaintext "OF"
2648       , Whitespace
2649       , Plaintext "THIS"
2650       , Whitespace
2651       , Plaintext "SOFTWARE,"
2652       , Whitespace
2653       , Plaintext "EVEN"
2654       , Whitespace
2655       , Plaintext "IF"
2656       , Whitespace
2657       , Plaintext "ADVISED"
2658       , Whitespace
2659       , Plaintext "OF"
2660       , Whitespace
2661       , Plaintext "THE"
2662       , Whitespace
2663       , Plaintext "POSSIBILITY"
2664       , Whitespace
2665       , Plaintext "OF"
2666       , Whitespace
2667       , Plaintext "SUCH"
2668       , Whitespace
2669       , Plaintext "DAMAGE."
2670       ]
2671   , HeadingAnnotation "Development"
2672   , SubheadingAnnotation "Contributing patches"
2673   , Paragraph
2674       [ Plaintext "Patches"
2675       , Whitespace
2676       , Plaintext "can"
2677       , Whitespace
2678       , Plaintext "be"
2679       , Whitespace
2680       , Plaintext "sent"
2681       , Whitespace
2682       , Plaintext "via"
2683       , Whitespace
2684       , Plaintext "mail"
2685       , Whitespace
2686       , Plaintext "to"
2687       , Whitespace
2688       , Plaintext "greg@hurrell.net,"
2689       , Whitespace
2690       , Plaintext "or"
2691       , Whitespace
2692       , Plaintext "as"
2693       , Whitespace
2694       , Plaintext "GitHub"
2695       , Whitespace
2696       , Plaintext "pull"
2697       , Whitespace
2698       , Plaintext "requests"
2699       , Whitespace
2700       , Plaintext "at:"
2701       , Whitespace
2702       , Plaintext "https://github.com/wincent/loupe/pulls"
2703       ]
2704   , SubheadingAnnotation "Cutting a new release"
2705   , Paragraph
2706       [ Plaintext "At"
2707       , Whitespace
2708       , Plaintext "the"
2709       , Whitespace
2710       , Plaintext "moment"
2711       , Whitespace
2712       , Plaintext "the"
2713       , Whitespace
2714       , Plaintext "release"
2715       , Whitespace
2716       , Plaintext "process"
2717       , Whitespace
2718       , Plaintext "is"
2719       , Whitespace
2720       , Plaintext "manual:"
2721       ]
2722   , List
2723       [ ListItem
2724           [ Plaintext "Perform"
2725           , Whitespace
2726           , Plaintext "final"
2727           , Whitespace
2728           , Plaintext "sanity"
2729           , Whitespace
2730           , Plaintext "checks"
2731           , Whitespace
2732           , Plaintext "and"
2733           , Whitespace
2734           , Plaintext "manual"
2735           , Whitespace
2736           , Plaintext "testing"
2737           ]
2738       , ListItem
2739           [ Plaintext "Update"
2740           , Whitespace
2741           , Plaintext "the"
2742           , Whitespace
2743           , Link "loupe-history"
2744           , Whitespace
2745           , Plaintext "section"
2746           , Whitespace
2747           , Plaintext "of"
2748           , Whitespace
2749           , Plaintext "the"
2750           , Whitespace
2751           , Plaintext "documentation"
2752           ]
2753       , ListItem
2754           [ Plaintext "Verify"
2755           , Whitespace
2756           , Plaintext "clean"
2757           , Whitespace
2758           , Plaintext "work"
2759           , Whitespace
2760           , Plaintext "tree:"
2761           ]
2762       ]
2763   , Fenced [ "git status" ]
2764   , List
2765       [ ListItem
2766           [ Plaintext "Tag"
2767           , Whitespace
2768           , Plaintext "the"
2769           , Whitespace
2770           , Plaintext "release:"
2771           ]
2772       ]
2773   , Fenced [ "git tag -s -m \"$VERSION release\" $VERSION" ]
2774   , List
2775       [ ListItem
2776           [ Plaintext "Publish"
2777           , Whitespace
2778           , Plaintext "the"
2779           , Whitespace
2780           , Plaintext "code:"
2781           ]
2782       ]
2783   , Fenced
2784       [ "git push origin master --follow-tags"
2785       , "git push github master --follow-tags"
2786       ]
2787   , List
2788       [ ListItem
2789           [ Plaintext "Produce"
2790           , Whitespace
2791           , Plaintext "the"
2792           , Whitespace
2793           , Plaintext "release"
2794           , Whitespace
2795           , Plaintext "archive:"
2796           ]
2797       ]
2798   , Fenced [ "git archive -o loupe-$VERSION.zip HEAD -- ." ]
2799   , List
2800       [ ListItem
2801           [ Plaintext "Upload"
2802           , Whitespace
2803           , Plaintext "to"
2804           , Whitespace
2805           , Plaintext "http://www.vim.org/scripts/script.php?script_id=5215"
2806           ]
2807       ]
2808   , HeadingAnnotation "Authors"
2809   , Paragraph
2810       [ Plaintext "Loupe"
2811       , Whitespace
2812       , Plaintext "is"
2813       , Whitespace
2814       , Plaintext "written"
2815       , Whitespace
2816       , Plaintext "and"
2817       , Whitespace
2818       , Plaintext "maintained"
2819       , Whitespace
2820       , Plaintext "by"
2821       , Whitespace
2822       , Plaintext "Greg"
2823       , Whitespace
2824       , Plaintext "Hurrell"
2825       , Whitespace
2826       , Plaintext "<greg@hurrell.net>."
2827       ]
2828   , Paragraph
2829       [ Plaintext "The"
2830       , Whitespace
2831       , Plaintext "original"
2832       , Whitespace
2833       , Plaintext "idea"
2834       , Whitespace
2835       , Plaintext "for"
2836       , Whitespace
2837       , Plaintext "the"
2838       , Whitespace
2839       , Link "g:LoupeHighlightGroup"
2840       , Whitespace
2841       , Plaintext "feature"
2842       , Whitespace
2843       , Plaintext "was"
2844       , Whitespace
2845       , Plaintext "taken"
2846       , Whitespace
2847       , Plaintext "from"
2848       , Whitespace
2849       , Plaintext "Damian"
2850       , Whitespace
2851       , Plaintext "Conway's"
2852       , Whitespace
2853       , Plaintext "Vim"
2854       , Whitespace
2855       , Plaintext "set-up:"
2856       ]
2857   , List
2858       [ ListItem
2859           [ Plaintext
2860               "https://github.com/thoughtstream/Damian-Conway-s-Vim-Setup/blob/master/plugin/hlnext.vim"
2861           ]
2862       ]
2863   , Paragraph
2864       [ Plaintext "Which"
2865       , Whitespace
2866       , Plaintext "he"
2867       , Whitespace
2868       , Plaintext "discussed"
2869       , Whitespace
2870       , Plaintext "in"
2871       , Whitespace
2872       , Plaintext "his"
2873       , Whitespace
2874       , Plaintext "\"More"
2875       , Whitespace
2876       , Plaintext "Instantly"
2877       , Whitespace
2878       , Plaintext "Better"
2879       , Whitespace
2880       , Plaintext "Vim\""
2881       , Whitespace
2882       , Plaintext "presentation"
2883       , Whitespace
2884       , Plaintext "at"
2885       , Whitespace
2886       , Plaintext "OSCON"
2887       , Whitespace
2888       , Plaintext "2013:"
2889       ]
2890   , List
2891       [ ListItem
2892           [ Plaintext "https://www.youtube.com/watch?v=aHm36-na4-4" ]
2893       ]
2894   , HeadingAnnotation "History"
2895   , SubheadingAnnotation "1.1 (15 June 2016)"
2896   , List
2897       [ ListItem
2898           [ Plaintext "Make"
2899           , Whitespace
2900           , Plaintext "compatible"
2901           , Whitespace
2902           , Plaintext "with"
2903           , Whitespace
2904           , Plaintext "older"
2905           , Whitespace
2906           , Plaintext "versions"
2907           , Whitespace
2908           , Plaintext "of"
2909           , Whitespace
2910           , Plaintext "Vim"
2911           , Whitespace
2912           , Plaintext "that"
2913           , Whitespace
2914           , Plaintext "do"
2915           , Whitespace
2916           , Plaintext "not"
2917           , Whitespace
2918           , Plaintext "have"
2919           , Whitespace
2920           , Link "v:hlsearch"
2921           , Plaintext "."
2922           ]
2923       , ListItem
2924           [ Plaintext "Add"
2925           , Whitespace
2926           , Plaintext "support"
2927           , Whitespace
2928           , Plaintext "for"
2929           , Whitespace
2930           , Plaintext "special"
2931           , Whitespace
2932           , Plaintext "delimiters"
2933           , Whitespace
2934           , Plaintext "with"
2935           , Whitespace
2936           , Link ":substitute"
2937           , Whitespace
2938           , Plaintext "command."
2939           ]
2940       ]
2941   , SubheadingAnnotation "1.0 (28 December 2015)"
2942   , List
2943       [ ListItem
2944           [ Plaintext "Renamed"
2945           , Whitespace
2946           , Plaintext "the"
2947           , Whitespace
2948           , Link "<Plug>LoupeClearHighlight"
2949           , Whitespace
2950           , Plaintext "mapping"
2951           , Whitespace
2952           , Plaintext "to"
2953           , Whitespace
2954           , Link "<Plug>(LoupeClearHighlight)"
2955           , Plaintext "."
2956           ]
2957       ]
2958   , SubheadingAnnotation "0.1 (5 July 2015)"
2959   , List
2960       [ ListItem
2961           [ Plaintext "Initial"
2962           , Whitespace
2963           , Plaintext "release,"
2964           , Whitespace
2965           , Plaintext "extracted"
2966           , Whitespace
2967           , Plaintext "from"
2968           , Whitespace
2969           , Plaintext "my"
2970           , Whitespace
2971           , Plaintext "dotfiles"
2972           , Whitespace
2973           , Plaintext "(https://github.com/wincent/wincent)."
2974           ]
2975       ]
2976   ]