protected override void Dispose(bool disposing)
        {
            if (isDisposed)
            {
                return;
            }
            isDisposed = true;
            DetachExtensionChain();
            FileNameChanged -= TextEditor_FileNameChanged;
            MimeTypeChanged -= TextEditor_MimeTypeChanged;
            foreach (var provider in textEditorImpl.TooltipProvider)
            {
                provider.Dispose();
            }
            textEditorImpl.Dispose();

            base.Dispose(disposing);
        }