summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/fpcmake.vim
blob: bbc6f1d77078cd45c4a862d68189343dfe3bfaca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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: