Automatic vs. Default in Fonts and Colors

Menu:  Tools -> Options -> Environment -> Fonts and Colors
Versions:  2008,2010
Published:  3/13/2010
Code:  vstipEnv0009

 

Zain's Note:   Of all the subjects I have covered in the tips, this one has, by far, been one of the hardest to get nailed down.  I hope this explanation helps you as much as it has helped me.

image

 

Ever wonder what the heck the difference is between the "Default" and "Automatic" options in the Fonts and Colors?

image

 

Default:

This is pretty straightforward.  It uses the default colors set up by Visual Studio for the item selected.  The colors are what Visual Studio defines as the default.  You might call these the "normal" colors for want of a better term.  The good news is you can always get these settings back no matter how bad you mess up the colors by just clicking the "Use Defaults" button.

image

 

 

Automatic:

This one is a LOT more interesting.  Here is the definition of Automatic from the documentation (the bold emphasis is mine):

"Items can inherit the [.] color from other display items such as Plain Text. Using this option, when you change the color of an inherited display item, the color of the related display items also change automatically. For example, if you selected the Automatic value for Compiler Error and later changed the color of Plain Text to Red, Compiler Error would also automatically inherit the color Red."

 

Okay, so let's do it and show you what they mean.  So let's see what the current settings for Plain Text are:

image

 

Notice, among other things, that the Item foreground is black.  Now I'm going to change the foreground color to red:

image

 

Now let's hop over to Comment and see what the settings are there:

image

 

Notice that the Item foreground is green and is set to Default.  Change the Item foreground to Automatic, this is what we get:

image

 

Notice that Comment inherited the Item foreground from Plain Text.  So we clearly see the relationship between Plain Text and some of the other Display items.  There are two things you need to be aware of:

  1. Not all items inherit from Plain text.
  2. Plain text inherits from the Windows System.

Let's address point #2.  I've all the colors back to the default settings.  So let's look at Plain Text again:

image

 

Plain Text has a default Item foreground of black again.  But wait!  Where does Plain Text's Default color come from?  Let's see what happens if I change the Windows System colors.  In this example I'm using Windows 7 so your settings may be elsewhere but all versions of Windows have this area we are going to.  In the case of Windows 7, it's called "Change windows colors and metrics" as you can see here:

image

 

Which brings me to the "Window Color and Appearance" dialog:

image

 

Change the Item to "Window" and the font color to lime green:

image

 

Click "Apply" and then switch back to Visual Studio and notice that, among other things, Plain Text now has a default color of lime green:

image

 

So Plain Text Default color clearly inherits from the Windows System and then there are Display items inside Visual Studio that you can have inherit from Plain Text by setting their color to Automatic.  So we can finally get a clear picture of the difference between Default and Automatic in the Fonts and Colors.  At this point I would change all my colors back to what they were before we started this adventure together.  Enjoy!