[document command flags in darcs help markdown Guillaume Hoffmann **20120707221502 Ignore-this: e0073fab05963823303e69d584ec0d63 ] hunk ./src/Darcs/UI/Arguments.hs 156 + , optionsMarkdown hunk ./src/Darcs/UI/Arguments.hs 1504 + + + +-- | For darcs help markdown +optionsMarkdown :: [DarcsOption] -> String +optionsMarkdown opts = unlines + [ "", unlines (map optionListMarkdown opts), "
" + ] + +optionListMarkdown :: DarcsOption -> String +optionListMarkdown (DarcsSingleOption o) = optionMarkdown o +optionListMarkdown (DarcsMultipleChoiceOption os) = unlines (map optionMarkdown os) +optionListMarkdown (DarcsMutuallyExclusive os _) = unlines (map optionMarkdown os) + +optionMarkdown :: DarcsAtomicOption -> String +optionMarkdown (DarcsInternalOption _) = "" +optionMarkdown (DarcsNoArgOption a b _ h) = unlines + [ "", "", showShortOptionsMd a, "" + , "", showLongOptionsMd b , "" + , "", h, "" + , "" ] +optionMarkdown (DarcsArgOption a b _ arg h) = unlines + [ "", "", showShortOptionsMd a, "" + , "", showLongOptionsMd (map (++(" "++arg)) b), "" + , "", h, "", "" ] +optionMarkdown (DarcsAbsPathOrStdOption a b _ arg h) = unlines + [ "", "", showShortOptionsMd a, "" + , "", showLongOptionsMd (map (++(" "++arg)) b), "" + , "", h, "", "" ] +optionMarkdown (DarcsAbsPathOption a b _ arg h) = unlines + [ "", "", showShortOptionsMd a, "" + , "", showLongOptionsMd (map (++(" "++arg)) b), "" + , "", h, "", "" ] +optionMarkdown (DarcsOptAbsPathOption a b _ _ arg h) = unlines + [ "", "", showShortOptionsMd a, "" + , "", showLongOptionsMd (map (++("[="++arg++"]")) b), "" + , "", h, "", "" ] + +showShortOptionsMd :: [Char] -> String +showShortOptionsMd [] = "" +showShortOptionsMd [c] = "`-"++[c]++"` " +showShortOptionsMd (c:cs) = "`-"++[c]++"`,"++showShortOptionsMd cs + +showLongOptionsMd :: [String] -> String +showLongOptionsMd [] = " " +showLongOptionsMd [s] = "`--" ++ s ++ "` " +showLongOptionsMd (s:ss) = "`--" ++ s ++ "`,"++ showLongOptionsMd ss + hunk ./src/Darcs/UI/Commands/Help.hs 28 + , optionsMarkdown hunk ./src/Darcs/UI/Commands/Help.hs 309 -markdownLines = [ - "darcs " ++ version, "", - unlines commands - ] +markdownLines = + [ "Darcs " ++ version ++ " commands reference" + , "", unlines commands ] hunk ./src/Darcs/UI/Commands/Help.hs 315 - where iter :: [String] -> CommandControl -> [String] - iter acc (GroupName x) = acc ++ ["# " ++ x, ""] - iter acc (HiddenCommand _) = acc - iter acc (CommandData c@SuperCommand {}) = - acc ++ concatMap - (render (commandName c ++ " ")) - (extractCommands (commandSubCommands c)) - iter acc (CommandData c) = acc ++ render "" c - render :: String -> DarcsCommand -> [String] - render prefix c = - ["## " ++ commandName c, "", - "darcs " ++ prefix ++ commandName c ++ " " ++ - concat (commandExtraArgHelp c), "", - commandHelp c] - + iter :: [String] -> CommandControl -> [String] + iter acc (GroupName x) = acc ++ ["# " ++ x, ""] + iter acc (HiddenCommand _) = acc + iter acc (CommandData c@SuperCommand {}) = + acc ++ concatMap + (render (commandName c ++ " ")) + (extractCommands (commandSubCommands c)) + iter acc (CommandData c) = acc ++ render "" c + render :: String -> DarcsCommand -> [String] + render prefix c = + [ "## " ++ prefix ++ commandName c + , "", "darcs " ++ prefix ++ commandName c ++ " [OPTION]... " ++ + unwords (commandExtraArgHelp c) + , "", commandDescription c + , "", commandHelp c + , "Options:", optionsMarkdown $ commandBasicOptions c + , if null opts2 then "" + else unlines ["Advanced Options:", optionsMarkdown opts2] + ] + where opts2 = commandAdvancedOptions c