VSXTool v1.14 24/01/2022 - Sam Izzo =================================== Download VSXTool Quick start ----------- To set up "open in workspace" functionality: 1. In Visual Studio, go to Tools->External Tools. 2. Add a new tool. 3. Give it a name (e.g. Open in workspace). 4. Enter the path to vsxtool.exe. 5. Enter the following in the arguments field: -solution:$(SolutionDir)$(SolutionFileName) -openfile <vs version argument> where <vs version argument> is replaced with the appropriate argument from the table of supported versions below. 6. Click ok. To set up "header flip" functionality: 1. In Visual Studio, go to Tools->External Tools. 2. Add a new tool. 3. Give it a name (e.g. Header flip). 4. Enter the path to vsxtool.exe. 5. Enter the following in the arguments field: -solution:$(SolutionDir)$(SolutionFileName) -headerflip:$(ItemPath) <vs version argument> where <vs version argument> is replaced with the appropriate argument from the table of supported versions below. 6. Click ok. You can then set up shortcut keys in Tools->Options->Environment->Keyboard. Use the "Tools.ExternalCommand" commands. Supported versions ------------------ Version Command-line argument ------- --------------------- Visual C++ Express 2005 -vcpp2005x Visual C# Express 2005 -vcs2005x Visual Studio 2005 -vs2005 Visual C++ Express 2008 -vcpp2008x Visual C# Express 2008 -vcs2008x Visual Studio 2008 -vs2008 Visual C++ Express 2010 -vcpp2010x Visual C# Express 2010 -vcs2010x Visual Studio 2010 -vs2010 Visual Studio Express 2012 -vs2012x Visual Studio 2012 -vs2012 Visual Studio 2013 -vs2013 Visual Studio 2015 -vs2015 Visual Studio 2017 -vs2017 Visual Studio 2019 -vs2019 Visual Studio 2022 -vs2022 Notes ----- VSXTool is a tool which provides "header flip" (flipping between .cpp/.c and .hpp/.h files) and "open in workspace" functionality to Microsoft Visual Studio. It runs as a Visual Studio "external tool" and communicates with VS via the Windows DDE mechanism, or via DTE for Visual Studio 2013 and 2015. It was originally conceived for use with the Express editions of Visual Studio, which don't allow any add-in functionality, thus the slightly arcane method of communication in those versions. However, it can also be used with the full versions and because it's written in C++ with just the STL and CRT, it is minimal and fast. The "open in workspace" feature requires a solution file to be specified, but "header flip" can be used when there is no solution. "Header flip" will first attempt to flip to a file in the current directory. If that file doesn't exist and a solution file was specified, it will search the solution for the file. "Header flip" will also flip between .xaml and .xaml.cs files. VSXTool writes out a file in the same directory as the solution with the same name as the solution and a .vtcache extension. This file is a cache of the solution and project files. This is used so that VSXTool doesn't have to parse the project files each time it runs. It will re-parse them if they change (so if you add a new file and it isn't showing up, make sure you have saved your solution/project). If this file is deleted it will be regenerated the next time VSXTool is run. Limitations ----------- VSXTool parses vcproj, vcxproj, csproj, unityproj, njsproj, and sln files from the various supported versions of Visual Studio. Most file types should show up, but there may be some rare types that are missing. If you notice missing files please report it to sam@humbug.net, and if possible send example solution and project files that reproduce the bug. There may be some features of project and solution files that I am not currently handling correctly. Feel free to send examples that don't work correctly. It is possible to use Visual Studio macros in project files (for example, $(ConfigurationName)). Unfortunately VSXTool is unable to expand these macros as (as far as I know) they cannot be accessed in the external tools window. If you'd like to know about new versions, or have any bugs or other suggestions, please send email to the address in the README.txt. TODO ---- Some features planned for the future are: * Ability to specify additional sln/project files to parse. * Ability to specify arbitrary paths for extra files to list. * Expansion of environment variables (but not VS macros) in filenames. * Resizeable window ;)