Esempio n. 1
0
 void MatchParser(ToolTipNeededEventArgs e, int p, Match m, string title = null, ParamDescriptor descriptor = null)
 {
     if (p >= m.Index && p <= (m.Index + m.Length))
     {
         var i = 0;
         var d = "P[{0}]: {1}";
         var v = new List <string>();
         foreach (Capture c in m.Groups[1].Captures)
         {
             if (IsComment(c.Index, c.Length))
             {
                 continue;
             }
             i++;
             v.Add(c.Value);
             if (p >= c.Index && p <= (c.Index + c.Length))
             {
                 if (descriptor != null)
                 {
                     descriptor(i, ref d, v);
                 }
                 e.ToolTipIcon  = ToolTipIcon.Info;
                 e.ToolTipTitle = title;
                 e.ToolTipText  = String.Format(d, i - 1, c.Value);
             }
         }
     }
 }
Esempio n. 2
0
        private void fctb_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
        {
            string line = fctb.Lines[e.Place.iLine];

            char[]   chars = new char[] { ' ', ';', '(', ')' };
            string[] split = line.Split(chars);

            bool first_loop  = true;
            int  index_start = 0;
            int  index_end   = 0;

            while (e.Place.iChar > index_end && index_end != -1)
            {
                if (index_start == index_end && !first_loop)
                {
                    index_end++;
                }
                first_loop  = false;
                index_start = index_end;
                index_end   = line.IndexOfAny(chars, index_start);
            }
            if (index_end < 0)
            {
                index_end = line.Length;
            }

            e.ToolTipText = fctb_control.ToolTipNeeded(line.Substring(index_start, index_end - index_start));
        }
Esempio n. 3
0
        //悬停的函数说明
        void FctbToolTipNeeded(object sender, ToolTipNeededEventArgs e)
        {
            if (!string.IsNullOrEmpty(e.HoveredWord))
            {
                long   tl   = 0;
                string name = e.HoveredWord;
                string desc = "";
                if (!name.StartsWith("0x") && name.Length <= 9)
                {
                    name = name.Replace("c", "");
                    long.TryParse(name, out tl);
                }

                if (tl > 0)
                {
                    //获取卡片信息
                    if (cardlist.ContainsKey(tl))
                    {
                        desc = cardlist[tl];
                    }
                }
                else
                {
                    desc = FindTooltip(e.HoveredWord);
                }
                if (!string.IsNullOrEmpty(desc))
                {
                    e.ToolTipTitle = e.HoveredWord;
                    e.ToolTipText  = desc;
                }
            }
        }
Esempio n. 4
0
 private void FCTB_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
 {
     if (!string.IsNullOrEmpty(e.HoveredWord))
     {
         var    range       = new Range(sender as FastColoredTextBox, e.Place, e.Place);
         string hoveredWord = range.GetFragment("[^\n]").Text;
         Regex  pattern     = new Regex("[<>/=]");
         string input       = pattern.Replace(hoveredWord.Trim().ToLower(), "");
         System.Diagnostics.Debug.Print(input);
         string toolTipText  = "";
         string toolTipTitle = "";
         if (input.StartsWith("c1"))
         {
             toolTipTitle = "C1 type:";
             toolTipText  = "This is a dictionary node, contains other nodes";
         }
         else if (input.StartsWith("c0"))
         {
             toolTipTitle = "C0 type:";
             toolTipText  = "This is an array node, contains other nodes, without the name property";
         }
         else if (input.StartsWith("a0"))
         {
             toolTipTitle = "A0 type:";
             toolTipText  = "This is a string value, the text in the \"StringValue\" section will be used as normal text";
         }
         else if (input.StartsWith("d1"))
         {
             toolTipTitle = "D1 type:";
             toolTipText  = "This is a number,the text in the \"StringValue\" section will be used as an integer number";
         }
         else if (input.StartsWith("d2"))
         {
             toolTipTitle = "D2 type:";
             toolTipText  = "This is a number,the text in the \"StringValue\" section will be used as a decimal number";
         }
         else if (input.StartsWith("d0"))
         {
             toolTipTitle = "D0 type:";
             toolTipText  = "This is a boolean value,the text in the \"StringValue\" section can be only True or False";
         }
         else if (input.StartsWith("name"))
         {
             toolTipTitle = "Name property";
             toolTipText  = "This is the name of this value";
         }
         else if (input.StartsWith("stringvalue"))
         {
             toolTipTitle = "StringValue property";
             toolTipText  = "This is the value of this node as a string, when changing this respect the node type,to get info about types place the mouse on the type name (D1, A0 etc..)";
         }
         else
         {
             return;
         }
         e.ToolTipTitle = toolTipTitle;
         e.ToolTipText  = toolTipText;
     }
 }
 private void MainTextBox_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
 {
     if (!string.IsNullOrEmpty(e.HoveredWord))
     {
         e.ToolTipTitle = e.HoveredWord;
         e.ToolTipText  = "This is tooltip for '" + e.HoveredWord + "'";
     }
 }
