public override bool TryCreateToolTip(ITableEntryHandle entry, out object toolTip)
        {
            if (entry.TryGetValue(ColumnName, out var content) &&
                content as string == ServicesVSResources.NotApplicable)
            {
                toolTip = ServicesVSResources.SuppressionNotSupportedToolTip;
                return true;
            }

            toolTip = null;
            return false;
        }
            public override void PreprocessNavigate(ITableEntryHandle entry, TableEntryNavigateEventArgs e)
            {
                var supportsNavigation = entry.Identity as ISupportsNavigation;
                if (supportsNavigation != null)
                {
                    if (supportsNavigation.TryNavigateTo())
                    {
                        e.Handled = true;
                        return;
                    }
                }

                base.PreprocessNavigate(entry, e);
            }
            /// <summary>
            /// Handles the double-click Error List event.
            /// Displays the SARIF Explorer tool window. 
            /// Does not bind the selected item to the Tool Window. The binding is done by PreprocessSelectionChanged.
            /// </summary>
            public override void PreprocessNavigate(ITableEntryHandle entryHandle, TableEntryNavigateEventArgs e)
            {
                SarifErrorListItem sarifResult;

                if (!TryGetSarifResult(entryHandle, out sarifResult))
                {
                    SarifViewerPackage.SarifToolWindow.Control.DataContext = null;
                    return;
                }

                e.Handled = true;

                if (sarifResult.HasDetails)
                {
                    SarifViewerPackage.SarifToolWindow.Show();
                }

                // Navigate to the source file of the first location for the defect.
                if (sarifResult.Locations?.Count > 0)
                {
                    sarifResult.Locations[0].NavigateTo(false);
                    sarifResult.Locations[0].ApplyDefaultSourceFileHighlighting();
                }
            }
 private static string?GetCategoryName(ITableEntryHandle entry) =>
 entry.TryGetValue(Category, out var categoryName) ? categoryName as string : null;
Пример #5
0
 protected static AbstractTableEntriesSnapshot <TItem> GetEntriesSnapshot(ITableEntryHandle entryHandle)
 => GetEntriesSnapshot(entryHandle, out var index);
Пример #6
0
 public override IEntryBucket?CreateBucketForEntry(ITableEntryHandle entry)
 {
     return(entry.TryGetValue(UnusedReferencesTableKeyNames.SolutionName, out string name)
         ? new ImageEntryBucket(KnownMonikers.Solution, name)
         : null);
 }
        private static AbstractTableEntriesSnapshot <DiagnosticData> GetEntriesSnapshot(ITableEntryHandle entryHandle, out int index)
        {
            ITableEntriesSnapshot snapshot;

            if (!entryHandle.TryGetSnapshot(out snapshot, out index))
            {
                return(null);
            }

            return(snapshot as AbstractTableEntriesSnapshot <DiagnosticData>);
        }
Пример #8
0
 void ITableControlEventProcessor.PostprocessMouseLeftButtonDown(ITableEntryHandle entry, MouseButtonEventArgs args)
 {
 }
 private static string GetColumnValueAsString(ITableEntryHandle entry, ITableColumnDefinition column)
 => (entry.TryCreateStringContent(column, truncatedText: false, singleColumnView: false, content: out var columnValue) && columnValue is not null)
Пример #10
0
 private static string GetColumnValueAsString(ITableEntryHandle entry, ITableColumnDefinition column) =>
 entry.TryCreateStringContent(column, truncatedText: false, singleColumnView: false, content: out string columnValue) && (columnValue != null)
         ? columnValue : string.Empty;
Пример #11
0
 public override bool TryCreateStringContent(ITableEntryHandle entry, bool truncatedText, bool singleColumnView, out string content)
 {
     return(entry.TryGetValue(UnusedReferencesTableKeyNames.ProjectName, out content));
 }
Пример #12
0
 public static string getProjectName(ITableEntryHandle handle)
 {
     handle.TryGetValue(StandardTableKeyNames.ProjectName, out string projectname);
     return(projectname);
 }
