Beispiel #1
0
        private void OutputNativeMethod(BlockSyntax node)
        {
            var txt = node.GetText().ToString().Trim();//Note: Leading/Trailing white space

            txt = txt.UnBracketing(StringPair.CurlyBracket).Trim();
            txt = txt.UnBracketing(StringPair.Create("/*", "*/"));
            string[] lines = txt.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

            _output.WriteLine(node.OpenBraceToken, "//**Js Native code start");
            _output.TrivialWriteLine(txt);
            _output.WriteLine(node.CloseBraceToken, "//**Js Native code end");
        }
        public static bool NeedsTrailingBlankLine(BlockSyntax block)
        {
            if (block == null)
            {
                throw new ArgumentNullException("block");
            }

            var closeBrace = block.CloseBraceToken;

            // Check to see if the closing brace is really there.
            if (closeBrace.IsKind(SyntaxKind.None))
            {
                return false;
            }

            var lines = block.GetText().Lines;
            var closeBraceLine = lines.GetLineFromPosition(closeBrace.Span.End);

            // If the close brace line is the last line, it doesn't need a trailing blank line.
            if (closeBraceLine.LineNumber + 1 == lines.Count)
            {
                return false;
            }

            // If the next token is also a close brace token and is on the next line,
            // we don't need a trailing blank line.
            var nextToken = closeBrace.GetNextToken();
            if (nextToken.IsKind(SyntaxKind.CloseBraceToken))
            {
                var nextTokenLine = lines.GetLineFromPosition(nextToken.Span.Start);
                if (nextTokenLine.LineNumber - 1 == closeBraceLine.LineNumber)
                {
                    return false;
                }
            }

            // If the line after the closing brace is not whitespace, we need a trailing line.
            var nextLine = lines[closeBraceLine.LineNumber + 1];

            return !string.IsNullOrWhiteSpace(nextLine.ToString());
        }
Beispiel #3
0
        private void OutputNativeMethod(BlockSyntax node)
        {
            var txt = node.GetText().ToString().Trim();//Note: Leading/Trailing white space
            txt = txt.UnBracketing(StringPair.CurlyBracket).Trim();
            txt = txt.UnBracketing(StringPair.Create("/*", "*/"));
            string[] lines = txt.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

            _output.WriteLine(node.OpenBraceToken, "//**Js Native code start");
            _output.TrivialWriteLine(txt);
            _output.WriteLine(node.CloseBraceToken, "//**Js Native code end");
        }