xref: /vim-8.2.3635/runtime/syntax/fstab.vim (revision 5f1920ad)
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: 2019 Jun 06
6" Version: 1.3
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
22" quit when a syntax file was already loaded
23if exists("b:current_syntax")
24	finish
25endif
26
27let s:cpo_save = &cpo
28set cpo&vim
29
30" General
31syn cluster fsGeneralCluster contains=fsComment
32syn match fsComment /\s*#.*/ contains=@Spell
33syn match fsOperator /[,=:#]/
34
35" Device
36syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError
37syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained
38syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs
39syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel
40syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID
41syn keyword fsDeviceKeyword contained PARTLABEL nextgroup=fsDevicePARTLABEL
42syn keyword fsDeviceKeyword contained PARTUUID nextgroup=fsDevicePARTUUID
43syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs
44syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/
45syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator
46syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
47syn match fsDevicePARTLABEL contained /=[^ \t]\+/hs=s+1 contains=fsOperator
48syn match fsDevicePARTUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator
49syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator
50
51" Mount Point
52syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError
53syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@\.-]\|\s\+\zs\w\{-}\ze\s\)/ contained
54syn keyword fsMountPointKeyword contained none swap
55
56" Type
57syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
58syn match fsTypeUnknown /\s\+\zs\w\+/ contained
59syn 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
60
61" Options
62" -------
63" Options: General
64syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown
65syn match fsOptionsNumber /\d\+/
66syn match fsOptionsNumberOctal /[0-8]\+/
67syn match fsOptionsString /[a-zA-Z0-9_-]\+/
68syn keyword fsOptionsYesNo yes no
69syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck
70syn keyword fsOptionsSize 512 1024 2048
71syn 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 norelatime nosuid nosymfollow nouser owner rbind rdonly relatime remount ro rq rw suid suiddir supermount sw sync union update user users wxallowed xx nofail
72syn match fsOptionsGeneral /_netdev/
73
74" Options: adfs
75syn match fsOptionsKeywords contained /\<\%([ug]id\|o\%(wn\|th\)mask\)=/ nextgroup=fsOptionsNumber
76
77" Options: affs
78syn match fsOptionsKeywords contained /\<\%(set[ug]id\|mode\|reserved\)=/ nextgroup=fsOptionsNumber
79syn match fsOptionsKeywords contained /\<\%(prefix\|volume\|root\)=/ nextgroup=fsOptionsString
80syn match fsOptionsKeywords contained /\<bs=/ nextgroup=fsOptionsSize
81syn keyword fsOptionsKeywords contained protect usemp verbose
82
83" Options: btrfs
84syn match fsOptionsKeywords contained /\<\%(subvol\|subvolid\|subvolrootid\|device\|compress\|compress-force\|fatal_errors\)=/ nextgroup=fsOptionsString
85syn match fsOptionsKeywords contained /\<\%(max_inline\|alloc_start\|thread_pool\|metadata_ratio\|check_int_print_mask\)=/ nextgroup=fsOptionsNumber
86syn 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
87
88" Options: cd9660
89syn keyword fsOptionsKeywords contained extatt gens norrip nostrictjoilet
90
91" Options: devpts
92" -- everything already defined
93
94" Options: ext2
95syn match fsOptionsKeywords contained /\<check=*/ nextgroup=@fsOptionsCheckCluster
96syn match fsOptionsKeywords contained /\<errors=/ nextgroup=fsOptionsExt2Errors
97syn match fsOptionsKeywords contained /\<\%(res[gu]id\|sb\)=/ nextgroup=fsOptionsNumber
98syn keyword fsOptionsExt2Check contained none normal strict
99syn keyword fsOptionsExt2Errors contained continue panic
100syn match fsOptionsExt2Errors contained /\<remount-ro\>/
101syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr
102
103" Options: ext3
104syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt3Journal
105syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt3Data
106syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
107syn keyword fsOptionsExt3Journal contained update inum
108syn keyword fsOptionsExt3Data contained journal ordered writeback
109syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl
110
111" Options: ext4
112syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt4Journal
113syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt4Data
114syn match fsOptionsKeywords contained /\<barrier=/ nextgroup=fsOptionsExt4Barrier
115syn match fsOptionsKeywords contained /\<journal_dev=/ nextgroup=fsOptionsNumber
116syn match fsOptionsKeywords contained /\<resuid=/ nextgroup=fsOptionsNumber
117syn match fsOptionsKeywords contained /\<resgid=/ nextgroup=fsOptionsNumber
118syn match fsOptionsKeywords contained /\<sb=/ nextgroup=fsOptionsNumber
119syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
120syn keyword fsOptionsExt4Journal contained update inum
121syn keyword fsOptionsExt4Data contained journal ordered writeback
122syn match fsOptionsExt4Barrier /[0-1]/
123syn 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
124
125" Options: fat
126syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize
127syn match fsOptionsKeywords contained /\<\%([dfu]mask\|codepage\)=/ nextgroup=fsOptionsNumberOctal
128syn match fsOptionsKeywords contained /\%(cvf_\%(format\|option\)\|iocharset\)=/ nextgroup=fsOptionsString
129syn match fsOptionsKeywords contained /\<check=/ nextgroup=@fsOptionsCheckCluster
130syn match fsOptionsKeywords contained /\<conv=*/ nextgroup=fsOptionsConv
131syn match fsOptionsKeywords contained /\<fat=/ nextgroup=fsOptionsFatType
132syn match fsOptionsKeywords contained /\<dotsOK=/ nextgroup=fsOptionsYesNo
133syn keyword fsOptionsFatCheck contained r n s relaxed normal strict
134syn keyword fsOptionsConv contained b t a binary text auto
135syn keyword fsOptionsFatType contained 12 16 32
136syn keyword fsOptionsKeywords contained quiet sys_immutable showexec dots nodots
137
138" Options: hfs
139syn match fsOptionsKeywords contained /\<\%(creator|type\)=/ nextgroup=fsOptionsString
140syn match fsOptionsKeywords contained /\<\%(dir\|file\|\)_umask=/ nextgroup=fsOptionsNumberOctal
141syn match fsOptionsKeywords contained /\<\%(session\|part\)=/ nextgroup=fsOptionsNumber
142
143" Options: ffs
144syn keyword fsOptionsKeyWords contained noperm softdep
145
146" Options: hpfs
147syn match fsOptionsKeywords contained /\<case=/ nextgroup=fsOptionsHpfsCase
148syn keyword fsOptionsHpfsCase contained lower asis
149
150" Options: iso9660
151syn match fsOptionsKeywords contained /\<map=/ nextgroup=fsOptionsIsoMap
152syn match fsOptionsKeywords contained /\<block=/ nextgroup=fsOptionsSize
153syn match fsOptionsKeywords contained /\<\%(session\|sbsector\)=/ nextgroup=fsOptionsNumber
154syn keyword fsOptionsIsoMap contained n o a normal off acorn
155syn keyword fsOptionsKeywords contained norock nojoilet unhide cruft
156syn keyword fsOptionsConv contained m mtext
157
158" Options: jfs
159syn keyword fsOptionsKeywords nointegrity integrity
160
161" Options: nfs
162syn match fsOptionsKeywords contained /\<\%(rsize\|wsize\|timeo\|retrans\|acregmin\|acregmax\|acdirmin\|acdirmax\|actimeo\|retry\|port\|mountport\|mounthost\|mountprog\|mountvers\|nfsprog\|nfsvers\|namelen\)=/ nextgroup=fsOptionsString
163syn keyword fsOptionsKeywords contained bg fg soft hard intr cto ac tcp udp lock nobg nofg nosoft nohard nointr noposix nocto noac notcp noudp nolock
164
165" Options: ntfs
166syn match fsOptionsKeywords contained /\<\%(posix=*\|uni_xlate=\)/ nextgroup=fsOptionsNumber
167syn keyword fsOptionsKeywords contained utf8
168
169" Options: proc
170" -- everything already defined
171
172" Options: reiserfs
173syn match fsOptionsKeywords contained /\<hash=/ nextgroup=fsOptionsReiserHash
174syn match fsOptionsKeywords contained /\<resize=/ nextgroup=fsOptionsNumber
175syn keyword fsOptionsReiserHash contained rupasov tea r5 detect
176syn keyword fsOptionsKeywords contained hashed_relocation noborder nolog notail no_unhashed_relocation replayonly
177
178" Options: sshfs
179syn 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
180syn match fsOptionsKeywords contained /\<\%(ControlMaster\|StrictHostKeyChecking\|VerifyHostKeyDNS\)=/ nextgroup=fsOptionsSshYesNoAsk
181syn 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
182syn 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
183syn 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
184syn keyword fsOptionsSshYesNoAsk contained yes no ask
185
186" Options: subfs
187syn match fsOptionsKeywords contained /\<fs=/ nextgroup=fsOptionsString
188syn keyword fsOptionsKeywords contained procuid
189
190" Options: swap
191syn match fsOptionsKeywords contained /\<pri=/ nextgroup=fsOptionsNumber
192
193" Options: tmpfs
194syn match fsOptionsKeywords contained /\<nr_\%(blocks\|inodes\)=/ nextgroup=fsOptionsNumber
195
196" Options: udf
197syn match fsOptionsKeywords contained /\<\%(anchor\|partition\|lastblock\|fileset\|rootdir\)=/ nextgroup=fsOptionsString
198syn keyword fsOptionsKeywords contained unhide undelete strict novrs
199
200" Options: ufs
201syn match fsOptionsKeywords contained /\<ufstype=/ nextgroup=fsOptionsUfsType
202syn match fsOptionsKeywords contained /\<onerror=/ nextgroup=fsOptionsUfsError
203syn keyword fsOptionsUfsType contained old hp 44bsd sun sunx86 nextstep openstep
204syn match fsOptionsUfsType contained /\<nextstep-cd\>/
205syn keyword fsOptionsUfsError contained panic lock umount repair
206
207" Options: usbfs
208syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)\%(id\|gid\)=/ nextgroup=fsOptionsNumber
209syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)mode=/ nextgroup=fsOptionsNumberOctal
210
211" Options: vfat
212syn keyword fsOptionsKeywords contained nonumtail posix utf8
213syn match fsOptionsKeywords contained /shortname=/ nextgroup=fsOptionsVfatShortname
214syn keyword fsOptionsVfatShortname contained lower win95 winnt mixed
215
216" Options: xfs
217syn match fsOptionsKeywords contained /\%(biosize\|logbufs\|logbsize\|logdev\|rtdev\|sunit\|swidth\)=/ nextgroup=fsOptionsString
218syn keyword fsOptionsKeywords contained dmapi xdsm noalign noatime noquota norecovery osyncisdsync quota usrquota uqnoenforce grpquota gqnoenforce
219
220" Frequency / Pass No.
221syn cluster fsFreqPassCluster contains=fsFreqPassNumber,fsFreqPassError
222syn match fsFreqPassError /\s\+\zs\%(\D.*\|\S.*\|\d\+\s\+[^012]\)\ze/ contained
223syn match fsFreqPassNumber /\d\+\s\+[012]\s*/ contained
224
225" Groups
226syn match fsDevice /^\s*\zs.\{-1,}\s/me=e-1 nextgroup=fsMountPoint contains=@fsDeviceCluster,@fsGeneralCluster
227syn match fsMountPoint /\s\+.\{-}\s/me=e-1 nextgroup=fsType contains=@fsMountPointCluster,@fsGeneralCluster contained
228syn match fsType /\s\+.\{-}\s/me=e-1 nextgroup=fsOptions contains=@fsTypeCluster,@fsGeneralCluster contained
229syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained
230syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained
231
232" Whole line comments
233syn match fsCommentLine /^#.*$/ contains=@Spell
234
235hi def link fsOperator Operator
236hi def link fsComment Comment
237hi def link fsCommentLine Comment
238
239hi def link fsTypeKeyword Type
240hi def link fsDeviceKeyword Identifier
241hi def link fsDeviceLabel String
242hi def link fsDeviceUUID String
243hi def link fsDevicePARTLABEL String
244hi def link fsDevicePARTUUID String
245hi def link fsDeviceSshfs String
246hi def link fsFreqPassNumber Number
247
248if exists('fstab_unknown_fs_errors') && fstab_unknown_fs_errors == 1
249	hi def link fsTypeUnknown Error
250endif
251
252if !exists('fstab_unknown_device_errors') || fstab_unknown_device_errors == 1
253	hi def link fsDeviceError Error
254endif
255
256hi def link fsMountPointError Error
257hi def link fsMountPointKeyword Keyword
258hi def link fsFreqPassError Error
259
260hi def link fsOptionsGeneral Type
261hi def link fsOptionsKeywords Keyword
262hi def link fsOptionsNumber Number
263hi def link fsOptionsNumberOctal Number
264hi def link fsOptionsString String
265hi def link fsOptionsSize Number
266hi def link fsOptionsExt2Check String
267hi def link fsOptionsExt2Errors String
268hi def link fsOptionsExt3Journal String
269hi def link fsOptionsExt3Data String
270hi def link fsOptionsExt4Journal String
271hi def link fsOptionsExt4Data String
272hi def link fsOptionsExt4Barrier Number
273hi def link fsOptionsFatCheck String
274hi def link fsOptionsConv String
275hi def link fsOptionsFatType Number
276hi def link fsOptionsYesNo String
277hi def link fsOptionsHpfsCase String
278hi def link fsOptionsIsoMap String
279hi def link fsOptionsReiserHash String
280hi def link fsOptionsSshYesNoAsk String
281hi def link fsOptionsUfsType String
282hi def link fsOptionsUfsError String
283
284hi def link fsOptionsVfatShortname String
285
286let b:current_syntax = "fstab"
287
288let &cpo = s:cpo_save
289unlet s:cpo_save
290
291" vim: ts=8 ft=vim
292