public override void InsertCompletionText(CompletionListWindow window, ref KeyActions ka, MonoDevelop.Ide.Editor.Extension.KeyDescriptor descriptor)
        {
            Initialize();
            var doc = ext.DocumentContext;

            using (var undo = ext.Editor.OpenUndoGroup()) {
                string text = insertNamespace ? type.ContainingNamespace.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat) + "." + type.Name : type.Name;
                if (text != GetCurrentWord(window))
                {
                    if (window.WasShiftPressed && generateUsing)
                    {
                        text = type.ContainingNamespace.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat) + "." + text;
                    }
                    window.CompletionWidget.SetCompletionText(window.CodeCompletionContext, GetCurrentWord(window), text);
                }

                if (!window.WasShiftPressed && generateUsing)
                {
                    AddGlobalNamespaceImport(ext.Editor, doc, type.ContainingNamespace.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat));
                }
            }
            ka |= KeyActions.Ignore;
        }
コード例 #2
0
//			public override TooltipInformation CreateTooltipInformation (bool smartWrap)
//			{
//				var sig = new SignatureMarkupCreator (ext.Editor, ext.DocumentContext, ext.Editor.CaretOffset);
//				sig.BreakLineAfterReturnType = smartWrap;
//				return sig.GetKeywordTooltip (title, null);
//			}

            public override void InsertCompletionText(CompletionListWindow window, ref KeyActions ka, MonoDevelop.Ide.Editor.Extension.KeyDescriptor descriptor)
            {
                var currentWord = GetCurrentWord(window, descriptor);
                var text        = CompletionText;

                if (descriptor.KeyChar == '>' && text.EndsWith(">", StringComparison.Ordinal))
                {
                    text = text.Substring(0, text.Length - 1);
                }
                if (text.StartsWith("<", StringComparison.Ordinal))
                {
                    text = text.Substring(1);
                }

                window.CompletionWidget.SetCompletionText(window.CodeCompletionContext, currentWord, text);
            }
コード例 #3
0
        public override void InsertCompletionText(CompletionListWindow window, ref KeyActions ka, MonoDevelop.Ide.Editor.Extension.KeyDescriptor descriptor)
        {
            Initialize();
            var doc    = completionExt.DocumentContext;
            var offset = completionExt.CurrentCompletionContext.TriggerOffset;

            base.InsertCompletionText(window, ref ka, descriptor);

            using (var undo = completionExt.Editor.OpenUndoGroup()) {
                if (!window.WasShiftPressed && generateUsing)
                {
                    AddGlobalNamespaceImport(completionExt.Editor, doc, type.ContainingNamespace.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat));
                }
                else
                {
                    doc.AnalysisDocument.GetSemanticModelAsync().ContinueWith(t => {
                        Runtime.RunInMainThread(delegate {
                            completionExt.Editor.InsertText(offset, type.ContainingNamespace.ToMinimalDisplayString(t.Result, offset, SymbolDisplayFormat.CSharpErrorMessageFormat) + ".");
                        });
                    });
                }
            }
            ka |= KeyActions.Ignore;
        }