Podświetlanie składni w edytorze XML dzięki editArea. Closes #17. Niestety dla tekstó...
[redakcja.git] / project / static / js / reg_syntax / js.js
diff --git a/project/static/js/reg_syntax/js.js b/project/static/js/reg_syntax/js.js
new file mode 100755 (executable)
index 0000000..2799b70
--- /dev/null
@@ -0,0 +1,93 @@
+editAreaLoader.load_syntax["js"] = {\r
+       'COMMENT_SINGLE' : {1 : '//'}\r
+       ,'COMMENT_MULTI' : {'/*' : '*/'}\r
+       ,'QUOTEMARKS' : {1: "'", 2: '"'}\r
+       ,'KEYWORD_CASE_SENSITIVE' : false\r
+       ,'KEYWORDS' : {\r
+               'statements' : [\r
+                       'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',\r
+                       'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',\r
+                       'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',\r
+                       'while', 'write', 'with'\r
+               ]\r
+               ,'keywords' : [\r
+                       'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',\r
+                       'function', 'import', 'namespace', 'new', 'null', 'package', 'private',\r
+                       'protected', 'public', 'super', 'true', 'use', 'var', 'window', 'document',             \r
+                       // the list below must be sorted and checked (if it is a keywords or a function and if it is not present twice\r
+                       'Link ', 'outerHeight ', 'Anchor', 'FileUpload', \r
+                       'location', 'outerWidth', 'Select', 'Area', 'find', 'Location', 'Packages', 'self', \r
+                       'arguments', 'locationbar', 'pageXoffset', 'Form', \r
+                       'Math', 'pageYoffset', 'setTimeout', 'assign', 'Frame', 'menubar', 'parent', 'status', \r
+                       'blur', 'frames', 'MimeType', 'parseFloat', 'statusbar', 'Boolean', 'Function', 'moveBy', \r
+                       'parseInt', 'stop', 'Button', 'getClass', 'moveTo', 'Password', 'String', 'callee', 'Hidden', \r
+                       'name', 'personalbar', 'Submit', 'caller', 'history', 'NaN', 'Plugin', 'sun', 'captureEvents', \r
+                       'History', 'navigate', 'print', 'taint', 'Checkbox', 'home', 'navigator', 'prompt', 'Text', \r
+                       'Image', 'Navigator', 'prototype', 'Textarea', 'clearTimeout', 'Infinity', \r
+                       'netscape', 'Radio', 'toolbar', 'close', 'innerHeight', 'Number', 'ref', 'top', 'closed', \r
+                       'innerWidth', 'Object', 'RegExp', 'toString', 'confirm', 'isFinite', 'onBlur', 'releaseEvents', \r
+                       'unescape', 'constructor', 'isNan', 'onError', 'Reset', 'untaint', 'Date', 'java', 'onFocus', \r
+                       'resizeBy', 'unwatch', 'defaultStatus', 'JavaArray', 'onLoad', 'resizeTo', 'valueOf', 'document', \r
+                       'JavaClass', 'onUnload', 'routeEvent', 'watch', 'Document', 'JavaObject', 'open', 'scroll', 'window', \r
+                       'Element', 'JavaPackage', 'opener', 'scrollbars', 'Window', 'escape', 'length', 'Option', 'scrollBy'                    \r
+               ]\r
+       ,'functions' : [\r
+                       // common functions for Window object\r
+                       'alert', 'Array', 'back', 'blur', 'clearInterval', 'close', 'confirm', 'eval ', 'focus', 'forward', 'home',\r
+                       'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',\r
+                       'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'scrollTo', 'setInterval', 'status',\r
+                       'stop' \r
+               ]\r
+       }\r
+       ,'OPERATORS' :[\r
+               '+', '-', '/', '*', '=', '<', '>', '%', '!'\r
+       ]\r
+       ,'DELIMITERS' :[\r
+               '(', ')', '[', ']', '{', '}'\r
+       ]\r
+       ,'STYLES' : {\r
+               'COMMENTS': 'color: #AAAAAA;'\r
+               ,'QUOTESMARKS': 'color: #6381F8;'\r
+               ,'KEYWORDS' : {\r
+                       'statements' : 'color: #60CA00;'\r
+                       ,'keywords' : 'color: #48BDDF;'\r
+                       ,'functions' : 'color: #2B60FF;'\r
+               }\r
+               ,'OPERATORS' : 'color: #FF00FF;'\r
+               ,'DELIMITERS' : 'color: #0038E1;'\r
+                               \r
+       }\r
+       ,'AUTO_COMPLETION' :  {\r
+               "default": {    // the name of this definition group. It's posisble to have different rules inside the same definition file\r
+                       "REGEXP": { "before_word": "[^a-zA-Z0-9_]|^"    // \\s|\\.|\r
+                                               ,"possible_words_letters": "[a-zA-Z0-9_]+"\r
+                                               ,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"\r
+                                               ,"prefix_separator": "\\."\r
+                                       }\r
+                       ,"CASE_SENSITIVE": true\r
+                       ,"MAX_TEXT_LENGTH": 100         // the maximum length of the text being analyzed before the cursor position\r
+                       ,"KEYWORDS": {\r
+                               '': [   // the prefix of thoses items\r
+                                               /**\r
+                                                * 0 : the keyword the user is typing\r
+                                                * 1 : (optionnal) the string inserted in code ("{@}" being the new position of the cursor, "§" beeing the equivalent to the value the typed string indicated if the previous )\r
+                                                *              If empty the keyword will be displayed\r
+                                                * 2 : (optionnal) the text that appear in the suggestion box (if empty, the string to insert will be displayed)\r
+                                                */\r
+                                                ['Array', '§()', '']\r
+                                       ,['alert', '§({@})', 'alert(String message)']\r
+                                       ,['document']\r
+                                       ,['window']\r
+                               ]\r
+                       ,'window' : [\r
+                                        ['location']\r
+                                       ,['document']\r
+                                       ,['scrollTo', 'scrollTo({@})', 'scrollTo(Int x,Int y)']\r
+                                       ]\r
+                       ,'location' : [\r
+                                        ['href']\r
+                                       ]\r
+                       }\r
+               }\r
+       }\r
+};\r