File: sql_colorizer.cpp

package info (click to toggle)
kdevelop3 4%3A3.2.0-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 58,220 kB
  • ctags: 33,997
  • sloc: cpp: 278,404; ansic: 48,238; sh: 23,721; tcl: 19,882; perl: 5,498; makefile: 4,717; ruby: 1,610; python: 1,549; awk: 1,484; xml: 563; java: 359; php: 20; asm: 14; ada: 5; pascal: 4; fortran: 4; haskell: 2; sql: 1
file content (81 lines) | stat: -rw-r--r-- 3,367 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU General Public
 *  License as published by the Free Software Foundation; either
 *  version 2 of the License, or (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; see the file COPYING.  If not, write to
 *  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 *  Boston, MA 02111-1307, USA.
 *
 */

#include "sql_colorizer.h"

static const char *sql_keywords[] = {
  "alter", "analyze", "audit", "comment", "commit", "create",
  "delete", "drop", "execute", "explain", "grant", "insert", "lock", "noaudit",
  "rename", "revoke", "rollback", "savepoint", "select", "set",
  "truncate", "update",

  "boolean", "char", "character", "date", "float", "integer", "long",
  "number", "raw", "rowid", "varchar", "varchar2", "varray",

  "false", "null", "true",

  "access", "add", "as", "asc", "begin", "by", "check", "cluster", "column",
  "compress", "connect", "current", "cursor", "decimal", "default", "desc",
  "else", "elsif", "end", "exception", "exclusive", "file", "for", "from",
  "function", "group", "having", "identified", "if", "immediate", "increment",
  "index", "initial", "into", "is", "level", "loop", "maxextents", "mode", "modify",
  "nocompress", "nowait", "of", "offline", "on", "online", "start",
  "successful", "synonym", "table", "then", "to", "trigger", "uid",
  "unique", "user", "validate", "values", "view", "whenever",
  "where", "with", "option", "order", "pctfree", "privileges", "procedure",
  "public", "resource", "return", "row", "rowlabel", "rownum", "rows",
  "session", "share", "size", "smallint", "type", "using",

  "not", "and", "or", "in", "any", "some", "all", "between", "exists",
  "like", "escape", "union", "intersect", "minus", "prior", "distinct",
  "sysdate", "out",

  "left", "right", "outer", "inner", "join",

  0
};

SqlColorizer::SqlColorizer( QEditor* editor )
    : QSourceColorizer( editor )
{
    // default context
    HLItemCollection* context0 = new HLItemCollection( 0 );
    context0->appendChild( new KeywordsHLItem( sql_keywords, Keyword, Normal, 0, true, true ) );
    context0->appendChild( new StartsWithHLItem( "--", Comment, 0 ) );
    context0->appendChild( new StringHLItem( "'", String, 1 ) );
    context0->appendChild( new StringHLItem( "\"", String, 2 ) );

    HLItemCollection* context1 = new HLItemCollection( String );
    context1->appendChild( new StringHLItem( "\\\\", String, 1 ) );
    context1->appendChild( new StringHLItem( "\\'", String, 1 ) );
    context1->appendChild( new StringHLItem( "'", String, 0 ) );

    HLItemCollection* context2 = new HLItemCollection( String );
    context2->appendChild( new StringHLItem( "\\\\", String, 2 ) );
    context2->appendChild( new StringHLItem( "\\\"", String, 2 ) );
    context2->appendChild( new StringHLItem( "\"", String, 0 ) );

    m_items.append( context0 );
    m_items.append( context1 );
    m_items.append( context2 );
}

SqlColorizer::~SqlColorizer()
{
}