private void SqlTextBox_IndicatorClick(object sender, IndicatorClickEventArgs e)
 {
     if (_compilationErrors.ContainsKey(e.Position))
     {
         sqlTextBox.CallTipShow(e.Position, _compilationErrors[e.Position]);
     }
 }
예제 #2
0
        private void textEditor_IndicatorClick(object sender, IndicatorClickEventArgs e)
        {
            var style = textEditor.IndicatorAllOnFor(e.Position);

            if ((style & 2) == 0)
            {
                return;
            }

            var lineIndex = textEditor.LineFromPosition(e.Position);
            var line      = textEditor.Lines[lineIndex];
            var offset    = e.Position - line.Position;
            var wordStart = FindWordStartBackwards(line.Text, offset);
            var wordEnd   = FindWordEnd(line.Text, offset);
            var word      = line.Text.Substring(wordStart, wordEnd - wordStart);

            var suggestions = SpellChecker.Suggest(word);

            var contextMenu = new ContextMenuStrip();

            if (suggestions.Count == 0)
            {
                contextMenu.Items.Add("No suggestions");
            }
            else
            {
                foreach (var suggestion in suggestions)
                {
                    var item = new ToolStripMenuItem(suggestion);
                    item.Click += (s, args) =>
                    {
                        textEditor.TargetStart = wordStart + line.Position;
                        textEditor.TargetEnd   = wordEnd + line.Position;
                        textEditor.ReplaceTarget(item.Text);
                    };
                    contextMenu.Items.Add(item);
                }
            }
            var addOption = new ToolStripMenuItem("add to dictionary");

            addOption.Click += (s, args) =>
            {
                ControllerCommand(new Commands.AddWordToDictionary(word));
                textEditor.Invalidate();
            };
            contextMenu.Items.Add(addOption);


            contextMenu.Show(this, textEditor.PointToClient(Control.MousePosition));
        }