@@ -7,9 +7,6 @@ | |||||
[submodule "sublime_syntaxes/LESS-sublime"] | [submodule "sublime_syntaxes/LESS-sublime"] | ||||
path = sublime_syntaxes/LESS-sublime | path = sublime_syntaxes/LESS-sublime | ||||
url = https://github.com/danro/LESS-sublime.git | url = https://github.com/danro/LESS-sublime.git | ||||
[submodule "sublime_syntaxes/TypeScript-Sublime-Plugin"] | |||||
path = sublime_syntaxes/TypeScript-Sublime-Plugin | |||||
url = https://github.com/Microsoft/TypeScript-Sublime-Plugin.git | |||||
[submodule "sublime_syntaxes/Handlebars"] | [submodule "sublime_syntaxes/Handlebars"] | ||||
path = sublime_syntaxes/Handlebars | path = sublime_syntaxes/Handlebars | ||||
url = https://github.com/daaain/Handlebars.git | url = https://github.com/daaain/Handlebars.git | ||||
@@ -31,3 +28,6 @@ | |||||
[submodule "sublime_syntaxes/Sublime-VimL"] | [submodule "sublime_syntaxes/Sublime-VimL"] | ||||
path = sublime_syntaxes/Sublime-VimL | path = sublime_syntaxes/Sublime-VimL | ||||
url = https://github.com/SalGnt/Sublime-VimL.git | url = https://github.com/SalGnt/Sublime-VimL.git | ||||
[submodule "sublime_syntaxes/TypeScript-TmLanguage"] | |||||
path = sublime_syntaxes/TypeScript-TmLanguage | |||||
url = https://github.com/Microsoft/TypeScript-TmLanguage |
@@ -32,7 +32,8 @@ Here is a full list of the supported languages and the short names you can use: | |||||
- Jinja2 -> ["j2", "jinja2"] | - Jinja2 -> ["j2", "jinja2"] | ||||
- Julia -> ["jl"] | - Julia -> ["jl"] | ||||
- Kotlin -> ["kt", "kts"] | - Kotlin -> ["kt", "kts"] | ||||
- LESS -> ["less"] | |||||
- Less -> ["less", "css.less"] | |||||
- Nim -> ["nim", "nims"] | |||||
- ASP -> ["asa"] | - ASP -> ["asa"] | ||||
- HTML (ASP) -> ["asp"] | - HTML (ASP) -> ["asp"] | ||||
- ActionScript -> ["as"] | - ActionScript -> ["as"] | ||||
@@ -57,12 +58,12 @@ Here is a full list of the supported languages and the short names you can use: | |||||
- Java Server Page (JSP) -> ["jsp"] | - Java Server Page (JSP) -> ["jsp"] | ||||
- Java -> ["java", "bsh"] | - Java -> ["java", "bsh"] | ||||
- Java Properties -> ["properties"] | - Java Properties -> ["properties"] | ||||
- JSON -> ["json", "sublime-settings", "sublime-menu", "sublime-keymap", "sublime-mousemap", "sublime-theme", "sublime-build", "sublime-project", "sublime-completions", "sublime-commands", "sublime-macro"] | |||||
- JSON -> ["json", "sublime-settings", "sublime-menu", "sublime-keymap", "sublime-mousemap", "sublime-theme", "sublime-build", "sublime-project", "sublime-completions", "sublime-commands", "sublime-macro", "sublime-color-scheme"] | |||||
- JavaScript -> ["js", "htc"] | - JavaScript -> ["js", "htc"] | ||||
- BibTeX -> ["bib"] | - BibTeX -> ["bib"] | ||||
- LaTeX -> ["tex", "ltx"] | - LaTeX -> ["tex", "ltx"] | ||||
- TeX -> ["sty", "cls"] | - TeX -> ["sty", "cls"] | ||||
- Lisp -> ["lisp", "cl", "l", "mud", "el", "scm", "ss", "lsp", "fasl"] | |||||
- Lisp -> ["lisp", "cl", "clisp", "l", "mud", "el", "scm", "ss", "lsp", "fasl"] | |||||
- Lua -> ["lua"] | - Lua -> ["lua"] | ||||
- Makefile -> ["make", "GNUmakefile", "makefile", "Makefile", "OCamlMakefile", "mak", "mk"] | - Makefile -> ["make", "GNUmakefile", "makefile", "Makefile", "OCamlMakefile", "mak", "mk"] | ||||
- Markdown -> ["md", "mdown", "markdown", "markdn"] | - Markdown -> ["md", "mdown", "markdown", "markdn"] | ||||
@@ -89,13 +90,14 @@ Here is a full list of the supported languages and the short names you can use: | |||||
- Rust -> ["rs"] | - Rust -> ["rs"] | ||||
- SQL -> ["sql", "ddl", "dml"] | - SQL -> ["sql", "ddl", "dml"] | ||||
- Scala -> ["scala", "sbt"] | - Scala -> ["scala", "sbt"] | ||||
- Bourne Again Shell (bash) -> ["sh", "bash", "zsh", "fish", ".bash_aliases", ".bash_functions", ".bash_login", ".bash_logout", ".bash_profile", ".bash_variables", ".bashrc", ".profile", ".textmate_init"] | |||||
- Bourne Again Shell (bash) -> ["sh", "bash", "zsh", "fish", ".bash_aliases", ".bash_completions", ".bash_functions", ".bash_login", ".bash_logout", ".bash_profile", ".bash_variables", ".bashrc", ".profile", ".textmate_init"] | |||||
- HTML (Tcl) -> ["adp"] | - HTML (Tcl) -> ["adp"] | ||||
- Tcl -> ["tcl"] | - Tcl -> ["tcl"] | ||||
- Textile -> ["textile"] | - Textile -> ["textile"] | ||||
- XML -> ["xml", "xsd", "xslt", "tld", "dtml", "rss", "opml", "svg"] | - XML -> ["xml", "xsd", "xslt", "tld", "dtml", "rss", "opml", "svg"] | ||||
- YAML -> ["yaml", "yml", "sublime-syntax"] | - YAML -> ["yaml", "yml", "sublime-syntax"] | ||||
- Generic Config -> ["cfg", "conf", "config", "ini", "pro"] | |||||
- SWI-Prolog -> ["pro"] | |||||
- Generic Config -> ["cfg", "conf", "config", "ini", "pro", "mak", "mk", "Doxyfile", "inputrc", ".inputrc", "dircolors", ".dircolors", "gitmodules", ".gitmodules", "gitignore", ".gitignore", "gitattributes", ".gitattributes"] | |||||
- Linker Script -> ["ld"] | - Linker Script -> ["ld"] | ||||
- TOML -> ["toml", "tml"] | - TOML -> ["toml", "tml"] | ||||
- TypeScript -> ["ts"] | - TypeScript -> ["ts"] | ||||
@@ -1,200 +0,0 @@ | |||||
%YAML 1.2 | |||||
--- | |||||
# http://www.sublimetext.com/docs/3/syntax.html | |||||
name: Elm | |||||
file_extensions: | |||||
- elm | |||||
scope: source.elm | |||||
contexts: | |||||
main: | |||||
- match: "(`)[a-zA-Z_']*?(`)" | |||||
scope: keyword.operator.function.infix.elm | |||||
captures: | |||||
1: punctuation.definition.entity.elm | |||||
2: punctuation.definition.entity.elm | |||||
- match: \(\) | |||||
scope: constant.language.unit.elm | |||||
- match: ^\b((effect|port)\s+)?(module)\s+ | |||||
captures: | |||||
1: keyword.other.elm | |||||
3: keyword.other.elm | |||||
push: | |||||
- meta_scope: meta.declaration.module.elm | |||||
- match: $|; | |||||
captures: | |||||
1: keyword.other.elm | |||||
pop: true | |||||
- include: module_name | |||||
- match: '(where)\s*\{' | |||||
captures: | |||||
1: keyword.other.elm | |||||
push: | |||||
- match: '\}' | |||||
pop: true | |||||
- include: type_signature | |||||
- match: (exposing) | |||||
scope: keyword.other.elm | |||||
- include: module_exports | |||||
- match: (where) | |||||
scope: keyword.other.elm | |||||
- match: "[a-z]+" | |||||
scope: invalid | |||||
- match: ^\b(import)\s+((open)\s+)? | |||||
captures: | |||||
1: keyword.other.elm | |||||
3: invalid | |||||
push: | |||||
- meta_scope: meta.import.elm | |||||
- match: ($|;) | |||||
pop: true | |||||
- match: (as|exposing) | |||||
scope: keyword.import.elm | |||||
- include: module_name | |||||
- include: module_exports | |||||
- match: '(\[)(glsl)(\|)' | |||||
captures: | |||||
1: keyword.other.elm | |||||
2: support.function.prelude.elm | |||||
3: keyword.other.elm | |||||
push: | |||||
- meta_scope: entity.glsl.elm | |||||
- match: '(\|\])' | |||||
captures: | |||||
1: keyword.other.elm | |||||
pop: true | |||||
- include: scope:source.glsl | |||||
- match: \b(type alias|type|case|of|let|in|as)\s+ | |||||
scope: keyword.other.elm | |||||
- match: \b(if|then|else)\s+ | |||||
scope: keyword.control.elm | |||||
- match: '\b([0-9]+\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\b' | |||||
comment: Floats are always decimal | |||||
scope: constant.numeric.float.elm | |||||
- match: '\b([0-9]+)\b' | |||||
scope: constant.numeric.elm | |||||
- match: '"""' | |||||
captures: | |||||
0: punctuation.definition.string.begin.elm | |||||
push: | |||||
- meta_scope: string.quoted.double.elm | |||||
- match: '"""' | |||||
captures: | |||||
0: punctuation.definition.string.end.elm | |||||
pop: true | |||||
- match: '\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\''\&])' | |||||
scope: constant.character.escape.elm | |||||
- match: '\^[A-Z@\[\]\\\^_]' | |||||
scope: constant.character.escape.control.elm | |||||
- match: '"' | |||||
captures: | |||||
0: punctuation.definition.string.begin.elm | |||||
push: | |||||
- meta_scope: string.quoted.double.elm | |||||
- match: '"' | |||||
captures: | |||||
0: punctuation.definition.string.end.elm | |||||
pop: true | |||||
- match: '\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\"''\&])' | |||||
scope: constant.character.escape.elm | |||||
- match: '\^[A-Z@\[\]\\\^_]' | |||||
scope: constant.character.escape.control.elm | |||||
- match: |- | |||||
(?x) | |||||
(') | |||||
(?: | |||||
[\ -\[\]-~] # Basic Char | |||||
| (\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE | |||||
|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS | |||||
|US|SP|DEL|[abfnrtv\\\"'\&])) # Escapes | |||||
| (\^[A-Z@\[\]\\\^_]) # Control Chars | |||||
) | |||||
(') | |||||
scope: string.quoted.single.elm | |||||
captures: | |||||
1: punctuation.definition.string.begin.elm | |||||
2: constant.character.escape.elm | |||||
3: punctuation.definition.string.end.elm | |||||
- match: '^(port\s+)?([a-z_][a-zA-Z0-9_'']*|\([|!%$+\-.,=</>]+\))\s*((:)([:]+)?)' | |||||
captures: | |||||
1: keyword.other.port.elm | |||||
2: entity.name.function.elm | |||||
4: keyword.other.colon.elm | |||||
5: invalid | |||||
push: | |||||
- meta_scope: meta.function.type-declaration.elm | |||||
- match: $\n? | |||||
pop: true | |||||
- include: type_signature | |||||
- match: \bport\s+ | |||||
scope: keyword.other.port.elm | |||||
- match: '\b[A-Z]\w*\b' | |||||
scope: constant.other.elm | |||||
- include: comments | |||||
- match: '^[a-z][A-Za-z0-9_'']*\s+' | |||||
scope: entity.name.function.elm | |||||
- include: infix_op | |||||
- match: '[|!%$?~+:\-.=</>&\\*^]+' | |||||
scope: keyword.operator.elm | |||||
- match: '([\[\]\{\},])' | |||||
scope: constant.language.delimiter.elm | |||||
captures: | |||||
1: support.function.delimiter.elm | |||||
- match: '([\(\)])' | |||||
scope: keyword.other.parenthesis.elm | |||||
block_comment: | |||||
- match: '\{-(?!#)' | |||||
captures: | |||||
0: punctuation.definition.comment.elm | |||||
push: | |||||
- meta_scope: comment.block.elm | |||||
- include: block_comment | |||||
- match: '-\}' | |||||
captures: | |||||
0: punctuation.definition.comment.elm | |||||
pop: true | |||||
comments: | |||||
- match: (--).*$\n? | |||||
scope: comment.line.double-dash.elm | |||||
captures: | |||||
1: punctuation.definition.comment.elm | |||||
- include: block_comment | |||||
infix_op: | |||||
- match: '(\([|!%$+:\-.=</>]+\)|\(,+\))' | |||||
scope: entity.name.function.infix.elm | |||||
module_exports: | |||||
- match: \( | |||||
push: | |||||
- meta_scope: meta.declaration.exports.elm | |||||
- match: \) | |||||
pop: true | |||||
- match: '\b[a-z][a-zA-Z_''0-9]*' | |||||
scope: entity.name.function.elm | |||||
- match: '\b[A-Z][A-Za-z_''0-9]*' | |||||
scope: storage.type.elm | |||||
- match: "," | |||||
scope: punctuation.separator.comma.elm | |||||
- include: infix_op | |||||
- match: \(.*?\) | |||||
comment: So named because I don't know what to call this. | |||||
scope: meta.other.unknown.elm | |||||
module_name: | |||||
- match: "[A-Z][A-Za-z._']*" | |||||
scope: support.other.module.elm | |||||
type_signature: | |||||
- match: '\(\s*([A-Z][A-Za-z]*)\s+([a-z][A-Za-z_'']*)\)\s*(=>)' | |||||
scope: meta.class-constraint.elm | |||||
captures: | |||||
1: entity.other.inherited-class.elm | |||||
2: variable.other.generic-type.elm | |||||
3: keyword.other.big-arrow.elm | |||||
- match: "->" | |||||
scope: keyword.other.arrow.elm | |||||
- match: "=>" | |||||
scope: keyword.other.big-arrow.elm | |||||
- match: '\b[a-z][a-zA-Z0-9_'']*\b' | |||||
scope: variable.other.generic-type.elm | |||||
- match: '\b[A-Z][a-zA-Z0-9_'']*\b' | |||||
scope: storage.type.elm | |||||
- match: \(\) | |||||
scope: support.constant.unit.elm | |||||
- include: comments |
@@ -1,326 +0,0 @@ | |||||
%YAML 1.2 | |||||
--- | |||||
# http://www.sublimetext.com/docs/3/syntax.html | |||||
name: LESS | |||||
comment: LESS | |||||
file_extensions: | |||||
- less | |||||
scope: source.less | |||||
contexts: | |||||
main: | |||||
- include: comment-block | |||||
- include: comment-line | |||||
- include: less-at-rules | |||||
- include: less-declarations | |||||
- include: less-variables | |||||
- include: less-functions | |||||
- include: string-double | |||||
- include: string-single | |||||
- include: selector | |||||
- include: rule-list | |||||
- include: less-operators | |||||
- include: less-parameters | |||||
- include: numeric-values | |||||
color-values: | |||||
- match: \b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\b | |||||
comment: http://www.w3.org/TR/CSS21/syndata.html#value-def-color | |||||
scope: support.constant.color.w3c-standard-color-name.css | |||||
- match: \b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\b | |||||
comment: "These colours are mostly recognised but will not validate. ref: http://www.w3schools.com/css/css_colornames.asp" | |||||
scope: support.constant.color.non-standard | |||||
- match: (hsla?|rgba?)\s*(\() | |||||
captures: | |||||
1: support.function.misc.css | |||||
2: punctuation.section.function.css | |||||
push: | |||||
- match: (\)) | |||||
captures: | |||||
1: punctuation.section.function.css | |||||
pop: true | |||||
- match: '(?x)\b(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\s*,\s*){2}(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\b)(\s*,\s*((0?\.[0-9]+)|[0-1]))?' | |||||
scope: constant.other.color.rgb-value.css | |||||
- match: '\b([0-9]{1,2}|100)\s*%,\s*([0-9]{1,2}|100)\s*%,\s*([0-9]{1,2}|100)\s*%' | |||||
scope: constant.other.color.rgb-percentage.css | |||||
- include: numeric-values | |||||
comment-block: | |||||
- match: /\* | |||||
captures: | |||||
0: punctuation.definition.comment.css | |||||
push: | |||||
- meta_scope: comment.block.css | |||||
- match: \*/ | |||||
captures: | |||||
0: punctuation.definition.comment.css | |||||
pop: true | |||||
comment-line: | |||||
- match: // | |||||
captures: | |||||
0: punctuation.definition.comment.css | |||||
push: | |||||
- meta_scope: comment.line.double-slash.less | |||||
- match: $\n? | |||||
captures: | |||||
0: punctuation.definition.comment.css | |||||
pop: true | |||||
less-at-rules: | |||||
- match: ^\s*((@)(?:-(?:webkit|moz|o)-)?(charset|import|namespace|media|page|font-face|keyframes|supports|document)\b) | |||||
scope: meta.at-rule.css | |||||
captures: | |||||
1: keyword.control.at-rule.css | |||||
2: punctuation.definition.keyword.css | |||||
less-data-uri: | |||||
- match: (url)(\()(data:) | |||||
captures: | |||||
1: support.function.misc.css | |||||
2: punctuation.section.function.css | |||||
3: parameter.less.data-uri comment markup.raw | |||||
push: | |||||
- meta_content_scope: parameter.less.data-uri comment markup.raw | |||||
- match: (\)) | |||||
captures: | |||||
1: punctuation.section.function.css | |||||
pop: true | |||||
- match: (url)(\()("data:) | |||||
captures: | |||||
1: support.function.misc.css | |||||
2: punctuation.section.function.css | |||||
3: parameter.less.data-uri comment markup.raw | |||||
push: | |||||
- meta_content_scope: parameter.less.data-uri comment markup.raw | |||||
- match: (?<=")(\)) | |||||
captures: | |||||
1: punctuation.section.function.css | |||||
pop: true | |||||
- match: (url)(\()('data:) | |||||
captures: | |||||
1: support.function.misc.css | |||||
2: punctuation.section.function.css | |||||
3: parameter.less.data-uri comment markup.raw | |||||
push: | |||||
- meta_content_scope: parameter.less.data-uri comment markup.raw | |||||
- match: (?<=\')(\)) | |||||
captures: | |||||
1: punctuation.section.function.css | |||||
pop: true | |||||
less-declarations: | |||||
- match: '(?>@[a-zA-Z0-9_-][\w-]*+)(?!:)' | |||||
scope: variable.other.less | |||||
- match: '@[a-zA-Z0-9_-][\w-]*' | |||||
scope: variable.declaration.less | |||||
less-functions: | |||||
- match: '([%a-zA-Z\-\_\d]*)(?=\()' | |||||
scope: support.function.less | |||||
- match: '([\.#](?![0-9])[a-zA-Z0-9_-]+(?=\())' | |||||
captures: | |||||
1: entity.other.attribute-name.class.css entity.other.less.mixin | |||||
less-operators: | |||||
- match: /|!important|$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|(?<!\()/=|%=|\+=|\-=|&=|when\b|and\b|not\b | |||||
scope: keyword.operator.less | |||||
less-parameters: | |||||
- match: '\(|(}\s*,)' | |||||
push: | |||||
- meta_scope: parameter.less | |||||
- match: '\)|{' | |||||
pop: true | |||||
- include: color-values | |||||
- include: less-parameters | |||||
- include: less-functions | |||||
- include: numeric-values | |||||
- include: string-double | |||||
- include: string-single | |||||
- include: less-variables | |||||
- match: '(?:\:/)?[\/\.a-zA-Z0-9_\-]*' | |||||
scope: variable.parameter.misc.css | |||||
- include: less-operators | |||||
less-variables: | |||||
- match: '@[a-zA-Z0-9_-][\w-]*' | |||||
scope: variable.other.less | |||||
- match: '@{[a-zA-Z0-9_-][\w-]*}' | |||||
scope: variable.interpolation.less | |||||
- match: "`" | |||||
push: | |||||
- meta_scope: comment markup.raw | |||||
- match: "`" | |||||
pop: true | |||||
- match: (~)` | |||||
captures: | |||||
1: keyword.operator.less | |||||
push: | |||||
- meta_scope: comment markup.raw | |||||
- match: "`" | |||||
pop: true | |||||
- match: (~)" | |||||
captures: | |||||
1: keyword.operator.less | |||||
push: | |||||
- meta_scope: string.quoted.double.css comment markup.raw | |||||
- match: '"' | |||||
pop: true | |||||
- match: (~)' | |||||
captures: | |||||
1: keyword.operator.less | |||||
push: | |||||
- meta_scope: string.quoted.single.css comment markup.raw | |||||
- match: "'" | |||||
pop: true | |||||
numeric-values: | |||||
- match: '(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b' | |||||
scope: constant.other.color.rgb-value.css | |||||
captures: | |||||
1: punctuation.definition.constant.css | |||||
- match: '(?x)(?:-|\+)?(?:(?:[0-9]+(?:\.[0-9]+)?)|(?:\.[0-9]+))((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|ms|s)\b|%)?' | |||||
scope: constant.numeric.css | |||||
captures: | |||||
1: keyword.other.unit.css | |||||
property-names: | |||||
- match: "(?<![-a-z])(?=[-a-z])" | |||||
push: | |||||
- meta_scope: support.type.property-name.css | |||||
- match: "$|(?![-a-z])" | |||||
pop: true | |||||
- match: \b(word)\b | |||||
scope: support.type.property-name.css | |||||
property-values: | |||||
- include: less-variables | |||||
- include: less-data-uri | |||||
- include: less-functions | |||||
- include: less-operators | |||||
- include: color-values | |||||
- include: numeric-values | |||||
- include: less-parameters | |||||
- match: \b(absolute|all(-scroll)?|always|subpixel-antialiased|antialiased|armenian|auto|avoid|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|content-box|col-resize|collapse|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|geometricPrecision|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|optimize(Legibility|Quality|Speed)|outset|outside|overline|pointer|pre(-(wrap|line))?|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table|tb-rl|text-bottom|text-top|textfield|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical(-(ideographic|text))?|visible(Painted|Fill|Stroke)?|w-resize|wait|whitespace|zero|smaller|larger|((xx?-)?(small|large))|painted|fill|stroke)\b | |||||
scope: support.constant.property-value.css | |||||
- include: selector | |||||
- match: (\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\b) | |||||
scope: support.constant.font-name.css | |||||
- include: string-double | |||||
- include: string-single | |||||
- match: (rect)\s*(\() | |||||
captures: | |||||
1: support.function.misc.css | |||||
2: punctuation.section.function.css | |||||
push: | |||||
- match: (\)) | |||||
captures: | |||||
1: punctuation.section.function.css | |||||
pop: true | |||||
- include: numeric-values | |||||
- match: (format|local|url|attr|counter|counters)\s*(\() | |||||
captures: | |||||
1: support.function.misc.css | |||||
2: punctuation.section.function.css | |||||
push: | |||||
- match: (\)) | |||||
captures: | |||||
1: punctuation.section.function.css | |||||
pop: true | |||||
- include: string-single | |||||
- include: string-double | |||||
- match: '[^''") \t]+' | |||||
scope: variable.parameter.misc.css | |||||
- match: \!\s*important | |||||
scope: keyword.other.important.css | |||||
rule-list: | |||||
- include: comment-block | |||||
- include: comment-line | |||||
- include: selector | |||||
- include: property-names | |||||
- match: (:)\s* | |||||
captures: | |||||
1: punctuation.separator.key-value.css | |||||
push: | |||||
- meta_scope: meta.property-value.css | |||||
- match: '\s*(;|(?=[{}]))' | |||||
captures: | |||||
1: punctuation.terminator.rule.css | |||||
pop: true | |||||
- include: property-values | |||||
selector: | |||||
- match: '\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\b' | |||||
scope: entity.name.tag.css, keyword.control.html.elements | |||||
- match: '(\.)-?[a-zA-Z_][a-zA-Z0-9_-]*' | |||||
scope: entity.other.attribute-name.class.css | |||||
captures: | |||||
1: punctuation.definition.entity.css | |||||
- match: "(#)-?[a-zA-Z_][a-zA-Z0-9_-]*" | |||||
scope: entity.other.attribute-name.id.css | |||||
captures: | |||||
1: punctuation.definition.entity.css | |||||
- match: \* | |||||
scope: entity.name.tag.wildcard.css | |||||
- match: (:+)((first|last|only)-child|(first|last|only)-of-type|empty|root|target|first-letter|first-line|first|left|right|lang)\b | |||||
scope: entity.other.attribute-name.pseudo-class.css | |||||
captures: | |||||
1: punctuation.definition.entity.css | |||||
- match: (:)(extend)\b | |||||
scope: entity.other.attribute-name.pseudo-class.less | |||||
captures: | |||||
1: punctuation.definition.entity.css | |||||
- match: (:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\b | |||||
scope: entity.other.attribute-name.pseudo-class.ui-state.css | |||||
captures: | |||||
1: punctuation.definition.entity.css | |||||
- match: ((:)not)(\() | |||||
captures: | |||||
1: entity.other.attribute-name.pseudo-class.css | |||||
2: punctuation.definition.entity.css | |||||
3: punctuation.section.function.css | |||||
push: | |||||
- match: \) | |||||
captures: | |||||
0: punctuation.section.function.css | |||||
pop: true | |||||
- include: selector | |||||
- match: ((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\() | |||||
captures: | |||||
1: entity.other.attribute-name.pseudo-class.css | |||||
2: punctuation.definition.entity.css | |||||
3: punctuation.section.function.css | |||||
push: | |||||
- meta_content_scope: constant.numeric.css | |||||
- match: (\)) | |||||
captures: | |||||
1: punctuation.section.function.css | |||||
pop: true | |||||
- match: (:+)(?:-(?:webkit|moz|o)-)?(after|before|selection|scrollbar|placeholder|input-placeholder)\b | |||||
scope: entity.other.attribute-name.pseudo-element.css | |||||
captures: | |||||
1: punctuation.definition.entity.css | |||||
- match: (:+)(?:-(?:webkit|moz|o)-)?(active|hover|link|visited|focus-inner|focus)\b | |||||
scope: entity.other.attribute-name.pseudo-class.css | |||||
captures: | |||||
1: punctuation.definition.entity.css | |||||
- match: '(?i)(\[)\s*(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)(?:\s*([~|^$*]?=)\s*(?:(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)|((?>([''"])(?:[^\\]|\\.)*?(\6)))))?\s*(\])' | |||||
scope: meta.attribute-selector.css | |||||
captures: | |||||
1: punctuation.definition.entity.css | |||||
2: entity.other.attribute-name.attribute.css | |||||
3: punctuation.separator.operator.css | |||||
4: string.unquoted.attribute-value.css | |||||
5: string.quoted.double.attribute-value.css | |||||
6: punctuation.definition.string.begin.css | |||||
7: punctuation.definition.string.end.css | |||||
string-double: | |||||
- match: '"' | |||||
captures: | |||||
0: punctuation.definition.string.begin.css | |||||
push: | |||||
- meta_scope: string.quoted.double.css | |||||
- match: '"' | |||||
captures: | |||||
0: punctuation.definition.string.end.css | |||||
pop: true | |||||
- match: \\. | |||||
scope: constant.character.escape.css | |||||
string-single: | |||||
- match: "'" | |||||
captures: | |||||
0: punctuation.definition.string.begin.css | |||||
push: | |||||
- meta_scope: string.quoted.single.css | |||||
- match: "'" | |||||
captures: | |||||
0: punctuation.definition.string.end.css | |||||
pop: true | |||||
- match: \\. | |||||
scope: constant.character.escape.css |
@@ -0,0 +1,135 @@ | |||||
%YAML 1.2 | |||||
--- | |||||
# http://www.sublimetext.com/docs/3/syntax.html | |||||
name: SWI-Prolog | |||||
comment: This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. | |||||
file_extensions: | |||||
- pro | |||||
scope: source.prolog | |||||
contexts: | |||||
main: | |||||
- include: comments | |||||
- match: (?<=:-)\s* | |||||
push: | |||||
- meta_scope: meta.clause.body.prolog | |||||
- match: (\.) | |||||
captures: | |||||
1: keyword.control.clause.bodyend.prolog | |||||
pop: true | |||||
- include: comments | |||||
- include: builtin | |||||
- include: controlandkeywords | |||||
- include: atom | |||||
- include: variable | |||||
- include: constants | |||||
- match: . | |||||
scope: meta.clause.body.prolog | |||||
- match: '^\s*([a-z][a-zA-Z0-9_]*)(\(?)(?=.*:-.*)' | |||||
captures: | |||||
1: entity.name.function.clause.prolog | |||||
2: punctuation.definition.parameters.begin | |||||
push: | |||||
- meta_scope: meta.clause.head.prolog | |||||
- match: ((\)?))\s*(:-) | |||||
captures: | |||||
1: punctuation.definition.parameters.end | |||||
3: keyword.control.clause.bodybegin.prolog | |||||
pop: true | |||||
- include: atom | |||||
- include: variable | |||||
- include: constants | |||||
- match: '^\s*([a-z][a-zA-Z0-9_]*)(\(?)(?=.*-->.*)' | |||||
captures: | |||||
1: entity.name.function.dcg.prolog | |||||
2: punctuation.definition.parameters.begin | |||||
push: | |||||
- meta_scope: meta.dcg.head.prolog | |||||
- match: ((\)?))\s*(-->) | |||||
captures: | |||||
1: punctuation.definition.parameters.end | |||||
3: keyword.control.dcg.bodybegin.prolog | |||||
pop: true | |||||
- include: atom | |||||
- include: variable | |||||
- include: constants | |||||
- match: (?<=-->)\s* | |||||
push: | |||||
- meta_scope: meta.dcg.body.prolog | |||||
- match: (\.) | |||||
captures: | |||||
1: keyword.control.dcg.bodyend.prolog | |||||
pop: true | |||||
- include: comments | |||||
- include: controlandkeywords | |||||
- include: atom | |||||
- include: variable | |||||
- include: constants | |||||
- match: . | |||||
scope: meta.dcg.body.prolog | |||||
- match: '^\s*([a-zA-Z][a-zA-Z0-9_]*)(\(?)(?!.*(:-|-->).*)' | |||||
captures: | |||||
1: entity.name.function.fact.prolog | |||||
2: punctuation.definition.parameters.begin | |||||
push: | |||||
- meta_scope: meta.fact.prolog | |||||
- match: ((\)?))\s*(\.)(?!\d+) | |||||
captures: | |||||
1: punctuation.definition.parameters.end | |||||
3: keyword.control.fact.end.prolog | |||||
pop: true | |||||
- include: atom | |||||
- include: variable | |||||
- include: constants | |||||
atom: | |||||
- match: '(?<![a-zA-Z0-9_])[a-z][a-zA-Z0-9_]*(?!\s*\(|[a-zA-Z0-9_])' | |||||
scope: constant.other.atom.simple.prolog | |||||
- match: "'.*?'" | |||||
scope: constant.other.atom.quoted.prolog | |||||
- match: '\[\]' | |||||
scope: constant.other.atom.emptylist.prolog | |||||
builtin: | |||||
- match: \b(op|findall|write|nl|writeln|fail|use_module|module)\b | |||||
scope: keyword.other | |||||
comments: | |||||
- match: "%.*" | |||||
scope: comment.line.percent-sign.prolog | |||||
- match: /\* | |||||
captures: | |||||
0: punctuation.definition.comment.prolog | |||||
push: | |||||
- meta_scope: comment.block.prolog | |||||
- match: \*/ | |||||
captures: | |||||
0: punctuation.definition.comment.prolog | |||||
pop: true | |||||
constants: | |||||
- match: '(?<![a-zA-Z]|/)(\d+|(\d+\.\d+))' | |||||
scope: constant.numeric.integer.prolog | |||||
- match: '".*?"' | |||||
scope: string.quoted.double.prolog | |||||
controlandkeywords: | |||||
- match: (->) | |||||
captures: | |||||
1: keyword.control.if.prolog | |||||
push: | |||||
- meta_scope: meta.if.prolog | |||||
- match: (;) | |||||
captures: | |||||
1: keyword.control.else.prolog | |||||
pop: true | |||||
- include: main | |||||
- include: builtin | |||||
- include: comments | |||||
- include: atom | |||||
- include: variable | |||||
- match: . | |||||
scope: meta.if.body.prolog | |||||
- match: "!" | |||||
scope: keyword.control.cut.prolog | |||||
- match: (\s(is)\s)|=:=|=?\\?=|\\\+|@?>|@?=?<|\+|\*|\- | |||||
scope: keyword.operator.prolog | |||||
variable: | |||||
- match: "(?<![a-zA-Z0-9_])[A-Z][a-zA-Z0-9_]*" | |||||
scope: variable.parameter.uppercase.prolog | |||||
- match: (?<!\w)_ | |||||
scope: variable.language.anonymous.prolog |
@@ -1 +0,0 @@ | |||||
Subproject commit 79bf8ddfb8a05a2b104f3937cd91b6f2afbbb943 |
@@ -0,0 +1 @@ | |||||
Subproject commit c29d12d8aceb1a68af4cb6e466199846f41dd2ed |