Пример #13
0
 public override void PostprocessNavigate(ITableEntryHandle entryHandle, TableEntryNavigateEventArgs e) => _toolWindow.OpenLog(entryHandle);
        private static bool EntrySupportsSuppressionState(ITableEntryHandle entryHandle, out bool isRoslynEntry, out bool isSuppressedEntry, out bool isCompilerDiagnosticEntry)
        {
            int index;
            var roslynSnapshot = GetEntriesSnapshot(entryHandle, out index);

            var diagnosticData = roslynSnapshot?.GetItem(index)?.Primary;
            if (diagnosticData == null || !diagnosticData.HasTextSpan || SuppressionHelpers.IsNotConfigurableDiagnostic(diagnosticData))
            {
                isRoslynEntry = false;
                isSuppressedEntry = false;
                isCompilerDiagnosticEntry = false;
                return false;
            }

            isRoslynEntry = true;
            isSuppressedEntry = diagnosticData.IsSuppressed;
            isCompilerDiagnosticEntry = SuppressionHelpers.IsCompilerDiagnostic(diagnosticData);
            return true;
        }
Пример #15
0
 public override IEntryBucket?CreateBucketForEntry(ITableEntryHandle entry)
 {
     return(entry.TryGetValue <ReferenceType>(UnusedReferencesTableKeyNames.ReferenceType, out var referenceType)
         ? new ImageEntryBucket(GetImageMoniker(referenceType), GetText(referenceType))
         : null);
 }
Пример #16
0
 private static ImageMoniker GetImageMoniker(ITableEntryHandle entry)
 {
     return(entry.TryGetValue(UnusedReferencesTableKeyNames.Language, out string languageName) && languageName == LanguageNames.VisualBasic
         ? KnownMonikers.VBProjectNode
         : KnownMonikers.CSProjectNode);
 }
        private static bool EntrySupportsSuppressionState(ITableEntryHandle entryHandle, out bool isRoslynEntry, out bool isSuppressedEntry, out bool isCompilerDiagnosticEntry, out bool isNoLocationDiagnosticEntry)
        {
            string filePath;
            isNoLocationDiagnosticEntry = !entryHandle.TryGetValue(StandardTableColumnDefinitions.DocumentName, out filePath) ||
                string.IsNullOrEmpty(filePath);

            int index;
            var roslynSnapshot = GetEntriesSnapshot(entryHandle, out index);
            if (roslynSnapshot == null)
            {
                isRoslynEntry = false;
                isCompilerDiagnosticEntry = false;
                return IsNonRoslynEntrySupportingSuppressionState(entryHandle, out isSuppressedEntry);
            }

            var diagnosticData = roslynSnapshot?.GetItem(index)?.Primary;
            if (!IsEntryWithConfigurableSuppressionState(diagnosticData))
            {
                isRoslynEntry = false;
                isSuppressedEntry = false;
                isCompilerDiagnosticEntry = false;
                return false;
            }

            isRoslynEntry = true;
            isSuppressedEntry = diagnosticData.IsSuppressed;
            isCompilerDiagnosticEntry = SuppressionHelpers.IsCompilerDiagnostic(diagnosticData);
            return true;
        }
 public override void PreprocessMouseRightButtonUp(ITableEntryHandle entry, MouseButtonEventArgs e)
 {
     base.PreprocessMouseRightButtonUp(entry, e);
 }
 private static AbstractTableEntriesSnapshot<DiagnosticData> GetEntriesSnapshot(ITableEntryHandle entryHandle)
 {
     int index;
     return GetEntriesSnapshot(entryHandle, out index);
 }
Пример #20
0
        void ITableControlEventProcessor.PostprocessMouseRightButtonUp(ITableEntryHandle entry, MouseButtonEventArgs args)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            this.ShowContextMenu(mousePosition: true);
        }
Пример #21
0
 void ITableControlEventProcessor.PostprocessMouseLeave(ITableEntryHandle entry, MouseEventArgs args)
 {
 }
        private static bool EntrySupportsSuppressionState(ITableEntryHandle entryHandle, out bool isRoslynEntry, out bool isSuppressedEntry, out bool isCompilerDiagnosticEntry)
        {
            int index;
            var roslynSnapshot = GetEntriesSnapshot(entryHandle, out index);
            if (roslynSnapshot == null)
            {
                isRoslynEntry = false;
                isCompilerDiagnosticEntry = false;
                return IsNonRoslynEntrySupportingSuppressionState(entryHandle, out isSuppressedEntry);
            }

            var diagnosticData = roslynSnapshot?.GetItem(index)?.Primary;
            if (!IsEntryWithConfigurableSuppressionState(diagnosticData))
            {
                isRoslynEntry = false;
                isSuppressedEntry = false;
                isCompilerDiagnosticEntry = false;
                return false;
            }

            isRoslynEntry = true;
            isSuppressedEntry = diagnosticData.IsSuppressed;
            isCompilerDiagnosticEntry = SuppressionHelpers.IsCompilerDiagnostic(diagnosticData);
            return true;
        }
 protected static AbstractTableEntriesSnapshot <TData> GetEntriesSnapshot(ITableEntryHandle entryHandle)
 {
     return(GetEntriesSnapshot(entryHandle, out var index));
 }
            bool TryGetSarifResult(ITableEntryHandle entryHandle, out SarifErrorListItem sarifResult)
            {
                ITableEntriesSnapshot entrySnapshot;
                int entryIndex;
                sarifResult = default(SarifErrorListItem);

                if (entryHandle.TryGetSnapshot(out entrySnapshot, out entryIndex))
                {
                    var snapshot = entrySnapshot as SarifSnapshot;

                    if (snapshot != null)
                    {
                        sarifResult = snapshot.GetItem(entryIndex);
                    }
                }

                return sarifResult != null;
            }
