plugins/geshi/geshi/csharp.php
changeset 2 9e3258dfae15
parent 0 441963e5b07a
child 3 f3e2bbbd2155
--- a/plugins/geshi/geshi/csharp.php	Sun Feb 10 19:00:04 2008 -0500
+++ b/plugins/geshi/geshi/csharp.php	Fri May 29 19:30:59 2009 -0400
@@ -4,13 +4,15 @@
  * ----------
  * Author: Alan Juden (alan@judenware.org)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.8.2
  * Date Started: 2004/06/04
  *
  * C# language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2008/05/25 (1.0.7.22)
+ *   -  Added highlighting of using and namespace directives as non-OOP
  * 2005/01/05 (1.0.1)
  *  -  Used hardquote support for @"..." strings (Cliff Stanford)
  * 2004/11/27 (1.0.0)
@@ -39,194 +41,209 @@
  *
  ************************************************************************************/
 
- $language_data = array (
-	'LANG_NAME' => 'C#',
-	'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-	'COMMENT_MULTI' => array('/*' => '*/'),
-	'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-	'QUOTEMARKS' => array("'", '"'),
+$language_data = array (
+    'LANG_NAME' => 'C#',
+    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        //Using and Namespace directives (basic support)
+        //Please note that the alias syntax for using is not supported
+        3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
     'HARDQUOTE' => array('@"', '"'),
     'HARDESCAPE' => array('""'),
-	'ESCAPE_CHAR' => '\\',
-	'KEYWORDS' => array(
-		1 => array(
-			'as', 'auto', 'base', 'break', 'case', 'catch', 'const', 'continue',
-			'default', 'do', 'else', 'event', 'explicit', 'extern', 'false',
-			'finally', 'fixed', 'for', 'foreach', 'goto', 'if', 'implicit',
-			'in', 'internal', 'lock', 'namespace', 'null', 'operator', 'out',
-			'override', 'params', 'private', 'protected', 'public', 'readonly',
-			'ref', 'return', 'sealed', 'stackalloc', 'static', 'switch', 'this',
-			'throw', 'true', 'try', 'unsafe', 'using', 'virtual', 'void', 'while'
-			),
-		2 => array(
-			'#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if',
-			'#line', '#region', '#undef', '#warning'
-			),
-		3 => array(
-			'checked', 'is', 'new', 'sizeof', 'typeof', 'unchecked'
-			),
-		4 => array(
-			'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double',
-			'enum', 'float', 'int', 'interface', 'long', 'object', 'sbyte',
-			'short', 'string', 'struct', 'uint', 'ulong', 'ushort'
-			),
-		5 => array(
-			'Microsoft.Win32',
-			'System',
-			'System.CodeDOM',
-			'System.CodeDOM.Compiler',
-			'System.Collections',
-			'System.Collections.Bases',
-			'System.ComponentModel',
-			'System.ComponentModel.Design',
-			'System.ComponentModel.Design.CodeModel',
-			'System.Configuration',
-			'System.Configuration.Assemblies',
-			'System.Configuration.Core',
-			'System.Configuration.Install',
-			'System.Configuration.Interceptors',
-			'System.Configuration.Schema',
-			'System.Configuration.Web',
-			'System.Core',
-			'System.Data',
-			'System.Data.ADO',
-			'System.Data.Design',
-			'System.Data.Internal',
-			'System.Data.SQL',
-			'System.Data.SQLTypes',
-			'System.Data.XML',
-			'System.Data.XML.DOM',
-			'System.Data.XML.XPath',
-			'System.Data.XML.XSLT',
-			'System.Diagnostics',
-			'System.Diagnostics.SymbolStore',
-			'System.DirectoryServices',
-			'System.Drawing',
-			'System.Drawing.Design',
-			'System.Drawing.Drawing2D',
-			'System.Drawing.Imaging',
-			'System.Drawing.Printing',
-			'System.Drawing.Text',
-			'System.Globalization',
-			'System.IO',
-			'System.IO.IsolatedStorage',
-			'System.Messaging',
-			'System.Net',
-			'System.Net.Sockets',
-			'System.NewXml',
-			'System.NewXml.XPath',
-			'System.NewXml.Xsl',
-			'System.Reflection',
-			'System.Reflection.Emit',
-			'System.Resources',
-			'System.Runtime.InteropServices',
-			'System.Runtime.InteropServices.Expando',
-			'System.Runtime.Remoting',
-			'System.Runtime.Serialization',
-			'System.Runtime.Serialization.Formatters',
-			'System.Runtime.Serialization.Formatters.Binary',
-			'System.Security',
-			'System.Security.Cryptography',
-			'System.Security.Cryptography.X509Certificates',
-			'System.Security.Permissions',
-			'System.Security.Policy',
-			'System.Security.Principal',
-			'System.ServiceProcess',
-			'System.Text',
-			'System.Text.RegularExpressions',
-			'System.Threading',
-			'System.Timers',
-			'System.Web',
-			'System.Web.Caching',
-			'System.Web.Configuration',
-			'System.Web.Security',
-			'System.Web.Services',
-			'System.Web.Services.Description',
-			'System.Web.Services.Discovery',
-			'System.Web.Services.Protocols',
-			'System.Web.UI',
-			'System.Web.UI.Design',
-			'System.Web.UI.Design.WebControls',
-			'System.Web.UI.Design.WebControls.ListControls',
-			'System.Web.UI.HtmlControls',
-			'System.Web.UI.WebControls',
-			'System.WinForms',
-			'System.WinForms.ComponentModel',
-			'System.WinForms.Design',
-			'System.Xml',
-			'System.Xml.Serialization',
-			'System.Xml.Serialization.Code',
-			'System.Xml.Serialization.Schema'
-			),
-		),
-	'SYMBOLS' => array(
-		'+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', '|', ':',
-		'(', ')', '{', '}', '[', ']'
-		),
-	'CASE_SENSITIVE' => array(
-		GESHI_COMMENTS => true,
-		1 => false,
-		2 => false,
-		3 => false,
-		4 => false,
-		5 => false,
-		),
-	'STYLES' => array(
-		'KEYWORDS' => array(
-			1 => 'color: #0600FF;',
-			2 => 'color: #FF8000; font-weight: bold;',
-			3 => 'color: #008000;',
-			4 => 'color: #FF0000;',
-			5 => 'color: #000000;'
-			),
-		'COMMENTS' => array(
-			1 => 'color: #008080; font-style: italic;',
-			2 => 'color: #008080;',
-			'MULTI' => 'color: #008080; font-style: italic;'
-			),
-		'ESCAPE_CHAR' => array(
-			0 => 'color: #008080; font-weight: bold;'
-			),
-		'BRACKETS' => array(
-			0 => 'color: #000000;'
-			),
-		'STRINGS' => array(
-			0 => 'color: #808080;'
-			),
-		'NUMBERS' => array(
-			0 => 'color: #FF0000;'
-			),
-		'METHODS' => array(
-			1 => 'color: #0000FF;',
-			2 => 'color: #0000FF;'
-			),
-		'SYMBOLS' => array(
-			0 => 'color: #008000;'
-			),
-		'REGEXPS' => array(
-			),
-		'SCRIPT' => array(
-			)
-		),
-	'URLS' => array(
-		1 => '',
-		2 => '',
-		3 => 'http://www.google.com/search?q={FNAME}+msdn.microsoft.com',
-		4 => ''
-		),
-	'OOLANG' => true,
-	'OBJECT_SPLITTERS' => array(
-		1 => '.',
-		2 => '::'
-		),
-	'REGEXPS' => array(
-		),
-	'STRICT_MODE_APPLIES' => GESHI_NEVER,
-	'SCRIPT_DELIMITERS' => array(
-		),
-	'HIGHLIGHT_STRICT_BLOCK' => array(
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'as', 'auto', 'base', 'break', 'case', 'catch', 'const', 'continue',
+            'default', 'do', 'else', 'event', 'explicit', 'extern', 'false',
+            'finally', 'fixed', 'for', 'foreach', 'goto', 'if', 'implicit',
+            'in', 'internal', 'lock', 'namespace', 'null', 'operator', 'out',
+            'override', 'params', 'partial', 'private', 'protected', 'public',
+            'readonly', 'ref', 'return', 'sealed', 'stackalloc', 'static',
+            'switch', 'this', 'throw', 'true', 'try', 'unsafe', 'using',
+            'virtual', 'void', 'while'
+            ),
+        2 => array(
+            '#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if',
+            '#line', '#region', '#undef', '#warning'
+            ),
+        3 => array(
+            'checked', 'is', 'new', 'sizeof', 'typeof', 'unchecked'
+            ),
+        4 => array(
+            'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double',
+            'enum', 'float', 'int', 'interface', 'long', 'object', 'sbyte',
+            'short', 'string', 'struct', 'uint', 'ulong', 'ushort'
+            ),
+        5 => array(
+            'Microsoft.Win32',
+            'System',
+            'System.CodeDOM',
+            'System.CodeDOM.Compiler',
+            'System.Collections',
+            'System.Collections.Bases',
+            'System.ComponentModel',
+            'System.ComponentModel.Design',
+            'System.ComponentModel.Design.CodeModel',
+            'System.Configuration',
+            'System.Configuration.Assemblies',
+            'System.Configuration.Core',
+            'System.Configuration.Install',
+            'System.Configuration.Interceptors',
+            'System.Configuration.Schema',
+            'System.Configuration.Web',
+            'System.Core',
+            'System.Data',
+            'System.Data.ADO',
+            'System.Data.Design',
+            'System.Data.Internal',
+            'System.Data.SQL',
+            'System.Data.SQLTypes',
+            'System.Data.XML',
+            'System.Data.XML.DOM',
+            'System.Data.XML.XPath',
+            'System.Data.XML.XSLT',
+            'System.Diagnostics',
+            'System.Diagnostics.SymbolStore',
+            'System.DirectoryServices',
+            'System.Drawing',
+            'System.Drawing.Design',
+            'System.Drawing.Drawing2D',
+            'System.Drawing.Imaging',
+            'System.Drawing.Printing',
+            'System.Drawing.Text',
+            'System.Globalization',
+            'System.IO',
+            'System.IO.IsolatedStorage',
+            'System.Messaging',
+            'System.Net',
+            'System.Net.Sockets',
+            'System.NewXml',
+            'System.NewXml.XPath',
+            'System.NewXml.Xsl',
+            'System.Reflection',
+            'System.Reflection.Emit',
+            'System.Resources',
+            'System.Runtime.InteropServices',
+            'System.Runtime.InteropServices.Expando',
+            'System.Runtime.Remoting',
+            'System.Runtime.Serialization',
+            'System.Runtime.Serialization.Formatters',
+            'System.Runtime.Serialization.Formatters.Binary',
+            'System.Security',
+            'System.Security.Cryptography',
+            'System.Security.Cryptography.X509Certificates',
+            'System.Security.Permissions',
+            'System.Security.Policy',
+            'System.Security.Principal',
+            'System.ServiceProcess',
+            'System.Text',
+            'System.Text.RegularExpressions',
+            'System.Threading',
+            'System.Timers',
+            'System.Web',
+            'System.Web.Caching',
+            'System.Web.Configuration',
+            'System.Web.Security',
+            'System.Web.Services',
+            'System.Web.Services.Description',
+            'System.Web.Services.Discovery',
+            'System.Web.Services.Protocols',
+            'System.Web.UI',
+            'System.Web.UI.Design',
+            'System.Web.UI.Design.WebControls',
+            'System.Web.UI.Design.WebControls.ListControls',
+            'System.Web.UI.HtmlControls',
+            'System.Web.UI.WebControls',
+            'System.WinForms',
+            'System.WinForms.ComponentModel',
+            'System.WinForms.Design',
+            'System.Xml',
+            'System.Xml.Serialization',
+            'System.Xml.Serialization.Code',
+            'System.Xml.Serialization.Schema'
+            ),
         ),
-    'TAB_WIDTH' => 4
+    'SYMBOLS' => array(
+        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';',
+        '(', ')', '{', '}', '[', ']', '|'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0600FF;',
+            2 => 'color: #FF8000; font-weight: bold;',
+            3 => 'color: #008000;',
+            4 => 'color: #FF0000;',
+            5 => 'color: #000000;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #008080; font-style: italic;',
+            2 => 'color: #008080;',
+            3 => 'color: #008080;',
+            'MULTI' => 'color: #008080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #008080; font-weight: bold;',
+            'HARD' => 'color: #008080; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000000;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #666666;',
+            'HARD' => 'color: #666666;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #FF0000;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #0000FF;',
+            2 => 'color: #0000FF;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #008000;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com',
+        4 => '',
+        5 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.',
+        2 => '::'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
+            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])"
+        )
+    )
 );
 
 ?>