2 /*************************************************************************************
5 * Author: Bananeweizen (Bananeweizen@gmx.de)
6 * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de)
7 * Release Version: 1.0.8.3
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;'
100 'OBJECT_SPLITTERS' => array(
104 GESHI_SEARCH => '([^a-zA-Z0-9_#<])([A-Z]+[a-zA-Z0-9_]*)(?!>)', //class names
105 GESHI_REPLACE => '\\2',
106 GESHI_MODIFIERS => '',
107 GESHI_BEFORE => '\\1',
111 GESHI_SEARCH => '(#+)([a-zA-Z0-9_]+)', //symbols
112 GESHI_REPLACE => '\\1\\2',
113 GESHI_MODIFIERS => '',
118 GESHI_SEARCH => '(#\s*\([^)]*\))', //array symbols
119 GESHI_REPLACE => '\\1',
120 GESHI_MODIFIERS => '',
125 GESHI_SEARCH => '<PIPE>([a-zA-Z0-9_\s]+)<PIPE>', //temporary variables
126 GESHI_REPLACE => '\\1',
127 GESHI_MODIFIERS => '',
132 GESHI_SEARCH => '(self|super|true|false|nil)', //keywords again (to avoid matching in next regexp)
133 GESHI_REPLACE => '\\1',
134 GESHI_MODIFIERS => '',
139 GESHI_SEARCH => '([:(,=[.*\/+-]\s*)([a-zA-Z0-9_]+)', //message parameters, message receivers
140 GESHI_REPLACE => '\\2',
141 GESHI_MODIFIERS => 's',
142 GESHI_BEFORE => '\\1',
146 GESHI_SEARCH => '([a-zA-Z0-9_]+)(\s*:=)', //assignment targets
147 GESHI_REPLACE => '\\1',
148 GESHI_MODIFIERS => '',
153 'STRICT_MODE_APPLIES' => GESHI_NEVER,
154 'SCRIPT_DELIMITERS' => array(
156 'HIGHLIGHT_STRICT_BLOCK' => array(