xref: /vim-8.2.3635/runtime/syntax/fpcmake.vim (revision 4c295027)
1*4c295027SBram Moolenaar" Vim syntax file
2*4c295027SBram Moolenaar" Language:	Free Pascal Makefile Definition Files
3*4c295027SBram Moolenaar" Maintainer:	Doug Kearns <[email protected]>
4*4c295027SBram Moolenaar" Last Change:	2021 Apr 23
5*4c295027SBram Moolenaar
6*4c295027SBram Moolenaarif exists("b:current_syntax")
7*4c295027SBram Moolenaar  finish
8*4c295027SBram Moolenaarendif
9*4c295027SBram Moolenaar
10*4c295027SBram Moolenaarruntime! syntax/make.vim
11*4c295027SBram Moolenaar
12*4c295027SBram Moolenaar" NOTE: using start-of-line anchored syn-match groups is simpler than other
13*4c295027SBram Moolenaar"	alternatives when interacting with the sourced make.vim syntax groups
14*4c295027SBram Moolenaar
15*4c295027SBram Moolenaar" Sections
16*4c295027SBram Moolenaarsyn region fpcmakeSection matchgroup=fpcmakeSectionDelimiter start="^\s*\[" end="]" contains=fpcmakeSectionName
17*4c295027SBram Moolenaar
18*4c295027SBram Moolenaarsyn keyword fpcmakeSectionName contained clean compiler default dist install
19*4c295027SBram Moolenaarsyn keyword fpcmakeSectionName contained lib package prerules require rules
20*4c295027SBram Moolenaarsyn keyword fpcmakeSectionName contained shared target
21*4c295027SBram Moolenaar
22*4c295027SBram Moolenaar" [clean]
23*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(units\|files\)\>"
24*4c295027SBram Moolenaar" [compiler]
25*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(options\|version\|unitdir\|librarydir\|objectdir\)\>"
26*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(targetdir\|sourcedir\|unittargetdir\|includedir\)\>"
27*4c295027SBram Moolenaar" [default]
28*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(cpu\|dir\|fpcdir\|rule\|target\)\>"
29*4c295027SBram Moolenaar" [dist]
30*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(destdir\|zipname\|ziptarget\)\>"
31*4c295027SBram Moolenaar" [install]
32*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(basedir\|datadir\|fpcpackage\|files\|prefix\)\>"
33*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(units\)\>"
34*4c295027SBram Moolenaar" [package]
35*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(name\|version\|main\)\>"
36*4c295027SBram Moolenaar" [requires]
37*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(fpcmake\|packages\|libc\|nortl\|unitdir\)\>"
38*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(packagedir\|tools\)\>"
39*4c295027SBram Moolenaar" [shared]
40*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(build\|libname\|libversion\|libunits\)\>"
41*4c295027SBram Moolenaar" [target]
42*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(dirs\|exampledirs\|examples\|loaders\|programs\)\>"
43*4c295027SBram Moolenaarsyn match fpcmakeRule "^\s*\(rsts\|units\)\>"
44*4c295027SBram Moolenaar
45*4c295027SBram Moolenaar" Comments
46*4c295027SBram Moolenaarsyn keyword fpcmakeTodo    TODO FIXME XXX contained
47*4c295027SBram Moolenaarsyn match   fpcmakeComment "#.*" contains=fpcmakeTodo,@Spell
48*4c295027SBram Moolenaar
49*4c295027SBram Moolenaar" Default highlighting
50*4c295027SBram Moolenaarhi def link fpcmakeSectionDelimiter	Delimiter
51*4c295027SBram Moolenaarhi def link fpcmakeSectionName		Type
52*4c295027SBram Moolenaarhi def link fpcmakeComment		Comment
53*4c295027SBram Moolenaarhi def link fpcmakeTodo			Todo
54*4c295027SBram Moolenaarhi def link fpcmakeRule			Identifier
55*4c295027SBram Moolenaar
56*4c295027SBram Moolenaarlet b:current_syntax = "fpcmake"
57*4c295027SBram Moolenaar
58*4c295027SBram Moolenaar" vim: nowrap sw=2 sts=2 ts=8 noet:
59