One of my first tasks at Whole Tomato was to do some code cleanup in the name of learning the Visual Assist codebase. After just a few Find References, Renames, and Goto Definitions, I realized the recursive nature of this product: I was using VA to learn VA. I was using VA to refactor VA’s refactoring code. I was even using the codebase as a test suite for itself.
Most products aren’t like this. Clearly other development tools, IDEs and compilers fall into this category. And perhaps source control and bug tracking tools qualify, although more indirectly. But outside of software, I have trouble thinking of similar examples. Manufacturing? Chemical reactions? Books about making books?
What other companies use their own product in the direct production of that very product?
If you are using Visual Studio with Qt, you can ensure a more productive experience by adding the Qt directories to your Visual Studio list of includes.
In Visual Studio, add the following directories to the Win32 Platform Include files list (Tools|Options|Projects and Solution|VC++ Directories):
Make sure that the QTDIR environment variable has been defined (or else manually substitute the Qt directory for $(QTDIR) in the list items).
In the VA X Options dialog, Platform should be set to Win32 (VAssistX|Visual Assist X Options|Projects|C/C++ Directories).
VA X will parse included Qt header files the next time you open a solution that uses Qt. If you have the Stable symbols in italic option enabled, Qt symbols will be displayed in italics.