private static IssueTooltipContent TryCreateIssueContent([NotNull] IHighlighting highlighting, TextRange trackingRange, [CanBeNull] RichTextBlock textBlock, Severity severity, [NotNull] IContextBoundSettingsStore settings, [CanBeNull] ISolution solution) { if (textBlock == null || !severity.IsIssue()) { return(null); } RichText text = textBlock.RichText; if (text.IsEmpty) { return(null); } if (settings.GetValue((IssueTooltipSettings s) => s.ColorizeElementsInErrors)) { RichText enhancedText = TryEnhanceHighlighting(highlighting, settings, solution); if (!enhancedText.IsNullOrEmpty()) { text = enhancedText; } } var issueContent = new IssueTooltipContent(text, trackingRange); if (settings.GetValue((IssueTooltipSettings s) => s.ShowIcon)) { issueContent.Icon = severity.TryGetIcon(); } return(issueContent); }
private static IEnumerable <IReSharperTooltipContent> GetTooltipContents( [NotNull] IHighlighter highlighter, TextRange range, [NotNull] IDocumentMarkup documentMarkup, [CanBeNull] ISolution solution, bool skipIdentifierHighlighting) { if (highlighter.Attributes.Effect.Type == EffectType.GUTTER_MARK) { yield break; } var highlighting = highlighter.UserData as IHighlighting; if (highlighting != null) { IDocument document = documentMarkup.Document; IContextBoundSettingsStore settings = document.GetSettings(); Severity severity = HighlightingSettingsManager.Instance.GetSeverity(highlighting, solution); IssueTooltipContent issueContent = TryCreateIssueContent(highlighting, range, highlighter.RichTextToolTip, severity, settings, solution); if (issueContent != null) { yield return(issueContent); yield break; } if (solution != null && IsIdentifierHighlighting(highlighting)) { if (!skipIdentifierHighlighting) { var identifierContentGroup = GetIdentifierContentGroup(highlighter, solution, settings); if (identifierContentGroup != null) { foreach (IdentifierTooltipContent content in identifierContentGroup.Identifiers) { yield return(content); } if (identifierContentGroup.ArgumentRole != null) { yield return(identifierContentGroup.ArgumentRole); } } } yield break; } } MiscTooltipContent miscContent = TryCreateMiscContent(highlighter.RichTextToolTip, range); if (miscContent != null) { yield return(miscContent); } }
private static ITooltipContent[] GetTooltipContents([NotNull] IHighlighter highlighter, TextRange range, [NotNull] IDocumentMarkup documentMarkup, [CanBeNull] ISolution solution, bool skipIdentifierHighlighting) { if (highlighter.Attributes.Effect.Type == EffectType.GUTTER_MARK) { return(EmptyArray <ITooltipContent> .Instance); } var highlighting = highlighter.UserData as IHighlighting; if (highlighting != null) { IDocument document = documentMarkup.Document; IContextBoundSettingsStore settings = document.GetSettings(); Severity severity = HighlightingSettingsManager.Instance.GetSeverity(highlighting, document, solution); IssueTooltipContent issueContent = TryCreateIssueContent(highlighting, range, highlighter.RichTextToolTip, severity, settings, solution); if (issueContent != null) { return new ITooltipContent[] { issueContent } } ; if (solution != null && IsIdentifierHighlighting(highlighting)) { if (skipIdentifierHighlighting) { return(EmptyArray <ITooltipContent> .Instance); } IdentifierTooltipContent[] identifierContents = GetIdentifierTooltipContents(highlighter, solution, settings); // ReSharper disable once CoVariantArrayConversion return(identifierContents); } } MiscTooltipContent miscContent = TryCreateMiscContent(highlighter.RichTextToolTip, range); if (miscContent != null) { return new ITooltipContent[] { miscContent } } ; return(EmptyArray <ITooltipContent> .Instance); }
private static ITooltipContent TryGetTooltipContent([NotNull] IHighlighter highlighter, [NotNull] IDocumentMarkup documentMarkup) { if (highlighter.Attributes.Effect.Type == EffectType.GUTTER_MARK) { return(null); } var highlighting = highlighter.UserData as IHighlighting; if (highlighting != null) { IDocument document = documentMarkup.Document; IContextBoundSettingsStore settings = document.GetSettings(); Severity severity = HighlightingSettingsManager.Instance.GetSeverity(highlighting, document); IssueTooltipContent issueContent = TryCreateIssueContent(highlighter.RichTextToolTip, severity, settings); if (issueContent != null) { return(issueContent); } PsiLanguageType languageType = TryGetIdentifierLanguage(highlighting); if (languageType != null) { ISolution solution = TryGetCurrentSolution(); if (solution != null) { IdentifierTooltipContent identifierContent = TryGetIdentifierTooltipContent(highlighter, languageType, solution, settings); if (identifierContent != null) { return(identifierContent); } } } } return(TryCreateMiscContent(highlighter.RichTextToolTip)); }
private static IssueTooltipContent TryCreateIssueContent([CanBeNull] RichTextBlock textBlock, Severity severity, [NotNull] IContextBoundSettingsStore settings) { if (textBlock == null || !severity.IsIssue()) { return(null); } RichText text = textBlock.RichText; if (text.IsEmpty) { return(null); } var issueContent = new IssueTooltipContent { Text = text }; if (settings.GetValue((IssueTooltipSettings s) => s.ShowIcon)) { issueContent.Icon = severity.TryGetIcon(); } return(issueContent); }
public void AddIssueTooltipContent([NotNull] IssueTooltipContent content) => _issueContents.Add(content);