%YAML 1.2 --- # http://www.sublimetext.com/docs/syntax.html name: Requirements.txt scope: source.requirements-txt # https://pip.pypa.io/en/stable/reference/requirements-file-format/ # https://github.com/raimon49/requirements.txt.vim/blob/f246bd10155fbc3b1a9e2fff6c95b21521b09116/ftdetect/requirements.vim file_extensions: - requirements.txt - requirements.in - pip # https://github.com/sublimehq/Packages/pull/2760/files first_line_match: |- (?xi: ^ \#! .* \bpip # shebang | ^ \s* \# .*? -\*- .*? \bpip-requirements\b .*? -\*- # editorconfig | ^ \s* \# (vim?|ex): .*? \brequirements\b # modeline ) # pip install -r # pip-compile variables: operator: '===?|<=?|>=?|~=|!=' contexts: main: - match: '(?i)\d+[\da-z\-_\.\*]*' scope: constant.other.version-control.requirements-txt - match: '(?i)^\[?--?[\da-z\-]*\]?' scope: entity.name.function.option.requirements-txt - match: '{{operator}}' scope: keyword.operator.logical.requirements-txt - match: '(\[)' captures: 1: punctuation.section.braces.begin.requirements-txt push: - meta_scope: variable.function.extra.requirements-txt - match: ',' scope: punctuation.separator.requirements-txt - match: '(\])' captures: 1: punctuation.section.braces.end.requirements-txt pop: true - match: '(git\+?|hg\+|svn\+|bzr\+).*://.\S+' scope: markup.underline.link.versioncontrols.requirements-txt - match: '(@\s)?(https?|ftp|gopher)://?[^\s/$.?#].\S*' scope: markup.underline.link.url.requirements-txt captures: 1: punctuation.definition.keyword.requirements-txt - match: '(?i)^[a-z\d_\-\.]*[a-z\d]' scope: variable.parameter.package-name.requirements-txt - match: '(;)' captures: 1: punctuation.definition.annotation.requirements-txt push: - meta_scope: meta.annotation.requirements-txt # https://pip.pypa.io/en/stable/reference/inspect-report/#example - match: |- (?x: implementation_name | implementation_version | os_name | platform_machine | platform_release | platform_system | platform_version | python_full_version | platform_python_implementation | python_version | sys_platform ) scope: variable.language.requirements-txt - match: '{{operator}}' scope: keyword.operator.logical.requirements-txt # https://pip.pypa.io/en/stable/reference/requirement-specifiers/#examples - match: '(")' captures: 1: punctuation.definition.string.begin.double.requirements-txt push: - meta_scope: string.quoted.double.requirements-txt - match: '\\"' scope: constant.character.escape.double.requirements-txt - match: '(")' captures: 1: punctuation.definition.string.end.double.requirements-txt pop: true - match: "(')" captures: 1: punctuation.definition.string.begin.single.requirements-txt push: - meta_scope: string.quoted.single.requirements-txt - match: '\\''' scope: constant.character.escape.single.requirements-txt - match: "(')" captures: 1: punctuation.definition.string.end.single.requirements-txt pop: true - match: '(.(?=#)|$)' pop: true - match: '(\$)(\{)' captures: 1: punctuation.definition.keyword.requirements-txt 2: punctuation.definition.begin.parameter.requirements-txt push: - meta_scope: variable.parameter.requirements-txt - match: '(\})' captures: 1: punctuation.definition.end.parameter.requirements-txt pop: true - match: '(#)' captures: 1: punctuation.definition.comment.requirements-txt push: - meta_scope: comment.line.requirements-txt - match: '(-*-) coding: .* (-*-)' captures: 1: punctuation.definition.begin.pep263.requirements-txt 2: punctuation.definition.end.pep263.requirements-txt - match: '$' pop: true