////////////////////////////////////////////////////////////////////////////////
//
-// Copyright 2006 - 2017, Paul Beckingham, Federico Hernandez.
+// Copyright 2006 - 2017, Paul Beckingham, Federico Hernandez, 2020 Armaan Bhojwani
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
#include <cmake.h>
#include <vector>
#include <string>
-#include <Color.h>
-static std::vector <std::string> contextColors = {
- "bold white on red",
- "bold white on blue",
- "bold white on green",
- "bold white on magenta",
- "black on cyan",
- "black on yellow",
- "black on white",
-};
+////////////////////////////////////////////////////////////////////////////////
static std::vector <std::string> contexts;
-
std::string composeContexts (bool pretty = false);
-////////////////////////////////////////////////////////////////////////////////
int promptClear ()
{
contexts.clear ();
return 0;
}
-////////////////////////////////////////////////////////////////////////////////
int promptRemove ()
{
if (contexts.size ())
}
////////////////////////////////////////////////////////////////////////////////
+
int promptAdd (const std::string& context)
{
contexts.push_back (context);
}
////////////////////////////////////////////////////////////////////////////////
-std::string composeContexts (bool pretty /* = false */)
-{
- std::string combined;
- for (unsigned int i = 0; i < contexts.size (); i++)
- if (pretty)
- combined += (combined != "" ? " " : "")
- + std::string ("\001")
- + Color::colorize ("\002 " + contexts[i] + " \001", contextColors[i % contextColors.size ()])
- + "\002";
- else
- combined += (combined != "" ? " " : "") + contexts[i];
- if (combined != "")
- combined += ' ';
-
- return combined;
-}
-
-////////////////////////////////////////////////////////////////////////////////
std::string promptCompose ()
{
- // TODO The prompt may be composed of different elements:
- // TODO - The configurable text
- // TODO - The accumulated context, as colored tokens.
- // TODO - sync status
- // TODO - time
- auto decoration = composeContexts (true);
- if (decoration.length ())
- return "task " + decoration + "> ";
-
- return "tasksh> ";
+ return "% ";
}
////////////////////////////////////////////////////////////////////////////////