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