public static string ToString(ViKey key) { var sb = new StringBuilder(); ViKeyNotation.AppendToString(key, sb); return(sb.ToString()); }
static ViKey FlattenControlMappings(ViKey k) { ViKey ret; if ((k.Modifiers & ModifierType.ControlMask) == k.Modifiers && controlMappings.TryGetValue(k.Char, out ret)) { return(ret); } return(k); }
static void AppendToString(ViKey key, StringBuilder sb) { var c = GetString(key.Char); if (c != null && key.Char != '\0') { if (c.Length == 1 && key.Modifiers == ModifierType.None) { sb.Append(c); return; } } else { c = GetString(key.Key); } if (c == null) { var msg = string.Format("Invalid key char=0x{0:x} key={1}", (int)key.Char, key.Key); throw new InvalidOperationException(msg); } sb.Append("<"); if ((key.Modifiers & ModifierType.ShiftMask) != 0) { sb.Append("S-"); } if ((key.Modifiers & ModifierType.ControlMask) != 0) { sb.Append("C-"); } if ((key.Modifiers & ModifierType.Mod1Mask) != 0) { sb.Append("M-"); } if ((key.Modifiers & ModifierType.MetaMask) != 0) //HACK: Mac command key { sb.Append("D-"); } sb.Append(c); sb.Append(">"); }
public static bool IsValid(ViKey key) { return(GetString(key.Char) != null || keyStringMaps.ContainsKey(key.Key)); }
public void Add(ViKey key, ViBuilder builder, bool runInstantly) { this.builders[key] = new BuilderAction(builder, runInstantly); }
public void Add(ViKey key, ViBuilder builder) { Add(key, builder, false); }
public void Add(ViKey key, Action <TextEditorData> action) { this.actions[key] = (ViEditor ed) => action(ed.Data); }
public void Add(ViKey key, Action <ViEditor> action) { this.actions[key] = action; }
public void Add(ViKey key, ViCommandMap map) { Add(key, map.Builder); }