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