public void Ctor1() { var binding = KeyBinding.Parse("Global::Ctrl+Left Arrow"); var command = new CommandKeyBinding(new CommandId(), "Foo", binding); var data = new KeyBindingData(new ReadOnlyCollection<CommandKeyBinding>(new CommandKeyBinding[] { command })); Assert.Equal("Ctrl+Left Arrow", data.KeyName); Assert.False(data.HandledByVsVim); }
private void ComputeKeyBindings() { // This snapshot contains a list of active keys, and keys which are still conflicting. We will group all // bindings by the initial character, and will consider the entire group as being handled by VsVim as long // as one is being handled. var handledByVsVim = _snapshot.Removed.ToLookup(binding => binding.KeyBinding.FirstKeyStroke); var handledByVs = _snapshot.Conflicting.ToLookup(binding => binding.KeyBinding.FirstKeyStroke); var allFirstKeys = handledByVsVim.Select(group => group.Key) .Union(handledByVs.Select(group => group.Key)); foreach (var firstKey in allFirstKeys) { var data = new KeyBindingData(handledByVsVim[firstKey].Union(handledByVs[firstKey]).ToReadOnlyCollection()); data.HandledByVsVim = handledByVsVim.Contains(firstKey); _keyBindingList.Add(data); if (IsAdvanced(firstKey)) { _advancedSet.Add(data); } } }