diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2020-10-23 03:49:39 +0200 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2020-10-23 03:51:26 +0200 |
commit | 77973fc0266b454f44cdcc7782b1a3debdd6d7aa (patch) | |
tree | 8ea5ce1dda56b05df1af26e29f8b8e9737d63bc2 | |
parent | 61be9528e4b3eeb0e2366f386df1897709b21394 (diff) | |
download | sdn-77973fc0266b454f44cdcc7782b1a3debdd6d7aa.tar.gz sdn-77973fc0266b454f44cdcc7782b1a3debdd6d7aa.tar.xz sdn-77973fc0266b454f44cdcc7782b1a3debdd6d7aa.zip |
Group help message by action
Considerably more useful and concise.
-rw-r--r-- | sdn.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -979,11 +979,13 @@ fun show_help () { for (const auto &kv : g_binding_contexts) { fprintf (contents, "%s\n", underline (capitalize (kv.first + " key bindings")).c_str ()); - for (const auto &kv : *kv.second) { - auto key = encode_key (kv.first); - key.append (max (0, 10 - compute_width (to_wide (key))), ' '); - fprintf (contents, "%s %s\n", - key.c_str (), g.action_names[kv.second].c_str ()); + map<action, string> agg; + for (const auto &kv : *kv.second) + agg[kv.second] += encode_key (kv.first) + " "; + for (const auto &kv : agg) { + auto action = g.action_names[kv.first]; + action.append (max (0, 20 - int (action.length ())), ' '); + fprintf (contents, "%s %s\n", action.c_str (), kv.second.c_str ()); } fprintf (contents, "\n"); } |