Esempio n. 6
0
 private void synBox1_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
 {
     if (!string.IsNullOrEmpty(e.HoveredWord))
     {
         //e.ToolTipIcon = ;
         e.ToolTipTitle = e.HoveredWord;
         e.ToolTipText  = ":( ToolTip function is not implemented yet!";
     }
 }
Esempio n. 7
0
        private void codeTextBox_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
        {
            Range range = GetMessageRangeFromPlace(e.Place);

            if (range != null)
            {
                e.ToolTipText = range.Text;
            }
        }
Esempio n. 8
0
 void ShowToolTip(Object sender, ToolTipNeededEventArgs e)
 {
     for (var i = 0; i < _errorRanges.Count; i++)
     {
         if (_errorRanges[i].Range.Contains(e.Place))
         {
             e.ToolTipTitle = Messages.CompilationError;
             e.ToolTipText  = _errorRanges[i].Message;
             e.ToolTipIcon  = System.Windows.Forms.ToolTipIcon.Error;
             break;
         }
     }
 }
Esempio n. 9
0
        public void fastColoredTextBox1_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
        {
            if (!string.IsNullOrEmpty(e.HoveredWord))
            {
                e.ToolTipTitle = e.HoveredWord;
                if (_dict.ContainsKey(e.HoveredWord))
                {
                    e.ToolTipText = _dict[e.HoveredWord];
                }

                hoveredWord = e.HoveredWord;
            }
        }
Esempio n. 10
0
 private void fastColoredTextBox1_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
 {
     if (!string.IsNullOrEmpty(e.HoveredWord))
     {
         foreach (var d in InfoManager.data)
         {
             if (d.Key == e.HoveredWord)
             {
                 e.ToolTipTitle = e.HoveredWord;
                 e.ToolTipText  = d.Value;
             }
         }
     }
 }
Esempio n. 11
0
        private void TextBoxOnToolTipNeeded(object sender, ToolTipNeededEventArgs e)
        {
            if (_tokens == null)
            {
                return;
            }
            var place            = e.Place;
            int n                = place.iLine;
            var absolutePosition = TextBox.Text.TakeWhile(c => (n -= (c == '\n' ? 1 : 0)) > 0).Count() + place.iChar + 1;
            var token            = _tokens.Where(t => t.Type != TokenType.WHITESPACE).FirstOrDefault(x => x.StartPos <= absolutePosition && x.EndPos >= absolutePosition);

            if (token != null)
            {
                e.ToolTipIcon  = ToolTipIcon.Info;
                e.ToolTipTitle = token.Type.ToString();
                e.ToolTipText  = token.Text;
            }
        }
Esempio n. 12
0
        private void editor_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
        {
            var error = compiler.Exceptions.FirstOrDefault(ex =>
                                                           ex.CaptureInfo.LineNumber == e.Place.iLine && (
                                                               ex.CaptureInfo.Length == 0 || (
                                                                   ex.CaptureInfo.Index <= e.Place.iChar &&
                                                                   ex.CaptureInfo.Index + ex.CaptureInfo.Length >= e.Place.iChar
                                                                   )
                                                               )
                                                           );

            if (error != null)
            {
                e.ToolTipTitle = error.ErrorName;
                e.ToolTipText  = error.Message;
                e.ToolTipIcon  = ToolTipIcon.Error;
            }
        }
        private void fctb_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
        {
            if (!string.IsNullOrEmpty(e.HoveredWord))
            {
                e.ToolTipTitle = e.HoveredWord;
                e.ToolTipText  = "This is tooltip for '" + e.HoveredWord + "'";
            }

            /*
             * Also you can get any fragment of the text for tooltip.
             * Following example gets whole line for tooltip:
             *
             * var range = new Range(sender as FastColoredTextBox, e.Place, e.Place);
             * string hoveredWord = range.GetFragment("[^\n]").Text;
             * e.ToolTipTitle = hoveredWord;
             * e.ToolTipText = "This is tooltip for '" + hoveredWord + "'";
             *
             */
        }
Esempio n. 14
0
        private void fctb_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
        {
            if (!string.IsNullOrEmpty(e.HoveredWord))
            {
                e.ToolTipTitle = e.HoveredWord;
                e.ToolTipText = "This is tooltip for '" + e.HoveredWord + "'";
            }

            /*
             * Also you can get any fragment of the text for tooltip.
             * Following example gets whole line for tooltip:

            var range = new Range(sender as FastColoredTextBox, e.Place, e.Place);
            string hoveredWord = range.GetFragment("[^\n]").Text;
            e.ToolTipTitle = hoveredWord;
            e.ToolTipText = "This is tooltip for '" + hoveredWord + "'";

             */
        }
Esempio n. 15
0
 private void TextBox_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
 {
     if (ErrorString != null)
     {
         if (ParseError.Line != -1 && ParseError.Line == e.Place.iLine) //TODO:!!!!
         {
             e.ToolTipTitle = "Error";
             e.ToolTipIcon  = ToolTipIcon.Error;
             if (ParseError.FileName.Contains("tmp"))
             {
                 e.ToolTipText = ParseError.ToString(Path);
             }
             else
             {
                 e.ToolTipText = ParseError.ToString();
             }
         }
     }
 }
