public override bool InsertAction(ICompletionData data, ICSharpCode.TextEditor.TextArea textArea, int insertionOffset, char key)
        {
            CodeCompletionData ccData = data as CodeCompletionData;

            if (IsAttributeCompletion && ccData != null)
            {
                textArea.Caret.Position = textArea.Document.OffsetToPosition(insertionOffset);
                textArea.InsertString(ccData.Text + "=\"\"");
                textArea.Caret.Column -= 1;

                SharpDevelopTextAreaControl editor = textArea.MotherTextEditorControl as SharpDevelopTextAreaControl;
                if (editor != null)
                {
                    WorkbenchSingleton.SafeThreadAsyncCall(
                        delegate {
                        XamlCompletionDataProvider provider      = new XamlCompletionDataProvider();
                        provider.AllowCompleteExistingExpression = true;
                        editor.ShowCompletionWindow(provider, '\0');
                    }
                        );
                }
                return(false);
            }
            else
            {
                return(base.InsertAction(data, textArea, insertionOffset, key));
            }
        }
        public bool CtrlSpace(SharpDevelopTextAreaControl editor)
        {
            XamlCompletionDataProvider provider = new XamlCompletionDataProvider();

            provider.AllowCompleteExistingExpression = true;
            editor.ShowCompletionWindow(provider, '\0');
            return(true);
        }