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

Unified Diff: polymer_1.0.4/bower_components/prism/components/prism-haml.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-haml.js
diff --git a/polymer_1.0.4/bower_components/prism/components/prism-haml.js b/polymer_1.0.4/bower_components/prism/components/prism-haml.js
new file mode 100644
index 0000000000000000000000000000000000000000..eb0b9a91389365a6a0eb3634ff05a227fed76a51
--- /dev/null
+++ b/polymer_1.0.4/bower_components/prism/components/prism-haml.js
@@ -0,0 +1,161 @@
+/* TODO
+ Handle multiline code after tag
+ %foo= some |
+ multiline |
+ code |
+*/
+
+(function(Prism) {
+
+ Prism.languages.haml = {
+ // Multiline stuff should appear before the rest
+
+ 'multiline-comment': [
+ {
+ pattern: /((?:^|\n)([\t ]*))\/.*(\n\2[\t ]+.+)*/,
+ lookbehind: true,
+ alias: 'comment'
+ },
+ {
+ pattern: /((?:^|\n)([\t ]*))-#.*(\n\2[\t ]+.+)*/,
+ lookbehind: true,
+ alias: 'comment'
+ }
+ ],
+
+ 'multiline-code': [
+ {
+ pattern: /((?:^|\n)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(\n\2[\t ]+.*,[\t ]*)*(\n\2[\t ]+.+)/,
+ lookbehind: true,
+ inside: {
+ rest: Prism.languages.ruby
+ }
+ },
+ {
+ pattern: /((?:^|\n)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(\n\2[\t ]+.*\|[\t ]*)*/,
+ lookbehind: true,
+ inside: {
+ rest: Prism.languages.ruby
+ }
+ }
+ ],
+
+ // See at the end of the file for known filters
+ 'filter': {
+ pattern: /((?:^|\n)([\t ]*)):[\w-]+(\n(?:\2[\t ]+.+|\s*?(?=\n)))+/,
+ lookbehind: true,
+ inside: {
+ 'filter-name': {
+ pattern: /^:[\w-]+/,
+ alias: 'variable'
+ }
+ }
+ },
+
+ 'markup': {
+ pattern: /((?:^|\n)[\t ]*)<.+/,
+ lookbehind: true,
+ inside: {
+ rest: Prism.languages.markup
+ }
+ },
+ 'doctype': {
+ pattern: /((?:^|\n)[\t ]*)!!!(?: .+)?/,
+ lookbehind: true
+ },
+ 'tag': {
+ // Allows for one nested group of braces
+ pattern: /((?:^|\n)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/,
+ lookbehind: true,
+ inside: {
+ 'attributes': [
+ {
+ // Lookbehind tries to prevent interpolations for breaking it all
+ // Allows for one nested group of braces
+ pattern: /(^|[^#])\{(?:\{[^}]+\}|[^}])+\}/,
+ lookbehind: true,
+ inside: {
+ rest: Prism.languages.ruby
+ }
+ },
+ {
+ pattern: /\([^)]+\)/,
+ inside: {
+ 'attr-value': {
+ pattern: /(=\s*)(?:"(?:\\?.)*?"|[^)\s]+)/,
+ lookbehind: true
+ },
+ 'attr-name': /[\w:-]+(?=\s*!?=|\s*[,)])/,
+ 'punctuation': /[=(),]/
+ }
+ },
+ {
+ pattern: /\[[^\]]+\]/,
+ inside: {
+ rest: Prism.languages.ruby
+ }
+ }
+ ],
+ 'punctuation': /[<>]/
+ }
+ },
+ 'code': {
+ pattern: /((?:^|\n)[\t ]*(?:[~-]|[&!]?=)).+/,
+ lookbehind: true,
+ inside: {
+ rest: Prism.languages.ruby
+ }
+ },
+ // Interpolations in plain text
+ 'interpolation': {
+ pattern: /#\{[^}]+\}/,
+ inside: {
+ 'delimiter': {
+ pattern: /^#\{|\}$/,
+ alias: 'punctuation'
+ },
+ rest: Prism.languages.ruby
+ }
+ },
+ 'punctuation': {
+ pattern: /((?:^|\n)[\t ]*)[~=\-&!]/,
+ lookbehind: true
+ }
+ };
+
+ var filter_pattern = '((?:^|\\n)([\\t ]*)):{{filter_name}}(\\n(?:\\2[\\t ]+.+|\\s*?(?=\\n)))+';
+
+ // Non exhaustive list of available filters and associated languages
+ var filters = [
+ 'css',
+ {filter:'coffee',language:'coffeescript'},
+ 'erb',
+ 'javascript',
+ 'less',
+ 'markdown',
+ 'ruby',
+ 'scss',
+ 'textile'
+ ];
+ var all_filters = {};
+ for (var i = 0, l = filters.length; i < l; i++) {
+ var filter = filters[i];
+ filter = typeof filter === 'string' ? {filter: filter, language: filter} : filter;
+ if (Prism.languages[filter.language]) {
+ all_filters['filter-' + filter.filter] = {
+ pattern: RegExp(filter_pattern.replace('{{filter_name}}', filter.filter)),
+ lookbehind: true,
+ inside: {
+ 'filter-name': {
+ pattern: /^:[\w-]+/,
+ alias: 'variable'
+ },
+ rest: Prism.languages[filter.language]
+ }
+ }
+ }
+ }
+
+ Prism.languages.insertBefore('haml', 'filter', all_filters);
+
+}(Prism));

Powered by Google App Engine
This is Rietveld 408576698