1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Pyrex 3071d4279SBram Moolenaar" Maintainer: Marco Barisione <[email protected]> 4071d4279SBram Moolenaar" URL: http://marcobari.altervista.org/pyrex_vim.html 55c73622aSBram Moolenaar" Last Change: 2009 Nov 09 6071d4279SBram Moolenaar 789bcfda6SBram Moolenaar" quit when a syntax file was already loaded 889bcfda6SBram Moolenaarif exists("b:current_syntax") 9071d4279SBram Moolenaar finish 10071d4279SBram Moolenaarendif 11071d4279SBram Moolenaar 12071d4279SBram Moolenaar" Read the Python syntax to start with 13071d4279SBram Moolenaarruntime! syntax/python.vim 14071d4279SBram Moolenaarunlet b:current_syntax 15071d4279SBram Moolenaar 16071d4279SBram Moolenaar" Pyrex extentions 17071d4279SBram Moolenaarsyn keyword pyrexStatement cdef typedef ctypedef sizeof 18071d4279SBram Moolenaarsyn keyword pyrexType int long short float double char object void 19071d4279SBram Moolenaarsyn keyword pyrexType signed unsigned 20071d4279SBram Moolenaarsyn keyword pyrexStructure struct union enum 215c73622aSBram Moolenaarsyn keyword pyrexInclude include cimport 22071d4279SBram Moolenaarsyn keyword pyrexAccess public private property readonly extern 23071d4279SBram Moolenaar" If someome wants Python's built-ins highlighted probably he 24071d4279SBram Moolenaar" also wants Pyrex's built-ins highlighted 25071d4279SBram Moolenaarif exists("python_highlight_builtins") || exists("pyrex_highlight_builtins") 26071d4279SBram Moolenaar syn keyword pyrexBuiltin NULL 27071d4279SBram Moolenaarendif 28071d4279SBram Moolenaar 29071d4279SBram Moolenaar" This deletes "from" from the keywords and re-adds it as a 30071d4279SBram Moolenaar" match with lower priority than pyrexForFrom 315c73622aSBram Moolenaarsyn clear pythonInclude 325c73622aSBram Moolenaarsyn keyword pythonInclude import 335c73622aSBram Moolenaarsyn match pythonInclude "from" 34071d4279SBram Moolenaar 35071d4279SBram Moolenaar" With "for[^:]*\zsfrom" VIM does not match "for" anymore, so 36071d4279SBram Moolenaar" I used the slower "\@<=" form 37071d4279SBram Moolenaarsyn match pyrexForFrom "\(for[^:]*\)\@<=from" 38071d4279SBram Moolenaar 39071d4279SBram Moolenaar" Default highlighting 40*f37506f6SBram Moolenaarhi def link pyrexStatement Statement 41*f37506f6SBram Moolenaarhi def link pyrexType Type 42*f37506f6SBram Moolenaarhi def link pyrexStructure Structure 43*f37506f6SBram Moolenaarhi def link pyrexInclude PreCondit 44*f37506f6SBram Moolenaarhi def link pyrexAccess pyrexStatement 45071d4279SBram Moolenaarif exists("python_highlight_builtins") || exists("pyrex_highlight_builtins") 46*f37506f6SBram Moolenaarhi def link pyrexBuiltin Function 47071d4279SBram Moolenaarendif 48*f37506f6SBram Moolenaarhi def link pyrexForFrom Statement 49071d4279SBram Moolenaar 50071d4279SBram Moolenaar 51071d4279SBram Moolenaarlet b:current_syntax = "pyrex" 52