Exemplo n.º 1
0
        private void CloseFormattingScope()
        {
            Debug.Assert(_tokens.CurrentToken.TokenType == RTokenType.CloseCurlyBrace);

            _tb.SoftLineBreak();
            _tb.CloseIndentLevel();
            _tb.SoftIndent();

            if (_formattingScopes.Count > 1)
            {
                if (_formattingScopes.Peek().CloseBracePosition == _tokens.Position)
                {
                    FormattingScope scope = _formattingScopes.Pop();
                    scope.Close();
                }
            }

            AppendToken(leadingSpace: false, trailingSpace: false);

            if (SuppressLineBreakCount == 0 && !_tokens.IsEndOfStream())
            {
                // We insert line break after } unless next token is comma
                // (scope is in the argument list) or a closing brace
                // (last parameter in a function or indexer) or it is followed by 'else'
                // so 'else' does not get separated from 'if'.
                if (!KeepCurlyAndElseTogether())
                {
                    if (!IsClosingToken(_tokens.CurrentToken) && !IsInArguments())
                    {
                        _tb.SoftLineBreak();
                    }
                }
            }
        }