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());
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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;
 }
Exemple #6
0
        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;
        }
Exemple #7
0
        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;
        }
Exemple #8
0
 public IList <string> GetMouseHoverOverTokenValues(SledDocumentHoverOverTokenArgs args)
 {
     return(null);
 }