Here's what happens. When Ctrl-S is used to save the output ITextBuffer.OnContentTypeChanged is fired and it's clear that content type is changed from "output" to "plaintext" and it's never changed back afterwards. Once this happens Visual Studio builds a new list of classifier objects which are willing to work with the same ITextBuffer object now having new content type.
The original code has ContentType set to "output" only so this plugin is ignored. The new code also allows to consider this plugin for "plaintext" content type. This works but it will also consider this plugin for text files in the solution. So this change tags previously known ITextBuffer objects which once were of "output" type so that it can recognize them later no matter how their content type changed.
This works around https://github.com/mike-ward/VSColorOutput/issues/68
Here's what happens. When Ctrl-S is used to save the output
ITextBuffer.OnContentTypeChanged
is fired and it's clear that content type is changed from "output" to "plaintext" and it's never changed back afterwards. Once this happens Visual Studio builds a new list of classifier objects which are willing to work with the sameITextBuffer
object now having new content type.The original code has
ContentType
set to "output" only so this plugin is ignored. The new code also allows to consider this plugin for "plaintext" content type. This works but it will also consider this plugin for text files in the solution. So this change tags previously knownITextBuffer
objects which once were of "output" type so that it can recognize them later no matter how their content type changed.