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(_context.TokenStream.FirstTokenOfBaseTokenLine(operation.BaseToken), operation.Tokens, previousChangesMap, out tokenData, cancellationToken)) { return(false); } break; default: throw ExceptionUtilities.UnexpectedValue(operation.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; } default: { return(Contract.FailWithReturn <bool>("Unknown option")); } } ApplyIndentationChangesToDependentTokens(tokenData, previousChangesMap, cancellationToken); return(true); }