-
Notifications
You must be signed in to change notification settings - Fork 383
/
AnalyzerDependencyModel.cs
54 lines (44 loc) · 2.35 KB
/
AnalyzerDependencyModel.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Immutable;
using Microsoft.VisualStudio.Imaging;
using Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.Subscriptions.RuleHandlers;
namespace Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.Models
{
internal class AnalyzerDependencyModel : DependencyModel
{
private static readonly DependencyFlagCache s_flagCache = new DependencyFlagCache(add: DependencyTreeFlags.AnalyzerDependency);
private static readonly DependencyIconSet s_iconSet = new DependencyIconSet(
icon: KnownMonikers.CodeInformation,
expandedIcon: KnownMonikers.CodeInformation,
unresolvedIcon: ManagedImageMonikers.CodeInformationWarning,
unresolvedExpandedIcon: ManagedImageMonikers.CodeInformationWarning);
private static readonly DependencyIconSet s_implicitIconSet = new DependencyIconSet(
icon: ManagedImageMonikers.CodeInformationPrivate,
expandedIcon: ManagedImageMonikers.CodeInformationPrivate,
unresolvedIcon: ManagedImageMonikers.CodeInformationWarning,
unresolvedExpandedIcon: ManagedImageMonikers.CodeInformationWarning);
public override DependencyIconSet IconSet => Implicit ? s_implicitIconSet : s_iconSet;
public override int Priority => GraphNodePriority.Analyzer;
public override string ProviderType => AnalyzerRuleHandler.ProviderTypeString;
public override string? SchemaItemType => AnalyzerReference.PrimaryDataSourceItemType;
public override string? SchemaName => Resolved ? ResolvedAnalyzerReference.SchemaName : AnalyzerReference.SchemaName;
public AnalyzerDependencyModel(
string path,
string originalItemSpec,
bool resolved,
bool isImplicit,
IImmutableDictionary<string, string> properties)
: base(
path,
originalItemSpec,
flags: s_flagCache.Get(resolved, isImplicit),
resolved,
isImplicit,
properties)
{
Caption = resolved
? System.IO.Path.GetFileNameWithoutExtension(path)
: path;
}
}
}