]> granicus.if.org Git - vim/commitdiff
Update runtime files
authorBram Moolenaar <Bram@vim.org>
Fri, 18 Nov 2022 21:49:57 +0000 (21:49 +0000)
committerBram Moolenaar <Bram@vim.org>
Fri, 18 Nov 2022 21:49:57 +0000 (21:49 +0000)
24 files changed:
runtime/doc/builtin.txt
runtime/doc/cmdline.txt
runtime/doc/eval.txt
runtime/doc/gui.txt
runtime/doc/map.txt
runtime/doc/options.txt
runtime/doc/syntax.txt
runtime/doc/tags
runtime/doc/terminal.txt
runtime/doc/todo.txt
runtime/doc/userfunc.txt
runtime/doc/usr_41.txt
runtime/doc/vim9.txt
runtime/filetype.vim
runtime/ftplugin/lua.vim
runtime/lang/menu_da.utf-8.vim
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
runtime/syntax/go.vim
runtime/syntax/help.vim
runtime/syntax/html.vim
runtime/syntax/nsis.vim
runtime/syntax/ptcap.vim
runtime/syntax/sshconfig.vim
runtime/syntax/sshdconfig.vim

index 727ff2a5e0d080854ad62d6e7c133cd29b234fb3..f17a892da7e7a032e54ffe1e8a561fea8d2e0fe9 100644 (file)
@@ -1,4 +1,4 @@
-*builtin.txt*  For Vim version 9.0.  Last change: 2022 Nov 09
+*builtin.txt*  For Vim version 9.0.  Last change: 2022 Nov 14
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
index 2752ce634e8fe77d6e18038e5aa0e6aa403f6810..b30271e6f30ab036f11771e282f4db1c8a18e799 100644 (file)
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 9.0.  Last change: 2022 Sep 26
+*cmdline.txt*   For Vim version 9.0.  Last change: 2022 Nov 11
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
index ba95f3291f40daa647936cee001965150c3a7cbb..3515891c6f0a10cb4ffb98cf9840fbb74a5f6705 100644 (file)
@@ -1,4 +1,4 @@
-*eval.txt*     For Vim version 9.0.  Last change: 2022 Oct 07
+*eval.txt*     For Vim version 9.0.  Last change: 2022 Nov 13
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -3073,6 +3073,10 @@ text...
                        Unlock the internal variable {name}.  Does the
                        opposite of |:lockvar|.
 
+                       If {name} does not exist:
+                       - In |Vim9| script an error is given.
+                       - In legacy script this is silently ignored.
+
 :if {expr1}                    *:if* *:end* *:endif* *:en* *E171* *E579* *E580*
 :en[dif]               Execute the commands until the next matching `:else`
                        or `:endif` if {expr1} evaluates to non-zero.
index 432ca7c529f12fd0cb4f99bdcbc92b292f717ee5..668b4d4acd9926b8e08a9ca81157012fddec0f6c 100644 (file)
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 9.0.  Last change: 2022 Apr 03
+*gui.txt*       For Vim version 9.0.  Last change: 2022 Nov 17
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -889,6 +889,11 @@ s  The menu was defined with "<silent>" to avoid showing what it is
 Note that hitting <Tab> while entering a menu name after a menu command may
 be used to complete the name of the menu item.
 
+It is not allowed to change menus while listing them.  *E1310*
+This doesn't normally happen, only when, for example, you would have a timer
+callback define a menu and the user lists menus in a way it shows
+|more-prompt|.
+
 
 5.4 Executing Menus                                    *execute-menus*
 
index 494b6290fa0cfe189b33d21c226320e439994f60..f2b6a61216111eda9c6ec276d5c58000ad477748 100644 (file)
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 9.0.  Last change: 2022 Oct 19
+*map.txt*       For Vim version 9.0.  Last change: 2022 Nov 14
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -584,6 +584,9 @@ is the start of the last selected Visual area in the current buffer |'<|.
 The |:filter| command can be used to select what mappings to list.  The
 pattern is matched against the {lhs} and {rhs} in the raw form.
 
+While mappings are being listed, it is not possible to add or clear mappings,
+e.g. from a timer callback. *E1309*
+
                                                        *:map-verbose*
 When 'verbose' is non-zero, listing a key map will also display where it was
 last defined.  Example: >
@@ -1476,6 +1479,8 @@ See |:verbose-cmd| for more information.
 
 :delc[ommand] {cmd}                            *:delc* *:delcommand* *E184*
                        Delete the user-defined command {cmd}.
+                       This is not allowed while listing commands, e.g. from
+                       a timer. *E1311*
 
 :delc[ommand] -buffer {cmd}                                    *E1237*
                        Delete the user-defined command {cmd} that was defined
index 4642bdd481263aa6e894c9e1d5eb5befd902d357..f4bf3798760e6c64983da29ef5920b15cb226781 100644 (file)
@@ -1,4 +1,4 @@
-*options.txt*  For Vim version 9.0.  Last change: 2022 Oct 28
+*options.txt*  For Vim version 9.0.  Last change: 2022 Nov 12
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
index 0a3e3194689509fb29e61e8d9cd3259755107320..17d4b85df8510f99cb1f4113cc2649c454f85e50 100644 (file)
@@ -1,4 +1,4 @@
-*syntax.txt*   For Vim version 9.0.  Last change: 2022 Nov 06
+*syntax.txt*   For Vim version 9.0.  Last change: 2022 Nov 15
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1888,6 +1888,16 @@ following two lines to the syntax coloring file for that language
 Now you just need to make sure that you add all regions that contain
 the preprocessor language to the cluster htmlPreproc.
 
+                                                       *html-folding*
+The HTML syntax file provides syntax |folding| (see |:syn-fold|) between start
+and end tags.  This can be turned on by >
+
+       :let g:html_syntax_folding = 1
+       :set foldmethod=syntax
+
+Note: Syntax folding might slow down syntax highlighting significantly,
+especially for large files.
+
 
 HTML/OS (by Aestiva)                           *htmlos.vim* *ft-htmlos-syntax*
 
@@ -5394,8 +5404,8 @@ CursorLineSign    Like SignColumn when 'cursorline' is set for the cursor line.
 MatchParen     Character under the cursor or just before it, if it
                is a paired bracket, and its match. |pi_paren.txt|
                                                        *hl-MessageWindow*
-MessageWindow  Messages popup window used when 'cmdheight' is zero.  If not
-               defined |hl-WarningMsg| is used.
+MessageWindow  Messages popup window used by `:echowindow`.  If not defined
+               |hl-WarningMsg| is used.
                                                        *hl-ModeMsg*
 ModeMsg                'showmode' message (e.g., "-- INSERT --").
                                                        *hl-MoreMsg*
