Vsvim: GoToImplementation puts VsVim into visual mode

Created on 14 Jun 2017  路  9Comments  路  Source: VsVim/VsVim

Versions:
VsVim 2.4.0.0
Visual Studio 2015 Update 3

Found similar issue with GoToDefinition years back https://github.com/jaredpar/VsVim/issues/891
btw, GoToDefinition is still working correctly.
@jaredpar Thanks a lot for creating VsVim.

bug

All 9 comments

the write command (:w) also does this for me

I have the same issue as @connorjsmith, except it's with every command. The only thing in my .vsvimrc swaps the colon and semicolon keys.

Believe @333fred saw this too. In particular happens when the Go To operation opens a file vs. navigating to one that is already open. Looking into it.

Note that with 2.4.0 this will cause https://github.com/jaredpar/VsVim/issues/1955, so you won't be able to escape visual mode.

Additional info: If I have ReSharper installed, GoToImplementation doesn't enter visual mode.

btw, 2.4.1 fixed the escaping visual mode issue, thanks.

Versions:
VsVim 2.4.1.0
Visual Studio 2015 CE Update 3
Without ReSharper
still, puts VsVim into visual mode

I'm unable to reproduce this with the latest release (2.5.0). Tried a number of scenarios:

  • Go to def across languages: F# and C#
  • Go to def to a file that is opened
  • Go to def to a file that is closed
  • Tried all above with both gd and F12

If this pops up again can you add the scenario I'm missing here and I'll look into it. Thanks!

@jaredpar I've been dealing with this for a while and wanted to add a few more details. F12 (Go to Definition) is working, but Ctrl+F12 (Go to Implementation, when there is only a single implementation of an interface) still activates visual mode in the next file. I haven't gone through all of the different permutations of how many implementations are defined, same file vs. different file, etc., but based on your comment I thought I'd point out that it's Ctrl+F12 rather than F12.

I looked into the Ctrl+F12 key mentioned by @jakewisse and it does not result in the expected command VSConstants.VSStd97CmdID.GotoDecl, which would be handled correctly, even though it is bound to Edit.GoToDeclaration.

It wasn't easy (because there are a bazillion commands whizzing by), but I found the command for Ctrl+F12 in the debugger (at least for C#):

+       commandGroup    {b61e1a20-8c13-49a9-a727-a0ec091647dd}  System.Guid
        commandId   512 uint
+       variantIn   0x00000000  System.IntPtr
+       keyInput    null    Vim.KeyInput
        kind    UserInput   Vim.VisualStudio.EditCommandKind
        isRawText   false   bool

The command group is apparently a Rosyln thing and so we can't refer to them because of our ancient VS2010 references. Anyway, I added a special case (aka hard-coded) for this command in #2132.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

deevus picture deevus  路  4Comments

kalebpederson picture kalebpederson  路  6Comments

myopicmage picture myopicmage  路  5Comments

mfrischknecht picture mfrischknecht  路  6Comments

thelamb picture thelamb  路  5Comments