private void FindSectionInProcedureDivision(string itemName) { int index = 0; if (itemName != null) { index = SNListBox.FindString(itemName, SNListBox.FindString("procedure")); } SNListBox.TopIndex = index; SNListBox.SelectedIndex = index; }
private void SNListBox_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { Editor = new ScintillaGateway(PluginBase.GetCurrentScintilla()); ContextMenuStrip menuStrip = new ContextMenuStrip(); int index = SNListBox.IndexFromPoint(e.X, e.Y); SNListBox.SetSelected(index, true); string text = Editor.GetText(Editor.GetTextLength()); string search = @"^[ ]*PERFORM[\s]*" + ((SourceNavigationItem)SNListBox.Items[index]).Name.Trim().Split(' ')[0] + @"[\s]*[\.]{0,1}[\s]*$"; MatchCollection matches = Regex.Matches(text, search, RegexOptions.Multiline | RegexOptions.IgnoreCase); if (matches.Count > 0) { foreach (Match match in matches) { string itemName = ""; foreach (SourceNavigationItem item in GetStoredSectionsList()) { int line = Editor.LineFromPosition(new Position(match.Index)); string currentText = ""; if (item.LineNumber > line) { break; } else { currentText = item.Name.Trim().Split(' ')[0]; } if (currentText != "") { itemName = (line + 1) + ": " + currentText; } Editor.LineFromPosition(new Position(match.Index)); } menuStrip.Items.Add(itemName).Click += FrmSNDlg_SNListBox_Context_Click; } } if (menuStrip.Items.Count > 0) { menuStrip.Show(SNListBox, e.X, e.Y); } } }