index a5159c37c6172816f413ddcb2e2dab8e82603b83..497a929117a3841d5ca54f5c23240e088b484002 100644 (file)
@@ -3042,6 +3042,9 @@ $quote    eval.txt        /*$quote*
 :r!    insert.txt      /*:r!*
 :range cmdline.txt     /*:range*
 :range!        change.txt      /*:range!*
+:range-closed-fold     cmdline.txt     /*:range-closed-fold*
+:range-offset  cmdline.txt     /*:range-offset*
+:range-pattern cmdline.txt     /*:range-pattern*
 :re    insert.txt      /*:re*
 :read  insert.txt      /*:read*
 :read! insert.txt      /*:read!*
@@ -4355,7 +4358,10 @@ E1305    textprop.txt    /*E1305*
 E1306  vim9.txt        /*E1306*
 E1307  vim9.txt        /*E1307*
 E1308  builtin.txt     /*E1308*
+E1309  map.txt /*E1309*
 E131   userfunc.txt    /*E131*
+E1310  gui.txt /*E1310*
+E1311  map.txt /*E1311*
 E132   userfunc.txt    /*E132*
 E133   userfunc.txt    /*E133*
 E134   change.txt      /*E134*
@@ -7512,6 +7518,7 @@ getloclist()      builtin.txt     /*getloclist()*
 getmarklist()  builtin.txt     /*getmarklist()*
 getmatches()   builtin.txt     /*getmatches()*
 getmousepos()  builtin.txt     /*getmousepos()*
+getmouseshape()        builtin.txt     /*getmouseshape()*
 getpid()       builtin.txt     /*getpid()*
 getpos()       builtin.txt     /*getpos()*
 getqflist()    builtin.txt     /*getqflist()*
@@ -7832,6 +7839,7 @@ howto.txt howto.txt       /*howto.txt*
 hpterm term.txt        /*hpterm*
 hpterm-color   syntax.txt      /*hpterm-color*
 html-flavor    insert.txt      /*html-flavor*
+html-folding   syntax.txt      /*html-folding*
 html-indent    indent.txt      /*html-indent*
 html-indenting indent.txt      /*html-indenting*
 html.vim       syntax.txt      /*html.vim*
@@ -10179,6 +10187,7 @@ termdebug_popup terminal.txt    /*termdebug_popup*
 termdebug_shortcuts    terminal.txt    /*termdebug_shortcuts*
 termdebug_use_prompt   terminal.txt    /*termdebug_use_prompt*
 termdebug_wide terminal.txt    /*termdebug_wide*
+termdebug_winbar       terminal.txt    /*termdebug_winbar*
 terminal       terminal.txt    /*terminal*
 terminal-api   terminal.txt    /*terminal-api*
 terminal-autoshelldir  terminal.txt    /*terminal-autoshelldir*
index 3acc51382de6f37143972925aa30793deb216700..a089ef94b01c8486591351665a086afcd7d8df98 100644 (file)
@@ -1,4 +1,4 @@
-*terminal.txt* For Vim version 9.0.  Last change: 2022 Oct 10
+*terminal.txt* For Vim version 9.0.  Last change: 2022 Nov 10
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -469,7 +469,6 @@ ConPTY problems have been fixed "winpty" will be preferred.
 Environment variables are used to pass information to the running job:
     VIM_SERVERNAME     v:servername
 
-
 ==============================================================================
 2. Terminal functions                           *terminal-function-details*
 
@@ -1129,7 +1128,6 @@ reference: >
 
 Creating a screen dump ~
                                                        *terminal-screendump*
-
 To create the screen dump, run Vim (or any other program) in a terminal and
 make it show the desired state.  Then use the |term_dumpwrite()| function to
 create a screen dump file.  For example: >
@@ -1153,7 +1151,6 @@ If there are differences then v:errors will contain the error message.
 
 Comparing screen dumps ~
                                                *terminal-diffscreendump*
-
 |assert_equalfile()| does not make it easy to see what is different.
 To spot the problem use |term_dumpdiff()|: >
        call term_dumpdiff("mysyntax.dump", "test.dump")
@@ -1350,6 +1347,7 @@ If 'mouse' is set the plugin adds a window toolbar with these entries:
   Eval         `:Evaluate`
 This way you can use the mouse to perform the most common commands.  You need
 to have the 'mouse' option set to enable mouse clicks.
+See |termdebug_winbar| for configuring this toolbar.
                                                                *:Winbar*
 You can add the window toolbar in other windows you open with: >
   :Winbar
@@ -1415,6 +1413,20 @@ TermdebugStopPost                After debugging has ended, gdb-related windows
                                the state before the debugging was restored.
 
 
+Customizing ~
+                               *termdebug-customizing* *g:termdebug_config*
+In the past several global variables were used for configuration.  These are
+deprecated and using the g:termdebug_config dictionary is preferred.  When
+g:termdebug_config exists the other global variables will NOT be used.
+The recommended way is to start with an empty dictionary: >
+       let g:termdebug_config = {}
+
+Then you can add entries to the dictionary as mentioned below.  The
+deprecated global variable names are mentioned for completeness.  If you are
+switching over to using g:termdebug_config you can find the old variable name
+and take over the value, then delete the deprecated variable.
+
+
 Prompt mode ~
                                                *termdebug-prompt*
 When the |+terminal| feature is not supported and on MS-Windows, gdb will run
@@ -1430,13 +1442,13 @@ in a buffer with 'buftype' set to "prompt".  This works slightly differently:
                                                *termdebug_use_prompt*
 Prompt mode can be used even when the |+terminal| feature is present with: >
        let g:termdebug_config['use_prompt'] = 1
-Or if there is no g:termdebug_config: >
+If there is no g:termdebug_config you can use: >
        let g:termdebug_use_prompt = 1
 <
                                                *termdebug_map_K*
 The K key is normally mapped to :Evaluate. If you do not want this use: >
        let g:termdebug_config['map_K'] = 0
-Or if there is no g:termdebug_config: >
+If there is no g:termdebug_config you can use: >
        let g:termdebug_map_K = 0
 <
                                                *termdebug_disasm_window*
@@ -1444,7 +1456,7 @@ If you want the Asm window shown by default, set the flag to 1.
 the "disasm_window_height" entry can be used to set the window height: >
        let g:termdebug_config['disasm_window'] = 1
        let g:termdebug_config['disasm_window_height'] = 15
-or, if there is no g:termdebug_config: >
+If there is no g:termdebug_config you can use: >
        let g:termdebug_disasm_window = 15
 Any value greater than 1 will set the Asm window height to that value.
 
@@ -1462,25 +1474,18 @@ interrupt the running program.  But after using the MI command
 communication channel.
 
 
-Customizing ~
-                               *termdebug-customizing* *g:termdebug_config*
-In the past several global variables were used for configuration.  These are
-deprecated, using the g:termdebug_config dictionary is preferred.  When
-g:termdebug_config exists the other global variables will not be used.
-
-
 GDB command ~
                                                        *g:termdebugger*
 To change the name of the gdb command, set "debugger" entry in
 g:termdebug_config or the "g:termdebugger" variable before invoking
 `:Termdebug`: >
        let g:termdebug_config['command'] = "mygdb"
-Or if there is no g:termdebug_config: >
+If there is no g:termdebug_config you can use: >
        let g:termdebugger = "mygdb"
 
 If the command needs an argument use a List: >
        let g:termdebug_config['command'] = ['rr', 'replay', '--']
-Or if there is no g:termdebug_config: >
+If there is no g:termdebug_config you can use: >
        let g:termdebugger = ['rr', 'replay', '--']
 
 Several arguments will be added to make gdb work well for the debugger.
@@ -1501,7 +1506,7 @@ Then your gdb is too old.
 
 
 Colors ~
-                                               *hl-debugPC* *hl-debugBreakpoint*
+                                       *hl-debugPC* *hl-debugBreakpoint*
 The color of the signs can be adjusted with these highlight groups:
 - debugPC              the current position
 - debugBreakpoint      a breakpoint
@@ -1517,7 +1522,6 @@ When 'background' is "dark":
 
 Shortcuts ~
                                                        *termdebug_shortcuts*
-
 You can define your own shortcuts (mappings) to control gdb, that can work in
 any window, using the TermDebugSendCommand() function.  Example: >
        map ,w :call TermDebugSendCommand('where')<CR>
@@ -1526,7 +1530,6 @@ The argument is the gdb command.
 
 Popup menu ~
                                                        *termdebug_popup*
-
 By default the Termdebug plugin sets 'mousemodel' to "popup_setpos" and adds
 these entries to the popup menu:
        Set breakpoint          `:Break`
@@ -1534,17 +1537,23 @@ these entries to the popup menu:
        Evaluate                `:Evaluate`
 If you don't want this then disable it with: >
        let g:termdebug_config['popup'] = 0
-or if there is no g:termdebug_config: >
+If there is no g:termdebug_config you can use: >
        let g:termdebug_popup = 0
 
 
+Window toolbar ~
+                                                       *termdebug_winbar*
+By default the Termdebug plugin creates a window toolbar if the mouse is
+enabled (see |:Winbar|).  If you don't want this then disable it with: >
+       let g:termdebug_config['winbar'] = 0
+
+
 Vim window width ~
                                                        *termdebug_wide*
-
 To change the width of the Vim window when debugging starts and use a vertical
 split: >
        let g:termdebug_config['wide'] = 163
-Or if there is no g:termdebug_config: >
+If there is no g:termdebug_config you can use: >
        let g:termdebug_wide = 163
 
 This will set 'columns' to 163 when `:Termdebug` is used.  The value is
index ff59a202861975fbf4e1e54a4f023fccae945dad..8ff194ad1531bd437d46b772ec2c9728d297dd8f 100644 (file)
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 9.0.  Last change: 2022 Nov 09
+*todo.txt*      For Vim version 9.0.  Last change: 2022 Nov 18
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -38,19 +38,71 @@ browser use: https://github.com/vim/vim/issues/1234
                                                        *known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Add test for what 9.0.0827 fixes - '@' in termcap key code
+virtual text issues:
+- #11463  `after` is sometimes wrapped with `list`, `nowrap` and
+  `listchars+=extends:>`, cursor position is also wrong
+- #11520   `below` cannot be placed below empty lines
+    James Alvarado looks into it
 
 'smoothscroll':
+- PR #11502 -  cursor position wrong
+- PR #11514 -  mouse click is off
 - CTRL-E and gj in long line with 'scrolloff' 5 not working well yet.
 - computing 'scrolloff' position row use w_skipcol
-- PR: Error in screen dump for Test_smoothscroll_one_long_line.  (PR #11436)
+- Check this list: https://github.com/vim/vim/pulls?q=is%3Apr+is%3Aopen+smoothscroll+author%3Aychin
+- Long line spanning multiple pages:  After a few CTRL-E then gj causes a
+  scroll. (Ernie Rael, 18 Nov)  Also pressing space or "l"
+
+Switching to window for a buffer in set_buffer_lines() doesn't work if there
+is no window.  Use aucmd_prepbuf() instead.  #11558
+
+
+Upcoming larger works:
+- Make spell checking work with recent .dic/.aff files, e.g. French.  #4916
+    Make Vim understand the format somehow?   Search for "spell" below.
+    Make sure suggestions are speedy, also with composed words (German).
+- Discuss alternatives for using other grammars (treesitter, TextMate).
+   - Possibly conversion to Vim syntax rules.
+   - Other mechanism than group and cluster to nest syntax items, to be used
+     for grammars.
+   - Possibly keeping the parsed syntax tree and incremental updates.
+   - Make clear how it relates to LSP.
+   - example plugin: https://github.com/uga-rosa/dps-vsctm.vim
+- Better support for detecting terminal emulator behavior (esp. special key
+  handling) and taking away the need for users to tweak their config.
+  > In the libvterm fork properly implement:
+    - modifyOtherKeys 2 - follow xterm implementation as close as possible
+    - Kitty key protocol - just like the latest Kitty
+    So that in TermDebug the key handling can be stepped through (instead of
+    having to log messages all over the place to see what happens).  Ask
+    Leonerd about location of code, he might want to take over some of it.
+  > In the table of names pointing to the list of entries, with an additional
+    one.  So that "xterm-kitty" can first load "xterm" and then add "kitty"
+    entries.
+  > Add an "expectKittyEsc" flag (Esc is always sent as a sequence, not one
+    character) and always wait after an Esc for more to come, don't leave
+    Insert mode.
+    -> Request code for Esc after outputting t_KI, use "k!" value.
+       Use response to set "expectKittyEsc".
+    -> Add ESC[>1uESC[?u to t_KI, parse flag response.
+    -> May also send t_RV and delay starting a shell command until the
+       response has been seen, to make sure the other responses don't get read
+       by a shell command.
+  > Add an option with a list of names that, when matching $TERM, indicate the
+    kitty keyboard protocol should be used?  Allows adding "foot" and others
+    later, without modifying Vim.  Perhaps a pattern-value pair:
+       set keyprotocol=kitty:kitty,foot:kitty,xterm:mok2,doggy:mok2
+    Here "mok2" means modifyOtherKeys level 2.
+  > Can we use the req_more_codes_from_term() mechanism with more terminals?
+    Should we repeat it after executing a shell command?
+    Can also add this to the 'keyprotocol' option: "mok2+tcap"
 
 
 Further Vim9 improvements, possibly after launch:
 - Use Vim9 for more runtime files.
 - implement :type
 - implement :enum
-- implement :class and :interface: See |vim9-classes|
+- implement :class and :interface: See |vim9-classes|  #11544
 - Inline call to map() and filter(), better type checking.
 - When evaluating constants for script variables, some functions could work:
     has(featureName), len(someString)
@@ -180,9 +232,33 @@ Add BufDeletePost.  #11041
 
 Add winid arg to col() and charcol()  #11466 (request #11461)
 
+Make the default for 'ttyfast' on, checking $TERM names doesn't make much
+sense right now, most terminals are fast.  #11549
+
+Can we make 'noendofline' and 'endoffile' visible?  Should show by default,
+since it's an unusual situation.
+- Show 'noendofline' when it would be used for writing ('fileformat' "dos")
+  with an upside down exclamation mark?  NonText highlighting.
+- Show 'endoffile' when it would be used for writing ('fileformat' "dos") with
+  "CTRL-Z", NonText highlighting.
+- Add 'fillchars' items to change this, default behavior like:
+       noeol:¡
+       eof:CTRL-Z
+
 Test property disappears when using CR twice in a row.  OK when some text was
 entered. (#11151)
 
+Add 'keywordprg' to various ftplugin files:
+https://github.com/vim/vim/pull/5566
+
+Add some kind of ":whathappend" command and functions to make visible what the
+last few typed keys and executed commands are.  To be used when the user
+wonders what went wrong.
+- typed keys - Normal mode command - like what is recorded in a register and
+  displayed by 'showcmd'.
+- executed command lines
+- with more verbosity: what scripts/functions/autocommands were executed
+
 NFA regexp does not handle composing characters well: #10286
     [ɔ̃] matches both É” and É”̃
     \(É”\|ɔ̃\) matches É” and not É”̃
@@ -201,14 +277,6 @@ How to get all the text quickly (also over ssh)?  Can we use a side channel?
 
 Horizontal mouse scroll only works when compiled with GUI?  #11374
 
-In the libvterm fork properly implement:
-- modifyOtherKeys 2 - follow xterm implementation as close as possible, that
-  is the reference.
-- Kitty key protocol - just like the latest Kitty
-So that in TermDebug the key handling can be stepped through (instead of
-having to log messages all over the place to see what happens).
-Ask Leonerd about location of code, he might want to take over some of it.
-
 Using "A" and "o" in manually created fold (in empty buffer) does not behave
 consistenly (James McCoy, #10698)
 
@@ -218,6 +286,8 @@ overwritten.  Could use ":echowin" and call redraw_cmd() in get_user_input().
 
 Syntax include problem: #11277.  Related to Patch 8.2.2761
 
+Add str2blob() and blob2str() ?  #4049
+
 To avoid flicker: add an option that when a screen clear is requested, instead
 of clearing it draws everything and uses "clear to end of line" for every line.
 Resetting 't_ut' already causes this?
@@ -281,9 +351,6 @@ Also, z= in German on a long word can take a very long time, but CTRL-C to
 interrupt does not work. Where to add ui_breakcheck()?
 New English spell files also have very slow suggestions.
 
-French spell files don't work correctly.  #4916
-    Make Vim understand the format somehow?
-
 When 'spelloptions' is "camel" then zG doesn't work on some words.
 (Gary Johnson, 17 Oct 2022)
 
index 0ebc82a77117dc61c2d5db3fd07aac17001bc5df..ab2005ef5067fe2c6f9e1aded80e25f8b0cf8920 100644 (file)
@@ -1,4 +1,4 @@
-*userfunc.txt* For Vim version 9.0.  Last change: 2022 Sep 09
+*userfunc.txt* For Vim version 9.0.  Last change: 2022 Nov 17
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -8,8 +8,8 @@ Defining and using functions.
 
 This is introduced in section |41.7| of the user manual.
 
-1. Defining a fuction                  |define-function|
-2. Calling a fuction                   |:call|
+1. Defining a function                 |define-function|
+2. Calling a function                  |:call|
 3. Cleaning up in a function           |:defer|
 4. Automatically loading functions     |autoload-functions|
 
index 5a7820ed77aae081ac34f59ba1d5e5ce53454eaa..086081f72e160c7c7424354633e586296e6ef5b9 100644 (file)
@@ -1,4 +1,4 @@
-*usr_41.txt*   For Vim version 9.0.  Last change: 2022 Oct 07
+*usr_41.txt*   For Vim version 9.0.  Last change: 2022 Nov 14
 
                     VIM USER MANUAL - by Bram Moolenaar
 
index 7c5b2b829d2afd4024ba2bc1b37749ee5a5582fa..387f9a13016eda2c7ce58af682069e83132fecf4 100644 (file)
@@ -1,4 +1,4 @@
-*vim9.txt*     For Vim version 9.0.  Last change: 2022 Oct 11
+*vim9.txt*     For Vim version 9.0.  Last change: 2022 Nov 14
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1950,13 +1950,22 @@ For now we'll just make sure classes can be added later.
 Thoughts:
 - `class` / `endclass`, the whole class must be in one file
 - Class names are always CamelCase (to avoid a name clash with builtin types)
-- A single constructor called "constructor"
-- Single inheritance with `class ThisClass extends BaseClass`
-- `abstract class` (class with incomplete implementation)
-- `interface` / `endinterface` (abstract class without any implementation)
-- `class SomeClass implements SomeInterface`
+- A single constructor called "constructor" (similar to TypeScript)
+- Single inheritance: `class ThisClass extends BaseClass`
+- `interface` / `endinterface` (looks like a class without any implementation)
+- Explicit declaration that the class supports an interface, so that type
+  checking works properly:
+  `class SomeClass implements SomeInterface, OtherInterface`
+- `abstract class` (class with incomplete implementation) - not really needed?
+- Class (static) methods and Object methods: syntax to be defined.
+- Class (static) members and Object members: syntax to be defined.
+- Access control: private / protected / shared / public ?  Keep it simple.
+- Access object members with `this.member` ?
 - Generics for class: `class <Tkey, Tentry>`
 - Generics for function: `def <Tkey> GetLast(key: Tkey)`
+- Method overloading (two methods with the same name but different argument
+  types): Most likely not
+- Mixins: not sure if that is useful, leave out for simplicity.
 
 Again, much of this is from TypeScript with a slightly different syntax.
 
index 5a6e83ed8a05f16e81e2177e35d45bdd32154c3b..20ec7d11575714c56d3fc0829dafee2de4c13028 100644 (file)
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2022 Nov 07
+" Last Change: 2022 Nov 17
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
index c28b8aecf8ae20706764cf7945354b32b8dae3f1..c6ce4a0615d5dea4e4fb4879c0e8caa67b2072b3 100644 (file)
@@ -4,7 +4,7 @@
 " Previous Maintainer: Max Ischenko <mfi@ukr.net>
 " Contributor:         Dorai Sitaram <ds26@gte.com>
 "                      C.D. MacEachern <craig.daniel.maceachern@gmail.com>
-" Last Change:         2022 Oct 15
+" Last Change:         2022 Nov 16
 
 if exists("b:did_ftplugin")
   finish
@@ -21,7 +21,7 @@ setlocal formatoptions-=t formatoptions+=croql
 let &l:define = '\<function\|\<local\%(\s\+function\)\='
 
 " TODO: handle init.lua
-setlocal includeexpr=substitute(v:fname,'\\.','/','g')
+setlocal includeexpr=substitute(v:fname,'\.','/','g')
 setlocal suffixesadd=.lua
 
 let b:undo_ftplugin = "setlocal cms< com< def< fo< inex< sua<"
index 935a780e1c282ab690f641065e150ac11bd3f5f6..cffe1ccd1fc146e3ab34cdea71b454b7ec047d07 100644 (file)
@@ -1,6 +1,6 @@
 " Menu Translations:   Danish
 " Maintainer:          scootergrisen
-" Last Change:         2020 Apr 23
+" Last Change:         2022 Nov 17
 " Original translations
 
 " Quit when menu translations have already been done.
@@ -44,7 +44,7 @@ menut &Save<Tab>:w    Gem<Tab>:w
 menut Save\ &As\.\.\.<Tab>:sav Gem\ som\.\.\.<Tab>:sav
 " -SEP2-
 menut Split\ &Diff\ with\.\.\. Opdel\ diff\ med\.\.\.
-menut Split\ Patched\ &By\.\.\.        Opdel\ patchet\ af\.\.\.
+menut Split\ Patched\ &By\.\.\.        Opdel\ patched\ af\.\.\.
 " -SEP3-
 menut &Print   Udskriv
 " -SEP4-
index 9b012c798b456a28f355b931bee660c9521ab098..9fd4bcb3f5170e92fa0ae4ad4a77098ceb89df4f 100644 (file)
@@ -2,7 +2,7 @@
 "
 " Author: Bram Moolenaar
 " Copyright: Vim license applies, see ":help license"
-" Last Change: 2022 Jun 24
+" Last Change: 2022 Nov 10
 "
 " WORK IN PROGRESS - The basics works stable, more to come
 " Note: In general you need at least GDB 7.12 because this provides the
@@ -891,7 +891,14 @@ func s:InstallCommands()
   endif
 
   if has('menu') && &mouse != ''
-    call s:InstallWinbar()
+    " install the window toolbar by default, can be disabled in the config
+    let winbar = 1
+    if exists('g:termdebug_config')
+      let winbar = get(g:termdebug_config, 'winbar', 1)
+    endif
+    if winbar
+      call s:InstallWinbar()
+    endif
 
     let popup = 1
     if exists('g:termdebug_config')
index 0c326254b8174ae9a4d0d7d46fbc978795c51b7d..904c8ad7f2fcf5cb279686d2ea72e24bddcbb896 100644 (file)
@@ -5,7 +5,7 @@
 " go.vim: Vim syntax file for Go.
 " Language:             Go
 " Maintainer:           Billie Cleek <bhcleek@gmail.com>
-" Latest Revision:      2021-09-18
+" Latest Revision:      2022-11-17
 " License:              BSD-style. See LICENSE file in source repository.
 " Repository:           https://github.com/fatih/vim-go
 
@@ -117,7 +117,7 @@ hi def link     goLabel             Label
 hi def link     goRepeat            Repeat
 
 " Predefined types
-syn keyword     goType              chan map bool string error
+syn keyword     goType              chan map bool string error any comparable
 syn keyword     goSignedInts        int int8 int16 int32 int64 rune
 syn keyword     goUnsignedInts      byte uint uint8 uint16 uint32 uint64 uintptr
 syn keyword     goFloats            float32 float64
@@ -187,6 +187,8 @@ else
   syn region      goRawString         start=+`+ end=+`+
 endif
 
+syn match       goImportString      /^\%(\s\+\|import \)\(\h\w* \)\?\zs"[^"]\+"$/ contained containedin=goImport
+
 if s:HighlightFormatStrings()
   " [n] notation is valid for specifying explicit argument indexes
   " 1. Match a literal % not preceded by a %.
@@ -204,6 +206,7 @@ if s:HighlightFormatStrings()
   hi def link     goFormatSpecifier   goSpecialString
 endif
 
+hi def link     goImportString      String
 hi def link     goString            String
 hi def link     goRawString         String
 
@@ -223,9 +226,9 @@ endif
 
 " import
 if s:FoldEnable('import')
-  syn region    goImport            start='import (' end=')' transparent fold contains=goImport,goString,goComment
+  syn region    goImport            start='import (' end=')' transparent fold contains=goImport,goImportString,goComment
 else
-  syn region    goImport            start='import (' end=')' transparent contains=goImport,goString,goComment
+  syn region    goImport            start='import (' end=')' transparent contains=goImport,goImportString,goComment
 endif
 
 " var, const
@@ -245,14 +248,10 @@ endif
 syn match       goSingleDecl        /\%(import\|var\|const\) [^(]\@=/ contains=goImport,goVar,goConst
 
 " Integers
-syn match       goDecimalInt        "\<-\=\(0\|[1-9]_\?\(\d\|\d\+_\?\d\+\)*\)\%([Ee][-+]\=\d\+\)\=\>"
-syn match       goDecimalError      "\<-\=\(_\(\d\+_*\)\+\|\([1-9]\d*_*\)\+__\(\d\+_*\)\+\|\([1-9]\d*_*\)\+_\+\)\%([Ee][-+]\=\d\+\)\=\>"
-syn match       goHexadecimalInt    "\<-\=0[xX]_\?\(\x\+_\?\)\+\>"
-syn match       goHexadecimalError  "\<-\=0[xX]_\?\(\x\+_\?\)*\(\([^ \t0-9A-Fa-f_)]\|__\)\S*\|_\)\>"
-syn match       goOctalInt          "\<-\=0[oO]\?_\?\(\o\+_\?\)\+\>"
-syn match       goOctalError        "\<-\=0[0-7oO_]*\(\([^ \t0-7oOxX_/)\]\}\:;]\|[oO]\{2,\}\|__\)\S*\|_\|[oOxX]\)\>"
-syn match       goBinaryInt         "\<-\=0[bB]_\?\([01]\+_\?\)\+\>"
-syn match       goBinaryError       "\<-\=0[bB]_\?[01_]*\([^ \t01_)]\S*\|__\S*\|_\)\>"
+syn match       goDecimalInt        "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)\>"
+syn match       goHexadecimalInt    "\<-\=0[xX]_\?\%(\x\|\x_\x\)\+\>"
+syn match       goOctalInt          "\<-\=0[oO]\?_\?\%(\o\|\o_\o\)\+\>"
+syn match       goBinaryInt         "\<-\=0[bB]_\?\%([01]\|[01]_[01]\)\+\>"
 
 hi def link     goDecimalInt        Integer
 hi def link     goDecimalError      Error
@@ -265,19 +264,55 @@ hi def link     goBinaryError       Error
 hi def link     Integer             Number
 
 " Floating point
-syn match       goFloat             "\<-\=\d\+\.\d*\%([Ee][-+]\=\d\+\)\=\>"
-syn match       goFloat             "\<-\=\.\d\+\%([Ee][-+]\=\d\+\)\=\>"
+"float_lit         = decimal_float_lit | hex_float_lit .
+"
+"decimal_float_lit = decimal_digits "." [ decimal_digits ] [ decimal_exponent ] |
+"                    decimal_digits decimal_exponent |
+"                    "." decimal_digits [ decimal_exponent ] .
+"decimal_exponent  = ( "e" | "E" ) [ "+" | "-" ] decimal_digits .
+"
+"hex_float_lit     = "0" ( "x" | "X" ) hex_mantissa hex_exponent .
+"hex_mantissa      = [ "_" ] hex_digits "." [ hex_digits ] |
+"                    [ "_" ] hex_digits |
+"                    "." hex_digits .
+"hex_exponent      = ( "p" | "P" ) [ "+" | "-" ] decimal_digits .
+" decimal floats with a decimal point
+syn match       goFloat             "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)\.\%(\%(\%(\d\|\d_\d\)\+\)\=\%([Ee][-+]\=\%(\d\|\d_\d\)\+\)\=\>\)\="
+syn match       goFloat             "\s\zs-\=\.\%(\d\|\d_\d\)\+\%(\%([Ee][-+]\=\%(\d\|\d_\d\)\+\)\>\)\="
+" decimal floats without a decimal point
+syn match       goFloat             "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)[Ee][-+]\=\%(\d\|\d_\d\)\+\>"
+" hexadecimal floats with a decimal point
+syn match       goHexadecimalFloat  "\<-\=0[xX]\%(_\x\|\x\)\+\.\%(\%(\x\|\x_\x\)\+\)\=\%([Pp][-+]\=\%(\d\|\d_\d\)\+\)\=\>"
+syn match       goHexadecimalFloat  "\<-\=0[xX]\.\%(\x\|\x_\x\)\+\%([Pp][-+]\=\%(\d\|\d_\d\)\+\)\=\>"
+" hexadecimal floats without a decimal point
+syn match       goHexadecimalFloat  "\<-\=0[xX]\%(_\x\|\x\)\+[Pp][-+]\=\%(\d\|\d_\d\)\+\>"
 
 hi def link     goFloat             Float
+hi def link     goHexadecimalFloat  Float
 
 " Imaginary literals
-syn match       goImaginary         "\<-\=\d\+i\>"
-syn match       goImaginary         "\<-\=\d\+[Ee][-+]\=\d\+i\>"
-syn match       goImaginaryFloat    "\<-\=\d\+\.\d*\%([Ee][-+]\=\d\+\)\=i\>"
-syn match       goImaginaryFloat    "\<-\=\.\d\+\%([Ee][-+]\=\d\+\)\=i\>"
-
-hi def link     goImaginary         Number
-hi def link     goImaginaryFloat    Float
+syn match       goImaginaryDecimal        "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)i\>"
+syn match       goImaginaryHexadecimal    "\<-\=0[xX]_\?\%(\x\|\x_\x\)\+i\>"
+syn match       goImaginaryOctal          "\<-\=0[oO]\?_\?\%(\o\|\o_\o\)\+i\>"
+syn match       goImaginaryBinary         "\<-\=0[bB]_\?\%([01]\|[01]_[01]\)\+i\>"
+
+" imaginary decimal floats with a decimal point
+syn match       goImaginaryFloat             "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)\.\%(\%(\%(\d\|\d_\d\)\+\)\=\%([Ee][-+]\=\%(\d\|\d_\d\)\+\)\=\)\=i\>"
+syn match       goImaginaryFloat             "\s\zs-\=\.\%(\d\|\d_\d\)\+\%([Ee][-+]\=\%(\d\|\d_\d\)\+\)\=i\>"
+" imaginary decimal floats without a decimal point
+syn match       goImaginaryFloat             "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)[Ee][-+]\=\%(\d\|\d_\d\)\+i\>"
+" imaginary hexadecimal floats with a decimal point
+syn match       goImaginaryHexadecimalFloat  "\<-\=0[xX]\%(_\x\|\x\)\+\.\%(\%(\x\|\x_\x\)\+\)\=\%([Pp][-+]\=\%(\d\|\d_\d\)\+\)\=i\>"
+syn match       goImaginaryHexadecimalFloat  "\<-\=0[xX]\.\%(\x\|\x_\x\)\+\%([Pp][-+]\=\%(\d\|\d_\d\)\+\)\=i\>"
+" imaginary hexadecimal floats without a decimal point
+syn match       goImaginaryHexadecimalFloat  "\<-\=0[xX]\%(_\x\|\x\)\+[Pp][-+]\=\%(\d\|\d_\d\)\+i\>"
+
+hi def link     goImaginaryDecimal             Number
+hi def link     goImaginaryHexadecimal         Number
+hi def link     goImaginaryOctal               Number
+hi def link     goImaginaryBinary              Number
+hi def link     goImaginaryFloat               Float
+hi def link     goImaginaryHexadecimalFloat    Float
 
 " Spaces after "[]"
 if s:HighlightArrayWhitespaceError()
@@ -346,6 +381,8 @@ if s:HighlightOperators()
   syn match goOperator /\%(<<\|>>\|&^\)=\?/
   " match remaining two-char operators: := && || <- ++ --
   syn match goOperator /:=\|||\|<-\|++\|--/
+  " match ~
+  syn match goOperator /\~/
   " match ...
 
   hi def link     goPointerOperator   goOperator
@@ -353,13 +390,37 @@ if s:HighlightOperators()
 endif
 hi def link     goOperator          Operator
 
+"                               -> type constraint opening bracket
+"                               |-> start non-counting group
+"                               ||  -> any word character
+"                               ||  |  -> at least one, as many as possible
+"                               ||  |  |    -> start non-counting group
+"                               ||  |  |    |   -> match ~
+"                               ||  |  |    |   | -> at most once
+"                               ||  |  |    |   | |     -> allow a slice type
+"                               ||  |  |    |   | |     |      -> any word character
+"                               ||  |  |    |   | |     |      | -> start a non-counting group
+"                               ||  |  |    |   | |     |      | | -> that matches word characters and |
+"                               ||  |  |    |   | |     |      | | |     -> close the non-counting group
+"                               ||  |  |    |   | |     |      | | |     | -> close the non-counting group
+"                               ||  |  |    |   | |     |      | | |     | |-> any number of matches
+"                               ||  |  |    |   | |     |      | | |     | || -> start a non-counting group
+"                               ||  |  |    |   | |     |      | | |     | || | -> a comma and whitespace
+"                               ||  |  |    |   | |     |      | | |     | || | |      -> at most once
+"                               ||  |  |    |   | |     |      | | |     | || | |      | -> close the non-counting group
+"                               ||  |  |    |   | |     |      | | |     | || | |      | | -> at least one of those non-counting groups, as many as possible
+"                               ||  |  |    |   | | --------   | | |     | || | |      | | | -> type constraint closing bracket
+"                               ||  |  |    |   | ||        |  | | |     | || | |      | | | |
+syn match goTypeParams        /\[\%(\w\+\s\+\%(\~\?\%(\[]\)\?\w\%(\w\||\)\)*\%(,\s*\)\?\)\+\]/ nextgroup=goSimpleParams,goDeclType contained
+
 " Functions;
 if s:HighlightFunctions() || s:HighlightFunctionParameters()
   syn match goDeclaration       /\<func\>/ nextgroup=goReceiver,goFunction,goSimpleParams skipwhite skipnl
+  syn match goReceiverDecl      /(\s*\zs\%(\%(\w\+\s\+\)\?\*\?\w\+\%(\[\%(\%(\[\]\)\?\w\+\%(,\s*\)\?\)\+\]\)\?\)\ze\s*)/ contained contains=goReceiverVar,goReceiverType,goPointerOperator
   syn match goReceiverVar       /\w\+\ze\s\+\%(\w\|\*\)/ nextgroup=goPointerOperator,goReceiverType skipwhite skipnl contained
   syn match goPointerOperator   /\*/ nextgroup=goReceiverType contained skipwhite skipnl
