xref: /vim-8.2.3635/runtime/syntax/pyrex.vim (revision f37506f6)
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