コード例 #1
0
        public static string ToString(ViKey key)
        {
            var sb = new StringBuilder();

            ViKeyNotation.AppendToString(key, sb);
            return(sb.ToString());
        }
コード例 #2
0
        static ViKey FlattenControlMappings(ViKey k)
        {
            ViKey ret;

            if ((k.Modifiers & ModifierType.ControlMask) == k.Modifiers &&
                controlMappings.TryGetValue(k.Char, out ret))
            {
                return(ret);
            }
            return(k);
        }
コード例 #3
0
        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(">");
        }
コード例 #4
0
 public static bool IsValid(ViKey key)
 {
     return(GetString(key.Char) != null || keyStringMaps.ContainsKey(key.Key));
 }
コード例 #5
0
 public void Add(ViKey key, ViBuilder builder, bool runInstantly)
 {
     this.builders[key] = new BuilderAction(builder, runInstantly);
 }
コード例 #6
0
 public void Add(ViKey key, ViBuilder builder)
 {
     Add(key, builder, false);
 }
コード例 #7
0
 public void Add(ViKey key, Action <TextEditorData> action)
 {
     this.actions[key] = (ViEditor ed) => action(ed.Data);
 }
コード例 #8
0
 public void Add(ViKey key, Action <ViEditor> action)
 {
     this.actions[key] = action;
 }
コード例 #9
0
 public void Add(ViKey key, ViCommandMap map)
 {
     Add(key, map.Builder);
 }