blob: 6d410f57b3fd5863a1bc7c9e5700fa5956d0135b [file] [log] [blame]
Bram Moolenaar0dc065e2005-07-04 22:49:24 +00001" Vim syntax file
2" Language: setserial(8) configuration file
3" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
4" Latest Revision: 2005-07-04
5
6if exists("b:current_syntax")
7 finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn match setserialBegin display '^'
14 \ nextgroup=setserialDevice,setserialComment
15 \ skipwhite
16
17syn match setserialDevice contained display '\%(/[^ \t/]*\)\+'
18 \ nextgroup=setserialParameter skipwhite
19
20syn keyword setserialParameter contained port irq baud_base divisor
21 \ close_delay closing_wait rx_trigger
22 \ tx_trigger flow_off flow_on rx_timeout
23 \ nextgroup=setserialNumber skipwhite
24
25syn keyword setserialParameter contained uart
26 \ nextgroup=setserialUARTType skipwhite
27
28syn keyword setserialParameter contained autoconfig auto_irq skip_test
29 \ spd_hi spd_vhi spd_shi spd_warp spd_cust
30 \ spd_normal sak fourport session_lockout
31 \ pgrp_lockout hup_notify split_termios
32 \ callout_nohup low_latency
33 \ nextgroup=setserialParameter skipwhite
34
35syn match setserialParameter contained display
36 \ '\^\%(auto_irq\|skip_test\|sak\|fourport\)'
37 \ contains=setserialNegation
38 \ nextgroup=setserialParameter skipwhite
39
40syn match setserialParameter contained display
41 \ '\^\%(session_lockout\|pgrp_lockout\)'
42 \ contains=setserialNegation
43 \ nextgroup=setserialParameter skipwhite
44
45syn match setserialParameter contained display
46 \ '\^\%(hup_notify\|split_termios\)'
47 \ contains=setserialNegation
48 \ nextgroup=setserialParameter skipwhite
49
50syn match setserialParameter contained display
51 \ '\^\%(callout_nohup\|low_latency\)'
52 \ contains=setserialNegation
53 \ nextgroup=setserialParameter skipwhite
54
55syn keyword setserialParameter contained set_multiport
56 \ nextgroup=setserialMultiport skipwhite
57
58syn match setserialNumber contained display '\<\d\+\>'
59 \ nextgroup=setserialParameter skipwhite
60syn match setserialNumber contained display '0x\x\+'
61 \ nextgroup=setserialParameter skipwhite
62
63syn keyword setserialUARTType contained none
64
65syn match setserialUARTType contained display
66 \ '8250\|16[4789]50\|16550A\=\|16650\%(V2\)\='
67 \ nextgroup=setserialParameter skipwhite
68
69syn match setserialUARTType contained display '166[59]4'
70 \ nextgroup=setserialParameter skipwhite
71
72syn match setserialNegation contained display '\^'
73
74syn match setserialMultiport contained '\<port\d\+\>'
75 \ nextgroup=setserialPort skipwhite
76
77syn match setserialPort contained display '\<\d\+\>'
78 \ nextgroup=setserialMask skipwhite
79syn match setserialPort contained display '0x\x\+'
80 \ nextgroup=setserialMask skipwhite
81
82syn match setserialMask contained '\<mask\d\+\>'
83 \ nextgroup=setserialBitMask skipwhite
84
85syn match setserialBitMask contained display '\<\d\+\>'
86 \ nextgroup=setserialMatch skipwhite
87syn match setserialBitMask contained display '0x\x\+'
88 \ nextgroup=setserialMatch skipwhite
89
90syn match setserialMatch contained '\<match\d\+\>'
91 \ nextgroup=setserialMatchBits skipwhite
92
93syn match setserialMatchBits contained display '\<\d\+\>'
94 \ nextgroup=setserialMultiport skipwhite
95syn match setserialMatchBits contained display '0x\x\+'
96 \ nextgroup=setserialMultiport skipwhite
97
98syn keyword setserialTodo contained TODO FIXME XXX NOTE
99
100syn region setserialComment display oneline start='^\s*#' end='$'
101 \ contains=setserialTodo,@Spell
102
103hi def link setserialTodo Todo
104hi def link setserialComment Comment
105hi def link setserialDevice Normal
106hi def link setserialParameter Identifier
107hi def link setserialNumber Number
108hi def link setserialUARTType Type
109hi def link setserialNegation Operator
110hi def link setserialMultiport Type
111hi def link setserialPort setserialNumber
112hi def link setserialMask Type
113hi def link setserialBitMask setserialNumber
114hi def link setserialMatch Type
115hi def link setserialMatchBits setserialNumber
116
117let b:current_syntax = "setserial"
118
119let &cpo = s:cpo_save
120unlet s:cpo_save