private void SetStubHelpersAPIs()
        {
            int leftIndex = richTextBoxILCode.Find(StubHelperAPIHeader,
                                                   0, RichTextBoxFinds.MatchCase | RichTextBoxFinds.WholeWord);
            int    rightIndex;
            int    textLength = richTextBoxILCode.Text.Length;
            string description;

            while (leftIndex != -1)
            {
                rightIndex = leftIndex + StubHelperAPIHeader.Length;
                while (rightIndex < textLength && IsValidAPISignatureLetter(richTextBoxILCode.Text[rightIndex]))
                {
                    rightIndex++;
                }
                string word = richTextBoxILCode.Text.Substring(leftIndex, rightIndex - leftIndex);
                if (StubHelpersAPIDictionary.GetInstance().TryGetValue(word, out description))
                {
                    richTextBoxILCode.Select(leftIndex, rightIndex - leftIndex);
                    richTextBoxILCode.SelectionFont = StubHelperAPIFont;
                }
                leftIndex = richTextBoxILCode.Find(StubHelperAPIHeader,
                                                   rightIndex, RichTextBoxFinds.MatchCase | RichTextBoxFinds.WholeWord);
            }
        }
        private void UpdateAPIList(string name)
        {
            listBoxAPIName.Items.Clear();
            StubHelpersAPIDictionary dictionary = StubHelpersAPIDictionary.GetInstance();
            List <string>            nameList   = dictionary.GetKeysContaining(name);

            listBoxAPIName.Items.AddRange(nameList.ToArray());
        }
 private void listBoxAPIName_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (listBoxAPIName.SelectedItem != null)
     {
         string APIName = listBoxAPIName.SelectedItem.ToString();
         StubHelpersAPIDictionary dictionary = StubHelpersAPIDictionary.GetInstance();
         string description;
         if (dictionary.TryGetValue(APIName, out description))
         {
             textBoxDescription.Text = description;
         }
     }
 }
        private void richTextBoxILCode_MouseMove(object sender, MouseEventArgs e)
        {
            int index = richTextBoxILCode.GetCharIndexFromPosition(e.Location);

            if (index < richTextBoxILCode.TextLength)
            {
                int leftIndex = index;
                while (leftIndex >= 0 && IsValidAPISignatureLetter(richTextBoxILCode.Text[leftIndex]))
                {
                    leftIndex--;
                }
                int rightIndex = index;
                while (IsValidAPISignatureLetter(richTextBoxILCode.Text[rightIndex]))
                {
                    rightIndex++;
                }
                if (leftIndex != rightIndex)
                {
                    leftIndex++;
                    string word = richTextBoxILCode.Text.Substring(leftIndex, rightIndex - leftIndex);
                    string description;
                    if (StubHelpersAPIDictionary.GetInstance().TryGetValue(word, out description))
                    {
                        // if the label is already shown on the same API, we do need to update it.
                        if (!labelStubHelperAPI.Visible || labelStubHelperAPI.Text != description)
                        {
                            labelStubHelperAPI.Text     = description;
                            labelStubHelperAPI.Location = new Point(e.Location.X, e.Location.Y + 10);
                            labelStubHelperAPI.Visible  = true;
                        }
                        return;
                    }
                }
                labelStubHelperAPI.Visible = false;
            }
        }