diff options
Diffstat (limited to 'runtime/syntax/fpcmake.vim')
-rw-r--r-- | runtime/syntax/fpcmake.vim | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/runtime/syntax/fpcmake.vim b/runtime/syntax/fpcmake.vim new file mode 100644 index 0000000..bbc6f1d --- /dev/null +++ b/runtime/syntax/fpcmake.vim @@ -0,0 +1,58 @@ +" Vim syntax file +" Language: Free Pascal Makefile Definition Files +" Maintainer: Doug Kearns <dougkearns@gmail.com> +" Last Change: 2021 Apr 23 + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/make.vim + +" NOTE: using start-of-line anchored syn-match groups is simpler than other +" alternatives when interacting with the sourced make.vim syntax groups + +" Sections +syn region fpcmakeSection matchgroup=fpcmakeSectionDelimiter start="^\s*\[" end="]" contains=fpcmakeSectionName + +syn keyword fpcmakeSectionName contained clean compiler default dist install +syn keyword fpcmakeSectionName contained lib package prerules require rules +syn keyword fpcmakeSectionName contained shared target + +" [clean] +syn match fpcmakeRule "^\s*\(units\|files\)\>" +" [compiler] +syn match fpcmakeRule "^\s*\(options\|version\|unitdir\|librarydir\|objectdir\)\>" +syn match fpcmakeRule "^\s*\(targetdir\|sourcedir\|unittargetdir\|includedir\)\>" +" [default] +syn match fpcmakeRule "^\s*\(cpu\|dir\|fpcdir\|rule\|target\)\>" +" [dist] +syn match fpcmakeRule "^\s*\(destdir\|zipname\|ziptarget\)\>" +" [install] +syn match fpcmakeRule "^\s*\(basedir\|datadir\|fpcpackage\|files\|prefix\)\>" +syn match fpcmakeRule "^\s*\(units\)\>" +" [package] +syn match fpcmakeRule "^\s*\(name\|version\|main\)\>" +" [requires] +syn match fpcmakeRule "^\s*\(fpcmake\|packages\|libc\|nortl\|unitdir\)\>" +syn match fpcmakeRule "^\s*\(packagedir\|tools\)\>" +" [shared] +syn match fpcmakeRule "^\s*\(build\|libname\|libversion\|libunits\)\>" +" [target] +syn match fpcmakeRule "^\s*\(dirs\|exampledirs\|examples\|loaders\|programs\)\>" +syn match fpcmakeRule "^\s*\(rsts\|units\)\>" + +" Comments +syn keyword fpcmakeTodo TODO FIXME XXX contained +syn match fpcmakeComment "#.*" contains=fpcmakeTodo,@Spell + +" Default highlighting +hi def link fpcmakeSectionDelimiter Delimiter +hi def link fpcmakeSectionName Type +hi def link fpcmakeComment Comment +hi def link fpcmakeTodo Todo +hi def link fpcmakeRule Identifier + +let b:current_syntax = "fpcmake" + +" vim: nowrap sw=2 sts=2 ts=8 noet: |