Пример #25
0
 void ITableControlEventProcessor.PostprocessNavigate(ITableEntryHandle entry, TableEntryNavigateEventArgs args)
 {
 }
        public override void PostprocessNavigate(ITableEntryHandle entryHandle, TableEntryNavigateEventArgs e)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            _toolWindow.OpenLog(entryHandle);
        }
 private static string GetColumnValueAsString(
     ITableEntryHandle entry,
     ITableColumnDefinition column
     ) =>
 (
Пример #28
0
 void ITableControlEventProcessor.PreprocessDragOver(ITableEntryHandle entry, DragEventArgs args)
 {
 }
Пример #29
0
 void ITableControlEventProcessor.PreprocessMouseUp(ITableEntryHandle entry, MouseButtonEventArgs args)
 {
 }
Пример #30
0
 void ITableControlEventProcessor.PreprocessMouseWheel(ITableEntryHandle entry, MouseWheelEventArgs args)
 {
 }
 public override IEntryBucket?CreateBucketForEntry(ITableEntryHandle entry)
 {
     return(entry.TryGetValue(UnusedReferencesTableKeyNames.ProjectName, out string name)
       ? new ImageEntryBucket(GetImageMoniker(entry), name)
       : null);
 }
Пример #32
0
 void ITableControlEventProcessor.PreprocessNavigateToHelp(ITableEntryHandle entry, TableEntryEventArgs args)
 {
 }
        public override IEntryBucket?CreateBucketForEntry(ITableEntryHandle entry)
        {
            var categoryName = GetCategoryName(entry);

            return(categoryName is not null ? new StringEntryBucket(categoryName) : null);
        }
Пример #34
0
 void ITableControlEventProcessor.PreprocessQueryContinueDrag(ITableEntryHandle entry, QueryContinueDragEventArgs args)
 {
 }
        private static AbstractTableEntriesSnapshot <DiagnosticData> GetEntriesSnapshot(ITableEntryHandle entryHandle)
        {
            int index;

            return(GetEntriesSnapshot(entryHandle, out index));
        }
Пример #36
0
 void ITableControlEventProcessor.PostprocessDrop(ITableEntryHandle entry, DragEventArgs args)
 {
 }
        private static bool IsNonRoslynEntrySupportingSuppressionState(ITableEntryHandle entryHandle, out bool isSuppressedEntry)
        {
            string suppressionStateValue;
            if (entryHandle.TryGetValue(SuppressionStateColumnDefinition.ColumnName, out suppressionStateValue))
            {
                isSuppressedEntry = suppressionStateValue == ServicesVSResources.SuppressionStateSuppressed;
                return true;
            }

            isSuppressedEntry = false;
            return false;
        }
Пример #38
0
 void ITableControlEventProcessor.PostprocessGiveFeedback(ITableEntryHandle entry, GiveFeedbackEventArgs args)
 {
 }
        private static AbstractTableEntriesSnapshot<DiagnosticData> GetEntriesSnapshot(ITableEntryHandle entryHandle, out int index)
        {
            ITableEntriesSnapshot snapshot;
            if (!entryHandle.TryGetSnapshot(out snapshot, out index))
            {
                return null;
            }

            return snapshot as AbstractTableEntriesSnapshot<DiagnosticData>;
        }
        public static string GetValueFromSelectedError(string i_Value)
        {
            ITableEntryHandle selected = getSelectedErrorListEntry();

            return(GetStringFromTableEntry(selected, i_Value));
        }