本文整理汇总了C#中Dictionary.ToImmutableDictionary方法的典型用法代码示例。如果您正苦于以下问题:C# Dictionary.ToImmutableDictionary方法的具体用法?C# Dictionary.ToImmutableDictionary怎么用?C# Dictionary.ToImmutableDictionary使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Dictionary
的用法示例。
在下文中一共展示了Dictionary.ToImmutableDictionary方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateDiagnosticAnalyzerService
private static DiagnosticAnalyzerService CreateDiagnosticAnalyzerService(
Dictionary<string, DiagnosticAnalyzer[]> analyzerMap, IAsynchronousOperationListener listener)
{
return analyzerMap == null || analyzerMap.Count == 0
? new MyDiagnosticAnalyzerService(DiagnosticExtensions.GetCompilerDiagnosticAnalyzersMap(), listener: listener)
: new MyDiagnosticAnalyzerService(analyzerMap.ToImmutableDictionary(kvp => kvp.Key, kvp => kvp.Value.ToImmutableArray()), listener: listener);
}
示例2: GetSortedDiagnosticsFromDocumentsAsync
/// <summary>
/// Given an analyzer and a collection of documents to apply it to, run the analyzer and gather an array of
/// diagnostics found. The returned diagnostics are then ordered by location in the source documents.
/// </summary>
/// <param name="analyzers">The analyzer to run on the documents.</param>
/// <param name="documents">The <see cref="Document"/>s that the analyzer will be run on.</param>
/// <param name="cancellationToken">The <see cref="CancellationToken"/> that the task will observe.</param>
/// <returns>A collection of <see cref="Diagnostic"/>s that surfaced in the source code, sorted by
/// <see cref="Diagnostic.Location"/>.</returns>
protected static async Task<ImmutableArray<Diagnostic>> GetSortedDiagnosticsFromDocumentsAsync(ImmutableArray<DiagnosticAnalyzer> analyzers, Document[] documents, CancellationToken cancellationToken)
{
var projects = new HashSet<Project>();
foreach (var document in documents)
{
projects.Add(document.Project);
}
var supportedDiagnosticsSpecificOptions = new Dictionary<string, ReportDiagnostic>();
foreach (var analyzer in analyzers)
{
foreach (var diagnostic in analyzer.SupportedDiagnostics)
{
// make sure the analyzers we are testing are enabled
supportedDiagnosticsSpecificOptions[diagnostic.Id] = ReportDiagnostic.Default;
}
}
// Report exceptions during the analysis process as errors
supportedDiagnosticsSpecificOptions.Add("AD0001", ReportDiagnostic.Error);
var diagnostics = ImmutableArray.CreateBuilder<Diagnostic>();
foreach (var project in projects)
{
// update the project compilation options
var modifiedSpecificDiagnosticOptions = supportedDiagnosticsSpecificOptions.ToImmutableDictionary().SetItems(project.CompilationOptions.SpecificDiagnosticOptions);
var modifiedCompilationOptions = project.CompilationOptions.WithSpecificDiagnosticOptions(modifiedSpecificDiagnosticOptions);
var processedProject = project.WithCompilationOptions(modifiedCompilationOptions);
var compilation = await processedProject.GetCompilationAsync(cancellationToken).ConfigureAwait(false);
var compilationWithAnalyzers = compilation.WithAnalyzers(analyzers, processedProject.AnalyzerOptions, cancellationToken);
var compilerDiagnostics = compilation.GetDiagnostics(cancellationToken);
var compilerErrors = compilerDiagnostics.Where(i => i.Severity == DiagnosticSeverity.Error);
var diags = await compilationWithAnalyzers.GetAnalyzerDiagnosticsAsync().ConfigureAwait(false);
var allDiagnostics = await compilationWithAnalyzers.GetAllDiagnosticsAsync().ConfigureAwait(false);
var failureDiagnostics = allDiagnostics.Where(diagnostic => diagnostic.Id == "AD0001");
foreach (var diag in diags.Concat(compilerErrors).Concat(failureDiagnostics))
{
if (diag.Location == Location.None || diag.Location.IsInMetadata)
{
diagnostics.Add(diag);
}
else
{
for (int i = 0; i < documents.Length; i++)
{
var document = documents[i];
var tree = await document.GetSyntaxTreeAsync(cancellationToken).ConfigureAwait(false);
if (tree == diag.Location.SourceTree)
{
diagnostics.Add(diag);
}
}
}
}
}
var results = SortDistinctDiagnostics(diagnostics);
return results.ToImmutableArray();
}
示例3: Setup
public void Setup()
{
_dictionary = Enumerable.Range(1, Size).ToDictionary(_ => "test " + _, _ => _);
_readonlyDictionary = new ReadonlyDictionary<string, int>(_dictionary);
_concurrentDictionary = new ConcurrentDictionary<string, int>(_dictionary);
_immutableDictionary = _dictionary.ToImmutableDictionary();
}
示例4: ReadFile
public HtmlFile ReadFile(HtmlFile file)
{
CommonMarkSettings.Default.OutputDelegate =
(document, output, settings) =>
new CustomHtmlFormatter(output, settings, file).WriteDocument(document);
var doc = CommonMarkConverter.Parse(file.Source);
var properties = new Dictionary<string, string>();
foreach(var node in doc.AsEnumerable())
{
if(node.Block?.Tag == BlockTag.FencedCode)
{
if(node.Block.StringContent.TakeFromStart(PropertiesString.Length) == PropertiesString)
{
string kvString = node.Block.StringContent.ToString().Substring(PropertiesString.Length);
var propDict = ReadKV(kvString);
propDict.ToList().ForEach(x => properties.Add(x.Key, x.Value));
}
}
}
StringBuilder sb = new StringBuilder();
CommonMarkConverter.ProcessStage3(doc, new StringWriter(sb));
return file.WithContent(sb.ToString()).WithProperties(properties.ToImmutableDictionary());
}
示例5: CreateHelpLinks
private static ImmutableDictionary<ErrorCode, string> CreateHelpLinks()
{
var map = new Dictionary<ErrorCode, string>()
{
// { ERROR_CODE, HELP_LINK }
};
return map.ToImmutableDictionary();
}
示例6: CreateCategoriesMap
private static ImmutableDictionary<ErrorCode, string> CreateCategoriesMap()
{
var map = new Dictionary<ErrorCode, string>()
{
// { ERROR_CODE, CATEGORY }
};
return map.ToImmutableDictionary();
}
示例7: Build
public void Build(FileModel model, IHostService host)
{
model.File = Path.ChangeExtension(model.File, ".json");
var toc = (TocViewModel)model.Content;
HashSet<string> links = new HashSet<string>();
Dictionary<string, HashSet<string>> tocMap = new Dictionary<string, HashSet<string>>();
UpdateRelativePathAndAddTocMap(toc, model, links, tocMap, host);
model.Properties.LinkToFiles = links.ToImmutableArray();
model.Properties.TocMap = tocMap.ToImmutableDictionary();
// todo : metadata.
}
示例8: GetTagSource
private static void GetTagSource(TestWorkspace workspace, DiagnosticServiceWaiter diagnosticWaiter, ErrorSquiggleWaiter squiggleWaiter, out Analyzer analyzer, out DiagnosticAnalyzerService analyzerService, out DiagnosticsSquiggleTaggerProvider.TagSource taggerSource)
{
analyzer = new Analyzer();
var analyzerMap = new Dictionary<string, ImmutableArray<DiagnosticAnalyzer>>() { { LanguageNames.CSharp, ImmutableArray.Create<DiagnosticAnalyzer>(analyzer) } };
analyzerService = new DiagnosticAnalyzerService(analyzerMap.ToImmutableDictionary());
var diagnosticListeners = SpecializedCollections.SingletonEnumerable(new Lazy<IAsynchronousOperationListener, FeatureMetadata>(
() => diagnosticWaiter, new FeatureMetadata(new Dictionary<string, object>() { { "FeatureName", FeatureAttribute.DiagnosticService } })));
var diagnosticService = new DiagnosticService(SpecializedCollections.SingletonEnumerable<IDiagnosticUpdateSource>(analyzerService), diagnosticListeners);
var document = workspace.Documents.First();
var buffer = document.GetTextBuffer();
var foregroundService = new TestForegroundNotificationService();
var optionsService = workspace.Services.GetService<IOptionService>();
taggerSource = new DiagnosticsSquiggleTaggerProvider.TagSource(buffer, foregroundService, diagnosticService, optionsService, squiggleWaiter);
}
示例9: ServiceFabricConfigurationProvider
/// <summary>
/// The settings provider used to bridge Service Fabric configuration information and DotNetty
/// </summary>
/// <param name="traceId">The unique identifier used to correlate debugging and diagnostics messages</param>
/// <param name="componentName">The component name used for debug and diagnostics messages</param>
/// <param name="logger">The service fabric logger to be used when writing debug and diagnostics information</param>
/// <param name="gatewayConfiguration">The gateway configuration used to get current configuration information for DotNetty</param>
/// <param name="iotHubConfiguration">The IotHub Client configuration used to get current configuration information for DotNetty</param>
/// <param name="mqttConfiguration">The MQTT configuration used to get current configuration information for DotNetty</param>
public ServiceFabricConfigurationProvider(Guid traceId, string componentName, IServiceLogger logger, GatewayConfiguration gatewayConfiguration, IoTHubConfiguration iotHubConfiguration, MqttServiceConfiguration mqttConfiguration)
{
this.componentName = componentName;
this.logger = logger;
this.logger.Verbose(traceId, this.componentName, "Initializing configuration provider.");
var baseProperties = new Dictionary<string, string>();
foreach (PropertyInfo element in typeof(GatewayConfiguration).GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
if (!element.PropertyType.IsArray)
{
object value = element.GetValue(gatewayConfiguration, null);
baseProperties.Add(element.Name, element.PropertyType == typeof(string) ? value as string : value.ToString());
}
}
foreach (PropertyInfo element in typeof(MqttServiceConfiguration).GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
if (!element.PropertyType.IsArray)
{
object value = element.GetValue(mqttConfiguration, null);
baseProperties.Add(element.Name, element.PropertyType == typeof(string) ? value as string : value.ToString());
}
}
foreach (PropertyInfo element in typeof(IoTHubConfiguration).GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
if (!element.PropertyType.IsArray)
{
object value = element.GetValue(iotHubConfiguration, null);
baseProperties.Add($"IotHubClient.{element.Name}", value?.ToString());
}
}
this.configurationValues = baseProperties.ToImmutableDictionary();
this.logger.Informational(traceId, this.componentName, "Initializing configuration provider complete.");
}
示例10: IndexSolutions
public static void IndexSolutions(IEnumerable<string> solutionFilePaths, Dictionary<string, string> properties)
{
var assemblyNames = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
foreach (var path in solutionFilePaths)
{
using (Disposable.Timing("Reading assembly names from " + path))
{
foreach (var assemblyName in AssemblyNameExtractor.GetAssemblyNames(path))
{
assemblyNames.Add(assemblyName);
}
}
}
var federation = new Federation();
foreach (var path in solutionFilePaths)
{
using (Disposable.Timing("Generating " + path))
{
using (var solutionGenerator = new SolutionGenerator(
path,
Paths.SolutionDestinationFolder,
properties: properties.ToImmutableDictionary(),
federation: federation))
{
solutionGenerator.GlobalAssemblyList = assemblyNames;
solutionGenerator.Generate(solutionExplorerRoot: mergedSolutionExplorerRoot);
if (Configuration.ProcessReferencies)
Extend.ExtendGenerator.TopReferencedAssemblies(solutionGenerator, federation, mergedSolutionExplorerRoot);
}
}
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}
}
示例11: IndexSolutions
private static void IndexSolutions(IEnumerable<string> solutionFilePaths, Dictionary<string, string> properties, Federation federation, Dictionary<string, string> serverPathMappings)
{
var assemblyNames = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
foreach (var path in solutionFilePaths)
{
using (Disposable.Timing("Reading assembly names from " + path))
{
foreach (var assemblyName in AssemblyNameExtractor.GetAssemblyNames(path))
{
assemblyNames.Add(assemblyName);
}
}
}
foreach (var path in solutionFilePaths)
{
using (Disposable.Timing("Generating " + path))
{
using (var solutionGenerator = new SolutionGenerator(
path,
Paths.SolutionDestinationFolder,
properties: properties.ToImmutableDictionary(),
federation: federation,
serverPathMappings: serverPathMappings))
{
solutionGenerator.GlobalAssemblyList = assemblyNames;
solutionGenerator.Generate(solutionExplorerRoot: mergedSolutionExplorerRoot);
}
}
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}
}
示例12: HandleAsteriskToken
private static void HandleAsteriskToken(SyntaxTreeAnalysisContext context, SyntaxToken token)
{
if (token.IsMissing)
{
return;
}
bool allowAtLineStart;
bool allowAtLineEnd;
bool allowPrecedingSpace;
bool allowTrailingSpace;
switch (token.Parent.Kind())
{
case SyntaxKind.PointerType:
allowAtLineStart = false;
allowAtLineEnd = true;
allowPrecedingSpace = false;
var nextToken = token.GetNextToken();
switch (nextToken.Kind())
{
case SyntaxKind.OpenBracketToken:
case SyntaxKind.OpenParenToken:
allowTrailingSpace = false;
break;
default:
allowTrailingSpace = true;
break;
}
break;
case SyntaxKind.PointerIndirectionExpression:
allowAtLineStart = true;
allowAtLineEnd = false;
allowTrailingSpace = false;
var prevToken = token.GetPreviousToken();
switch (prevToken.Kind())
{
case SyntaxKind.OpenBracketToken:
case SyntaxKind.OpenParenToken:
case SyntaxKind.CloseParenToken:
allowPrecedingSpace = false;
break;
default:
allowPrecedingSpace = true;
break;
}
break;
default:
return;
}
bool firstInLine = token.IsFirstInLine();
bool precededBySpace = firstInLine || token.IsPrecededByWhitespace();
bool followedBySpace = token.IsFollowedByWhitespace();
bool lastInLine = token.IsLastInLine();
if (!allowAtLineStart && firstInLine)
{
// Dereference symbol '*' must {not appear at the beginning of a line}.
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationPreceding,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionRemove
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, token.GetLocation(), properties.ToImmutableDictionary(), "not appear at the beginning of a line"));
}
else if (!allowPrecedingSpace && precededBySpace)
{
// Dereference symbol '*' must {not be preceded by a space}.
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationPreceding,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionRemove
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, token.GetLocation(), properties.ToImmutableDictionary(), "not be preceded by a space"));
}
if (!allowAtLineEnd && lastInLine)
{
// Dereference symbol '*' must {not appear at the end of a line}.
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationFollowing,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionRemove
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, token.GetLocation(), properties.ToImmutableDictionary(), "not appear at the end of a line"));
}
else if (!allowTrailingSpace && followedBySpace)
{
// Dereference symbol '*' must {not be followed by a space}.
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationFollowing,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionRemove
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, token.GetLocation(), properties.ToImmutableDictionary(), "not be followed by a space"));
}
//.........这里部分代码省略.........
开发者ID:nvincent,项目名称:StyleCopAnalyzers,代码行数:101,代码来源:SA1023DereferenceAndAccessOfSymbolsMustBeSpacedCorrectly.cs
示例13: HandleCloseBraceToken
private static void HandleCloseBraceToken(SyntaxTreeAnalysisContext context, SyntaxToken token)
{
if (token.IsMissing)
{
return;
}
bool precededBySpace = token.IsFirstInLine() || token.IsPrecededByWhitespace();
if (token.Parent is InterpolationSyntax)
{
if (precededBySpace)
{
// Closing curly bracket must{ not} be {preceded} by a space.
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationPreceding,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionRemove
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, token.GetLocation(), properties.ToImmutableDictionary(), " not", "preceded"));
}
return;
}
bool followedBySpace = token.IsFollowedByWhitespace();
bool lastInLine = token.IsLastInLine();
bool precedesSpecialCharacter;
if (!followedBySpace && !lastInLine)
{
SyntaxToken nextToken = token.GetNextToken();
precedesSpecialCharacter =
nextToken.IsKind(SyntaxKind.CloseParenToken)
|| nextToken.IsKind(SyntaxKind.CommaToken)
|| nextToken.IsKind(SyntaxKind.SemicolonToken)
|| nextToken.IsKind(SyntaxKind.DotToken)
|| (nextToken.IsKind(SyntaxKind.QuestionToken) && nextToken.GetNextToken(includeZeroWidth: true).IsKind(SyntaxKind.DotToken))
|| nextToken.IsKind(SyntaxKind.CloseBracketToken);
}
else
{
precedesSpecialCharacter = false;
}
if (!precededBySpace)
{
// Closing curly bracket must{} be {preceded} by a space.
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationPreceding,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionInsert
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, token.GetLocation(), properties.ToImmutableDictionary(), string.Empty, "preceded"));
}
if (!lastInLine && !precedesSpecialCharacter && !followedBySpace)
{
// Closing curly bracket must{} be {followed} by a space.
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationFollowing,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionInsert
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, token.GetLocation(), properties.ToImmutableDictionary(), string.Empty, "followed"));
}
}
示例14: HandleCloseParenToken
//.........这里部分代码省略.........
{
// allow a space for this case, but only if the ')' character is the last on the line
allowEndOfLine = true;
precedesStickyCharacter = true;
}
else
{
precedesStickyCharacter = false;
}
break;
case SyntaxKind.PlusToken:
precedesStickyCharacter = nextToken.Parent.IsKind(SyntaxKind.UnaryPlusExpression);
// this will be reported as SA1022
suppressFollowingSpaceError = true;
break;
case SyntaxKind.MinusToken:
precedesStickyCharacter = nextToken.Parent.IsKind(SyntaxKind.UnaryMinusExpression);
// this will be reported as SA1021
suppressFollowingSpaceError = true;
break;
case SyntaxKind.DotToken:
// allow a space for this case, but only if the ')' character is the last on the line
allowEndOfLine = true;
precedesStickyCharacter = true;
break;
case SyntaxKind.ColonToken:
bool requireSpace =
nextToken.Parent.IsKind(SyntaxKind.ConditionalExpression)
|| nextToken.Parent.IsKind(SyntaxKind.BaseConstructorInitializer)
|| nextToken.Parent.IsKind(SyntaxKind.ThisConstructorInitializer);
precedesStickyCharacter = !requireSpace;
break;
case SyntaxKind.PlusPlusToken:
case SyntaxKind.MinusMinusToken:
precedesStickyCharacter = true;
suppressFollowingSpaceError = false;
break;
case SyntaxKind.CloseBraceToken:
precedesStickyCharacter = nextToken.Parent is InterpolationSyntax;
break;
default:
precedesStickyCharacter = false;
break;
}
switch (token.Parent.Kind())
{
case SyntaxKind.CastExpression:
precedesStickyCharacter = true;
break;
default:
break;
}
if (precededBySpace)
{
// Closing parenthesis must{ not} be {preceded} by a space.
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationPreceding,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionRemove
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, token.GetLocation(), properties.ToImmutableDictionary(), " not", "preceded"));
}
if (!suppressFollowingSpaceError)
{
if (!precedesStickyCharacter && !followedBySpace && !lastInLine)
{
// Closing parenthesis must{} be {followed} by a space.
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationFollowing,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionInsert
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, token.GetLocation(), properties.ToImmutableDictionary(), string.Empty, "followed"));
}
else if (precedesStickyCharacter && followedBySpace && (!lastInLine || !allowEndOfLine))
{
// Closing parenthesis must{ not} be {followed} by a space.
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationFollowing,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionRemove
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, token.GetLocation(), properties.ToImmutableDictionary(), " not", "followed"));
}
}
}
开发者ID:hickford,项目名称:StyleCopAnalyzers,代码行数:101,代码来源:SA1009ClosingParenthesisMustBeSpacedCorrectly.cs
示例15: CheckIfLocationOfPreviousTokenAndOpenTokenAreTheSame
private static void CheckIfLocationOfPreviousTokenAndOpenTokenAreTheSame(SyntaxNodeAnalysisContext context, SyntaxToken openToken, bool preserveLayout)
{
var previousToken = openToken.GetPreviousToken();
if (previousToken.IsMissing)
{
return;
}
var prevTokenLine = previousToken.GetLineSpan();
var openParenLine = openToken.GetLineSpan();
if (prevTokenLine.IsValid &&
openParenLine.IsValid &&
openParenLine.StartLinePosition.Line != prevTokenLine.StartLinePosition.Line)
{
var properties = new Dictionary<string, string>
{
[OpenCloseSpacingCodeFixProvider.LocationKey] = OpenCloseSpacingCodeFixProvider.LocationPreceding,
[OpenCloseSpacingCodeFixProvider.ActionKey] = OpenCloseSpacingCodeFixProvider.ActionRemove,
[OpenCloseSpacingCodeFixProvider.LayoutKey] = preserveLayout ? OpenCloseSpacingCodeFixProvider.LayoutPreserve : OpenCloseSpacingCodeFixProvider.LayoutPack
};
context.ReportDiagnostic(Diagnostic.Create(Descriptor, openToken.GetLocation(), properties.ToImmutableDictionary()));
}
}
开发者ID:iaingalloway,项目名称:StyleCopAnalyzers,代码行数:23,代码来源:SA1110OpeningParenthesisMustBeOnDeclarationLine.cs