0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

Update runtime files. (closes #9741)

This commit is contained in:
Bram Moolenaar 2022-02-11 13:29:40 +00:00
parent bece72785d
commit 92f645bef7
7 changed files with 83 additions and 62 deletions

View File

@ -1,4 +1,4 @@
*testing.txt* For Vim version 8.2. Last change: 2022 Feb 04 *testing.txt* For Vim version 8.2. Last change: 2022 Feb 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.2. Last change: 2022 Feb 09 *todo.txt* For Vim version 8.2. Last change: 2022 Feb 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -38,6 +38,9 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Disallow using "s:" in Vim9 script at the script level.
Disallow a legacy function creating an s: variable in Vim9 script.
Once Vim9 is stable: Once Vim9 is stable:
- Use Vim9 for runtime files. - Use Vim9 for runtime files.
- Check code coverage, add more tests if needed. - Check code coverage, add more tests if needed.

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.2. Last change: 2022 Jan 28 *usr_41.txt* For Vim version 8.2. Last change: 2022 Feb 11
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -2512,6 +2512,8 @@ continuation, as mentioned above |use-cpo-save|.
For undoing the effect of an indent script, the b:undo_indent variable should For undoing the effect of an indent script, the b:undo_indent variable should
be set accordingly. be set accordingly.
Both these variables use legacy script syntax, not |Vim9| syntax.
FILE NAME FILE NAME

View File

@ -1,4 +1,4 @@
*vim9.txt* For Vim version 8.2. Last change: 2022 Feb 09 *vim9.txt* For Vim version 8.2. Last change: 2022 Feb 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -219,20 +219,18 @@ be given.
Functions and variables are script-local by default ~ Functions and variables are script-local by default ~
*vim9-scopes* *vim9-scopes*
When using `:function` or `:def` to specify a new function at the script level 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 in a Vim9 script, the function is local to the script. Like prefixing "s:" in
prefixed. Using the "s:" prefix is optional. To define a global function or legacy script. To define a global function or variable the "g:" prefix must
variable the "g:" prefix must be used. For functions in a script that is to be used. For functions in a script that is to be imported and in an autoload
be imported and in an autoload script "export" needs to be used. > script "export" needs to be used. >
def ThisFunction() # script-local def ThisFunction() # script-local
def s:ThisFunction() # script-local
def g:ThatFunction() # global def g:ThatFunction() # global
export def Function() # for import and import autoload export def Function() # for import and import autoload
< *E1058* *E1075* < *E1058* *E1075*
When using `:function` or `:def` to specify a nested function inside a `:def` When using `:function` or `:def` to specify a nested function inside a `:def`
function and no namespace was given, this nested function is local to the code function and no namespace was given, this nested function is local to the code
block it is defined in. In a `:def` function it is not possible to define a block it is defined in. It is not possible to define a script-local function.
script-local function. It is possible to define a global function by using It is possible to define a global function by using the "g:" prefix.
the "g:" prefix.
When referring to a function and no "s:" or "g:" prefix is used, Vim will When referring to a function and no "s:" or "g:" prefix is used, Vim will
search for the function: search for the function:
@ -244,6 +242,13 @@ start with an upper case letter even when using the "s:" prefix. In legacy
script "s:funcref" could be used, because it could not be referred to with script "s:funcref" could be used, because it could not be referred to with
"funcref". In Vim9 script it can, therefore "s:Funcref" must be used to avoid "funcref". In Vim9 script it can, therefore "s:Funcref" must be used to avoid
that the name interferes with builtin functions. that the name interferes with builtin functions.
*vim9-s-namespace*
The use of the "s:" prefix is not supported at the Vim9 script level. All
functions and variables without a prefix are script-local.
In :def functions the use of "s:" is optional. This is because in legacy
script the "s:" might be needed. Disallowing the use of "s:" only in a :def
function in Vim9 script would be a bit confusing.
In legacy functions the use of "s:" for script items is required, as before.
In all cases the function must be defined before used. That is when it is In all cases the function must be defined before used. That is when it is
called, when `:defcompile` causes it to be compiled, or when code that calls called, when `:defcompile` causes it to be compiled, or when code that calls

View File

@ -3,7 +3,7 @@ vim9script noclear
# Vim support file to switch on loading plugins for file types # Vim support file to switch on loading plugins for file types
# #
# Maintainer: Bram Moolenaar <Bram@vim.org> # Maintainer: Bram Moolenaar <Bram@vim.org>
# Last change: 2022 Feb 09 # Last change: 2022 Feb 11
if exists("g:did_load_ftplugin") if exists("g:did_load_ftplugin")
finish finish
@ -21,7 +21,8 @@ endif
def LoadFTPlugin() def LoadFTPlugin()
if exists("b:undo_ftplugin") if exists("b:undo_ftplugin")
exe b:undo_ftplugin # We assume b:undo_ftplugin is using legacy script syntax
legacy exe b:undo_ftplugin
unlet! b:undo_ftplugin b:did_ftplugin unlet! b:undo_ftplugin b:did_ftplugin
endif endif

View File

@ -1,7 +1,7 @@
" Vim support file to switch on loading indent files for file types " Vim support file to switch on loading indent files for file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Feb 04 " Last Change: 2022 Feb 11
if exists("did_indent_on") if exists("did_indent_on")
finish finish
@ -14,7 +14,7 @@ augroup END
def s:LoadIndent() def s:LoadIndent()
if exists("b:undo_indent") if exists("b:undo_indent")
exe b:undo_indent legacy exe b:undo_indent
unlet! b:undo_indent b:did_indent unlet! b:undo_indent b:did_indent
endif endif
var s = expand("<amatch>") var s = expand("<amatch>")

View File

@ -7,51 +7,57 @@
" Attached is a Vim script file for turning gvim into a shell script editor. " Attached is a Vim script file for turning gvim into a shell script editor.
" It may also be used as an example how to use menus in Vim. " It may also be used as an example how to use menus in Vim.
" "
" Written by: Lennart Schultz <les@dmi.min.dk> " Maintainer: Ada (Haowen) Yu <me@yuhaowen.com>
" Original author: Lennart Schultz <les@dmi.min.dk> (mail unreachable)
imenu Stmts.for for in do doneki kk0elli " Make sure the '<' and 'C' flags are not included in 'cpoptions', otherwise
imenu Stmts.case case in ) ;; esacbki k0elli " <CR> would not be recognized. See ":help 'cpoptions'".
imenu Stmts.if if then fiki kk0elli let s:cpo_save = &cpo
imenu Stmts.if-else if then else fiki kki kk0elli set cpo&vim
imenu Stmts.elif elif then ki kk0elli
imenu Stmts.while while do doneki kk0elli imenu Stmts.for for in <CR>do<CR><CR>done<esc>ki <esc>kk0elli
imenu Stmts.case case in<CR>) ;;<CR>esac<esc>bki <esc>k0elli
imenu Stmts.if if <CR>then<CR><CR>fi<esc>ki <esc>kk0elli
imenu Stmts.if-else if <CR>then<CR><CR>else<CR><CR>fi<esc>ki <esc>kki <esc>kk0elli
imenu Stmts.elif elif <CR>then<CR><CR><esc>ki <esc>kk0elli
imenu Stmts.while while do<CR><CR>done<esc>ki <esc>kk0elli
imenu Stmts.break break imenu Stmts.break break
imenu Stmts.continue continue imenu Stmts.continue continue
imenu Stmts.function () { }ki k0i imenu Stmts.function () {<CR><CR>}<esc>ki <esc>k0i
imenu Stmts.return return imenu Stmts.return return
imenu Stmts.return-true return 0 imenu Stmts.return-true return 0
imenu Stmts.return-false return 1 imenu Stmts.return-false return 1
imenu Stmts.exit exit imenu Stmts.exit exit
imenu Stmts.shift shift imenu Stmts.shift shift
imenu Stmts.trap trap imenu Stmts.trap trap
imenu Test.existence [ -e ]hi imenu Test.existence [ -e ]<esc>hi
imenu Test.existence - file [ -f ]hi imenu Test.existence\ -\ file [ -f ]<esc>hi
imenu Test.existence - file (not empty) [ -s ]hi imenu Test.existence\ -\ file\ (not\ empty) [ -s ]<esc>hi
imenu Test.existence - directory [ -d ]hi imenu Test.existence\ -\ directory [ -d ]<esc>hi
imenu Test.existence - executable [ -x ]hi imenu Test.existence\ -\ executable [ -x ]<esc>hi
imenu Test.existence - readable [ -r ]hi imenu Test.existence\ -\ readable [ -r ]<esc>hi
imenu Test.existence - writable [ -w ]hi imenu Test.existence\ -\ writable [ -w ]<esc>hi
imenu Test.String is empty [ x = "x$" ]hhi imenu Test.String\ is\ empty [ x = "x$" ]<esc>hhi
imenu Test.String is not empty [ x != "x$" ]hhi imenu Test.String\ is\ not\ empty [ x != "x$" ]<esc>hhi
imenu Test.Strings is equal [ "" = "" ]hhhhhhhi imenu Test.Strings\ is\ equal [ "" = "" ]<esc>hhhhhhhi
imenu Test.Strings is not equal [ "" != "" ]hhhhhhhhi imenu Test.Strings\ is\ not\ equal [ "" != "" ]<esc>hhhhhhhhi
imenu Test.Values is greater than [ -gt ]hhhhhhi imenu Test.Values\ is\ greater\ than [ -gt ]<esc>hhhhhhi
imenu Test.Values is greater equal [ -ge ]hhhhhhi imenu Test.Values\ is\ greater\ equal [ -ge ]<esc>hhhhhhi
imenu Test.Values is equal [ -eq ]hhhhhhi imenu Test.Values\ is\ equal [ -eq ]<esc>hhhhhhi
imenu Test.Values is not equal [ -ne ]hhhhhhi imenu Test.Values\ is\ not\ equal [ -ne ]<esc>hhhhhhi
imenu Test.Values is less than [ -lt ]hhhhhhi imenu Test.Values\ is\ less\ than [ -lt ]<esc>hhhhhhi
imenu Test.Values is less equal [ -le ]hhhhhhi imenu Test.Values\ is\ less\ equal [ -le ]<esc>hhhhhhi
imenu ParmSub.Substitute word if parm not set ${:-}hhi imenu ParmSub.Substitute\ word\ if\ parm\ not\ set ${:-}<esc>hhi
imenu ParmSub.Set parm to word if not set ${:=}hhi imenu ParmSub.Set\ parm\ to\ word\ if\ not\ set ${:=}<esc>hhi
imenu ParmSub.Substitute word if parm set else nothing ${:+}hhi imenu ParmSub.Substitute\ word\ if\ parm\ set\ else\ nothing ${:+}<esc>hhi
imenu ParmSub.If parm not set print word and exit ${:?}hhi imenu ParmSub.If\ parm\ not\ set\ print\ word\ and\ exit ${:?}<esc>hhi
imenu SpShVars.Number of positional parameters ${#} imenu SpShVars.Number\ of\ positional\ parameters ${#}
imenu SpShVars.All positional parameters (quoted spaces) ${*} imenu SpShVars.All\ positional\ parameters\ (quoted\ spaces) ${*}
imenu SpShVars.All positional parameters (unquoted spaces) ${@} imenu SpShVars.All\ positional\ parameters\ (unquoted\ spaces) ${@}
imenu SpShVars.Flags set ${-} imenu SpShVars.Flags\ set ${-}
imenu SpShVars.Return code of last command ${?} imenu SpShVars.Return\ code\ of\ last\ command ${?}
imenu SpShVars.Process number of this shell ${$} imenu SpShVars.Process\ number\ of\ this\ shell ${$}
imenu SpShVars.Process number of last background command ${!} imenu SpShVars.Process\ number\ of\ last\ background\ command ${!}
imenu Environ.HOME ${HOME} imenu Environ.HOME ${HOME}
imenu Environ.PATH ${PATH} imenu Environ.PATH ${PATH}
imenu Environ.CDPATH ${CDPATH} imenu Environ.CDPATH ${CDPATH}
@ -82,13 +88,17 @@ imenu Builtins.umask umask
imenu Builtins.wait wait imenu Builtins.wait wait
imenu Set.set set imenu Set.set set
imenu Set.unset unset imenu Set.unset unset
imenu Set.mark modified or modified variables set -a imenu Set.mark\ modified\ or\ modified\ variables set -a
imenu Set.exit when command returns non-zero exit code set -e imenu Set.exit\ when\ command\ returns\ non-zero\ exit\ code set -e
imenu Set.Disable file name generation set -f imenu Set.Disable\ file\ name\ generation set -f
imenu Set.remember function commands set -h imenu Set.remember\ function\ commands set -h
imenu Set.All keyword arguments are placed in the environment set -k imenu Set.All\ keyword\ arguments\ are\ placed\ in\ the\ environment set -k
imenu Set.Read commands but do not execute them set -n imenu Set.Read\ commands\ but\ do\ not\ execute\ them set -n
imenu Set.Exit after reading and executing one command set -t imenu Set.Exit\ after\ reading\ and\ executing\ one\ command set -t
imenu Set.Treat unset variables as an error when substituting set -u imenu Set.Treat\ unset\ variables\ as\ an\ error\ when\ substituting set -u
imenu Set.Print shell input lines as they are read set -v imenu Set.Print\ shell\ input\ lines\ as\ they\ are\ read set -v
imenu Set.Print commands and their arguments as they are executed set -x imenu Set.Print\ commands\ and\ their\ arguments\ as\ they\ are\ executed set -x
" Restore the previous value of 'cpoptions'.
let &cpo = s:cpo_save
unlet s:cpo_save