public bool ApplyAlignment( AlignTokensOperation operation, Dictionary<SyntaxToken, int> previousChangesMap, CancellationToken cancellationToken) { Contract.ThrowIfNull(previousChangesMap); IList<TokenData> tokenData; switch (operation.Option) { case AlignTokensOption.AlignIndentationOfTokensToBaseToken: { if (!ApplyAlignment(operation.BaseToken, operation.Tokens, previousChangesMap, out tokenData, cancellationToken)) { return false; } break; } case AlignTokensOption.AlignPositionOfTokensToIndentation: { // token will be align to current indentation. for this operation, we don't care // about base token if (operation.Tokens.IsEmpty()) { return false; } tokenData = GetTokenWithIndices(operation.Tokens); // no valid tokens. do nothing and return if (tokenData.Count == 0) { return false; } ApplySpacesToAlignWithCurrentIndentation(tokenData, previousChangesMap, cancellationToken); break; } case AlignTokensOption.AlignToFirstTokenOnBaseTokenLine: { if (!ApplyAlignment(tokenStream.FirstTokenOfBaseTokenLine(operation.BaseToken), operation.Tokens, previousChangesMap, out tokenData, cancellationToken)) { return false; } break; } default: { return Contract.FailWithReturn<bool>("Unknown option"); } } ApplyIndentationChangesToDependentTokens(tokenData, previousChangesMap, cancellationToken); return true; }
public bool ApplyAlignment( AlignTokensOperation operation, Dictionary<SyntaxToken, int> previousChangesMap, CancellationToken cancellationToken) { Contract.ThrowIfNull(previousChangesMap); IList<TokenData> tokenData; switch (operation.Option) { case AlignTokensOption.AlignIndentationOfTokensToBaseToken: { if (!ApplyAlignment(operation.BaseToken, operation.Tokens, previousChangesMap, out tokenData, cancellationToken)) { return false; } break; } case AlignTokensOption.AlignIndentationOfTokensToFirstTokenOfBaseTokenLine: { if (!ApplyAlignment(_tokenStream.FirstTokenOfBaseTokenLine(operation.BaseToken), operation.Tokens, previousChangesMap, out tokenData, cancellationToken)) { return false; } break; } default: { return Contract.FailWithReturn<bool>("Unknown option"); } } ApplyIndentationChangesToDependentTokens(tokenData, previousChangesMap, cancellationToken); return true; }