1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2024-09-20 11:11:03 -04:00
This commit is contained in:
Eelco Dolstra 2016-07-21 11:12:45 +02:00
commit 00ee039c27

View file

@ -18,6 +18,13 @@
using namespace std; using namespace std;
using namespace nix; using namespace nix;
#define ESC_RED "\033[31m"
#define ESC_GRE "\033[32m"
#define ESC_YEL "\033[33m"
#define ESC_BLU "\033[34m"
#define ESC_MAG "\033[35m"
#define ESC_CYA "\033[36m"
#define ESC_END "\033[0m"
struct NixRepl struct NixRepl
{ {
@ -540,23 +547,25 @@ std::ostream & NixRepl::printValue(std::ostream & str, Value & v, unsigned int m
switch (v.type) { switch (v.type) {
case tInt: case tInt:
str << v.integer; str << ESC_CYA << v.integer << ESC_END;
break; break;
case tBool: case tBool:
str << (v.boolean ? "true" : "false"); str << ESC_CYA << (v.boolean ? "true" : "false") << ESC_END;
break; break;
case tString: case tString:
str << ESC_YEL;
printStringValue(str, v.string.s); printStringValue(str, v.string.s);
str << ESC_END;
break; break;
case tPath: case tPath:
str << v.path; // !!! escaping? str << ESC_GRE << v.path << ESC_END; // !!! escaping?
break; break;
case tNull: case tNull:
str << "null"; str << ESC_CYA "null" ESC_END;
break; break;
case tAttrs: { case tAttrs: {
@ -609,7 +618,7 @@ std::ostream & NixRepl::printValue(std::ostream & str, Value & v, unsigned int m
try { try {
printValue(str, *i.second, maxDepth - 1, seen); printValue(str, *i.second, maxDepth - 1, seen);
} catch (AssertionError & e) { } catch (AssertionError & e) {
str << "«error: " << e.msg() << "»"; str << ESC_RED "«error: " << e.msg() << "»" ESC_END;
} }
str << "; "; str << "; ";
} }
@ -635,7 +644,7 @@ std::ostream & NixRepl::printValue(std::ostream & str, Value & v, unsigned int m
try { try {
printValue(str, *v.listElems()[n], maxDepth - 1, seen); printValue(str, *v.listElems()[n], maxDepth - 1, seen);
} catch (AssertionError & e) { } catch (AssertionError & e) {
str << "«error: " << e.msg() << "»"; str << ESC_RED "«error: " << e.msg() << "»" ESC_END;
} }
str << " "; str << " ";
} }
@ -645,19 +654,19 @@ std::ostream & NixRepl::printValue(std::ostream & str, Value & v, unsigned int m
break; break;
case tLambda: case tLambda:
str << "«lambda»"; str << ESC_BLU "«lambda»" ESC_END;
break; break;
case tPrimOp: case tPrimOp:
str << "«primop»"; str << ESC_MAG "«primop»" ESC_END;
break; break;
case tPrimOpApp: case tPrimOpApp:
str << "«primop-app»"; str << ESC_BLU "«primop-app»" ESC_END;
break; break;
default: default:
str << "«unknown»"; str << ESC_RED "«unknown»" ESC_END;
break; break;
} }