Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 ViEmu "repeat dot" blocked by Visual Assist
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

akaito
New Member

3 Posts

Posted - Dec 08 2014 :  7:23:13 PM  Show Profile  Reply with Quote
After looking all over, this seems to be a relatively new problem. I'm using Visual Studio 2013 (in C++ projects only), Visual Assist 2048, ViEmu 3.2.1.

After setting "TrackCaretVisibility" to 00 as described here: http://support.wholetomato.com/default.asp?W271 , ViEmu and Visual Assist almost get along the way I'm used to. Now, though, when I use the "repeat dot" in Normal mode in ViEmu (just hitting "period") to repeat my last edit, Visual Assist consumes the command and inserts a period wherever the caret happens to be. This happens no matter the "Convert dot to -> (in C/C++)" and "Convert dot to -> if operator -> is overloaded" options, but doesn't happen with Visual Assist disabled.

The last time this (repeat dot) worked I was in Visual Studio 2012 with Visual Assist 2036 and ViEmu 3.0.13.

Any advice from other ViEmu/Visual Assist users? Is this issue known to be on the Visual Assist or ViEmu side of things?

Thanks, it's driving me crazy not having such a reflexive action do what it's supposed to do. :)

feline
Whole Tomato Software

United Kingdom
18755 Posts

Posted - Dec 08 2014 :  11:24:40 PM  Show Profile  Reply with Quote
When you say "wherever the caret happens to be", this is happening with the caret anywhere? So far I cannot reproduce this problem, but I may not be testing in the right location, or repeating the right sort of operations.

Could you post a couple of lines of code, and instructions for how you are triggering this?

I am testing with ViEmu 3.2.1, but I am not seeing any obvious option to download older versions of ViEmu. Do you still have the ViEmu 3.0.13 installer around, in case it would be useful with testing when this changed?

zen is the art of being at one with the two'ness
Go to Top of Page

akaito
New Member

3 Posts

Posted - Dec 10 2014 :  10:31:12 PM  Show Profile  Reply with Quote
Repro:

  1. File | New Project => Empty console project.

  2. Add source file (main.cpp).

  3. Write a basic int main (void) { return 5; } any way you like. At various points while typing anything in, Esc back to Normal mode and hit '.' to repeat the last edit.


Expected: ViEmu repeats the last edit. If that was something like "oint main<Esc>", expect another "int main" line to appear. (Note: May need to hit <Esc> twice instead of once, depending on appearance of auto-complete window.)
Actual: A period is inserted at the caret's location. In the previous example, the result will be "int mai.n".

Turns out I previously (when using VS2012) had ViEmu 3.0.6, not 3.0.13. Here's the installer for 3.0.6: https://www.dropbox.com/s/xx55t80vpounoj8/Install-ViEmuVS-3.0.6.exe?dl=0
Reminder: I'm not experiencing this issue in VS2012 with older versions of Visual Assist and ViEmu, but am experiencing it in VS2013 with the newer versions of both extensions. Unfortunately, I never used the older extensions in VS2013.

Process went as: install VS2013, install Update 3, install a few extensions from company repo (Productivity Power Tools 2013, RockMargin, VSColorOutput, Visual Studio 2013 Color Theme Editor, and a slightly older Visual Assist (by 1-2 months)). May have installed ViEmu before Visual Assist (and after all the others listed), or may have installed it after all of those listed. After encountering this repeat-dot issue, I installed the latest Visual Assist build obtained from the Whole Tomato website in the hope that it was an issue briefly in one or two builds.

In case they're helpful, here's some exported settings. ViEmu's settings are the default, plus "Insert a VS mark when ViEmu mark is set" (if that's not on by default).
Visual Assist settings: https://www.dropbox.com/s/v618cef9vc5kdd0/vax-20141210200626.reg?dl=0
Some selected Visual Studio settings for the keyboard and text editor: https://www.dropbox.com/s/40vf5cfvsu0fs2b/Exported-2014-12-10.vssettings?dl=0

If there's any more detail I can provide, please let me know. And thanks for the quick reply.

Edited by - akaito on Dec 10 2014 10:34:01 PM
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Dec 11 2014 :  11:28:26 PM  Show Profile  Reply with Quote
Our product name changed last year from Visual Assist X to Visual Assist. ViEmu has a workaround for alternate behavior with Visual Assist X, but our name change prevents the workaround from kicking in. You can fix this yourself by editing ViEmu.dll in a binary editor. Locate the unicode string "Visual Assist X" (I found a single occurrence). Overwrite " X" with 00 00 00 00 and you should be good to go (do not delete bytes, just overwrite the space and X with 00). Keep a copy of the original just in case the edit fails.
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Dec 12 2014 :  2:39:14 PM  Show Profile  Reply with Quote
Update: The previous advice is not applicable to VS2010+. In VS2010+, the "Visual Assist X" string is in vshub.dll.

I found "Visual Assist X" in these dlls:
vshub.dll from ViEmuVS2010-3.0.13.vsix
vshub.dll from ViEmuVS2013-3.2.1.vsix
viemu.dll from Install-ViEmuVS-3.0.6.exe

Searching for the hex values of "74 00 20 00 58 00" will locate the unicode string. Replace 20 and 58 with 00.

In my testing, the change fixed dot problems in vs2008. I am less confident that the change does anything in vs2013, but I can't even be sure that ViEmu is working properly in my test environment (even without the change).
Go to Top of Page

akaito
New Member

3 Posts

Posted - Dec 15 2014 :  4:39:24 PM  Show Profile  Reply with Quote
Unfortunately, this fix didn't work for me in Visual Studio 2013.

Steps:
1. Find VSHub.dll in my Windows user's AppData\\Local\\Microsoft\\VisualStudio\\12.0\\Extensions\\<ViEmu folder>\\.
2. Open it in http://hexed.it/ (a browser-based hex editor), and perform the steps sean listed above (reminder: overwrite with 00, don't delete).
3. Replace VSHub.dll with the fixed version while no devenv.exe instance is running.
4. Launch VS2013 and test.
I tested by getting to the start of any arbitrary variable name, 'de' to delete it, and '.' to try to delete more. After deleting to the end of the first word, periods were inserted instead of deleting more text.

Thanks for the quick reply and fix suggestion, sean. Since this is-- or at least has been, and likely still is-- an issue on ViEmu's side, would you like me to move over to asking the ViEmu person/people about the issue?
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000