Podświetlanie składni w edytorze XML dzięki editArea. Closes #17. Niestety dla tekstó...
[redakcja.git] / project / static / js / reg_syntax / perl.js
diff --git a/project/static/js/reg_syntax/perl.js b/project/static/js/reg_syntax/perl.js
new file mode 100755 (executable)
index 0000000..b63e951
--- /dev/null
@@ -0,0 +1,88 @@
+/***************************************************************************\r
+ * (c) 2008 - file created by Christoph Pinkel, MTC Infomedia OHG.\r
+ *\r
+ * You may choose any license of the current release or any future release\r
+ * of editarea to use, modify and/or redistribute this file.\r
+ *\r
+ * This language specification file supports for syntax checking on\r
+ * a large subset of Perl 5.x.\r
+ * The basic common syntax of Perl is fully supported, but as for\r
+ * the highlighting of built-in operations, it's mainly designed\r
+ * to support for hightlighting Perl code in a Safe environment (compartment)\r
+ * as used by CoMaNet for evaluation of administrative scripts. This Safe\r
+ * compartment basically allows for all of Opcode's :default operations,\r
+ * but little others. See http://perldoc.perl.org/Opcode.html to learn\r
+ * more.\r
+ ***************************************************************************/\r
+\r
+editAreaLoader.load_syntax["perl"] = {\r
+\r
+       'COMMENT_SINGLE' : {1 : '#'},\r
+       'QUOTEMARKS' : {1: "'", 2: '"'},\r
+       'KEYWORD_CASE_SENSITIVE' : true,\r
+       'KEYWORDS' :\r
+       {\r
+               'core' :\r
+                       [ "if", "else", "elsif", "while", "for", "each", "foreach",\r
+                               "next", "last", "goto", "exists", "delete", "undef",\r
+                               "my", "our", "local", "use", "require", "package", "keys", "values",\r
+                               "sub", "bless", "ref", "return" ],\r
+               'functions' :\r
+                       [\r
+                               //from :base_core\r
+                               "int", "hex", "oct", "abs", "substr", "vec", "study", "pos",\r
+                               "length", "index", "rindex", "ord", "chr", "ucfirst", "lcfirst",\r
+                               "uc", "lc", "quotemeta", "chop", "chomp", "split", "list", "splice",\r
+                               "push", "pop", "shift", "unshift", "reverse", "and", "or", "dor",\r
+                               "xor", "warn", "die", "prototype",\r
+                               //from :base_mem\r
+                               "concat", "repeat", "join", "range",\r
+                               //none from :base_loop, as we'll see them as basic statements...\r
+                               //from :base_orig\r
+                               "sprintf", "crypt", "tie", "untie", "select", "localtime", "gmtime",\r
+                               //others\r
+                               "print", "open", "close"\r
+                       ]\r
+       },\r
+       'OPERATORS' :\r
+               [ '+', '-', '/', '*', '=', '<', '>', '!', '||', '.', '&&',\r
+                       ' eq ', ' ne ', '=~' ],\r
+       'DELIMITERS' :\r
+               [ '(', ')', '[', ']', '{', '}' ],\r
+       'REGEXPS' :\r
+       {\r
+               'packagedecl' : { 'search': '(package )([^ \r\n\t#;]*)()',\r
+                       'class' : 'scopingnames',\r
+                       'modifiers' : 'g', 'execute' : 'before' },\r
+               'subdecl' : { 'search': '(sub )([^ \r\n\t#]*)()',\r
+                       'class' : 'scopingnames',\r
+                       'modifiers' : 'g', 'execute' : 'before' },\r
+               'scalars' : { 'search': '()(\\\$[a-zA-Z0-9_:]*)()',\r
+                       'class' : 'vars',\r
+                       'modifiers' : 'g', 'execute' : 'after' },\r
+               'arrays' : { 'search': '()(@[a-zA-Z0-9_:]*)()',\r
+                       'class' : 'vars',\r
+                       'modifiers' : 'g', 'execute' : 'after' },\r
+               'hashs' : { 'search': '()(%[a-zA-Z0-9_:]*)()',\r
+                       'class' : 'vars',\r
+                       'modifiers' : 'g', 'execute' : 'after' },\r
+       },\r
+\r
+       'STYLES' :\r
+       {\r
+               'COMMENTS': 'color: #AAAAAA;',\r
+               'QUOTESMARKS': 'color: #DC0000;',\r
+               'KEYWORDS' :\r
+               {\r
+                       'core' : 'color: #8aca00;',\r
+                       'functions' : 'color: #2B60FF;'\r
+               },\r
+               'OPERATORS' : 'color: #8aca00;',\r
+               'DELIMITERS' : 'color: #0038E1;',\r
+               'REGEXPS':\r
+               {\r
+                       'scopingnames' : 'color: #ff0000;',\r
+                       'vars' : 'color: #00aaaa;',\r
+               }\r
+       } //'STYLES'\r
+};\r