Merge branch 'vim-with-runtime' into feat/quickfix-title
[vim_extended.git] / runtime / syntax / pyrex.vim
blob7dc9b955b0465989aa7e8294964742dab6b9d0b9
1 " Vim syntax file
2 " Language:     Pyrex
3 " Maintainer:   Marco Barisione <marco.bari@people.it>
4 " URL:          http://marcobari.altervista.org/pyrex_vim.html
5 " Last Change:  2009 Nov 09
7 " For version 5.x: Clear all syntax items
8 " For version 6.x: Quit when a syntax file was already loaded
9 if version < 600
10   syntax clear
11 elseif exists("b:current_syntax")
12   finish
13 endif
15 " Read the Python syntax to start with
16 if version < 600
17   so <sfile>:p:h/python.vim
18 else
19   runtime! syntax/python.vim
20   unlet b:current_syntax
21 endif
23 " Pyrex extentions
24 syn keyword pyrexStatement      cdef typedef ctypedef sizeof
25 syn keyword pyrexType           int long short float double char object void
26 syn keyword pyrexType           signed unsigned
27 syn keyword pyrexStructure      struct union enum
28 syn keyword pyrexInclude        include cimport
29 syn keyword pyrexAccess         public private property readonly extern
30 " If someome wants Python's built-ins highlighted probably he
31 " also wants Pyrex's built-ins highlighted
32 if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins")
33     syn keyword pyrexBuiltin    NULL
34 endif
36 " This deletes "from" from the keywords and re-adds it as a
37 " match with lower priority than pyrexForFrom
38 syn clear   pythonInclude
39 syn keyword pythonInclude     import
40 syn match   pythonInclude     "from"
42 " With "for[^:]*\zsfrom" VIM does not match "for" anymore, so
43 " I used the slower "\@<=" form
44 syn match   pyrexForFrom        "\(for[^:]*\)\@<=from"
46 " Default highlighting
47 if version >= 508 || !exists("did_pyrex_syntax_inits")
48   if version < 508
49     let did_pyrex_syntax_inits = 1
50     command -nargs=+ HiLink hi link <args>
51   else
52     command -nargs=+ HiLink hi def link <args>
53   endif
54   HiLink pyrexStatement         Statement
55   HiLink pyrexType              Type
56   HiLink pyrexStructure         Structure
57   HiLink pyrexInclude           PreCondit
58   HiLink pyrexAccess            pyrexStatement
59   if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins")
60       HiLink pyrexBuiltin       Function
61   endif
62   HiLink pyrexForFrom           Statement
64   delcommand HiLink
65 endif
67 let b:current_syntax = "pyrex"