]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
Update runtime files
authorBram Moolenaar <Bram@vim.org>
Sun, 14 Jun 2020 15:29:55 +0000 (17:29 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 14 Jun 2020 15:29:55 +0000 (17:29 +0200)
25 files changed:
runtime/doc/Makefile
runtime/doc/autocmd.txt
runtime/doc/eval.txt
runtime/doc/options.txt
runtime/doc/os_vms.txt
runtime/doc/quickref.txt
runtime/doc/spell.txt
runtime/doc/syntax.txt
runtime/doc/tags
runtime/doc/testing.txt
runtime/doc/todo.txt
runtime/doc/usr_41.txt
runtime/doc/usr_45.txt
runtime/doc/usr_46.txt [new file with mode: 0644]
runtime/doc/usr_90.txt
runtime/doc/usr_toc.txt
runtime/doc/version8.txt
runtime/doc/vim9.txt
runtime/doc/windows.txt
runtime/menu.vim
runtime/optwin.vim
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
runtime/syntax/desktop.vim
runtime/syntax/objc.vim
runtime/syntax/tex.vim

index 2678bce2eebc2155543c676a018c3e417d62c675..4112ae95e827dd5b0ee0c0612fd4a4cf7d517821 100644 (file)
@@ -141,6 +141,7 @@ DOCS = \
        usr_43.txt \
        usr_44.txt \
        usr_45.txt \
+       usr_46.txt \
        usr_90.txt \
        usr_toc.txt \
        various.txt \
@@ -282,6 +283,7 @@ HTMLS = \
        usr_43.html \
        usr_44.html \
        usr_45.html \
+       usr_46.html \
        usr_90.html \
        usr_toc.html \
        various.html \
index 5713119cd9bc0dff68bf81d5f51ecb2710db5998..b0d791927fad90e77a9cdb590e2c78cc625820a2 100644 (file)
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.2.  Last change: 2020 Jan 26
+*autocmd.txt*   For Vim version 8.2.  Last change: 2020 Jun 10
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
index 5399ac2335485806c158f8314a4c719a730d471f..816aeca143bf201164cd095bdd49cc999612e50b 100644 (file)
@@ -1,4 +1,4 @@
-*eval.txt*     For Vim version 8.2.  Last change: 2020 Jun 07
+*eval.txt*     For Vim version 8.2.  Last change: 2020 Jun 14
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1533,6 +1533,7 @@ An internal variable is explicitly destroyed with the ":unlet" command
 Using a name that is not an internal variable or refers to a variable that has
 been destroyed results in an error.
 
+                                               *variable-scope*
 There are several name spaces for variables.  Which one is to be used is
 specified by what is prepended:
 
@@ -1551,7 +1552,9 @@ delete all script-local variables: >
        :for k in keys(s:)
        :    unlet s:[k]
        :endfor
-<
+
+Note: in Vim9 script this is different, see |vim9-scopes|.
+
                                                *buffer-variable* *b:var* *b:*
 A variable name that is preceded with "b:" is local to the current buffer.
 Thus you can have several "b:foo" variables, one for each buffer.
@@ -4523,7 +4526,7 @@ flatten({list} [, {maxdepth}])                                    *flatten()*
                a very large number.
                The {list} is changed in place, make a copy first if you do
                not want that.
-                                                               *E964*
+                                                               *E900*
                {maxdepth} means how deep in nested lists changes are made.
                {list} is not modified when {maxdepth} is 0.
                {maxdepth} must be positive number.
@@ -6278,10 +6281,11 @@ inputlist({textlist})                                   *inputlist()*
                displayed, one string per line.  The user will be prompted to
                enter a number, which is returned.
                The user can also select an item by clicking on it with the
-               mouse.  For the first string 0 is returned.  When clicking
-               above the first item a negative number is returned.  When
-               clicking on the prompt one more than the length of {textlist}
-               is returned.
+               mouse, if the mouse is enabled in the command line ('mouse' is
+               "a" or includes "c").  For the first string 0 is returned.
+               When clicking above the first item a negative number is
+               returned.  When clicking on the prompt one more than the
+               length of {textlist} is returned.
                Make sure {textlist} has less than 'lines' entries, otherwise
                it won't work.  It's a good idea to put the entry number at
                the start of the string.  And put a prompt in the first item.
@@ -11783,6 +11787,9 @@ like this: >
 
        :call filename#funcname()
 
+These functions are always global, in Vim9 script "g:" needs to be used: >
+       :call g:filename#funcname()
+
 When such a function is called, and it is not defined yet, Vim will search the
 "autoload" directories in 'runtimepath' for a script file called
 "filename.vim".  For example "~/.vim/autoload/filename.vim".  That file should
@@ -11794,7 +11801,11 @@ then define the function like this: >
 
 The file name and the name used before the # in the function must match
 exactly, and the defined function must have the name exactly as it will be
-called.
+called.  In Vim9 script the "g:" prefix must be used: >
+       function g:filename#funcname()
+
+or for a compiled function: >
+       def g:filename#funcname()
 
 It is possible to use subdirectories.  Every # in the function name works like
 a path separator.  Thus when calling a function: >
@@ -11877,6 +11888,9 @@ This does NOT work: >
 ==============================================================================
 7. Commands                                            *expression-commands*
 
+Note: in Vim9 script `:let` is used for variable declaration, not assignment.
+An assignment leaves out the `:let` command.  |vim9-declaration|
+
 :let {var-name} = {expr1}                              *:let* *E18*
                        Set internal variable {var-name} to the result of the
                        expression {expr1}.  The variable will get the type
@@ -12099,12 +12113,14 @@ text...
                          s:    script-local variables
                          l:    local function variables
                          v:    Vim variables.
+                       This does not work in Vim9 script. |vim9-declaration|
 
 :let                   List the values of all variables.  The type of the
                        variable is indicated before the value:
                            <nothing>   String
                                #       Number
                                *       Funcref
+                       This does not work in Vim9 script. |vim9-declaration|
 
 :unl[et][!] {name} ...                         *:unlet* *:unl* *E108* *E795*
                        Remove the internal variable {name}.  Several variable
index 779451b24c93bf9d24a5e03d158d9c504a1e7cf5..4e78a2fa68e76b6f5d702bd08b0083a7bcaff207 100644 (file)
@@ -1,4 +1,4 @@
-*options.txt*  For Vim version 8.2.  Last change: 2020 May 31
+*options.txt*  For Vim version 8.2.  Last change: 2020 Jun 10
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -5232,7 +5232,7 @@ A jump table for the options with a short description can be found at |Q_op|.
 <      If your terminal can't overrule the mouse events going to the
        application, use: >
                :set mouse=nvi
-<      The you can press ":", select text for the system, and press Esc to go
+<      Then you can press ":", select text for the system, and press Esc to go
        back to Vim using the mouse events.
        In |defaults.vim| "nvi" is used if the 'term' option is not matching
        "xterm".
index 7d82799be16167fe0c5a40ceced24c693d8de8d6..168232783905afc6cc2339b3e01707b19cc0a7d5 100644 (file)
@@ -1,4 +1,4 @@
-*os_vms.txt*    For Vim version 8.2.  Last change: 2019 Jan 29
+*os_vms.txt*    For Vim version 8.2.  Last change: 2020 Jun 07
 
 
                  VIM REFERENCE MANUAL
index 636623793d089659185daa0f2c993a20a4b550b9..488f14292da457495e8ae40e0f5166ef609024fa 100644 (file)
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 8.2.  Last change: 2020 Jun 02
+*quickref.txt*  For Vim version 8.2.  Last change: 2020 Jun 10
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -910,6 +910,7 @@ Short explanation of each option:           *option-list*
 'spellcapcheck'   'spc'     pattern to locate end of a sentence
 'spellfile'      'spf'     files where |zg| and |zw| store words
 'spelllang'      'spl'     language(s) to do spell checking for
+'spelloptions'   'spo'     options for spell checking
 'spellsuggest'   'sps'     method(s) used to suggest spelling corrections
 'splitbelow'     'sb'      new window from split is below the current one
 'splitright'     'spr'     new window is put right of the current one
index 3f8302b7cca2c923924acf1af05ae8e717bcf510..48dbffcbf78b7ee3979e83e34438b3e32823b885 100644 (file)
@@ -1,4 +1,4 @@
-*spell.txt*    For Vim version 8.2.  Last change: 2019 Aug 16
+*spell.txt*    For Vim version 8.2.  Last change: 2020 Jun 10
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
index 8916d35092e2f2e84239e6c727aa80dad44a674c..dbcaad2beb044a4955f6b0db21e7c21c5811c08c 100644 (file)
@@ -1214,11 +1214,13 @@ DESKTOP                                    *desktop.vim* *ft-desktop-syntax*
 
 Primary goal of this syntax file is to highlight .desktop and .directory files
 according to freedesktop.org standard:
-http://standards.freedesktop.org/desktop-entry-spec/latest/
-But actually almost none implements this standard fully.  Thus it will
-highlight all Unix ini files.  But you can force strict highlighting according
-to standard by placing this in your vimrc file: >
-       :let enforce_freedesktop_standard = 1
+https://specifications.freedesktop.org/desktop-entry-spec/latest/
+To highlight nonstandard extensions that does not begin with X-, set >
+       let g:desktop_enable_nonstd = 1
+Note that this may cause wrong highlight.
+To highlight KDE-reserved features, set >
+       let g:desktop_enable_kde = 1
+g:desktop_enable_kde follows g:desktop_enable_nonstd if not supplied
 
 
 DIFF                                                   *diff.vim*
index 33435ece559d1722c1fc011625a5893aee050d75..2ce34870fc033ad89d7416a93be21ffb7fd15c08 100644 (file)
@@ -915,11 +915,13 @@ $VIM_POSIX        vi_diff.txt     /*$VIM_POSIX*
 'spellcapcheck'        options.txt     /*'spellcapcheck'*
 'spellfile'    options.txt     /*'spellfile'*
 'spelllang'    options.txt     /*'spelllang'*
+'spelloptions' options.txt     /*'spelloptions'*
 'spellsuggest' options.txt     /*'spellsuggest'*
 'spf'  options.txt     /*'spf'*
 'spl'  options.txt     /*'spl'*
 'splitbelow'   options.txt     /*'splitbelow'*
 'splitright'   options.txt     /*'splitright'*
+'spo'  options.txt     /*'spo'*
 'spr'  options.txt     /*'spr'*
 'sps'  options.txt     /*'sps'*
 'sr'   options.txt     /*'sr'*
@@ -1926,6 +1928,10 @@ $VIM_POSIX       vi_diff.txt     /*$VIM_POSIX*
 45.3   usr_45.txt      /*45.3*
 45.4   usr_45.txt      /*45.4*
 45.5   usr_45.txt      /*45.5*
+46.1   usr_46.txt      /*46.1*
+46.2   usr_46.txt      /*46.2*
+46.3   usr_46.txt      /*46.3*
+46.?   usr_46.txt      /*46.?*
 8g8    various.txt     /*8g8*
 90.1   usr_90.txt      /*90.1*
 90.2   usr_90.txt      /*90.2*
@@ -3886,6 +3892,7 @@ E101      diff.txt        /*E101*
 E102   diff.txt        /*E102*
 E103   diff.txt        /*E103*
 E104   digraph.txt     /*E104*
+E1042  vim9.txt        /*E1042*
 E105   mbyte.txt       /*E105*
 E107   eval.txt        /*E107*
 E108   eval.txt        /*E108*
@@ -4732,6 +4739,7 @@ E897      eval.txt        /*E897*
 E898   channel.txt     /*E898*
 E899   eval.txt        /*E899*
 E90    message.txt     /*E90*
+E900   eval.txt        /*E900*
 E901   channel.txt     /*E901*
 E902   channel.txt     /*E902*
 E903   channel.txt     /*E903*
@@ -5059,6 +5067,7 @@ SessionLoad-variable      starting.txt    /*SessionLoad-variable*
 SessionLoadPost        autocmd.txt     /*SessionLoadPost*
 ShellCmdPost   autocmd.txt     /*ShellCmdPost*
 ShellFilterPost        autocmd.txt     /*ShellFilterPost*
+SigUSR1        autocmd.txt     /*SigUSR1*
 SourceCmd      autocmd.txt     /*SourceCmd*
 SourcePost     autocmd.txt     /*SourcePost*
 SourcePre      autocmd.txt     /*SourcePre*
@@ -5450,20 +5459,7 @@ bars     help.txt        /*bars*
 base_font_name_list    mbyte.txt       /*base_font_name_list*
 basic.vim      syntax.txt      /*basic.vim*
 beep   options.txt     /*beep*
-beos-colors    os_beos.txt     /*beos-colors*
-beos-compiling os_beos.txt     /*beos-compiling*
-beos-dragndrop os_beos.txt     /*beos-dragndrop*
-beos-fonts     os_beos.txt     /*beos-fonts*
-beos-general   os_beos.txt     /*beos-general*
-beos-gui       os_beos.txt     /*beos-gui*
-beos-launch    os_beos.txt     /*beos-launch*
-beos-meta      os_beos.txt     /*beos-meta*
-beos-mouse     os_beos.txt     /*beos-mouse*
-beos-perl      os_beos.txt     /*beos-perl*
-beos-timeout   os_beos.txt     /*beos-timeout*
-beos-unicode   os_beos.txt     /*beos-unicode*
-beos-utf8      os_beos.txt     /*beos-utf8*
-beos-vimdir    os_beos.txt     /*beos-vimdir*
+beos   os_beos.txt     /*beos*
 better-python-interface        version7.txt    /*better-python-interface*
 beval_bufnr-variable   eval.txt        /*beval_bufnr-variable*
 beval_col-variable     eval.txt        /*beval_col-variable*
@@ -6342,6 +6338,7 @@ filetype.txt      filetype.txt    /*filetype.txt*
 filetypedetect-changed version6.txt    /*filetypedetect-changed*
 filetypes      filetype.txt    /*filetypes*
 filewritable() eval.txt        /*filewritable()*
+filler-lines   windows.txt     /*filler-lines*
 filter change.txt      /*filter*
 filter()       eval.txt        /*filter()*
 find-manpage   usr_12.txt      /*find-manpage*
@@ -6364,6 +6361,7 @@ fixed-7.1 version7.txt    /*fixed-7.1*
 fixed-7.2      version7.txt    /*fixed-7.2*
 fixed-7.3      version7.txt    /*fixed-7.3*
 fixed-7.4      version7.txt    /*fixed-7.4*
+flatten()      eval.txt        /*flatten()*
 flexwiki.vim   syntax.txt      /*flexwiki.vim*
 float-e        eval.txt        /*float-e*
 float-functions        usr_41.txt      /*float-functions*
@@ -8885,6 +8883,7 @@ sound_playevent() eval.txt        /*sound_playevent()*
 sound_playfile()       eval.txt        /*sound_playfile()*
 sound_stop()   eval.txt        /*sound_stop()*
 soundfold()    eval.txt        /*soundfold()*
+source-vim9-script     usr_46.txt      /*source-vim9-script*
 space  intro.txt       /*space*
 spec-customizing       pi_spec.txt     /*spec-customizing*
 spec-how-to-use-it     pi_spec.txt     /*spec-how-to-use-it*
@@ -9525,6 +9524,7 @@ terminal-unix     terminal.txt    /*terminal-unix*
 terminal-use   terminal.txt    /*terminal-use*
 terminal-window        terminal.txt    /*terminal-window*
 terminal.txt   terminal.txt    /*terminal.txt*
+terminalprops()        eval.txt        /*terminalprops()*
 terminfo       term.txt        /*terminfo*
 termresponse-variable  eval.txt        /*termresponse-variable*
 test-functions usr_41.txt      /*test-functions*
@@ -9701,6 +9701,7 @@ usr_42.txt        usr_42.txt      /*usr_42.txt*
 usr_43.txt     usr_43.txt      /*usr_43.txt*
 usr_44.txt     usr_44.txt      /*usr_44.txt*
 usr_45.txt     usr_45.txt      /*usr_45.txt*
+usr_46.txt     usr_46.txt      /*usr_46.txt*
 usr_90.txt     usr_90.txt      /*usr_90.txt*
 usr_toc.txt    usr_toc.txt     /*usr_toc.txt*
 utf-8  mbyte.txt       /*utf-8*
@@ -9920,6 +9921,7 @@ val-variable      eval.txt        /*val-variable*
 valgrind       debug.txt       /*valgrind*
 values()       eval.txt        /*values()*
 var-functions  usr_41.txt      /*var-functions*
+variable-scope eval.txt        /*variable-scope*
 variables      eval.txt        /*variables*
 various        various.txt     /*various*
 various-cmds   various.txt     /*various-cmds*
@@ -9993,11 +9995,15 @@ vim.vim syntax.txt      /*vim.vim*
 vim7   version7.txt    /*vim7*
 vim8   version8.txt    /*vim8*
 vim9   vim9.txt        /*vim9*
+vim9-declaration       vim9.txt        /*vim9-declaration*
+vim9-declarations      usr_46.txt      /*vim9-declarations*
 vim9-differences       vim9.txt        /*vim9-differences*
 vim9-export    vim9.txt        /*vim9-export*
 vim9-import    vim9.txt        /*vim9-import*
 vim9-rationale vim9.txt        /*vim9-rationale*
+vim9-scopes    vim9.txt        /*vim9-scopes*
 vim9-script    vim9.txt        /*vim9-script*
+vim9-script-intro      usr_46.txt      /*vim9-script-intro*
 vim9-types     vim9.txt        /*vim9-types*
 vim9.txt       vim9.txt        /*vim9.txt*
 vim9script     vim9.txt        /*vim9script*
index 12990d3ec501610130c9f11353115b89625fcf88..4e85bdc3738b73676cec2b1f969f2a5a4f91ef7d 100644 (file)
@@ -1,4 +1,4 @@
-*testing.txt*  For Vim version 8.2.  Last change: 2020 Jun 03
+*testing.txt*  For Vim version 8.2.  Last change: 2020 Jun 13
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
index 73f6a516ad684361468b82be7b317c81e9ee6e1e..faf86801f1f01d990a7a88e016e15fc130cfb68f 100644 (file)
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2020 Jun 07
+*todo.txt*      For Vim version 8.2.  Last change: 2020 Jun 14
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -40,15 +40,17 @@ browser use: https://github.com/vim/vim/issues/1234
 
 Include src/po/vim.pot ?
 
-If there are no complaints, remove more typecasts from vim_strnsave() length
-argument.
-
 Vim9 script:
 Making everything work:
+- assignment to script var should check type
+- Compile: let [var, var] = expr
+  share code for :let between compiled and uncompiled?
+- do not allow "let g:var = value", must drop "let"
 - possible memory leak in test_vim9_func through compile_nested_function.
 - memory leaks in test_vim9_expr
 - memory leaks in test_vim9_script
 - Test that a script-local function in Vim9 script cannot be deleted.
+- Check that when sourcing a Vim9 script, only the global items can be used.
 - Make "true" and "false" work in vim9script
 - Test that a function defined inside a :def function is local to that
   function, g: functions can be defined and script-local functions cannot be
@@ -56,7 +58,6 @@ Making everything work:
 - make 0 == 'string' fail on the script level, like inside :def.
 - Check that when using a user function name without prefix, it does not find
   a global function.  Prefixing g: is required.
-- Compile: let [var, var] = expr
 - Compile: for [key, value] in items(map)
 - Assignment to dict doesn't work:
       let ret: dict<string> = #{}
@@ -76,6 +77,7 @@ Making everything work:
     (Ben Jackson, #5671)
     Can we share the code from ex_let_const() between direct execution and
     compiling?
+- Implement "as Name" in "import Item as Name from ..."
 - Disallow unlet for local/script/imported vars
 - Make "++nr" work.
 - Make closures work:
@@ -88,13 +90,14 @@ Making everything work:
 New syntax and functionality:
 Improve error checking:
 - "echo Func()" is an error if Func() does not return anything.
+Test:
+- Using a Vim9 autoload script (functions must be global).
 Also:
 - For range: make table of first ASCII character with flag to quickly check if
   it can be a Vim9 command. E.g. "+" can, but "." can't.
 - better implementation for partial and tests for that.
 - Make "g:imported = Export.exported" work in Vim9 script.
 - Make Foo.Bar() work to call the dict function. (#5676)
-- Check that import in legacy script works and puts item in s:
 - Error in any command in "vim9script" aborts sourcing.
 - Find a way to test expressions in legacy and Vim9 script without duplication
 - Fix memory leaks for test_vim9_disassemble, test_vim9_expr, test_vim9_script
@@ -237,7 +240,25 @@ Terminal emulator window:
   conversions.
 
 Error numbers available:
-E489, E610, E611, E653, E856, E857, E861, E900
+E489, E610, E611, E653, E856, E857, E861
+
+Remove SPACE_IN_FILENAME ? It is only used for completion.
+
+Can we detect true color support?  https://gist.github.com/XVilka/8346728
+Try setting a color then request the current color, like using t_u7.
+
+Check out PR #543 (Roland Puntaier).
+Patch for multi-byte characters in langmap and applying a mapping on them.
+(Christian Brabandt, 2015 Jun 12, update July 25)
+Is this the right solution?  Need to cleanup langmap behavior:
+- in vgetorpeek() apply langmap to the typeahead buffer and put the result in
+  a copy-buffer, only when langmap is appropriate for the current mode. Then
+  check for mapping and let gotchars() work on the copy-buffer.
+- Remove LANGMAP_ADJUST() in other parts of the code.  Make sure the mode is
+  covered by the above change.
+So that replaying the register doesn't use keymap/langmap and still does the
+same thing.
+Also see #737: langmap not applied to replaying recording.
 
 Buffer autocommands are a bit inconsistent.  Add a separate set of
 autocommands for the buffer lifecycle:
@@ -275,6 +296,9 @@ undo result wrong: Masato Nishihata, #4798
 When 'lazyredraw' is set sometimes the title is not updated.
 (Jason Franklin, 2020 Feb 3)  Looks like a race condition.
 
+Regexp to search for duplicate lines does not work correctly:
+/\(^.*\n\)\1  (Chris Morgan, #6239)
+
 With bash ":make" does not set v:shell_error.  Possible solution: set
 'shellpipe' to "2>&1| tee %s; exit ${PIPESTATUS[0]}"  #5994
 
@@ -305,6 +329,8 @@ Wrong error when using local arglist. (Harm te Hennepe, #6133)
 Request to support <Cmd> in mappings, similar to how Neovim does this.
 (Daniel Hahler, #4784)
 
+Test loose_clipboard() by selecting text before suspending.
+
 Undo puts cursor in wrong line after "cG<Esc>" undo.
 
 :unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019
@@ -391,7 +417,7 @@ When using :packadd files under "later" are not used, which is inconsistent
 with packages under "start". (xtal8, #1994)
 
 Patch to add new motion ]( and ]{.  (Yasuhiro Matsumoto, #5320)
-Better: use the "z" prefix.
+Better: use the "z" prefix.  or ]t) and [t(.
 
 Modeless selection doesn't work in gvim. (#4783)
 Caused by patch 8.1.1534.
@@ -439,18 +465,12 @@ Can be used to update highlighting. #3127  #5181
 Incorrect formatting with autoindent. (Sebastian Gniazdowski, #4909)
 
 Patch to add the :bvimgrep command.  (Christian Brabandt, 2014 Nov 12)
-Updated 2016 Jun 10, #858  Update 2017 Mar 28: use <buffer>
+Updated 2016 Jun 10, #858  Update 2017 Mar 28: use <buffer>.
+Better use ":bufgrep" ?
 
 Errors found with random data:
     heap-buffer-overflow in alist_add (#2472)
 
-Patch to support CamelCase for spell checking: See a lower-to-upper case
-change as a word boundary. (btucker-MPCData, 2016 Nov 6, #1235)
-patch for 'spellcamelcase' option: spellcheck each CamelCased word.
-(Ben Tucker, 2016 Dec 2)
-
-Patch to add "cmdline" completion to getcompletion(). (Shougo, Oct 1, #1140)
-
 Improve fallback for menu translations, to avoid having to create lots of
 files that source the actual file.  E.g. menu_da_de -> menu_da
 Include part of #3242?
@@ -466,18 +486,6 @@ Added tests (James McCoy, 2016 Aug 3, #958).  Still needs more work.
 window 2.  User expects 10 to be added to size of window 2. (Daniel Steinberg,
 #5443)
 
-Patch for multi-byte characters in langmap and applying a mapping on them.
-(Christian Brabandt, 2015 Jun 12, update July 25)
-Is this the right solution?  Need to cleanup langmap behavior:
-- in vgetorpeek() apply langmap to the typeahead buffer and put the result in
-  a copy-buffer, only when langmap is appropriate for the current mode. Then
-  check for mapping and let gotchars() work on the copy-buffer.
-- Remove LANGMAP_ADJUST() in other parts of the code.  Make sure the mode is
-  covered by the above change.
-So that replaying the register doesn't use keymap/langmap and still does the
-same thing.  Remarks on PR #543 (Roland Puntaier).
-Also see #737: langmap not applied to replaying recording.
-
 Would be nice to set tab-local values for 'diffexpr' and 'diffopt'.  Use
 t:diffexpr_option t:diffopt_option? (#4782)
 
@@ -507,10 +515,10 @@ Give a few examples. (#4288)
 Opening a file with --remote-tab-silent that matches 'wildignore' does not
 work, results in (E479: No match". (#4610)
 
-Patch for this (Tristan Konolige, #1011, only adds the option, no implem.):
 7   Add an option to add one pixel column to the character width?  Lucida
     Console italic is wider than the normal font ("d" overlaps with next char).
     Opposite of 'linespace': 'columnspace'.
+Patch for this (Tristan Konolige, #1011, only added the option, no implem.)
 
 Bug: script written with "-W scriptout" contains Key codes, while the script
 read with "-s scriptin" expects escape codes.  Probably "scriptout" needs to
@@ -583,9 +591,6 @@ C syntax: {} inside () causes following {} to be highlighted as error.
 Check: __attribute__((format(printf, on semsg() and siemsg().  Where was this
 added?
 
-Patch to add a flatten() function.  #3676.  Check that the doc explains the
-maxdepth argument (applies to the input "recursiveness").
-
 Add test for urxvt mouse codes.  Also test that mouse coordinates can be
 negative. (see #4326)
 
@@ -656,11 +661,6 @@ punctuation is repeated. (Smylers, 2018 Nov 17, #3621)
 
 ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
 
-Patch to add more info to OptionSet.  Should mention what triggered the change
-":set", ":setlocal", ":setglobal", "modeline"; and the old global value.
-#4118.  Proposed implementation: 2019 Mar 27.
-Updated 2019 May 25.
-
 Using single wide base character with double wide composing character gives
 drawing errors.  Fill up the base character?  (Dominique, #4328)
 
@@ -711,23 +711,13 @@ Neovim uses "eob:X" in 'fillchars'.
 Sourceforge Vim pages still have content, redirect from empty page.
 Check for PHP errors. (Wayne Davison, 2018 Oct 26)
 
-Patch to support ":tag <tagkind> <tagname>". (emmrk, 2018 May 7, #2871)
-Use something like ":tag {kind}/{tagname}".
-Not ready to include.
-
 Problem with Visual yank when 'linebreak' and 'showbreak' are set.
 Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
 Nov 17)  Asked about this, Dec 22. Christian will have a look.
 
-Patch for larger icons in installer. (#978)  Still not good.
-
 Patch to fix that using "5gj" starting inside a closed fold does not work on
 screen lines but on text lines. (Julius Hulsmann, #4095)  Lacks a test.
 
-Patch to implement 'diffref' option. (#3535)
-  Easier to use a 'diffmaster' option, is the extra complexity needed?
-  Not ready to include.
-
 home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9)
 
 When the status line uses term_gettitle(), it does not get updated when the
@@ -755,7 +745,7 @@ Further xdiff changes:
 Difference between two regexp engines: #3373
 
 Patch to add ch_listen() (Yasuhiro Matsumoto, 2018 Nov 26, #3639)
-What is the practical use for this?
+What is the practical use for this?  Need an example.
 
 When the last line wraps, selecting with the mouse below that line only
 includes the first screen line. (2018 Aug 23, #3368)
@@ -779,8 +769,6 @@ when adding a sign for every quickfix entry. (#4557)
 Win32 key codes are messy.  Mike Williams tried to fix that, but now old
 mappings no longer work.  Create a new terminal for the better solution?
 
-Patch to "fix" 'visualbell'. Add option to set delay?  (#1789)
-
 Script generated by :mksession does not work well if there are windows with
 modified buffers
   change "silent only" into "silent only!"
@@ -870,9 +858,6 @@ deleting autocmds, not when adding them.
 
 Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
 
-Delete all the specific stuff for the Borland compiler? (#3374)
-Patch in #3377 (Thomas Dziedzic)
-
 With 'foldmethod' "indent" and appending an empty line, what follows isn't
 included in the existing fold.  Deleting the empty line and undo fixes it.
 (Oleg Koshovetc, 2018 Jul 15, #3214)
@@ -1037,6 +1022,7 @@ The ":move" command does not honor closed folds. (Ryan Lue, #2351)
 
 Patch to fix increment/decrement not working properly when 'virtualedit' is
 set. (Hirohito Higashi, 2016 Aug 1, #923)
+Was this fixed?
 
 Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)
 
@@ -1106,8 +1092,6 @@ Or is this not an actual problem?
 
 Better TeX indent file. (Christian Brabandt, 2017 May 3)
 
-Patch to use a separate code for BS on Windows. (Linwei, #1823)
-
 Use gvimext.dll from the nightly build? (Issue #249)
 
 'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,
@@ -1216,13 +1200,6 @@ Implement named arguments for functions:
 Add a command to take a range of lines, filter them and put the output
 somewhere else.  :{range}copy {dest} !cmd
 
-Patch to fix that empty first tab is not in session.
-(Hirohito Higashi, 2016 Nov 25, #1282)
-
-Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5)
-Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
-Update Aug 2017: #1954
-
 The TermResponse event is not triggered when a plugin has set 'eventignore' to
 "all".  Netrw does this. (Gary Johnson, 2017 Jan 24)
 Postpone the event until 'eventignore' is reset.
@@ -1386,11 +1363,6 @@ Undo message is not always properly displayed.  Patch by Ken Takata, 2013 oct
 3.  Doesn't work properly according to Yukihiro Nakadaira.
 Also see #1635.
 
-Patch for systemlist(), add empty item. (thinca, Sep 30, #1135)
-Add an argument to choose binary or non-binary (like readfile()), when omitted
-use the current behavior.
-Include the test.
-
 When 'keywordprg' starts with ":" the argument is still escaped as a shell
 command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
 
@@ -1412,9 +1384,6 @@ synced.  (Ryan Carney, 2016 Sep 14)
 Syntax highlighting for messages with RFC3339 timestamp (#946)
 Did maintainer reply?
 
-Patch to avoid problem with special characters in file name.
-(Shougo, 2016 Sept 19, #1099)  Not finished?
-
 ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
 Also with latest version.
 
@@ -1450,8 +1419,6 @@ Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
 
 Patch to improve map documentation. Issue #799.
 
-Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)
-
 We can use '. to go to the last change in the current buffer, but how about
 the last change in any buffer?  Can we use ', (, is next to .)?
 
@@ -1508,11 +1475,6 @@ Mechelynck)  Perhaps use exists("::tearoff") to check?
 Use vim.vim syntax highlighting for help file examples, but without ":" in
 'iskeyword' for syntax.
 
-Patch to make "%:h:h" return "." instead of the full path.
-(Coot, 2016 Jan 24, #592)
-
-Remove SPACE_IN_FILENAME ? What could possibly go wrong?
-
 When command names are very long :command output is difficult to read.  Use a
 maximum for the column width?  (#871)
 Patcy by varmanishant, 2016 Jun 18, #876
@@ -2107,11 +2069,6 @@ Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
 BT regexp engine: After trying a \@> match and failing, submatches are not
 cleared.  See test64.
 
-Patch to make "z=" work when 'spell' is off.  Does this have nasty side
-effects?  (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
-Would also need to do this for spellbadword() and spellsuggest().
-https://github.com/chrisbra/vim-mq-patches/blob/master/enable_spellchecking
-
 On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
 64 bits value.  Change all number options to use nropt_T and define it to the
 right type.
index 0219b98868196da91860bfc996332645661c4a28..bde1dd1ddab2a3d3712c6a736cf38c5cc0fb2f67 100644 (file)
@@ -1,4 +1,4 @@
-*usr_41.txt*   For Vim version 8.2.  Last change: 2020 Jun 01
+*usr_41.txt*   For Vim version 8.2.  Last change: 2020 Jun 13
 
                     VIM USER MANUAL - by Bram Moolenaar
 
@@ -41,10 +41,11 @@ prefer.  And you can use any colon command in it (commands that start with a
 specific file type.  A complicated macro can be defined by a separate Vim
 script file.  You can think of other uses yourself.
 
-Note: if you are familiar with Python, you can find a comparison between
-Python and Vim script here, with pointers to other documents:
-   https://gist.github.com/yegappan/16d964a37ead0979b05e655aa036cad0
-
+       If you are familiar with Python, you can find a comparison between
+       Python and Vim script here, with pointers to other documents:
+          https://gist.github.com/yegappan/16d964a37ead0979b05e655aa036cad0
+       And if you are familiar with Javascript:
+          https://w0rp.com/blog/post/vim-script-for-the-javascripter/
 
 Let's start with a simple example: >
 
@@ -98,6 +99,8 @@ and the value of the variable i.  Since i is one, this will print:
 Then there is the ":let i += 1" command.  This does the same thing as
 ":let i = i + 1".  This adds one to the variable i and assigns the new value
 to the same variable.
+Note: this is how it works in legacy Vim script, which is what we discuss in
+this file.  In Vim9 script it's a bit different, see |usr_46.txt|.
 
 The example was given to explain the commands, but would you really want to
 make such a loop, it can be written much more compact: >
index da4d956dc9bac6ee9b65965ada445a2bf70254c9..f91648e0ecd3e35fa4bac57007362265cb97e800 100644 (file)
@@ -1,8 +1,8 @@
-*usr_45.txt*   For Vim version 8.2.  Last change: 2008 Nov 15
+*usr_45.txt*   For Vim version 8.2.  Last change: 2020 Jun 11
 
                     VIM USER MANUAL - by Bram Moolenaar
 
-                            Select your language
+                       Select your language (locale)
 
 
 The messages in Vim can be given in several languages.  This chapter explains
@@ -15,7 +15,7 @@ in various languages is explained.
 |45.4| Editing files with a different encoding
 |45.5| Entering language text
 
-     Next chapter: |usr_90.txt|  Installing Vim
+     Next chapter: |usr_46.txt|  Write plugins using Vim9 script
  Previous chapter: |usr_44.txt|  Your own syntax highlighted
 Table of contents: |usr_toc.txt|
 
@@ -408,6 +408,6 @@ Don't type the spaces.  See |i_CTRL-V_digit| for the details.
 
 ==============================================================================
 
-Next chapter: |usr_90.txt|  Installing Vim
+Next chapter: |usr_46.txt|  Write plugins using Vim9 script
 
 Copyright: see |manual-copyright|  vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/usr_46.txt b/runtime/doc/usr_46.txt
new file mode 100644 (file)
index 0000000..b588223
--- /dev/null
@@ -0,0 +1,192 @@
+*usr_46.txt*   For Vim version 8.2.  Last change: 2020 Jun 14
+
+                    VIM USER MANUAL - by Bram Moolenaar
+
+                      Write plugins using Vim9 script
+
+
+The Vim9 script language is used for writing plugins, especially larger ones
+that use multiple files.  This chapter explains how to split up a plugin into
+modules, import and export items and keep the rest local.
+
+|46.1| Introduction
+|46.2| Variable declarations
+|46.3| Functions and types
+|46.?| Using a Vim9 script from legacy script
+
+     Next chapter: |usr_90.txt|  Installing Vim
+ Previous chapter: |usr_45.txt|  Select your language (locale)
+Table of contents: |usr_toc.txt|
+
+==============================================================================
+*46.1* Introduction                            *vim9-script-intro*
+
+Vim9 script was designed to make it easier to write large Vim scripts.  It
+looks more like other script languages, especially Typescript.  Also,
+functions are compiled into instructions that can be executed quickly.  This
+makes Vim9 script a lot faster, up to a 100 times.
+
+The basic idea is that a script file has items that are private, only used
+inside the script file, and items that are exported, used outside of the
+script file.  The exported items can then be used by scripts that import them.
+That makes very clear what is defined where.
+
+Let's start with an example, a script that exports one function and has one
+private function: >
+
+       vim9script  " This indicates a Vim9 script file, 
+
+       export def GetMessage(): string
+          let result = ''
+          ...
+          result = GetPart(count)
+          ...
+          return result
+       enddef
+
+       def GetPart(nr: number): string
+         if nr == 4
+            return 'yes'
+         else
+            return 'no'
+         endif
+       enddef
+
+The `vim9script` command must be the very first command in the file.  Without
+it Vim will assume legacy script syntax.
+
+The `export def GetMessage(): string` line starts with `export`, meaning that
+this function can be imported and called by other scripts. The line
+`def GetPart(...` does not start with `export`, this is a script-local
+function, it can only be used inside this script file.
+
+In the `export def GetMessage(): string` line you will notice the colon and
+the return type.  Vim9 functions, defined with `def`, require specifying the
+type of arguments and the return type.  That way Vim can compile the code
+efficiently.  The GetPart function defines an argument "nr" of type "number".
+
+Notice that the assignment `result = GetPart(count)` does not use the `let`
+command.  That is explained in the next section.
+
+==============================================================================
+*46.2* Variable declarations                           *vim9-declarations*
+
+In Vim9 script variables are declared once with a `:let` or `:const` command.
+Assigning a value is done without `:let` and it is not possible to `:unlet`
+the variable.
+
+In most cases you will want to declare the variable and initialize it at the
+same time: >
+       let myText = 'some text'
+       ...
+       myText = 'other text'
+
+The type of the variable will be inferred from the expression.  In this case
+it is a string.  If you initialize with a number, then the type is number: >
+       let myNumber = 1234
+       ...
+       myNumber = 0
+
+If you try to assign a string to this variable, you will get an error: >
+       let myNumber = 'this fails!'
+
+In the rare case you want a variable that can take values of any type, you
+have to specify the type: >
+       let myVar: any = 1234
+       myVar = 'text also works'
+
+You can also declare a variable without assigning a value.  In that case Vim
+will initialize it to zero or empty: >
+       let word: string
+       if condition
+         word = 'yes'
+       else
+         word = 'no'
+       endif
+
+Although it's shorter to do: >
+       let word = condition ? 'yes' : 'no'
+
+==============================================================================
+*46.3* Functions and types
+
+Legacy Vim script does have type checking, but this happens at runtime, when
+the code is executed.  And it's permissive, often a computation gives an
+unexpected value instead of reporting an error .  Thus you can define a
+function and think it's fine, but see a problem only later when it is called: >
+       let s:collected = ''
+       func ExtendAndReturn(add)
+          let s:collected += a:add
+          return s:collected
+       endfunc
+
+Can you spot the error?  Try this: >
+       echo ExtendAndReturn('text')
+And you'll see zero.  Why?  Because in legacy Vim script "+=" will convert the
+arguments to numbers, and any string without a number results in zero!
+
+With `:def` the type checking happens when compiling the function.  For that
+you need to specify the argument types and the return type.  Also notice that
+the argument is used without the "a:" prefix: >
+       let s:collected = ''
+       def ExtendAndReturn(add: string): string
+          s:collected += add
+          return s:collected
+       enddef
+       defcompile
+
+Here we use `:defcompile` to do the compilation right away, without it the
+compilation would happen when the function is called.  Vim will tell you what
+you did wrong: >
+       E1013: type mismatch, expected number but got string
+
+Vim9 script is strict, it uses the "+" operator only for numbers and floats.
+For string concatenation ".." must be used.  This avoids mistakes and avoids
+the automatic conversion that gave a suprising result above.  So you change
+the first line of the function to: >
+          s:collected ..= add
+And now it works.
+
+If the function does not return anything, just leave out the return type: >
+       def ReportResult(result: string)
+          echo 'The result is: ' .. result
+       enddef
+
+This is also checked, if you try to return a value you'll get an error.
+
+In case you don't care about types or have a function that does work with
+multiple types, you can use the "any" type: >
+       def Store(key: string, value: any)
+         resultDict[key] = value
+       enddef
+
+==============================================================================
+*46.?* Using a Vim9 script from legacy script          *source-vim9-script*
+
+In some cases you have a legacy Vim script where you want to use items from a
+Vim9 script.  For example in your .vimrc you want to initialize a plugin.  The
+best way to do this is to use `:import`.  For example: >
+
+       import Init as NiceInit from 'myNicePlugin.vim'
+       call NiceInit('today')
+
+This finds the exported function "Init" in the Vim9 script file and makes it
+available as script-local item "NiceInit". `:import` always uses the script
+namespace, even when "s:" is not given.  If "myNicePlugin.vim" was already
+sourced it is not sourced again.
+
+Besides avoiding putting any items in the global namespace (where name clashes
+can cause unexpected errors), this also means the script is sourced only once,
+no matter how many times items from it are imported.
+
+In some cases, e.g. for testing, you may just want to source the Vim9 script.
+That is OK, but then only global items will be available.  The Vim9 script
+will have to make sure to use a unique name for these global items. Example: >
+       source ~/.vim/extra/myNicePlugin.vim
+       call g:NicePluginTest()
+
+==============================================================================
+
+Next chapter: |usr_90.txt|  Installing Vim
+
+Copyright: see |manual-copyright|  vim:tw=78:ts=8:noet:ft=help:norl:
index 074d353ef74b60dff645e7b65f704bf65c15a4d3..d5381a708b657cd634066d3b5b98a33fa5b86f44 100644 (file)
@@ -1,4 +1,4 @@
-*usr_90.txt*   For Vim version 8.2.  Last change: 2008 Sep 10
+*usr_90.txt*   For Vim version 8.2.  Last change: 2020 Jun 11
 
                     VIM USER MANUAL - by Bram Moolenaar
 
@@ -15,7 +15,7 @@ upgrading to a new version is done.
 |90.4| Common installation issues
 |90.5| Uninstalling Vim
 
- Previous chapter: |usr_45.txt|  Select your language
+ Previous chapter: |usr_46.txt|  Write plugins using Vim9 script
 Table of contents: |usr_toc.txt|
 
 ==============================================================================
index f237d3323d7964d6ba2f6001b36ae0bbccf9ec67..d5d761557d37e9ad7b9416c7ef731476884b9c32 100644 (file)
@@ -1,4 +1,4 @@
-*usr_toc.txt*  For Vim version 8.2.  Last change: 2019 May 24
+*usr_toc.txt*  For Vim version 8.2.  Last change: 2020 Jun 11
 
                     VIM USER MANUAL - by Bram Moolenaar
 
@@ -42,7 +42,8 @@ Tuning Vim
 |usr_42.txt|  Add new menus
 |usr_43.txt|  Using filetypes
 |usr_44.txt|  Your own syntax highlighted
-|usr_45.txt|  Select your language
+|usr_45.txt|  Select your language (locale)
+|usr_46.txt|  Write plugins using Vim9 script
 
 Making Vim Run
 |usr_90.txt|  Installing Vim
index 2946d6cf108c381e5e92edb434f7eb4ec0ff7d46..04a065f6fe31aa3fe698eb25506c609efa45d60c 100644 (file)
@@ -1,4 +1,4 @@
-*version8.txt*  For Vim version 8.2.  Last change: 2020 Feb 04
+*version8.txt*  For Vim version 8.2.  Last change: 2020 Jun 08
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -30777,7 +30777,7 @@ Solution:   Use a double quoted string.  Add a test.
 Files:     src/ex_docmd.c, src/testdir/test_mksession.vim
 
 Patch 8.1.0804
-Problem:    Crash when setting v:errmsg to empty list. (Jaon Franklin)
+Problem:    Crash when setting v:errmsg to empty list. (Jason Franklin)
 Solution:   Separate getting value and assigning result.
 Files:     src/eval.c, src/testdir/test_eval_stuff.vim
 
@@ -33684,8 +33684,8 @@ Solution:   Also change the textprop implementation.
 Files:     src/textprop.c
 
 Patch 8.1.1279
-Problem:    Cannot set 'spellang' to "sr@latin". (Bojan Stipic)
-Solution:   Allow using '@' in 'spellang'. (closes #4342)
+Problem:    Cannot set 'spelllang' to "sr@latin". (Bojan Stipic)
+Solution:   Allow using '@' in 'spelllang'. (closes #4342)
 Files:     src/option.c, src/testdir/gen_opt_test.vim
 
 Patch 8.1.1280
index 9a74b3ae7b9c948e70f0287bc98312df844846f8..1f3f1206071928fa36b27f87869d6f7de264bbdc 100644 (file)
@@ -1,4 +1,4 @@
-*vim9.txt*     For Vim version 8.2.  Last change: 2020 May 25
+*vim9.txt*     For Vim version 8.2.  Last change: 2020 Jun 14
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -106,7 +106,7 @@ list type, similar to Typescript.  For example, a list of numbers: >
 
 
 Functions and variables are script-local by default ~
-
+                                                       *vim9-scopes*
 When using `:function` or `:def` to specify a new function at the script level
 in a Vim9 script, the function is local to the script, as if "s:" was
 prefixed.  Using the "s:" prefix is optional.
@@ -136,7 +136,7 @@ and cannot be deleted or replaced.
 
 
 Variable declarations with :let and :const ~
-
+                                                       *vim9-declaration*
 Local variables need to be declared with `:let`.  Local constants need to be
 declared with `:const`.  We refer to both as "variables".
 
@@ -388,13 +388,17 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
                        The second and third form are optional arguments.
                        When the caller omits an argument the {value} is used.
 
+                       The function will be compiled into instructions when
+                       called, or when `:defcompile` is used.  Syntax and
+                       type errors will be produced at that time.
+
                        NOTE: It is possible to nest `:def` inside another
                        `:def`, but it is not possible to nest `:def` inside
                        `:function`, for backwards compatibility.
 
                        [!] is used as with `:function`.  Note that in Vim9
                        script script-local functions cannot be deleted or
-                       redefined.
+                       redefined later in the same script.
 
                                                        *:enddef*
 :enddef                        End of a function defined with `:def`.
@@ -402,8 +406,9 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
 
 If the script the function is defined in is Vim9 script, then script-local
 variables can be accessed without the "s:" prefix.  They must be defined
-before the function.  If the script the function is defined in is legacy
-script, then script-local variables must be accessed with the "s:" prefix.
+before the function is compiled.  If the script the function is defined in is
+legacy script, then script-local variables must be accessed with the "s:"
+prefix.
 
                                                *:defc* *:defcompile*
 :defc[ompile]          Compile functions defined in the current script that
@@ -555,6 +560,9 @@ be exported.
 Alternatively, an export statement can be used to export several already
 defined (otherwise script-local) items: >
        export {EXPORTED_CONST, someValue, MyFunc, MyClass}
+<
+                                                       *E1042*
+`:export` can only be used in Vim9 script, at the script level.
 
 
 Import ~
@@ -629,8 +637,8 @@ actually needed.  A recommended mechanism:
 
 Import in legacy Vim script ~
 
-If an `import` statement is used in legacy Vim script, for identifier the
-script-local "s:" namespace will be used, even when "s:" is not specified.
+If an `import` statement is used in legacy Vim script, the script-local "s:"
+namespace will be used for the imported item, even when "s:" is not specified.
 
 
 ==============================================================================
@@ -673,12 +681,37 @@ widely used.  The type names are what was used in Vim before, with some
 additions such as "void" and "bool".
 
 
-JavaScript/TypeScript syntax and semantics ~
+Compiling functions early ~
+
+Functions are compiled when called or when `:defcompile` is used.  Why not
+compile them early, so that syntax and type errors are reported early?
+
+The functions can't be compiled right away when encountered, because there may
+be forward references to functions defined later.  Consider defining functions
+A, B and C, where A calls B, B calls C, and C calls A again.  It's impossible
+to reorder the functions to avoid forward references.
+
+An alternative would be to first scan through the file to locate items and
+figure out their type, so that forward refeferences are found, and only then
+execute the script and compile the functions.  This means the script has to be
+parsed twice, which is slower, and some conditions at the script level, such
+as checking if a feature is supported, are hard to use.  An attempt was made
+to see if it works, but it turned out to be impossible to make work nicely.
+
+It would be possible to compile all the functions at the end of the script.
+The drawback is that if a function never gets called, the overhead of
+compiling it counts anyway.  Since startup speed is very important, in most
+cases it's better to do it later and accept that syntax and type errors are
+only reported then.  In case these errors should be found early, e.g. when
+testing, the `:defcompile` command will help out.
+
+
+TypeScript syntax and semantics ~
 
 Script writers have complained that the Vim script syntax is unexpectedly
 different from what they are used to.  To reduce this complaint popular
-languages will be used as an example.  At the same time, we do not want to
-abandon the well-known parts of legacy Vim script.
+languages are used as an example.  At the same time, we do not want to abandon
+the well-known parts of legacy Vim script.
 
 Since Vim already uses `:let` and `:const` and optional type checking is
 desirable, the JavaScript/TypeScript syntax fits best for variable
@@ -695,7 +728,7 @@ are doing.  Some details are unexpected and can be fixed.  For example how the
        ...
        return result || 0      " returns 1
 
-Vim9 script works like JavaScript, keep the value: >
+Vim9 script works like JavaScript/Typescript, keep the value: >
        let result = 44
        ...
        return result || 0      " returns 44
@@ -727,6 +760,16 @@ that works like one would expect:
   avoided.
 - The Vim-specific use of "s:" to make things script-local can be dropped.
 
+When sourcing a Vim9 script from a legacy script, only the items defined
+globally can be used, not the exported items.  Alternatives considered:
+- All the exported items become available as script-local items.  This makes
+  it uncontrollable what items get defined.
+- Use the exported items and make them global.  Disadvantage is that it's then
+  not possible to avoid name clashes in the global namespace.
+- Completely disallow sourcing a Vim9 script, require using `:import`.  That
+  makes it difficult to use scripts for testing, or sourcing them from the
+  command line to try them out.
+
 
 Classes ~
 
index 2b01fb359d0c99fb46a27e7d0e1abb1ca252a0ed..0f04b5694ee16f54ac9b0bc8e14fa99d9e4260b6 100644 (file)
@@ -137,6 +137,12 @@ invert the status line.  Now it should be "sr", reverse the status line, as
 status line is inverted anyway; you will only see this problem on terminals
 that have termcap codes for italics.
 
+                                                       *filler-lines*
+The lines after the last buffer line in a window are called filler lines.
+These lines start with a tilde (~) character. By default, these are
+highlighted as NonText (|hl-NonText|). The EndOfBuffer highlight group
+(|hl-EndOfBuffer|) can be used to change the highlighting of filler lines.
+
 ==============================================================================
 3. Opening and closing a window                                *opening-window* *E36*
 
index 8400180aaa1f5315dd2b9363046f6c3d2c8876b4..60e956c08b398032c22ab2815ea4de10bd185ee5 100644 (file)
@@ -453,12 +453,12 @@ if has("spell")
   an 40.335.260 &Tools.&Spelling.Set\ Language\ to\ "en_us"    :set spl=en_us spell<CR>
   an <silent> 40.335.270 &Tools.&Spelling.&Find\ More\ Languages       :call <SID>SpellLang()<CR>
 
-  let s:undo_spellang = ['aun &Tools.&Spelling.&Find\ More\ Languages']
+  let s:undo_spelllang = ['aun &Tools.&Spelling.&Find\ More\ Languages']
   func s:SpellLang()
-    for cmd in s:undo_spellang
+    for cmd in s:undo_spelllang
       exe "silent! " . cmd
     endfor
-    let s:undo_spellang = []
+    let s:undo_spelllang = []
 
     if &enc == "iso-8859-15"
       let enc = "latin1"
@@ -481,7 +481,7 @@ if has("spell")
          let found += 1
          let menuname = '&Tools.&Spelling.' . escape(g:menutrans_set_lang_to, "\\. \t|") . '\ "' . nm . '"'
          exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell<CR>'
-         let s:undo_spellang += ['aun ' . menuname]
+         let s:undo_spelllang += ['aun ' . menuname]
        endif
        let n += 10
       endfor
index 045462d8073ce8ed33dffccd7daf6346ed1500f9..5bb78cdb0a52bf3eac3670441be2dfd559dfafd1 100644 (file)
@@ -1,7 +1,7 @@
 " These commands create the option window.
 "
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2020 Jun 02
+" Last Change: 2020 Jun 10
 
 " If there already is an option window, jump to that one.
 let buf = bufnr('option-window')
@@ -447,6 +447,9 @@ if has("syntax")
   call append("$", "spellcapcheck\tpattern to locate the end of a sentence")
   call append("$", "\t(local to buffer)")
   call <SID>OptionL("spc")
+  call append("$", "spelloptions\tflags to change how spell checking works")
+  call append("$", "\t(local to buffer)")
+  call <SID>OptionL("spo")
   call append("$", "spellsuggest\tmethods used to suggest corrections")
   call <SID>OptionG("sps", &sps)
   call append("$", "mkspellmem\tamount of memory used by :mkspell before compressing")
index 479b35c3f7e5bb73a20e5b5ba67666cdaaae98b1..ace01227891834b4f7f3a94d5f6c2f76ded4ac7a 100644 (file)
@@ -2,7 +2,7 @@
 "
 " Author: Bram Moolenaar
 " Copyright: Vim license applies, see ":help license"
-" Last Change: 2020 May 22
+" Last Change: 2020 Jun 12
 "
 " WORK IN PROGRESS - Only the basics work
 " Note: On MS-Windows you need a recent version of gdb.  The one included with
@@ -710,7 +710,7 @@ func s:DeleteCommands()
   delcommand Source
   delcommand Winbar
 
-  if exists('s:k_map_saved')
+  if exists('s:k_map_saved') && !empty(s:k_map_saved)
     call mapset('n', 0, s:k_map_saved)
     unlet s:k_map_saved
   endif
index 915107887a6359fa2d051dc0ac6cf2f76839b7e7..2c1102238d7330b924a5485752882afbdb8f940e 100644 (file)
 " Vim syntax file
-" Language:    .desktop, .directory files
-"              according to freedesktop.org specification 0.9.4
-" http://pdx.freedesktop.org/Standards/desktop-entry-spec/desktop-entry-spec-0.9.4.html
-" Maintainer:  Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change: 2016 Apr 02
-"              (added "Keywords")
-" Version Info: desktop.vim 0.9.4-1.2
+" Language: XDG desktop entry
+" Filenames: *.desktop, *.directory
+" Maintainer: Eisuke Kawashima ( e.kawaschima+vim AT gmail.com )
+" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
+" Last Change: 2020-06-11
+" Version Info: desktop.vim 1.5
+" References:
+" - https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.5.html (2020-04-27)
+" - https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-0.11.html (2006-02-07)
 
 " quit when a syntax file was already loaded
 if exists("b:current_syntax")
-    finish
+  finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+syn case match
+
+" Variable {{{1
 " This syntax file can be used to all *nix configuration files similar to dos
-" ini format (eg. .xawtv, .radio, kde rc files) - this is default mode. But
-" you can also enforce strict following of freedesktop.org standard for
-" .desktop and .directory files . Set (eg. in vimrc)
-" let enforce_freedesktop_standard = 1
-" and nonstandard extensions not following X- notation will not be highlighted.
-if exists("enforce_freedesktop_standard")
-       let b:enforce_freedesktop_standard = 1
+" ini format (eg. .xawtv, .radio, kde rc files) - this is default mode.
+" By default strict following of freedesktop.org standard is enforced.
+" To highlight nonstandard extensions that does not begin with X-, set
+"   let g:desktop_enable_nonstd = v:true
+" Note that this may cause wrong highlight.
+" To highlight KDE-reserved features, set
+"   let g:desktop_enable_kde = v:true
+" g:desktop_enable_kde follows g:desktop_enable_nonstd if not supplied
+
+if exists("g:desktop_enable_nonstd") && g:desktop_enable_nonstd
+  let s:desktop_enable_nonstd = v:true
 else
-       let b:enforce_freedesktop_standard = 0
+  let s:desktop_enable_nonstd = v:false
 endif
 
-" case on
-syn case match
+if exists("g:desktop_enable_kde") && g:desktop_enable_kde || s:desktop_enable_nonstd
+  let s:desktop_enable_kde = v:true
+else
+  let s:desktop_enable_kde = v:false
+endif
+
+" Comment {{{1
+syn match dtComment /^#.*$/
 
-" General
-if b:enforce_freedesktop_standard == 0
-       syn match  dtNotStLabel "^.\{-}=\@=" nextgroup=dtDelim
+" Error {{{1
+syn match dtError /\%(^\s.*\|\s\+$\)/
+
+" Group Header {{{1
+" ASCII printable characters except for brackets [ (0x5B) and ] (0x5D)
+syn match dtGroup /^\[[\x20-\x5A\x5C\x5E-\x7E]\+\]$/
+
+" Entries {{{1
+syn match dtDelim /=/ contained
+" lang_territory.codeset@modifier
+syn match dtLocaleSuffix
+      \ /\[\%(C\|POSIX\|[a-z]\{2,4}\%(_[A-Z0-9]\{2,3}\)\?\)\%(\.[A-Za-z0-9_-]\+\)\?\%(@[A-Za-z]\+\)\?\]\ze\s*=/
+      \ contained
+
+" Boolean Value {{{2
+syn match   dtBoolean
+      \ /^\%(DBusActivatable\|Hidden\|NoDisplay\|PrefersNonDefaultGPU\|StartupNotify\|Terminal\)\s*=\s*\%(true\|false\)/
+      \ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent
+syn keyword dtBooleanKey
+      \ DBusActivatable Hidden NoDisplay PrefersNonDefaultGPU StartupNotify Terminal
+      \ contained nextgroup=dtDelim
+
+if s:desktop_enable_kde
+  syn match   dtBoolean
+        \ /^ReadOnly\s*=\s*\%(true\|false\)/
+        \ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent
+  syn keyword dtBooleanKey
+        \ ReadOnly
+        \ contained nextgroup=dtDelim
 endif
+syn keyword dtBooleanValue true false contained
 
-syn match  dtGroup     /^\s*\[.*\]/
-syn match  dtComment   /^\s*#.*$/
-syn match  dtDelim     /=/ contained
+" Numeric Value {{{2
+" icon theme
+syn match   dtNumeric /^\%(MaxSize\|MinSize\|Size\|Threshold\)\s*=\s*\d\+/ contains=dtNumericKey,dtDelim,dtNumericDecimal
+syn keyword dtNumericKey
+      \ MaxSize MinSize Size Threshold
+      \ contained nextgroup=dtDelim
 
-" Locale
-syn match   dtLocale /^\s*\<\(Name\|GenericName\|Comment\|SwallowTitle\|Icon\|UnmountIcon\)\>.*/ contains=dtLocaleKey,dtLocaleName,dtDelim transparent
-syn keyword dtLocaleKey Name GenericName Comment SwallowTitle Icon UnmountIcon nextgroup=dtLocaleName containedin=dtLocale
-syn match   dtLocaleName /\(\[.\{-}\]\s*=\@=\|\)/ nextgroup=dtDelim containedin=dtLocale contained
+if s:desktop_enable_kde
+  syn match   dtNumeric /^InitialPreference\s*=\s*\d\+/ contains=dtNumericKey,dtDelim,dtNumericDecimal
+  syn keyword dtNumericKey
+        \ InitialPreference
+        \ contained nextgroup=dtDelim
+endif
+
+syn match   dtNumericDecimal /\<\d\+$/ contained
 
-" Numeric
-syn match   dtNumeric /^\s*\<Version\>/ contains=dtNumericKey,dtDelim
-syn keyword dtNumericKey Version nextgroup=dtDelim containedin=dtNumeric contained
+" String Value {{{2
+syn match   dtString
+      \ /^\%(Actions\|Implements\|MimeType\|NotShowIn\|OnlyShowIn\|Path\|StartupWMClass\|URL\)\s*=.*\S/
+      \ contains=dtStringKey,dtDelim transparent
+syn keyword dtStringKey
+      \ Actions Implements MimeType NotShowIn OnlyShowIn Path StartupWMClass URL Version
+      \ contained nextgroup=dtDelim
 
-" Boolean
-syn match   dtBoolean /^\s*\<\(StartupNotify\|ReadOnly\|Terminal\|Hidden\|NoDisplay\)\>.*/ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent
-syn keyword dtBooleanKey StartupNotify ReadOnly Terminal Hidden NoDisplay nextgroup=dtDelim containedin=dtBoolean contained
-syn keyword dtBooleanValue true false containedin=dtBoolean contained
+" icon theme
+syn match   dtString
+      \ /^\%(Context\|Directories\|Example\|Inherits\)\s*=.*\S/
+      \ contains=dtStringKey,dtDelim transparent
+syn keyword dtStringKey
+      \ Context Directories Example Inherits
+      \ contained nextgroup=dtDelim
 
-" String
-syn match   dtString /^\s*\<\(Encoding\|Icon\|Path\|Actions\|FSType\|MountPoint\|UnmountIcon\|URL\|Keywords\|Categories\|OnlyShowIn\|NotShowIn\|StartupWMClass\|FilePattern\|MimeType\)\>.*/ contains=dtStringKey,dtDelim transparent
-syn keyword dtStringKey Type Encoding TryExec Exec Path Actions FSType MountPoint URL Keywords Categories OnlyShowIn NotShowIn StartupWMClass FilePattern MimeType nextgroup=dtDelim containedin=dtString contained
+if s:desktop_enable_kde
+  syn match   dtString
+        \ /^\%(Dev\|DocPath\|FSType\|MountPoint\|ServiceTypes\)\s*=.*\S/
+        \ contains=dtStringKey,dtDelim transparent
+  syn keyword dtStringKey
+        \ Dev DocPath FSType MountPoint ServiceTypes
+        \ contained nextgroup=dtDelim
+endif
 
-" Exec
-syn match   dtExec /^\s*\<\(Exec\|TryExec\|SwallowExec\)\>.*/ contains=dtExecKey,dtDelim,dtExecParam transparent
-syn keyword dtExecKey Exec TryExec SwallowExec nextgroup=dtDelim containedin=dtExec contained
-syn match   dtExecParam  /%[fFuUnNdDickv]/ containedin=dtExec contained
+" Categories {{{3
+" https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html#category-registry
+syn match   dtCategories /^Categories\s*=.\+\S/ contains=dtCategoriesKey,dtDelim,dtCategoriesValue transparent
+syn keyword dtCategoriesKey
+      \ Categories
+      \ contained nextgroup=dtDelim
 
-" Type
-syn match   dtType /^\s*\<Type\>.*/ contains=dtTypeKey,dtDelim,dtTypeValue transparent
-syn keyword dtTypeKey Type nextgroup=dtDelim containedin=dtType contained
-syn keyword dtTypeValue Application Link FSDevice Directory containedin=dtType contained
+" Main Categories
+syn keyword dtCategoriesValue
+      \ Audio AudioVideo Development Education Game Graphics Network Office
+      \ Settings System Utility Video
+      \ contained
 
-" X-Addition
-syn match   dtXAdd    /^\s*X-.*/ contains=dtXAddKey,dtDelim transparent
-syn match   dtXAddKey /^\s*X-.\{-}\s*=\@=/ nextgroup=dtDelim containedin=dtXAdd contains=dtXLocale contained
+" Additional Categories
+syn keyword dtCategoriesValue
+      \ BoardGame Chat Clock Geoscience Presentation 2DGraphics 3DGraphics
+      \ Accessibility ActionGame AdventureGame Amusement ArcadeGame Archiving
+      \ Art ArtificialIntelligence Astronomy AudioVideoEditing Biology
+      \ BlocksGame BoardGame Building Calculator Calendar CardGame Chart Chat
+      \ Chemistry Clock Compression ComputerScience ConsoleOnly Construction
+      \ ContactManagement Core DataVisualization Database Debugger
+      \ DesktopSettings Dialup Dictionary DiscBurning Documentation Economy
+      \ Electricity Electronics Email Emulator Engineering FileManager
+      \ FileTools FileTransfer Filesystem Finance FlowChart GNOME GTK
+      \ GUIDesigner Geography Geology Geoscience HamRadio HardwareSettings
+      \ History IDE IRCClient ImageProcessing InstantMessaging Java KDE
+      \ KidsGame Languages Literature LogicGame Math MedicalSoftware Midi
+      \ Mixer Monitor Motif Music News NumericalAnalysis OCR P2P PDA
+      \ PackageManager ParallelComputing Photography Physics Player
+      \ Presentation Printing Profiling ProjectManagement Publishing Qt
+      \ RasterGraphics Recorder RemoteAccess RevisionControl Robotics
+      \ RolePlaying Scanning Science Security Sequencer Simulation Sports
+      \ SportsGame Spreadsheet StrategyGame TV Telephony TelephonyTools
+      \ TerminalEmulator TextEditor TextTools Translation Tuner VectorGraphics
+      \ VideoConference Viewer WebBrowser WebDevelopment WordProcessor
+      \ contained
 
-" Locale for X-Addition
-syn match   dtXLocale /\[.\{-}\]\s*=\@=/ containedin=dtXAddKey contained
+" Reserved Category
+syn keyword dtCategoriesValue
+      \ Applet Screensaver Shell TrayIcon
+      \ contained
+
+" Exec/TryExec {{{3
+syn match   dtExec /^\%(Exec\|TryExec\)\s*=.\+\S/ contains=dtExecKey,dtDelim,dtExecParam transparent
+syn keyword dtExecKey
+      \ Exec TryExec
+      \ contained nextgroup=dtDelim
+" code for file(s), URL(s), etc
+syn match   dtExecParam  /\s\zs%[fFuUick]\ze\%(\W\|$\)/ contained
+
+" Type {{{3
+syn match   dtType /^Type\s*=\s*\S\+/ contains=dtTypeKey,dtDelim,dtTypeValue transparent
+syn keyword dtTypeKey
+      \ Type
+      \ contained nextgroup=dtDelim
+syn keyword dtTypeValue
+      \ Application Directory Link
+      \ contained
+
+if s:desktop_enable_kde
+  syn keyword dtTypeValue
+        \ FSDevice Service ServiceType
+        \ contained
+endif
+
+
+" Version {{{3
+syn match   dtVersion /^Version\s*=\s*\S\+/ contains=dtVersionKey,dtDelim,dtVersionValue transparent
+syn keyword dtVersionKey
+      \ Version
+      \ contained nextgroup=dtDelim
+syn match   dtVersionValue /[0-9]\+\%(\.[0-9]\+\)\{1,2}$/ contained
+
+" Localestring Value {{{2
+syn match   dtLocalestring
+      \ /^\%(Comment\|GenericName\|Keywords\|Name\)\%(\[.\{-}\]\)\?\s*=.*\S/
+      \ contains=dtLocalestringKey,dtLocaleSuffix,dtDelim transparent
+syn keyword dtLocalestringKey
+      \ Comment GenericName Keywords Name
+      \ contained nextgroup=dtLocaleSuffix,dtDelim skipwhite
+
+" Iconstring Value {{{2
+syn match   dtIconstring
+      \ /^Icon\s*=.*\S/
+      \ contains=dtIconstringKey,dtDelim transparent
+syn keyword dtIconstringKey
+      \ Icon
+      \ contained nextgroup=dtDelim skipwhite
+
+if s:desktop_enable_kde
+  syn match   dtIconstring
+        \ /^UnmountIcon\>\%(\[.\{-}\]\)\?\s*=.*\S/
+        \ contains=dtIconstringKey,dtLocaleSuffix,dtDelim transparent
+  syn keyword dtIconstringKey
+        \ UnmountIcon
+        \ contained nextgroup=dtLocaleSuffix,dtDelim skipwhite
+endif
+
+" X-Extension {{{2
+syn match   dtXExtension    /^X-[0-9A-Za-z-]*\%(\[.\{-}\]\)\?\s*=.*\S/
+      \ contains=dtXExtensionKey,dtLocaleSuffix,dtDelim transparent
+syn match   dtXExtensionKey /^X-[0-9A-Za-z-]*/ contained nextgroup=dtLocaleSuffix,dtDelim
+
+" non standard {{{2
+if s:desktop_enable_nonstd
+  syn match dtNonStdLabel    /^[0-9A-Za-z-]\+\%(\[.\{-}\]\)\?\s*=.*\S/
+        \ contains=dtNonStdLabelKey,dtLocaleSuffix,dtDelim transparent
+  syn match dtNonStdLabelKey /^[0-9A-Za-z-]\+/ contained nextgroup=dtLocaleSuffix,dtDelim
+endif
 
-" Locale for all
-syn match   dtALocale /\[.\{-}\]\s*=\@=/ containedin=ALL
+" Highlight {{{1
+hi def link dtComment          Comment
+hi def link dtError            Error
 
+hi def link dtGroup            Special
 
-" Define the default highlighting.
-" Only when an item doesn't have highlighting yet
+hi def link dtDelim            Delimiter
+hi def link dtLocaleSuffix     Identifier
 
-hi def link dtGroup             Special
-hi def link dtComment   Comment
-hi def link dtDelim             String
+hi def link dtBooleanKey       Type
+hi def link dtBooleanValue     Boolean
 
-hi def link dtLocaleKey         Type
-hi def link dtLocaleName        Identifier
-hi def link dtXLocale   Identifier
-hi def link dtALocale   Identifier
+hi def link dtNumericKey       Type
+hi def link dtNumericDecimal   Number
 
-hi def link dtNumericKey        Type
+hi def link dtStringKey                Type
+hi def link dtCategoriesKey    Type
+hi def link dtCategoriesValue  Constant
+hi def link dtExecKey          Type
+hi def link dtExecParam                Special
+hi def link dtTypeKey          Type
+hi def link dtTypeValue                Constant
+hi def link dtVersionKey       Type
+hi def link dtVersionValue     Constant
 
-hi def link dtBooleanKey        Type
-hi def link dtBooleanValue      Constant
+hi def link dtLocalestringKey  Type
 
-hi def link dtStringKey         Type
+hi def link dtIconStringKey    Type
 
-hi def link dtExecKey   Type
-hi def link dtExecParam         Special
-hi def link dtTypeKey   Type
-hi def link dtTypeValue         Constant
-hi def link dtNotStLabel        Type
-hi def link dtXAddKey   Type
+hi def link dtXExtensionKey    Type
 
+hi def link dtNonStdLabelKey   Type
 
+" Clean Up {{{1
 let b:current_syntax = "desktop"
+let &cpo = s:cpo_save
 
-" vim:ts=8
+" vim:ts=8:sw=2:fdm=marker
index 9d7b20ecd0c540e84f35a3e1fec1a620d9a5f208..b29313a3cf65cb1903154d6183851ed5b0a5e4f9 100644 (file)
@@ -1,7 +1,8 @@
 " Vim syntax file
 " Language:     Objective-C
 " Maintainer:   Kazunobu Kuriyama <kazunobu.kuriyama@gmail.com>
-" Last Change:  2015 Dec 14
+" Last Change:  2020 Jun 07
+" Last Change By Maintainer:   2015 Dec 14
 
 """ Preparation for loading ObjC stuff
 if exists("b:current_syntax")
@@ -24,7 +25,7 @@ syn keyword objcUsefulTerm nil Nil NO YES
 
 " Preprocessor Directives
 syn region objcImported display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
-syn match objcImported display contained "\(<\h[-a-zA-Z0-9_/]*\.h>\|<[a-z0-9]\+>\)"
+syn match objcImported display contained "\(<\h[-+a-zA-Z0-9_/]*\.h>\|<[a-z0-9]\+>\)"
 syn match objcImport display "^\s*\(%:\|#\)\s*import\>\s*["<]" contains=objcImported
 
 " ObjC Compiler Directives
index 22b43aa38b359b9df58c02aa828a066a7d94f516..b3a8f96b6b9267afee031df09662a385f7f71c74 100644 (file)
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:    TeX
 " Maintainer:  Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
-" Last Change: May 19, 2020
-" Version:     117
+" Last Change: Jun 07, 2020
+" Version:     118
 " URL:         http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
 "
 " Notes: {{{1
@@ -755,6 +755,8 @@ if has("conceal") && &enc == 'utf-8'
     \ ['lceil'         , '⌈'],
     \ ['ldots'         , '…'],
     \ ['le'            , '≤'],
+    \ ['left|'         , '|'],
+    \ ['left\|'                , '‖'],
     \ ['left('         , '('],
     \ ['left\['                , '['],
     \ ['left\\{'       , '{'],
@@ -805,6 +807,8 @@ if has("conceal") && &enc == 'utf-8'
     \ ['quad'          , ' '],
     \ ['qquad'         , ' '],
     \ ['rfloor'                , '⌋'],
+    \ ['right|'                , '|'],
+    \ ['right\\|'      , '‖'],
     \ ['right)'                , ')'],
     \ ['right]'                , ']'],
     \ ['right\\}'      , '}'],