Merge remote-tracking branch 'vim/master'

This commit is contained in:
Kazuki Sakamoto
2016-08-18 23:41:36 -07:00
32 changed files with 401 additions and 1001 deletions
+41 -36
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.4. Last change: 2016 Aug 16
*eval.txt* For Vim version 7.4. Last change: 2016 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -43,7 +43,7 @@ There are nine types of variables:
Number A 32 or 64 bit signed number. |expr-number| *Number*
64-bit Numbers are available only when compiled with the
|+num64| feature.
Examples: -123 0x10 0177
Examples: -123 0x10 0177 0b1011
Float A floating point number. |floating-point-format| *Float*
{only when compiled with the |+float| feature}
@@ -1038,9 +1038,10 @@ When expr8 is a |Funcref| type variable, invoke the function it refers to.
number
------
number number constant *expr-number*
*hex-number* *octal-number*
*hex-number* *octal-number* *binary-number*
Decimal, Hexadecimal (starting with 0x or 0X), or Octal (starting with 0).
Decimal, Hexadecimal (starting with 0x or 0X), Binary (starting with 0b or 0B)
and Octal (starting with 0).
*floating-point-format*
Floating point numbers can be written in two forms:
@@ -1446,8 +1447,8 @@ v:beval_winnr The number of the window, over which the mouse pointer is. Only
window gets a number).
*v:beval_winid* *beval_winid-variable*
v:beval_winid The window ID of the window, over which the mouse pointer is.
Otherwise like v:beval_winnr.
v:beval_winid The |window-ID| of the window, over which the mouse pointer
is. Otherwise like v:beval_winnr.
*v:char* *char-variable*
v:char Argument for evaluating 'formatexpr' and used for the typed
@@ -1945,7 +1946,8 @@ v:windowid When any X11 based GUI is running or when running in a
When an MS-Windows GUI is running this will be set to the
window handle.
Otherwise the value is zero.
Note: for windows inside Vim use |winnr()| or |win_getid()|.
Note: for windows inside Vim use |winnr()| or |win_getid()|,
see |window-ID|.
==============================================================================
4. Builtin Functions *functions*
@@ -2462,7 +2464,7 @@ arglistid([{winnr} [, {tabnr}]])
With {winnr} only use this window in the current tab page.
With {winnr} and {tabnr} use the window in the specified tab
page.
{winnr} can be the window number or the window ID.
{winnr} can be the window number or the |window-ID|.
*argv()*
argv([{nr}]) The result is the {nr}th file in the argument list of the
@@ -2708,7 +2710,7 @@ bufnr({expr} [, {create}])
Obsolete name for bufnr("$"): last_buffer_nr().
bufwinid({expr}) *bufwinid()*
The result is a Number, which is the window ID of the first
The result is a Number, which is the |window-ID| of the first
window associated with buffer {expr}. For the use of {expr},
see |bufname()| above. If buffer {expr} doesn't exist or
there is no such window, -1 is returned. Example: >
@@ -3116,7 +3118,7 @@ ch_setoptions({handle}, {options}) *ch_setoptions()*
lost.
These options cannot be changed:
"waittime" only applies to "ch_open()|
"waittime" only applies to |ch_open()|
ch_status({handle}) *ch_status()*
Return the status of {handle}:
@@ -4004,6 +4006,7 @@ getbufinfo([{dict}])
Each returned List item is a dictionary with the following
entries:
bufnr buffer number.
changed TRUE if the buffer is modified.
changedtick number of changes made to the buffer.
hidden TRUE if the buffer is hidden.
@@ -4011,7 +4014,6 @@ getbufinfo([{dict}])
lnum current line number in buffer.
loaded TRUE if the buffer is loaded.
name full path to the file in the buffer.
nr buffer number.
options dictionary of buffer local options.
signs list of signs placed in the buffer.
Each list item is a dictionary with
@@ -4020,7 +4022,7 @@ getbufinfo([{dict}])
lnum line number
name sign name
variables dictionary of buffer local variables.
windows list of window IDs with this buffer
windows list of |window-ID|s with this buffer
Examples: >
for buf in getbufinfo()
@@ -4283,7 +4285,7 @@ getcwd([{winnr} [, {tabnr}]])
in the current tab page.
With {winnr} and {tabnr} return the local current directory of
the window in the specified tab page.
{winnr} can be the window number or the window ID.
{winnr} can be the window number or the |window-ID|.
Return an empty string if the arguments are invalid.
getfsize({fname}) *getfsize()*
@@ -4380,7 +4382,7 @@ getline({lnum} [, {end}])
getloclist({nr}[, {what}]) *getloclist()*
Returns a list with all the entries in the location list for
window {nr}. {nr} can be the window number or the window ID.
window {nr}. {nr} can be the window number or the |window-ID|.
When {nr} is zero the current window is used.
For a location list window, the displayed location list is
@@ -4456,7 +4458,7 @@ getqflist([{what}]) *getqflist()*
type type of the error, 'E', '1', etc.
valid |TRUE|: recognized error message
When there is no error list or it's empty an empty list is
When there is no error list or it's empty, an empty list is
returned. Quickfix list entries with non-existing buffer
number are returned with "bufnr" set to zero.
@@ -4471,8 +4473,8 @@ getqflist([{what}]) *getqflist()*
returns only the items listed in {what} as a dictionary. The
following string items are supported in {what}:
nr get information for this quickfix list
title get list title
winid get window id (if opened)
title get the list title
winid get the |window-ID| (if opened)
all all of the above quickfix properties
Non-string items in {what} are ignored.
If "nr" is not present then the current quickfix list is used.
@@ -4482,7 +4484,7 @@ getqflist([{what}]) *getqflist()*
The returned dictionary contains the following entries:
nr quickfix list number
title quickfix list title text
winid quickfix window id (if opened)
winid quickfix |window-ID| (if opened)
Examples: >
:echo getqflist({'all': 1})
@@ -4529,9 +4531,9 @@ gettabinfo([{arg}]) *gettabinfo()*
empty List is returned.
Each List item is a Dictionary with the following entries:
nr tab page number.
tabnr tab page number.
variables dictionary of tabpage local variables.
windows List of window IDs in the tag page.
windows List of |window-ID|s in the tag page.
gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()*
Get the value of a tab-local variable {varname} in tab page
@@ -4553,7 +4555,7 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
Note that {varname} must be the name without "w:".
Tabs are numbered starting with one. For the current tabpage
use |getwinvar()|.
{winnr} can be the window number or the window ID.
{winnr} can be the window number or the |window-ID|.
When {winnr} is zero the current window is used.
This also works for a global option, buffer-local option and
window-local option, but it doesn't work for a global variable
@@ -4581,22 +4583,22 @@ getwininfo([{winid}]) *getwininfo()*
is returned. If the window does not exist the result is an
empty list.
Without an information about all the windows in all the tab
pages is returned.
Without {winid} information about all the windows in all the
tab pages is returned.
Each List item is a Dictionary with the following entries:
bufnum number of buffer in the window
bufnr number of buffer in the window
height window height
loclist 1 if showing a location list
{only with the +quickfix feature}
nr window number
options dictionary of window local options
quickfix 1 if quickfix or location list window
{only with the +quickfix feature}
tpnr tab page number
tabnr tab page number
variables dictionary of window local variables
width window width
winid window ID
winid |window-ID|
winnr window number
getwinvar({winnr}, {varname} [, {def}]) *getwinvar()*
Like |gettabwinvar()| for the current tabpage.
@@ -4704,7 +4706,7 @@ haslocaldir([{winnr} [, {tabnr}]]) *haslocaldir()*
With {winnr} use this window in the current tab page.
With {winnr} and {tabnr} use the window in the specified tab
page.
{winnr} can be the window number or the window ID.
{winnr} can be the window number or the |window-ID|.
Return 0 if the arguments are invalid.
hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
@@ -5994,6 +5996,9 @@ printf({fmt}, {expr1} ...) *printf()*
s The text of the String argument is used. If a
precision is specified, no more bytes than the number
specified are used.
If the argument is not a String type, it is
automatically converted to text with the same format
as ":echo".
*printf-S*
S The text of the String argument is used. If a
precision is specified, no more display cells than the
@@ -6671,7 +6676,7 @@ setline({lnum}, {text}) *setline()*
setloclist({nr}, {list}[, {action}[, {what}]]) *setloclist()*
Create or replace or add to the location list for window {nr}.
{nr} can be the window number or the window ID.
{nr} can be the window number or the |window-ID|.
When {nr} is zero the current window is used.
For a location list window, the displayed location list is
@@ -6859,7 +6864,7 @@ settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()*
{val}.
Tabs are numbered starting with one. For the current tabpage
use |setwinvar()|.
{winnr} can be the window number or the window ID.
{winnr} can be the window number or the |window-ID|.
When {winnr} is zero the current window is used.
This also works for a global or local buffer option, but it
doesn't work for a global or local buffer variable.
@@ -7967,11 +7972,11 @@ wildmenumode() *wildmenumode()*
win_findbuf({bufnr}) *win_findbuf()*
Returns a list with window IDs for windows that contain buffer
{bufnr}. When there is none the list is empty.
Returns a list with |window-ID|s for windows that contain
buffer {bufnr}. When there is none the list is empty.
win_getid([{win} [, {tab}]]) *win_getid()*
Get the window ID for the specified window.
Get the |window-ID| for the specified window.
When {win} is missing use the current window.
With {win} this is the window number. The top window has
number 1.
@@ -7996,7 +8001,7 @@ win_id2win({expr}) *win_id2win()*
*winbufnr()*
winbufnr({nr}) The result is a Number, which is the number of the buffer
associated with window {nr}. {nr} can be the window number or
the window ID.
the |window-ID|.
When {nr} is zero, the number of the buffer in the current
window is returned.
When window {nr} doesn't exist, -1 is returned.
@@ -8010,7 +8015,7 @@ wincol() The result is a Number, which is the virtual column of the
winheight({nr}) *winheight()*
The result is a Number, which is the height of window {nr}.
{nr} can be the window number or the window ID.
{nr} can be the window number or the |window-ID|.
When {nr} is zero, the height of the current window is
returned. When window {nr} doesn't exist, -1 is returned.
An existing window always has a height of zero or more.
@@ -8090,7 +8095,7 @@ winsaveview() Returns a |Dictionary| that contains information to restore
winwidth({nr}) *winwidth()*
The result is a Number, which is the width of window {nr}.
{nr} can be the window number or the window ID.
{nr} can be the window number or the |window-ID|.
When {nr} is zero, the width of the current window is
returned. When window {nr} doesn't exist, -1 is returned.
An existing window always has a width of zero or more.
+5 -3
View File
@@ -1,4 +1,4 @@
*sign.txt* For Vim version 7.4. Last change: 2016 Aug 12
*sign.txt* For Vim version 7.4. Last change: 2016 Aug 17
VIM REFERENCE MANUAL by Gordon Prieur
@@ -197,7 +197,9 @@ JUMPING TO A SIGN *:sign-jump* *E157*
If the file isn't displayed in window and the current file can
not be |abandon|ed this fails.
:sign jump {id} buffer={nr}
Same, but use buffer {nr}.
:sign jump {id} buffer={nr} *E934*
Same, but use buffer {nr}. This fails if buffer {nr} does not
have a name.
vim:tw=78:ts=8:ft=help:norl:
+5
View File
@@ -4523,6 +4523,7 @@ E930 eval.txt /*E930*
E931 message.txt /*E931*
E932 eval.txt /*E932*
E933 eval.txt /*E933*
E934 sign.txt /*E934*
E94 windows.txt /*E94*
E95 message.txt /*E95*
E96 diff.txt /*E96*
@@ -5121,6 +5122,7 @@ beval_lnum-variable eval.txt /*beval_lnum-variable*
beval_text-variable eval.txt /*beval_text-variable*
beval_winid-variable eval.txt /*beval_winid-variable*
beval_winnr-variable eval.txt /*beval_winnr-variable*
binary-number eval.txt /*binary-number*
bitwise-function usr_41.txt /*bitwise-function*
blockwise-examples visual.txt /*blockwise-examples*
blockwise-operators visual.txt /*blockwise-operators*
@@ -7887,10 +7889,12 @@ print-options print.txt /*print-options*
print.txt print.txt /*print.txt*
printf() eval.txt /*printf()*
printf-% eval.txt /*printf-%*
printf-B eval.txt /*printf-B*
printf-E eval.txt /*printf-E*
printf-G eval.txt /*printf-G*
printf-S eval.txt /*printf-S*
printf-X eval.txt /*printf-X*
printf-b eval.txt /*printf-b*
printf-c eval.txt /*printf-c*
printf-d eval.txt /*printf-d*
printf-e eval.txt /*printf-e*
@@ -9297,6 +9301,7 @@ win_id2win() eval.txt /*win_id2win()*
winbufnr() eval.txt /*winbufnr()*
wincol() eval.txt /*wincol()*
window windows.txt /*window*
window-ID windows.txt /*window-ID*
window-contents intro.txt /*window-contents*
window-exit editing.txt /*window-exit*
window-functions usr_41.txt /*window-functions*
+12 -12
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2016 Aug 16
*todo.txt* For Vim version 7.4. Last change: 2016 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,7 +34,11 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Rename 'langnoremap' to 'langremap' and invert the value?
+channel:
- Check that raw mode does NL-NUL conversion.
- Implement |job-term| ?
- Channel test fails with Motif. Sometimes kills the X11 server.
- When a message in the queue but there is no callback, drop it after a while?
Add timestamp to queued messages and callbacks with ID, remove after a
@@ -99,12 +103,17 @@ Regexp problems:
- Search for /\%d0\+ causes error E363 in a file with consecutive NUL
characters. (Christian Brabandt, 2016 Jun 7)
getbufinfo() may return a lot of data. Select what to return?
remove variables, does that help?
json_encode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
What if there is an invalid character?
Should json_encode()/json_decode() restrict recursiveness?
Or avoid recursiveness.
Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
Once .exe with updated installer is available: Add remark to download page
about /S and /D options (Ken Takata, 2016 Apr 13)
Or point to nightly builds: https://github.com/vim/vim-win32-installer/releases
@@ -133,6 +142,8 @@ Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)
Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18)
cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
Syntax highlighting for messages with RFC3339 timestamp (#946)
Did maintainer reply?
@@ -146,27 +157,16 @@ Jul 25, #948)
'hlsearch' interferes with a Conceal match. (Rom Grk, 2016 Aug 9)
's$^$\=capture("s/^//gn")' locks Vim in sandbox mode (#950)
Patch by Christian Brabandt, 2016 Jul 27.
MS-Windows: use WS_HIDE instead of SW_SHOWMINNOACTIVE in os_win32.c?
Otherwise task flickers in taskbar.
Should make ":@r" handle line continuation. (Cesar Romani, 2016 Jun 26)
Also for ":@.".
Patch to make printf() convert to string for %s items. (Ken Takata, 2016 Aug
1)
Patch to add %b to printf(). (Ozaki Kiichi, 2016 Aug 5)
Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)
Patch on issue #728 by Christian Brabandt, 2016 Apr 7. Update with test: Apr 8.
Explanation Apr 12.
Might be related to:
Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not
handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10)
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
+4 -603
View File
@@ -1,4 +1,4 @@
*version8.txt* For Vim version 8.0. Last change: 2016 Aug 16
*version8.txt* For Vim version 8.0. Last change: 2016 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -318,7 +318,6 @@ New and extended functions: ~
New Vim variables: ~
|v:vim_did_enter| Set when VimEnter autocommands are triggered
|v:beval_winid| Window ID of the window where the mouse pointer is
|v:completed_item| complete items for the most recently completed word
|v:errors| errors found by assert functions
@@ -343,7 +342,7 @@ New Vim variables: ~
|v:t_string| value of String type
|v:testing| must be set before using `test_garbagecollect_now()`
|v:true| a Number with value one
|v:vim_did_enter| zero until most of startup is done
|v:vim_did_enter| set just before VimEnter autocommands are triggered
New autocommand events: ~
@@ -12668,605 +12667,7 @@ Solution: Use vim_strcat() instead of strcat().
Files: src/quickfix.c
Patch 7.4.2065
Problem: Compiler warns for uninitialzed variable. (John Marriott)
Solution: Set lnum to the right value.
Files: src/evalfunc.c
Patch 7.4.2066
Problem: getcompletion() not well tested.
Solution: Add more testing.
Files: src/testdir/test_cmdline.vim
Patch 7.4.2067
Problem: Compiler warning for char/char_u conversion. (Tony Mechelynck)
Inefficient code.
Solution: Use more lines to fill with spaces. (Nikolai Pavlov) Add type cast.
Files: src/quickfix.c
Patch 7.4.2068
Problem: Not all arguments of trunc_string() are tested. Memory access
error when running the message tests.
Solution: Add another test case. (Yegappan Lakshmanan) Make it easy to run
unittests with valgrind. Fix the access error.
Files: src/message.c, src/message_test.c, src/Makefile
Patch 7.4.2069
Problem: spell.c is too big.
Solution: Split it in spell file handling and spell checking.
Files: src/spell.c, src/spellfile.c, src/spell.h, src/Makefile,
src/proto/spell.pro, src/proto/spellfile.pro, src/proto.h
Filelist, src/Make_bc5.mak, src/Make_cyg_ming.mak,
src/Make_dice.mak, src/Make_ivc.mak, src/Make_manx.mak,
src/Make_morph.mak, src/Make_mvc.mak, src/Make_sas.mak
Patch 7.4.2070 (after 7.4.2069)
Problem: Missing change to include file.
Solution: Include the spell header file.
Files: src/vim.h
Patch 7.4.2071
Problem: The return value of type() is difficult to use.
Solution: Define v:t_ constants. (Ken Takata)
Files: runtime/doc/eval.txt, src/eval.c, src/evalfunc.c,
src/testdir/test_channel.vim, src/testdir/test_viml.vim, src/vim.h
Patch 7.4.2072
Problem: substitute() does not support a Funcref argument.
Solution: Support a Funcref like it supports a string starting with "\=".
Files: src/evalfunc.c, src/regexp.c, src/eval.c, src/proto/eval.pro,
src/proto/regexp.pro, src/testdir/test_expr.vim
Patch 7.4.2073
Problem: rgb.txt is read for every color name.
Solution: Load rgb.txt once. (Christian Brabandt) Add a test.
Files: runtime/rgb.txt, src/term.c, src/testdir/test_syn_attr.vim
Patch 7.4.2074
Problem: One more place using a dummy variable.
Solution: Use offsetof(). (Ken Takata)
Files: src/userfunc.c
Patch 7.4.2075
Problem: No autocommand event to initialize a window or tab page.
Solution: Add WinNew and TabNew events. (partly by Felipe Morales)
Files: src/fileio.c, src/window.c, src/vim.h,
src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt
Patch 7.4.2076
Problem: Syntax error when dict has '>' key.
Solution: Check for endchar. (Ken Takata)
Files: src/userfunc.c, src/testdir/test_lambda.vim
Patch 7.4.2077
Problem: Cannot update 'tabline' when a tab was closed.
Solution: Add the TabClosed autocmd event. (partly by Felipe Morales)
Files: src/fileio.c, src/window.c, src/vim.h,
src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt
Patch 7.4.2078
Problem: Running checks in po directory fails.
Solution: Add colors used in syntax.c to the builtin color table.
Files: src/term.c
Patch 7.4.2079
Problem: Netbeans test fails on non-Unix systems.
Solution: Only do the permission check on Unix systems.
Files: src/testdir/test_netbeans.vim
Patch 7.4.2080
Problem: When using PERROR() on some systems assert_fails() does not see
the error.
Solution: Make PERROR() always report the error.
Files: src/vim.h, src/message.c, src/proto/message.pro
Patch 7.4.2081
Problem: Line numbers in the error list are not always adjusted.
Solution: Set b_has_qf_entry properly. (Yegappan Lakshmanan)
Files: src/quickfix.c, src/structs.h, src/testdir/test_quickfix.vim
Patch 7.4.2082
Problem: Not much test coverage for digraphs.
Solution: Add a new style digraph test. (Christian Brabandt)
Files: src/Makefile, src/testdir/test_alot.vim,
src/testdir/test_digraph.vim
Patch 7.4.2083
Problem: Coverity complains about not restoring a value.
Solution: Restore the value, although it's not really needed. Change return
to jump to cleanup, might leak memory.
Files: src/userfunc.c
Patch 7.4.2084
Problem: New digraph test makes testing hang.
Solution: Don't set "nocp".
Files: src/testdir/test_digraph.vim
Patch 7.4.2085
Problem: Digraph tests fails on some systems.
Solution: Run it separately and set 'encoding' early.
Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim,
src/testdir/test_digraph.vim
Patch 7.4.2086
Problem: Using the system default encoding makes tests unpredictable.
Solution: Always use utf-8 or latin1 in the new style tests. Remove setting
encoding and scriptencoding where it is not needed.
Files: src/testdir/runtest.vim, src/testdir/test_channel.vim,
src/testdir/test_digraph.vim, src/testdir/test_expand_dllpath.vim,
src/testdir/test_expr_utf8.vim, src/testdir/test_json.vim,
src/testdir/test_matchadd_conceal_utf8.vim,
src/testdir/test_regexp_utf8.vim, src/testdir/test_visual.vim,
src/testdir/test_alot_utf8.vim,
Patch 7.4.2087
Problem: Digraph code test coverage is still low.
Solution: Add more tests. (Christian Brabandt)
Files: src/testdir/test_digraph.vim
Patch 7.4.2088 (after 7.4.2087)
Problem: Keymap test fails with normal features.
Solution: Bail out if the keymap feature is not supported.
Files: src/testdir/test_digraph.vim
Patch 7.4.2089
Problem: Color handling of X11 GUIs is too complicated.
Solution: Simplify the code. Use RGBA where appropriate. (Kazunobu
Kuriyama)
Files: src/gui.h, src/gui_beval.c, src/gui_gtk_x11.c, src/netbeans.c
Patch 7.4.2090
Problem: Using submatch() in a lambda passed to substitute() is verbose.
Solution: Use a static list and pass it as an optional argument to the
function. Fix memory leak.
Files: src/structs.h, src/list.c, src/userfunc.c, src/channel.c,
src/eval.c, src/evalfunc.c, src/ex_cmds2.c, src/regexp.c,
src/proto/list.pro, src/proto/userfunc.pro,
src/testdir/test_expr.vim, runtime/doc/eval.txt
Patch 7.4.2091
Problem: Coverity reports a resource leak when out of memory.
Solution: Close the file before returning.
Files: src/term.c
Patch 7.4.2092
Problem: GTK 3 build fails with older GTK version.
Solution: Check the pango version. (Kazunobu Kuriyama)
Files: src/gui_beval.c
Patch 7.4.2093
Problem: Netbeans test fails once in a while. Leaving log file behind.
Solution: Add it to the list of flaky tests. Disable logfile.
Files: src/testdir/runtest.vim, src/testdir/test_channel.vim
Patch 7.4.2094
Problem: The color allocation in X11 is overly complicated.
Solution: Remove find_closest_color(), XAllocColor() already does this.
(Kazunobu Kuriyama)
Files: src/gui_x11.c
Patch 7.4.2095
Problem: Man test fails when run with the GUI.
Solution: Adjust for different behavior of GUI. Add assert_inrange().
Files: src/eval.c, src/evalfunc.c, src/proto/eval.pro,
src/testdir/test_assert.vim, src/testdir/test_man.vim,
runtime/doc/eval.txt
Patch 7.4.2096
Problem: Lambda functions show up with completion.
Solution: Don't show lambda functions. (Ken Takata)
Files: src/userfunc.c, src/testdir/test_cmdline.vim
Patch 7.4.2097
Problem: Warning from 64 bit compiler.
Solution: use size_t instead of int. (Mike Williams)
Files: src/message.c
Patch 7.4.2098
Problem: Text object tests are old style.
Solution: Turn them into new style tests. (James McCoy, closes #941)
Files: src/testdir/Make_all.mak, src/testdir/test_textobjects.in,
src/testdir/test_textobjects.ok, src/testdir/test_textobjects.vim,
src/Makefile
Patch 7.4.2099
Problem: When a keymap is active only "(lang)" is displayed. (Ilya
Dogolazky)
Solution: Show the keymap name. (Dmitri Vereshchagin, closes #933)
Files: src/buffer.c, src/proto/screen.pro, src/screen.c
Patch 7.4.2100
Problem: "cgn" and "dgn" do not work correctly with a single character
match and the replacement includes the searched pattern. (John
Beckett)
Solution: If the match is found in the wrong column try in the next column.
Turn the test into new style. (Christian Brabandt)
Files: src/search.c, src/testdir/Make_all.mak, src/Makefile,
src/testdir/test53.in, src/testdir/test53.ok,
src/testdir/test_gn.vim
Patch 7.4.2101
Problem: Looping over windows, buffers and tab pages is inconsistent.
Solution: Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan)
Files: src/buffer.c, src/diff.c, src/edit.c, src/eval.c, src/evalfunc.c,
src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/fileio.c,
src/globals.h, src/gui.c, src/gui_mac.c, src/if_lua.c,
src/if_mzsch.c, src/if_perl.xs, src/if_ruby.c, src/if_tcl.c,
src/main.c, src/mark.c, src/memfile.c, src/memline.c, src/misc1.c,
src/move.c, src/netbeans.c, src/normal.c, src/option.c,
src/quickfix.c, src/screen.c, src/spell.c, src/term.c,
src/window.c, src/workshop.c
Patch 7.4.2102 (after 7.4.2101)
Problem: Tiny build with GUI fails.
Solution: Revert one FOR_ALL_ change.
Files: src/gui.c
Patch 7.4.2103
Problem: Can't have "augroup END" right after ":au!".
Solution: Check for the bar character before the command argument.
Files: src/fileio.c, src/testdir/test_autocmd.vim,
runtime/doc/autocmd.txt
Patch 7.4.2104
Problem: Code duplication when unreferencing a function.
Solution: De-duplicate.
Files: src/userfunc.c
Patch 7.4.2105
Problem: Configure reports default features to be "normal" while it is
"huge".
Solution: Change the default text. Build with newer autoconf.
Files: src/configure.in, src/auto/configure
Patch 7.4.2106
Problem: Clang warns about missing field in initializer.
Solution: Define COMMA and use it. (Kazunobu Kuriyama)
Files: src/ex_cmds.c, src/globals.h, src/vim.h
Patch 7.4.2107 (after 7.4.2106)
Problem: Misplaced equal sign.
Solution: Remove it.
Files: src/globals.h
Patch 7.4.2108
Problem: Netbeans test is flaky.
Solution: Wait for the cursor to be positioned.
Files: src/testdir/test_netbeans.vim
Patch 7.4.2109
Problem: Setting 'display' to "lastline" is a drastic change, while
omitting it results in lots of "@" lines.
Solution: Add "truncate" to show "@@@" for a truncated line.
Files: src/option.h, src/screen.c, runtime/doc/options.txt
Patch 7.4.2110
Problem: When there is an CmdUndefined autocmd then the error for a missing
command is E464 instead of E492. (Manuel Ortega)
Solution: Don't let the pointer be NULL.
Files: src/ex_docmd.c, src/testdir/test_usercommands.vim
Patch 7.4.2111
Problem: Defaults are very conservative.
Solution: Move settings from vimrc_example.vim to defaults.vim. Load
defaults.vim if no .vimrc was found.
Files: src/main.c, src/version.c, src/os_amiga.h, src/os_dos.h,
src/os_mac.h, src/os_unix.h, src/feature.h, src/Makefile,
runtime/vimrc_example.vim, runtime/defaults.vim,
runtime/evim.vim, Filelist, runtime/doc/starting.txt
Patch 7.4.2112
Problem: getcompletion(.., 'dir') returns a match with trailing "*" when
there are no matches. (Chdiza)
Solution: Return an empty list when there are no matches. Add a trailing
slash to directories. (Yegappan Lakshmanan) Add tests for no
matches. (closes #947)
Files: src/evalfunc.c, src/testdir/test_cmdline.vim
Patch 7.4.2113
Problem: Test for undo is flaky.
Solution: Turn it into a new style test. Use test_settime() to avoid
flakyness.
Files: src/Makefile, src/undo.c, src/testdir/test61.in,
src/testdir/test61.ok, src/testdir/test_undo.vim,
src/testdir/test_undolevels.vim, src/testdir/Make_all.mak,
src/testdir/test_alot.vim
Patch 7.4.2114
Problem: Tiny build fails.
Solution: Always include vim_time().
Files: src/ex_cmds.c
Patch 7.4.2115
Problem: Loading defaults.vim with -C argument.
Solution: Don't load the defaults script with -C argument. Test sourcing
the defaults script. Set 'display' to "truncate".
Files: src/main.c, src/Makefile, runtime/defaults.vim,
src/testdir/test_startup.vim, src/testdir/Make_all.mak
Patch 7.4.2116
Problem: The default vimrc for Windows is very conservative.
Solution: Use the defaults.vim in the Windows installer.
Files: src/dosinst.c
Patch 7.4.2117
Problem: Deleting an augroup that still has autocmds does not give a
warning. The next defined augroup takes its place.
Solution: Give a warning and prevent the index being used for another group
name.
Files: src/fileio.c, src/testdir/test_autocmd.vim
Patch 7.4.2118
Problem: Mac: can't build with tiny features.
Solution: Don't define FEAT_CLIPBOARD unconditionally. (Kazunobu Kuriyama)
Files: src/vim.h
Patch 7.4.2119
Problem: Closures are not supported.
Solution: Capture variables in lambdas from the outer scope. (Yasuhiro
Matsumoto, Ken Takata)
Files: runtime/doc/eval.txt, src/eval.c, src/ex_cmds2.c, src/globals.h,
src/proto/eval.pro, src/proto/userfunc.pro,
src/testdir/test_lambda.vim, src/userfunc.c
Patch 7.4.2120
Problem: User defined functions can't be a closure.
Solution: Add the "closure" argument. Allow using :unlet on a bound
variable. (Yasuhiro Matsumoto, Ken Takata)
Files: runtime/doc/eval.txt, src/testdir/test_lambda.vim, src/userfunc.c,
src/eval.c src/proto/userfunc.pro
Patch 7.4.2121
Problem: No easy way to check if lambda and closure are supported.
Solution: Add the +lambda feature.
Files: src/evalfunc.c, src/version.c, src/testdir/test_lambda.vim
Patch 7.4.2122 (after 7.4.2118)
Problem: Mac: don't get +clipboard in huge build.
Solution: Move #define down below including feature.h
Files: src/vim.h
Patch 7.4.2123
Problem: No new style test for diff mode.
Solution: Add a test. Check that folds are in sync.
Files: src/Makefile, src/testdir/test_diffmode.vim,
src/testdir/Make_all.mak, src/testdir/test47.in,
src/testdir/test47.ok
Patch 7.4.2124
Problem: diffmode test leaves files behind, breaking another test.
Solution: Delete the files.
Files: src/testdir/test_diffmode.vim
Patch 7.4.2125
Problem: Compiler warning for loss of data.
Solution: Add a type cast. (Christian Brabandt)
Files: src/message.c
Patch 7.4.2126
Problem: No tests for :diffget and :diffput
Solution: Add tests.
Files: src/testdir/test_diffmode.vim
Patch 7.4.2127
Problem: The short form of ":noswapfile" is ":noswap" instead of ":nos".
(Kent Sibilev)
Solution: Only require three characters. Add a test for the short forms.
Files: src/ex_docmd.c, src/testdir/test_usercommands.vim
Patch 7.4.2128
Problem: Memory leak when saving for undo fails.
Solution: Free allocated memory. (Hirohito Higashi)
Files: src/ex_cmds.c
Patch 7.4.2129
Problem: Memory leak when using timer_start(). (Dominique Pelle)
Solution: Don't copy the callback when using a partial.
Files: src/evalfunc.c
Patch 7.4.2130
Problem: Pending timers cause false memory leak reports.
Solution: Free all timers on exit.
Files: src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/misc2.c
Patch 7.4.2131
Problem: More memory leaks when using partial, e.g. for "exit-cb".
Solution: Don't copy the callback when using a partial.
Files: src/channel.c
Patch 7.4.2132
Problem: test_partial has memory leaks reported.
Solution: Add a note about why this happens.
Files: src/testdir/test_partial.vim
Patch 7.4.2133 (after 7.4.2128)
Problem: Can't build with tiny features.
Solution: Add #ifdef.
Files: src/ex_cmds.c
Patch 7.4.2134
Problem: No error for using function() badly.
Solution: Check for passing wrong function name. (Ken Takata)
Files: src/eval.c, src/evalfunc.c, src/proto/userfunc.pro,
src/testdir/test_expr.vim, src/userfunc.c, src/vim.h
Patch 7.4.2135
Problem: Various tiny issues.
Solution: Update comments, white space, etc.
Files: src/diff.c, src/digraph.c, src/testdir/test80.in,
src/testdir/test_channel.vim, src/testdir/Makefile,
runtime/menu.vim, src/INSTALLpc.txt, src/xpm/README.txt
Patch 7.4.2136
Problem: Closure function fails.
Solution: Don't reset uf_scoped when it points to another funccal.
Files: src/userfunc.c, src/testdir/test_lambda.vim
Patch 7.4.2137
Problem: Using function() with a name will find another function when it is
redefined.
Solution: Add funcref(). Refer to lambda using a partial. Fix several
reference counting issues.
Files: src/vim.h, src/structs.h, src/userfunc.c, src/eval.c,
src/evalfunc.c, src/channel.c, src/proto/eval.pro,
src/proto/userfunc.pro, src/if_mzsch.c, src/regexp.c, src/misc2.c,
src/if_py_both.h, src/testdir/test_expr.vim, runtime/doc/eval.txt
Patch 7.4.2138
Problem: Test 86 and 87 fail.
Solution: Call func_ref() also for regular functions.
Files: src/if_py_both.h
Patch 7.4.2139
Problem: :delfunction causes illegal memory access.
Solution: Correct logic when deciding to free a function.
Files: src/userfunc.c, src/testdir/test_lambda.vim
Patch 7.4.2140
Problem: Tiny build fails.
Solution: Add dummy typedefs.
Files: src/structs.h
Patch 7.4.2141
Problem: Coverity reports bogus NULL check.
Solution: When checking for a variable in the funccal scope don't pass the
varname.
Files: src/userfunc.c, src/proto/userfunc.pro, src/eval.c
Patch 7.4.2142
Problem: Leaking memory when redefining a function.
Solution: Don't increment the function reference count when it's found by
name. Don't remove the wrong function from the hashtab. More
reference counting fixes.
Files: src/structs.h, src/userfunc.c
Patch 7.4.2143
Problem: A funccal is garbage collected while it can still be used.
Solution: Set copyID in all referenced functions. Do not list lambda
functions with ":function".
Files: src/userfunc.c, src/proto/userfunc.pro, src/eval.c,
src/testdir/test_lambda.vim
Patch 7.4.2144
Problem: On MS-Windows quickfix does not handle a line with 1023 bytes
ending in CR-LF properly.
Solution: Don't consider CR a line break. (Ken Takata)
Files: src/quickfix.c
Patch 7.4.2145
Problem: Win32: Using CreateThread/ExitThread is not safe.
Solution: Use _beginthreadex and return from the thread. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.2146
Problem: Not enough testing for popup menu. CTRL-E does not always work
properly.
Solution: Add more tests. When using CTRL-E check if the popup menu is
visible. (Christian Brabandt)
Files: src/edit.c, src/testdir/test_popup.vim
Patch 7.4.2147 (after 7.4.2146)
Problem: test_alot fails.
Solution: Close window.
Files: src/testdir/test_popup.vim
Patch 7.4.2148
Problem: Not much testing for cscope.
Solution: Add a test that uses the cscope program. (Christian Brabandt)
Files: src/testdir/test_cscope.vim
Patch 7.4.2149
Problem: If a test leaves a window open a following test may fail.
Solution: Always close extra windows after running a test.
Files: src/testdir/runtest.vim, src/testdir/test_popup.vim
Patch 7.4.2150
Problem: Warning with MinGW 64. (John Marriott)
Solution: Change return type. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.2151
Problem: Quickfix test fails on MS-Windows.
Solution: Close the help window. (Christian Brabandt)
Files: src/testdir/test_quickfix.vim
Patch 7.4.2152
Problem: No proper translation of messages with a count.
Solution: Use ngettext(). (Sergey Alyoshin)
Files: src/evalfunc.c, src/fold.c, src/os_win32.c, src/screen.c, src/vim.h
Patch 7.4.2153
Problem: GUI test isn't testing much.
Solution: Turn into a new style test. Execute a shell command.
Files: src/testdir/test_gui.vim, src/testdir/test16.in,
src/testdir/test16.ok, src/testdir/Make_all.mak, src/Makefile,
src/testdir/Make_vms.mms
Patch 7.4.2154
Problem: Test_communicate() fails sometimes.
Solution: Add it to the flaky tests.
Files: src/testdir/runtest.vim
Patch 7.4.2155
Problem: Quotes make GUI test fail on MS-Windows.
Solution: Remove quotes, strip white space.
Files: src/testdir/test_gui.vim
Patch 7.4.2156
Problem: Compiler warning.
Solution: Add type cast. (Ken Takata, Mike Williams)
Files: src/os_win32.c
Patch 7.4.2157
Problem: Test_job_start_fails() is expected to report memory leaks, making
it hard to see other leaks in test_partial.
Solution: Move Test_job_start_fails() to a separate test file.
Files: src/testdir/test_partial.vim, src/testdir/test_job_fails.vim,
src/Makefile, src/testdir/Make_all.mak
Patch 7.4.2158
Problem: Result of getcompletion('', 'cscope') depends on previous
completion. (Christian Brabandt)
Solution: Call set_context_in_cscope_cmd().
Files: src/evalfunc.c, src/testdir/test_cmdline.vim
Patch 7.4.2159
Problem: Insufficient testing for cscope.
Solution: Add more tests. (Dominique Pelle)
Files: src/testdir/test_cscope.vim
Patch 7.4.2160
Problem: setmatches() mixes up values. (Nikolai Pavlov)
Solution: Save the string instead of reusing a shared buffer.
Files: src/dict.c, src/evalfunc.c, src/testdir/test_expr.vim,
Patch 7.4.2161 (after 7.4.2160)
Problem: Expression test fails without conceal feature.
Solution: Only check "conceal" with the conceal feature.
Files: src/testdir/test_expr.vim
Patch 7.4.2162
Problem: Result of getcompletion('', 'sign') depends on previous
completion.
Solution: Call set_context_in_sign_cmd(). (Dominique Pelle)
Files: src/evalfunc.c, src/testdir/test_cmdline.vim
Patch 7.4.2063
Problem: eval.c is still too big.
Solution: Split off internal functions to evalfunc.c.
Files: src/eval.c, src/evalfunc.c, src/list.c, src/proto.h,
src/globals.h, src/vim.h, src/proto/eval.pro,
src/proto/evalfunc.pro, src/proto/list.pro, src/Makefile, Filelist,
src/Make_bc5.mak, src/Make_cyg_ming.mak, src/Make_dice.mak,
src/Make_ivc.mak, src/Make_manx.mak, src/Make_morph.mak,
src/Make_mvc.mak, src/Make_sas.mak
Patch 7.4.2064
Problem: Coverity warns for possible buffer overflow.
Solution: Use vim_strcat() instead of strcat().
Files: src/quickfix.c
Patch 7.4.2065
Problem: Compiler warns for uninitialzed variable. (John Marriott)
Problem: Compiler warns for uninitialized variable. (John Marriott)
Solution: Set lnum to the right value.
Files: src/evalfunc.c
@@ -14155,7 +13556,7 @@ Files: src/gui_gtk_x11.c
Patch 7.4.2215
Problem: It's not easy to find out if a window is a quickfix or location
list window.
Solution: Add "loclist" and "quickfix" entries to the dict returnec by
Solution: Add "loclist" and "quickfix" entries to the dict returned by
getwininfo(). (Yegappan Lakshmanan)
Files: runtime/doc/eval.txt, src/evalfunc.c,
src/testdir/test_bufwintabinfo.vim
+2 -2
View File
@@ -1,4 +1,4 @@
*windows.txt* For Vim version 7.4. Last change: 2016 Jul 30
*windows.txt* For Vim version 7.4. Last change: 2016 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -75,7 +75,7 @@ places where a Normal mode command can't be used or is inconvenient.
The main Vim window can hold several split windows. There are also tab pages
|tab-page|, each of which can hold multiple windows.
*window-ID*
Each window has a unique identifier called the window ID. This identifier
will not change within a Vim session. The |win_getid()| and |win_id2tabwin()|
functions can be used to convert between the window/tab number and the
+2 -3
View File
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Jul 21
" Last Change: 2016 Aug 18
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -779,8 +779,7 @@ au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom
" Git
au BufNewFile,BufRead COMMIT_EDITMSG setf gitcommit
au BufNewFile,BufRead MERGE_MSG setf gitcommit
au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
au BufNewFile,BufRead *.git/modules/*/config setf gitconfig
au BufNewFile,BufRead */.config/git/config setf gitconfig
+4 -6
View File
@@ -1,9 +1,9 @@
" Vim indent file
" Language: Tera Term Language (TTL)
" Based on Tera Term Version 4.86
" Based on Tera Term Version 4.92
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-teraterm
" Last Change: 2015 Jun 4
" Last Change: 2016 Aug 17
" Filenames: *.ttl
" License: VIM License
@@ -25,9 +25,7 @@ endif
" The shiftwidth() function is relatively new.
" Don't require it to exist.
if exists('*shiftwidth')
function s:sw() abort
return shiftwidth()
endfunction
let s:sw = function('shiftwidth')
else
function s:sw() abort
return &shiftwidth
@@ -48,7 +46,7 @@ function! GetTeraTermIndent(lnum)
let l:ind = l:previ
if l:prevl =~ '^\s*if\>.*\<then\s*$'
if l:prevl =~ '^\s*if\>.*\<then\>'
" previous line opened a block
let l:ind += s:sw()
endif
+94
View File
@@ -0,0 +1,94 @@
" Vim Keymap file for russian characters, layout 'jcuken', Mac variant
" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
" Maintainer: Anton Fonarev <avfonarev@gmail.com>
" Last Changed: 2016 August 17
" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8
let b:keymap_name = "ru"
loadkeymap
\| Ё CYRILLIC CAPITAL LETTER IO
\\ ё CYRILLIC SMALL LETTER IO
F А CYRILLIC CAPITAL LETTER A
< Б CYRILLIC CAPITAL LETTER BE
D В CYRILLIC CAPITAL LETTER VE
U Г CYRILLIC CAPITAL LETTER GHE
L Д CYRILLIC CAPITAL LETTER DE
T Е CYRILLIC CAPITAL LETTER IE
: Ж CYRILLIC CAPITAL LETTER ZHE
P З CYRILLIC CAPITAL LETTER ZE
B И CYRILLIC CAPITAL LETTER I
Q Й CYRILLIC CAPITAL LETTER SHORT I
R К CYRILLIC CAPITAL LETTER KA
K Л CYRILLIC CAPITAL LETTER EL
V М CYRILLIC CAPITAL LETTER EM
Y Н CYRILLIC CAPITAL LETTER EN
J О CYRILLIC CAPITAL LETTER O
G П CYRILLIC CAPITAL LETTER PE
H Р CYRILLIC CAPITAL LETTER ER
C С CYRILLIC CAPITAL LETTER ES
N Т CYRILLIC CAPITAL LETTER TE
E У CYRILLIC CAPITAL LETTER U
A Ф CYRILLIC CAPITAL LETTER EF
{ Х CYRILLIC CAPITAL LETTER HA
W Ц CYRILLIC CAPITAL LETTER TSE
X Ч CYRILLIC CAPITAL LETTER CHE
I Ш CYRILLIC CAPITAL LETTER SHA
O Щ CYRILLIC CAPITAL LETTER SHCHA
} Ъ CYRILLIC CAPITAL LETTER HARD SIGN
S Ы CYRILLIC CAPITAL LETTER YERU
M Ь CYRILLIC CAPITAL LETTER SOFT SIGN
\" Э CYRILLIC CAPITAL LETTER E
> Ю CYRILLIC CAPITAL LETTER YU
Z Я CYRILLIC CAPITAL LETTER YA
f а CYRILLIC SMALL LETTER A
, б CYRILLIC SMALL LETTER BE
d в CYRILLIC SMALL LETTER VE
u г CYRILLIC SMALL LETTER GHE
l д CYRILLIC SMALL LETTER DE
t е CYRILLIC SMALL LETTER IE
; ж CYRILLIC SMALL LETTER ZHE
p з CYRILLIC SMALL LETTER ZE
b и CYRILLIC SMALL LETTER I
q й CYRILLIC SMALL LETTER SHORT I
r к CYRILLIC SMALL LETTER KA
k л CYRILLIC SMALL LETTER EL
v м CYRILLIC SMALL LETTER EM
y н CYRILLIC SMALL LETTER EN
j о CYRILLIC SMALL LETTER O
g п CYRILLIC SMALL LETTER PE
h р CYRILLIC SMALL LETTER ER
c с CYRILLIC SMALL LETTER ES
n т CYRILLIC SMALL LETTER TE
e у CYRILLIC SMALL LETTER U
a ф CYRILLIC SMALL LETTER EF
[ х CYRILLIC SMALL LETTER HA
w ц CYRILLIC SMALL LETTER TSE
x ч CYRILLIC SMALL LETTER CHE
i ш CYRILLIC SMALL LETTER SHA
o щ CYRILLIC SMALL LETTER SHCHA
] ъ CYRILLIC SMALL LETTER HARD SIGN
s ы CYRILLIC SMALL LETTER YERU
m ь CYRILLIC SMALL LETTER SOFT SIGN
' э CYRILLIC SMALL LETTER E
. ю CYRILLIC SMALL LETTER YU
z я CYRILLIC SMALL LETTER YA
§ >
± <
@ "
# №
$ %
% :
^ ,
& .
* ;
` ]
~ [
+7 -7
View File
@@ -2,7 +2,8 @@
" Language: reStructuredText documentation format
" Maintainer: Marshall Ward <marshall.ward@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016-06-17
" Website: https://github.com/marshallward/vim-restructuredtext
" Latest Revision: 2016-08-18
if exists("b:current_syntax")
finish
@@ -89,7 +90,7 @@ function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_righ
\ ' start=+' . a:char_left . '\zs' . a:start .
\ '\ze[^[:space:]' . a:char_right . a:start[strlen(a:start) - 1] . ']+' .
\ a:middle .
\ ' end=+\S' . a:end . '\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+'
\ ' end=+\S' . a:end . '\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+'
endfunction
function! s:DefineInlineMarkup(name, start, middle, end)
@@ -103,6 +104,8 @@ function! s:DefineInlineMarkup(name, start, middle, end)
call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\[', '\]')
call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '{', '}')
call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '<', '>')
call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '', '')
" TODO: Additional Unicode Pd, Po, Pi, Pf, Ps characters
call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\%(^\|\s\|[/:]\)', '')
@@ -186,11 +189,8 @@ hi def link rstHyperlinkTarget String
hi def link rstExDirective String
hi def link rstSubstitutionDefinition rstDirective
hi def link rstDelimiter Delimiter
hi def link rstEmphasis Underlined
hi def link rstStrongEmphasis Special
" TODO Append these atttributes somehow
"hi def rstEmphasis term=italic cterm=italic gui=italic
"hi def rstStrongEmphasis term=bold cterm=bold gui=bold
hi def rstEmphasis ctermfg=13 term=italic cterm=italic gui=italic
hi def rstStrongEmphasis ctermfg=1 term=bold cterm=bold gui=bold
hi def link rstInterpretedTextOrHyperlinkReference Identifier
hi def link rstInlineLiteral String
hi def link rstSubstitutionReference PreProc
+3 -3
View File
@@ -1,9 +1,9 @@
" Vim syntax file
" Language: Tera Term Language (TTL)
" Based on Tera Term Version 4.86
" Based on Tera Term Version 4.92
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-teraterm
" Last Change: 2015 Jun 24
" Last Change: 2016 Aug 17
" Filenames: *.ttl
" License: VIM License
@@ -33,7 +33,7 @@ syn keyword ttlOperator and or xor not
syn match ttlVar "\<groupmatchstr\d\>"
syn match ttlVar "\<param\d\>"
syn keyword ttlVar inputstr matchstr paramcnt result timeout mtimeout
syn keyword ttlVar inputstr matchstr paramcnt params result timeout mtimeout
syn match ttlLine nextgroup=ttlStatement "^"
+2 -1
View File
@@ -2058,7 +2058,7 @@ test1 \
test30 test31 test32 test33 test34 test36 test37 test38 test39 \
test40 test41 test42 test43 test44 test45 test46 test48 test49 \
test50 test51 test52 test53 test54 test55 test56 test57 test58 test59 \
test60 test62 test64 test65 test66 test67 test68 test69 \
test60 test64 test65 test66 test67 test68 test69 \
test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 \
test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 \
test90 test91 test92 test93 test94 test95 test97 test98 test99 \
@@ -2139,6 +2139,7 @@ test_arglist \
test_syn_attr \
test_syntax \
test_tabline \
test_tabpage \
test_tagjump \
test_textobjects \
test_timers \
+5 -5
View File
@@ -3931,7 +3931,7 @@ get_buffer_info(buf_T *buf)
if (dict == NULL)
return NULL;
dict_add_nr_str(dict, "nr", buf->b_fnum, NULL);
dict_add_nr_str(dict, "bufnr", buf->b_fnum, NULL);
dict_add_nr_str(dict, "name", 0L,
buf->b_ffname != NULL ? buf->b_ffname : (char_u *)"");
dict_add_nr_str(dict, "lnum", buflist_findlnum(buf), NULL);
@@ -5008,7 +5008,7 @@ get_tabpage_info(tabpage_T *tp, int tp_idx)
if (dict == NULL)
return NULL;
dict_add_nr_str(dict, "nr", tp_idx, NULL);
dict_add_nr_str(dict, "tabnr", tp_idx, NULL);
l = list_alloc();
if (l != NULL)
@@ -5132,12 +5132,12 @@ get_win_info(win_T *wp, short tpnr, short winnr)
if (dict == NULL)
return NULL;
dict_add_nr_str(dict, "tpnr", tpnr, NULL);
dict_add_nr_str(dict, "nr", winnr, NULL);
dict_add_nr_str(dict, "tabnr", tpnr, NULL);
dict_add_nr_str(dict, "winnr", winnr, NULL);
dict_add_nr_str(dict, "winid", wp->w_id, NULL);
dict_add_nr_str(dict, "height", wp->w_height, NULL);
dict_add_nr_str(dict, "width", wp->w_width, NULL);
dict_add_nr_str(dict, "bufnum", wp->w_buffer->b_fnum, NULL);
dict_add_nr_str(dict, "bufnr", wp->w_buffer->b_fnum, NULL);
#ifdef FEAT_QUICKFIX
dict_add_nr_str(dict, "quickfix", bt_quickfix(wp->w_buffer), NULL);
-1
View File
@@ -50,7 +50,6 @@ SCRIPTS_ALL = \
test56.out \
test57.out \
test60.out \
test62.out \
test64.out \
test65.out \
test66.out \
+3 -2
View File
@@ -3,11 +3,12 @@ This directory contains tests for various Vim features.
If it makes sense, add a new test method to an already existing file. You may
want to separate it from other tests with comment lines.
The numbered tests are older, we have switched to named tests.
The numbered tests are older, we have switched to named tests. Don't add any
more numbered tests.
And then you can choose between a new style test, which is a Vim script, or an
old style test, which uses Normal mode commands. Use a new style test if you
can.
can. Use an old style test when it needs to run without the +eval feature.
TO ADD A NEW STYLE TEST:
-205
View File
@@ -1,205 +0,0 @@
Tests for tab pages
STARTTEST
:so small.vim
:lang C
:" Simple test for opening and closing a tab page
:tabnew
:let nr = tabpagenr()
:q
:call append(line('$'), 'tab page ' . nr)
:unlet nr
:"
:" Open three tab pages and use ":tabdo"
:0tabnew
:1tabnew
:$tabnew
:tabdo call append(line('$'), 'this is tab page ' . tabpagenr())
:tabclose! 2
:tabrewind
:let line1 = getline('$')
:undo
:q
:tablast
:let line2 = getline('$')
:q!
:call append(line('$'), line1)
:call append(line('$'), line2)
:unlet line1 line2
:"
:" Test for settabvar() and gettabvar() functions. Open a new tab page and
:" set 3 variables to a number, string and a list. Verify that the variables
:" are correctly set.
:tabnew
:tabfirst
:call settabvar(2, 'val_num', 100)
:call settabvar(2, 'val_str', 'SetTabVar test')
:call settabvar(2, 'val_list', ['red', 'blue', 'green'])
:"
:let test_status = 'gettabvar: fail'
:if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green']
: let test_status = 'gettabvar: pass'
:endif
:call append(line('$'), test_status)
:"
:tabnext 2
:let test_status = 'settabvar: fail'
:if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green']
: let test_status = 'settabvar: pass'
:endif
:tabclose
:call append(line('$'), test_status)
:"
:if has('gui') || has('clientserver')
:" Test for ":tab drop exist-file" to keep current window.
:sp test1
:tab drop test1
:let test_status = 'tab drop 1: fail'
:if tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1
: let test_status = 'tab drop 1: pass'
:endif
:close
:call append(line('$'), test_status)
:"
:"
:" Test for ":tab drop new-file" to keep current window of tabpage 1.
:split
:tab drop newfile
:let test_status = 'tab drop 2: fail'
:if tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1
: let test_status = 'tab drop 2: pass'
:endif
:tabclose
:q
:call append(line('$'), test_status)
:"
:"
:" Test for ":tab drop multi-opend-file" to keep current tabpage and window.
:new test1
:tabnew
:new test1
:tab drop test1
:let test_status = 'tab drop 3: fail'
:if tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1
: let test_status = 'tab drop 3: pass'
:endif
:tabclose
:q
:call append(line('$'), test_status)
:else
:" :drop not supported
:call append(line('$'), 'tab drop 1: pass')
:call append(line('$'), 'tab drop 2: pass')
:call append(line('$'), 'tab drop 3: pass')
:endif
:"
:"
:for i in range(9) | tabnew | endfor
1gt
:$put =tabpagenr()
:tabmove 5
:$put =tabpagenr()
:.tabmove
:$put =tabpagenr()
:tabmove -
:$put =tabpagenr()
:tabmove +
:$put =tabpagenr()
:tabmove -2
:$put =tabpagenr()
:tabmove +4
:$put =tabpagenr()
:tabmove
:$put =tabpagenr()
:tabmove -20
:$put =tabpagenr()
:tabmove +20
:$put =tabpagenr()
:0tabmove
:$put =tabpagenr()
:$tabmove
:$put =tabpagenr()
:tabmove 0
:$put =tabpagenr()
:tabmove $
:$put =tabpagenr()
:3tabmove
:$put =tabpagenr()
:7tabmove 5
:$put =tabpagenr()
:let a='No error caught.'
:try
:tabmove foo
:catch E474
:let a='E474 caught.'
:endtry
:$put =a
:"
:" Test autocommands
:tabonly!
:let g:r=[]
:command -nargs=1 -bar C :call add(g:r, '=== ' . <q-args> . ' ===')|<args>
:function Test()
let hasau=has('autocmd')
if hasau
autocmd TabEnter * :call add(g:r, 'TabEnter')
autocmd WinEnter * :call add(g:r, 'WinEnter')
autocmd BufEnter * :call add(g:r, 'BufEnter')
autocmd TabLeave * :call add(g:r, 'TabLeave')
autocmd WinLeave * :call add(g:r, 'WinLeave')
autocmd BufLeave * :call add(g:r, 'BufLeave')
endif
let t:a='a'
C tab split
if !hasau
let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter']
endif
let t:a='b'
C tabnew
if !hasau
let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter']
endif
let t:a='c'
call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
let w:a='a'
C vsplit
if !hasau
let g:r+=['WinLeave', 'WinEnter']
endif
let w:a='a'
let tabn=tabpagenr()
let winr=range(1, winnr('$'))
C tabnext 1
if !hasau
let g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
endif
call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
if hasau
augroup TabDestructive
autocmd TabEnter * :C tabnext 2 | C tabclose 3
augroup END
C tabnext 3
let g:r+=[tabpagenr().'/'.tabpagenr('$')]
autocmd! TabDestructive TabEnter
C tabnew
C tabnext 1
autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3
C tabnext 3
let g:r+=[tabpagenr().'/'.tabpagenr('$')]
else
let g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",]
endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST
Results:
-95
View File
@@ -1,95 +0,0 @@
Results:
tab page 2
this is tab page 3
this is tab page 1
this is tab page 4
gettabvar: pass
settabvar: pass
tab drop 1: pass
tab drop 2: pass
tab drop 3: pass
1
5
5
4
5
3
7
10
1
10
1
10
1
10
4
5
E474 caught.
=== tab split ===
WinLeave
TabLeave
WinEnter
TabEnter
=== tabnew ===
WinLeave
TabLeave
WinEnter
TabEnter
BufLeave
BufEnter
a b c
=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') ===
2 4 6
=== vsplit ===
WinLeave
WinEnter
=== tabnext 1 ===
BufLeave
WinLeave
TabLeave
WinEnter
TabEnter
BufEnter
a a
=== call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') ===
2 4
=== tabnext 3 ===
BufLeave
WinLeave
TabLeave
WinEnter
TabEnter
=== tabnext 2 ===
=== tabclose 3 ===
2/2
=== tabnew ===
WinLeave
TabLeave
WinEnter
TabEnter
BufLeave
BufEnter
=== tabnext 1 ===
BufLeave
WinLeave
TabLeave
WinEnter
TabEnter
BufEnter
=== tabnext 3 ===
BufLeave
WinLeave
TabLeave
WinEnter
TabEnter
=== tabnext 2 ===
BufLeave
WinLeave
TabLeave
WinEnter
TabEnter
=== tabnext 2 ===
=== tabclose 3 ===
BufEnter
=== tabclose 3 ===
2/2
+1
View File
@@ -34,6 +34,7 @@ source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
+1 -1
View File
@@ -56,4 +56,4 @@ func Test_backspace_option()
set nocompatible viminfo+=nviminfo
endfunc
" vim: tabstop=2 shiftwidth=0 expandtab
" vim: shiftwidth=2 sts=2 expandtab
+6 -6
View File
@@ -17,7 +17,7 @@ function Test_getbufwintabinfo()
set tabstop&vim
let b:editor = 'vim'
let l = getbufinfo('%')
call assert_equal(bufnr('%'), l[0].nr)
call assert_equal(bufnr('%'), l[0].bufnr)
call assert_equal(8, l[0].options.tabstop)
call assert_equal('vim', l[0].variables.editor)
call assert_notequal(-1, index(l[0].windows, bufwinid('%')))
@@ -46,25 +46,25 @@ function Test_getbufwintabinfo()
tabfirst
let winlist = getwininfo()
call assert_equal(5, len(winlist))
call assert_equal(winbufnr(2), winlist[1].bufnum)
call assert_equal(winbufnr(2), winlist[1].bufnr)
call assert_equal(winheight(2), winlist[1].height)
call assert_equal(1, winlist[2].nr)
call assert_equal(1, winlist[2].winnr)
if has('signs')
call assert_equal('auto', winlist[0].options.signcolumn)
endif
call assert_equal(2, winlist[3].tpnr)
call assert_equal(2, winlist[3].tabnr)
call assert_equal('green', winlist[2].variables.signal)
call assert_equal(winwidth(1), winlist[0].width)
call assert_equal(w4_id, winlist[3].winid)
let winfo = getwininfo(w5_id)[0]
call assert_equal(2, winfo.tpnr)
call assert_equal(2, winfo.tabnr)
call assert_equal([], getwininfo(3))
call settabvar(1, 'space', 'build')
let tablist = gettabinfo()
call assert_equal(2, len(tablist))
call assert_equal(3, len(tablist[1].windows))
call assert_equal(2, tablist[1].nr)
call assert_equal(2, tablist[1].tabnr)
call assert_equal('build', tablist[0].variables.space)
call assert_equal(w2_id, tablist[0].windows[0])
call assert_equal([], gettabinfo(3))
+1 -1
View File
@@ -458,4 +458,4 @@ func! Test_digraph_cmndline()
call assert_equal("€", s)
endfunc
" vim: tabstop=2 shiftwidth=0 sts=-1 expandtab
" vim: shiftwidth=2 sts=2 expandtab
+1 -1
View File
@@ -90,4 +90,4 @@ func Test_gn_command()
sil! %d _
endfu
" vim: tabstop=2 shiftwidth=0 expandtab
" vim: shiftwidth=2 sts=2 expandtab
+1 -1
View File
@@ -150,4 +150,4 @@ func Test_help_complete()
endtry
endfunc
" vim: et sw=2:
" vim: shiftwidth=2 sts=2 expandtab
+1 -1
View File
@@ -757,4 +757,4 @@ func Test_normal_increment_03()
endfunc
" vim: tabstop=2 shiftwidth=2 expandtab
" vim: shiftwidth=2 sts=2 expandtab
+1 -1
View File
@@ -27,4 +27,4 @@ func Test_increment_dbcs_1()
call assert_equal([0, 1, 10, 0], getpos('.'))
endfunc
" vim: shiftwidth=2 expandtab
" vim: shiftwidth=2 sts=2 expandtab
+1 -1
View File
@@ -186,4 +186,4 @@ func Test_matchaddpos()
set hlsearch&
endfunc
" vim: et ts=2 sw=2
" vim: shiftwidth=2 sts=2 expandtab
-1
View File
@@ -38,4 +38,3 @@ func Test_recursive_substitute()
call setwinvar(1, 'myvar', 1)
bwipe!
endfunc
+189
View File
@@ -0,0 +1,189 @@
" Tests for tabpage
function Test_tabpage()
bw!
" Simple test for opening and closing a tab page
tabnew
call assert_equal(2, tabpagenr())
quit
" Open three tab pages and use ":tabdo"
0tabnew
1tabnew
$tabnew
tabdo call append(line('$'), tabpagenr())
tabclose! 2
tabrewind
let line1 = getline('$')
undo
q
tablast
let line2 = getline('$')
q!
call append(line('$'), line1)
call append(line('$'), line2)
unlet line1 line2
call assert_equal(['', '3', '1', '4'], getline(1, '$'))
"
" Test for settabvar() and gettabvar() functions. Open a new tab page and
" set 3 variables to a number, string and a list. Verify that the variables
" are correctly set.
tabnew
tabfirst
call settabvar(2, 'val_num', 100)
call settabvar(2, 'val_str', 'SetTabVar test')
call settabvar(2, 'val_list', ['red', 'blue', 'green'])
"
call assert_true(gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green'])
tabnext 2
call assert_true(t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'])
tabclose
if has('gui') || has('clientserver')
" Test for ":tab drop exist-file" to keep current window.
sp test1
tab drop test1
call assert_true(tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1)
close
"
"
" Test for ":tab drop new-file" to keep current window of tabpage 1.
split
tab drop newfile
call assert_true(tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1)
tabclose
q
"
"
" Test for ":tab drop multi-opend-file" to keep current tabpage and window.
new test1
tabnew
new test1
tab drop test1
call assert_true(tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1)
tabclose
q
endif
"
"
for i in range(9) | tabnew | endfor
normal! 1gt
call assert_equal(1, tabpagenr())
tabmove 5
call assert_equal(5, tabpagenr())
.tabmove
call assert_equal(5, tabpagenr())
tabmove -
call assert_equal(4, tabpagenr())
tabmove +
call assert_equal(5, tabpagenr())
tabmove -2
call assert_equal(3, tabpagenr())
tabmove +4
call assert_equal(7, tabpagenr())
tabmove
call assert_equal(10, tabpagenr())
tabmove -20
call assert_equal(1, tabpagenr())
tabmove +20
call assert_equal(10, tabpagenr())
0tabmove
call assert_equal(1, tabpagenr())
$tabmove
call assert_equal(10, tabpagenr())
tabmove 0
call assert_equal(1, tabpagenr())
tabmove $
call assert_equal(10, tabpagenr())
3tabmove
call assert_equal(4, tabpagenr())
7tabmove 5
call assert_equal(5, tabpagenr())
call assert_fails("tabmove foo", 'E474:')
endfunc
" Test autocommands
function Test_tabpage_with_autocmd()
if !has('autocmd')
return
endif
tabonly!
command -nargs=1 -bar C :call add(s:li, '=== ' . <q-args> . ' ===')|<args>
augroup TestTabpageGroup
au!
autocmd TabEnter * call add(s:li, 'TabEnter')
autocmd WinEnter * call add(s:li, 'WinEnter')
autocmd BufEnter * call add(s:li, 'BufEnter')
autocmd TabLeave * call add(s:li, 'TabLeave')
autocmd WinLeave * call add(s:li, 'WinLeave')
autocmd BufLeave * call add(s:li, 'BufLeave')
augroup END
let s:li = []
let t:a='a'
C tab split
call assert_equal(['=== tab split ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter'], s:li)
let s:li = []
let t:a='b'
C tabnew
call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'], s:li)
let t:a='c'
let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')) , '\s\+')
call assert_equal(['a', 'b', 'c'], s:li)
let s:li = []
C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
call assert_equal(["=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') ==="], s:li)
let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')) , '\s\+')
call assert_equal(['2', '4', '6'], s:li)
let s:li = []
let w:a='a'
C vsplit
call assert_equal(['=== vsplit ===', 'WinLeave', 'WinEnter'], s:li)
let s:li = []
let w:a='a'
let tabn=tabpagenr()
let winr=range(1, winnr('$'))
C tabnext 1
call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li)
let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+')
call assert_equal(['a', 'a'], s:li)
let s:li = []
C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+')
call assert_equal(['2', '4'], s:li)
augroup TabDestructive
autocmd TabEnter * :C tabnext 2 | C tabclose 3
augroup END
let s:li = []
C tabnext 3
call assert_equal(['=== tabnext 3 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ==='], s:li)
call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')])
autocmd! TabDestructive TabEnter
let s:li = []
C tabnew
call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'], s:li)
let s:li = []
C tabnext 1
call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li)
autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3
let s:li = []
C tabnext 3
call assert_equal(['=== tabnext 3 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ===', 'BufEnter', '=== tabclose 3 ==='], s:li)
call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')])
delcommand C
autocmd! TabDestructive
augroup! TabDestructive
autocmd! TestTabpageGroup
augroup! TestTabpageGroup
tabonly!
bw!
endfunction
" vim: shiftwidth=2 sts=2 expandtab
+1 -1
View File
@@ -7,4 +7,4 @@ func Test_ptag_with_notagstack()
set tagstack&vim
endfunc
" vim: sw=2 et
" vim: shiftwidth=2 sts=2 expandtab
+1 -1
View File
@@ -112,4 +112,4 @@ func Test_paused()
call assert_inrange(0, 10, slept)
endfunc
" vim: ts=2 sw=0 et
" vim: shiftwidth=2 sts=2 expandtab
+1 -1
View File
@@ -67,4 +67,4 @@ function Test_window_cmd_wincmd_gf()
augroup! test_window_cmd_wincmd_gf
endfunc
" vim: sw=2 et
" vim: shiftwidth=2 sts=2 expandtab
+6
View File
@@ -778,6 +778,12 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2228,
/**/
2227,
/**/
2226,
/**/
2225,
/**/