2020-03-24 18:42:23 +03:00
|
|
|
filetype: python
|
2017-02-18 23:17:07 +03:00
|
|
|
|
2017-03-21 22:07:39 +03:00
|
|
|
detect:
|
2020-03-24 18:42:23 +03:00
|
|
|
filename: "\\.py(3)?$"
|
2024-03-23 23:44:27 +03:00
|
|
|
header: "^#!.*/(env +)?python(3)?$"
|
2017-02-18 23:17:07 +03:00
|
|
|
|
|
|
|
rules:
|
2017-03-21 22:07:39 +03:00
|
|
|
# built-in objects
|
2020-08-23 22:46:27 +03:00
|
|
|
- constant: "\\b(Ellipsis|None|self|cls|True|False)\\b"
|
2017-03-21 22:07:39 +03:00
|
|
|
# built-in attributes
|
2017-02-18 23:17:07 +03:00
|
|
|
- constant: "\\b(__bases__|__builtin__|__class__|__debug__|__dict__|__doc__|__file__|__members__|__methods__|__name__|__self__)\\b"
|
2017-03-21 22:07:39 +03:00
|
|
|
# built-in functions
|
2019-07-04 02:53:53 +03:00
|
|
|
- identifier: "\\b(abs|all|any|ascii|bin|bool|breakpoint|bytearray|bytes|callable|chr|classmethod|compile|complex|delattr|dir|divmod|eval|exec|format|getattr|globals|hasattr|hash|help|hex|id|input|isinstance|issubclass|iter|len|locals|max|min|next|nonlocal|oct|open|ord|pow|print|repr|round|setattr|sorted|sum|vars|__import__)\\b"
|
2017-03-21 22:07:39 +03:00
|
|
|
# special method names
|
2020-08-23 22:46:27 +03:00
|
|
|
- identifier: "\\b__(abs|add|and|call|cmp|coerce|complex|concat|contains|delattr|delitem|delslice|del|dict|divmod|div|float|getattr|getitem|getslice|hash|hex|iadd|iand|iconcat|ifloordiv|ilshift|imatmul|imod|imul|init|int|invert|inv|ior|ipow|irshift|isub|iter|itruediv|ixor|len|long|lshift|mod|mul|neg|next|nonzero|oct|or|pos|pow|radd|rand|rcmp|rdivmod|rdiv|repeat|repr|rlshift|rmod|rmul|ror|rpow|rrshift|rshift|rsub|rxor|setattr|setitem|setslice|str|sub|xor)__\\b"
|
2017-03-21 22:07:39 +03:00
|
|
|
# types
|
2017-02-18 23:17:07 +03:00
|
|
|
- type: "\\b(bool|bytearray|bytes|classmethod|complex|dict|enumerate|filter|float|frozenset|int|list|map|memoryview|object|property|range|reversed|set|slice|staticmethod|str|super|tuple|type|zip)\\b"
|
2017-03-21 22:07:39 +03:00
|
|
|
# definitions
|
2018-10-02 20:54:29 +03:00
|
|
|
- identifier: "def [a-zA-Z_0-9]+"
|
2017-03-21 22:07:39 +03:00
|
|
|
# keywords
|
2021-11-15 08:54:56 +03:00
|
|
|
- statement: "\\b(and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|raise|return|try|while|with|yield)\\b"
|
2017-03-21 22:07:39 +03:00
|
|
|
# decorators
|
2023-10-16 12:08:37 +03:00
|
|
|
- preproc: "^\\s*@[^(]*"
|
2017-03-21 22:07:39 +03:00
|
|
|
# operators
|
2020-08-23 22:46:27 +03:00
|
|
|
- symbol.operator: "([~^.:;,+*|=!\\%@]|<|>|/|-|&)"
|
2017-03-21 22:07:39 +03:00
|
|
|
# parentheses
|
2018-10-02 20:54:29 +03:00
|
|
|
- symbol.brackets: "([(){}]|\\[|\\])"
|
2017-03-21 22:07:39 +03:00
|
|
|
# numbers
|
2020-12-16 02:57:28 +03:00
|
|
|
- constant.number: "\\b[0-9](_?[0-9])*(\\.([0-9](_?[0-9])*)?)?(e[0-9](_?[0-9])*)?\\b" # decimal
|
2020-08-23 22:46:27 +03:00
|
|
|
- constant.number: "\\b0b(_?[01])+\\b" # bin
|
|
|
|
- constant.number: "\\b0o(_?[0-7])+\\b" # oct
|
2021-08-15 17:00:41 +03:00
|
|
|
- constant.number: "\\b0x(_?[0-9a-fA-F])+\\b" # hex
|
2017-03-21 22:07:39 +03:00
|
|
|
|
2018-11-04 20:36:39 +03:00
|
|
|
- constant.string:
|
2017-03-27 00:24:02 +03:00
|
|
|
start: "\"\"\""
|
|
|
|
end: "\"\"\""
|
|
|
|
rules: []
|
|
|
|
|
2021-11-15 08:54:56 +03:00
|
|
|
- constant.string:
|
2017-03-27 00:24:02 +03:00
|
|
|
start: "'''"
|
|
|
|
end: "'''"
|
|
|
|
rules: []
|
|
|
|
|
2017-03-21 22:07:39 +03:00
|
|
|
- constant.string:
|
|
|
|
start: "\""
|
2020-08-23 22:46:27 +03:00
|
|
|
end: "(\"|$)"
|
2017-03-29 16:45:16 +03:00
|
|
|
skip: "\\\\."
|
2017-03-21 22:07:39 +03:00
|
|
|
rules:
|
|
|
|
- constant.specialChar: "\\\\."
|
|
|
|
|
|
|
|
- constant.string:
|
|
|
|
start: "'"
|
2020-08-23 22:46:27 +03:00
|
|
|
end: "('|$)"
|
2017-03-29 16:45:16 +03:00
|
|
|
skip: "\\\\."
|
2017-03-21 22:07:39 +03:00
|
|
|
rules:
|
|
|
|
- constant.specialChar: "\\\\."
|
|
|
|
|
2017-02-18 23:17:07 +03:00
|
|
|
- comment:
|
2017-03-21 22:07:39 +03:00
|
|
|
start: "#"
|
|
|
|
end: "$"
|
2020-10-06 23:56:08 +03:00
|
|
|
rules: # AKA Code tags (PEP 350)
|
2020-10-07 00:39:20 +03:00
|
|
|
- todo: "(TODO|FIXME|HACK|BUG|NOTE|FAQ|MNEMONIC|REQ|RFE|IDEA|PORT|\\?\\?\\?|!!!|GLOSS|SEE|TODOC|STAT|RVD|CRED):?"
|