blob: 3831ae114929b73baf48c5a937be24e7e3ba60dc [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar214641f2017-03-05 17:04:09 +01002" Language: readline(3) configuration file
Bram Moolenaar40962ec2018-01-28 22:47:25 +01003" Maintainer: Daniel Moch <daniel@danielmoch.com>
Bram Moolenaar214641f2017-03-05 17:04:09 +01004" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
Bram Moolenaar91f84f62018-07-29 15:07:52 +02005" Latest Revision: 2018-07-26
6" Add new functions for Readline 7 / Bash 4.4
7" (credit: Github user bewuethr)
Bram Moolenaar071d4272004-06-13 20:20:40 +00008
Bram Moolenaar446beb42011-05-10 17:18:44 +02009if exists('b:current_syntax')
Bram Moolenaar071d4272004-06-13 20:20:40 +000010 finish
11endif
12
Bram Moolenaar42eeac32005-06-29 22:40:58 +000013let s:cpo_save = &cpo
14set cpo&vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000015
Bram Moolenaar446cb832008-06-24 21:56:24 +000016setlocal iskeyword+=-
Bram Moolenaar071d4272004-06-13 20:20:40 +000017
Bram Moolenaar446beb42011-05-10 17:18:44 +020018syn match readlineKey contained
19 \ '\S'
20 \ nextgroup=readlineKeyTerminator
Bram Moolenaar071d4272004-06-13 20:20:40 +000021
Bram Moolenaar446beb42011-05-10 17:18:44 +020022syn match readlineBegin display '^'
23 \ nextgroup=readlineComment,
24 \ readlineConditional,
25 \ readlineInclude,
26 \ readlineKeyName,
27 \ readlineKey,
28 \ readlineKeySeq,
29 \ readlineKeyword
30 \ skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000031
Bram Moolenaar446beb42011-05-10 17:18:44 +020032syn region readlineComment contained display oneline
33 \ start='#'
34 \ end='$'
35 \ contains=readlineTodo,
36 \ @Spell
37
38syn keyword readlineTodo contained
39 \ TODO
40 \ FIXME
41 \ XXX
42 \ NOTE
43
44syn match readlineConditional contained
45 \ '$if\>'
46 \ nextgroup=readlineTest,
47 \ readlineTestApp
48 \ skipwhite
49
50syn keyword readlineTest contained
51 \ mode
52 \ nextgroup=readlineTestModeEq
53
54syn match readlineTestModeEq contained
55 \ '='
56 \ nextgroup=readlineEditingMode
57
58syn keyword readlineTest contained
59 \ term
60 \ nextgroup=readlineTestTermEq
61
62syn match readlineTestTermEq contained
63 \ '='
64 \ nextgroup=readlineTestTerm
65
66syn match readlineTestTerm contained
67 \ '\S\+'
68
69syn match readlineTestApp contained
70 \ '\S\+'
71
72syn match readlineConditional contained display
73 \ '$\%(else\|endif\)\>'
74
75syn match readlineInclude contained display
76 \ '$include\>'
77 \ nextgroup=readlinePath
78
79syn match readlinePath contained display
80 \ '.\+'
Bram Moolenaar42eeac32005-06-29 22:40:58 +000081
Bram Moolenaar071d4272004-06-13 20:20:40 +000082syn case ignore
Bram Moolenaar446beb42011-05-10 17:18:44 +020083syn match readlineKeyName contained display
84 \ nextgroup=readlineKeySeparator,
85 \ readlineKeyTerminator
86 \ '\%(Control\|Del\|Esc\|Escape\|LFD\|Meta\|Newline\|Ret\|Return\|Rubout\|Space\|Spc\|Tab\)'
Bram Moolenaar071d4272004-06-13 20:20:40 +000087syn case match
88
Bram Moolenaar446beb42011-05-10 17:18:44 +020089syn match readlineKeySeparator contained
90 \ '-'
91 \ nextgroup=readlineKeyName,
92 \ readlineKey
Bram Moolenaar071d4272004-06-13 20:20:40 +000093
Bram Moolenaar446beb42011-05-10 17:18:44 +020094syn match readlineKeyTerminator contained
95 \ ':'
96 \ nextgroup=readlineFunction
97 \ skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000098
Bram Moolenaar446beb42011-05-10 17:18:44 +020099syn region readlineKeySeq contained display oneline
100 \ start=+"+
101 \ skip=+\\\\\|\\"+
102 \ end=+"+
103 \ contains=readlineKeyEscape
104 \ nextgroup=readlineKeyTerminator
Bram Moolenaar071d4272004-06-13 20:20:40 +0000105
Bram Moolenaar446beb42011-05-10 17:18:44 +0200106syn match readlineKeyEscape contained display
107 \ +\\\([CM]-\|[e\\"'abdfnrtv]\|\o\{3}\|x\x\{2}\)+
108
109syn keyword readlineKeyword contained
110 \ set
111 \ nextgroup=readlineVariable
112 \ skipwhite
113
Bram Moolenaar91f84f62018-07-29 15:07:52 +0200114syn keyword readlineVariable contained
Bram Moolenaar446beb42011-05-10 17:18:44 +0200115 \ nextgroup=readlineBellStyle
116 \ skipwhite
117 \ bell-style
118
119syn keyword readlineVariable contained
120 \ nextgroup=readlineBoolean
121 \ skipwhite
122 \ bind-tty-special-chars
Bram Moolenaar91f84f62018-07-29 15:07:52 +0200123 \ blink-matching-paren
124 \ colored-completion-prefix
Bram Moolenaar37c64c72017-09-19 22:06:03 +0200125 \ colored-stats
Bram Moolenaar446beb42011-05-10 17:18:44 +0200126 \ completion-ignore-case
127 \ completion-map-case
128 \ convert-meta
129 \ disable-completion
130 \ echo-control-characters
Bram Moolenaar91f84f62018-07-29 15:07:52 +0200131 \ enable-bracketed-paste
Bram Moolenaar446beb42011-05-10 17:18:44 +0200132 \ enable-keypad
133 \ enable-meta-key
134 \ expand-tilde
135 \ history-preserve-point
136 \ horizontal-scroll-mode
137 \ input-meta
138 \ meta-flag
139 \ mark-directories
140 \ mark-modified-lines
141 \ mark-symlinked-directories
142 \ match-hidden-files
143 \ menu-complete-display-prefix
144 \ output-meta
145 \ page-completions
146 \ print-completions-horizontally
147 \ revert-all-at-newline
148 \ show-all-if-ambiguous
149 \ show-all-if-unmodified
Bram Moolenaar37c64c72017-09-19 22:06:03 +0200150 \ show-mode-in-prompt
Bram Moolenaar446beb42011-05-10 17:18:44 +0200151 \ skip-completed-text
152 \ visible-stats
153
154syn keyword readlineVariable contained
155 \ nextgroup=readlineString
156 \ skipwhite
157 \ comment-begin
158 \ isearch-terminators
Bram Moolenaar40962ec2018-01-28 22:47:25 +0100159 \ vi-cmd-mode-string
160 \ vi-ins-mode-string
161 \ emacs-mode-string
Bram Moolenaar446beb42011-05-10 17:18:44 +0200162
163syn keyword readlineVariable contained
164 \ nextgroup=readlineNumber
165 \ skipwhite
166 \ completion-display-width
167 \ completion-prefix-display-length
168 \ completion-query-items
169 \ history-size
Bram Moolenaar37c64c72017-09-19 22:06:03 +0200170 \ keyseq-timeout
Bram Moolenaar446beb42011-05-10 17:18:44 +0200171
172syn keyword readlineVariable contained
173 \ nextgroup=readlineEditingMode
174 \ skipwhite
175 \ editing-mode
176
177syn keyword readlineVariable contained
178 \ nextgroup=readlineKeymap
179 \ skipwhite
180 \ keymap
181
182syn keyword readlineBellStyle contained
183 \ audible
184 \ visible
185 \ none
Bram Moolenaar071d4272004-06-13 20:20:40 +0000186
Bram Moolenaar071d4272004-06-13 20:20:40 +0000187syn case ignore
Bram Moolenaar446beb42011-05-10 17:18:44 +0200188syn keyword readlineBoolean contained
189 \ on
190 \ off
Bram Moolenaar071d4272004-06-13 20:20:40 +0000191syn case match
192
Bram Moolenaar446beb42011-05-10 17:18:44 +0200193syn region readlineString contained display oneline
194 \ matchgroup=readlineStringDelimiter
195 \ start=+"+
196 \ skip=+\\\\\|\\"+
197 \ end=+"+
Bram Moolenaar071d4272004-06-13 20:20:40 +0000198
Bram Moolenaar446beb42011-05-10 17:18:44 +0200199syn match readlineNumber contained display
200 \ '[+-]\d\+\>'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000201
Bram Moolenaar446beb42011-05-10 17:18:44 +0200202syn keyword readlineEditingMode contained
203 \ emacs
204 \ vi
Bram Moolenaar071d4272004-06-13 20:20:40 +0000205
Bram Moolenaar446beb42011-05-10 17:18:44 +0200206syn match readlineKeymap contained display
207 \ 'emacs\%(-\%(standard\|meta\|ctlx\)\)\=\|vi\%(-\%(move\|command\|insert\)\)\='
Bram Moolenaar071d4272004-06-13 20:20:40 +0000208
Bram Moolenaar446beb42011-05-10 17:18:44 +0200209syn keyword readlineFunction contained
210 \ beginning-of-line
211 \ end-of-line
212 \ forward-char
213 \ backward-char
214 \ forward-word
215 \ backward-word
216 \ clear-screen
217 \ redraw-current-line
218 \
219 \ accept-line
220 \ previous-history
221 \ next-history
222 \ beginning-of-history
223 \ end-of-history
224 \ reverse-search-history
225 \ forward-search-history
226 \ non-incremental-reverse-search-history
227 \ non-incremental-forward-search-history
228 \ history-search-forward
229 \ history-search-backward
230 \ yank-nth-arg
231 \ yank-last-arg
232 \
233 \ delete-char
234 \ backward-delete-char
235 \ forward-backward-delete-char
236 \ quoted-insert
237 \ tab-insert
238 \ self-insert
239 \ transpose-chars
240 \ transpose-words
241 \ upcase-word
242 \ downcase-word
243 \ capitalize-word
244 \ overwrite-mode
245 \
246 \ kill-line
247 \ backward-kill-line
248 \ unix-line-discard
249 \ kill-whole-line
250 \ kill-word
251 \ backward-kill-word
252 \ unix-word-rubout
253 \ unix-filename-rubout
254 \ delete-horizontal-space
255 \ kill-region
256 \ copy-region-as-kill
257 \ copy-backward-word
258 \ copy-forward-word
259 \ yank
260 \ yank-pop
261 \
262 \ digit-argument
263 \ universal-argument
264 \
265 \ complete
266 \ possible-completions
267 \ insert-completions
268 \ menu-complete
Bram Moolenaard38b0552012-04-25 19:07:41 +0200269 \ menu-complete-backward
Bram Moolenaar446beb42011-05-10 17:18:44 +0200270 \ delete-char-or-list
271 \
272 \ start-kbd-macro
273 \ end-kbd-macro
274 \ call-last-kbd-macro
Bram Moolenaar91f84f62018-07-29 15:07:52 +0200275 \ print-last-kbd-macro
Bram Moolenaar446beb42011-05-10 17:18:44 +0200276 \
277 \ re-read-init-file
278 \ abort
279 \ do-uppercase-version
280 \ prefix-meta
281 \ undo
282 \ revert-line
283 \ tilde-expand
284 \ set-mark
285 \ exchange-point-and-mark
286 \ character-search
287 \ character-search-backward
288 \ skip-csi-sequence
289 \ insert-comment
290 \ dump-functions
291 \ dump-variables
292 \ dump-macros
293 \ emacs-editing-mode
294 \ vi-editing-mode
295 \
296 \ vi-eof-maybe
297 \ vi-movement-mode
298 \ vi-undo
299 \ vi-match
300 \ vi-tilde-expand
301 \ vi-complete
302 \ vi-char-search
303 \ vi-redo
304 \ vi-search
305 \ vi-arg-digit
306 \ vi-append-eol
307 \ vi-prev-word
308 \ vi-change-to
309 \ vi-delete-to
310 \ vi-end-word
311 \ vi-char-search
312 \ vi-fetch-history
313 \ vi-insert-beg
314 \ vi-search-again
315 \ vi-put
316 \ vi-replace
317 \ vi-subst
318 \ vi-char-search
319 \ vi-next-word
320 \ vi-yank-to
321 \ vi-first-print
322 \ vi-yank-arg
323 \ vi-goto-mark
324 \ vi-append-mode
325 \ vi-prev-word
326 \ vi-change-to
327 \ vi-delete-to
328 \ vi-end-word
329 \ vi-char-search
330 \ vi-insert-mode
331 \ vi-set-mark
332 \ vi-search-again
333 \ vi-put
334 \ vi-change-char
335 \ vi-subst
336 \ vi-char-search
337 \ vi-undo
338 \ vi-next-word
339 \ vi-delete
340 \ vi-yank-to
341 \ vi-column
342 \ vi-change-case
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000343
Bram Moolenaar071d4272004-06-13 20:20:40 +0000344if exists("readline_has_bash")
Bram Moolenaar446beb42011-05-10 17:18:44 +0200345 syn keyword readlineFunction contained
Bram Moolenaar91f84f62018-07-29 15:07:52 +0200346 \ shell-forward-word
347 \ shell-backward-word
Bram Moolenaar446beb42011-05-10 17:18:44 +0200348 \ shell-expand-line
349 \ history-expand-line
350 \ magic-space
351 \ alias-expand-line
352 \ history-and-alias-expand-line
353 \ insert-last-argument
354 \ operate-and-get-next
355 \ forward-backward-delete-char
Bram Moolenaar91f84f62018-07-29 15:07:52 +0200356 \ shell-kill-word
357 \ shell-backward-kill-word
Bram Moolenaar446beb42011-05-10 17:18:44 +0200358 \ delete-char-or-list
359 \ complete-filename
360 \ possible-filename-completions
361 \ complete-username
362 \ possible-username-completions
363 \ complete-variable
364 \ possible-variable-completions
365 \ complete-hostname
366 \ possible-hostname-completions
367 \ complete-command
368 \ possible-command-completions
369 \ dynamic-complete-history
Bram Moolenaar91f84f62018-07-29 15:07:52 +0200370 \ dabbrev-expand
Bram Moolenaar446beb42011-05-10 17:18:44 +0200371 \ complete-into-braces
372 \ glob-expand-word
373 \ glob-list-expansions
374 \ display-shell-version
375 \ glob-complete-word
376 \ edit-and-execute-command
Bram Moolenaar071d4272004-06-13 20:20:40 +0000377endif
378
Bram Moolenaar446beb42011-05-10 17:18:44 +0200379hi def link readlineKey readlineKeySeq
380hi def link readlineComment Comment
381hi def link readlineTodo Todo
382hi def link readlineConditional Conditional
383hi def link readlineTest Type
384hi def link readlineDelimiter Delimiter
385hi def link readlineTestModeEq readlineEq
386hi def link readlineTestTermEq readlineEq
387hi def link readlineTestTerm readlineString
388hi def link readlineTestAppEq readlineEq
389hi def link readlineTestApp readlineString
390hi def link readlineInclude Include
391hi def link readlinePath String
392hi def link readlineKeyName SpecialChar
393hi def link readlineKeySeparator readlineKeySeq
394hi def link readlineKeyTerminator readlineDelimiter
395hi def link readlineKeySeq String
396hi def link readlineKeyEscape SpecialChar
397hi def link readlineKeyword Keyword
398hi def link readlineVariable Identifier
399hi def link readlineBellStyle Constant
400hi def link readlineBoolean Boolean
401hi def link readlineString String
402hi def link readlineStringDelimiter readlineString
403hi def link readlineNumber Number
404hi def link readlineEditingMode Constant
405hi def link readlineKeymap Constant
406hi def link readlineFunction Function
Bram Moolenaar071d4272004-06-13 20:20:40 +0000407
Bram Moolenaar446beb42011-05-10 17:18:44 +0200408let b:current_syntax = 'readline'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000409
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000410let &cpo = s:cpo_save
411unlet s:cpo_save