[
  {
    "path": "CHANGES.txt",
    "content": "Revision 3.6.0 (2015-11-XX):\n\n    - Fix 'async def' highlighting. Patch by Joongi Kim\n    - Add dummy 'pythonInclude' group to avoid crashing standard pyrex.vim.\n      Patch by Antony Lee\n\nRevision 3.5.0 (2015-06-10):\n\n    - Add support for 'async ...' and 'await' keywords introduced in\n      Python 3.5. Patch by Ihor Gorobets\n\nRevision 3.3.7 (2014-12-27):\n\n    - Add support for Python 3 non-ASCII decorator names.\n      Patch by Victor Salgado\n\nRevision 3.3.6 (2013-11-18):\n\n    - Highlight 'yield from' statement introduced in Python 3.3. Reported by\n      Elizabeth Myers.\n\nRevision 3.3.5 (2013-08-31):\n\n    - Highlight 'import', 'from' and 'as' as include statements.\n      Patch by David Briscoe\n    - Added new option 'python_highlight_file_headers_as_comments' (disabled by\n      default) to highlight shebang and coding file headers as comments.\n      Proposed by David Briscoe.\n\nRevision 3.3.4 (2013-08-11):\n\n    - Highlight True and False as booleans. Patch by Yuri Habrusiev.\n\nRevision 3.3.3 (2013-06-02):\n\n   - More lightweight syntax reloading. Patch by Will Gray.\n\nRevision 3.3.2 (2013-06-01):\n\n   - Fixed behaviour of b:python_version_2 variable. Reported by Will Gray.\n\nRevision 3.3.1 (2013-05-12):\n\n   - The script was moved to its own repository at\n     https://github.com/hdima/python-syntax\n\nRevision 3.3.0 (2013-03-10):\n\n    - Merge Python 2 and Python 3 script versions into the single python.vim\n      script\n\nRevision 3.0.7 (2012-02-11):\n\n    - Updated email and URL\n\nRevision 2.6.7 (2012-02-11):\n\n    - Updated email and URL\n\nRevision 3.0.6 (2010-11-14):\n\n    - Fixed highlighting for str.format syntax. Patch by Anton Butanaev.\n\nRevision 3.0.5 (2010-11-11):\n\n    - Fixed highlighting for bytes. Patch by Anton Butanaev.\n    - Fixed highlighting for numbers.\n\nRevision 3.0.4 (2010-11-09):\n\n    - Fixed highlighting for raw bytes literals. Patch by Anton Butanaev.\n\nRevision 3.0.3 (2010-04-09):\n\n    - Applied patch by Andrea Riciputi with new configuration options\n      \"python_highlight_builtin_objs\" and \"python_highlight_builtin_funcs\"\n\nRevision 3.0.2 (2009-07-24):\n\n    - Applied patch by Caleb Adamantine which fixes highlighting for decorators\n\nRevision 3.0.1 (2009-05-03):\n\n    - Fixed compatibility with pyrex.vim\n\nRevision 3.0.0 (2008-12-07):\n\n    - Added support for non-ASCII identifiers;\n    - Added support for new text strings and binary data (bytes);\n    - Updated support for numeric literals;\n    - Updated support for str.format;\n    - Added new builtins introduced in Python 2.6: \"ascii\", \"exec\",\n      \"memoryview\", \"print\";\n    - Added new keyword \"nonlocal\";\n    - Removed exception \"StandardError\";\n    - Removed builtins: \"apply\", \"basestring\", \"buffer\", \"callable\", \"coerce\",\n      \"execfile\", \"file\", \"help\", \"intern\", \"long\", \"raw_input\", \"reduce\",\n      \"reload\", \"unichr\", \"unicode\", \"xrange\";\n\nRevision 2.6.6 (2010-04-09):\n\n    - Applied patch by Andrea Riciputi with new configuration options\n      \"python_highlight_builtin_objs\" and \"python_highlight_builtin_funcs\"\n\nRevision 2.6.5 (2009-07-24):\n\n    - Applied patch by Caleb Adamantine which fixes highlighting for decorators\n\nRevision 2.6.4 (2009-05-03):\n\n    - Fixed compatibility with pyrex.vim\n\nRevision 2.6.3 (2008-09-29):\n\n    - Return back trailing 'L' support for numbers. Actually it was changed for\n      future Python 3.0 syntax but in wrong file;\n\nRevision 2.6.2 (2008-09-22):\n\n    - Added \"VMSError\" exception;\n    - Added support for b\"...\" syntax;\n    - Added support for str.format brace escaping;\n\nRevision 2.6.1 (2008-09-21):\n\n    - Added new builtins and exceptions introduced in Python 2.6: \"bin\",\n      \"bytearray\", \"bytes\", \"format\", \"next\", \"BufferError\", \"BytesWarning\";\n    - Added builtin \"__debug__\";\n    - Added global variables: \"__doc__\", \"__file__\", \"__name__\", \"__package__\";\n    - Removed \"OverflowWarning\" (removed in Python 2.5);\n    - Added option \"python_print_as_function\" for highlight \"print\" as a\n      function;\n    - Added support for new integer literal syntax \"0o\" and \"0b\";\n    - Added support for string.Template syntax controlled by\n      \"python_highlight_string_templates\" option;\n    - Added support for str.format syntax controlled by\n      \"python_highlight_string_format\" option;\n    - Removed highlighting for \"--\" and \"++\" because it's a valid Python\n      expressions which can be interpreted as \"a + +b\";\n\nRevision 2.5.6 (2007-02-04):\n\n    - Applied patch by Pedro Algarvio to enable spell checking only for\n      the right spots (strings and comments);\n\nRevision 2.5.5 (2006-09-26):\n\n    - added new warnings (ImportWarning, UnicodeWarning)\n      introduced in Python 2.5;\n\nRevision 2.5.4 (2006-05-11):\n\n    - added highlighting for erroneous operators: &&, ||, ++, --, ===\n      (inspired by http://www.vim.org/tips/tip.php?tip_id=969, thanks\n      Jeroen Ruigrok van der Werven for the link);\n    - added highlighting for new 'with' statement and 'BaseException',\n      'GeneratorExit' exceptions introduced in Python 2.5;\n    - added highlighting for 'OverflowWarning' exception which had been\n      forgotten;\n    - returned more robust recognition for function names;\n\nRevision 2.5.3:\n\n    - fixed %-formatting highlighting for raw unicode strings;\n\nRevision 2.5.2:\n\n    - slightly simplified option handling;\n    - fixed regexp for indentation errors;\n    - fixed highlighting for backslashed symbols inside strings;\n    - added highlighting for trailing-space errors (triggered by new\n      option: python_highlight_space_errors);\n    - added highlighting for variable name errors;\n    - added highlighting for hex number errors;\n\nRevision 2.5.1 (2005-03-13):\n\n    - added new builtins 'all' and 'any' (Python 2.5a0)\n\nRevision 2.4.2 (2004-08-05):\n\n    - added highlighting for new @decorator syntax introduced in python 2.4a2\n\nRevision 2.4.1 (2004-03-17):\n\n    - new versioning scheme (based on python version numbers);\n    - added highlighting for new types/builtins introduced in python 2.4\n      (set, frozenset, reversed, sorted);\n    - new option added: python_slow_sync (set this for slow but more\n      robust syntax synchronization);\n    - added highlighting for doctests;\n\nRevision 1.19:\n\n    - new option added: python_highlight_indent_errors;\n    - python_highlight_all now not override previously set options,\n      for example code:\n          let python_highlight_indent_errors = 0\n          let python_highlight_all = 1\n      set all highlight options except indentation errors highlighting option;\n\nRevision 1.17:\n\n    - changed header, \"Based on...\" string added;\n\nRevision 1.16:\n\n    - added basestring builtin;\n\nRevision 1.15 (first public revision).\n\n    The changes since the original (vim6.1) python.vim are:\n\n    - changed string highlighting;\n    - enhanced special symbols highlighting inside strings;\n    - enhanced constant numbers highlighting;\n    - added optional highlighting for %-formatting inside strings;\n    - added highlighting for error conditions (wrong symbols in source file,\n      mixing spaces and tabs, wrong number values,\n      wrong %-formatting inside strings);\n    - added highlighting for magic comments: source code encoding\n      and #! (executable) strings;\n    - added highlighting for new exceptions and builtins introduced\n      in python 2.3;\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2002-2014 Dmitry Vasiliev <dima@hlabs.org>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.rst",
    "content": "Python syntax highlighting script for Vim\n=========================================\n\n.. contents::\n\nAbout\n-----\n\nEnhanced version of the original Python syntax highlighting script. Based on\n``python.vim`` from Vim 6.1 distribution by Neil Schemenauer (nas at python dot\nca). Check also `python.vim page on vim.org\n<http://www.vim.org/scripts/script.php?script_id=790>`_.\n\nPlease use the following channels for reporting bugs, offering suggestions or\nfeedback:\n\n- python.vim issue tracker: https://github.com/hdima/python-syntax/issues\n- Email: Dmitry Vasiliev (dima at hlabs.org)\n- Send a message or follow me for updates on Twitter: `@hdima\n  <https://twitter.com/hdima>`__\n\nFeatures\n--------\n\nChanges from the original ``python.vim`` are:\n\n- Added support for Python 3 syntax highlighting\n- Added ``:Python2Syntax`` and ``:Python3Syntax`` commands which allow to\n  switch between Python 2 and Python 3 syntaxes respectively without\n  reloads/restarts\n- Updated strings highlighting\n- Enhanced special symbols highlighting inside strings\n- Enhanced highlighting of numeric constants\n- Added optional highlighting for %-formatting inside strings\n- Added highlighting for magic comments: source code encoding and #!\n  (executable) strings\n- Added highlighting for new exceptions and builtins\n- Added highlighting for doctests\n- Added highlighting for new ``@decorator`` syntax introduced in Python 2.4a2\n- Added highlighting for the following errors:\n\n  - invalid symbols in source file\n  - mixing spaces and tabs\n  - invalid numeric constants\n  - invalid %-formatting inside strings\n  - invalid variable names\n  - trailing spaces (triggered by the ``python_highlight_space_errors`` option)\n\nSome of these features was later backported into the original ``python.vim``.\n\nHow to install\n--------------\n\nThe easiest installation method is to place `syntax/python.vim\n<https://github.com/hdima/python-syntax/blob/master/syntax/python.vim>`_ script\ninto your ``~/.vim/syntax/`` directory.\n\nYou can also use `Pathogen <https://github.com/tpope/vim-pathogen>`_ or `Vundle\n<https://github.com/gmarik/vundle>`_ plugin managers in which case you can\ninstall the whole `python.vim repository\n<https://github.com/hdima/python-syntax>`_ into the corresponding plugins\ndirectory.\n\nScript options\n--------------\n\nThere are two commands to enable or disable an option:\n\n``:let OPTION_NAME = 1``\n  Enable option\n``:let OPTION_NAME = 0``\n  Disable option\n\nFor example to enable all syntax highlighting features you can place the\nfollowing command in your ``~/.vimrc`` script::\n\n  let python_highlight_all = 1\n\nOption and commands to select Python version\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n``python_version_2``\n  Enable highlighting for Python 2 (Python 3 highlighting is enabled by\n  default). Also can be set as a local to buffer ``b:python_version_2``\n  variable.\n\nThe following local to buffer commands can be used to switch between two\nhighlighting modes:\n\n``:Python2Syntax``\n  Switch to Python 2 highlighting mode\n``:Python3Syntax``\n  Switch to Python 3 highlighting mode\n\nOptions used by the script\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n``python_highlight_builtins``\n  Highlight builtin functions and objects\n``python_highlight_builtin_objs``\n  Highlight builtin objects only\n``python_highlight_builtin_funcs``\n  Highlight builtin functions only\n``python_highlight_exceptions``\n  Highlight standard exceptions\n``python_highlight_string_formatting``\n  Highlight ``%`` string formatting\n``python_highlight_string_format``\n  Highlight syntax of ``str.format`` syntax\n``python_highlight_string_templates``\n  Highlight syntax of ``string.Template``\n``python_highlight_indent_errors``\n  Highlight indentation errors\n``python_highlight_space_errors``\n  Highlight trailing spaces\n``python_highlight_doctests``\n  Highlight doc-tests\n``python_print_as_function``\n  Highlight ``print`` statement as function for Python 2\n``python_highlight_file_headers_as_comments``\n  Highlight shebang and coding headers as comments\n``python_highlight_all``\n  Enable all the options above. *NOTE: This option don't override any\n  previously set options*\n``python_slow_sync``\n  Can be set to 0 for slow machines\n\nContributors\n------------\n\nList of the contributors in alphabetical order:\n\n- `Andrea Riciputi <https://github.com/mrrech>`_\n- Anton Butanaev\n- `Antony Lee <https://github.com/anntzer>`_\n- Caleb Adamantine\n- `David Briscoe <https://github.com/idbrii>`_\n- `Elizabeth Myers <https://github.com/Elizafox>`_\n- `Ihor Gorobets <https://github.com/iho>`_\n- `Jeroen Ruigrok van der Werven <https://github.com/ashemedai>`_\n- `John Eikenberry <https://github.com/eikenb>`_\n- `Joongi Kim <https://github.com/achimnol>`_\n- `Marc Weber <https://github.com/MarcWeber>`_\n- `Pedro Algarvio <https://github.com/s0undt3ch>`_\n- `Victor Salgado <https://github.com/mcsalgado>`_\n- `Will Gray <https://github.com/graywh>`_\n- `Yuri Habrusiev <https://github.com/yuriihabrusiev>`_\n"
  },
  {
    "path": "TODO.txt",
    "content": "Now\n===\n\n- It seems python.vim doesn't highlight special characters inside strings by\n  default but only when reloaded? Or maybe only when set to Python 2\n  by default?\n\n- Add support for slice syntax:\n  http://img155.imageshack.us/img155/7767/screenshotgs.png\n\n- When we check spelling we don't need to check the whole strings only the\n  content. For example we don't need to check 'u' for spelling in strings\n  like this: u\"Some text\";\n\nLater\n=====\n\n- Need more accurate way to handle indentation errors. For example\n  mixing spaces and tabs may be used for pretty formatting;\n\n- Need more checks for errors like: absent brackets, absent quotes,\n  back slash at the end of strings;\n\n- pythonError tips from\n  http://blog.sontek.net/2008/05/11/python-with-a-modular-ide-vim/ (reported by\n  Giuliani Deon Sanches)\n"
  },
  {
    "path": "folding-ideas/python.vim.1.13",
    "content": "\" Vim syntax file\n\" Language:\tPython\n\" Maintainer:\tNeil Schemenauer <nas at python dot ca>\n\" Updated:\t$Date: 2003/01/12 14:17:34 $\n\" Updated by:\tDmitry Vasiliev <dima at hlabs dot org>\n\" Filenames:\t*.py\n\" $Revision: 1.13 $\n\"\n\" Options:\n\" For folded functions and classes:\n\"\n\"    let python_folding = 1\n\"\n\" For highlighted builtin functions:\n\"\n\"    let python_highlight_builtins = 1\n\"\n\" For highlighted standard exceptions:\n\"\n\"    let python_highlight_exceptions = 1\n\"\n\" For highlighted string formatting:\n\"\n\"    let python_highlight_string_formatting = 1\n\"\n\" If you want all possible Python highlighting:\n\"\n\"    let python_highlight_all = 1\n\"\n\" TODO: Check more errors?\n\n\" For version 5.x: Clear all syntax items\n\" For version 6.x: Quit when a syntax file was already loaded\nif version < 600\n  syntax clear\nelseif exists(\"b:current_syntax\")\n  finish\nendif\n\nif exists(\"python_highlight_all\")\n  let python_folding = 1\n  let python_highlight_builtins = 1\n  let python_highlight_exceptions = 1\n  let python_highlight_string_formatting = 1\nendif\n\n\" Keywords\nsyn keyword pythonStatement\tbreak continue del\nsyn keyword pythonStatement\texec return\nsyn keyword pythonStatement\tpass print raise\nsyn keyword pythonStatement\tglobal assert\nsyn keyword pythonStatement\tlambda yield\nif exists(\"python_folding\") && has(\"folding\")\n  syn match pythonStatement\t\"\\<\\(def\\|class\\)\\>\" display nextgroup=pythonFunction skipwhite\nelse\n  syn keyword pythonStatement\tdef class nextgroup=pythonFunction skipwhite\nendif\nsyn match   pythonFunction\t\"\\h\\w*\" display contained\nsyn keyword pythonRepeat\tfor while\nsyn keyword pythonConditional\tif elif else\nsyn keyword pythonImport\timport from as\nsyn keyword pythonException\ttry except finally\nsyn keyword pythonOperator\tand in is not or\n\n\" Comments\nsyn match   pythonComment\t\"#.*$\" display contains=pythonTodo\nsyn keyword pythonTodo\t\tTODO FIXME XXX contained\n\n\" Erroneous characters that cannont be in a python program\nsyn match pythonError\t\t\"[@$?]\" display\n\" Mixing spaces and tabs is bad\nsyn match pythonIndentError\t\"^\\s*\\(\\t \\| \\t\\)\\s*\" display\n\n\" Strings\nsyn region pythonString\t\tstart=+'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ contains=pythonEscape,pythonEscapeError\nsyn region pythonString\t\tstart=+\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ contains=pythonEscape,pythonEscapeError\nsyn region pythonString\t\tstart=+\"\"\"+ end=+\"\"\"+ contains=pythonEscape,pythonEscapeError\nsyn region pythonString\t\tstart=+'''+ end=+'''+ contains=pythonEscape,pythonEscapeError\n\nsyn match  pythonEscape\t\t+\\\\[abfnrtv'\"\\\\]+ display contained\nsyn match  pythonEscapeError\t+\\\\[^abfnrtv'\"\\\\]+ display contained\nsyn match  pythonEscape\t\t\"\\\\\\o\\o\\=\\o\\=\" display contained\nsyn match  pythonEscapeError\t\"\\\\\\o\\{,2}[89]\" display contained\nsyn match  pythonEscape\t\t\"\\\\x\\x\\{2}\" display contained\nsyn match  pythonEscapeError\t\"\\\\x\\x\\=\\X\" display contained\nsyn match  pythonEscape\t\t\"\\\\$\"\n\n\" Unicode strings\nsyn region pythonUniString\tstart=+[uU]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError\nsyn region pythonUniString\tstart=+[uU]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError\nsyn region pythonUniString\tstart=+[uU]\"\"\"+ end=+\"\"\"+ contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError\nsyn region pythonUniString\tstart=+[uU]'''+ end=+'''+ contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError\n\nsyn match  pythonUniEscape\t\"\\\\u\\x\\{4}\" display contained\nsyn match  pythonUniEscapeError\t\"\\\\u\\x\\{,3}\\X\" display contained\nsyn match  pythonUniEscape\t\"\\\\U\\x\\{8}\" display contained\nsyn match  pythonUniEscapeError\t\"\\\\U\\x\\{,7}\\X\" display contained\nsyn match  pythonUniEscape\t\"\\\\N{[A-Z ]\\+}\" display contained\nsyn match  pythonUniEscapeError\t\"\\\\N{[^A-Z ]\\+}\" display contained\n\n\" Raw strings\nsyn region pythonRawString\tstart=+[rR]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ contains=pythonRawEscape\nsyn region pythonRawString\tstart=+[rR]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ contains=pythonRawEscape\nsyn region pythonRawString\tstart=+[rR]\"\"\"+ end=+\"\"\"+\nsyn region pythonRawString\tstart=+[rR]'''+ end=+'''+\n\nsyn match pythonRawEscape\t+\\\\['\"]+ display transparent contained\n\n\" Unicode raw strings\nsyn region pythonUniRawString\tstart=+[uU][rR]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError\nsyn region pythonUniRawString\tstart=+[uU][rR]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError\nsyn region pythonUniRawString\tstart=+[uU][rR]\"\"\"+ end=+\"\"\"+ contains=pythonUniRawEscape,pythonUniRawEscapeError\nsyn region pythonUniRawString\tstart=+[uU][rR]'''+ end=+'''+ contains=pythonUniRawEscape,pythonUniRawEscapeError\n\nsyn match  pythonUniRawEscape\t\t\"\\([^\\\\]\\(\\\\\\\\\\)*\\)\\@<=\\\\u\\x\\{4}\" display contained\nsyn match  pythonUniRawEscapeError\t\"\\([^\\\\]\\(\\\\\\\\\\)*\\)\\@<=\\\\u\\x\\{,3}\\X\" display contained\n\nif exists(\"python_highlight_string_formatting\")\n  \" String formatting\n  syn match pythonStrFormat\t\"%\\(([^)]\\+)\\)\\=[-#0 +]\\=\\d*\\(\\.\\d\\+\\)\\=[hlL]\\=[diouxXeEfFgGcrs%]\" contained containedin=pythonString,pythonUniString,pythonRawString\n  syn match pythonStrFormat\t\"%[-#0 +]\\=\\(\\*\\|\\d\\+\\)\\=\\(\\.\\(\\*\\|\\d\\+\\)\\)\\=[hlL]\\=[diouxXeEfFgGcrs%]\" contained containedin=pythonString,pythonUniString,pythonRawString\nendif\n\n\" Numbers (ints, longs, floats, complex)\nsyn match   pythonNumber\t\"\\<0[xX]\\x\\+[lL]\\=\\>\" display\nsyn match   pythonNumber\t\"\\<\\d\\+[lLjJ]\\=\\>\" display\nsyn match   pythonFloat\t\t\"\\.\\d\\+\\([eE][+-]\\=\\d\\+\\)\\=[jJ]\\=\\>\" display\nsyn match   pythonFloat\t\t\"\\<\\d\\+[eE][+-]\\=\\d\\+[jJ]\\=\\>\" display\nsyn match   pythonFloat\t\t\"\\<\\d\\+\\.\\d*\\([eE][+-]\\=\\d\\+\\)\\=[jJ]\\=\" display\nsyn match   pythonOctalError\t\"\\<0\\o*[89]\\d*[lLjJ]\\=\\>\" display\n\nif exists(\"python_highlight_builtins\")\n  \" Builtin functions, types and objects, not really part of the syntax\n  syn keyword pythonBuiltinObj\tTrue False Ellipsis None NotImplemented\n  syn keyword pythonBuiltinFunc\tbool __import__ abs\n  syn keyword pythonBuiltinFunc\tapply buffer callable chr classmethod cmp\n  syn keyword pythonBuiltinFunc\tcoerce compile complex delattr dict dir divmod\n  syn keyword pythonBuiltinFunc\teval execfile file filter float getattr globals\n  syn keyword pythonBuiltinFunc\thasattr hash hex id input int intern isinstance\n  syn keyword pythonBuiltinFunc\tissubclass iter len list locals long map max\n  syn keyword pythonBuiltinFunc\tmin object oct open ord pow property range\n  syn keyword pythonBuiltinFunc\traw_input reduce reload repr round setattr\n  syn keyword pythonBuiltinFunc\tslice staticmethod str super tuple type unichr\n  syn keyword pythonBuiltinFunc\tunicode vars xrange zip\nendif\n\nif exists(\"python_highlight_exceptions\")\n  \" Builtin exceptions and warnings\n  syn keyword pythonExClass\tArithmeticError AssertionError AttributeError\n  syn keyword pythonExClass\tDeprecationWarning EOFError EnvironmentError\n  syn keyword pythonExClass\tException FloatingPointError IOError\n  syn keyword pythonExClass\tImportError IndentiationError IndexError\n  syn keyword pythonExClass\tKeyError KeyboardInterrupt LookupError\n  syn keyword pythonExClass\tMemoryError NameError NotImplementedError\n  syn keyword pythonExClass\tOSError OverflowError OverflowWarning\n  syn keyword pythonExClass\tReferenceError RuntimeError RuntimeWarning\n  syn keyword pythonExClass\tStandardError StopIteration SyntaxError\n  syn keyword pythonExClass\tSyntaxWarning SystemError SystemExit TabError\n  syn keyword pythonExClass\tTypeError UnboundLocalError UnicodeError\n  syn keyword pythonExClass\tUserWarning ValueError Warning WindowsError\n  syn keyword pythonExClass\tZeroDivisionError\nendif\n\nsyn sync clear\nif exists(\"python_folding\") && has(\"folding\")\n  syn sync fromstart\n\n  \"syn match pythonFold \"^\\(\\s*\\)\\(class\\|def\\)\\s.*\\(\\(\\n\\s*\\)*\\n\\1\\s\\+\\S.*\\)\\+\" transparent fold\n  syn region pythonFold start=\"^\\z(\\s*\\)\\(class\\|def\\)\\s\" skip=\"^\\z1\\s\\+\\S\" end=\"^\\s*\\S\"me=s-1 transparent fold\n  syn region pythonFold start=\"{\" end=\"}\" transparent fold\n  syn region pythonFold start=\"\\[\" end=\"\\]\" transparent fold\nelse\n  \" This is fast but code inside triple quoted strings screws it up. It\n  \" is impossible to fix because the only way to know if you are inside a\n  \" triple quoted string is to start from the beginning of the file. If\n  \" you have a fast machine you can try uncommenting the \"sync minlines\"\n  \" and commenting out the rest.\n  syn sync match pythonSync grouphere NONE \"):$\"\n  syn sync maxlines=200\n  \"syn sync minlines=2000\nendif\n\nif version >= 508 || !exists(\"did_python_syn_inits\")\n  if version <= 508\n    let did_python_syn_inits = 1\n    command -nargs=+ HiLink hi link <args>\n  else\n    command -nargs=+ HiLink hi def link <args>\n  endif\n\n  HiLink pythonStatement\tStatement\n  HiLink pythonImport\t\tStatement\n  HiLink pythonFunction\t\tFunction\n  HiLink pythonConditional\tConditional\n  HiLink pythonRepeat\t\tRepeat\n  HiLink pythonException\tException\n  HiLink pythonOperator\t\tOperator\n\n  HiLink pythonComment\t\tComment\n  HiLink pythonTodo\t\tTodo\n\n  HiLink pythonError\t\tError\n  HiLink pythonIndentError\tError\n\n  HiLink pythonString\t\tString\n  HiLink pythonUniString\tString\n  HiLink pythonRawString\tString\n  HiLink pythonUniRawString\tString\n\n  HiLink pythonEscape\t\t\tSpecial\n  HiLink pythonEscapeError\t\tError\n  HiLink pythonUniEscape\t\tSpecial\n  HiLink pythonUniEscapeError\t\tError\n  HiLink pythonUniRawEscape\t\tSpecial\n  HiLink pythonUniRawEscapeError\tError\n\n  if exists(\"python_highlight_string_formatting\")\n    HiLink pythonStrFormat\tSpecial\n  endif\n\n  HiLink pythonNumber\t\tNumber\n  HiLink pythonFloat\t\tFloat\n  HiLink pythonOctalError\tError\n\n  if exists(\"python_highlight_builtins\")\n    HiLink pythonBuiltinObj\tStructure\n    HiLink pythonBuiltinFunc\tFunction\n  endif\n\n  if exists(\"python_highlight_exceptions\")\n    HiLink pythonExClass\tStructure\n  endif\n\n  delcommand HiLink\nendif\n\nlet b:current_syntax = \"python\"\n"
  },
  {
    "path": "folding-ideas/python.vim.1.14",
    "content": "\" Vim syntax file\n\" Language:\tPython\n\" Maintainer:\tNeil Schemenauer <nas at python dot ca>\n\" Updated:\t$Date: 2003/01/12 15:35:02 $\n\" Updated by:\tDmitry Vasiliev <dima at hlabs dot org>\n\" Filenames:\t*.py\n\" $Revision: 1.14 $\n\"\n\" Options:\n\" For folded functions and classes:\n\"\n\"    let python_folding = 1\n\"\n\" For highlighted builtin functions:\n\"\n\"    let python_highlight_builtins = 1\n\"\n\" For highlighted standard exceptions:\n\"\n\"    let python_highlight_exceptions = 1\n\"\n\" For highlighted string formatting:\n\"\n\"    let python_highlight_string_formatting = 1\n\"\n\" If you want all possible Python highlighting:\n\"\n\"    let python_highlight_all = 1\n\"\n\" TODO: Check more errors?\n\n\" For version 5.x: Clear all syntax items\n\" For version 6.x: Quit when a syntax file was already loaded\nif version < 600\n  syntax clear\nelseif exists(\"b:current_syntax\")\n  finish\nendif\n\nif exists(\"python_highlight_all\")\n  let python_folding = 1\n  let python_highlight_builtins = 1\n  let python_highlight_exceptions = 1\n  let python_highlight_string_formatting = 1\nendif\n\n\" Keywords\nsyn keyword pythonStatement\tbreak continue del\nsyn keyword pythonStatement\texec return\nsyn keyword pythonStatement\tpass print raise\nsyn keyword pythonStatement\tglobal assert\nsyn keyword pythonStatement\tlambda yield\nif exists(\"python_folding\") && has(\"folding\")\n  syn match pythonStatement\t\"\\<\\(def\\|class\\)\\>\" display nextgroup=pythonFunction skipwhite\nelse\n  syn keyword pythonStatement\tdef class nextgroup=pythonFunction skipwhite\nendif\nsyn match   pythonFunction\t\"\\h\\w*\" display contained\nsyn keyword pythonRepeat\tfor while\nsyn keyword pythonConditional\tif elif else\nsyn keyword pythonImport\timport from as\nsyn keyword pythonException\ttry except finally\nsyn keyword pythonOperator\tand in is not or\n\n\" Comments\nsyn match   pythonComment\t\"#.*$\" display contains=pythonTodo\nsyn keyword pythonTodo\t\tTODO FIXME XXX contained\n\n\" Erroneous characters that cannont be in a python program\nsyn match pythonError\t\t\"[@$?]\" display\n\" Mixing spaces and tabs is bad\nsyn match pythonError\t\"^\\s*\\(\\t \\| \\t\\)\\s*\" display\n\n\" Strings\nsyn region pythonString\t\tstart=+'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ contains=pythonEscape,pythonEscapeError\nsyn region pythonString\t\tstart=+\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ contains=pythonEscape,pythonEscapeError\nsyn region pythonString\t\tstart=+\"\"\"+ end=+\"\"\"+ contains=pythonEscape,pythonEscapeError\nsyn region pythonString\t\tstart=+'''+ end=+'''+ contains=pythonEscape,pythonEscapeError\n\nsyn match  pythonEscape\t\t+\\\\[abfnrtv'\"\\\\]+ display contained\nsyn match  pythonEscapeError\t+\\\\[^abfnrtv'\"\\\\]+ display contained\nsyn match  pythonEscape\t\t\"\\\\\\o\\o\\=\\o\\=\" display contained\nsyn match  pythonEscapeError\t\"\\\\\\o\\{,2}[89]\" display contained\nsyn match  pythonEscape\t\t\"\\\\x\\x\\{2}\" display contained\nsyn match  pythonEscapeError\t\"\\\\x\\x\\=\\X\" display contained\nsyn match  pythonEscape\t\t\"\\\\$\"\n\n\" Unicode strings\nsyn region pythonUniString\tstart=+[uU]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError\nsyn region pythonUniString\tstart=+[uU]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError\nsyn region pythonUniString\tstart=+[uU]\"\"\"+ end=+\"\"\"+ contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError\nsyn region pythonUniString\tstart=+[uU]'''+ end=+'''+ contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError\n\nsyn match  pythonUniEscape\t\"\\\\u\\x\\{4}\" display contained\nsyn match  pythonUniEscapeError\t\"\\\\u\\x\\{,3}\\X\" display contained\nsyn match  pythonUniEscape\t\"\\\\U\\x\\{8}\" display contained\nsyn match  pythonUniEscapeError\t\"\\\\U\\x\\{,7}\\X\" display contained\nsyn match  pythonUniEscape\t\"\\\\N{[A-Z ]\\+}\" display contained\nsyn match  pythonUniEscapeError\t\"\\\\N{[^A-Z ]\\+}\" display contained\n\n\" Raw strings\nsyn region pythonRawString\tstart=+[rR]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ contains=pythonRawEscape\nsyn region pythonRawString\tstart=+[rR]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ contains=pythonRawEscape\nsyn region pythonRawString\tstart=+[rR]\"\"\"+ end=+\"\"\"+\nsyn region pythonRawString\tstart=+[rR]'''+ end=+'''+\n\nsyn match pythonRawEscape\t+\\\\['\"]+ display transparent contained\n\n\" Unicode raw strings\nsyn region pythonUniRawString\tstart=+[uU][rR]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError\nsyn region pythonUniRawString\tstart=+[uU][rR]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError\nsyn region pythonUniRawString\tstart=+[uU][rR]\"\"\"+ end=+\"\"\"+ contains=pythonUniRawEscape,pythonUniRawEscapeError\nsyn region pythonUniRawString\tstart=+[uU][rR]'''+ end=+'''+ contains=pythonUniRawEscape,pythonUniRawEscapeError\n\nsyn match  pythonUniRawEscape\t\t\"\\([^\\\\]\\(\\\\\\\\\\)*\\)\\@<=\\\\u\\x\\{4}\" display contained\nsyn match  pythonUniRawEscapeError\t\"\\([^\\\\]\\(\\\\\\\\\\)*\\)\\@<=\\\\u\\x\\{,3}\\X\" display contained\n\nif exists(\"python_highlight_string_formatting\")\n  \" String formatting\n  syn match pythonStrFormat\t\"%\\(([^)]\\+)\\)\\=[-#0 +]\\=\\d*\\(\\.\\d\\+\\)\\=[hlL]\\=[diouxXeEfFgGcrs%]\" contained containedin=pythonString,pythonUniString,pythonRawString\n  syn match pythonStrFormat\t\"%[-#0 +]\\=\\(\\*\\|\\d\\+\\)\\=\\(\\.\\(\\*\\|\\d\\+\\)\\)\\=[hlL]\\=[diouxXeEfFgGcrs%]\" contained containedin=pythonString,pythonUniString,pythonRawString\nendif\n\n\" Numbers (ints, longs, floats, complex)\nsyn match   pythonNumber\t\"\\<0[xX]\\x\\+[lL]\\=\\>\" display\nsyn match   pythonNumber\t\"\\<\\d\\+[lLjJ]\\=\\>\" display\nsyn match   pythonFloat\t\t\"\\.\\d\\+\\([eE][+-]\\=\\d\\+\\)\\=[jJ]\\=\\>\" display\nsyn match   pythonFloat\t\t\"\\<\\d\\+[eE][+-]\\=\\d\\+[jJ]\\=\\>\" display\nsyn match   pythonFloat\t\t\"\\<\\d\\+\\.\\d*\\([eE][+-]\\=\\d\\+\\)\\=[jJ]\\=\" display\nsyn match   pythonOctalError\t\"\\<0\\o*[89]\\d*[lLjJ]\\=\\>\" display\n\nif exists(\"python_highlight_builtins\")\n  \" Builtin functions, types and objects, not really part of the syntax\n  syn keyword pythonBuiltinObj\tTrue False Ellipsis None NotImplemented\n  syn keyword pythonBuiltinFunc\tbool __import__ abs\n  syn keyword pythonBuiltinFunc\tapply buffer callable chr classmethod cmp\n  syn keyword pythonBuiltinFunc\tcoerce compile complex delattr dict dir divmod\n  syn keyword pythonBuiltinFunc\teval execfile file filter float getattr globals\n  syn keyword pythonBuiltinFunc\thasattr hash hex id input int intern isinstance\n  syn keyword pythonBuiltinFunc\tissubclass iter len list locals long map max\n  syn keyword pythonBuiltinFunc\tmin object oct open ord pow property range\n  syn keyword pythonBuiltinFunc\traw_input reduce reload repr round setattr\n  syn keyword pythonBuiltinFunc\tslice staticmethod str super tuple type unichr\n  syn keyword pythonBuiltinFunc\tunicode vars xrange zip\nendif\n\nif exists(\"python_highlight_exceptions\")\n  \" Builtin exceptions and warnings\n  syn keyword pythonExClass\tArithmeticError AssertionError AttributeError\n  syn keyword pythonExClass\tDeprecationWarning EOFError EnvironmentError\n  syn keyword pythonExClass\tException FloatingPointError IOError\n  syn keyword pythonExClass\tImportError IndentiationError IndexError\n  syn keyword pythonExClass\tKeyError KeyboardInterrupt LookupError\n  syn keyword pythonExClass\tMemoryError NameError NotImplementedError\n  syn keyword pythonExClass\tOSError OverflowError OverflowWarning\n  syn keyword pythonExClass\tReferenceError RuntimeError RuntimeWarning\n  syn keyword pythonExClass\tStandardError StopIteration SyntaxError\n  syn keyword pythonExClass\tSyntaxWarning SystemError SystemExit TabError\n  syn keyword pythonExClass\tTypeError UnboundLocalError UnicodeError\n  syn keyword pythonExClass\tUserWarning ValueError Warning WindowsError\n  syn keyword pythonExClass\tZeroDivisionError\nendif\n\nsyn sync clear\nif exists(\"python_folding\") && has(\"folding\")\n  syn sync fromstart\n\n  \"syn match pythonFold \"^\\(\\s*\\)\\(class\\|def\\)\\s.*\\(\\(\\n\\s*\\)*\\n\\1\\s\\+\\S.*\\)\\+\" transparent fold\n  syn region pythonFold start=\"^\\z(\\s*\\)\\(class\\|def\\)\\s\" skip=\"\\(\\s*\\n\\)\\+\\z1\\s\\+\\(\\S\\|\\%$\\)\" end=\"\\(\\s*\\n\\)\\+\\s*\\(\\S\\|\\%$\\)\"me=s-1 transparent fold\n  syn region pythonFold start=\"{\" end=\"}\" transparent fold\n  syn region pythonFold start=\"\\[\" end=\"\\]\" transparent fold\nelse\n  \" This is fast but code inside triple quoted strings screws it up. It\n  \" is impossible to fix because the only way to know if you are inside a\n  \" triple quoted string is to start from the beginning of the file. If\n  \" you have a fast machine you can try uncommenting the \"sync minlines\"\n  \" and commenting out the rest.\n  syn sync match pythonSync grouphere NONE \"):$\"\n  syn sync maxlines=200\n  \"syn sync minlines=2000\nendif\n\nif version >= 508 || !exists(\"did_python_syn_inits\")\n  if version <= 508\n    let did_python_syn_inits = 1\n    command -nargs=+ HiLink hi link <args>\n  else\n    command -nargs=+ HiLink hi def link <args>\n  endif\n\n  HiLink pythonStatement\tStatement\n  HiLink pythonImport\t\tStatement\n  HiLink pythonFunction\t\tFunction\n  HiLink pythonConditional\tConditional\n  HiLink pythonRepeat\t\tRepeat\n  HiLink pythonException\tException\n  HiLink pythonOperator\t\tOperator\n\n  HiLink pythonComment\t\tComment\n  HiLink pythonTodo\t\tTodo\n\n  HiLink pythonError\t\tError\n\n  HiLink pythonString\t\tString\n  HiLink pythonUniString\tString\n  HiLink pythonRawString\tString\n  HiLink pythonUniRawString\tString\n\n  HiLink pythonEscape\t\t\tSpecial\n  HiLink pythonEscapeError\t\tError\n  HiLink pythonUniEscape\t\tSpecial\n  HiLink pythonUniEscapeError\t\tError\n  HiLink pythonUniRawEscape\t\tSpecial\n  HiLink pythonUniRawEscapeError\tError\n\n  if exists(\"python_highlight_string_formatting\")\n    HiLink pythonStrFormat\tSpecial\n  endif\n\n  HiLink pythonNumber\t\tNumber\n  HiLink pythonFloat\t\tFloat\n  HiLink pythonOctalError\tError\n\n  if exists(\"python_highlight_builtins\")\n    HiLink pythonBuiltinObj\tStructure\n    HiLink pythonBuiltinFunc\tFunction\n  endif\n\n  if exists(\"python_highlight_exceptions\")\n    HiLink pythonExClass\tStructure\n  endif\n\n  delcommand HiLink\nendif\n\nlet b:current_syntax = \"python\"\n"
  },
  {
    "path": "syntax/python.vim",
    "content": "\" Vim syntax file\n\" Language:             Python\n\" Current Maintainer:   Dmitry Vasiliev <dima at hlabs dot org>\n\" Previous Maintainer:  Neil Schemenauer <nas at python dot ca>\n\" URL:                  https://github.com/hdima/python-syntax\n\" Last Change:          2015-11-01\n\" Filenames:            *.py\n\" Version:              3.6.0\n\"\n\" Based on python.vim (from Vim 6.1 distribution)\n\" by Neil Schemenauer <nas at python dot ca>\n\"\n\" Please use the following channels for reporting bugs, offering suggestions or\n\" feedback:\n\n\" - python.vim issue tracker: https://github.com/hdima/python-syntax/issues\n\" - Email: Dmitry Vasiliev (dima at hlabs.org)\n\" - Send a message or follow me for updates on Twitter: `@hdima\n\"   <https://twitter.com/hdima>`__\n\"\n\" Contributors\n\" ============\n\"\n\" List of the contributors in alphabetical order:\n\"\n\"   Andrea Riciputi\n\"   Anton Butanaev\n\"   Antony Lee\n\"   Caleb Adamantine\n\"   David Briscoe\n\"   Elizabeth Myers\n\"   Ihor Gorobets\n\"   Jeroen Ruigrok van der Werven\n\"   John Eikenberry\n\"   Joongi Kim\n\"   Marc Weber\n\"   Pedro Algarvio\n\"   Victor Salgado\n\"   Will Gray\n\"   Yuri Habrusiev\n\"\n\" Options\n\" =======\n\"\n\"    :let OPTION_NAME = 1                   Enable option\n\"    :let OPTION_NAME = 0                   Disable option\n\"\n\"\n\" Option to select Python version\n\" -------------------------------\n\"\n\"    python_version_2                       Enable highlighting for Python 2\n\"                                           (Python 3 highlighting is enabled\n\"                                           by default). Can also be set as\n\"                                           a buffer (b:python_version_2)\n\"                                           variable.\n\"\n\"    You can also use the following local to buffer commands to switch\n\"    between two highlighting modes:\n\"\n\"    :Python2Syntax                         Switch to Python 2 highlighting\n\"                                           mode\n\"    :Python3Syntax                         Switch to Python 3 highlighting\n\"                                           mode\n\"\n\" Option names used by the script\n\" -------------------------------\n\"\n\"    python_highlight_builtins              Highlight builtin functions and\n\"                                           objects\n\"      python_highlight_builtin_objs        Highlight builtin objects only\n\"      python_highlight_builtin_funcs       Highlight builtin functions only\n\"    python_highlight_exceptions            Highlight standard exceptions\n\"    python_highlight_string_formatting     Highlight % string formatting\n\"    python_highlight_string_format         Highlight str.format syntax\n\"    python_highlight_string_templates      Highlight string.Template syntax\n\"    python_highlight_indent_errors         Highlight indentation errors\n\"    python_highlight_space_errors          Highlight trailing spaces\n\"    python_highlight_doctests              Highlight doc-tests\n\"    python_print_as_function               Highlight 'print' statement as\n\"                                           function for Python 2\n\"    python_highlight_file_headers_as_comments\n\"                                           Highlight shebang and coding\n\"                                           headers as comments\n\"\n\"    python_highlight_all                   Enable all the options above\n\"                                           NOTE: This option don't override\n\"                                           any previously set options\n\"\n\"    python_slow_sync                       Can be set to 0 for slow machines\n\"\n\n\" For version 5.x: Clear all syntax items\n\" For versions greater than 6.x: Quit when a syntax file was already loaded\nif version < 600\n  syntax clear\nelseif exists(\"b:current_syntax\")\n  finish\nendif\n\n\"\n\" Commands\n\"\ncommand! -buffer Python2Syntax let b:python_version_2 = 1 | let &syntax=&syntax\ncommand! -buffer Python3Syntax let b:python_version_2 = 0 | let &syntax=&syntax\n\n\" Enable option if it's not defined\nfunction! s:EnableByDefault(name)\n  if !exists(a:name)\n    let {a:name} = 1\n  endif\nendfunction\n\n\" Check if option is enabled\nfunction! s:Enabled(name)\n  return exists(a:name) && {a:name}\nendfunction\n\n\" Is it Python 2 syntax?\nfunction! s:Python2Syntax()\n  if exists(\"b:python_version_2\")\n      return b:python_version_2\n  endif\n  return s:Enabled(\"g:python_version_2\")\nendfunction\n\n\"\n\" Default options\n\"\n\ncall s:EnableByDefault(\"g:python_slow_sync\")\n\nif s:Enabled(\"g:python_highlight_all\")\n  call s:EnableByDefault(\"g:python_highlight_builtins\")\n  if s:Enabled(\"g:python_highlight_builtins\")\n    call s:EnableByDefault(\"g:python_highlight_builtin_objs\")\n    call s:EnableByDefault(\"g:python_highlight_builtin_funcs\")\n  endif\n  call s:EnableByDefault(\"g:python_highlight_exceptions\")\n  call s:EnableByDefault(\"g:python_highlight_string_formatting\")\n  call s:EnableByDefault(\"g:python_highlight_string_format\")\n  call s:EnableByDefault(\"g:python_highlight_string_templates\")\n  call s:EnableByDefault(\"g:python_highlight_indent_errors\")\n  call s:EnableByDefault(\"g:python_highlight_space_errors\")\n  call s:EnableByDefault(\"g:python_highlight_doctests\")\n  call s:EnableByDefault(\"g:python_print_as_function\")\nendif\n\n\"\n\" Keywords\n\"\n\nsyn keyword pythonStatement     break continue del\nsyn keyword pythonStatement     exec return\nsyn keyword pythonStatement     pass raise\nsyn keyword pythonStatement     global assert\nsyn keyword pythonStatement     lambda\nsyn keyword pythonStatement     with\nsyn keyword pythonStatement     def class nextgroup=pythonFunction skipwhite\nsyn keyword pythonRepeat        for while\nsyn keyword pythonConditional   if elif else\n\" The standard pyrex.vim unconditionally removes the pythonInclude group, so\n\" we provide a dummy group here to avoid crashing pyrex.vim.\nsyn keyword pythonInclude       import\nsyn keyword pythonImport        import\nsyn keyword pythonException     try except finally\nsyn keyword pythonOperator      and in is not or\n\nsyn match pythonStatement   \"\\<yield\\>\" display\nsyn match pythonImport      \"\\<from\\>\" display\n\nif s:Python2Syntax()\n  if !s:Enabled(\"g:python_print_as_function\")\n    syn keyword pythonStatement  print\n  endif\n  syn keyword pythonImport      as\n  syn match   pythonFunction    \"[a-zA-Z_][a-zA-Z0-9_]*\" display contained\nelse\n  syn keyword pythonStatement   as nonlocal None\n  syn match   pythonStatement   \"\\<yield\\s\\+from\\>\" display\n  syn keyword pythonBoolean     True False\n  syn match   pythonFunction    \"\\%([^[:cntrl:][:space:][:punct:][:digit:]]\\|_\\)\\%([^[:cntrl:][:punct:][:space:]]\\|_\\)*\" display contained\n  syn keyword pythonStatement   await\n  syn match   pythonStatement   \"\\<async\\s\\+def\\>\" nextgroup=pythonFunction skipwhite\n  syn match   pythonStatement   \"\\<async\\s\\+with\\>\" display\n  syn match   pythonStatement   \"\\<async\\s\\+for\\>\" display\nendif\n\n\"\n\" Decorators (new in Python 2.4)\n\"\n\nsyn match   pythonDecorator\t\"@\" display nextgroup=pythonDottedName skipwhite\nif s:Python2Syntax()\n  syn match   pythonDottedName \"[a-zA-Z_][a-zA-Z0-9_]*\\%(\\.[a-zA-Z_][a-zA-Z0-9_]*\\)*\" display contained\nelse\n  syn match   pythonDottedName \"\\%([^[:cntrl:][:space:][:punct:][:digit:]]\\|_\\)\\%([^[:cntrl:][:punct:][:space:]]\\|_\\)*\\%(\\.\\%([^[:cntrl:][:space:][:punct:][:digit:]]\\|_\\)\\%([^[:cntrl:][:punct:][:space:]]\\|_\\)*\\)*\" display contained\nendif\nsyn match   pythonDot        \"\\.\" display containedin=pythonDottedName\n\n\"\n\" Comments\n\"\n\nsyn match   pythonComment\t\"#.*$\" display contains=pythonTodo,@Spell\nif !s:Enabled(\"g:python_highlight_file_headers_as_comments\")\n  syn match   pythonRun\t\t\"\\%^#!.*$\"\n  syn match   pythonCoding\t\"\\%^.*\\%(\\n.*\\)\\?#.*coding[:=]\\s*[0-9A-Za-z-_.]\\+.*$\"\nendif\nsyn keyword pythonTodo\t\tTODO FIXME XXX contained\n\n\"\n\" Errors\n\"\n\nsyn match pythonError\t\t\"\\<\\d\\+\\D\\+\\>\" display\nsyn match pythonError\t\t\"[$?]\" display\nsyn match pythonError\t\t\"[&|]\\{2,}\" display\nsyn match pythonError\t\t\"[=]\\{3,}\" display\n\n\" Mixing spaces and tabs also may be used for pretty formatting multiline\n\" statements\nif s:Enabled(\"g:python_highlight_indent_errors\")\n  syn match pythonIndentError\t\"^\\s*\\%( \\t\\|\\t \\)\\s*\\S\"me=e-1 display\nendif\n\n\" Trailing space errors\nif s:Enabled(\"g:python_highlight_space_errors\")\n  syn match pythonSpaceError\t\"\\s\\+$\" display\nendif\n\n\"\n\" Strings\n\"\n\nif s:Python2Syntax()\n  \" Python 2 strings\n  syn region pythonString   start=+[bB]\\='+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell\n  syn region pythonString   start=+[bB]\\=\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell\n  syn region pythonString   start=+[bB]\\=\"\"\"+ end=+\"\"\"+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell\n  syn region pythonString   start=+[bB]\\='''+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell\nelse\n  \" Python 3 byte strings\n  syn region pythonBytes\t\tstart=+[bB]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesError,pythonBytesContent,@Spell\n  syn region pythonBytes\t\tstart=+[bB]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ keepend contains=pythonBytesError,pythonBytesContent,@Spell\n  syn region pythonBytes\t\tstart=+[bB]\"\"\"+ end=+\"\"\"+ keepend contains=pythonBytesError,pythonBytesContent,pythonDocTest2,pythonSpaceError,@Spell\n  syn region pythonBytes\t\tstart=+[bB]'''+ end=+'''+ keepend contains=pythonBytesError,pythonBytesContent,pythonDocTest,pythonSpaceError,@Spell\n\n  syn match pythonBytesError    \".\\+\" display contained\n  syn match pythonBytesContent  \"[\\u0000-\\u00ff]\\+\" display contained contains=pythonBytesEscape,pythonBytesEscapeError\nendif\n\nsyn match pythonBytesEscape       +\\\\[abfnrtv'\"\\\\]+ display contained\nsyn match pythonBytesEscape       \"\\\\\\o\\o\\=\\o\\=\" display contained\nsyn match pythonBytesEscapeError  \"\\\\\\o\\{,2}[89]\" display contained\nsyn match pythonBytesEscape       \"\\\\x\\x\\{2}\" display contained\nsyn match pythonBytesEscapeError  \"\\\\x\\x\\=\\X\" display contained\nsyn match pythonBytesEscape       \"\\\\$\"\n\nsyn match pythonUniEscape         \"\\\\u\\x\\{4}\" display contained\nsyn match pythonUniEscapeError    \"\\\\u\\x\\{,3}\\X\" display contained\nsyn match pythonUniEscape         \"\\\\U\\x\\{8}\" display contained\nsyn match pythonUniEscapeError    \"\\\\U\\x\\{,7}\\X\" display contained\nsyn match pythonUniEscape         \"\\\\N{[A-Z ]\\+}\" display contained\nsyn match pythonUniEscapeError    \"\\\\N{[^A-Z ]\\+}\" display contained\n\nif s:Python2Syntax()\n  \" Python 2 Unicode strings\n  syn region pythonUniString  start=+[uU]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell\n  syn region pythonUniString  start=+[uU]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell\n  syn region pythonUniString  start=+[uU]\"\"\"+ end=+\"\"\"+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell\n  syn region pythonUniString  start=+[uU]'''+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell\nelse\n  \" Python 3 strings\n  syn region pythonString   start=+'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell\n  syn region pythonString   start=+\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,@Spell\n  syn region pythonString   start=+\"\"\"+ end=+\"\"\"+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell\n  syn region pythonString   start=+'''+ end=+'''+ keepend contains=pythonBytesEscape,pythonBytesEscapeError,pythonUniEscape,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell\nendif\n\nif s:Python2Syntax()\n  \" Python 2 Unicode raw strings\n  syn region pythonUniRawString start=+[uU][rR]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell\n  syn region pythonUniRawString start=+[uU][rR]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell\n  syn region pythonUniRawString start=+[uU][rR]\"\"\"+ end=+\"\"\"+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest2,pythonSpaceError,@Spell\n  syn region pythonUniRawString start=+[uU][rR]'''+ end=+'''+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest,pythonSpaceError,@Spell\n\n  syn match  pythonUniRawEscape       \"\\([^\\\\]\\(\\\\\\\\\\)*\\)\\@<=\\\\u\\x\\{4}\" display contained\n  syn match  pythonUniRawEscapeError  \"\\([^\\\\]\\(\\\\\\\\\\)*\\)\\@<=\\\\u\\x\\{,3}\\X\" display contained\nendif\n\n\" Python 2/3 raw strings\nif s:Python2Syntax()\n  syn region pythonRawString  start=+[bB]\\=[rR]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell\n  syn region pythonRawString  start=+[bB]\\=[rR]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ keepend contains=pythonRawEscape,@Spell\n  syn region pythonRawString  start=+[bB]\\=[rR]\"\"\"+ end=+\"\"\"+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell\n  syn region pythonRawString  start=+[bB]\\=[rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell\nelse\n  syn region pythonRawString  start=+[rR]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell\n  syn region pythonRawString  start=+[rR]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ keepend contains=pythonRawEscape,@Spell\n  syn region pythonRawString  start=+[rR]\"\"\"+ end=+\"\"\"+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell\n  syn region pythonRawString  start=+[rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell\n\n  syn region pythonRawBytes  start=+[bB][rR]'+ skip=+\\\\\\\\\\|\\\\'\\|\\\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell\n  syn region pythonRawBytes  start=+[bB][rR]\"+ skip=+\\\\\\\\\\|\\\\\"\\|\\\\$+ excludenl end=+\"+ end=+$+ keepend contains=pythonRawEscape,@Spell\n  syn region pythonRawBytes  start=+[bB][rR]\"\"\"+ end=+\"\"\"+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell\n  syn region pythonRawBytes  start=+[bB][rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell\nendif\n\nsyn match pythonRawEscape +\\\\['\"]+ display transparent contained\n\nif s:Enabled(\"g:python_highlight_string_formatting\")\n  \" % operator string formatting\n  if s:Python2Syntax()\n    syn match pythonStrFormatting\t\"%\\%(([^)]\\+)\\)\\=[-#0 +]*\\d*\\%(\\.\\d\\+\\)\\=[hlL]\\=[diouxXeEfFgGcrs%]\" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString\n    syn match pythonStrFormatting\t\"%[-#0 +]*\\%(\\*\\|\\d\\+\\)\\=\\%(\\.\\%(\\*\\|\\d\\+\\)\\)\\=[hlL]\\=[diouxXeEfFgGcrs%]\" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString\n  else\n    syn match pythonStrFormatting\t\"%\\%(([^)]\\+)\\)\\=[-#0 +]*\\d*\\%(\\.\\d\\+\\)\\=[hlL]\\=[diouxXeEfFgGcrs%]\" contained containedin=pythonString,pythonRawString\n    syn match pythonStrFormatting\t\"%[-#0 +]*\\%(\\*\\|\\d\\+\\)\\=\\%(\\.\\%(\\*\\|\\d\\+\\)\\)\\=[hlL]\\=[diouxXeEfFgGcrs%]\" contained containedin=pythonString,pythonRawString\n  endif\nendif\n\nif s:Enabled(\"g:python_highlight_string_format\")\n  \" str.format syntax\n  if s:Python2Syntax()\n    syn match pythonStrFormat \"{{\\|}}\" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString\n    syn match pythonStrFormat\t\"{\\%(\\%([^[:cntrl:][:space:][:punct:][:digit:]]\\|_\\)\\%([^[:cntrl:][:punct:][:space:]]\\|_\\)*\\|\\d\\+\\)\\=\\%(\\.\\%([^[:cntrl:][:space:][:punct:][:digit:]]\\|_\\)\\%([^[:cntrl:][:punct:][:space:]]\\|_\\)*\\|\\[\\%(\\d\\+\\|[^!:\\}]\\+\\)\\]\\)*\\%(![rsa]\\)\\=\\%(:\\%({\\%(\\%([^[:cntrl:][:space:][:punct:][:digit:]]\\|_\\)\\%([^[:cntrl:][:punct:][:space:]]\\|_\\)*\\|\\d\\+\\)}\\|\\%([^}]\\=[<>=^]\\)\\=[ +-]\\=#\\=0\\=\\d*,\\=\\%(\\.\\d\\+\\)\\=[bcdeEfFgGnosxX%]\\=\\)\\=\\)\\=}\" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString\n  else\n    syn match pythonStrFormat \"{{\\|}}\" contained containedin=pythonString,pythonRawString\n    syn match pythonStrFormat\t\"{\\%(\\%([^[:cntrl:][:space:][:punct:][:digit:]]\\|_\\)\\%([^[:cntrl:][:punct:][:space:]]\\|_\\)*\\|\\d\\+\\)\\=\\%(\\.\\%([^[:cntrl:][:space:][:punct:][:digit:]]\\|_\\)\\%([^[:cntrl:][:punct:][:space:]]\\|_\\)*\\|\\[\\%(\\d\\+\\|[^!:\\}]\\+\\)\\]\\)*\\%(![rsa]\\)\\=\\%(:\\%({\\%(\\%([^[:cntrl:][:space:][:punct:][:digit:]]\\|_\\)\\%([^[:cntrl:][:punct:][:space:]]\\|_\\)*\\|\\d\\+\\)}\\|\\%([^}]\\=[<>=^]\\)\\=[ +-]\\=#\\=0\\=\\d*,\\=\\%(\\.\\d\\+\\)\\=[bcdeEfFgGnosxX%]\\=\\)\\=\\)\\=}\" contained containedin=pythonString,pythonRawString\n  endif\nendif\n\nif s:Enabled(\"g:python_highlight_string_templates\")\n  \" string.Template format\n  if s:Python2Syntax()\n    syn match pythonStrTemplate\t\"\\$\\$\" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString\n    syn match pythonStrTemplate\t\"\\${[a-zA-Z_][a-zA-Z0-9_]*}\" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString\n    syn match pythonStrTemplate\t\"\\$[a-zA-Z_][a-zA-Z0-9_]*\" contained containedin=pythonString,pythonUniString,pythonUniRawString,pythonRawString\n  else\n    syn match pythonStrTemplate\t\"\\$\\$\" contained containedin=pythonString,pythonRawString\n    syn match pythonStrTemplate\t\"\\${[a-zA-Z_][a-zA-Z0-9_]*}\" contained containedin=pythonString,pythonRawString\n    syn match pythonStrTemplate\t\"\\$[a-zA-Z_][a-zA-Z0-9_]*\" contained containedin=pythonString,pythonRawString\n  endif\nendif\n\nif s:Enabled(\"g:python_highlight_doctests\")\n  \" DocTests\n  syn region pythonDocTest\tstart=\"^\\s*>>>\" end=+'''+he=s-1 end=\"^\\s*$\" contained\n  syn region pythonDocTest2\tstart=\"^\\s*>>>\" end=+\"\"\"+he=s-1 end=\"^\\s*$\" contained\nendif\n\n\"\n\" Numbers (ints, longs, floats, complex)\n\"\n\nif s:Python2Syntax()\n  syn match   pythonHexError\t\"\\<0[xX]\\x*[g-zG-Z]\\+\\x*[lL]\\=\\>\" display\n  syn match   pythonOctError\t\"\\<0[oO]\\=\\o*\\D\\+\\d*[lL]\\=\\>\" display\n  syn match   pythonBinError\t\"\\<0[bB][01]*\\D\\+\\d*[lL]\\=\\>\" display\n\n  syn match   pythonHexNumber\t\"\\<0[xX]\\x\\+[lL]\\=\\>\" display\n  syn match   pythonOctNumber \"\\<0[oO]\\o\\+[lL]\\=\\>\" display\n  syn match   pythonBinNumber \"\\<0[bB][01]\\+[lL]\\=\\>\" display\n\n  syn match   pythonNumberError\t\"\\<\\d\\+\\D[lL]\\=\\>\" display\n  syn match   pythonNumber\t\"\\<\\d[lL]\\=\\>\" display\n  syn match   pythonNumber\t\"\\<[0-9]\\d\\+[lL]\\=\\>\" display\n  syn match   pythonNumber\t\"\\<\\d\\+[lLjJ]\\>\" display\n\n  syn match   pythonOctError\t\"\\<0[oO]\\=\\o*[8-9]\\d*[lL]\\=\\>\" display\n  syn match   pythonBinError\t\"\\<0[bB][01]*[2-9]\\d*[lL]\\=\\>\" display\nelse\n  syn match   pythonHexError\t\"\\<0[xX]\\x*[g-zG-Z]\\x*\\>\" display\n  syn match   pythonOctError\t\"\\<0[oO]\\=\\o*\\D\\+\\d*\\>\" display\n  syn match   pythonBinError\t\"\\<0[bB][01]*\\D\\+\\d*\\>\" display\n\n  syn match   pythonHexNumber\t\"\\<0[xX]\\x\\+\\>\" display\n  syn match   pythonOctNumber \"\\<0[oO]\\o\\+\\>\" display\n  syn match   pythonBinNumber \"\\<0[bB][01]\\+\\>\" display\n\n  syn match   pythonNumberError\t\"\\<\\d\\+\\D\\>\" display\n  syn match   pythonNumberError\t\"\\<0\\d\\+\\>\" display\n  syn match   pythonNumber\t\"\\<\\d\\>\" display\n  syn match   pythonNumber\t\"\\<[1-9]\\d\\+\\>\" display\n  syn match   pythonNumber\t\"\\<\\d\\+[jJ]\\>\" display\n\n  syn match   pythonOctError\t\"\\<0[oO]\\=\\o*[8-9]\\d*\\>\" display\n  syn match   pythonBinError\t\"\\<0[bB][01]*[2-9]\\d*\\>\" display\nendif\n\nsyn match   pythonFloat\t\t\"\\.\\d\\+\\%([eE][+-]\\=\\d\\+\\)\\=[jJ]\\=\\>\" display\nsyn match   pythonFloat\t\t\"\\<\\d\\+[eE][+-]\\=\\d\\+[jJ]\\=\\>\" display\nsyn match   pythonFloat\t\t\"\\<\\d\\+\\.\\d*\\%([eE][+-]\\=\\d\\+\\)\\=[jJ]\\=\" display\n\n\"\n\" Builtin objects and types\n\"\n\nif s:Enabled(\"g:python_highlight_builtin_objs\")\n  if s:Python2Syntax()\n    syn keyword pythonBuiltinObj\tNone\n    syn keyword pythonBoolean\t\tTrue False\n  endif\n  syn keyword pythonBuiltinObj\tEllipsis NotImplemented\n  syn keyword pythonBuiltinObj\t__debug__ __doc__ __file__ __name__ __package__\nendif\n\n\"\n\" Builtin functions\n\"\n\nif s:Enabled(\"g:python_highlight_builtin_funcs\")\n  if s:Python2Syntax()\n    syn keyword pythonBuiltinFunc\tapply basestring buffer callable coerce\n    syn keyword pythonBuiltinFunc\texecfile file help intern long raw_input\n    syn keyword pythonBuiltinFunc\treduce reload unichr unicode xrange\n    if s:Enabled(\"g:python_print_as_function\")\n      syn keyword pythonBuiltinFunc\tprint\n    endif\n  else\n    syn keyword pythonBuiltinFunc\tascii exec memoryview print\n  endif\n  syn keyword pythonBuiltinFunc\t__import__ abs all any\n  syn keyword pythonBuiltinFunc\tbin bool bytearray bytes\n  syn keyword pythonBuiltinFunc\tchr classmethod cmp compile complex\n  syn keyword pythonBuiltinFunc\tdelattr dict dir divmod enumerate eval\n  syn keyword pythonBuiltinFunc\tfilter float format frozenset getattr\n  syn keyword pythonBuiltinFunc\tglobals hasattr hash hex id\n  syn keyword pythonBuiltinFunc\tinput int isinstance\n  syn keyword pythonBuiltinFunc\tissubclass iter len list locals map max\n  syn keyword pythonBuiltinFunc\tmin next object oct open ord\n  syn keyword pythonBuiltinFunc\tpow property range\n  syn keyword pythonBuiltinFunc\trepr reversed round set setattr\n  syn keyword pythonBuiltinFunc\tslice sorted staticmethod str sum super tuple\n  syn keyword pythonBuiltinFunc\ttype vars zip\nendif\n\n\"\n\" Builtin exceptions and warnings\n\"\n\nif s:Enabled(\"g:python_highlight_exceptions\")\n  if s:Python2Syntax()\n    syn keyword pythonExClass\tStandardError\n  else\n    syn keyword pythonExClass\tBlockingIOError ChildProcessError\n    syn keyword pythonExClass\tConnectionError BrokenPipeError\n    syn keyword pythonExClass\tConnectionAbortedError ConnectionRefusedError\n    syn keyword pythonExClass\tConnectionResetError FileExistsError\n    syn keyword pythonExClass\tFileNotFoundError InterruptedError\n    syn keyword pythonExClass\tIsADirectoryError NotADirectoryError\n    syn keyword pythonExClass\tPermissionError ProcessLookupError TimeoutError\n\n    syn keyword pythonExClass\tResourceWarning\n  endif\n  syn keyword pythonExClass\tBaseException\n  syn keyword pythonExClass\tException ArithmeticError\n  syn keyword pythonExClass\tLookupError EnvironmentError\n\n  syn keyword pythonExClass\tAssertionError AttributeError BufferError EOFError\n  syn keyword pythonExClass\tFloatingPointError GeneratorExit IOError\n  syn keyword pythonExClass\tImportError IndexError KeyError\n  syn keyword pythonExClass\tKeyboardInterrupt MemoryError NameError\n  syn keyword pythonExClass\tNotImplementedError OSError OverflowError\n  syn keyword pythonExClass\tReferenceError RuntimeError StopIteration\n  syn keyword pythonExClass\tSyntaxError IndentationError TabError\n  syn keyword pythonExClass\tSystemError SystemExit TypeError\n  syn keyword pythonExClass\tUnboundLocalError UnicodeError\n  syn keyword pythonExClass\tUnicodeEncodeError UnicodeDecodeError\n  syn keyword pythonExClass\tUnicodeTranslateError ValueError VMSError\n  syn keyword pythonExClass\tWindowsError ZeroDivisionError\n\n  syn keyword pythonExClass\tWarning UserWarning BytesWarning DeprecationWarning\n  syn keyword pythonExClass\tPendingDepricationWarning SyntaxWarning\n  syn keyword pythonExClass\tRuntimeWarning FutureWarning\n  syn keyword pythonExClass\tImportWarning UnicodeWarning\nendif\n\nif s:Enabled(\"g:python_slow_sync\")\n  syn sync minlines=2000\nelse\n  \" This is fast but code inside triple quoted strings screws it up. It\n  \" is impossible to fix because the only way to know if you are inside a\n  \" triple quoted string is to start from the beginning of the file.\n  syn sync match pythonSync grouphere NONE \"):$\"\n  syn sync maxlines=200\nendif\n\nif version >= 508 || !exists(\"did_python_syn_inits\")\n  if version <= 508\n    let did_python_syn_inits = 1\n    command -nargs=+ HiLink hi link <args>\n  else\n    command -nargs=+ HiLink hi def link <args>\n  endif\n\n  HiLink pythonStatement        Statement\n  HiLink pythonImport           Include\n  HiLink pythonFunction         Function\n  HiLink pythonConditional      Conditional\n  HiLink pythonRepeat           Repeat\n  HiLink pythonException        Exception\n  HiLink pythonOperator         Operator\n\n  HiLink pythonDecorator        Define\n  HiLink pythonDottedName       Function\n  HiLink pythonDot              Normal\n\n  HiLink pythonComment          Comment\n  if !s:Enabled(\"g:python_highlight_file_headers_as_comments\")\n    HiLink pythonCoding           Special\n    HiLink pythonRun              Special\n  endif\n  HiLink pythonTodo             Todo\n\n  HiLink pythonError            Error\n  HiLink pythonIndentError      Error\n  HiLink pythonSpaceError       Error\n\n  HiLink pythonString           String\n  HiLink pythonRawString        String\n\n  HiLink pythonUniEscape        Special\n  HiLink pythonUniEscapeError   Error\n\n  if s:Python2Syntax()\n    HiLink pythonUniString          String\n    HiLink pythonUniRawString       String\n    HiLink pythonUniRawEscape       Special\n    HiLink pythonUniRawEscapeError  Error\n  else\n    HiLink pythonBytes              String\n    HiLink pythonRawBytes           String\n    HiLink pythonBytesContent       String\n    HiLink pythonBytesError         Error\n    HiLink pythonBytesEscape        Special\n    HiLink pythonBytesEscapeError   Error\n  endif\n\n  HiLink pythonStrFormatting    Special\n  HiLink pythonStrFormat        Special\n  HiLink pythonStrTemplate      Special\n\n  HiLink pythonDocTest          Special\n  HiLink pythonDocTest2         Special\n\n  HiLink pythonNumber           Number\n  HiLink pythonHexNumber        Number\n  HiLink pythonOctNumber        Number\n  HiLink pythonBinNumber        Number\n  HiLink pythonFloat            Float\n  HiLink pythonNumberError      Error\n  HiLink pythonOctError         Error\n  HiLink pythonHexError         Error\n  HiLink pythonBinError         Error\n\n  HiLink pythonBoolean          Boolean\n\n  HiLink pythonBuiltinObj       Structure\n  HiLink pythonBuiltinFunc      Function\n\n  HiLink pythonExClass          Structure\n\n  delcommand HiLink\nendif\n\nlet b:current_syntax = \"python\"\n"
  },
  {
    "path": "syntax.txt",
    "content": "PYTHON\t\t\t\t\t\t*python.vim* *ft-python-syntax*\n\nThere are two commands to enable or disable an option for python.vim\n\n  Enable option: >\n    :let option_name = 1\n<\n  Disable option: >\n    :let option_name = 0\n<\nFor example to enable all syntax highlighting features you can place the\nfollowing command in your `~/.vimrc` script: >\n\n  let python_highlight_all = 1\n<\nOption and commands to select Python version: >\n\n  :let python_version_2 = 1\n<\n  Enable highlighting for Python 2 (Python 3 highlighting is enabled by\n  default). Also can be set as a local to buffer `b:python_version_2`\n  variable.\n\nThe following local to buffer commands can be used to switch between two\nhighlighting modes:\n\n  Switch to Python 2 highlighting mode >\n    :Python2Syntax\n<\n  Switch to Python 3 highlighting mode >\n    :Python3Syntax\n<\nOptions used by the script\n\n  Highlight builtin functions and objects >\n    :let python_highlight_builtins = 1\n<  Highlight builtin objects only >\n    :let python_highlight_builtin_objs = 1\n<  Highlight builtin functions only >\n    :let python_highlight_builtin_funcs = 1\n<  Highlight standard exceptions >\n    :let python_highlight_exceptions = 1\n<  Highlight `%` string formatting >\n    :let python_highlight_string_formatting = 1\n<  Highlight syntax of `str.format` syntax >\n    :let python_highlight_string_format = 1\n<  Highlight syntax of `string.Template` >\n    :let python_highlight_string_templates = 1\n<  Highlight indentation errors >\n    :let python_highlight_indent_errors = 1\n<  Highlight trailing spaces >\n    :let python_highlight_space_errors = 1\n<  Highlight doc-tests >\n    :let python_highlight_doctests = 1\n<  Highlight `print` statement as function for Python 2 >\n    :let python_print_as_function = 1\n<  Highlight shebang and coding headers as comments >\n    :let python_highlight_file_headers_as_comments = 1\n<  Enable all the options above. NOTE: This option don't override any\n  previously set options >\n    :let python_highlight_all = 1\n<  Can be set to 0 for slow machines >\n    :let python_slow_sync = 1\n<\n vim:tw=78:sw=4:ts=8:ft=help:norl:\n"
  },
  {
    "path": "test.py",
    "content": "#! /usr/bin/env python\n# -*- coding: utf-8 -*-\n# Above the run-comment and file encoding comment.\n\n# Comments.\n\n# TODO FIXME XXX\n\n# Keywords.\n\nwith break continue del exec return pass print raise global assert lambda yield\nfor while if elif else import from as try except finally and in is not or\n\nyield from\n\ndef functionname\nclass Classname\ndef функция\nclass Класс\n\nawait\nasync def Test\nasync with\nasync for\n\n# Builtin objects.\n\nTrue False Ellipsis None NotImplemented\n\n# Builtin function and types.\n\n__import__ abs all any apply basestring bool buffer callable chr classmethod\ncmp coerce compile complex delattr dict dir divmod enumerate eval execfile file\nfilter float frozenset getattr globals hasattr hash help hex id input int\nintern isinstance issubclass iter len list locals long map max min object oct\nopen ord pow property range raw_input reduce reload repr reversed round set\nsetattr slice sorted staticmethod str sum super tuple type unichr unicode vars\nxrange zip\n\n# Builtin exceptions and warnings.\n\nBaseException Exception StandardError ArithmeticError LookupError\nEnvironmentError\n\nAssertionError AttributeError EOFError FloatingPointError GeneratorExit IOError\nImportError IndexError KeyError KeyboardInterrupt MemoryError NameError\nNotImplementedError OSError OverflowError ReferenceError RuntimeError\nStopIteration SyntaxError IndentationError TabError SystemError SystemExit\nTypeError UnboundLocalError UnicodeError UnicodeEncodeError UnicodeDecodeError\nUnicodeTranslateError ValueError WindowsError ZeroDivisionError\n\nWarning UserWarning DeprecationWarning PendingDepricationWarning SyntaxWarning\nRuntimeWarning FutureWarning ImportWarning UnicodeWarning\n\n# Decorators.\n\n@ decoratorname\n@ object.__init__(arg1, arg2)\n@ декоратор\n@ декоратор.décorateur\n\n# Numbers\n\n0 1 2 9 10 0x1f .3 12.34 0j 0j 34.2E-3 0b10 0o77 1023434 0x0\n\n# Erroneous numbers\n\n077 100L 0xfffffffL 0L 08 0xk 0x  0b102 0o78 0o123LaB\n\n# Strings\n\n\" test \" ' test '\n\"\"\"\n  test\n\"\"\"\n'''\n  test\n'''\n\n\" \\a\\b\\c\\\"\\'\\n\\r \\x34\\077 \\08 \\xag\"\nr\" \\\" \\' \"\n\n\"testтест\"\n\nb\"test\"\n\nb\"test\\r\\n\\xffff\"\n\nb\"тестtest\"\n\nbr\"test\"\n\nbr\"\\a\\b\\n\\r\"\n\n# Formattings\n\n\" %f \"\nb\" %f \"\n\n\"{0.name!r:b} {0[n]} {name!s:  } {{test}} {{}} {} {.__len__:s}\"\nb\"{0.name!r:b} {0[n]} {name!s:  } {{test}} {{}} {} {.__len__:s}\"\n\n\"${test} ${test ${test}aname $$$ $test+nope\"\nb\"${test} ${test ${test}aname $$$ $test+nope\"\n\n# Doctests.\n\n\"\"\"\n    Test:\n    >>> a = 5\n    >>> a\n    5\n\n    Test\n\"\"\"\n\n'''\n    Test:\n    >>> a = 5\n    >>> a\n    5\n\n    Test\n'''\n\n# Erroneous symbols or bad variable names.\n\n$ ? 6xav\n\n&& || ===\n\n# Indentation errors.\n\n    \t    break\n\n# Trailing space errors.\n\n    \t\n    break\t    \n\"\"\"  \t\n   \t \n    test    \t\n\"\"\"  \t\n"
  }
]