xref: /vim-8.2.3635/runtime/syntax/fstab.vim (revision 818c9e7e)
1" Vim syntax file
2" Language: fstab file
3" Maintainer: Radu Dineiu <[email protected]>
4" URL: https://raw.github.com/rid9/vim-fstab/master/fstab.vim
5" Last Change: 2013 May 21
6" Version: 1.0
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"   Elias Probst <[email protected]>
14
15" Options:
16"   let fstab_unknown_fs_errors = 1
17"     highlight unknown filesystems as errors
18"
19"   let fstab_unknown_device_errors = 0
20"     do not highlight unknown devices as errors
21
22if version < 600
23	syntax clear
24elseif exists("b:current_syntax")
25	finish
26endif
27
28let s:cpo_save = &cpo
29set cpo&vim
30
31" General
32syn cluster fsGeneralCluster contains=fsComment
33syn match fsComment /\s*#.*/ contains=@Spell
34syn match fsOperator /[,=:#]/
35
36" Device
37syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError
38syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained
39syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs
40syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel
41syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID
42syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs
43syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/
44syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator
45syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
46syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator
47
48" Mount Point
49syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError
50syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@\.-]\|\s\+\zs\w\{-}\ze\s\)/ contained
51syn keyword fsMountPointKeyword contained none swap
52
53" Type
54syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
55syn match fsTypeUnknown /\s\+\zs\w\+/ contained
56syn keyword fsTypeKeyword contained adfs ados affs anon_inodefs atfs audiofs auto autofs bdev befs bfs btrfs binfmt_misc cd9660 cfs cgroup cifs coda configfs cpuset cramfs devfs devpts devtmpfs e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse fuseblk fusectl hfs hpfs hugetlbfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix mqueue msdos ncpfs nfs nfsd nilfs2 none ntfs null nwfs overlay ovlfs pipefs portal proc procfs pstore ptyfs qnx4 reiserfs ramfs romfs securityfs shm smbfs squashfs sockfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xenfs xfs zisofs
57
58" Options
59" -------
60" Options: General
61syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown
62syn match fsOptionsNumber /\d\+/
63syn match fsOptionsNumberOctal /[0-8]\+/
64syn match fsOptionsString /[a-zA-Z0-9_-]\+/
65syn keyword fsOptionsYesNo yes no
66syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck
67syn keyword fsOptionsSize 512 1024 2048
68syn 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
69syn match fsOptionsGeneral /_netdev/
70
71" Options: adfs
72syn match fsOptionsKeywords contained /\<\%([ug]id\|o\%(wn\|th\)mask\)=/ nextgroup=fsOptionsNumber
73
74" Options: affs
75syn match fsOptionsKeywords contained /\<\%(set[ug]id\|mode\|reserved\)=/ nextgroup=fsOptionsNumber
76syn match fsOptionsKeywords contained /\<\%(prefix\|volume\|root\)=/ nextgroup=fsOptionsString
77syn match fsOptionsKeywords contained /\<bs=/ nextgroup=fsOptionsSize
78syn keyword fsOptionsKeywords contained protect usemp verbose
79
80" Options: btrfs
81syn match fsOptionsKeywords contained /\<\%(subvol\|subvolid\|subvolrootid\|device\|compress\|compress-force\|fatal_errors\)=/ nextgroup=fsOptionsString
82syn match fsOptionsKeywords contained /\<\%(max_inline\|alloc_start\|thread_pool\|metadata_ratio\|check_int_print_mask\)=/ nextgroup=fsOptionsNumber
83syn keyword fsOptionsKeywords contained degraded nodatasum nodatacow nobarrier ssd ssd_spread noacl notreelog flushoncommit space_cache nospace_cache clear_cache user_subvol_rm_allowed autodefrag inode_cache enospc_debug recovery check_int check_int_data skip_balance discard
84
85" Options: cd9660
86syn keyword fsOptionsKeywords contained extatt gens norrip nostrictjoilet
87
88" Options: devpts
89" -- everything already defined
90
91" Options: ext2
92syn match fsOptionsKeywords contained /\<check=*/ nextgroup=@fsOptionsCheckCluster
93syn match fsOptionsKeywords contained /\<errors=/ nextgroup=fsOptionsExt2Errors
94syn match fsOptionsKeywords contained /\<\%(res[gu]id\|sb\)=/ nextgroup=fsOptionsNumber
95syn keyword fsOptionsExt2Check contained none normal strict
96syn keyword fsOptionsExt2Errors contained continue panic
97syn match fsOptionsExt2Errors contained /\<remount-ro\>/
98syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr
99
100" Options: ext3
101syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt3Journal
102syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt3Data
103syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
104syn keyword fsOptionsExt3Journal contained update inum
105syn keyword fsOptionsExt3Data contained journal ordered writeback
106syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl
107
108" Options: ext4
109syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt4Journal
110syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt4Data
111syn match fsOptionsKeywords contained /\<barrier=/ nextgroup=fsOptionsExt4Barrier
112syn match fsOptionsKeywords contained /\<journal_dev=/ nextgroup=fsOptionsNumber
113syn match fsOptionsKeywords contained /\<resuid=/ nextgroup=fsOptionsNumber
114syn match fsOptionsKeywords contained /\<resgid=/ nextgroup=fsOptionsNumber
115syn match fsOptionsKeywords contained /\<sb=/ nextgroup=fsOptionsNumber
116syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
117syn keyword fsOptionsExt4Journal contained update inum
118syn keyword fsOptionsExt4Data contained journal ordered writeback
119syn match fsOptionsExt4Barrier /[0-1]/
120syn 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
121
122" Options: fat
123syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize
124syn match fsOptionsKeywords contained /\<\%([dfu]mask\|codepage\)=/ nextgroup=fsOptionsNumberOctal
125syn match fsOptionsKeywords contained /\%(cvf_\%(format\|option\)\|iocharset\)=/ nextgroup=fsOptionsString
126syn match fsOptionsKeywords contained /\<check=/ nextgroup=@fsOptionsCheckCluster
127syn match fsOptionsKeywords contained /\<conv=*/ nextgroup=fsOptionsConv
128syn match fsOptionsKeywords contained /\<fat=/ nextgroup=fsOptionsFatType
129syn match fsOptionsKeywords contained /\<dotsOK=/ nextgroup=fsOptionsYesNo
130syn keyword fsOptionsFatCheck contained r n s relaxed normal strict
131syn keyword fsOptionsConv contained b t a binary text auto
132syn keyword fsOptionsFatType contained 12 16 32
133syn keyword fsOptionsKeywords contained quiet sys_immutable showexec dots nodots
134
135" Options: hfs
136syn match fsOptionsKeywords contained /\<\%(creator|type\)=/ nextgroup=fsOptionsString
137syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOptionsNumberOctal
138syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber
139
140" Options: ffs
141syn keyword fsOptionsKeyWords contained softdep
142
143" Options: hpfs
144syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase
145syn keyword fsOptionsHpfsCase contained lower asis
146
147" Options: iso9660
148syn match fsOptionsKeywords contained /\<map=/ nextgroup=fsOptionsIsoMap
149syn match fsOptionsKeywords contained /\<block=/ nextgroup=fsOptionsSize
150syn match fsOptionsKeywords contained /\<\%(session\|sbsector\)=/ nextgroup=fsOptionsNumber
151syn keyword fsOptionsIsoMap contained n o a normal off acorn
152syn keyword fsOptionsKeywords contained norock nojoilet unhide cruft
153syn keyword fsOptionsConv contained m mtext
154
155" Options: jfs
156syn keyword fsOptionsKeywords nointegrity integrity
157
158" Options: nfs
159syn match fsOptionsKeywords contained /\<\%(rsize\|wsize\|timeo\|retrans\|acregmin\|acregmax\|acdirmin\|acdirmax\|actimeo\|retry\|port\|mountport\|mounthost\|mountprog\|mountvers\|nfsprog\|nfsvers\|namelen\)=/ nextgroup=fsOptionsString
160syn keyword fsOptionsKeywords contained bg fg soft hard intr cto ac tcp udp lock nobg nofg nosoft nohard nointr noposix nocto noac notcp noudp nolock
161
162" Options: ntfs
163syn match fsOptionsKeywords contained /\<\%(posix=*\|uni_xlate=\)/ nextgroup=fsOptionsNumber
164syn keyword fsOptionsKeywords contained utf8
165
166" Options: proc
167" -- everything already defined
168
169" Options: reiserfs
170syn match fsOptionsKeywords contained /\<hash=/ nextgroup=fsOptionsReiserHash
171syn match fsOptionsKeywords contained /\<resize=/ nextgroup=fsOptionsNumber
172syn keyword fsOptionsReiserHash contained rupasov tea r5 detect
173syn keyword fsOptionsKeywords contained hashed_relocation noborder nolog notail no_unhashed_relocation replayonly
174
175" Options: sshfs
176syn 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
177syn match fsOptionsKeywords contained /\<\%(ControlMaster\|StrictHostKeyChecking\|VerifyHostKeyDNS\)=/ nextgroup=fsOptionsSshYesNoAsk
178syn 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
179syn 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
180syn 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
181syn keyword fsOptionsSshYesNoAsk contained yes no ask
182
183" Options: subfs
184syn match fsOptionsKeywords contained /\<fs=/ nextgroup=fsOptionsString
185syn keyword fsOptionsKeywords contained procuid
186
187" Options: swap
188syn match fsOptionsKeywords contained /\<pri=/ nextgroup=fsOptionsNumber
189
190" Options: tmpfs
191syn match fsOptionsKeywords contained /\<nr_\%(blocks\|inodes\)=/ nextgroup=fsOptionsNumber
192
193" Options: udf
194syn match fsOptionsKeywords contained /\<\%(anchor\|partition\|lastblock\|fileset\|rootdir\)=/ nextgroup=fsOptionsString
195syn keyword fsOptionsKeywords contained unhide undelete strict novrs
196
197" Options: ufs
198syn match fsOptionsKeywords contained /\<ufstype=/ nextgroup=fsOptionsUfsType
199syn match fsOptionsKeywords contained /\<onerror=/ nextgroup=fsOptionsUfsError
200syn keyword fsOptionsUfsType contained old hp 44bsd sun sunx86 nextstep openstep
201syn match fsOptionsUfsType contained /\<nextstep-cd\>/
202syn keyword fsOptionsUfsError contained panic lock umount repair
203
204" Options: usbfs
205syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)\%(id\|gid\)=/ nextgroup=fsOptionsNumber
206syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)mode=/ nextgroup=fsOptionsNumberOctal
207
208" Options: vfat
209syn keyword fsOptionsKeywords contained nonumtail posix utf8
210syn match fsOptionsKeywords contained /shortname=/ nextgroup=fsOptionsVfatShortname
211syn keyword fsOptionsVfatShortname contained lower win95 winnt mixed
212
213" Options: xfs
214syn match fsOptionsKeywords contained /\%(biosize\|logbufs\|logbsize\|logdev\|rtdev\|sunit\|swidth\)=/ nextgroup=fsOptionsString
215syn keyword fsOptionsKeywords contained dmapi xdsm noalign noatime noquota norecovery osyncisdsync quota usrquota uqnoenforce grpquota gqnoenforce
216
217" Frequency / Pass No.
218syn cluster fsFreqPassCluster contains=fsFreqPassNumber,fsFreqPassError
219syn match fsFreqPassError /\s\+\zs\%(\D.*\|\S.*\|\d\+\s\+[^012]\)\ze/ contained
220syn match fsFreqPassNumber /\d\+\s\+[012]\s*/ contained
221
222" Groups
223syn match fsDevice /^\s*\zs.\{-1,}\s/me=e-1 nextgroup=fsMountPoint contains=@fsDeviceCluster,@fsGeneralCluster
224syn match fsMountPoint /\s\+.\{-}\s/me=e-1 nextgroup=fsType contains=@fsMountPointCluster,@fsGeneralCluster contained
225syn match fsType /\s\+.\{-}\s/me=e-1 nextgroup=fsOptions contains=@fsTypeCluster,@fsGeneralCluster contained
226syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained
227syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained
228
229" Whole line comments
230syn match fsCommentLine /^#.*$/ contains=@Spell
231
232if version >= 508 || !exists("did_config_syntax_inits")
233	if version < 508
234		let did_config_syntax_inits = 1
235		command! -nargs=+ HiLink hi link <args>
236	else
237		command! -nargs=+ HiLink hi def link <args>
238	endif
239
240	HiLink fsOperator Operator
241	HiLink fsComment Comment
242	HiLink fsCommentLine Comment
243
244	HiLink fsTypeKeyword Type
245	HiLink fsDeviceKeyword Identifier
246	HiLink fsDeviceLabel String
247	HiLink fsDeviceUUID String
248	HiLink fsDeviceSshfs String
249	HiLink fsFreqPassNumber Number
250
251	if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1
252		HiLink fsTypeUnknown Error
253	endif
254
255	if !exists('fstab_unknown_device_errors') || fstab_unknown_device_errors == 1
256		HiLink fsDeviceError Error
257	endif
258
259	HiLink fsMountPointError Error
260	HiLink fsMountPointKeyword Keyword
261	HiLink fsFreqPassError Error
262
263	HiLink fsOptionsGeneral Type
264	HiLink fsOptionsKeywords Keyword
265	HiLink fsOptionsNumber Number
266	HiLink fsOptionsNumberOctal Number
267	HiLink fsOptionsString String
268	HiLink fsOptionsSize Number
269	HiLink fsOptionsExt2Check String
270	HiLink fsOptionsExt2Errors String
271	HiLink fsOptionsExt3Journal String
272	HiLink fsOptionsExt3Data String
273	HiLink fsOptionsExt4Journal String
274	HiLink fsOptionsExt4Data String
275	HiLink fsOptionsExt4Barrier Number
276	HiLink fsOptionsFatCheck String
277	HiLink fsOptionsConv String
278	HiLink fsOptionsFatType Number
279	HiLink fsOptionsYesNo String
280	HiLink fsOptionsHpfsCase String
281	HiLink fsOptionsIsoMap String
282	HiLink fsOptionsReiserHash String
283	HiLink fsOptionsSshYesNoAsk String
284	HiLink fsOptionsUfsType String
285	HiLink fsOptionsUfsError String
286
287	HiLink fsOptionsVfatShortname String
288
289	delcommand HiLink
290endif
291
292let b:current_syntax = "fstab"
293
294let &cpo = s:cpo_save
295unlet s:cpo_save
296
297" vim: ts=8 ft=vim
298