Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: polymer_1.0.4/bower_components/prism/components/prism-php.js

Issue 1205703007: Add polymer 1.0 to npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Renamed folder to 1.0.4 Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: polymer_1.0.4/bower_components/prism/components/prism-php.js
diff --git a/polymer_1.0.4/bower_components/prism/components/prism-php.js b/polymer_1.0.4/bower_components/prism/components/prism-php.js
new file mode 100644
index 0000000000000000000000000000000000000000..825729f96f73ebe12d1d113eb9dc84ebadae677c
--- /dev/null
+++ b/polymer_1.0.4/bower_components/prism/components/prism-php.js
@@ -0,0 +1,109 @@
+/**
+ * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/
+ * Modified by Miles Johnson: http://milesj.me
+ *
+ * Supports the following:
+ * - Extends clike syntax
+ * - Support for PHP 5.3+ (namespaces, traits, generators, etc)
+ * - Smarter constant and function matching
+ *
+ * Adds the following new token classes:
+ * constant, delimiter, variable, function, package
+ */
+
+Prism.languages.php = Prism.languages.extend('clike', {
+ 'keyword': /\b(and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,
+ 'constant': /\b[A-Z0-9_]{2,}\b/,
+ 'comment': {
+ pattern: /(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])(\/\/).*?(\r?\n|$))/,
+ lookbehind: true
+ }
+});
+
+// Shell-like comments are matched after strings, because they are less
+// common than strings containing hashes...
+Prism.languages.insertBefore('php', 'class-name', {
+ 'shell-comment': {
+ pattern: /(^|[^\\])#.*?(\r?\n|$)/,
+ lookbehind: true,
+ alias: 'comment'
+ }
+});
+
+Prism.languages.insertBefore('php', 'keyword', {
+ 'delimiter': /(\?>|<\?php|<\?)/i,
+ 'variable': /(\$\w+)\b/i,
+ 'package': {
+ pattern: /(\\|namespace\s+|use\s+)[\w\\]+/,
+ lookbehind: true,
+ inside: {
+ punctuation: /\\/
+ }
+ }
+});
+
+// Must be defined after the function pattern
+Prism.languages.insertBefore('php', 'operator', {
+ 'property': {
+ pattern: /(->)[\w]+/,
+ lookbehind: true
+ }
+});
+
+// Add HTML support of the markup language exists
+if (Prism.languages.markup) {
+
+ // Tokenize all inline PHP blocks that are wrapped in <?php ?>
+ // This allows for easy PHP + markup highlighting
+ Prism.hooks.add('before-highlight', function(env) {
+ if (env.language !== 'php') {
+ return;
+ }
+
+ env.tokenStack = [];
+
+ env.backupCode = env.code;
+ env.code = env.code.replace(/(?:<\?php|<\?)[\w\W]*?(?:\?>)/ig, function(match) {
+ env.tokenStack.push(match);
+
+ return '{{{PHP' + env.tokenStack.length + '}}}';
+ });
+ });
+
+ // Restore env.code for other plugins (e.g. line-numbers)
+ Prism.hooks.add('before-insert', function(env) {
+ if (env.language === 'php') {
+ env.code = env.backupCode;
+ delete env.backupCode;
+ }
+ });
+
+ // Re-insert the tokens after highlighting
+ Prism.hooks.add('after-highlight', function(env) {
+ if (env.language !== 'php') {
+ return;
+ }
+
+ for (var i = 0, t; t = env.tokenStack[i]; i++) {
+ env.highlightedCode = env.highlightedCode.replace('{{{PHP' + (i + 1) + '}}}', Prism.highlight(t, env.grammar, 'php'));
+ }
+
+ env.element.innerHTML = env.highlightedCode;
+ });
+
+ // Wrap tokens in classes that are missing them
+ Prism.hooks.add('wrap', function(env) {
+ if (env.language === 'php' && env.type === 'markup') {
+ env.content = env.content.replace(/(\{\{\{PHP[0-9]+\}\}\})/g, "<span class=\"token php\">$1</span>");
+ }
+ });
+
+ // Add the rules before all others
+ Prism.languages.insertBefore('php', 'comment', {
+ 'markup': {
+ pattern: /<[^?]\/?(.*?)>/,
+ inside: Prism.languages.markup
+ },
+ 'php': /\{\{\{PHP[0-9]+\}\}\}/
+ });
+}

Powered by Google App Engine
This is Rietveld 408576698