2 /*************************************************************************************
5 * Author: Bananeweizen (Bananeweizen@gmx.de)
6 * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de)
7 * Release Version: 1.0.7.19
8 * Date Started: 2005/03/27
10 * Smalltalk language file for GeSHi.
18 * -------------------------
19 * * recognize nested array symbols correctly
21 *************************************************************************************
23 * This file is part of GeSHi.
25 * GeSHi is free software; you can redistribute it and/or modify
26 * it under the terms of the GNU General Public License as published by
27 * the Free Software Foundation; either version 2 of the License, or
28 * (at your option) any later version.
30 * GeSHi is distributed in the hope that it will be useful,
31 * but WITHOUT ANY WARRANTY; without even the implied warranty of
32 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 * GNU General Public License for more details.
35 * You should have received a copy of the GNU General Public License
36 * along with GeSHi; if not, write to the Free Software
37 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
39 ************************************************************************************/
41 $language_data = array (
42 'LANG_NAME' => 'Smalltalk',
43 'COMMENT_SINGLE' => array(),
44 'COMMENT_MULTI' => array('"' => '"'),
45 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE
,
46 'QUOTEMARKS' => array("'"),
49 1 => array('self','super','true','false','nil')
52 '[', ']', '=' , ':=', '(', ')', '#'
54 'CASE_SENSITIVE' => array(
55 GESHI_COMMENTS
=> false
,
60 1 => 'color: #7f007f;'
63 'MULTI' => 'color: #007f00; font-style: italic;'
65 'ESCAPE_CHAR' => array(
72 0 => 'color: #7f0000;'
75 0 => 'color: #7f0000;'
81 0 => 'color: #000066; font-weight:bold;'
84 0 => 'color: #0000ff;',
85 1 => 'color: #7f0000;',
86 2 => 'color: #7f0000;',
87 3 => 'color: #00007f;',
88 4 => 'color: #7f007f;',
89 5 => 'color: #00007f;',
90 6 => 'color: #00007f;'
99 'OBJECT_SPLITTERS' => array(
103 GESHI_SEARCH
=> '([^a-zA-Z0-9_#])([A-Z]+[a-zA-Z0-9_]*)', //class names
104 GESHI_REPLACE
=> '\\2',
105 GESHI_MODIFIERS
=> '',
106 GESHI_BEFORE
=> '\\1',
110 GESHI_SEARCH
=> '(#+)([a-zA-Z0-9_]+)', //symbols
111 GESHI_REPLACE
=> '\\1\\2',
112 GESHI_MODIFIERS
=> '',
117 GESHI_SEARCH
=> '(#\s*\([^)]*\))', //array symbols
118 GESHI_REPLACE
=> '\\1',
119 GESHI_MODIFIERS
=> '',
124 GESHI_SEARCH
=> '\|([a-zA-Z0-9_\s]+)\|', //temporary variables
125 GESHI_REPLACE
=> '\\1',
126 GESHI_MODIFIERS
=> '',
131 GESHI_SEARCH
=> '(self|super|true|false|nil)', //keywords again (to avoid matching in next regexp)
132 GESHI_REPLACE
=> '\\1',
133 GESHI_MODIFIERS
=> '',
138 GESHI_SEARCH
=> '([:(,=[.*/+-]\s*)([a-zA-Z0-9_]+)', //message parameters, message receivers
139 GESHI_REPLACE
=> '\\2',
140 GESHI_MODIFIERS
=> 's',
141 GESHI_BEFORE
=> '\\1',
145 GESHI_SEARCH
=> '([a-zA-Z0-9_]+)(\s*:=)', //assignment targets
146 GESHI_REPLACE
=> '\\1',
147 GESHI_MODIFIERS
=> '',
152 'STRICT_MODE_APPLIES' => GESHI_NEVER
,
153 'SCRIPT_DELIMITERS' => array(
155 'HIGHLIGHT_STRICT_BLOCK' => array(