static DomTypeNodeBuilder () { DomTypeNodeBuilder.settings = new OutputSettings (OutputFlags.AssemblyBrowserDescription); DomTypeNodeBuilder.settings.MarkupCallback += delegate (string text) { return "<span style=\"text\">" + text + "</span>"; }; DomTypeNodeBuilder.settings.EmitModifiersCallback = delegate (string text) { return "<span style=\"keyword.modifier\">" + text + "</span>"; }; DomTypeNodeBuilder.settings.EmitKeywordCallback = delegate (string text) { return MarkupKeyword (text); }; DomTypeNodeBuilder.settings.EmitNameCallback = delegate (INode domVisitable, ref string outString) { if (domVisitable is IType) { outString = "<span style=\"text.link\"><u><a ref=\"T:" + ((IType)domVisitable).FullName + "\">" + outString + "</a></u></span>"; } else { outString = "<span style=\"text\">" + outString + "</span>"; } }; DomTypeNodeBuilder.settings.PostProcessCallback = delegate (INode domVisitable, ref string outString) { if (domVisitable is IReturnType) { outString = "<span style=\"text.link\"><u><a ref=\"T:" + ((IReturnType)domVisitable).FullName + "\">" + outString + "</a></u></span>"; } }; }
public override string GetMarkupText (Widget widget) { if (useFullName) return HighlightMatch (widget, Ambience.GetString (member, Flags), match); OutputSettings settings = new OutputSettings (Flags | OutputFlags.IncludeMarkup); settings.EmitNameCallback = delegate (INode domVisitable, ref string outString) { if (domVisitable == member) outString = HighlightMatch (widget, outString, match); }; return Ambience.GetString (member, settings); }
public string CreateTooltip (ProjectDom dom, ICompilationUnit unit, MonoDevelop.Projects.Dom.ResolveResult result, string errorInformations, Ambience ambience, Gdk.ModifierType modifierState) { OutputSettings settings = new OutputSettings (OutputFlags.ClassBrowserEntries | OutputFlags.IncludeParameterName | OutputFlags.IncludeKeywords | OutputFlags.IncludeMarkup | OutputFlags.UseFullName); if ((Gdk.ModifierType.ShiftMask & modifierState) == Gdk.ModifierType.ShiftMask) { settings.EmitNameCallback = delegate(INode domVisitable, ref string outString) { // crop used namespaces. if (unit != null) { int len = 0; foreach (IUsing u in unit.Usings) { foreach (string ns in u.Namespaces) { if (outString.StartsWith (ns + ".")) { len = Math.Max (len, ns.Length + 1); } } } string newName = outString.Substring (len); int count = 0; // check if there is a name clash. if (dom.GetType (newName) != null) count++; foreach (IUsing u in unit.Usings) { foreach (string ns in u.Namespaces) { if (dom.GetType (ns + "." + newName) != null) count++; } } if (len > 0 && count == 1) outString = newName; } }; } // Approximate value for usual case StringBuilder s = new StringBuilder (150); string doc = null; if (result != null) { if (result is AggregatedResolveResult) result = ((AggregatedResolveResult)result).PrimaryResult; if (result is ParameterResolveResult) { s.Append ("<small><i>"); s.Append (paramStr); s.Append ("</i></small>\n"); s.Append (ambience.GetString (((ParameterResolveResult)result).Parameter, settings)); } else if (result is LocalVariableResolveResult) { s.Append ("<small><i>"); s.Append (localStr); s.Append ("</i></small>\n"); s.Append (ambience.GetString (((LocalVariableResolveResult)result).ResolvedType, settings)); s.Append (" "); s.Append (((LocalVariableResolveResult)result).LocalVariable.Name); } else if (result is UnresolvedMemberResolveResult) { s.Append (String.Format (GettextCatalog.GetString ("Unresolved member '{0}'"), ((UnresolvedMemberResolveResult)result).MemberName)); } else if (result is MethodResolveResult) { MethodResolveResult mrr = (MethodResolveResult)result; s.Append("<small><i>"); s.Append(methodStr); s.Append("</i></small>\n"); s.Append(ambience.GetString(mrr.MostLikelyMethod, settings)); if (mrr.Methods.Count > 1) { int overloadCount = mrr.Methods.Count - 1; s.Append(string.Format(GettextCatalog.GetPluralString(" (+{0} overload)", " (+{0} overloads)", overloadCount), overloadCount)); } doc = AmbienceService.GetDocumentationSummary(((MethodResolveResult)result).MostLikelyMethod); } else if (result is MemberResolveResult) { IMember member = ((MemberResolveResult)result).ResolvedMember; if (member == null) { IReturnType returnType = ((MemberResolveResult)result).ResolvedType; if (returnType != null) { IType type = dom.GetType (returnType); if (type != null) { s.Append ("<small><i>"); s.Append (typeStr); s.Append ("</i></small>\n"); s.Append (ambience.GetString (type, settings)); doc = AmbienceService.GetDocumentationSummary (type); } } } else { if (member is IField) { s.Append ("<small><i>"); s.Append (fieldStr); s.Append ("</i></small>\n"); } else if (member is IProperty) { s.Append ("<small><i>"); s.Append (propertyStr); s.Append ("</i></small>\n"); } s.Append (ambience.GetString (member, settings)); doc = AmbienceService.GetDocumentationSummary (member); } } else if (result is NamespaceResolveResult) { s.Append ("<small><i>"); s.Append (namespaceStr); s.Append ("</i></small>\n"); s.Append (ambience.GetString (new Namespace (((NamespaceResolveResult)result).Namespace), settings)); } else { s.Append (ambience.GetString (result.ResolvedType, settings)); } if (!string.IsNullOrEmpty (doc)) { s.Append ("\n<small>"); s.Append (AmbienceService.GetDocumentationMarkup ( "<summary>" + doc + "</summary>")); s.Append ("</small>"); } } if (!string.IsNullOrEmpty (errorInformations)) { if (s.Length != 0) s.Append ("\n\n"); s.Append ("<small>"); s.Append (errorInformations); s.Append ("</small>"); } return s.ToString (); }
public string GetString (INode domVisitable, OutputSettings settings) { if (domVisitable == null) return nullString; string result = (string)domVisitable.AcceptVisitor (OutputVisitor, settings); if (settings is OutputSettings) ((OutputSettings)settings).PostProcess (domVisitable, ref result); return result; }
public abstract string GetString (string nameSpace, OutputSettings settings);
public abstract string GetString(string nameSpace, OutputSettings settings);