private static bool scanCommentedLine(IVsTextLines textLines, int lineNumber, string text, int offset, ref List <string> issueKeys) { MatchCollection matches = JiraIssueUtils.ISSUE_REGEX.Matches(text); SortedDictionary <string, JiraProject> projects = JiraServerCache.Instance.getProjects(AtlassianPanel.Instance.Jira.CurrentlySelectedServerOrDefault); int countOrg = issueKeys.Count; for (int j = 0; j < matches.Count; ++j) { if (!projects.ContainsKey(matches[j].Groups[2].Value)) { continue; } issueKeys.Add(matches[j].Value); int index = matches[j].Index + offset; AbstractMarkerClientEventSink textMarkerClientEventSink = new TextMarkerClientEventSink(matches[j].Value); addMarker(textLines, lineNumber, index, index + matches[j].Length, JiraLinkTextMarkerType.Id, textMarkerClientEventSink); } return(issueKeys.Count - countOrg > 0); }
private static void addMarker(IVsTextLines textLines, int line, int start, int end) { TextMarkerClientEventSink clientEventSinkBackground = new TextMarkerClientEventSink(); TextMarkerClientEventSink clientEventSinkMargin = new TextMarkerClientEventSink(); IVsTextLineMarker[] markers = new IVsTextLineMarker[1]; int hr = textLines.CreateLineMarker(JiraLinkBackgroundMarkerType.Id, line, start, line, end, clientEventSinkBackground, markers); if (!ErrorHandler.Succeeded(hr)) return; clientEventSinkBackground.BackgroundMarker = markers[0]; hr = textLines.CreateLineMarker(JiraLinkMarginMarkerType.Id, line, start, line, end, clientEventSinkMargin, markers); if (!ErrorHandler.Succeeded(hr)) return; clientEventSinkMargin.MarginMarker = markers[0]; }
private static void addMarker(IVsTextLines textLines, int line, int start, int end) { TextMarkerClientEventSink clientEventSinkBackground = new TextMarkerClientEventSink(); TextMarkerClientEventSink clientEventSinkMargin = new TextMarkerClientEventSink(); IVsTextLineMarker[] markers = new IVsTextLineMarker[1]; int hr = textLines.CreateLineMarker(JiraLinkBackgroundMarkerType.Id, line, start, line, end, clientEventSinkBackground, markers); if (!ErrorHandler.Succeeded(hr)) { return; } clientEventSinkBackground.BackgroundMarker = markers[0]; hr = textLines.CreateLineMarker(JiraLinkMarginMarkerType.Id, line, start, line, end, clientEventSinkMargin, markers); if (!ErrorHandler.Succeeded(hr)) { return; } clientEventSinkMargin.MarginMarker = markers[0]; }