示例#1
0
            private void ApplyIndentationToAlignWithGivenToken(
                SyntaxToken token,
                IList <TokenData> list,
                Dictionary <SyntaxToken, int> previousChangesMap,
                CancellationToken cancellationToken)
            {
                // rather than having external new changes map, having snapshot concept
                // in token stream might be easier to understand.
                int baseSpaceOrIndentation = _tokenStream.GetCurrentColumn(token);

                for (int i = 0; i < list.Count; i++)
                {
                    var currentToken  = list[i];
                    var previousToken = _tokenStream.GetPreviousTokenData(currentToken);

                    var triviaInfo = _tokenStream.GetTriviaData(previousToken, currentToken);
                    if (!triviaInfo.SecondTokenIsFirstTokenOnLine)
                    {
                        continue;
                    }

                    ApplyIndentationToGivenPosition(
                        previousToken, currentToken, triviaInfo, baseSpaceOrIndentation, previousChangesMap, cancellationToken);
                }
            }