protected virtual IList <string> OnGetMouseHoverOverTokenValues(SledDocumentHoverOverTokenArgs args) { if (!DebugService.IsConnected) { return(null); } var szFullToken = SledLuaUtil.GetFullHoverOvenToken(args); if (string.IsNullOrEmpty(szFullToken)) { return(null); } var variables = (from list in Collection let luaVar = SledDomUtil.FindFirstInWhere(list.DomNode, (TType variable) => string.Compare(variable.Name, szFullToken, StringComparison.Ordinal) == 0) where luaVar != null select luaVar).ToList(); return (!variables.Any() ? null : variables.Select(variable => string.Format("{0}: {1}", PopupPrefix, SledUtil.MakeXmlSafe(variable.Value))).ToList()); }
private void EditorMouseHoveringOverToken(object sender, MouseHoverOverTokenEventArgs e) { // Collect values to display, if any var toolTips = new List <string>(); var docPlugins = SledServiceInstance.GetAll <ISledDocumentPlugin>(); var ea = new SledDocumentHoverOverTokenArgs(this, e); // Gather all tooltips from plugins foreach (var docPlugin in docPlugins) { var lstToolTips = docPlugin.GetMouseHoverOverTokenValues(ea); if (lstToolTips == null) { continue; } toolTips.AddRange(lstToolTips); } // If no tooltips then abort if (toolTips.Count <= 0) { return; } var bFirst = true; m_sbToolTip.Remove(0, m_sbToolTip.Length); // Concatenate uber tooltip foreach (var toolTip in toolTips) { if (!bFirst) { m_sbToolTip.Append("<br/>"); } m_sbToolTip.Append(toolTip); if (bFirst) { bFirst = false; } } // Show uber tooltip e.TooltipText = m_sbToolTip.ToString(); }
public static string GetFullHoverOvenToken(SledDocumentHoverOverTokenArgs args) { var bUseCache = (s_cachedArgs == args) && !string.IsNullOrEmpty(s_cachedFullToken); // Get full token string if (!bUseCache) { s_cachedFullToken = FindAndConcatTokens(args); } // Store for next run s_cachedArgs = args; return(s_cachedFullToken); }
private static string FindAndConcatTokens(SledDocumentHoverOverTokenArgs args) { // Get full token string var szFullToken = FindAndConcatTokens(args.Args.Token, args.Document.Editor.GetTokens(args.Args.LineNumber)); if (string.IsNullOrEmpty(szFullToken)) { return(null); } // Replace quotations szFullToken = szFullToken.Replace("\"", string.Empty); return(szFullToken); }
/// <summary> /// Gets values for hovered over tokens /// </summary> /// <param name="args">Arguments (document, token, line number)</param> /// <returns>List of strings representing possible values for the hovered over token</returns> public IList<string> GetMouseHoverOverTokenValues(SledDocumentHoverOverTokenArgs args) { return null; }
private static string FindAndConcatTokens(SledDocumentHoverOverTokenArgs args) { // Get full token string var szFullToken = FindAndConcatTokens(args.Args.Token, args.Document.Editor.GetTokens(args.Args.LineNumber)); if (string.IsNullOrEmpty(szFullToken)) return null; // Replace quotations szFullToken = szFullToken.Replace("\"", string.Empty); return szFullToken; }
public static string GetFullHoverOvenToken(SledDocumentHoverOverTokenArgs args) { var bUseCache = (s_cachedArgs == args) && !string.IsNullOrEmpty(s_cachedFullToken); // Get full token string if (!bUseCache) s_cachedFullToken = FindAndConcatTokens(args); // Store for next run s_cachedArgs = args; return s_cachedFullToken; }
public IList <string> GetMouseHoverOverTokenValues(SledDocumentHoverOverTokenArgs args) { return(null); }