1" Vim syntax file
2" Language:	Conary Recipe
3" Maintainer:	rPath Inc <http://www.rpath.com>
4" Updated:	2007-12-08
5
6if exists("b:current_syntax")
7  finish
8endif
9
10runtime! syntax/python.vim
11
12syn keyword conarySFunction	mainDir addAction addSource addArchive addPatch
13syn keyword conarySFunction	addRedirect addSvnSnapshot addMercurialSnapshot
14syn keyword conarySFunction	addCvsSnapshot addGitSnapshot addBzrSnapshot
15
16syn keyword conaryGFunction	add addAll addNewGroup addReference createGroup
17syn keyword conaryGFunction	addNewGroup startGroup remove removeComponents
18syn keyword conaryGFunction	replace setByDefault setDefaultGroup 
19syn keyword conaryGFunction	setLabelPath addCopy setSearchPath AddAllFlags
20syn keyword conaryGFunction	GroupRecipe GroupReference TroveCacheWrapper
21syn keyword conaryGFunction	TroveCache buildGroups findTrovesForGroups
22syn keyword conaryGFunction	followRedirect processAddAllDirectives
23syn keyword conaryGFunction	processOneAddAllDirective removeDifferences
24syn keyword conaryGFunction	addTrovesToGroup addCopiedComponents
25syn keyword conaryGFunction	findAllWeakTrovesToRemove checkForRedirects
26syn keyword conaryGFunction	addPackagesForComponents getResolveSource
27syn keyword conaryGFunction	resolveGroupDependencies checkGroupDependencies
28syn keyword conaryGFunction	calcSizeAndCheckHashes findSourcesForGroup
29syn keyword conaryGFunction	addPostInstallScript addPostRollbackScript
30syn keyword conaryGFunction	addPostUpdateScript addPreUpdateScript
31syn keyword conaryGFunction	addTrove moveComponents copyComponents
32syn keyword conaryGFunction	removeItemsAlsoInNewGroup removeItemsAlsoInGroup
33syn keyword conaryGFunction	addResolveSource iterReplaceSpecs
34syn keyword conaryGFunction	setCompatibilityClass getLabelPath
35syn keyword conaryGFunction	getResolveTroveSpecs getSearchFlavor
36syn keyword conaryGFunction	getChildGroups getGroupMap
37
38syn keyword conaryBFunction 	Run Automake Configure ManualConfigure 
39syn keyword conaryBFunction 	Make MakeParallelSubdir MakeInstall
40syn keyword conaryBFunction 	MakePathsInstall CompilePython
41syn keyword conaryBFunction 	Ldconfig Desktopfile Environment SetModes
42syn keyword conaryBFunction 	Install Copy Move Symlink Link Remove Doc
43syn keyword conaryBFunction 	Create MakeDirs disableParallelMake
44syn keyword conaryBFunction 	ConsoleHelper Replace SGMLCatalogEntry
45syn keyword conaryBFunction 	XInetdService XMLCatalogEntry TestSuite
46syn keyword conaryBFunction	PythonSetup CMake Ant JavaCompile ClassPath
47syn keyword conaryBFunction	JavaDoc IncludeLicense MakeFIFO
48
49syn keyword conaryPFunction 	NonBinariesInBindirs FilesInMandir 
50syn keyword conaryPFunction 	ImproperlyShared CheckSonames CheckDestDir
51syn keyword conaryPFunction 	ComponentSpec PackageSpec 
52syn keyword conaryPFunction 	Config InitScript GconfSchema SharedLibrary
53syn keyword conaryPFunction 	ParseManifest MakeDevices DanglingSymlinks
54syn keyword conaryPFunction 	AddModes WarnWriteable IgnoredSetuid
55syn keyword conaryPFunction 	Ownership ExcludeDirectories
56syn keyword conaryPFunction 	BadFilenames BadInterpreterPaths ByDefault
57syn keyword conaryPFunction 	ComponentProvides ComponentRequires Flavor
58syn keyword conaryPFunction 	EnforceConfigLogBuildRequirements Group
59syn keyword conaryPFunction 	EnforceSonameBuildRequirements InitialContents
60syn keyword conaryPFunction 	FilesForDirectories LinkCount
61syn keyword conaryPFunction 	MakdeDevices NonMultilibComponent ObsoletePaths
62syn keyword conaryPFunction 	NonMultilibDirectories NonUTF8Filenames TagSpec
63syn keyword conaryPFunction 	Provides RequireChkconfig Requires TagHandler
64syn keyword conaryPFunction 	TagDescription Transient User UtilizeGroup
65syn keyword conaryPFunction 	WorldWritableExecutables UtilizeUser
66syn keyword conaryPFunction 	WarnWritable Strip CheckDesktopFiles
67syn keyword conaryPFunction	FixDirModes LinkType reportMissingBuildRequires
68syn keyword conaryPFunction	reportErrors FixupManpagePaths FixObsoletePaths
69syn keyword conaryPFunction	NonLSBPaths PythonEggs
70syn keyword conaryPFunction	EnforcePythonBuildRequirements
71syn keyword conaryPFunction	EnforceJavaBuildRequirements
72syn keyword conaryPFunction	EnforceCILBuildRequirements
73syn keyword conaryPFunction	EnforcePerlBuildRequirements
74syn keyword conaryPFunction	EnforceFlagBuildRequirements
75syn keyword conaryPFunction	FixupMultilibPaths ExecutableLibraries
76syn keyword conaryPFunction	NormalizeLibrarySymlinks NormalizeCompression
77syn keyword conaryPFunction	NormalizeManPages NormalizeInfoPages
78syn keyword conaryPFunction	NormalizeInitscriptLocation
79syn keyword conaryPFunction	NormalizeInitscriptContents
80syn keyword conaryPFunction	NormalizeAppDefaults NormalizeInterpreterPaths
81syn keyword conaryPFunction	NormalizePamConfig ReadableDocs
82syn keyword conaryPFunction	WorldWriteableExecutables NormalizePkgConfig
83syn keyword conaryPFunction	EtcConfig InstallBucket SupplementalGroup
84syn keyword conaryPFunction	FixBuilddirSymlink RelativeSymlinks
85
86" Most destdirPolicy aren't called from recipes, except for these
87syn keyword conaryPFunction	AutoDoc RemoveNonPackageFiles TestSuiteFiles
88syn keyword conaryPFunction	TestSuiteLinks
89
90syn match   conaryMacro		"%(\w\+)[sd]" contained
91syn match   conaryBadMacro	"%(\w*)[^sd]" contained " no final marker
92syn keyword conaryArches	contained x86 x86_64 alpha ia64 ppc ppc64 s390
93syn keyword conaryArches	contained sparc sparc64
94syn keyword conarySubArches	contained sse2 3dnow 3dnowext cmov i486 i586
95syn keyword conarySubArches	contained i686 mmx mmxext nx sse sse2
96syn keyword conaryBad		RPM_BUILD_ROOT EtcConfig InstallBucket subDir
97syn keyword conaryBad		RPM_OPT_FLAGS subdir 
98syn cluster conaryArchFlags 	contains=conaryArches,conarySubArches
99syn match   conaryArch		"Arch\.[a-z0-9A-Z]\+" contains=conaryArches,conarySubArches
100syn match   conaryArch		"Arch\.[a-z0-9A-Z]\+" contains=conaryArches,conarySubArches
101syn keyword conaryKeywords	name buildRequires version clearBuildReqs
102syn keyword conaryUseFlag	contained pcre tcpwrappers gcj gnat selinux pam 
103syn keyword conaryUseFlag	contained bootstrap python perl 
104syn keyword conaryUseFlag	contained readline gdbm emacs krb builddocs 
105syn keyword conaryUseFlag	contained alternatives tcl tk X gtk gnome qt
106syn keyword conaryUseFlag	contained xfce gd ldap sasl pie desktop ssl kde
107syn keyword conaryUseFlag	contained slang netpbm nptl ipv6 buildtests
108syn keyword conaryUseFlag	contained ntpl xen dom0 domU
109syn match   conaryUse		"Use\.[a-z0-9A-Z]\+" contains=conaryUseFlag
110
111" strings
112syn region pythonString		matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape,conaryMacro,conaryBadMacro
113syn region pythonString		matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape,conaryMacro,conaryBadMacro
114syn region pythonString		matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape,conaryMacro,conaryBadMacro
115syn region pythonString		matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape,conaryMacro,conaryBadMacro
116syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+ contains=conaryMacro,conaryBadMacro
117syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+ contains=conaryMacro,conaryBadMacro
118syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+ contains=conaryMacro,conaryBadMacro
119syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+ contains=conaryMacro,conaryBadMacro
120
121hi def link conaryMacro			Special
122hi def link conaryrecipeFunction	Function
123hi def link conaryError			Error
124hi def link conaryBFunction		conaryrecipeFunction
125hi def link conaryGFunction        	conaryrecipeFunction
126hi def link conarySFunction		Operator
127hi def link conaryPFunction		Typedef
128hi def link conaryFlags			PreCondit
129hi def link conaryArches		Special
130hi def link conarySubArches		Special
131hi def link conaryBad			conaryError
132hi def link conaryBadMacro		conaryError
133hi def link conaryKeywords		Special
134hi def link conaryUseFlag		Typedef
135
136let b:current_syntax = "conaryrecipe"
137
138