public NewOverrideCompletionData(ProjectDom dom, MonoDevelop.Ide.Gui.TextEditor editor, int declarationBegin, IType type, IMember member) : base(null) { this.editor = editor; this.type = type; this.member = member; this.initialOffset = editor.CursorPosition; this.declarationBegin = declarationBegin; this.unit = type.CompilationUnit; this.GenerateBody = true; string declarationText = editor.GetText (declarationBegin, initialOffset); insertPrivate = declarationText.Contains ("private"); insertSealed = declarationText.Contains ("sealed"); this.indent = GetIndentString (editor, editor.CursorPosition); this.Icon = member.StockIcon; this.DisplayText = ambience.GetString (member, OutputFlags.IncludeParameters | OutputFlags.IncludeGenerics | OutputFlags.IncludeMarkup | OutputFlags.HideExtensionsParameter); this.CompletionText = member.Name; ResolveReturnTypes (); }
internal static string CreateWrapperClassForMember(IMember member, string fileName, TextEditor editor) { if (member == null) return ""; StringBuilder result = new StringBuilder (); int startLine = member.Location.Line; int endLine = member.Location.Line; if (!member.BodyRegion.IsEmpty) endLine = member.BodyRegion.End.Line + 1; string text; result.Append ("class " + member.DeclaringType.Name + " {"); if (editor != null) { int col, maxLine; editor.GetLineColumnFromPosition (editor.TextLength - 1, out col, out maxLine); endLine = System.Math.Max (endLine, maxLine); int endPos = editor.GetPositionFromLineColumn (endLine, editor.GetLineLength (endLine)); if (endPos < 0) endPos = editor.TextLength; text = editor.GetText (editor.GetPositionFromLineColumn (startLine, 0), endPos); } else { Mono.TextEditor.Document doc = new Mono.TextEditor.Document (); doc.Text = File.ReadAllText (fileName) ?? ""; startLine = Math.Min (doc.LineCount, Math.Max (1, startLine)); endLine = Math.Min (doc.LineCount, Math.Max (1, endLine)); int startOffset = doc.LocationToOffset (startLine - 1, 0); text = doc.GetTextAt (startOffset, doc.LocationToOffset (endLine - 1, doc.GetLine (endLine - 1).EditableLength) - startOffset); } if (!string.IsNullOrEmpty (text)) result.Append (text); result.Append ("}"); return result.ToString (); }