This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 216174
Collapse All | Expand All

(-)db.sql.editor/src/org/netbeans/modules/db/sql/lexer/SQLLexer.java (+3 lines)
Lines 239-244 Link Here
239
                        case '/':
239
                        case '/':
240
                            state = State.INIT;
240
                            state = State.INIT;
241
                            return factory.createToken(SQLTokenId.BLOCK_COMMENT);
241
                            return factory.createToken(SQLTokenId.BLOCK_COMMENT);
242
                        case '*':
243
                            state = State.ISA_STAR_IN_BLOCK_COMMENT;
244
                            break;
242
                        default:
245
                        default:
243
                            state = State.ISI_BLOCK_COMMENT;
246
                            state = State.ISI_BLOCK_COMMENT;
244
                            break;
247
                            break;
(-)db.sql.editor/test/unit/src/org/netbeans/modules/db/sql/lexer/SQLLexerTest.java (+45 lines)
Lines 114-119 Link Here
114
        assertTokens(seq, SQLTokenId.INCOMPLETE_STRING);
114
        assertTokens(seq, SQLTokenId.INCOMPLETE_STRING);
115
    }
115
    }
116
116
117
    /**
118
     * Check correct handling of multiline comments (bug #216174)
119
     * 
120
     * @throws Exception 
121
     */
122
    public void testMultiLineComment() throws Exception {
123
        TokenSequence<SQLTokenId> seq = getTokenSequence("/**/\n"
124
                + "select * from test;");
125
        assertTokens(seq, SQLTokenId.BLOCK_COMMENT, SQLTokenId.WHITESPACE, 
126
                SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE, SQLTokenId.OPERATOR,
127
                SQLTokenId.WHITESPACE, SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE,
128
                SQLTokenId.IDENTIFIER, SQLTokenId.OPERATOR, SQLTokenId.WHITESPACE);
129
        seq = getTokenSequence("/****/\n"
130
                + "select * from test;");
131
        assertTokens(seq, SQLTokenId.BLOCK_COMMENT, SQLTokenId.WHITESPACE, 
132
                SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE, SQLTokenId.OPERATOR,
133
                SQLTokenId.WHITESPACE, SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE,
134
                SQLTokenId.IDENTIFIER, SQLTokenId.OPERATOR, SQLTokenId.WHITESPACE);
135
        // Bug #216174: The following sequences led to only one token
136
        seq = getTokenSequence("/***/\n"
137
                + "select * from test;");
138
        assertTokens(seq, SQLTokenId.BLOCK_COMMENT, SQLTokenId.WHITESPACE, 
139
                SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE, SQLTokenId.OPERATOR,
140
                SQLTokenId.WHITESPACE, SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE,
141
                SQLTokenId.IDENTIFIER, SQLTokenId.OPERATOR, SQLTokenId.WHITESPACE);
142
        seq = getTokenSequence("/*****/\n"
143
                + "select * from test;");
144
        assertTokens(seq, SQLTokenId.BLOCK_COMMENT, SQLTokenId.WHITESPACE, 
145
                SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE, SQLTokenId.OPERATOR,
146
                SQLTokenId.WHITESPACE, SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE,
147
                SQLTokenId.IDENTIFIER, SQLTokenId.OPERATOR, SQLTokenId.WHITESPACE);
148
        seq = getTokenSequence("/*** Test **/\n"
149
                + "select * from test;");
150
        assertTokens(seq, SQLTokenId.BLOCK_COMMENT, SQLTokenId.WHITESPACE, 
151
                SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE, SQLTokenId.OPERATOR,
152
                SQLTokenId.WHITESPACE, SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE,
153
                SQLTokenId.IDENTIFIER, SQLTokenId.OPERATOR, SQLTokenId.WHITESPACE);
154
        seq = getTokenSequence("/*** \n*  Test\n **/\n"
155
                + "select * from test;");
156
        assertTokens(seq, SQLTokenId.BLOCK_COMMENT, SQLTokenId.WHITESPACE, 
157
                SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE, SQLTokenId.OPERATOR,
158
                SQLTokenId.WHITESPACE, SQLTokenId.KEYWORD, SQLTokenId.WHITESPACE,
159
                SQLTokenId.IDENTIFIER, SQLTokenId.OPERATOR, SQLTokenId.WHITESPACE);
160
    }
161
117
    private static TokenSequence<SQLTokenId> getTokenSequence(String sql) throws BadLocationException {
162
    private static TokenSequence<SQLTokenId> getTokenSequence(String sql) throws BadLocationException {
118
        Document doc = new ModificationTextDocument();
163
        Document doc = new ModificationTextDocument();
119
        doc.insertString(0, sql, null);
164
        doc.insertString(0, sql, null);

Return to bug 216174