-  syn match goFunction          /\w\+/ nextgroup=goSimpleParams contained skipwhite skipnl
-  syn match goReceiverType      /\w\+/ contained
+  syn match goFunction          /\w\+/ nextgroup=goSimpleParams,goTypeParams contained skipwhite skipnl
+  syn match goReceiverType      /\w\+\%(\[\%(\%(\[\]\)\?\w\+\%(,\s*\)\?\)\+\]\)\?\ze\s*)/ contained
   if s:HighlightFunctionParameters()
     syn match goSimpleParams      /(\%(\w\|\_s\|[*\.\[\],\{\}<>-]\)*)/ contained contains=goParamName,goType nextgroup=goFunctionReturn skipwhite skipnl
     syn match goFunctionReturn   /(\%(\w\|\_s\|[*\.\[\],\{\}<>-]\)*)/ contained contains=goParamName,goType skipwhite skipnl
@@ -369,7 +430,7 @@ if s:HighlightFunctions() || s:HighlightFunctionParameters()
     hi def link   goReceiverVar    goParamName
     hi def link   goParamName      Identifier
   endif
-  syn match goReceiver          /(\s*\w\+\%(\s\+\*\?\s*\w\+\)\?\s*)\ze\s*\w/ contained nextgroup=goFunction contains=goReceiverVar skipwhite skipnl
+  syn match goReceiver          /(\s*\%(\w\+\s\+\)\?\*\?\s*\w\+\%(\[\%(\%(\[\]\)\?\w\+\%(,\s*\)\?\)\+\]\)\?\s*)\ze\s*\w/ contained nextgroup=goFunction contains=goReceiverDecl skipwhite skipnl
 else
   syn keyword goDeclaration func
 endif
