]> git.wincent.com - docvim.git/commitdiff
Make sure generated headings appear in TOC node
authorGreg Hurrell <greg@hurrell.net>
Thu, 9 Jun 2016 05:03:43 +0000 (22:03 -0700)
committerGreg Hurrell <greg@hurrell.net>
Thu, 9 Jun 2016 05:03:43 +0000 (22:03 -0700)
lib/Docvim/Visitor/Heading.hs
tests/fixtures/parser/integration-ferret-plugin.golden

index 66232201c548f4c805f29e6229c5603a3bd63e4a..29c2504f26daf5565ad03cca28c53a181758c94e 100644 (file)
@@ -12,7 +12,11 @@ import Docvim.AST
 getHeadings :: Node -> [String]
 getHeadings = walk gather []
   where
+    gather CommandsAnnotation    = ["Commands"]
+    gather FunctionsAnnotation   = ["Functions"]
     gather (HeadingAnnotation h) = [h]
+    gather MappingsAnnotation    = ["Mappings"]
+    gather OptionsAnnotation     = ["Options"]
     gather _                     = []
 
 -- | Injects a table of contents immediately after any `PluginAnnotation` in an
@@ -20,8 +24,8 @@ getHeadings = walk gather []
 -- TODO: warn or error if there is more than one.
 -- or use a monadic variant of transform to do only the first...
 injectTOC :: Node -> Node
-injectTOC ast = transform inject ast
+injectTOC ast = transform inject ast
   where
     inject n = case n of
-      PluginAnnotation {} -> DocBlock $ [n] ++ [TOC $ getHeadings ast]
+      PluginAnnotation {} -> DocBlock $ n : [TOC $ getHeadings ast]
       _                   -> n
index f653324361de169ea00a9b7a993de8c3505e685e..9045463c67f8e9f4c9227a459e5c38d814efe2aa 100644 (file)
@@ -4,6 +4,9 @@ Project
       , TOC
           [ "Intro"
           , "Installation"
+          , "Options"
+          , "Commands"
+          , "Mappings"
           , "Custom autocommands"
           , "Overrides"
           , "Troubleshooting"