Add syntax highlighting to notes
[disinclined.org.git] / assets / syntax / scripts / shBrushPerl.js
diff --git a/assets/syntax/scripts/shBrushPerl.js b/assets/syntax/scripts/shBrushPerl.js
new file mode 100644 (file)
index 0000000..d94a2e0
--- /dev/null
@@ -0,0 +1,72 @@
+/**
+ * SyntaxHighlighter
+ * http://alexgorbatchev.com/SyntaxHighlighter
+ *
+ * SyntaxHighlighter is donationware. If you are using it, please donate.
+ * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
+ *
+ * @version
+ * 3.0.83 (July 02 2010)
+ * 
+ * @copyright
+ * Copyright (C) 2004-2010 Alex Gorbatchev.
+ *
+ * @license
+ * Dual licensed under the MIT and GPL licenses.
+ */
+;(function()
+{
+       // CommonJS
+       typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
+
+       function Brush()
+       {
+               // Contributed by David Simmons-Duffin and Marty Kube
+       
+               var funcs = 
+                       'abs accept alarm atan2 bind binmode chdir chmod chomp chop chown chr ' + 
+                       'chroot close closedir connect cos crypt defined delete each endgrent ' + 
+                       'endhostent endnetent endprotoent endpwent endservent eof exec exists ' + 
+                       'exp fcntl fileno flock fork format formline getc getgrent getgrgid ' + 
+                       'getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr ' + 
+                       'getnetbyname getnetent getpeername getpgrp getppid getpriority ' + 
+                       'getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid ' + 
+                       'getservbyname getservbyport getservent getsockname getsockopt glob ' + 
+                       'gmtime grep hex index int ioctl join keys kill lc lcfirst length link ' + 
+                       'listen localtime lock log lstat map mkdir msgctl msgget msgrcv msgsnd ' + 
+                       'oct open opendir ord pack pipe pop pos print printf prototype push ' + 
+                       'quotemeta rand read readdir readline readlink readpipe recv rename ' + 
+                       'reset reverse rewinddir rindex rmdir scalar seek seekdir select semctl ' + 
+                       'semget semop send setgrent sethostent setnetent setpgrp setpriority ' + 
+                       'setprotoent setpwent setservent setsockopt shift shmctl shmget shmread ' + 
+                       'shmwrite shutdown sin sleep socket socketpair sort splice split sprintf ' + 
+                       'sqrt srand stat study substr symlink syscall sysopen sysread sysseek ' + 
+                       'system syswrite tell telldir time times tr truncate uc ucfirst umask ' + 
+                       'undef unlink unpack unshift utime values vec wait waitpid warn write';
+    
+               var keywords =  
+                       'bless caller continue dbmclose dbmopen die do dump else elsif eval exit ' +
+                       'for foreach goto if import last local my next no our package redo ref ' + 
+                       'require return sub tie tied unless untie until use wantarray while';
+    
+               this.regexList = [
+                       { regex: new RegExp('#[^!].*$', 'gm'),                                  css: 'comments' },
+                       { regex: new RegExp('^\\s*#!.*$', 'gm'),                                css: 'preprocessor' }, // shebang
+                       { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' },
+                       { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' },
+                       { regex: new RegExp('(\\$|@|%)\\w+', 'g'),                              css: 'variable' },
+                       { regex: new RegExp(this.getKeywords(funcs), 'gmi'),    css: 'functions' },
+                       { regex: new RegExp(this.getKeywords(keywords), 'gm'),  css: 'keyword' }
+                   ];
+
+               this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
+       }
+
+       Brush.prototype = new SyntaxHighlighter.Highlighter();
+       Brush.aliases           = ['perl', 'Perl', 'pl'];
+
+       SyntaxHighlighter.brushes.Perl = Brush;
+
+       // CommonJS
+       typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
+})();