Esempio n. 1
0
        public override ITokenNode GetMinimalSeparator(ITokenNode leftToken, ITokenNode rightToken)
        {
            if (leftToken is IWhitespaceNode || leftToken.GetTokenType() == PsiTokenType.WHITE_SPACE)
            {
                return(null);
            }

            if (leftToken.GetTokenType() == PsiTokenType.END_OF_LINE_COMMENT && rightToken.GetTokenType() != PsiTokenType.NEW_LINE)
            {
                return(PsiFormatterHelper.CreateNewLine("\r\n"));
            }

            if (rightToken is IWhitespaceNode || rightToken.GetTokenType() == PsiTokenType.WHITE_SPACE)
            {
                return(null);
            }

            if (leftToken.GetTokenType() == PsiTokenType.LBRACE || leftToken.GetTokenType() == PsiTokenType.RBRACE || leftToken.GetTokenType() == PsiTokenType.RBRACE || leftToken.GetTokenType() == PsiTokenType.RBRACKET || leftToken.GetTokenType() == PsiTokenType.LPARENTH || leftToken.GetTokenType() == PsiTokenType.RPARENTH || leftToken.GetTokenType() == PsiTokenType.LT || leftToken.GetTokenType() == PsiTokenType.GT)
            {
                return(null);
            }

            if (rightToken.GetTokenType() == PsiTokenType.LBRACE || rightToken.GetTokenType() == PsiTokenType.RBRACE || rightToken.GetTokenType() == PsiTokenType.RBRACE || rightToken.GetTokenType() == PsiTokenType.RBRACKET || rightToken.GetTokenType() == PsiTokenType.LPARENTH || rightToken.GetTokenType() == PsiTokenType.RPARENTH || rightToken.GetTokenType() == PsiTokenType.LT || rightToken.GetTokenType() == PsiTokenType.GT)
            {
                return(null);
            }

            if (rightToken.GetTokenType() == PsiTokenType.ASTERISK || rightToken.GetTokenType() == PsiTokenType.QUEST)
            {
                return(null);
            }

            if ((leftToken.GetTokenType() == PsiTokenType.COLON || leftToken.GetTokenType() == PsiTokenType.SEMICOLON) &&
                (!(rightToken.GetTokenType() == PsiTokenType.C_STYLE_COMMENT || rightToken.GetTokenType() == PsiTokenType.END_OF_LINE_COMMENT)))
            {
                return(PsiFormatterHelper.CreateNewLine("\r\n"));
            }

            TokenNodeType tokenType1 = leftToken.GetTokenType();
            TokenNodeType tokenType2 = rightToken.GetTokenType();

            if (myGlueingCache.Get(new TokenTypePair(tokenType1, tokenType2)))
            {
                return
                    (tokenType1 == PsiTokenType.END_OF_LINE_COMMENT
            ? PsiFormatterHelper.CreateNewLine("\r\n")
            : PsiFormatterHelper.CreateSpace(" "));
            }

            return(null);
        }
 public override ITreeNode CreateNewLine()
 {
     return(PsiFormatterHelper.CreateNewLine());
 }