private void AddUsingDirective(Dictionary <TreeTextSpan, List <UsingDirectiveSyntax> > container, UsingDirectiveSyntax usingDirective, TreeTextSpan containingSpan) { List <UsingDirectiveSyntax> usingList; if (!container.TryGetValue(containingSpan, out usingList)) { usingList = new List <UsingDirectiveSyntax>(); container.Add(containingSpan, usingList); } usingList.Add(usingDirective); }
private static void BuildReplaceMapForConditionalDirectives(UsingsSorter usingsHelper, Dictionary <UsingDirectiveSyntax, UsingDirectiveSyntax> replaceMap, IndentationSettings indentationSettings, TreeTextSpan rootSpan) { foreach (var childSpan in rootSpan.Children) { var originalUsings = usingsHelper.GetContainedUsings(childSpan); if (originalUsings.Count > 0) { // sort the original using declarations on Span.Start, in order to have the correct replace mapping. originalUsings.Sort(CompareSpanStart); var indentationSteps = IndentationHelper.GetIndentationSteps(indentationSettings, originalUsings[0].Parent); if (originalUsings[0].Parent is NamespaceDeclarationSyntax) { indentationSteps++; } var indentation = IndentationHelper.GenerateIndentationString(indentationSettings, indentationSteps); var modifiedUsings = usingsHelper.GenerateGroupedUsings(childSpan, indentation, false, qualifyNames: false); for (var i = 0; i < originalUsings.Count; i++) { replaceMap.Add(originalUsings[i], modifiedUsings[i]); } } BuildReplaceMapForConditionalDirectives(usingsHelper, replaceMap, indentationSettings, childSpan); } }
private List <UsingDirectiveSyntax> GenerateUsings(Dictionary <TreeTextSpan, List <UsingDirectiveSyntax> > usingsGroup, TreeTextSpan directiveSpan, string indentation, List <SyntaxTrivia> triviaToMove, bool qualifyNames) { List <UsingDirectiveSyntax> result = new List <UsingDirectiveSyntax>(); List <UsingDirectiveSyntax> usingsList; if (!usingsGroup.TryGetValue(directiveSpan, out usingsList)) { return(result); } return(this.GenerateUsings(usingsList, indentation, triviaToMove, qualifyNames)); }