xref: /vim-8.2.3635/runtime/syntax/fstab.vim (revision 3577c6fa)
1" Vim syntax file
2" Language: fstab file
3" Maintaner: Radu Dineiu <[email protected]>
4" URL: http://ld.yi.org/vim/fstab.vim
5" Last Change: 2008 Jan 16
6" Version: 0.92
7"
8" Credits:
9"   David Necas (Yeti) <[email protected]>
10"   Stefano Zacchiroli <[email protected]>
11"   Georgi Georgiev <[email protected]>
12"   James Vega <[email protected]>
13"
14" Options:
15"   let fstab_unknown_fs_errors = 1
16"     highlight unknown filesystems as errors
17
18if version < 600
19	syntax clear
20elseif exists("b:current_syntax")
21	finish
22endif
23
24" General
25syn cluster fsGeneralCluster contains=fsComment
26syn match fsComment /\s*#.*/
27syn match fsOperator /[,=:#]/
28
29" Device
30syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError
31syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained
32syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts sysfs usbfs
33syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel
34syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID
35syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs
36syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/
37syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator
38syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
39syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator
40
41" Mount Point
42syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError
43syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@\.-]\|\s\+\zs\w\{-}\ze\s\)/ contained
44syn keyword fsMountPointKeyword contained none swap
45
46" Type
47syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
48syn match fsTypeUnknown /\s\+\zs\w\+/ contained
49syn 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
50
51" Options
52" -------
53" Options: General
54syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown
55syn match fsOptionsNumber /\d\+/
56syn match fsOptionsNumberOctal /[0-8]\+/
57syn match fsOptionsString /[a-zA-Z0-9_-]\+/
58syn keyword fsOptionsYesNo yes no
59syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck
60syn keyword fsOptionsSize 512 1024 2048
61syn 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
62syn match fsOptionsGeneral /_netdev/
63
64" Options: adfs
65syn match fsOptionsKeywords contained /\<\%([ug]id\|o\%(wn\|th\)mask\)=/ nextgroup=fsOptionsNumber
66
67" Options: affs
68syn match fsOptionsKeywords contained /\<\%(set[ug]id\|mode\|reserved\)=/ nextgroup=fsOptionsNumber
69syn match fsOptionsKeywords contained /\<\%(prefix\|volume\|root\)=/ nextgroup=fsOptionsString
70syn match fsOptionsKeywords contained /\<bs=/ nextgroup=fsOptionsSize
71syn keyword fsOptionsKeywords contained protect usemp verbose
72
73" Options: cd9660
74syn keyword fsOptionsKeywords contained extatt gens norrip nostrictjoilet
75
76" Options: devpts
77" -- everything already defined
78
79" Options: ext2
80syn match fsOptionsKeywords contained /\<check=*/ nextgroup=@fsOptionsCheckCluster
81syn match fsOptionsKeywords contained /\<errors=/ nextgroup=fsOptionsExt2Errors
82syn match fsOptionsKeywords contained /\<\%(res[gu]id\|sb\)=/ nextgroup=fsOptionsNumber
83syn keyword fsOptionsExt2Check contained none normal strict
84syn keyword fsOptionsExt2Errors contained continue panic
85syn match fsOptionsExt2Errors contained /\<remount-ro\>/
86syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf noacl nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr
87
88" Options: ext3
89syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt3Journal
90syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt3Data
91syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
92syn keyword fsOptionsExt3Journal contained update inum
93syn keyword fsOptionsExt3Data contained journal ordered writeback
94syn keyword fsOptionsKeywords contained noload
95
96" Options: fat
97syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize
98syn match fsOptionsKeywords contained /\<\%([dfu]mask\|codepage\)=/ nextgroup=fsOptionsNumberOctal
99syn match fsOptionsKeywords contained /\%(cvf_\%(format\|option\)\|iocharset\)=/ nextgroup=fsOptionsString
100syn match fsOptionsKeywords contained /\<check=/ nextgroup=@fsOptionsCheckCluster
101syn match fsOptionsKeywords contained /\<conv=*/ nextgroup=fsOptionsConv
102syn match fsOptionsKeywords contained /\<fat=/ nextgroup=fsOptionsFatType
103syn match fsOptionsKeywords contained /\<dotsOK=/ nextgroup=fsOptionsYesNo
104syn keyword fsOptionsFatCheck contained r n s relaxed normal strict
105syn keyword fsOptionsConv contained b t a binary text auto
106syn keyword fsOptionsFatType contained 12 16 32
107syn keyword fsOptionsKeywords contained quiet sys_immutable showexec dots nodots
108
109" Options: hfs
110syn match fsOptionsKeywords contained /\<\%(creator|type\)=/ nextgroup=fsOptionsString
111syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOptionsNumberOctal
112syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber
113
114" Options: ffs
115syn keyword fsOptionsKeyWords contained softdep
116
117" Options: hpfs
118syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase
119syn keyword fsOptionsHpfsCase contained lower asis
120
121" Options: iso9660
122syn match fsOptionsKeywords contained /\<map=/ nextgroup=fsOptionsIsoMap
123syn match fsOptionsKeywords contained /\<block=/ nextgroup=fsOptionsSize
124syn match fsOptionsKeywords contained /\<\%(session\|sbsector\)=/ nextgroup=fsOptionsNumber
125syn keyword fsOptionsIsoMap contained n o a normal off acorn
126syn keyword fsOptionsKeywords contained norock nojoilet unhide cruft
127syn keyword fsOptionsConv contained m mtext
128
129" Options: jfs
130syn keyword fsOptionsKeywords nointegrity integrity
131
132" Options: nfs
133syn match fsOptionsKeywords contained /\<\%(rsize\|wsize\|timeo\|retrans\|acregmin\|acregmax\|acdirmin\|acdirmax\|actimeo\|retry\|port\|mountport\|mounthost\|mountprog\|mountvers\|nfsprog\|nfsvers\|namelen\)=/ nextgroup=fsOptionsString
134syn keyword fsOptionsKeywords contained bg fg soft hard intr cto ac tcp udp lock nobg nofg nosoft nohard nointr noposix nocto noac notcp noudp nolock
135
136" Options: ntfs
137syn match fsOptionsKeywords contained /\<\%(posix=*\|uni_xlate=\)/ nextgroup=fsOptionsNumber
138syn keyword fsOptionsKeywords contained utf8
139
140" Options: proc
141" -- everything already defined
142
143" Options: reiserfs
144syn match fsOptionsKeywords contained /\<hash=/ nextgroup=fsOptionsReiserHash
145syn match fsOptionsKeywords contained /\<resize=/ nextgroup=fsOptionsNumber
146syn keyword fsOptionsReiserHash contained rupasov tea r5 detect
147syn keyword fsOptionsKeywords contained hashed_relocation noborder nolog notail no_unhashed_relocation replayonly
148
149" Options: sshfs
150syn 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
151syn match fsOptionsKeywords contained /\<\%(ControlMaster\|StrictHostKeyChecking\|VerifyHostKeyDNS\)=/ nextgroup=fsOptionsSshYesNoAsk
152syn 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
153syn 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
154syn 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
155syn keyword fsOptionsSshYesNoAsk contained yes no ask
156
157" Options: subfs
158syn match fsOptionsKeywords contained /\<fs=/ nextgroup=fsOptionsString
159syn keyword fsOptionsKeywords contained procuid
160
161" Options: swap
162syn match fsOptionsKeywords contained /\<pri=/ nextgroup=fsOptionsNumber
163
164" Options: tmpfs
165syn match fsOptionsKeywords contained /\<nr_\%(blocks\|inodes\)=/ nextgroup=fsOptionsNumber
166
167" Options: udf
168syn match fsOptionsKeywords contained /\<\%(anchor\|partition\|lastblock\|fileset\|rootdir\)=/ nextgroup=fsOptionsString
169syn keyword fsOptionsKeywords contained unhide undelete strict novrs
170
171" Options: ufs
172syn match fsOptionsKeywords contained /\<ufstype=/ nextgroup=fsOptionsUfsType
173syn match fsOptionsKeywords contained /\<onerror=/ nextgroup=fsOptionsUfsError
174syn keyword fsOptionsUfsType contained old hp 44bsd sun sunx86 nextstep openstep
175syn match fsOptionsUfsType contained /\<nextstep-cd\>/
176syn keyword fsOptionsUfsError contained panic lock umount repair
177
178" Options: usbfs
179syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)\%(id\|gid\)=/ nextgroup=fsOptionsNumber
180syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)mode=/ nextgroup=fsOptionsNumberOctal
181
182" Options: vfat
183syn keyword fsOptionsKeywords contained nonumtail posix utf8
184syn match fsOptionsKeywords contained /shortname=/ nextgroup=fsOptionsVfatShortname
185syn keyword fsOptionsVfatShortname contained lower win95 winnt mixed
186
187" Options: xfs
188syn match fsOptionsKeywords contained /\%(biosize\|logbufs\|logbsize\|logdev\|rtdev\|sunit\|swidth\)=/ nextgroup=fsOptionsString
189syn keyword fsOptionsKeywords contained dmapi xdsm noalign noatime noquota norecovery osyncisdsync quota usrquota uqnoenforce grpquota gqnoenforce
190
191" Frequency / Pass No.
192syn cluster fsFreqPassCluster contains=fsFreqPassNumber,fsFreqPassError
193syn match fsFreqPassError /\s\+\zs\%(\D.*\|\S.*\|\d\+\s\+[^012]\)\ze/ contained
194syn match fsFreqPassNumber /\d\+\s\+[012]\s*/ contained
195
196" Groups
197syn match fsDevice /^\s*\zs.\{-1,}\s/me=e-1 nextgroup=fsMountPoint contains=@fsDeviceCluster,@fsGeneralCluster
198syn match fsMountPoint /\s\+.\{-}\s/me=e-1 nextgroup=fsType contains=@fsMountPointCluster,@fsGeneralCluster contained
199syn match fsType /\s\+.\{-}\s/me=e-1 nextgroup=fsOptions contains=@fsTypeCluster,@fsGeneralCluster contained
200syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained
201syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained
202
203" Whole line comments
204syn match fsCommentLine /^#.*$/
205
206if 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
213
214	HiLink fsOperator Operator
215	HiLink fsComment Comment
216	HiLink fsCommentLine Comment
217
218	HiLink fsTypeKeyword Type
219	HiLink fsDeviceKeyword Identifier
220	HiLink fsDeviceLabel String
221	HiLink fsDeviceUUID String
222	HiLink fsDeviceSshfs String
223	HiLink fsFreqPassNumber Number
224
225	if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1
226		HiLink fsTypeUnknown Error
227	endif
228
229	HiLink fsDeviceError Error
230	HiLink fsMountPointError Error
231	HiLink fsMountPointKeyword Keyword
232	HiLink fsFreqPassError Error
233
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
254
255	HiLink fsOptionsVfatShortname String
256
257	delcommand HiLink
258endif
259
260let b:current_syntax = "fstab"
261
262" vim: ts=8 ft=vim
263