private void AddWrappingSuppressOperation(SuppressOperation operation, bool twoTokensOnSameLine) { // don't add stuff if it is empty if (operation == null || operation.TextSpan.IsEmpty) { return; } var option = operation.Option; if (!option.IsMaskOn(SuppressOption.NoWrapping) || this.suppressWrappingMap.Contains(operation.TextSpan)) { return; } if (!(option.IsOn(SuppressOption.NoWrappingIfOnSingleLine) && twoTokensOnSameLine) && !(option.IsOn(SuppressOption.NoWrappingIfOnMultipleLine) && !twoTokensOnSameLine)) { return; } var data = new SuppressWrappingData(operation.TextSpan, noWrapping: true); this.suppressWrappingMap.Add(operation.TextSpan); this.suppressWrappingTree.AddIntervalInPlace(data); }
private void AddWrappingSuppressOperation(SuppressOperation operation, bool twoTokensOnSameLine) { // don't add stuff if it is empty if (operation == null || operation.TextSpan.IsEmpty) { return; } var option = operation.Option; if (!option.IsMaskOn(SuppressOption.NoWrapping) || _suppressWrappingMap.Contains(operation.TextSpan)) { return; } if (!(option.IsOn(SuppressOption.NoWrappingIfOnSingleLine) && twoTokensOnSameLine) && !(option.IsOn(SuppressOption.NoWrappingIfOnMultipleLine) && !twoTokensOnSameLine)) { return; } var ignoreElastic = option.IsMaskOn(SuppressOption.IgnoreElasticWrapping) || !operation.ContainsElasticTrivia(_tokenStream); var data = new SuppressWrappingData(operation.TextSpan, ignoreElastic: ignoreElastic); _suppressWrappingMap.Add(operation.TextSpan); _suppressWrappingTree.AddIntervalInPlace(data); }
private void AddSpacingSuppressOperation(SuppressOperation operation, bool twoTokensOnSameLine) { // don't add stuff if it is empty if (operation == null || operation.TextSpan.IsEmpty) { return; } // we might need to merge bits with enclosing suppress flag var option = operation.Option; if (!option.IsMaskOn(SuppressOption.NoSpacing) || _suppressSpacingMap.Contains(operation.TextSpan)) { return; } if (!(option.IsOn(SuppressOption.NoSpacingIfOnSingleLine) && twoTokensOnSameLine) && !(option.IsOn(SuppressOption.NoSpacingIfOnMultipleLine) && !twoTokensOnSameLine)) { return; } var data = new SuppressSpacingData(operation.TextSpan); _suppressSpacingMap.Add(operation.TextSpan); _suppressSpacingTree.AddIntervalInPlace(data); }
public static bool ContainsElasticTrivia(this SuppressOperation operation, TokenStream tokenStream) { var startToken = tokenStream.GetTokenData(operation.StartToken); var nextToken = startToken.GetNextTokenData(); var endToken = tokenStream.GetTokenData(operation.EndToken); var previousToken = endToken.GetPreviousTokenData(); return(tokenStream.GetTriviaData(startToken, nextToken).TreatAsElastic || tokenStream.GetTriviaData(previousToken, endToken).TreatAsElastic); }
public void AddInitialSuppressOperation(SuppressOperation operation) { // don't add stuff if it is empty if (operation == null || operation.TextSpan.IsEmpty) { return; } var onSameLine = _tokenStream.TwoTokensOriginallyOnSameLine(operation.StartToken, operation.EndToken); AddSuppressOperation(operation, onSameLine); }
private void AddFormattingSuppressOperation(SuppressOperation operation) { // don't add stuff if it is empty if (operation == null || operation.TextSpan.IsEmpty) { return; } // we might need to merge bits with enclosing suppress flag var option = operation.Option; if (!option.IsOn(SuppressOption.DisableFormatting) || _suppressFormattingMap.Contains(operation.TextSpan)) { return; } var data = new SuppressSpacingData(operation.TextSpan); _suppressFormattingMap.Add(operation.TextSpan); _suppressFormattingTree.AddIntervalInPlace(data); }
private void AddSuppressOperation(SuppressOperation operation, bool onSameLine) { AddSpacingSuppressOperation(operation, onSameLine); AddWrappingSuppressOperation(operation, onSameLine); }