| 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));
|
|
|