Merged from the latest developing branch.
[MacVim.git] / runtime / syntax / fstab.vim
blob830b8d014d28b55c146d189aa728c3e162e3a2e9
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: 2008 Jan 16
6 " Version: 0.92
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>
14 " Options:
15 "   let fstab_unknown_fs_errors = 1
16 "     highlight unknown filesystems as errors
18 if version < 600
19         syntax clear
20 elseif exists("b:current_syntax")
21         finish
22 endif
24 " General
25 syn cluster fsGeneralCluster contains=fsComment
26 syn match fsComment /\s*#.*/
27 syn match fsOperator /[,=:#]/
29 " Device
30 syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError
31 syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained
32 syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts sysfs usbfs
33 syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel
34 syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID
35 syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs
36 syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/
37 syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator
38 syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
39 syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator
41 " Mount Point
42 syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError
43 syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@\.-]\|\s\+\zs\w\{-}\ze\s\)/ contained
44 syn keyword fsMountPointKeyword contained none swap
46 " Type
47 syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
48 syn match fsTypeUnknown /\s\+\zs\w\+/ contained
49 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 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
51 " Options
52 " -------
53 " Options: General
54 syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown
55 syn match fsOptionsNumber /\d\+/
56 syn match fsOptionsNumberOctal /[0-8]\+/
57 syn match fsOptionsString /[a-zA-Z0-9_-]\+/
58 syn keyword fsOptionsYesNo yes no
59 syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck
60 syn keyword fsOptionsSize 512 1024 2048
61 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
62 syn match fsOptionsGeneral /_netdev/
64 " Options: adfs
65 syn match fsOptionsKeywords contained /\<\%([ug]id\|o\%(wn\|th\)mask\)=/ nextgroup=fsOptionsNumber
67 " Options: affs
68 syn match fsOptionsKeywords contained /\<\%(set[ug]id\|mode\|reserved\)=/ nextgroup=fsOptionsNumber
69 syn match fsOptionsKeywords contained /\<\%(prefix\|volume\|root\)=/ nextgroup=fsOptionsString
70 syn match fsOptionsKeywords contained /\<bs=/ nextgroup=fsOptionsSize
71 syn keyword fsOptionsKeywords contained protect usemp verbose
73 " Options: cd9660
74 syn keyword fsOptionsKeywords contained extatt gens norrip nostrictjoilet
76 " Options: devpts
77 " -- everything already defined
79 " Options: ext2
80 syn match fsOptionsKeywords contained /\<check=*/ nextgroup=@fsOptionsCheckCluster
81 syn match fsOptionsKeywords contained /\<errors=/ nextgroup=fsOptionsExt2Errors
82 syn match fsOptionsKeywords contained /\<\%(res[gu]id\|sb\)=/ nextgroup=fsOptionsNumber
83 syn keyword fsOptionsExt2Check contained none normal strict
84 syn keyword fsOptionsExt2Errors contained continue panic
85 syn match fsOptionsExt2Errors contained /\<remount-ro\>/
86 syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf noacl nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr
88 " Options: ext3
89 syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt3Journal
90 syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt3Data
91 syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
92 syn keyword fsOptionsExt3Journal contained update inum
93 syn keyword fsOptionsExt3Data contained journal ordered writeback
94 syn keyword fsOptionsKeywords contained noload
96 " Options: fat
97 syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize
98 syn match fsOptionsKeywords contained /\<\%([dfu]mask\|codepage\)=/ nextgroup=fsOptionsNumberOctal
99 syn match fsOptionsKeywords contained /\%(cvf_\%(format\|option\)\|iocharset\)=/ nextgroup=fsOptionsString
100 syn match fsOptionsKeywords contained /\<check=/ nextgroup=@fsOptionsCheckCluster
101 syn match fsOptionsKeywords contained /\<conv=*/ nextgroup=fsOptionsConv
102 syn match fsOptionsKeywords contained /\<fat=/ nextgroup=fsOptionsFatType
103 syn match fsOptionsKeywords contained /\<dotsOK=/ nextgroup=fsOptionsYesNo
104 syn keyword fsOptionsFatCheck contained r n s relaxed normal strict
105 syn keyword fsOptionsConv contained b t a binary text auto
106 syn keyword fsOptionsFatType contained 12 16 32
107 syn keyword fsOptionsKeywords contained quiet sys_immutable showexec dots nodots
109 " Options: hfs
110 syn match fsOptionsKeywords contained /\<\%(creator|type\)=/ nextgroup=fsOptionsString
111 syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOptionsNumberOctal
112 syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber
114 " Options: ffs
115 syn keyword fsOptionsKeyWords contained softdep
117 " Options: hpfs
118 syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase
119 syn keyword fsOptionsHpfsCase contained lower asis
121 " Options: iso9660
122 syn match fsOptionsKeywords contained /\<map=/ nextgroup=fsOptionsIsoMap
123 syn match fsOptionsKeywords contained /\<block=/ nextgroup=fsOptionsSize
124 syn match fsOptionsKeywords contained /\<\%(session\|sbsector\)=/ nextgroup=fsOptionsNumber
125 syn keyword fsOptionsIsoMap contained n o a normal off acorn
126 syn keyword fsOptionsKeywords contained norock nojoilet unhide cruft
127 syn keyword fsOptionsConv contained m mtext
129 " Options: jfs
130 syn keyword fsOptionsKeywords nointegrity integrity
132 " Options: nfs
133 syn match fsOptionsKeywords contained /\<\%(rsize\|wsize\|timeo\|retrans\|acregmin\|acregmax\|acdirmin\|acdirmax\|actimeo\|retry\|port\|mountport\|mounthost\|mountprog\|mountvers\|nfsprog\|nfsvers\|namelen\)=/ nextgroup=fsOptionsString
134 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
136 " Options: ntfs
137 syn match fsOptionsKeywords contained /\<\%(posix=*\|uni_xlate=\)/ nextgroup=fsOptionsNumber
138 syn keyword fsOptionsKeywords contained utf8
140 " Options: proc
141 " -- everything already defined
143 " Options: reiserfs
144 syn match fsOptionsKeywords contained /\<hash=/ nextgroup=fsOptionsReiserHash
145 syn match fsOptionsKeywords contained /\<resize=/ nextgroup=fsOptionsNumber
146 syn keyword fsOptionsReiserHash contained rupasov tea r5 detect
147 syn keyword fsOptionsKeywords contained hashed_relocation noborder nolog notail no_unhashed_relocation replayonly
149 " Options: sshfs
150 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
151 syn match fsOptionsKeywords contained /\<\%(ControlMaster\|StrictHostKeyChecking\|VerifyHostKeyDNS\)=/ nextgroup=fsOptionsSshYesNoAsk
152 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
153 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
154 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
155 syn keyword fsOptionsSshYesNoAsk contained yes no ask
157 " Options: subfs
158 syn match fsOptionsKeywords contained /\<fs=/ nextgroup=fsOptionsString
159 syn keyword fsOptionsKeywords contained procuid
161 " Options: swap
162 syn match fsOptionsKeywords contained /\<pri=/ nextgroup=fsOptionsNumber
164 " Options: tmpfs
165 syn match fsOptionsKeywords contained /\<nr_\%(blocks\|inodes\)=/ nextgroup=fsOptionsNumber
167 " Options: udf
168 syn match fsOptionsKeywords contained /\<\%(anchor\|partition\|lastblock\|fileset\|rootdir\)=/ nextgroup=fsOptionsString
169 syn keyword fsOptionsKeywords contained unhide undelete strict novrs
171 " Options: ufs
172 syn match fsOptionsKeywords contained /\<ufstype=/ nextgroup=fsOptionsUfsType
173 syn match fsOptionsKeywords contained /\<onerror=/ nextgroup=fsOptionsUfsError
174 syn keyword fsOptionsUfsType contained old hp 44bsd sun sunx86 nextstep openstep
175 syn match fsOptionsUfsType contained /\<nextstep-cd\>/
176 syn keyword fsOptionsUfsError contained panic lock umount repair
178 " Options: usbfs
179 syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)\%(id\|gid\)=/ nextgroup=fsOptionsNumber
180 syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)mode=/ nextgroup=fsOptionsNumberOctal
182 " Options: vfat
183 syn keyword fsOptionsKeywords contained nonumtail posix utf8
184 syn match fsOptionsKeywords contained /shortname=/ nextgroup=fsOptionsVfatShortname
185 syn keyword fsOptionsVfatShortname contained lower win95 winnt mixed
187 " Options: xfs
188 syn match fsOptionsKeywords contained /\%(biosize\|logbufs\|logbsize\|logdev\|rtdev\|sunit\|swidth\)=/ nextgroup=fsOptionsString
189 syn keyword fsOptionsKeywords contained dmapi xdsm noalign noatime noquota norecovery osyncisdsync quota usrquota uqnoenforce grpquota gqnoenforce
191 " Frequency / Pass No.
192 syn cluster fsFreqPassCluster contains=fsFreqPassNumber,fsFreqPassError
193 syn match fsFreqPassError /\s\+\zs\%(\D.*\|\S.*\|\d\+\s\+[^012]\)\ze/ contained
194 syn match fsFreqPassNumber /\d\+\s\+[012]\s*/ contained
196 " Groups
197 syn match fsDevice /^\s*\zs.\{-1,}\s/me=e-1 nextgroup=fsMountPoint contains=@fsDeviceCluster,@fsGeneralCluster
198 syn match fsMountPoint /\s\+.\{-}\s/me=e-1 nextgroup=fsType contains=@fsMountPointCluster,@fsGeneralCluster contained
199 syn match fsType /\s\+.\{-}\s/me=e-1 nextgroup=fsOptions contains=@fsTypeCluster,@fsGeneralCluster contained
200 syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained
201 syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained
203 " Whole line comments
204 syn match fsCommentLine /^#.*$/
206 if version >= 508 || !exists("did_config_syntax_inits")
207         if version < 508
208                 let did_config_syntax_inits = 1
209                 command! -nargs=+ HiLink hi link <args>
210         else
211                 command! -nargs=+ HiLink hi def link <args>
212         endif
214         HiLink fsOperator Operator
215         HiLink fsComment Comment
216         HiLink fsCommentLine Comment
218         HiLink fsTypeKeyword Type
219         HiLink fsDeviceKeyword Identifier
220         HiLink fsDeviceLabel String
221         HiLink fsDeviceUUID String
222         HiLink fsDeviceSshfs String
223         HiLink fsFreqPassNumber Number
225         if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1
226                 HiLink fsTypeUnknown Error
227         endif
229         HiLink fsDeviceError Error
230         HiLink fsMountPointError Error
231         HiLink fsMountPointKeyword Keyword
232         HiLink fsFreqPassError Error
234         HiLink fsOptionsGeneral Type
235         HiLink fsOptionsKeywords Keyword
236         HiLink fsOptionsNumber Number
237         HiLink fsOptionsNumberOctal Number
238         HiLink fsOptionsString String
239         HiLink fsOptionsSize Number
240         HiLink fsOptionsExt2Check String
241         HiLink fsOptionsExt2Errors String
242         HiLink fsOptionsExt3Journal String
243         HiLink fsOptionsExt3Data String
244         HiLink fsOptionsFatCheck String
245         HiLink fsOptionsConv String
246         HiLink fsOptionsFatType Number
247         HiLink fsOptionsYesNo String
248         HiLink fsOptionsHpfsCase String
249         HiLink fsOptionsIsoMap String
250         HiLink fsOptionsReiserHash String
251         HiLink fsOptionsSshYesNoAsk String
252         HiLink fsOptionsUfsType String
253         HiLink fsOptionsUfsError String
255         HiLink fsOptionsVfatShortname String
257         delcommand HiLink
258 endif
260 let b:current_syntax = "fstab"
262 " vim: ts=8 ft=vim