From 7db29e4b5c3a347d24ca5062ddaa5cf4c4d54b9c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 11 Dec 2022 15:53:04 +0000 Subject: [PATCH] Update runtime files --- .github/CODEOWNERS | 4 + runtime/autoload/zig/fmt.vim | 100 ++++++++++++ runtime/doc/eval.txt | 9 +- runtime/doc/options.txt | 82 +++++----- runtime/doc/quickfix.txt | 15 ++ runtime/doc/tags | 48 ++++++ runtime/doc/todo.txt | 10 +- runtime/doc/vim9.txt | 6 +- runtime/doc/vim9class.txt | 45 +++++- runtime/ftplugin/readline.vim | 25 ++- runtime/syntax/fstab.vim | 279 +++++++++++++++++++++++++++++----- 11 files changed, 526 insertions(+), 97 deletions(-) create mode 100644 runtime/autoload/zig/fmt.vim diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index fdb67ccf1..d0d9ce5c1 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -51,6 +51,7 @@ runtime/compiler/dartanalyser.vim @dkearns runtime/compiler/dartdevc.vim @dkearns runtime/compiler/dartdoc.vim @dkearns runtime/compiler/dartfmt.vim @dkearns +runtime/compiler/dotnet.vim @nickspoons runtime/compiler/eruby.vim @dkearns runtime/compiler/fbc.vim @dkearns runtime/compiler/gawk.vim @dkearns @@ -181,6 +182,7 @@ runtime/ftplugin/python.vim @tpict runtime/ftplugin/qb64.vim @dkearns runtime/ftplugin/r.vim @jalvesaq runtime/ftplugin/racket.vim @benknoble +runtime/ftplugin/readline.vim @dkearns runtime/ftplugin/rhelp.vim @jalvesaq runtime/ftplugin/rmd.vim @jalvesaq runtime/ftplugin/rnoweb.vim @jalvesaq @@ -394,6 +396,7 @@ runtime/syntax/n1ql.vim @pr3d4t0r runtime/syntax/netrw.vim @cecamp runtime/syntax/nginx.vim @chr4 runtime/syntax/ninja.vim @nico +runtime/syntax/nix.vim @equill runtime/syntax/nroff.vim @jmarshall runtime/syntax/nsis.vim @k-takata runtime/syntax/openvpn.vim @ObserverOfTime @@ -464,6 +467,7 @@ runtime/syntax/vdf.vim @ObserverOfTime runtime/syntax/vim.vim @cecamp runtime/syntax/vroom.vim @dbarnett runtime/syntax/wast.vim @rhysd +runtime/syntax/wdl.vim @zenmatic runtime/syntax/wget.vim @dkearns runtime/syntax/wget2.vim @dkearns runtime/syntax/xbl.vim @dkearns diff --git a/runtime/autoload/zig/fmt.vim b/runtime/autoload/zig/fmt.vim new file mode 100644 index 000000000..b78c1994d --- /dev/null +++ b/runtime/autoload/zig/fmt.vim @@ -0,0 +1,100 @@ +" Adapted from fatih/vim-go: autoload/go/fmt.vim +" +" Copyright 2011 The Go Authors. All rights reserved. +" Use of this source code is governed by a BSD-style +" license that can be found in the LICENSE file. +" +" Upstream: https://github.com/ziglang/zig.vim + +function! zig#fmt#Format() abort + " Save cursor position and many other things. + let view = winsaveview() + + if !executable('zig') + echohl Error | echomsg "no zig binary found in PATH" | echohl None + return + endif + + let cmdline = 'zig fmt --stdin --ast-check' + let current_buf = bufnr('') + + " The formatted code is output on stdout, the errors go on stderr. + if exists('*systemlist') + silent let out = systemlist(cmdline, current_buf) + else + silent let out = split(system(cmdline, current_buf)) + endif + if len(out) == 1 + if out[0] == "error: unrecognized parameter: '--ast-check'" + let cmdline = 'zig fmt --stdin' + if exists('*systemlist') + silent let out = systemlist(cmdline, current_buf) + else + silent let out = split(system(cmdline, current_buf)) + endif + endif + endif + let err = v:shell_error + + + if err == 0 + " remove undo point caused via BufWritePre. + try | silent undojoin | catch | endtry + + " Replace the file content with the formatted version. + if exists('*deletebufline') + call deletebufline(current_buf, len(out), line('$')) + else + silent execute ':' . len(out) . ',' . line('$') . ' delete _' + endif + call setline(1, out) + + " No errors detected, close the loclist. + call setloclist(0, [], 'r') + lclose + elseif get(g:, 'zig_fmt_parse_errors', 1) + let errors = s:parse_errors(expand('%'), out) + + call setloclist(0, [], 'r', { + \ 'title': 'Errors', + \ 'items': errors, + \ }) + + let max_win_height = get(g:, 'zig_fmt_max_window_height', 5) + " Prevent the loclist from becoming too long. + let win_height = min([max_win_height, len(errors)]) + " Open the loclist, but only if there's at least one error to show. + execute 'silent! lwindow ' . win_height + endif + + call winrestview(view) + + if err != 0 + echohl Error | echomsg "zig fmt returned error" | echohl None + return + endif + + " Run the syntax highlighter on the updated content and recompute the folds if + " needed. + syntax sync fromstart +endfunction + +" parse_errors parses the given errors and returns a list of parsed errors +function! s:parse_errors(filename, lines) abort + " list of errors to be put into location list + let errors = [] + for line in a:lines + let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)') + if !empty(tokens) + call add(errors,{ + \"filename": a:filename, + \"lnum": tokens[2], + \"col": tokens[3], + \"text": tokens[4], + \ }) + endif + endfor + + return errors +endfunction +" vim: sw=2 ts=2 et diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index b2863d02f..98c48699c 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 9.0. Last change: 2022 Dec 03 +*eval.txt* For Vim version 9.0. Last change: 2022 Dec 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -163,9 +163,10 @@ Note that " " and "0" are also non-empty strings, thus considered to be TRUE. A List, Dictionary or Float is not a Number or String, thus evaluate to FALSE. *E611* *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* - *E913* *E974* *E975* *E976* -|List|, |Dictionary|, |Funcref|, |Job|, |Channel| and |Blob| types are not -automatically converted. + *E913* *E974* *E975* *E976* *E1319* *E1320* *E1321* *E1322* + *E1323* *E1324* +|List|, |Dictionary|, |Funcref|, |Job|, |Channel|, |Blob|, |Class| and +|object| types are not automatically converted. *E805* *E806* *E808* When mixing Number and Float the Number is converted to Float. Otherwise diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 73409b789..e95f63f75 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 9.0. Last change: 2022 Nov 30 +*options.txt* For Vim version 9.0. Last change: 2022 Dec 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -7117,45 +7117,49 @@ A jump table for the options with a short description can be found at |Q_op|. messages, for example with CTRL-G, and to avoid some other messages. It is a list of flags: flag meaning when present ~ - f use "(3 of 5)" instead of "(file 3 of 5)" - i use "[noeol]" instead of "[Incomplete last line]" - l use "999L, 888B" instead of "999 lines, 888 bytes" - m use "[+]" instead of "[Modified]" - n use "[New]" instead of "[New File]" - r use "[RO]" instead of "[readonly]" - w use "[w]" instead of "written" for file write message + f use "(3 of 5)" instead of "(file 3 of 5)" *shm-f* + i use "[noeol]" instead of "[Incomplete last line]" *shm-i* + l use "999L, 888B" instead of "999 lines, 888 bytes" *shm-l* + m use "[+]" instead of "[Modified]" *shm-m* + n use "[New]" instead of "[New File]" *shm-n* + r use "[RO]" instead of "[readonly]" *shm-r* + w use "[w]" instead of "written" for file write message *shm-w* and "[a]" instead of "appended" for ':w >> file' command - x use "[dos]" instead of "[dos format]", "[unix]" instead of - "[unix format]" and "[mac]" instead of "[mac format]". - a all of the above abbreviations - - o overwrite message for writing a file with subsequent message - for reading a file (useful for ":wn" or when 'autowrite' on) - O message for reading a file overwrites any previous message. - Also for quickfix message (e.g., ":cn"). - s don't give "search hit BOTTOM, continuing at TOP" or "search - hit TOP, continuing at BOTTOM" messages; when using the search - count do not show "W" after the count message (see S below) - t truncate file message at the start if it is too long to fit - on the command-line, "<" will appear in the left most column. - Ignored in Ex mode. - T truncate other messages in the middle if they are too long to - fit on the command line. "..." will appear in the middle. - Ignored in Ex mode. - W don't give "written" or "[w]" when writing a file - A don't give the "ATTENTION" message when an existing swap file - is found. - I don't give the intro message when starting Vim |:intro|. - c don't give |ins-completion-menu| messages. For example, - "-- XXX completion (YYY)", "match 1 of 2", "The only match", - "Pattern not found", "Back at original", etc. - C don't give messages while scanning for ins-completion items, - for instance "scanning tags" - q use "recording" instead of "recording @a" - F don't give the file info when editing a file, like `:silent` - was used for the command; note that this also affects messages - from autocommands - S do not show search count message when searching, e.g. + x use "[dos]" instead of "[dos format]", "[unix]" *shm-x* + instead of "[unix format]" and "[mac]" instead of "[mac + format]". + a all of the above abbreviations *shm-a* + + o overwrite message for writing a file with subsequent *shm-o* + message for reading a file (useful for ":wn" or when + 'autowrite' on) + O message for reading a file overwrites any previous *smh-O* + message. Also for quickfix message (e.g., ":cn"). + s don't give "search hit BOTTOM, continuing at TOP" or *shm-s* + "search hit TOP, continuing at BOTTOM" messages; when using + the search count do not show "W" after the count message (see + S below) + t truncate file message at the start if it is too long *shm-t* + to fit on the command-line, "<" will appear in the left most + column. Ignored in Ex mode. + T truncate other messages in the middle if they are too *shm-T* + long to fit on the command line. "..." will appear in the + middle. Ignored in Ex mode. + W don't give "written" or "[w]" when writing a file *shm-W* + A don't give the "ATTENTION" message when an existing *shm-A* + swap file is found. + I don't give the intro message when starting Vim, *shm-I* + see |:intro|. + c don't give |ins-completion-menu| messages. For *shm-c* + example, "-- XXX completion (YYY)", "match 1 of 2", "The only + match", "Pattern not found", "Back at original", etc. + C don't give messages while scanning for ins-completion *shm-C* + items, for instance "scanning tags" + q use "recording" instead of "recording @a" *shm-q* + F don't give the file info when editing a file, like *shm-F* + `:silent` was used for the command; note that this also + affects messages from autocommands + S do not show search count message when searching, e.g. *shm-S* "[1/5]" This gives you the opportunity to avoid that a change between buffers diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index 032e9a796..7dc4fa303 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1273,6 +1273,21 @@ not "b:current_compiler". What the command actually does is the following: For writing a compiler plugin, see |write-compiler-plugin|. +DOTNET *compiler-dotnet* + +The .NET CLI compiler outputs both errors and warnings by default. The output +may be limited to include only errors, by setting the g:dotnet_errors_only +variable to |v:true|. + +The associated project name is included in each error and warning. To supress +the project name, set the g:dotnet_show_project_file variable to |v:false|. + +Example: limit output to only display errors, and suppress the project name: > + let dotnet_errors_only = v:true + let dotnet_show_project_file = v:false + compiler dotnet +< + GCC *quickfix-gcc* *compiler-gcc* There's one variable you can set for the GCC compiler: diff --git a/runtime/doc/tags b/runtime/doc/tags index 2fe27d4d6..9178c773b 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -3988,6 +3988,7 @@ CTRL-{char} intro.txt /*CTRL-{char}* Channel eval.txt /*Channel* Channels eval.txt /*Channels* Chinese mbyte.txt /*Chinese* +Class vim9class.txt /*Class* Cmd-event autocmd.txt /*Cmd-event* CmdUndefined autocmd.txt /*CmdUndefined* Cmdline cmdline.txt /*Cmdline* @@ -4368,7 +4369,20 @@ E1311 map.txt /*E1311* E1312 windows.txt /*E1312* E1313 eval.txt /*E1313* E1314 vim9class.txt /*E1314* +E1315 vim9class.txt /*E1315* +E1316 vim9class.txt /*E1316* +E1317 vim9class.txt /*E1317* +E1318 vim9class.txt /*E1318* +E1319 eval.txt /*E1319* E132 userfunc.txt /*E132* +E1320 eval.txt /*E1320* +E1321 eval.txt /*E1321* +E1322 eval.txt /*E1322* +E1323 eval.txt /*E1323* +E1324 eval.txt /*E1324* +E1325 vim9class.txt /*E1325* +E1326 vim9class.txt /*E1326* +E1327 vim9class.txt /*E1327* E133 userfunc.txt /*E133* E134 change.txt /*E134* E135 autocmd.txt /*E135* @@ -5427,6 +5441,7 @@ OS390-bugs os_390.txt /*OS390-bugs* OS390-has-ebcdic os_390.txt /*OS390-has-ebcdic* OS390-limitations os_390.txt /*OS390-limitations* OS390-open-source os_390.txt /*OS390-open-source* +Object vim9class.txt /*Object* OffTheSpot mbyte.txt /*OffTheSpot* OnTheSpot mbyte.txt /*OnTheSpot* Operator-pending intro.txt /*Operator-pending* @@ -6264,6 +6279,7 @@ cino-w indent.txt /*cino-w* cino-{ indent.txt /*cino-{* cino-} indent.txt /*cino-}* cinoptions-values indent.txt /*cinoptions-values* +class vim9class.txt /*class* class-member vim9class.txt /*class-member* class-method vim9class.txt /*class-method* clear-undo undo.txt /*clear-undo* @@ -6322,6 +6338,7 @@ compile-changes-8 version8.txt /*compile-changes-8* compile-changes-9 version9.txt /*compile-changes-9* compiler-compaqada ft_ada.txt /*compiler-compaqada* compiler-decada ft_ada.txt /*compiler-decada* +compiler-dotnet quickfix.txt /*compiler-dotnet* compiler-gcc quickfix.txt /*compiler-gcc* compiler-gnat ft_ada.txt /*compiler-gnat* compiler-hpada ft_ada.txt /*compiler-hpada* @@ -8878,6 +8895,14 @@ nr2char() builtin.txt /*nr2char()* nroff.vim syntax.txt /*nroff.vim* null vim9.txt /*null* null-variable eval.txt /*null-variable* +null_blob vim9.txt /*null_blob* +null_channel vim9.txt /*null_channel* +null_dict vim9.txt /*null_dict* +null_function vim9.txt /*null_function* +null_job vim9.txt /*null_job* +null_list vim9.txt /*null_list* +null_partial vim9.txt /*null_partial* +null_string vim9.txt /*null_string* number_relativenumber options.txt /*number_relativenumber* numbered-function eval.txt /*numbered-function* numbermax-variable eval.txt /*numbermax-variable* @@ -8887,6 +8912,7 @@ o insert.txt /*o* o_CTRL-V motion.txt /*o_CTRL-V* o_V motion.txt /*o_V* o_v motion.txt /*o_v* +object vim9class.txt /*object* object-motions motion.txt /*object-motions* object-select motion.txt /*object-select* objects index.txt /*objects* @@ -9545,6 +9571,27 @@ shellescape() builtin.txt /*shellescape()* shift intro.txt /*shift* shift-left-right change.txt /*shift-left-right* shiftwidth() builtin.txt /*shiftwidth()* +shm-A options.txt /*shm-A* +shm-C options.txt /*shm-C* +shm-F options.txt /*shm-F* +shm-I options.txt /*shm-I* +shm-S options.txt /*shm-S* +shm-T options.txt /*shm-T* +shm-W options.txt /*shm-W* +shm-a options.txt /*shm-a* +shm-c options.txt /*shm-c* +shm-f options.txt /*shm-f* +shm-i options.txt /*shm-i* +shm-l options.txt /*shm-l* +shm-m options.txt /*shm-m* +shm-n options.txt /*shm-n* +shm-o options.txt /*shm-o* +shm-q options.txt /*shm-q* +shm-r options.txt /*shm-r* +shm-s options.txt /*shm-s* +shm-t options.txt /*shm-t* +shm-w options.txt /*shm-w* +shm-x options.txt /*shm-x* short-name-changed version4.txt /*short-name-changed* showing-menus gui.txt /*showing-menus* sign-column sign.txt /*sign-column* @@ -9583,6 +9630,7 @@ slice() builtin.txt /*slice()* slow-fast-terminal term.txt /*slow-fast-terminal* slow-start starting.txt /*slow-start* slow-terminal term.txt /*slow-terminal* +smh-O options.txt /*smh-O* socket-interface channel.txt /*socket-interface* sort() builtin.txt /*sort()* sorting change.txt /*sorting* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 39961a177..4474632c3 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 9.0. Last change: 2022 Dec 05 +*todo.txt* For Vim version 9.0. Last change: 2022 Dec 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -54,6 +54,14 @@ Upcoming larger works: Further Vim9 improvements, possibly after launch: - implement :class and :interface: See |vim9-classes| #11544 + make default constructor use "this.member = void" + make public / default read access / private work for members. + string value of class and object in echo_string_core() + object empty(), len() - can class define a method? + tv_equal() should compare values, not identity. + garbage collection: set_ref_in_item(): Mark items in class as used ? + type() should return different type for each class? + how about lock/unlock? - implement :type - implement :enum - Use Vim9 for more runtime files. diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt index a70b8a42c..e13feee46 100644 --- a/runtime/doc/vim9.txt +++ b/runtime/doc/vim9.txt @@ -1,4 +1,4 @@ -*vim9.txt* For Vim version 9.0. Last change: 2022 Dec 03 +*vim9.txt* For Vim version 9.0. Last change: 2022 Dec 08 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1023,7 +1023,9 @@ always converted to string: > Simple types are Number, Float, Special and Bool. For other types |string()| should be used. - *false* *true* *null* *E1034* + *false* *true* *null* *null_blob* *null_channel* + *null_dict* *null_function* *null_job* *null_list* + *null_partial* *null_string* *E1034* In Vim9 script one can use the following predefined values: > true false diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt index b018a105c..7785fbe13 100644 --- a/runtime/doc/vim9class.txt +++ b/runtime/doc/vim9class.txt @@ -1,4 +1,4 @@ -*vim9class.txt* For Vim version 9.0. Last change: 2022 Dec 04 +*vim9class.txt* For Vim version 9.0. Last change: 2022 Dec 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -96,7 +96,7 @@ Let's start with a simple example: a class that stores a text position: > this.col = col enddef endclass - +< *object* *Object* You can create an object from this class with the new() method: > var pos = TextPosition.new(1, 1) @@ -104,7 +104,7 @@ You can create an object from this class with the new() method: > The object members "lnum" and "col" can be accessed directly: > echo $'The text position is ({pos.lnum}, {pos.col})' - +< *E1317* *E1327* If you have been using other object-oriented languages you will notice that in Vim the object members are consistently referred to with the "this." prefix. This is different from languages like Java and TypeScript. This @@ -329,14 +329,14 @@ The interface name can be used as a type: > ============================================================================== -5. More class details *Vim9-class* +5. More class details *Vim9-class* *Class* *class* Defining a class ~ *:class* *:endclass* *:abstract* A class is defined between `:class` and `:endclass`. The whole class is defined in one script file. It is not possible to add to a class later. -A class can only be defined in a |Vim9| script file. *E1315* +A class can only be defined in a |Vim9| script file. *E1316* A class cannot be defined inside a function. It is possible to define more than one class in a script file. Although it @@ -361,7 +361,7 @@ these variants: > *E1314* The class name should be CamelCased. It must start with an uppercase letter. That avoids clashing with builtin types. - + *E1315* After the class name these optional items can be used. Each can appear only once. They can appear in any order, although this order is recommended: > extends ClassName @@ -377,6 +377,20 @@ named interface. This avoids the need for separately specifying the interface, which is often done in many languages, especially Java. +Items in a class ~ + *E1318* *E1325* *E1326* +Inside a class, in betweeen `:class` and `:endclass`, these items can appear: +- An object member declaration: > + this._memberName: memberType + this.memberName: memberType + public this.memberName: memberType +- A constructor method: > + def new(arguments) + def newName(arguments) +- An object method: > + def SomeMethod(arguments) + + Defining an interface ~ *:interface* *:endinterface* An interface is defined between `:interface` and `:endinterface`. It may be @@ -417,11 +431,28 @@ members, in the order they were specified. Thus if your class looks like: > Then The default constructor will be: > - def new(this.name, this.age, this.gender) + def new(this.name = void, this.age = void, this.gender = void) enddef All object members will be used, also private access ones. +The "= void" default values make the arguments optional. Thus you can also +call `new()` without any arguments. Since "void" isn't an actual value, no +assignment will happen and the default value for the object members will be +used. This is a more useful example, with default values: > + + class TextPosition + this.lnum: number = 1 + this.col: number = 1 + endclass + +If you want the constructor to have mandatory arguments, you need to write it +yourself. For example, if for the AutoNew class above you insist on getting +the name, you can define the constructor like this: > + + def new(this.name, this.age = void, this.gender = void) + enddef + Multiple constructors ~ diff --git a/runtime/ftplugin/readline.vim b/runtime/ftplugin/readline.vim index e9ef93ec7..eba712234 100644 --- a/runtime/ftplugin/readline.vim +++ b/runtime/ftplugin/readline.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file -" Language: readline(3) configuration file -" Previous Maintainer: Nikolai Weibull -" Latest Revision: 2008-07-09 +" Language: readline(3) configuration file +" Maintainer: Doug Kearns +" Previous Maintainer: Nikolai Weibull +" Last Change: 2022 Dec 09 if exists("b:did_ftplugin") finish @@ -11,9 +12,25 @@ let b:did_ftplugin = 1 let s:cpo_save = &cpo set cpo&vim +setlocal comments=:# +setlocal commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + let b:undo_ftplugin = "setl com< cms< fo<" -setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql +if exists("loaded_matchit") && !exists("b:match_words") + let b:match_ignorecase = 0 + let b:match_words = '$if:$else:$endif' + let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words" +endif + +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") + let b:browsefilter = "Readline Intialization Files (inputrc .inputrc)\tinputrc;*.inputrc\n" .. + \ "All Files (*.*)\t*.*\n" + let b:undo_ftplugin ..= " | unlet! b:browsefilter" +endif let &cpo = s:cpo_save unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/fstab.vim b/runtime/syntax/fstab.vim index 318488713..6a3c375b9 100644 --- a/runtime/syntax/fstab.vim +++ b/runtime/syntax/fstab.vim @@ -2,8 +2,8 @@ " Language: fstab file " Maintainer: Radu Dineiu " URL: https://raw.github.com/rid9/vim-fstab/master/syntax/fstab.vim -" Last Change: 2020 Dec 30 -" Version: 1.4 +" Last Change: 2022 Dec 10 +" Version: 1.5 " " Credits: " David Necas (Yeti) @@ -56,71 +56,120 @@ syn keyword fsMountPointKeyword contained none swap " Type syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown syn match fsTypeUnknown /\s\+\zs\w\+/ contained -syn 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 +syn keyword fsTypeKeyword contained adfs ados affs anon_inodefs atfs audiofs auto autofs bdev befs bfs btrfs binfmt_misc cd9660 ceph cfs cgroup cifs coda coherent configfs cpuset cramfs debugfs devfs devpts devtmpfs dlmfs e2compr ecryptfs efivarfs efs erofs exfat ext2 ext2fs ext3 ext4 f2fs fdesc ffs filecore fuse fuseblk fusectl gfs2 hfs hfsplus hpfs hugetlbfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix mqueue msdos ncpfs nfs nfs4 nfsd nilfs2 none ntfs ntfs3 null nwfs ocfs2 omfs overlay ovlfs pipefs portal proc procfs pstore ptyfs pvfs2 qnx4 qnx6 reiserfs ramfs romfs securityfs shm smbfs spufs squashfs sockfs sshfs std subfs swap sysfs sysv tcfs tmpfs ubifs udf ufs umap umsdos union usbfs userfs v9fs vfat virtiofs vs3fs vxfs wrapfs wvfs xenfs xenix xfs zisofs zonefs " Options " ------- " Options: General syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown syn match fsOptionsNumber /\d\+/ +syn match fsOptionsNumberSigned /[-+]\?\d\+/ syn match fsOptionsNumberOctal /[0-8]\+/ syn match fsOptionsString /[a-zA-Z0-9_-]\+/ +syn keyword fsOptionsTrueFalse true false syn keyword fsOptionsYesNo yes no +syn keyword fsOptionsYN y n +syn keyword fsOptions01 0 1 syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck syn keyword fsOptionsSize 512 1024 2048 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 norelatime nosuid nosymfollow nouser owner rbind rdonly relatime remount ro rq rw suid suiddir supermount sw sync union update user users wxallowed xx nofail failok syn match fsOptionsGeneral /_netdev/ +syn match fsOptionsKeywords contained /\/ +syn match fsOptionsErrors contained /\/ syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr " Options: ext3 syn match fsOptionsKeywords contained /\