public override void InsertCompletionText(CompletionListWindow window, ref KeyActions ka, Gdk.Key closeChar, char keyChar, Gdk.ModifierType modifier)
        {
            MonoDevelop.Ide.Gui.Content.IEditableTextBuffer buf = window.CompletionWidget as MonoDevelop.Ide.Gui.Content.IEditableTextBuffer;
            if (buf != null)
            {
                using (var undo = buf.OpenUndoGroup()) {
                    int deleteStartOffset = window.CodeCompletionContext.TriggerOffset;
                    if (text.StartsWith(docTypeStart))
                    {
                        int start = window.CodeCompletionContext.TriggerOffset - docTypeStart.Length;
                        if (start >= 0)
                        {
                            string readback = buf.GetText(start, window.CodeCompletionContext.TriggerOffset);
                            if (string.Compare(readback, docTypeStart, StringComparison.OrdinalIgnoreCase) == 0)
                            {
                                deleteStartOffset -= docTypeStart.Length;
                            }
                        }
                    }

                    buf.DeleteText(deleteStartOffset, buf.CursorPosition - deleteStartOffset);
                    buf.InsertText(buf.CursorPosition, text);
                }
            }
        }
Beispiel #2
0
        public override void InsertCompletionText(CompletionListWindow window)
        {
            MonoDevelop.Ide.Gui.Content.IEditableTextBuffer buf = window.CompletionWidget as MonoDevelop.Ide.Gui.Content.IEditableTextBuffer;
            if (buf != null)
            {
                buf.BeginAtomicUndo();

                int deleteStartOffset = window.CodeCompletionContext.TriggerOffset;
                if (text.StartsWith(docTypeStart))
                {
                    int start = window.CodeCompletionContext.TriggerOffset - docTypeStart.Length;
                    if (start >= 0)
                    {
                        string readback = buf.GetText(start, window.CodeCompletionContext.TriggerOffset);
                        if (string.Compare(readback, docTypeStart, StringComparison.OrdinalIgnoreCase) == 0)
                        {
                            deleteStartOffset -= docTypeStart.Length;
                        }
                    }
                }

                buf.DeleteText(deleteStartOffset, buf.CursorPosition - deleteStartOffset);
                buf.InsertText(buf.CursorPosition, text);
                buf.EndAtomicUndo();
            }
        }
        public override void InsertCompletionText(CompletionListWindow window, ref KeyActions ka, Gdk.Key closeChar, char keyChar, Gdk.ModifierType modifier)
        {
            //insert the method name
            MonoDevelop.Ide.Gui.Content.IEditableTextBuffer buf = window.CompletionWidget as MonoDevelop.Ide.Gui.Content.IEditableTextBuffer;
            if (buf != null)
            {
                using (var undo = buf.OpenUndoGroup()) {
                    buf.DeleteText(window.CodeCompletionContext.TriggerOffset, buf.CursorPosition - window.CodeCompletionContext.TriggerOffset);
                    buf.InsertText(buf.CursorPosition, methodInfo.Name);
                }
            }

            //generate the codebehind method
            if (codeBehindClassPart != null && project != null)
            {
                BindingService.AddMemberToClass(project, codeBehindClass.GetDefinition(), codeBehindClassPart, methodInfo, false);
            }
            else
            {
                BindingService.AddMemberToClass(project, codeBehindClass.GetDefinition(), codeBehindClass.GetDefinition().Parts.First(), methodInfo, false);
            }
        }
Beispiel #4
0
        public override void InsertCompletionText(CompletionListWindow window)
        {
            //insert the method name
            MonoDevelop.Ide.Gui.Content.IEditableTextBuffer buf = window.CompletionWidget as MonoDevelop.Ide.Gui.Content.IEditableTextBuffer;
            if (buf != null)
            {
                buf.BeginAtomicUndo();
                buf.DeleteText(window.CodeCompletionContext.TriggerOffset, buf.CursorPosition - window.CodeCompletionContext.TriggerOffset);
                buf.InsertText(buf.CursorPosition, methodInfo.Name);
                buf.EndAtomicUndo();
            }

            //generate the codebehind method
            if (codeBehindClassPart != null && project != null)
            {
                BindingService.AddMemberToClass(project, codeBehindClass, codeBehindClassPart, methodInfo, false);
            }
            else
            {
                BindingService.AddMemberToClass(project, codeBehindClass, codeBehindClass, methodInfo, false);
            }
        }
 public override bool ExtendsEditor(MonoDevelop.Ide.Gui.Document doc, MonoDevelop.Ide.Gui.Content.IEditableTextBuffer editor)
 {
     return(base.ExtendsEditor(doc, editor) && doc.HasProject && doc.Project is AddinProject);
 }