// Internal for testing
        internal void EnsureTextBufferInitialized(ITextBuffer textBuffer)
        {
            if (textBuffer.Properties.ContainsProperty(RazorTextBufferInitializationKey))
            {
                // Buffer already initialized.
                return;
            }

            var tracker = _documentTrackerFactory.Create(textBuffer);

            textBuffer.Properties[typeof(VisualStudioDocumentTracker)] = tracker;

            var parser = _parserFactory.Create(tracker);

            textBuffer.Properties[typeof(VisualStudioRazorParser)] = parser;

            var braceSmartIndenter = _braceSmartIndenterFactory.Create(tracker);

            textBuffer.Properties[typeof(BraceSmartIndenter)] = braceSmartIndenter;

            textBuffer.Properties.AddProperty(RazorTextBufferInitializationKey, RazorTextBufferInitializationKey);
        }