Esempio n. 16
0
 private void uxEditor_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
 {
     e.ToolTipText = null;
     if (CurrentDiagnostics == default(ImmutableArray <Diagnostic>) || CurrentDocument == null)
     {
         return;
     }
     foreach (var diagnostic in CurrentDiagnostics)
     {
         if (!diagnostic.Location.IsInSource || diagnostic.Location.SourceTree.FilePath != CurrentDocument.FilePath)
         {
             continue;
         }
         var range = SpanToRange(diagnostic.Location.SourceSpan, true);
         if (!range.Contains(e.Place))
         {
             continue;
         }
         e.ToolTipText = $"{diagnostic.Id}: {diagnostic.GetMessage()}";
     }
 }
Esempio n. 17
0
        private void ToolTipIsNeeded(object sender, ToolTipNeededEventArgs e)
        {
            if (String.IsNullOrEmpty(e.HoveredWord))
            {
                return;
            }

            var library = LibraryLookup.GetLibrary(game);

            var    range       = new FastColoredTextBoxNS.Range(sender as FastColoredTextBox, e.Place, e.Place);
            string hoveredWord = range.GetFragment("[^ ( \n \r ]").Text;

            e.ToolTipTitle = hoveredWord;

            for (int i = 0; i < library.FlowScriptModules.Count; i++)
            {
                for (int j = 0; j < library.FlowScriptModules[i].Functions.Count; j++)
                {
                    e.ToolTipText = ToolTip(hoveredWord, library) + "'";
                }
            }
        }
Esempio n. 18
0
        public void HintParser(object sender, ToolTipNeededEventArgs e)
        {
            var ctl = sender as FastColoredTextBox;
            var p   = ctl.PlaceToPosition(e.Place);

            foreach (Match m in new ScnSyntax.NodeParams().Matches(ctl.Text))
            {
                MatchParser(e, p, m, "node", NodeDescriptor);
            }
            foreach (Match m in new ScnSyntax.IncludeParams().Matches(ctl.Text))
            {
                MatchParser(e, p, m, "include", IncludeDescriptor);
            }
            foreach (Match m in new ScnSyntax.EventParams().Matches(ctl.Text))
            {
                MatchParser(e, p, m, "event", EventDescriptor);
            }
            foreach (Match m in new ScnSyntax.TrainsetParams().Matches(ctl.Text))
            {
                MatchParser(e, p, m, "trainset", TrainsetDescriptor);
            }
        }
Esempio n. 19
0
        private void TextBox_ToolTipNeeded(object sender, ToolTipNeededEventArgs e)
        {
            foreach (var error in _extension.ExtensionHost.ErrorManager.Errors)
            {
                if (error.Location.FilePath == _file.FilePath &&
                    GetErrorRange(error.Location).Start == GetErrorRange(e.Place).Start)
                {
                    switch (error.Severity)
                    {
                    case MessageSeverity.Error: e.ToolTipIcon = ToolTipIcon.Error; break;

                    case MessageSeverity.Warning: e.ToolTipIcon = ToolTipIcon.Warning; break;

                    default: e.ToolTipIcon = ToolTipIcon.Info; break;
                    }

                    e.ToolTipTitle = error.Severity.ToString();
                    e.ToolTipText  = error.Message;
                    return;
                }
            }
        }
Esempio n. 20
0
        //函数悬停提示
        protected override void OnToolTip()
        {
            if (ToolTip == null)
            {
                return;
            }

            if (ToolTipNeeded == null)
            {
                return;
            }

            //get place under mouse
            Place place = PointToPlace(lastMouseCoord);

            //check distance
            Point p = PlaceToPoint(place);

            if (Math.Abs(p.X - lastMouseCoord.X) > CharWidth * 2 ||
                Math.Abs(p.Y - lastMouseCoord.Y) > CharHeight * 2)
            {
                return;
            }
            //get word under mouse
            var    r           = new Range(this, place, place);
            string hoveredWord = r.GetFragment("[a-zA-Z0-9_]").Text;
            //event handler
            var ea = new ToolTipNeededEventArgs(place, hoveredWord);

            ToolTipNeeded(this, ea);

            if (ea.ToolTipText != null)
            {
                ShowTooltipWithLabel(ea.ToolTipTitle, ea.ToolTipText);
            }
        }
        private void            fastColoredTextBox_Code_ToolTipNeeded(object aSender, ToolTipNeededEventArgs aEventArgs)
        {
            var lRange = new Range(aSender as FastColoredTextBox, aEventArgs.Place, aEventArgs.Place);

            try
            {
                int lHandle = mBrowser.getItemHandleByName(lRange.GetFragment("[^\n ']").Text);
                if (lHandle != -1)
                {
                    aEventArgs.ToolTipText = mBrowser.getItemToolTipByHandle(lHandle);
                }
            }
            catch { }
        }