Command margin colors exposed in settings
Reverting the guard character
Add ability to dump the keyboard

This puts the raw keyboard information into a file that users can email
to me.  This will enable me to better debug some of the keyboard issues
users are seeing that I can't repro locally
Merge pull request #1484 from v-yadli/master

Command margin colors exposed in settings
Keep VsVim out of Parallel Watch Window

The parallel watch window is labeling itself as a document and hence
VsVim is installing itself there.  This is a single line editor that
shouldn't be hosting a plugin like VsVim.

Long term I'm going to work with the parallel watch team to fix this
bug.  Short term add some logic to prevent VsVim from inserting itself
there.

closes #1490
Only call ShouldCreateVimBuffer once

This code changes Vim so that it only calls ShouldCreateVimBuffer once
per ITextView instance.  The old code didn't cache this result and hence
ended up calling into the host every time.

In general this isn't a problem and results in it being asked a small
number of times.  Certain scenarios like the Command window though use
the editor in such a way that the code path gets excercised a large
number of times (possibly on every key stroke).

The determination is potentially a non-trivial calculation hence caching
the value.

Also it just makes logical sense.  If we allow the host to change their
mind on subsequent calls then it would result in an IVimBuffer with only
a fraction of the services enabled.  The user would just see this as
buggy.  No reason to allow it
Fixes issue #1493 vap selects too much
Add IncludeAllScopes property

Give the user the option of removing bindings for all scopes, not just
the ones VsVim cares about by default.  Not completely done yet but the
core logic is now in place to support it
IncludeAllScopes plumbed through the system
Merge pull request #1495 from jaredpar/fixes-unnamed-commands

Fixes unnamed commands
Fix a unit test failure
Fix another unit test failure
Merge pull request #1494 from Mharlin/master

Fixes issue #1493 vap selects too much
Registers in substitute expressions

Add support for using \=@x in substitute expressions where 'x' is a
register name

closes #1315
closes #1144
Add support for more character classes

Added support for \i, \k, \p, \f and their non-digit versions.

I did not add full support for the underlying options at this time.  If
there is sufficient demand I can add it later

closes #456
Better error messages on bad regexs

closes #1239
Non-greedy regex support

closes #1248
Search forward start position fix

This fixes the position which a forward search occurs from.  Previously
the search would begin at the caret point + 1.  This allowed searches
like 'N' to function and I thought it was the correct behavior.

Experimentally though I found a different behavior.  If the text under
the caret matches the search then the search begins at the end of the
match.  The +1 behavior was partially correct and worked for a good deal
of patterns which is why this wasn't noticed until now

closes #1392
Add way to force remove TSQL bindings

There are a set of TSQL command entries which a) have no name and b) use
keystrokes
Vim users would like to use.  In general this isn't a problem becuase
VsVim is
capable of removing conflicting key bindings via the options page

The problem here is the commands are unnamed.  Any attempt to change a
key binding
on an unnamed command (via Command::put_Bindings) will fail.  There is
no good reason
for this that I was able to track down, it's just the behavior.

There is some hope this can be changed in 2015 or the next release but
in the
short term I need to use a different hammer for changing the key
bindings.  This method
method removes the binding by doing the following

1. Add a key binding to a VsVim command where the key binding has the
same scope as the
TSQL key bindings
2. Remove the key bindings on the VsVim command

As a consequence of adding the key binding in #1 Visual Studio will
delete the key
binding on the TSQL command.  This type of deletion doesn't check for a
name and hence
succeeds.  The subsequent removal of the key binding to the fake VsVim
command effectively
fully clears the key binding which is what we want
Fix the exception on selection changed

The GetCodeWindow method was called on selection change events and it
was throwing a local exception when an error occurred.  Nothing wrong
here other than it made debugging exceptions difficult as it is a first
chance exception that keeps popping up.  Changed it to use a
non-exception path (except for Venus which can still throw)