xref: /vim-8.2.3635/runtime/syntax/psf.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Software Distributor product specification file
3071d4279SBram Moolenaar"		(POSIX 1387.2-1995).
4071d4279SBram Moolenaar" Maintainer:	Rex Barzee <[email protected]>
5071d4279SBram Moolenaar" Last change:	25 Apr 2001
6071d4279SBram Moolenaar
789bcfda6SBram Moolenaar" quit when a syntax file was already loaded
889bcfda6SBram Moolenaarif exists("b:current_syntax")
9071d4279SBram Moolenaar  finish
10071d4279SBram Moolenaarendif
11071d4279SBram Moolenaar
12071d4279SBram Moolenaar" Product specification files are case sensitive
13071d4279SBram Moolenaarsyn case match
14071d4279SBram Moolenaar
15071d4279SBram Moolenaarsyn keyword psfObject bundle category control_file depot distribution
16071d4279SBram Moolenaarsyn keyword psfObject end file fileset host installed_software media
17071d4279SBram Moolenaarsyn keyword psfObject product root subproduct vendor
18071d4279SBram Moolenaar
19071d4279SBram Moolenaarsyn match  psfUnquotString +[^"# 	][^#]*+ contained
20071d4279SBram Moolenaarsyn region psfQuotString   start=+"+ skip=+\\"+ end=+"+ contained
21071d4279SBram Moolenaar
22071d4279SBram Moolenaarsyn match  psfObjTag    "\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*" contained
23071d4279SBram Moolenaarsyn match  psfAttAbbrev ",\<\(fa\|fr\|[aclqrv]\)\(<\|>\|<=\|>=\|=\|==\)[^,]\+" contained
24071d4279SBram Moolenaarsyn match  psfObjTags   "\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*\(\s\+\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*\)*" contained
25071d4279SBram Moolenaar
26071d4279SBram Moolenaarsyn match  psfNumber    "\<\d\+\>" contained
27071d4279SBram Moolenaarsyn match  psfFloat     "\<\d\+\>\(\.\<\d\+\>\)*" contained
28071d4279SBram Moolenaar
29071d4279SBram Moolenaarsyn match  psfLongDate  "\<\d\d\d\d\d\d\d\d\d\d\d\d\.\d\d\>" contained
30071d4279SBram Moolenaar
31071d4279SBram Moolenaarsyn keyword psfState    available configured corrupt installed transient contained
32071d4279SBram Moolenaarsyn keyword psfPState   applied committed superseded contained
33071d4279SBram Moolenaar
34071d4279SBram Moolenaarsyn keyword psfBoolean  false true contained
35071d4279SBram Moolenaar
36071d4279SBram Moolenaar
37071d4279SBram Moolenaar"Some of the attributes covered by attUnquotString and attQuotString:
38071d4279SBram Moolenaar" architecture category_tag control_directory copyright
39071d4279SBram Moolenaar" create_date description directory file_permissions install_source
40071d4279SBram Moolenaar" install_type location machine_type mod_date number os_name os_release
41071d4279SBram Moolenaar" os_version pose_as_os_name pose_as_os_release readme revision
42071d4279SBram Moolenaar" share_link title vendor_tag
43071d4279SBram Moolenaarsyn region psfAttUnquotString matchgroup=psfAttrib start=~^\s*[^# 	]\+\s\+[^#" 	]~rs=e-1 contains=psfUnquotString,psfComment end=~$~ keepend oneline
44071d4279SBram Moolenaar
45071d4279SBram Moolenaarsyn region psfAttQuotString matchgroup=psfAttrib start=~^\s*[^# 	]\+\s\+"~rs=e-1 contains=psfQuotString,psfComment skip=~\\"~ matchgroup=psfQuotString end=~"~ keepend
46071d4279SBram Moolenaar
47071d4279SBram Moolenaar
48071d4279SBram Moolenaar" These regions are defined in attempt to do syntax checking for some
49071d4279SBram Moolenaar" of the attributes.
50071d4279SBram Moolenaarsyn region psfAttTag matchgroup=psfAttrib start="^\s*tag\s\+" contains=psfObjTag,psfComment end="$" keepend oneline
51071d4279SBram Moolenaar
52071d4279SBram Moolenaarsyn region psfAttSpec matchgroup=psfAttrib start="^\s*\(ancestor\|applied_patches\|applied_to\|contents\|corequisites\|exrequisites\|prerequisites\|software_spec\|supersedes\|superseded_by\)\s\+" contains=psfObjTag,psfAttAbbrev,psfComment end="$" keepend
53071d4279SBram Moolenaar
54071d4279SBram Moolenaarsyn region psfAttTags matchgroup=psfAttrib start="^\s*all_filesets\s\+" contains=psfObjTags,psfComment end="$" keepend
55071d4279SBram Moolenaar
56071d4279SBram Moolenaarsyn region psfAttNumber matchgroup=psfAttrib start="^\s*\(compressed_size\|instance_id\|media_sequence_number\|sequence_number\|size\)\s\+" contains=psfNumber,psfComment end="$" keepend oneline
57071d4279SBram Moolenaar
58071d4279SBram Moolenaarsyn region psfAttTime matchgroup=psfAttrib start="^\s*\(create_time\|ctime\|mod_time\|mtime\|timestamp\)\s\+" contains=psfNumber,psfComment end="$" keepend oneline
59071d4279SBram Moolenaar
60071d4279SBram Moolenaarsyn region psfAttFloat matchgroup=psfAttrib start="^\s*\(data_model_revision\|layout_version\)\s\+" contains=psfFloat,psfComment end="$" keepend oneline
61071d4279SBram Moolenaar
62071d4279SBram Moolenaarsyn region psfAttLongDate matchgroup=psfAttrib start="^\s*install_date\s\+" contains=psfLongDate,psfComment end="$" keepend oneline
63071d4279SBram Moolenaar
64071d4279SBram Moolenaarsyn region psfAttState matchgroup=psfAttrib start="^\s*\(state\)\s\+" contains=psfState,psfComment end="$" keepend oneline
65071d4279SBram Moolenaar
66071d4279SBram Moolenaarsyn region psfAttPState matchgroup=psfAttrib start="^\s*\(patch_state\)\s\+" contains=psfPState,psfComment end="$" keepend oneline
67071d4279SBram Moolenaar
68071d4279SBram Moolenaarsyn region psfAttBoolean matchgroup=psfAttrib start="^\s*\(is_kernel\|is_locatable\|is_patch\|is_protected\|is_reboot\|is_reference\|is_secure\|is_sparse\)\s\+" contains=psfBoolean,psfComment end="$" keepend oneline
69071d4279SBram Moolenaar
70071d4279SBram Moolenaarsyn match  psfComment "#.*$"
71071d4279SBram Moolenaar
72071d4279SBram Moolenaar
73071d4279SBram Moolenaar" Define the default highlighting.
7489bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
75071d4279SBram Moolenaar
76*f37506f6SBram Moolenaarhi def link psfObject       Statement
77*f37506f6SBram Moolenaarhi def link psfAttrib       Type
78*f37506f6SBram Moolenaarhi def link psfQuotString   String
79*f37506f6SBram Moolenaarhi def link psfObjTag       Identifier
80*f37506f6SBram Moolenaarhi def link psfAttAbbrev    PreProc
81*f37506f6SBram Moolenaarhi def link psfObjTags      Identifier
82071d4279SBram Moolenaar
83*f37506f6SBram Moolenaarhi def link psfComment      Comment
84071d4279SBram Moolenaar
85071d4279SBram Moolenaar
86071d4279SBram Moolenaar" Long descriptions and copyrights confuse the syntax highlighting, so
87071d4279SBram Moolenaar" force vim to backup at least 100 lines before the top visible line
88071d4279SBram Moolenaar" looking for a sync location.
89071d4279SBram Moolenaarsyn sync lines=100
90071d4279SBram Moolenaar
91071d4279SBram Moolenaarlet b:current_syntax = "psf"
92