Merge branch 'vim-runtime'
[vim_mainline.git] / runtime / syntax / fstab.vim
blob9bee89433bf17fc011bab1bc8f12d22aea8fd98f
1 " Vim syntax file
2 " Language: fstab file
3 " Maintaner: Radu Dineiu <radu.dineiu@gmail.com>
4 " URL: http://ld.yi.org/vim/fstab.vim
5 " Last Change: 2009 Feb 04
6 " Version: 0.93
8 " Credits:
9 "   David Necas (Yeti) <yeti@physics.muni.cz>
10 "   Stefano Zacchiroli <zack@debian.org>
11 "   Georgi Georgiev <chutz@gg3.net>
12 "   James Vega <jamessan@debian.org>
13 "   Elias Probst <mail@eliasprobst.eu>
15 " Options:
16 "   let fstab_unknown_fs_errors = 1
17 "     highlight unknown filesystems as errors
19 if version < 600
20         syntax clear
21 elseif exists("b:current_syntax")
22         finish
23 endif
25 " General
26 syn cluster fsGeneralCluster contains=fsComment
27 syn match fsComment /\s*#.*/
28 syn match fsOperator /[,=:#]/
30 " Device
31 syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError
32 syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained
33 syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts sysfs usbfs
34 syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel
35 syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID
36 syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs
37 syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/
38 syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator
39 syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
40 syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator
42 " Mount Point
43 syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError
44 syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@\.-]\|\s\+\zs\w\{-}\ze\s\)/ contained
45 syn keyword fsMountPointKeyword contained none swap
47 " Type
48 syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
49 syn match fsTypeUnknown /\s\+\zs\w\+/ contained
50 syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
52 " Options
53 " -------
54 " Options: General
55 syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown
56 syn match fsOptionsNumber /\d\+/
57 syn match fsOptionsNumberOctal /[0-8]\+/
58 syn match fsOptionsString /[a-zA-Z0-9_-]\+/
59 syn keyword fsOptionsYesNo yes no
60 syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck
61 syn keyword fsOptionsSize 512 1024 2048
62 syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand nosuid nosymfollow nouser owner rbind rdonly remount ro rq rw suid suiddir supermount sw sync union update user users xx
63 syn match fsOptionsGeneral /_netdev/
65 " Options: adfs
66 syn match fsOptionsKeywords contained /\<\%([ug]id\|o\%(wn\|th\)mask\)=/ nextgroup=fsOptionsNumber
68 " Options: affs
69 syn match fsOptionsKeywords contained /\<\%(set[ug]id\|mode\|reserved\)=/ nextgroup=fsOptionsNumber
70 syn match fsOptionsKeywords contained /\<\%(prefix\|volume\|root\)=/ nextgroup=fsOptionsString
71 syn match fsOptionsKeywords contained /\<bs=/ nextgroup=fsOptionsSize
72 syn keyword fsOptionsKeywords contained protect usemp verbose
74 " Options: cd9660
75 syn keyword fsOptionsKeywords contained extatt gens norrip nostrictjoilet
77 " Options: devpts
78 " -- everything already defined
80 " Options: ext2
81 syn match fsOptionsKeywords contained /\<check=*/ nextgroup=@fsOptionsCheckCluster
82 syn match fsOptionsKeywords contained /\<errors=/ nextgroup=fsOptionsExt2Errors
83 syn match fsOptionsKeywords contained /\<\%(res[gu]id\|sb\)=/ nextgroup=fsOptionsNumber
84 syn keyword fsOptionsExt2Check contained none normal strict
85 syn keyword fsOptionsExt2Errors contained continue panic
86 syn match fsOptionsExt2Errors contained /\<remount-ro\>/
87 syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf noacl nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr
89 " Options: ext3
90 syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt3Journal
91 syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt3Data
92 syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
93 syn keyword fsOptionsExt3Journal contained update inum
94 syn keyword fsOptionsExt3Data contained journal ordered writeback
95 syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl noacl
97 " Options: ext4
98 syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt4Journal
99 syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt4Data
100 syn match fsOptionsKeywords contained /\<barrier=/ nextgroup=fsOptionsExt4Barrier
101 syn match fsOptionsKeywords contained /\<journal_dev=/ nextgroup=fsOptionsNumber
102 syn match fsOptionsKeywords contained /\<resuid=/ nextgroup=fsOptionsNumber
103 syn match fsOptionsKeywords contained /\<resgid=/ nextgroup=fsOptionsNumber
104 syn match fsOptionsKeywords contained /\<sb=/ nextgroup=fsOptionsNumber
105 syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
106 syn keyword fsOptionsExt4Journal contained update inum
107 syn keyword fsOptionsExt4Data contained journal ordered writeback
108 syn match fsOptionsExt4Barrier /[0-1]/
109 syn keyword fsOptionsKeywords contained noload extents orlov oldalloc user_xattr nouser_xattr acl noacl reservation noreservation bsddf minixdf check=none nocheck debug grpid nogroupid sysvgroups bsdgroups quota noquota grpquota usrquota bh nobh
111 " Options: fat
112 syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize
113 syn match fsOptionsKeywords contained /\<\%([dfu]mask\|codepage\)=/ nextgroup=fsOptionsNumberOctal
114 syn match fsOptionsKeywords contained /\%(cvf_\%(format\|option\)\|iocharset\)=/ nextgroup=fsOptionsString
115 syn match fsOptionsKeywords contained /\<check=/ nextgroup=@fsOptionsCheckCluster
116 syn match fsOptionsKeywords contained /\<conv=*/ nextgroup=fsOptionsConv
117 syn match fsOptionsKeywords contained /\<fat=/ nextgroup=fsOptionsFatType
118 syn match fsOptionsKeywords contained /\<dotsOK=/ nextgroup=fsOptionsYesNo
119 syn keyword fsOptionsFatCheck contained r n s relaxed normal strict
120 syn keyword fsOptionsConv contained b t a binary text auto
121 syn keyword fsOptionsFatType contained 12 16 32
122 syn keyword fsOptionsKeywords contained quiet sys_immutable showexec dots nodots
124 " Options: hfs
125 syn match fsOptionsKeywords contained /\<\%(creator|type\)=/ nextgroup=fsOptionsString
126 syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOptionsNumberOctal
127 syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber
129 " Options: ffs
130 syn keyword fsOptionsKeyWords contained softdep
132 " Options: hpfs
133 syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase
134 syn keyword fsOptionsHpfsCase contained lower asis
136 " Options: iso9660
137 syn match fsOptionsKeywords contained /\<map=/ nextgroup=fsOptionsIsoMap
138 syn match fsOptionsKeywords contained /\<block=/ nextgroup=fsOptionsSize
139 syn match fsOptionsKeywords contained /\<\%(session\|sbsector\)=/ nextgroup=fsOptionsNumber
140 syn keyword fsOptionsIsoMap contained n o a normal off acorn
141 syn keyword fsOptionsKeywords contained norock nojoilet unhide cruft
142 syn keyword fsOptionsConv contained m mtext
144 " Options: jfs
145 syn keyword fsOptionsKeywords nointegrity integrity
147 " Options: nfs
148 syn match fsOptionsKeywords contained /\<\%(rsize\|wsize\|timeo\|retrans\|acregmin\|acregmax\|acdirmin\|acdirmax\|actimeo\|retry\|port\|mountport\|mounthost\|mountprog\|mountvers\|nfsprog\|nfsvers\|namelen\)=/ nextgroup=fsOptionsString
149 syn keyword fsOptionsKeywords contained bg fg soft hard intr cto ac tcp udp lock nobg nofg nosoft nohard nointr noposix nocto noac notcp noudp nolock
151 " Options: ntfs
152 syn match fsOptionsKeywords contained /\<\%(posix=*\|uni_xlate=\)/ nextgroup=fsOptionsNumber
153 syn keyword fsOptionsKeywords contained utf8
155 " Options: proc
156 " -- everything already defined
158 " Options: reiserfs
159 syn match fsOptionsKeywords contained /\<hash=/ nextgroup=fsOptionsReiserHash
160 syn match fsOptionsKeywords contained /\<resize=/ nextgroup=fsOptionsNumber
161 syn keyword fsOptionsReiserHash contained rupasov tea r5 detect
162 syn keyword fsOptionsKeywords contained hashed_relocation noborder nolog notail no_unhashed_relocation replayonly
164 " Options: sshfs
165 syn match fsOptionsKeywords contained /\<\%(BatchMode\|ChallengeResponseAuthentication\|CheckHostIP\|ClearAllForwardings\|Compression\|EnableSSHKeysign\|ForwardAgent\|ForwardX11\|ForwardX11Trusted\|GatewayPorts\|GSSAPIAuthentication\|GSSAPIDelegateCredentials\|HashKnownHosts\|HostbasedAuthentication\|IdentitiesOnly\|NoHostAuthenticationForLocalhost\|PasswordAuthentication\|PubkeyAuthentication\|RhostsRSAAuthentication\|RSAAuthentication\|TCPKeepAlive\|UsePrivilegedPort\|cache\)=/ nextgroup=fsOptionsYesNo
166 syn match fsOptionsKeywords contained /\<\%(ControlMaster\|StrictHostKeyChecking\|VerifyHostKeyDNS\)=/ nextgroup=fsOptionsSshYesNoAsk
167 syn match fsOptionsKeywords contained /\<\%(AddressFamily\|BindAddress\|Cipher\|Ciphers\|ControlPath\|DynamicForward\|EscapeChar\|GlobalKnownHostsFile\|HostKeyAlgorithms\|HostKeyAlias\|HostName\|IdentityFile\|KbdInteractiveDevices\|LocalForward\|LogLevel\|MACs\|PreferredAuthentications\|Protocol\|ProxyCommand\|RemoteForward\|RhostsAuthentication\|SendEnv\|SmartcardDevice\|User\|UserKnownHostsFile\|XAuthLocation\|comment\|workaround\|idmap\|ssh_command\|sftp_server\|fsname\)=/ nextgroup=fsOptionsString
168 syn match fsOptionsKeywords contained /\<\%(CompressionLevel\|ConnectionAttempts\|ConnectTimeout\|NumberOfPasswordPrompts\|Port\|ServerAliveCountMax\|ServerAliveInterval\|cache_timeout\|cache_X_timeout\|ssh_protocol\|directport\|max_read\|umask\|uid\|gid\|entry_timeout\|negative_timeout\|attr_timeout\)=/ nextgroup=fsOptionsNumber
169 syn keyword fsOptionsKeywords contained reconnect sshfs_sync no_readahead sshfs_debug transform_symlinks allow_other allow_root nonempty default_permissions large_read hard_remove use_ino readdir_ino direct_io kernel_cache
170 syn keyword fsOptionsSshYesNoAsk contained yes no ask
172 " Options: subfs
173 syn match fsOptionsKeywords contained /\<fs=/ nextgroup=fsOptionsString
174 syn keyword fsOptionsKeywords contained procuid
176 " Options: swap
177 syn match fsOptionsKeywords contained /\<pri=/ nextgroup=fsOptionsNumber
179 " Options: tmpfs
180 syn match fsOptionsKeywords contained /\<nr_\%(blocks\|inodes\)=/ nextgroup=fsOptionsNumber
182 " Options: udf
183 syn match fsOptionsKeywords contained /\<\%(anchor\|partition\|lastblock\|fileset\|rootdir\)=/ nextgroup=fsOptionsString
184 syn keyword fsOptionsKeywords contained unhide undelete strict novrs
186 " Options: ufs
187 syn match fsOptionsKeywords contained /\<ufstype=/ nextgroup=fsOptionsUfsType
188 syn match fsOptionsKeywords contained /\<onerror=/ nextgroup=fsOptionsUfsError
189 syn keyword fsOptionsUfsType contained old hp 44bsd sun sunx86 nextstep openstep
190 syn match fsOptionsUfsType contained /\<nextstep-cd\>/
191 syn keyword fsOptionsUfsError contained panic lock umount repair
193 " Options: usbfs
194 syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)\%(id\|gid\)=/ nextgroup=fsOptionsNumber
195 syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)mode=/ nextgroup=fsOptionsNumberOctal
197 " Options: vfat
198 syn keyword fsOptionsKeywords contained nonumtail posix utf8
199 syn match fsOptionsKeywords contained /shortname=/ nextgroup=fsOptionsVfatShortname
200 syn keyword fsOptionsVfatShortname contained lower win95 winnt mixed
202 " Options: xfs
203 syn match fsOptionsKeywords contained /\%(biosize\|logbufs\|logbsize\|logdev\|rtdev\|sunit\|swidth\)=/ nextgroup=fsOptionsString
204 syn keyword fsOptionsKeywords contained dmapi xdsm noalign noatime noquota norecovery osyncisdsync quota usrquota uqnoenforce grpquota gqnoenforce
206 " Frequency / Pass No.
207 syn cluster fsFreqPassCluster contains=fsFreqPassNumber,fsFreqPassError
208 syn match fsFreqPassError /\s\+\zs\%(\D.*\|\S.*\|\d\+\s\+[^012]\)\ze/ contained
209 syn match fsFreqPassNumber /\d\+\s\+[012]\s*/ contained
211 " Groups
212 syn match fsDevice /^\s*\zs.\{-1,}\s/me=e-1 nextgroup=fsMountPoint contains=@fsDeviceCluster,@fsGeneralCluster
213 syn match fsMountPoint /\s\+.\{-}\s/me=e-1 nextgroup=fsType contains=@fsMountPointCluster,@fsGeneralCluster contained
214 syn match fsType /\s\+.\{-}\s/me=e-1 nextgroup=fsOptions contains=@fsTypeCluster,@fsGeneralCluster contained
215 syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained
216 syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained
218 " Whole line comments
219 syn match fsCommentLine /^#.*$/
221 if version >= 508 || !exists("did_config_syntax_inits")
222         if version < 508
223                 let did_config_syntax_inits = 1
224                 command! -nargs=+ HiLink hi link <args>
225         else
226                 command! -nargs=+ HiLink hi def link <args>
227         endif
229         HiLink fsOperator Operator
230         HiLink fsComment Comment
231         HiLink fsCommentLine Comment
233         HiLink fsTypeKeyword Type
234         HiLink fsDeviceKeyword Identifier
235         HiLink fsDeviceLabel String
236         HiLink fsDeviceUUID String
237         HiLink fsDeviceSshfs String
238         HiLink fsFreqPassNumber Number
240         if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1
241                 HiLink fsTypeUnknown Error
242         endif
244         HiLink fsDeviceError Error
245         HiLink fsMountPointError Error
246         HiLink fsMountPointKeyword Keyword
247         HiLink fsFreqPassError Error
249         HiLink fsOptionsGeneral Type
250         HiLink fsOptionsKeywords Keyword
251         HiLink fsOptionsNumber Number
252         HiLink fsOptionsNumberOctal Number
253         HiLink fsOptionsString String
254         HiLink fsOptionsSize Number
255         HiLink fsOptionsExt2Check String
256         HiLink fsOptionsExt2Errors String
257         HiLink fsOptionsExt3Journal String
258         HiLink fsOptionsExt3Data String
259         HiLink fsOptionsExt4Journal String
260         HiLink fsOptionsExt4Data String
261         HiLink fsOptionsExt4Barrier Number
262         HiLink fsOptionsFatCheck String
263         HiLink fsOptionsConv String
264         HiLink fsOptionsFatType Number
265         HiLink fsOptionsYesNo String
266         HiLink fsOptionsHpfsCase String
267         HiLink fsOptionsIsoMap String
268         HiLink fsOptionsReiserHash String
269         HiLink fsOptionsSshYesNoAsk String
270         HiLink fsOptionsUfsType String
271         HiLink fsOptionsUfsError String
273         HiLink fsOptionsVfatShortname String
275         delcommand HiLink
276 endif
278 let b:current_syntax = "fstab"
280 " vim: ts=8 ft=vim