@@ -377,7 +438,7 @@ hi def link     goFunction          Function
 
 " Function calls;
 if s:HighlightFunctionCalls()
-  syn match goFunctionCall      /\w\+\ze(/ contains=goBuiltins,goDeclaration
+  syn match goFunctionCall      /\w\+\ze\%(\[\%(\%(\[]\)\?\w\+\(,\s*\)\?\)\+\]\)\?(/ contains=goBuiltins,goDeclaration
 endif
 hi def link     goFunctionCall      Type
 
@@ -404,7 +465,7 @@ hi def link    goField              Identifier
 if s:HighlightTypes()
   syn match goTypeConstructor      /\<\w\+{\@=/
   syn match goTypeDecl             /\<type\>/ nextgroup=goTypeName skipwhite skipnl
-  syn match goTypeName             /\w\+/ contained nextgroup=goDeclType skipwhite skipnl
+  syn match goTypeName             /\w\+/ contained nextgroup=goDeclType,goTypeParams skipwhite skipnl
   syn match goDeclType             /\<\%(interface\|struct\)\>/ skipwhite skipnl
   hi def link     goReceiverType      Type
 else
@@ -444,7 +505,7 @@ if s:HighlightBuildConstraints()
   " The rs=s+2 option lets the \s*+build portion be part of the inner region
   " instead of the matchgroup so it will be highlighted as a goBuildKeyword.
   syn region  goBuildComment      matchgroup=goBuildCommentStart
-        \ start="//\s*+build\s"rs=s+2 end="$"
+        \ start="//\(\s*+build\s\|go:build\)"rs=s+2 end="$"
         \ contains=goBuildKeyword,goBuildDirectives
   hi def link goBuildCommentStart Comment
   hi def link goBuildDirectives   Type
index 5c8aed8d5f9413e3280d465308ba5bf443240c5b..a2fddbb0ff4e131abbd2abaaaed27724d2ba2c96 100644 (file)
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:    Vim help file
 " Maintainer:  Bram Moolenaar (Bram@vim.org)
-" Last Change: 2022 Nov 09
+" Last Change: 2022 Nov 13
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -11,7 +11,7 @@ endif
 let s:cpo_save = &cpo
 set cpo&vim
 
-syn match helpHeadline         "^[A-Z.][-A-Z0-9 .,()_]*?\=\ze\(\s\+\*\|$\)"
+syn match helpHeadline         "^[A-Z.][-A-Z0-9 .,()_']*?\=\ze\(\s\+\*\|$\)"
 syn match helpSectionDelim     "^===.*===$"
 syn match helpSectionDelim     "^---.*--$"
 if has("conceal")
index 9061bdee90e4e0eb1cabff2f4331c19e16cb2362..605db3ae1c3d0f268f190d6c99d5754a83c82284 100644 (file)
@@ -3,7 +3,7 @@
 " Maintainer:          Doug Kearns <dougkearns@gmail.com>
 " Previous Maintainers: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
 "                      Claudio Fleiner <claudio@fleiner.com>
-" Last Change:         2022 Jul 20
+" Last Change:         2022 Nov 18
 
 " Please check :help html.vim for some comments and a description of the options
 
@@ -272,6 +272,16 @@ if main_syntax == "html"
   syn sync minlines=10
 endif
 
+" Folding
+" Originally by Ingo Karkat and Marcus Zanona
+if get(g:, "html_syntax_folding", 0)
+  syn region htmlFold start="<\z(\<\%(area\|base\|br\|col\|command\|embed\|hr\|img\|input\|keygen\|link\|meta\|param\|source\|track\|wbr\>\)\@![a-z-]\+\>\)\%(\_s*\_[^/]\?>\|\_s\_[^>]*\_[^>/]>\)" end="</\z1\_s*>" fold transparent keepend extend containedin=htmlHead,htmlH\d
+  " fold comments (the real ones and the old Netscape ones)
+  if exists("html_wrong_comments")
+    syn region htmlComment start=+<!--+ end=+--\s*>\%(\n\s*<!--\)\@!+ contains=@Spell fold
+  endif
+endif
+
 " The default highlighting.
 hi def link htmlTag                    Function
 hi def link htmlEndTag                 Identifier
index 3a73fe098916b12b3f3d1383b0c25c5668326330..49fa17abf115b5bd158327c1de5d970369ead281 100644 (file)
@@ -3,7 +3,7 @@
 " Maintainer:          Ken Takata
 " URL:                 https://github.com/k-takata/vim-nsis
 " Previous Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt>
-" Last Change:         2020-10-18
+" Last Change:         2022-11-05
 
 " quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -394,9 +394,13 @@ syn keyword nsisInstruction        contained CreateShortcut nextgroup=nsisCreateShortcu
 syn region nsisCreateShortcutOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCreateShortcutKwd
 syn match nsisCreateShortcutKwd         contained "/NoWorkingDir\>"
 
+syn keyword nsisInstruction    contained GetWinVer nextgroup=nsisGetWinVerOpt skipwhite
+syn region nsisGetWinVerOpt    contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetWinVerKwd
+syn keyword nsisGetWinVerKwd   contained Major Minor Build ServicePack
+
 syn keyword nsisInstruction    contained GetDLLVersion GetDLLVersionLocal nextgroup=nsisGetDLLVersionOpt skipwhite
-syn region nsisGetDLLVersionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetDLLVersionKwd
-syn match nsisGetDLLVersionKwd  contained "/ProductVersion\>"
+syn region nsisGetDLLVersionOpt        contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetDLLVersionKwd
+syn match nsisGetDLLVersionKwd contained "/ProductVersion\>"
 
 syn keyword nsisInstruction    contained GetFullPathName nextgroup=nsisGetFullPathNameOpt skipwhite
 syn region nsisGetFullPathNameOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetFullPathNameKwd
@@ -562,10 +566,19 @@ syn match nsisSystem              contained "!execute\>"
 syn match nsisSystem           contained "!makensis\>"
 syn match nsisSystem           contained "!packhdr\>"
 syn match nsisSystem           contained "!finalize\>"
+syn match nsisSystem           contained "!uninstfinalize\>"
 syn match nsisSystem           contained "!system\>"
 syn match nsisSystem           contained "!tempfile\>"
-syn match nsisSystem           contained "!getdllversion\>"
-syn match nsisSystem           contained "!gettlbversion\>"
+
+" Add 'P' to avoid conflicts with nsisGetDLLVersionOpt. ('P' for preprocessor.)
+syn match nsisSystem           contained "!getdllversion\>" nextgroup=nsisPGetdllversionOpt skipwhite
+syn region nsisPGetdllversionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPGetdllversionKwd
+syn match nsisPGetdllversionKwd        contained "/\%(noerrors\|packed\|productversion\)\>"
+
+syn match nsisSystem           contained "!gettlbversion\>" nextgroup=nsisPGettlbversionOpt skipwhite
+syn region nsisPGettlbversionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPGettlbversionKwd
+syn match nsisPGettlbversionKwd        contained "/\%(noerrors\|packed\)\>"
+
 syn match nsisSystem           contained "!warning\>"
 
 syn match nsisSystem           contained "!pragma\>" nextgroup=nsisPragmaOpt skipwhite
@@ -581,7 +594,10 @@ syn match nsisDefine               contained "!define\>" nextgroup=nsisDefineOpt skipwhite
 syn region nsisDefineOpt       contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDefineKwd
 syn match nsisDefineKwd                contained "/\%(ifndef\|redef\|date\|utcdate\|file\|intfmt\|math\)\>"
 
-syn match nsisDefine           contained "!undef\>"
+syn match nsisDefine           contained "!undef\>" nextgroup=nsisUndefineOpt skipwhite
+syn region nsisUndefineOpt     contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisUndefineKwd
+syn match nsisUndefineKwd      contained "/noerrors\>"
+
 syn match nsisPreCondit                contained "!ifdef\>"
 syn match nsisPreCondit                contained "!ifndef\>"
 
@@ -659,6 +675,7 @@ hi def link nsisWriteRegMultiStrKwd Constant
 hi def link nsisSetRegViewKwd          Constant
 hi def link nsisCopyFilesKwd           Constant
 hi def link nsisCreateShortcutKwd      Constant
+hi def link nsisGetWinVerKwd           Constant
 hi def link nsisGetDLLVersionKwd       Constant
 hi def link nsisGetFullPathNameKwd     Constant
 hi def link nsisFileAttrib             Constant
@@ -696,9 +713,12 @@ hi def link nsisIncludeKwd         Constant
 hi def link nsisAddplugindirKwd                Constant
 hi def link nsisAppendfileKwd          Constant
 hi def link nsisDelfileKwd             Constant
+hi def link nsisPGetdllversionKwd      Constant
+hi def link nsisPGettlbversionKwd      Constant
 hi def link nsisPragmaKwd              Constant
 hi def link nsisVerboseKwd             Constant
 hi def link nsisDefineKwd              Constant
+hi def link nsisUndefineKwd            Constant
 hi def link nsisIfKwd                  Constant
 hi def link nsisSearchparseKwd         Constant
 hi def link nsisSearchreplaceKwd       Constant
index 1ebeb5227b6826c1162364d4ea8f19d4bab82226..5db7bda89659a99af007dc214549a7586b7aaffb 100644 (file)
@@ -53,7 +53,7 @@ syn match ptcapNumberError  "#0x\x*[^[:xdigit:]:\\]"lc=1 contained
 " The `=' operator assigns a string to the preceding flag
 syn match ptcapOperator            "[@#=]" contained
 
-" Some terminal capabilites have special names like `#5' and `@1', and we
+" Some terminal capabilities have special names like `#5' and `@1', and we
 " need special rules to match these properly
 syn match ptcapSpecialCap   "\W[#@]\d" contains=ptcapDelimiter contained
 
index 88665e5f6d5a8d89fd848cd7bc473b71a621e3af..750289d83e107b9cac16df79e207f0ae4f15e3e7 100644 (file)
@@ -6,7 +6,7 @@
 " Contributor:  Leonard Ehrenfried <leonard.ehrenfried@web.de>
 " Contributor:  Karsten Hopp <karsten@redhat.com>
 " Contributor:  Dean, Adam Kenneth <adam.ken.dean@hpe.com>
-" Last Change: 2022 Nov 09
+" Last Change: 2022 Nov 10
 "              Added RemoteCommand from pull request #4809
 "              Included additional keywords from Martin.
 "              Included PR #5753
@@ -171,6 +171,7 @@ syn keyword sshconfigKeyword EnableSSHKeysign
 syn keyword sshconfigKeyword EscapeChar
 syn keyword sshconfigKeyword ExitOnForwardFailure
 syn keyword sshconfigKeyword FingerprintHash
+syn keyword sshconfigKeyword ForkAfterAuthentication
 syn keyword sshconfigKeyword ForwardAgent
 syn keyword sshconfigKeyword ForwardX11
 syn keyword sshconfigKeyword ForwardX11Timeout
@@ -221,13 +222,16 @@ syn keyword sshconfigKeyword RekeyLimit
 syn keyword sshconfigKeyword RemoteCommand
 syn keyword sshconfigKeyword RemoteForward
 syn keyword sshconfigKeyword RequestTTY
+syn keyword sshconfigKeyword RequiredRSASize
 syn keyword sshconfigKeyword RevokedHostKeys
 syn keyword sshconfigKeyword SecurityKeyProvider
 syn keyword sshconfigKeyword SendEnv
 syn keyword sshconfigKeyword ServerAliveCountMax
 syn keyword sshconfigKeyword ServerAliveInterval
+syn keyword sshconfigKeyword SessionType
 syn keyword sshconfigKeyword SmartcardDevice
 syn keyword sshconfigKeyword SetEnv
+syn keyword sshconfigKeyword StdinNull
 syn keyword sshconfigKeyword StreamLocalBindMask
 syn keyword sshconfigKeyword StreamLocalBindUnlink
 syn keyword sshconfigKeyword StrictHostKeyChecking
index d8e12047e06f03e6e9300452d1e534fef3e42b34..c0d9c3f598e455e81355e0bd735291541bb96703 100644 (file)
@@ -7,7 +7,7 @@
 " Contributor:  Leonard Ehrenfried <leonard.ehrenfried@web.de> 
 " Contributor:  Karsten Hopp <karsten@redhat.com>
 " Originally:  2009-07-09
-" Last Change: 2022 Nov 09
+" Last Change: 2022 Nov 10
 " SSH Version: 8.5p1
 "
 
@@ -221,6 +221,7 @@ syn keyword sshdconfigKeyword Match
 syn keyword sshdconfigKeyword MaxAuthTries
 syn keyword sshdconfigKeyword MaxSessions
 syn keyword sshdconfigKeyword MaxStartups
+syn keyword sshdconfigKeyword ModuliFile
 syn keyword sshdconfigKeyword PasswordAuthentication
 syn keyword sshdconfigKeyword PerSourceMaxStartups
 syn keyword sshdconfigKeyword PerSourceNetBlockSize
@@ -244,6 +245,7 @@ syn keyword sshdconfigKeyword PubkeyAuthentication
 syn keyword sshdconfigKeyword PubkeyAuthOptions
 syn keyword sshdconfigKeyword RSAAuthentication
 syn keyword sshdconfigKeyword RekeyLimit
+syn keyword sshdconfigKeyword RequiredRSASize
 syn keyword sshdconfigKeyword RevokedKeys
 syn keyword sshdconfigKeyword RDomain
 syn keyword sshdconfigKeyword RhostsRSAAuthentication