CmdHelp: Added extension list to the 'help' command

This commit is contained in:
Paul Beckingham 2016-08-05 17:40:33 -04:00
parent 140ec98aaa
commit 64cf3fad76
4 changed files with 22 additions and 8 deletions

View file

@ -29,7 +29,7 @@
#include <iostream>
////////////////////////////////////////////////////////////////////////////////
int CmdHelpUsage ()
int CmdHelpUsage (const Extensions& extensions)
{
// TODO This is going to need more formatting.
// TODO Align the arg types?
@ -65,8 +65,19 @@ int CmdHelpUsage ()
<< " timew track <interval> [<tag> ...]\n"
<< " timew untag @<id> [@<id> ...] <tag> [<tag> ...]\n"
<< " timew week [<interval>] [<tag> ...]\n"
<< '\n'
<< "Additional help:\n"
<< '\n';
if (extensions.all ().size ())
{
std::cout << "Extensions (extensions do not provide help):\n";
for (auto& ext : extensions.all ())
std::cout << " " << File (ext).name () << '\n';
std::cout << '\n';
}
std::cout << "Additional help:\n"
<< " timew help <command>\n"
<< " timew help interval\n"
<< " timew help hints\n"
@ -104,7 +115,9 @@ int CmdHelpUsage ()
//
// Strict 80-character limit.
// Provide examples where appropriate - enough to cover all uses.
int CmdHelp (const CLI& cli)
int CmdHelp (
const CLI& cli,
const Extensions& extensions)
{
auto words = cli.getWords ();
if (words.size ())
@ -906,7 +919,7 @@ int CmdHelp (const CLI& cli)
return 0;
}
return CmdHelpUsage ();
return CmdHelpUsage (extensions);
}
////////////////////////////////////////////////////////////////////////////////

View file

@ -43,8 +43,8 @@ int CmdExtensions ( Rules&, const Extensions&);
int CmdFill (const CLI&, Rules&, Database& );
int CmdGaps (const CLI&, Rules&, Database& );
int CmdGet (const CLI&, Rules&, Database& );
int CmdHelpUsage ( );
int CmdHelp (const CLI& );
int CmdHelpUsage ( const Extensions&);
int CmdHelp (const CLI&, const Extensions&);
int CmdJoin (const CLI&, Rules&, Database& );
int CmdLengthen (const CLI&, Rules&, Database& );
int CmdMove (const CLI&, Rules&, Database& );

View file

@ -268,7 +268,7 @@ int dispatchCommand (
*/
else if (command == "gaps") status = CmdGaps (cli, rules, database );
else if (command == "get") status = CmdGet (cli, rules, database );
else if (command == "help") status = CmdHelp (cli );
else if (command == "help") status = CmdHelp (cli, extensions);
else if (command == "join") status = CmdJoin (cli, rules, database );
else if (command == "lengthen") status = CmdLengthen (cli, rules, database );
else if (command == "month") status = CmdChartMonth (cli, rules, database );