vim-polyglot/syntax/pyrex.vim
2017-09-27 20:43:42 +02:00

56 lines
1.7 KiB
VimL

if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
" Vim syntax file
" Language: Pyrex
" Maintainer: Marco Barisione <marco.bari@people.it>
" URL: http://marcobari.altervista.org/pyrex_vim.html
" Last Change: 2009 Nov 09
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Read the Python syntax to start with
runtime! syntax/python.vim
unlet b:current_syntax
" Pyrex extentions
syn keyword pyrexStatement cdef typedef ctypedef sizeof
syn keyword pyrexType int long short float double char object void
syn keyword pyrexType signed unsigned
syn keyword pyrexStructure struct union enum
syn keyword pyrexInclude include cimport
syn keyword pyrexAccess public private property readonly extern
" If someome wants Python's built-ins highlighted probably he
" also wants Pyrex's built-ins highlighted
if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins")
syn keyword pyrexBuiltin NULL
endif
" This deletes "from" from the keywords and re-adds it as a
" match with lower priority than pyrexForFrom
syn clear pythonInclude
syn keyword pythonInclude import
syn match pythonInclude "from"
" With "for[^:]*\zsfrom" VIM does not match "for" anymore, so
" I used the slower "\@<=" form
syn match pyrexForFrom "\(for[^:]*\)\@<=from"
" Default highlighting
hi def link pyrexStatement Statement
hi def link pyrexType Type
hi def link pyrexStructure Structure
hi def link pyrexInclude PreCondit
hi def link pyrexAccess pyrexStatement
if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins")
hi def link pyrexBuiltin Function
endif
hi def link pyrexForFrom Statement
let b:current_syntax = "pyrex"
endif