1 |
- {"information_for_contributors":["This file has been converted from https://github.com/davidrios/pug-tmbundle/blob/master/Syntaxes/Pug.JSON-tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],"version":"https://github.com/davidrios/pug-tmbundle/commit/ae1dd60ca4aa4b45617f236d584216cd8d19eecf","name":"Pug","scopeName":"text.pug","patterns":[{"match":"^(!!!|doctype)(\\s*[a-zA-Z0-9-_]+)?","name":"meta.tag.sgml.doctype.html","comment":"Doctype declaration."},{"begin":"^(\\s*)//-","end":"^(?!(\\1\\s)|\\s*$)","name":"comment.unbuffered.block.pug","comment":"Unbuffered (pug-only) comments."},{"begin":"^(\\s*)//","end":"^(?!(\\1\\s)|\\s*$)","name":"string.comment.buffered.block.pug","comment":"Buffered (html) comments.","patterns":[{"captures":{"1":{"name":"invalid.illegal.comment.comment.block.pug"}},"match":"^\\s*(//)(?!-)","name":"string.comment.buffered.block.pug","comment":"Buffered comments inside buffered comments will generate invalid html."}]},{"begin":"<!--","end":"--\\s*>","name":"comment.unbuffered.block.pug","patterns":[{"match":"--","name":"invalid.illegal.comment.comment.block.pug"}]},{"begin":"^(\\s*)-$","end":"^(?!(\\1\\s)|\\s*$)","name":"source.js","comment":"Unbuffered code block.","patterns":[{"include":"source.js"}]},{"begin":"^(\\s*)(script)((\\.$)|(?=[^\\n]*((text|application)/javascript|module).*\\.$))","beginCaptures":{"2":{"name":"entity.name.tag.pug"}},"end":"^(?!(\\1\\s)|\\s*$)","name":"meta.tag.other","comment":"Script tag with JavaScript code.","patterns":[{"begin":"\\G(?=\\()","end":"$","patterns":[{"include":"#tag_attributes"}]},{"begin":"\\G(?=[.#])","end":"$","patterns":[{"include":"#complete_tag"}]},{"include":"source.js"}]},{"begin":"^(\\s*)(style)((\\.$)|(?=[.#(].*\\.$))","beginCaptures":{"2":{"name":"entity.name.tag.pug"}},"end":"^(?!(\\1\\s)|\\s*$)","name":"meta.tag.other","comment":"Style tag with CSS code.","patterns":[{"begin":"\\G(?=\\()","end":"$","patterns":[{"include":"#tag_attributes"}]},{"begin":"\\G(?=[.#])","end":"$","patterns":[{"include":"#complete_tag"}]},{"include":"source.css"}]},{"begin":"^(\\s*):(sass)(?=\\(|$)","beginCaptures":{"2":{"name":"constant.language.name.sass.filter.pug"}},"end":"^(?!(\\1\\s)|\\s*$)","name":"source.sass.filter.pug","patterns":[{"include":"#tag_attributes"},{"include":"source.sass"}]},{"begin":"^(\\s*):(scss)(?=\\(|$)","beginCaptures":{"2":{"name":"constant.language.name.scss.filter.pug"}},"end":"^(?!(\\1\\s)|\\s*$)","name":"source.css.scss.filter.pug","patterns":[{"include":"#tag_attributes"},{"include":"source.css.scss"}]},{"begin":"^(\\s*):(less)(?=\\(|$)","beginCaptures":{"2":{"name":"constant.language.name.less.filter.pug"}},"end":"^(?!(\\1\\s)|\\s*$)","name":"source.less.filter.pug","patterns":[{"include":"#tag_attributes"},{"include":"source.less"}]},{"begin":"^(\\s*):(stylus)(?=\\(|$)","beginCaptures":{"2":{"name":"constant.language.name.stylus.filter.pug"}},"end":"^(?!(\\1\\s)|\\s*$)","patterns":[{"include":"#tag_attributes"},{"include":"source.stylus"}]},{"begin":"^(\\s*):(coffee(-?script)?)(?=\\(|$)","beginCaptures":{"2":{"name":"constant.language.name.coffeescript.filter.pug"}},"end":"^(?!(\\1\\s)|\\s*$)","name":"source.coffeescript.filter.pug","patterns":[{"include":"#tag_attributes"},{"include":"source.coffee"}]},{"begin":"^(\\s*):(uglify-js)(?=\\(|$)","beginCaptures":{"2":{"name":"constant.language.name.js.filter.pug"}},"end":"^(?!(\\1\\s)|\\s*$)","name":"source.js.filter.pug","patterns":[{"include":"#tag_attributes"},{"include":"source.js"}]},{"begin":"^(\\s*)((:(?=.))|(:$))","beginCaptures":{"4":{"name":"invalid.illegal.empty.generic.filter.pug"}},"end":"^(?!(\\1\\s)|\\s*$)","comment":"Generic Pug filter.","patterns":[{"begin":"\\G(?<=:)(?=.)","end":"$","name":"name.generic.filter.pug","patterns":[{"match":"\\G\\(","name":"invalid.illegal.name.generic.filter.pug"},{"match":"[\\w-]","name":"constant.language.name.generic.filter.pug"},{"include":"#tag_attributes"},{"match":"\\W","name":"invalid.illegal.name.generic.filter.pug"}]}]},{"begin":"^(\\s*)(?:(?=\\.$)|(?:(?=[\\w.#].*?\\.$)(?=(?:(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\\"(?:[^\\\"]|(?:(?<!\\\\)\\\\\\\"))*\\\")))*[^()]*\\))*)*)(?:(?:(?::\\s+)|(?<=\\)))(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\\"(?:[^\\\"]|(?:(?<!\\\\)\\\\\\\"))*\\\")))*[^()]*\\))*)*))*)\\.$)(?:(?:(#[\\w-]+)|(\\.[\\w-]+))|((?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))))","beginCaptures":{"2":{"name":"meta.selector.css entity.other.attribute-name.id.css.pug"},"3":{"name":"meta.selector.css entity.other.attribute-name.class.css.pug"},"4":{"name":"meta.tag.other entity.name.tag.pug"}},"end":"^(?!(\\1\\s)|\\s*$)","comment":"Generated from dot_block_tag.py","patterns":[{"match":"\\.$","name":"storage.type.function.pug.dot-block-dot"},{"include":"#tag_attributes"},{"include":"#complete_tag"},{"begin":"^(?=.)","end":"$","name":"text.block.pug","patterns":[{"include":"#inline_pug"},{"include":"#embedded_html"},{"include":"#html_entity"},{"include":"#interpolated_value"},{"include":"#interpolated_error"}]}]},{"begin":"^\\s*","end":"$","comment":"All constructs that generally span a single line starting with any number of white-spaces.","patterns":[{"include":"#inline_pug"},{"include":"#blocks_and_includes"},{"include":"#unbuffered_code"},{"include":"#mixin_definition"},{"include":"#mixin_call"},{"include":"#flow_control"},{"include":"#flow_control_each"},{"include":"#case_conds"},{"begin":"\\|","end":"$","name":"text.block.pipe.pug","comment":"Tag pipe text line.","patterns":[{"include":"#inline_pug"},{"include":"#embedded_html"},{"include":"#html_entity"},{"include":"#interpolated_value"},{"include":"#interpolated_error"}]},{"include":"#printed_expression"},{"begin":"\\G(?=(#[^\\{\\w-])|[^\\w.#])","end":"$","comment":"Line starting with characters incompatible with tag name/id/class is standalone text.","patterns":[{"begin":"</?(?=[!#])","end":">|$","patterns":[{"include":"#inline_pug"},{"include":"#interpolated_value"},{"include":"#interpolated_error"}]},{"include":"#inline_pug"},{"include":"#embedded_html"},{"include":"#html_entity"},{"include":"#interpolated_value"},{"include":"#interpolated_error"}]},{"include":"#complete_tag"}]}],"repository":{"blocks_and_includes":{"captures":{"1":{"name":"storage.type.import.include.pug"},"4":{"name":"variable.control.import.include.pug"}},"match":"(extends|include|yield|append|prepend|block( (append|prepend))?)\\s+(.*)$","name":"meta.first-class.pug","comment":"Template blocks and includes."},"unbuffered_code":{"begin":"(-|(([a-zA-Z0-9_]+)\\s+=))","beginCaptures":{"3":{"name":"variable.parameter.javascript.embedded.pug"}},"end":"(?=\\])|(({\\s*)?$)","name":"source.js","comment":"name = function() {}","patterns":[{"include":"#js_brackets"},{"include":"#babel_parens"},{"include":"source.js"}]},"mixin_definition":{"match":"(mixin\\s+)([\\w-]+)(?:(\\()\\s*((?:[a-zA-Z_]\\w*\\s*)(?:,\\s*[a-zA-Z_]\\w*\\s*)*)(\\)))?$","captures":{"1":{"name":"storage.type.function.pug"},"2":{"name":"meta.tag.other entity.name.function.pug"},"3":{"name":"punctuation.definition.parameters.begin.js"},"4":{"name":"variable.parameter.function.js"},"5":{"name":"punctuation.definition.parameters.begin.js"}}},"mixin_call":{"begin":"((?:mixin\\s+)|\\+)([\\w-]+)","beginCaptures":{"1":{"name":"storage.type.function.pug"},"2":{"name":"meta.tag.other entity.name.function.pug"}},"end":"(?!\\()|$","patterns":[{"begin":"(?<!\\))\\(","end":"\\)","name":"args.mixin.pug","patterns":[{"include":"#js_parens"},{"match":"([^\\s(),=/]+)\\s*=\\s*","captures":{"1":{"name":"meta.tag.other entity.other.attribute-name.tag.pug"}}},{"include":"source.js"}]},{"include":"#tag_attributes"}]},"flow_control":{"begin":"(for|if|else if|else|until|while|unless|case)(\\s+|$)","captures":{"1":{"name":"storage.type.function.pug"}},"end":"$","name":"meta.control.flow.pug","comment":"Pug control flow.","patterns":[{"begin":"","end":"$","name":"js.embedded.control.flow.pug","patterns":[{"include":"source.js"}]}]},"flow_control_each":{"begin":"(each)(\\s+|$)","captures":{"1":{"name":"storage.type.function.pug"}},"end":"$","name":"meta.control.flow.pug.each","patterns":[{"match":"([\\w$_]+)(?:\\s*,\\s*([\\w$_]+))?","name":"variable.other.pug.each-var"},{"begin":"","end":"$","name":"js.embedded.control.flow.pug","patterns":[{"include":"source.js"}]}]},"case_when_paren":{"begin":"\\(","end":"\\)","name":"js.when.control.flow.pug","patterns":[{"include":"#case_when_paren"},{"match":":","name":"invalid.illegal.name.tag.pug"},{"include":"source.js"}]},"case_conds":{"begin":"(default|when)((\\s+|(?=:))|$)","captures":{"1":{"name":"storage.type.function.pug"}},"end":"$","name":"meta.control.flow.pug","comment":"Pug case conditionals.","patterns":[{"begin":"\\G(?!:)","end":"(?=:\\s+)|$","name":"js.embedded.control.flow.pug","patterns":[{"include":"#case_when_paren"},{"include":"source.js"}]},{"begin":":\\s+","end":"$","name":"tag.case.control.flow.pug","patterns":[{"include":"#complete_tag"}]}]},"complete_tag":{"begin":"(?=[\\w.#])|(:\\s*)","end":"(\\.?$)|(?=:.)","endCaptures":{"1":{"name":"storage.type.function.pug.dot-block-dot"}},"patterns":[{"include":"#blocks_and_includes"},{"include":"#unbuffered_code"},{"include":"#mixin_call"},{"include":"#flow_control"},{"include":"#flow_control_each"},{"match":"(?<=:)\\w.*$","name":"invalid.illegal.name.tag.pug"},{"include":"#tag_name"},{"include":"#tag_id"},{"include":"#tag_classes"},{"include":"#tag_attributes"},{"include":"#tag_mixin_attributes"},{"match":"((\\.)\\s+$)|((:)\\s*$)","captures":{"2":{"name":"invalid.illegal.end.tag.pug"},"4":{"name":"invalid.illegal.end.tag.pug"}}},{"include":"#printed_expression"},{"include":"#tag_text"}]},"tag_name":{"begin":"([#!]\\{(?=.*?\\}))|(\\w(([\\w:-]+[\\w-])|([\\w-]*)))","end":"(\\G(?<!\\5[^\\w-]))|\\}|$","name":"meta.tag.other entity.name.tag.pug","patterns":[{"begin":"\\G(?<=\\{)","end":"(?=\\})","name":"meta.tag.other entity.name.tag.pug","patterns":[{"match":"{","name":"invalid.illegal.tag.pug"},{"include":"source.js"}]}]},"tag_id":{"match":"#[\\w-]+","name":"meta.selector.css entity.other.attribute-name.id.css.pug"},"tag_classes":{"match":"\\.([^\\w-])?[\\w-]*","captures":{"1":{"name":"invalid.illegal.tag.pug"}},"name":"meta.selector.css entity.other.attribute-name.class.css.pug"},"tag_attributes":{"begin":"(\\(\\s*)","captures":{"1":{"name":"constant.name.attribute.tag.pug"}},"end":"(\\))","name":"meta.tag.other","patterns":[{"include":"#tag_attribute_name_paren"},{"include":"#tag_attribute_name"},{"match":"!(?!=)","name":"invalid.illegal.tag.pug"},{"begin":"=\\s*","end":"$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))","name":"attribute_value","patterns":[{"include":"#js_parens"},{"include":"#js_brackets"},{"include":"#js_braces"},{"include":"source.js"}]},{"begin":"(?<=[%&*\\-+~|<>:?/])\\s+","end":"$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))","name":"attribute_value2","patterns":[{"include":"#js_parens"},{"include":"#js_brackets"},{"include":"#js_braces"},{"include":"source.js"}]}]},"tag_attribute_name":{"match":"([^\\s(),=/!]+)\\s*","captures":{"1":{"name":"entity.other.attribute-name.tag.pug"}}},"tag_attribute_name_paren":{"begin":"\\(\\s*","end":"\\)","name":"entity.other.attribute-name.tag.pug","patterns":[{"include":"#tag_attribute_name_paren"},{"include":"#tag_attribute_name"}]},"tag_mixin_attributes":{"begin":"(&attributes\\()","captures":{"1":{"name":"entity.name.function.pug"}},"end":"(\\))","name":"meta.tag.other","patterns":[{"match":"attributes(?=\\))","name":"storage.type.keyword.pug"},{"include":"source.js"}]},"tag_text":{"begin":"(?=.)","end":"$","patterns":[{"include":"#inline_pug"},{"include":"#embedded_html"},{"include":"#html_entity"},{"include":"#interpolated_value"},{"include":"#interpolated_error"}]},"inline_pug_text":{"begin":"","end":"(?=\\])","patterns":[{"begin":"\\[","end":"\\]","patterns":[{"include":"#inline_pug_text"}]},{"include":"#inline_pug"},{"include":"#embedded_html"},{"include":"#html_entity"},{"include":"#interpolated_value"},{"include":"#interpolated_error"}]},"inline_pug":{"begin":"(?<!\\\\)(#\\[)","captures":{"1":{"name":"entity.name.function.pug"},"2":{"name":"entity.name.function.pug"}},"end":"(\\])","name":"inline.pug","patterns":[{"include":"#inline_pug"},{"include":"#mixin_call"},{"begin":"(?<!\\])(?=[\\w.#])|(:\\s*)","end":"(?=\\]|(:.)|=|\\s)","name":"tag.inline.pug","patterns":[{"include":"#tag_name"},{"include":"#tag_id"},{"include":"#tag_classes"},{"include":"#tag_attributes"},{"include":"#tag_mixin_attributes"},{"include":"#inline_pug"},{"match":"\\[","name":"invalid.illegal.tag.pug"}]},{"include":"#unbuffered_code"},{"include":"#printed_expression"},{"match":"\\[","name":"invalid.illegal.tag.pug"},{"include":"#inline_pug_text"}]},"html_entity":{"patterns":[{"match":"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)","name":"constant.character.entity.html.text.pug"},{"match":"[<>&]","name":"invalid.illegal.html_entity.text.pug"}]},"interpolated_value":{"begin":"(?<!\\\\)[#!]\\{(?=.*?\\})","end":"\\}","name":"string.interpolated.pug","patterns":[{"match":"{","name":"invalid.illegal.tag.pug"},{"include":"source.js"}]},"interpolated_error":{"match":"(?<!\\\\)[#!]\\{(?=[^}]*$)","name":"invalid.illegal.tag.pug"},"printed_expression":{"begin":"(!?\\=)\\s*","captures":{"1":{"name":"constant"}},"end":"(?=\\])|$","name":"source.js","patterns":[{"include":"#js_brackets"},{"include":"source.js"}]},"embedded_html":{"begin":"(?=<[^>]*>)","end":"$|(?=>)","name":"html","patterns":[{"include":"text.html.basic"},{"include":"#interpolated_value"},{"include":"#interpolated_error"}]},"js_parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#js_parens"},{"include":"source.js"}]},"js_brackets":{"begin":"\\[","end":"\\]","patterns":[{"include":"#js_brackets"},{"include":"source.js"}]},"js_braces":{"begin":"\\{","end":"\\}","patterns":[{"include":"#js_braces"},{"include":"source.js"}]},"babel_parens":{"begin":"\\(","end":"\\)|(({\\s*)?$)","patterns":[{"include":"#babel_parens"},{"include":"source.js"}]}}}
|