object Create(IDocumentViewerToolTipProviderContext context, SourceLocal local) { var provider = context.Create(); provider.SetImage(local); context.Decompiler.WriteToolTip(provider.Output, local); return(provider.Create()); }
public void GetMethodInfo(ModuleTokenId key, out Parameter[] parameters, out Local[] locals, out SourceLocal[] decompilerLocals) { parameters = null; locals = null; decompilerLocals = null; foreach (var tab in documentTabService.VisibleFirstTabs) { if (parameters != null && decompilerLocals != null) { break; } var uiContext = tab.UIContext as IDocumentViewer; var methodDebugService = uiContext.TryGetMethodDebugService(); if (methodDebugService == null) { continue; } var info = methodDebugService.TryGetMethodDebugInfo(key); if (info == null) { continue; } var method = info.Method; if (info.Locals.Length != 0 && method.Body != null) { locals = method.Body.Variables.ToArray(); decompilerLocals = new SourceLocal[method.Body.Variables.Count]; foreach (var v in info.Locals) { if ((uint)v.Local.Index >= decompilerLocals.Length) { continue; } decompilerLocals[v.Local.Index] = v; } } parameters = method.Parameters.ToArray(); } }