blob: 606ac7fdf1e7e3c656f96d045d93bbd03c4f12bf [file] [log] [blame]
Bram Moolenaar0dc065e2005-07-04 22:49:24 +00001" Vim syntax file
Bram Moolenaar214641f2017-03-05 17:04:09 +01002" Language: nanorc(5) - GNU nano configuration file
3" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
4" Latest Revision: 2006-04-19
Bram Moolenaar0dc065e2005-07-04 22:49:24 +00005
6if exists("b:current_syntax")
7 finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn keyword nanorcTodo contained TODO FIXME XXX NOTE
14
15syn region nanorcComment display oneline start='^\s*#' end='$'
16 \ contains=nanorcTodo,@Spell
17
18syn match nanorcBegin display '^'
19 \ nextgroup=nanorcKeyword,nanorcComment
20 \ skipwhite
21
22syn keyword nanorcKeyword contained set unset
23 \ nextgroup=nanorcBoolOption,
24 \ nanorcStringOption,nanorcNumberOption
25 \ skipwhite
26
27syn keyword nanorcKeyword contained syntax
28 \ nextgroup=nanorcSynGroupName skipwhite
29
30syn keyword nanorcKeyword contained color
31 \ nextgroup=@nanorcFGColor skipwhite
32
33syn keyword nanorcBoolOption contained autoindent backup const cut
34 \ historylog morespace mouse multibuffer
35 \ noconvert nofollow nohelp nowrap preserve
36 \ rebinddelete regexp smarthome smooth suspend
37 \ tempfile view
38
39syn keyword nanorcStringOption contained backupdir brackets operatingdir
40 \ punct quotestr speller whitespace
41 \ nextgroup=nanorcString skipwhite
42
43syn keyword nanorcNumberOption contained fill tabsize
44 \ nextgroup=nanorcNumber skipwhite
45
46syn region nanorcSynGroupName contained display oneline start=+"+
47 \ end=+"\ze\%([[:blank:]]\|$\)+
48 \ nextgroup=nanorcRegexes skipwhite
49
50syn match nanorcString contained display '".*"'
51
52syn region nanorcRegexes contained display oneline start=+"+
53 \ end=+"\ze\%([[:blank:]]\|$\)+
54 \ nextgroup=nanorcRegexes skipwhite
55
56syn match nanorcNumber contained display '[+-]\=\<\d\+\>'
57
58syn cluster nanorcFGColor contains=nanorcFGWhite,nanorcFGBlack,
59 \ nanorcFGRed,nanorcFGBlue,nanorcFGGreen,
60 \ nanorcFGYellow,nanorcFGMagenta,nanorcFGCyan,
61 \ nanorcFGBWhite,nanorcFGBBlack,nanorcFGBRed,
62 \ nanorcFGBBlue,nanorcFGBGreen,nanorcFGBYellow,
63 \ nanorcFGBMagenta,nanorcFGBCyan
64
65syn keyword nanorcFGWhite contained white
66 \ nextgroup=@nanorcFGSpec skipwhite
67
68syn keyword nanorcFGBlack contained black
69 \ nextgroup=@nanorcFGSpec skipwhite
70
71syn keyword nanorcFGRed contained red
72 \ nextgroup=@nanorcFGSpec skipwhite
73
74syn keyword nanorcFGBlue contained blue
75 \ nextgroup=@nanorcFGSpec skipwhite
76
77syn keyword nanorcFGGreen contained green
78 \ nextgroup=@nanorcFGSpec skipwhite
79
80syn keyword nanorcFGYellow contained yellow
81 \ nextgroup=@nanorcFGSpec skipwhite
82
83syn keyword nanorcFGMagenta contained magenta
84 \ nextgroup=@nanorcFGSpec skipwhite
85
86syn keyword nanorcFGCyan contained cyan
87 \ nextgroup=@nanorcFGSpec skipwhite
88
89syn keyword nanorcFGBWhite contained brightwhite
90 \ nextgroup=@nanorcFGSpec skipwhite
91
92syn keyword nanorcFGBBlack contained brightblack
93 \ nextgroup=@nanorcFGSpec skipwhite
94
95syn keyword nanorcFGBRed contained brightred
96 \ nextgroup=@nanorcFGSpec skipwhite
97
98syn keyword nanorcFGBBlue contained brightblue
99 \ nextgroup=@nanorcFGSpec skipwhite
100
101syn keyword nanorcFGBGreen contained brightgreen
102 \ nextgroup=@nanorcFGSpec skipwhite
103
104syn keyword nanorcFGBYellow contained brightyellow
105 \ nextgroup=@nanorcFGSpec skipwhite
106
107syn keyword nanorcFGBMagenta contained brightmagenta
108 \ nextgroup=@nanorcFGSpec skipwhite
109
110syn keyword nanorcFGBCyan contained brightcyan
111 \ nextgroup=@nanorcFGSpec skipwhite
112
113syn cluster nanorcBGColor contains=nanorcBGWhite,nanorcBGBlack,
114 \ nanorcBGRed,nanorcBGBlue,nanorcBGGreen,
115 \ nanorcBGYellow,nanorcBGMagenta,nanorcBGCyan,
116 \ nanorcBGBWhite,nanorcBGBBlack,nanorcBGBRed,
117 \ nanorcBGBBlue,nanorcBGBGreen,nanorcBGBYellow,
118 \ nanorcBGBMagenta,nanorcBGBCyan
119
120syn keyword nanorcBGWhite contained white
121 \ nextgroup=@nanorcBGSpec skipwhite
122
123syn keyword nanorcBGBlack contained black
124 \ nextgroup=@nanorcBGSpec skipwhite
125
126syn keyword nanorcBGRed contained red
127 \ nextgroup=@nanorcBGSpec skipwhite
128
129syn keyword nanorcBGBlue contained blue
130 \ nextgroup=@nanorcBGSpec skipwhite
131
132syn keyword nanorcBGGreen contained green
133 \ nextgroup=@nanorcBGSpec skipwhite
134
135syn keyword nanorcBGYellow contained yellow
136 \ nextgroup=@nanorcBGSpec skipwhite
137
138syn keyword nanorcBGMagenta contained magenta
139 \ nextgroup=@nanorcBGSpec skipwhite
140
141syn keyword nanorcBGCyan contained cyan
142 \ nextgroup=@nanorcBGSpec skipwhite
143
144syn keyword nanorcBGBWhite contained brightwhite
145 \ nextgroup=@nanorcBGSpec skipwhite
146
147syn keyword nanorcBGBBlack contained brightblack
148 \ nextgroup=@nanorcBGSpec skipwhite
149
150syn keyword nanorcBGBRed contained brightred
151 \ nextgroup=@nanorcBGSpec skipwhite
152
153syn keyword nanorcBGBBlue contained brightblue
154 \ nextgroup=@nanorcBGSpec skipwhite
155
156syn keyword nanorcBGBGreen contained brightgreen
157 \ nextgroup=@nanorcBGSpec skipwhite
158
159syn keyword nanorcBGBYellow contained brightyellow
160 \ nextgroup=@nanorcBGSpec skipwhite
161
162syn keyword nanorcBGBMagenta contained brightmagenta
163 \ nextgroup=@nanorcBGSpec skipwhite
164
165syn keyword nanorcBGBCyan contained brightcyan
166 \ nextgroup=@nanorcBGSpec skipwhite
167
168syn match nanorcBGColorSep contained ',' nextgroup=@nanorcBGColor
169
170syn cluster nanorcFGSpec contains=nanorcBGColorSep,nanorcRegexes,
171 \ nanorcStartRegion
172
173syn cluster nanorcBGSpec contains=nanorcRegexes,nanorcStartRegion
174
175syn keyword nanorcStartRegion contained start nextgroup=nanorcStartRegionEq
176
177syn match nanorcStartRegionEq contained '=' nextgroup=nanorcRegion
178
179syn region nanorcRegion contained display oneline start=+"+
180 \ end=+"\ze\%([[:blank:]]\|$\)+
181 \ nextgroup=nanorcEndRegion skipwhite
182
183syn keyword nanorcEndRegion contained end nextgroup=nanorcStartRegionEq
184
185syn match nanorcEndRegionEq contained '=' nextgroup=nanorcRegex
186
187syn region nanorcRegex contained display oneline start=+"+
188 \ end=+"\ze\%([[:blank:]]\|$\)+
189
190hi def link nanorcTodo Todo
191hi def link nanorcComment Comment
192hi def link nanorcKeyword Keyword
193hi def link nanorcBoolOption Identifier
194hi def link nanorcStringOption Identifier
195hi def link nanorcNumberOption Identifier
196hi def link nanorcSynGroupName String
197hi def link nanorcString String
198hi def link nanorcRegexes nanorcString
199hi def link nanorcNumber Number
200hi def nanorcFGWhite ctermfg=Gray guifg=Gray
201hi def nanorcFGBlack ctermfg=Black guifg=Black
202hi def nanorcFGRed ctermfg=DarkRed guifg=DarkRed
203hi def nanorcFGBlue ctermfg=DarkBlue guifg=DarkBlue
204hi def nanorcFGGreen ctermfg=DarkGreen guifg=DarkGreen
205hi def nanorcFGYellow ctermfg=Brown guifg=Brown
206hi def nanorcFGMagenta ctermfg=DarkMagenta guifg=DarkMagenta
207hi def nanorcFGCyan ctermfg=DarkCyan guifg=DarkCyan
208hi def nanorcFGBWhite ctermfg=White guifg=White
209hi def nanorcFGBBlack ctermfg=DarkGray guifg=DarkGray
210hi def nanorcFGBRed ctermfg=Red guifg=Red
211hi def nanorcFGBBlue ctermfg=Blue guifg=Blue
212hi def nanorcFGBGreen ctermfg=Green guifg=Green
213hi def nanorcFGBYellow ctermfg=Yellow guifg=Yellow
214hi def nanorcFGBMagenta ctermfg=Magenta guifg=Magenta
215hi def nanorcFGBCyan ctermfg=Cyan guifg=Cyan
216hi def link nanorcBGColorSep Normal
217hi def nanorcBGWhite ctermbg=Gray guibg=Gray
218hi def nanorcBGBlack ctermbg=Black guibg=Black
219hi def nanorcBGRed ctermbg=DarkRed guibg=DarkRed
220hi def nanorcBGBlue ctermbg=DarkBlue guibg=DarkBlue
221hi def nanorcBGGreen ctermbg=DarkGreen guibg=DarkGreen
222hi def nanorcBGYellow ctermbg=Brown guibg=Brown
223hi def nanorcBGMagenta ctermbg=DarkMagenta guibg=DarkMagenta
224hi def nanorcBGCyan ctermbg=DarkCyan guibg=DarkCyan
225hi def nanorcBGBWhite ctermbg=White guibg=White
226hi def nanorcBGBBlack ctermbg=DarkGray guibg=DarkGray
227hi def nanorcBGBRed ctermbg=Red guibg=Red
228hi def nanorcBGBBlue ctermbg=Blue guibg=Blue
229hi def nanorcBGBGreen ctermbg=Green guibg=Green
230hi def nanorcBGBYellow ctermbg=Yellow guibg=Yellow
231hi def nanorcBGBMagenta ctermbg=Magenta guibg=Magenta
232hi def nanorcBGBCyan ctermbg=Cyan guibg=Cyan
233hi def link nanorcStartRegion Type
234hi def link nanorcStartRegionEq Operator
235hi def link nanorcRegion nanorcString
236hi def link nanorcEndRegion Type
237hi def link nanorcEndRegionEq Operator
238hi def link nanorcRegex nanoRegexes
239
240let b:current_syntax = "nanorc"
241
242let &cpo = s:cpo_save
243unlet s:cpo_save