Installed this today and used it to do several major refactoring, works well. I would like to see it updated to refactor include lines also. My team will start using this. Should be standard in the VS release
The Visual Studio 2013 editor itself clearly understands the context/scope of variables. If you select a variable, it highlights all occurrences of the variable only in the current scope (even if an identical variable hides one in an outer scope). But this 1.1 refactoring plugin doesn't take advantage of that knowledge, it just seems to blindly look for identical identifiers everywhere including other methods, classes, etc... not quite what I had in mind.
I thought that being an extension developed by Microsoft it would be compatible with Express versions. I read somewhere that Express versions won't accept "third-party" created extensions, only. Confirmed by this answer, from Ryan Molden:
1) If I want to rename a member function that IntelliSense hasn't indexed properly ("Go To Definition" in the header file just jumps to the start of the .cpp file and the "IntelliSense operation in progress" dialog does not appear for some reason), I get an error message saying "object reference not set to an instance of an object".
2) The "Please wait while we process the data" dialog should be cancelable.
Seems like a great concept but when attempting to use (in my admittedly gigantic solution), even on a single project, renaming a variable leads to popping up a "Visual Studio is Working" box that cannot be canceled or otherwise, and after about 15 minutes, the only way to end it is by killing the VS2013 process through task manager.
The var I was trying to rename was localized to a single function that wouldn't be seen anywhere else. The name is used in many places but this specific one had very little scope. Does this just search the whole solution/project for any use of the word, then figure scope afterward?
After trying to use this three times with similar results, I decided to uninstall it -- bummer.
29/01/2014 10:51:17 - VSIXInstaller.NoApplicableSKUsException: This extension is not installable on any currently installed products. at VSIXInstaller.App.InitializeInstall() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute()
I seldom get the name of something "right" when I initially write code. Sometimes it doesn't matter, but often it does. Being able to rename quickly and with confidence, as I'm writing or reviewing code, is very helpful. Thanks for the tool. It would also be nice to have an option to rename a .h/.cpp file at the same time (if a class is defined in those files, and the files are the same name as the class before rename).
Request #1: It'd be great if it handled file renaming and updated header references throughout the project.
Request #2: Can the window be larger so it is quicker/easier to view the list of matches. It'd be great if it remembered the the size/positioning of the tool window between uses.
Request #3: Sorting option to list the confirmed matches first perhaps?
Request #4: Can it remember the scope setting between tool uses? For example, it keeps reverting back to Solution each time I use it, however I typically use this tool in bursts when refactoring and generally within the same scope such as Current Project.
Hi there, this thingie renamed in a much more global scope than required. I had a global variable called "Height" and renamed it to "_height". It then traversed through all my include files and changed them! Things like D3D11blabla._height were the result, inside DX typedefs and whatnot. That's inacceptable behavior.
It's nice to see an official refactoring extension from Microsoft!
Is there a list of upcoming transformations that you plan to add?
I would very much like to see an "Introduce variable" transformation (i.e., find all instances of the selected expression and replace it with a const- or non-const local variable declared either before the first use or directly above the enclosing scope.
I have had to reinstall Visual C++ Refactoring a few times, because the Refactor command on the context menu disappears. Could there be a conflict with other extensions? (Possibly Snippetizer or Commentator?) I am using the 1.1 version, the latest.
In a solution that has both C++/CLI code and C# code, things like this one should works across language in both direction. That is, renaming a C# symbol should rename dependant C++/CLI code and renaming a C++/CLI symbol should also rename C# dependant symbols.
I hope that the integration would be better than "Go To Definition" and the like in VS 2012 (I haven't yet tried VS 2013).
One more question, looking at the call stack it seems that it is caused by a cpp/h file that is default open in VS (from the suo), but doesn't belong to the current loaded project. Is that the case?
I would close all open docs and open the cpp from the solution explorer.
We are working on a fix to cover that scenario and we will update the extension soon.
Sorry, it looks like the problem is gone because of Refactor option is now missing after installing 1.1. Uninstalled and installed again - still no Refactor option in the context menu, CTRL+R,CTRL+R is also not working.