mirror of
https://github.com/vim/vim
synced 2025-07-16 01:01:58 +00:00
Update runtime files
This commit is contained in:
@ -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 \
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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".
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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*
|
||||
|
@ -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*
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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: >
|
||||
|
@ -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:
|
||||
|
192
runtime/doc/usr_46.txt
Normal file
192
runtime/doc/usr_46.txt
Normal file
@ -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:
|
@ -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|
|
||||
|
||||
==============================================================================
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 ~
|
||||
|
||||
|
@ -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*
|
||||
|
||||
|
@ -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
|
||||
|
@ -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")
|
||||
|
@ -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
|
||||
|
@ -1,107 +1,267 @@
|
||||
" 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
|
||||
|
||||
" 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
|
||||
else
|
||||
let b:enforce_freedesktop_standard = 0
|
||||
endif
|
||||
|
||||
" case on
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
syn case match
|
||||
|
||||
" General
|
||||
if b:enforce_freedesktop_standard == 0
|
||||
syn match dtNotStLabel "^.\{-}=\@=" nextgroup=dtDelim
|
||||
" 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.
|
||||
" 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 s:desktop_enable_nonstd = v:false
|
||||
endif
|
||||
|
||||
syn match dtGroup /^\s*\[.*\]/
|
||||
syn match dtComment /^\s*#.*$/
|
||||
syn match dtDelim /=/ contained
|
||||
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
|
||||
|
||||
" 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
|
||||
" Comment {{{1
|
||||
syn match dtComment /^#.*$/
|
||||
|
||||
" Numeric
|
||||
syn match dtNumeric /^\s*\<Version\>/ contains=dtNumericKey,dtDelim
|
||||
syn keyword dtNumericKey Version nextgroup=dtDelim containedin=dtNumeric contained
|
||||
" Error {{{1
|
||||
syn match dtError /\%(^\s.*\|\s\+$\)/
|
||||
|
||||
" 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
|
||||
" Group Header {{{1
|
||||
" ASCII printable characters except for brackets [ (0x5B) and ] (0x5D)
|
||||
syn match dtGroup /^\[[\x20-\x5A\x5C\x5E-\x7E]\+\]$/
|
||||
|
||||
" 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
|
||||
" 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
|
||||
|
||||
" 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
|
||||
" 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
|
||||
|
||||
" 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
|
||||
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
|
||||
|
||||
" X-Addition
|
||||
syn match dtXAdd /^\s*X-.*/ contains=dtXAddKey,dtDelim transparent
|
||||
syn match dtXAddKey /^\s*X-.\{-}\s*=\@=/ nextgroup=dtDelim containedin=dtXAdd contains=dtXLocale 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 for X-Addition
|
||||
syn match dtXLocale /\[.\{-}\]\s*=\@=/ containedin=dtXAddKey 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
|
||||
|
||||
" Locale for all
|
||||
syn match dtALocale /\[.\{-}\]\s*=\@=/ containedin=ALL
|
||||
syn match dtNumericDecimal /\<\d\+$/ 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
|
||||
|
||||
" 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
|
||||
|
||||
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
|
||||
|
||||
" 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
|
||||
|
||||
" Main Categories
|
||||
syn keyword dtCategoriesValue
|
||||
\ Audio AudioVideo Development Education Game Graphics Network Office
|
||||
\ Settings System Utility Video
|
||||
\ 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
|
||||
|
||||
" 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
|
||||
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
" 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
|
||||
|
||||
hi def link dtGroup Special
|
||||
hi def link dtComment Comment
|
||||
hi def link dtDelim String
|
||||
" 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
|
||||
|
||||
hi def link dtLocaleKey Type
|
||||
hi def link dtLocaleName Identifier
|
||||
hi def link dtXLocale Identifier
|
||||
hi def link dtALocale Identifier
|
||||
" Iconstring Value {{{2
|
||||
syn match dtIconstring
|
||||
\ /^Icon\s*=.*\S/
|
||||
\ contains=dtIconstringKey,dtDelim transparent
|
||||
syn keyword dtIconstringKey
|
||||
\ Icon
|
||||
\ contained nextgroup=dtDelim skipwhite
|
||||
|
||||
hi def link dtNumericKey Type
|
||||
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
|
||||
|
||||
hi def link dtBooleanKey Type
|
||||
hi def link dtBooleanValue Constant
|
||||
" 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
|
||||
|
||||
hi def link dtStringKey Type
|
||||
" 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
|
||||
|
||||
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
|
||||
" Highlight {{{1
|
||||
hi def link dtComment Comment
|
||||
hi def link dtError Error
|
||||
|
||||
hi def link dtGroup Special
|
||||
|
||||
hi def link dtDelim Delimiter
|
||||
hi def link dtLocaleSuffix Identifier
|
||||
|
||||
hi def link dtBooleanKey Type
|
||||
hi def link dtBooleanValue Boolean
|
||||
|
||||
hi def link dtNumericKey Type
|
||||
hi def link dtNumericDecimal Number
|
||||
|
||||
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 dtLocalestringKey Type
|
||||
|
||||
hi def link dtIconStringKey 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
|
||||
|
@ -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
|
||||
|
@ -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\\}' , '}'],
|
||||
|
Reference in New Issue
Block a user