Merge branch 'vim-runtime'
[vim_mainline.git] / runtime / syntax / fdcc.vim
blob38717ebfb8966f4310914b3889d95c6b5ae2c544
1 " Vim syntax file
2 " Language:     fdcc or locale files
3 " Maintainer:   Dwayne Bailey <dwayne@translate.org.za>
4 " Last Change:  2004 May 16
5 " Remarks:      FDCC (Formal Definitions of Cultural Conventions) see ISO TR 14652
7 " For version 5.x: Clear all syntax items
8 " For version 6.x: Quit when a syntax file was already loaded
9 if version < 600
10   syntax clear
11 elseif exists("b:current_syntax")
12   finish
13 endif
15 syn sync minlines=150
16 setlocal iskeyword+=-
18 " Numbers
19 syn match fdccNumber /[0-9]*/ contained
21 " Unicode codings and strings
22 syn match fdccUnicodeInValid /<[^<]*>/ contained
23 syn match fdccUnicodeValid /<U[0-9A-F][0-9A-F][0-9A-F][0-9A-F]>/ contained
24 syn region fdccString start=/"/ end=/"/ contains=fdccUnicodeInValid,fdccUnicodeValid
26 " Valid LC_ Keywords
27 syn keyword fdccKeyword escape_char comment_char
28 syn keyword fdccKeywordIdentification title source address contact email tel fax language territory revision date category
29 syn keyword fdccKeywordCtype copy space translit_start include translit_end outdigit class
30 syn keyword fdccKeywordCollate copy script order_start order_end collating-symbol reorder-after reorder-end collating-element symbol-equivalence
31 syn keyword fdccKeywordMonetary copy int_curr_symbol currency_symbol mon_decimal_point mon_thousands_sep mon_grouping positive_sign negative_sign int_frac_digits frac_digits p_cs_precedes p_sep_by_space n_cs_precedes n_sep_by_space p_sign_posn n_sign_posn int_p_cs_precedes int_p_sep_by_space int_n_cs_precedes int_n_sep_by_space  int_p_sign_posn int_n_sign_posn
32 syn keyword fdccKeywordNumeric copy decimal_point thousands_sep grouping
33 syn keyword fdccKeywordTime copy abday day abmon mon d_t_fmt d_fmt t_fmt am_pm t_fmt_ampm date_fmt era_d_fmt first_weekday first_workday week cal_direction time_zone era alt_digits era_d_t_fmt
34 syn keyword fdccKeywordMessages copy yesexpr noexpr yesstr nostr
35 syn keyword fdccKeywordPaper copy height width
36 syn keyword fdccKeywordTelephone copy tel_int_fmt int_prefix tel_dom_fmt int_select
37 syn keyword fdccKeywordMeasurement copy measurement
38 syn keyword fdccKeywordName copy name_fmt name_gen name_mr name_mrs name_miss name_ms
39 syn keyword fdccKeywordAddress copy postal_fmt country_name country_post country_ab2 country_ab3  country_num country_car  country_isbn lang_name lang_ab lang_term lang_lib
41 " Comments
42 syn keyword fdccTodo TODO FIXME contained
43 syn match fdccVariable /%[a-zA-Z]/ contained
44 syn match fdccComment /[#%].*/ contains=fdccTodo,fdccVariable
46 " LC_ Groups
47 syn region fdccBlank matchgroup=fdccLCIdentification start=/^LC_IDENTIFICATION$/ end=/^END LC_IDENTIFICATION$/ contains=fdccKeywordIdentification,fdccString,fdccComment
48 syn region fdccBlank matchgroup=fdccLCCtype start=/^LC_CTYPE$/ end=/^END LC_CTYPE$/ contains=fdccKeywordCtype,fdccString,fdccComment,fdccUnicodeInValid,fdccUnicodeValid
49 syn region fdccBlank matchgroup=fdccLCCollate start=/^LC_COLLATE$/ end=/^END LC_COLLATE$/ contains=fdccKeywordCollate,fdccString,fdccComment,fdccUnicodeInValid,fdccUnicodeValid
50 syn region fdccBlank matchgroup=fdccLCMonetary start=/^LC_MONETARY$/ end=/^END LC_MONETARY$/ contains=fdccKeywordMonetary,fdccString,fdccComment,fdccNumber
51 syn region fdccBlank matchgroup=fdccLCNumeric start=/^LC_NUMERIC$/ end=/^END LC_NUMERIC$/ contains=fdccKeywordNumeric,fdccString,fdccComment,fdccNumber
52 syn region fdccBlank matchgroup=fdccLCTime start=/^LC_TIME$/ end=/^END LC_TIME$/ contains=fdccKeywordTime,fdccString,fdccComment,fdccNumber
53 syn region fdccBlank matchgroup=fdccLCMessages start=/^LC_MESSAGES$/ end=/^END LC_MESSAGES$/ contains=fdccKeywordMessages,fdccString,fdccComment
54 syn region fdccBlank matchgroup=fdccLCPaper start=/^LC_PAPER$/ end=/^END LC_PAPER$/ contains=fdccKeywordPaper,fdccString,fdccComment,fdccNumber
55 syn region fdccBlank matchgroup=fdccLCTelephone start=/^LC_TELEPHONE$/ end=/^END LC_TELEPHONE$/ contains=fdccKeywordTelephone,fdccString,fdccComment
56 syn region fdccBlank matchgroup=fdccLCMeasurement start=/^LC_MEASUREMENT$/ end=/^END LC_MEASUREMENT$/ contains=fdccKeywordMeasurement,fdccString,fdccComment,fdccNumber
57 syn region fdccBlank matchgroup=fdccLCName start=/^LC_NAME$/ end=/^END LC_NAME$/ contains=fdccKeywordName,fdccString,fdccComment
58 syn region fdccBlank matchgroup=fdccLCAddress start=/^LC_ADDRESS$/ end=/^END LC_ADDRESS$/ contains=fdccKeywordAddress,fdccString,fdccComment,fdccNumber
61 " For version 5.7 and earlier: only when not done already
62 " For version 5.8 and later: only when an item doesn't have highlighting yet
63 if version >= 508 || !exists("did_fdcc_syn_inits")
64   if version < 508
65     let did_fdcc_syn_inits = 1
66     command -nargs=+ HiLink hi link <args>
67   else
68     command -nargs=+ HiLink hi def link <args>
69   endif
71   HiLink fdccBlank               Blank
73   HiLink fdccTodo                Todo
74   HiLink fdccComment             Comment
75   HiLink fdccVariable            Type
77   HiLink fdccLCIdentification    Statement
78   HiLink fdccLCCtype             Statement
79   HiLink fdccLCCollate           Statement
80   HiLink fdccLCMonetary          Statement
81   HiLink fdccLCNumeric           Statement
82   HiLink fdccLCTime              Statement
83   HiLink fdccLCMessages          Statement
84   HiLink fdccLCPaper             Statement
85   HiLink fdccLCTelephone         Statement
86   HiLink fdccLCMeasurement       Statement
87   HiLink fdccLCName              Statement
88   HiLink fdccLCAddress           Statement
90   HiLink fdccUnicodeInValid      Error
91   HiLink fdccUnicodeValid        String
92   HiLink fdccString              String
93   HiLink fdccNumber              Blank
95   HiLink fdccKeywordIdentification fdccKeyword
96   HiLink fdccKeywordCtype          fdccKeyword
97   HiLink fdccKeywordCollate        fdccKeyword
98   HiLink fdccKeywordMonetary       fdccKeyword
99   HiLink fdccKeywordNumeric        fdccKeyword
100   HiLink fdccKeywordTime           fdccKeyword
101   HiLink fdccKeywordMessages       fdccKeyword
102   HiLink fdccKeywordPaper          fdccKeyword
103   HiLink fdccKeywordTelephone      fdccKeyword
104   HiLink fdccKeywordMeasurement    fdccKeyword
105   HiLink fdccKeywordName           fdccKeyword
106   HiLink fdccKeywordAddress        fdccKeyword
107   HiLink fdccKeyword               Identifier
109   delcommand HiLink
110 endif
112 let b:current_syntax = "fdcc"
114 " vim: ts=8