mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-07 15:37:14 +02:00
Merge remote-tracking branch 'vim/master'
This commit is contained in:
@@ -42,7 +42,16 @@ this autocmd might be useful:
|
||||
Replace "blue_sky" with the name of the colorscheme.
|
||||
|
||||
In case you want to tweak a colorscheme after it was loaded, check out the
|
||||
ColorScheme autocmd event.
|
||||
ColorScheme autocommand event.
|
||||
|
||||
To clean up just before loading another colorscheme, use the ColorSchemePre
|
||||
autocommand event. For example:
|
||||
let g:term_ansi_colors = ...
|
||||
augroup MyColorscheme
|
||||
au!
|
||||
au ColorSchemePre * unlet g:term_ansi_colors
|
||||
au ColorSchemePre * au! MyColorscheme
|
||||
augroup END
|
||||
|
||||
To customize a colorscheme use another name, e.g. "~/.vim/colors/mine.vim",
|
||||
and use `:runtime` to load the original colorscheme:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2018 Apr 19
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2018 Apr 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -347,6 +347,7 @@ Name triggered by ~
|
||||
when popup menu visible
|
||||
|TextYankPost| after text is yanked or deleted
|
||||
|
||||
|ColorSchemePre| before loading a color scheme
|
||||
|ColorScheme| after loading a color scheme
|
||||
|
||||
|RemoteReply| a reply from a server Vim was received
|
||||
@@ -562,6 +563,10 @@ ColorScheme After loading a color scheme. |:colorscheme|
|
||||
set, and <amatch> for the new colorscheme
|
||||
name.
|
||||
|
||||
*ColorSchemePre*
|
||||
ColorSchemePre Before loading a color scheme. |:colorscheme|
|
||||
Useful to setup removing things added by a
|
||||
color scheme, before another one is loaded.
|
||||
|
||||
*CompleteDone*
|
||||
CompleteDone After Insert mode completion is done. Either
|
||||
|
||||
@@ -175,12 +175,14 @@ CTRL-R CTRL-F *c_CTRL-R_CTRL-F* *c_<C-R>_<C-F>*
|
||||
CTRL-R CTRL-P *c_CTRL-R_CTRL-P* *c_<C-R>_<C-P>*
|
||||
CTRL-R CTRL-W *c_CTRL-R_CTRL-W* *c_<C-R>_<C-W>*
|
||||
CTRL-R CTRL-A *c_CTRL-R_CTRL-A* *c_<C-R>_<C-A>*
|
||||
CTRL-R CTRL-L *c_CTRL-R_CTRL-L* *c_<C-R>_<C-L>*
|
||||
Insert the object under the cursor:
|
||||
CTRL-F the Filename under the cursor
|
||||
CTRL-P the Filename under the cursor, expanded with
|
||||
'path' as in |gf|
|
||||
CTRL-W the Word under the cursor
|
||||
CTRL-A the WORD under the cursor; see |WORD|
|
||||
CTRL-L the line under the cursor
|
||||
|
||||
When 'incsearch' is set the cursor position at the end of the
|
||||
currently displayed match is used. With CTRL-W the part of
|
||||
@@ -192,8 +194,8 @@ CTRL-R CTRL-A *c_CTRL-R_CTRL-A* *c_<C-R>_<C-A>*
|
||||
|
||||
*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
|
||||
*c_CTRL-R_CTRL-O* *c_<C-R>_<C-O>*
|
||||
CTRL-R CTRL-R {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A}
|
||||
CTRL-R CTRL-O {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A}
|
||||
CTRL-R CTRL-R {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
|
||||
CTRL-R CTRL-O {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
|
||||
Insert register or object under the cursor. Works like
|
||||
|c_CTRL-R| but inserts the text literally. For example, if
|
||||
register a contains "xy^Hz" (where ^H is a backspace),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 8.0. Last change: 2018 Apr 18
|
||||
*develop.txt* For Vim version 8.0. Last change: 2018 Apr 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -182,7 +182,7 @@ The basic steps to make changes to the code:
|
||||
include the diff. Or create a pull request on github.
|
||||
|
||||
|
||||
C COMPILER *style-compiler*
|
||||
C COMPILER *style-compiler* *ANSI-C* *C89* *C99*
|
||||
|
||||
The minimal C compiler version supported is C89, also known as ANSI C.
|
||||
Later standards, such as C99, are not widely supported, or at least not 100%
|
||||
|
||||
+49
-35
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.0. Last change: 2018 Apr 20
|
||||
*eval.txt* For Vim version 8.0. Last change: 2018 Apr 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1548,10 +1548,12 @@ v:errmsg Last given error message. It's allowed to set this variable.
|
||||
: ... handle error
|
||||
< "errmsg" also works, for backwards compatibility.
|
||||
|
||||
*v:errors* *errors-variable*
|
||||
*v:errors* *errors-variable* *assert-return*
|
||||
v:errors Errors found by assert functions, such as |assert_true()|.
|
||||
This is a list of strings.
|
||||
The assert functions append an item when an assert fails.
|
||||
The return value indicates this: a one is returned if an item
|
||||
was added to v:errors, otherwise zero is returned.
|
||||
To remove old results make it empty: >
|
||||
:let v:errors = []
|
||||
< If v:errors is set to anything but a list it is made an empty
|
||||
@@ -2020,26 +2022,26 @@ argidx() Number current index in the argument list
|
||||
arglistid([{winnr} [, {tabnr}]]) Number argument list id
|
||||
argv({nr}) String {nr} entry of the argument list
|
||||
argv() List the argument list
|
||||
assert_beeps({cmd}) none assert {cmd} causes a beep
|
||||
assert_beeps({cmd}) Number assert {cmd} causes a beep
|
||||
assert_equal({exp}, {act} [, {msg}])
|
||||
none assert {exp} is equal to {act}
|
||||
Number assert {exp} is equal to {act}
|
||||
assert_equalfile({fname-one}, {fname-two})
|
||||
none assert file contents is equal
|
||||
Number assert file contents is equal
|
||||
assert_exception({error} [, {msg}])
|
||||
none assert {error} is in v:exception
|
||||
assert_fails({cmd} [, {error}]) none assert {cmd} fails
|
||||
Number assert {error} is in v:exception
|
||||
assert_fails({cmd} [, {error}]) Number assert {cmd} fails
|
||||
assert_false({actual} [, {msg}])
|
||||
none assert {actual} is false
|
||||
Number assert {actual} is false
|
||||
assert_inrange({lower}, {upper}, {actual} [, {msg}])
|
||||
none assert {actual} is inside the range
|
||||
Number assert {actual} is inside the range
|
||||
assert_match({pat}, {text} [, {msg}])
|
||||
none assert {pat} matches {text}
|
||||
Number assert {pat} matches {text}
|
||||
assert_notequal({exp}, {act} [, {msg}])
|
||||
none assert {exp} is not equal {act}
|
||||
Number assert {exp} is not equal {act}
|
||||
assert_notmatch({pat}, {text} [, {msg}])
|
||||
none assert {pat} not matches {text}
|
||||
assert_report({msg}) none report a test failure
|
||||
assert_true({actual} [, {msg}]) none assert {actual} is true
|
||||
Number assert {pat} not matches {text}
|
||||
assert_report({msg}) Number report a test failure
|
||||
assert_true({actual} [, {msg}]) Number assert {actual} is true
|
||||
asin({expr}) Float arc sine of {expr}
|
||||
atan({expr}) Float arc tangent of {expr}
|
||||
atan2({expr1}, {expr2}) Float arc tangent of {expr1} / {expr2}
|
||||
@@ -2593,12 +2595,13 @@ argv([{nr}]) The result is the {nr}th file in the argument list of the
|
||||
assert_beeps({cmd}) *assert_beeps()*
|
||||
Run {cmd} and add an error message to |v:errors| if it does
|
||||
NOT produce a beep or visual bell.
|
||||
Also see |assert_fails()|.
|
||||
Also see |assert_fails()| and |assert-return|.
|
||||
|
||||
*assert_equal()*
|
||||
assert_equal({expected}, {actual} [, {msg}])
|
||||
When {expected} and {actual} are not equal an error message is
|
||||
added to |v:errors|.
|
||||
added to |v:errors| and 1 is returned. Otherwise zero is
|
||||
returned |assert-return|.
|
||||
There is no automatic conversion, the String "4" is different
|
||||
from the Number 4. And the number 4 is different from the
|
||||
Float 4.0. The value of 'ignorecase' is not used here, case
|
||||
@@ -2614,13 +2617,14 @@ assert_equal({expected}, {actual} [, {msg}])
|
||||
assert_equalfile({fname-one}, {fname-two})
|
||||
When the files {fname-one} and {fname-two} do not contain
|
||||
exactly the same text an error message is added to |v:errors|.
|
||||
Also see |assert-return|.
|
||||
When {fname-one} or {fname-two} does not exist the error will
|
||||
mention that.
|
||||
Mainly useful with |terminal-diff|.
|
||||
|
||||
assert_exception({error} [, {msg}]) *assert_exception()*
|
||||
When v:exception does not contain the string {error} an error
|
||||
message is added to |v:errors|.
|
||||
message is added to |v:errors|. Also see |assert-return|.
|
||||
This can be used to assert that a command throws an exception.
|
||||
Using the error number, followed by a colon, avoids problems
|
||||
with translations: >
|
||||
@@ -2633,14 +2637,15 @@ assert_exception({error} [, {msg}]) *assert_exception()*
|
||||
|
||||
assert_fails({cmd} [, {error}]) *assert_fails()*
|
||||
Run {cmd} and add an error message to |v:errors| if it does
|
||||
NOT produce an error.
|
||||
NOT produce an error. Also see |assert-return|.
|
||||
When {error} is given it must match in |v:errmsg|.
|
||||
Note that beeping is not considered an error, and some failing
|
||||
commands only beep. Use |assert_beeps()| for those.
|
||||
|
||||
assert_false({actual} [, {msg}]) *assert_false()*
|
||||
When {actual} is not false an error message is added to
|
||||
|v:errors|, like with |assert_equal()|.
|
||||
|v:errors|, like with |assert_equal()|.
|
||||
Also see |assert-return|.
|
||||
A value is false when it is zero. When {actual} is not a
|
||||
number the assert fails.
|
||||
When {msg} is omitted an error in the form
|
||||
@@ -2649,7 +2654,7 @@ assert_false({actual} [, {msg}]) *assert_false()*
|
||||
assert_inrange({lower}, {upper}, {actual} [, {msg}]) *assert_inrange()*
|
||||
This asserts number values. When {actual} is lower than
|
||||
{lower} or higher than {upper} an error message is added to
|
||||
|v:errors|.
|
||||
|v:errors|. Also see |assert-return|.
|
||||
When {msg} is omitted an error in the form
|
||||
"Expected range {lower} - {upper}, but got {actual}" is
|
||||
produced.
|
||||
@@ -2657,7 +2662,7 @@ assert_inrange({lower}, {upper}, {actual} [, {msg}]) *assert_inrange()*
|
||||
*assert_match()*
|
||||
assert_match({pattern}, {actual} [, {msg}])
|
||||
When {pattern} does not match {actual} an error message is
|
||||
added to |v:errors|.
|
||||
added to |v:errors|. Also see |assert-return|.
|
||||
|
||||
{pattern} is used as with |=~|: The matching is always done
|
||||
like 'magic' was set and 'cpoptions' is empty, no matter what
|
||||
@@ -2678,18 +2683,22 @@ assert_match({pattern}, {actual} [, {msg}])
|
||||
assert_notequal({expected}, {actual} [, {msg}])
|
||||
The opposite of `assert_equal()`: add an error message to
|
||||
|v:errors| when {expected} and {actual} are equal.
|
||||
Also see |assert-return|.
|
||||
|
||||
*assert_notmatch()*
|
||||
assert_notmatch({pattern}, {actual} [, {msg}])
|
||||
The opposite of `assert_match()`: add an error message to
|
||||
|v:errors| when {pattern} matches {actual}.
|
||||
Also see |assert-return|.
|
||||
|
||||
assert_report({msg}) *assert_report()*
|
||||
Report a test failure directly, using {msg}.
|
||||
Always returns one.
|
||||
|
||||
assert_true({actual} [, {msg}]) *assert_true()*
|
||||
When {actual} is not true an error message is added to
|
||||
|v:errors|, like with |assert_equal()|.
|
||||
Also see |assert-return|.
|
||||
A value is TRUE when it is a non-zero number. When {actual}
|
||||
is not a number the assert fails.
|
||||
When {msg} is omitted an error in the form "Expected True but
|
||||
@@ -4728,6 +4737,7 @@ getqflist([{what}]) *getqflist()*
|
||||
list item is a dictionary with these entries:
|
||||
bufnr number of buffer that has the file name, use
|
||||
bufname() to get the name
|
||||
module module name
|
||||
lnum line number in the buffer (first line is 1)
|
||||
col column number (first column is 1)
|
||||
vcol |TRUE|: "col" is visual column
|
||||
@@ -4753,8 +4763,8 @@ getqflist([{what}]) *getqflist()*
|
||||
returns only the items listed in {what} as a dictionary. The
|
||||
following string items are supported in {what}:
|
||||
changedtick get the total number of changes made
|
||||
to the list
|
||||
context get the context stored with |setqflist()|
|
||||
to the list |quickfix-changedtick|
|
||||
context get the |quickfix-context|
|
||||
efm errorformat to use when parsing "lines". If
|
||||
not present, then the 'errorformat' option
|
||||
value is used.
|
||||
@@ -4763,15 +4773,15 @@ getqflist([{what}]) *getqflist()*
|
||||
current list or the list specified by "nr"
|
||||
idx index of the current entry in the list
|
||||
items quickfix list entries
|
||||
lines use 'errorformat' to extract items from a list
|
||||
of lines and return the resulting entries.
|
||||
Only a |List| type is accepted. The current
|
||||
quickfix list is not modified.
|
||||
lines parse a list of lines using 'efm' and return
|
||||
the resulting entries. Only a |List| type is
|
||||
accepted. The current quickfix list is not
|
||||
modified. See |quickfix-parse|.
|
||||
nr get information for this quickfix list; zero
|
||||
means the current quickfix list and "$" means
|
||||
the last quickfix list
|
||||
size number of entries in the quickfix list
|
||||
title get the list title
|
||||
title get the list title |quickfix-title|
|
||||
winid get the quickfix |window-ID|
|
||||
all all of the above quickfix properties
|
||||
Non-string items in {what} are ignored. To get the value of a
|
||||
@@ -4789,7 +4799,7 @@ getqflist([{what}]) *getqflist()*
|
||||
The returned dictionary contains the following entries:
|
||||
changedtick total number of changes made to the
|
||||
list |quickfix-changedtick|
|
||||
context context information stored with |setqflist()|.
|
||||
context quickfix list context. See |quickfix-context|
|
||||
If not present, set to "".
|
||||
id quickfix list ID |quickfix-ID|. If not
|
||||
present, set to 0.
|
||||
@@ -4804,12 +4814,11 @@ getqflist([{what}]) *getqflist()*
|
||||
to "".
|
||||
winid quickfix |window-ID|. If not present, set to 0
|
||||
|
||||
Examples: >
|
||||
Examples (See also |getqflist-examples|): >
|
||||
:echo getqflist({'all': 1})
|
||||
:echo getqflist({'nr': 2, 'title': 1})
|
||||
:echo getqflist({'lines' : ["F1:10:L10"]})
|
||||
<
|
||||
|
||||
getreg([{regname} [, 1 [, {list}]]]) *getreg()*
|
||||
The result is a String, which is the contents of register
|
||||
{regname}. Example: >
|
||||
@@ -5392,10 +5401,11 @@ job_getchannel({job}) *job_getchannel()*
|
||||
<
|
||||
{only available when compiled with the |+job| feature}
|
||||
|
||||
job_info({job}) *job_info()*
|
||||
job_info([{job}]) *job_info()*
|
||||
Returns a Dictionary with information about {job}:
|
||||
"status" what |job_status()| returns
|
||||
"channel" what |job_getchannel()| returns
|
||||
"cmd" List of command arguments used to start the job
|
||||
"process" process ID
|
||||
"tty_in" terminal input name, empty when none
|
||||
"tty_out" terminal output name, empty when none
|
||||
@@ -5403,6 +5413,8 @@ job_info({job}) *job_info()*
|
||||
"exit_cb" function to be called on exit
|
||||
"stoponexit" |job-stoponexit|
|
||||
|
||||
Without any arguments, returns a List with all Job objects.
|
||||
|
||||
job_setoptions({job}, {options}) *job_setoptions()*
|
||||
Change options for {job}. Supported are:
|
||||
"stoponexit" |job-stoponexit|
|
||||
@@ -7210,6 +7222,8 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()*
|
||||
buffer
|
||||
filename name of a file; only used when "bufnr" is not
|
||||
present or it is invalid.
|
||||
module name of a module; if given it will be used in
|
||||
quickfix error window instead of the filename.
|
||||
lnum line number in the file
|
||||
pattern search pattern used to locate the error
|
||||
col column number
|
||||
@@ -7258,7 +7272,7 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()*
|
||||
only the items listed in {what} are set. The first {list}
|
||||
argument is ignored. The following items can be specified in
|
||||
{what}:
|
||||
context any Vim type can be stored as a context
|
||||
context quickfix list context. See |quickfix-context|
|
||||
efm errorformat to use when parsing text from
|
||||
"lines". If this is not present, then the
|
||||
'errorformat' option value is used.
|
||||
@@ -7280,10 +7294,10 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()*
|
||||
list is modified, "id" should be used instead of "nr" to
|
||||
specify the list.
|
||||
|
||||
Examples: >
|
||||
Examples (See also |setqflist-examples|): >
|
||||
:call setqflist([], 'r', {'title': 'My search'})
|
||||
:call setqflist([], 'r', {'nr': 2, 'title': 'Errors'})
|
||||
:call setqflist([], 'a', {'id':myid, 'lines':["F1:10:L10"]})
|
||||
:call setqflist([], 'a', {'id':qfid, 'lines':["F1:10:L10"]})
|
||||
<
|
||||
Returns zero for success, -1 for failure.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.0. Last change: 2018 Apr 21
|
||||
*options.txt* For Vim version 8.0. Last change: 2018 Apr 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2140,7 +2140,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*cpo-E*
|
||||
E It is an error when using "y", "d", "c", "g~", "gu" or
|
||||
"gU" on an Empty region. The operators only work when
|
||||
at least one character is to be operate on. Example:
|
||||
at least one character is to be operated on. Example:
|
||||
This makes "y0" fail in the first column.
|
||||
*cpo-f*
|
||||
f When included, a ":read" command with a file name
|
||||
@@ -6245,7 +6245,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{only available when compiled with the |+reltime|
|
||||
feature}
|
||||
The time in milliseconds for redrawing the display. This applies to
|
||||
searching for patterns for 'hlsearch', |:match| highlighting an syntax
|
||||
searching for patterns for 'hlsearch', |:match| highlighting and syntax
|
||||
highlighting.
|
||||
When redrawing takes more than this many milliseconds no further
|
||||
matches will be highlighted.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 8.0. Last change: 2018 Mar 29
|
||||
*quickfix.txt* For Vim version 8.0. Last change: 2018 Apr 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -596,6 +596,96 @@ window ID of the quickfix window and location list window respectively (if
|
||||
present). Examples: >
|
||||
echo getqflist({'winid' : 1}).winid
|
||||
echo getloclist(2, {'winid' : 1}).winid
|
||||
<
|
||||
*getqflist-examples*
|
||||
The getqflist() and getloclist() functions can be used to get the various
|
||||
attributes of a quickfix and location list respectively. Some examples for
|
||||
using these functions are below:
|
||||
>
|
||||
" get the title of the current quickfix list
|
||||
:echo getqflist({'title' : 0}).title
|
||||
|
||||
" get the identifier of the current quickfix list
|
||||
:let qfid = getqflist({'id' : 0}).id
|
||||
|
||||
" get the index of the current quickfix list in the stack
|
||||
:let qfnum = getqflist({'nr' : 0}).nr
|
||||
|
||||
" get the items of a quickfix list specified by an identifier
|
||||
:echo getqflist({'id' : qfid, 'items' : 0}).items
|
||||
|
||||
" get the number of entries in a quickfix list specified by an id
|
||||
:echo getqflist({'id' : qfid, 'size' : 0}).size
|
||||
|
||||
" get the context of the third quickfix list in the stack
|
||||
:echo getqflist({'nr' : 3, 'context' : 0}).context
|
||||
|
||||
" get the number of quickfix lists in the stack
|
||||
:echo getqflist({'nr' : '$'}).nr
|
||||
|
||||
" get the number of times the current quickfix list is changed
|
||||
:echo getqflist({'changedtick' : 0}).changedtick
|
||||
|
||||
" get the current entry in a quickfix list specified by an identifier
|
||||
:echo getqflist({'id' : qfid, 'idx' : 0}).idx
|
||||
|
||||
" get all the quickfix list attributes using an identifier
|
||||
:echo getqflist({'id' : qfid, 'all' : 0})
|
||||
|
||||
" parse text from a List of lines and return a quickfix list
|
||||
:let myList = ["a.java:10:L10", "b.java:20:L20"]
|
||||
:echo getqflist({'lines' : myList}).items
|
||||
|
||||
" parse text using a custom 'efm' and return a quickfix list
|
||||
:echo getqflist({'lines' : ['a.c#10#Line 10'], 'efm':'%f#%l#%m'}).items
|
||||
|
||||
" get the quickfix list window id
|
||||
:echo getqflist({'winid' : 0}).winid
|
||||
|
||||
" get the context of the current location list
|
||||
:echo getloclist(0, {'context' : 0}).context
|
||||
|
||||
" get the location list window id of the third window
|
||||
:echo getloclist(3, {'winid' : 0}).winid
|
||||
<
|
||||
*setqflist-examples*
|
||||
The setqflist() and setloclist() functions can be used to set the various
|
||||
attributes of a quickfix and location list respectively. Some examples for
|
||||
using these functions are below:
|
||||
>
|
||||
" set the title of the current quickfix list
|
||||
:call setqflist([], 'a', {'title' : 'Mytitle'})
|
||||
|
||||
" set the context of a quickfix list specified by an identifier
|
||||
:call setqflist([], 'a', {'id' : qfid, 'context' : {'val' : 100}})
|
||||
|
||||
" create a new quickfix list from a command output
|
||||
:call setqflist([], ' ', {'lines' : systemlist('grep -Hn main *.c')})
|
||||
|
||||
" parse text using a custom efm and add to a particular quickfix list
|
||||
:call setqflist([], 'a', {'id' : qfid,
|
||||
\ 'lines' : ["a.c#10#L10", "b.c#20#L20"], 'efm':'%f#%l#%m'})
|
||||
|
||||
" add items to the quickfix list specified by an identifier
|
||||
:let newItems = [{'filename' : 'a.txt', 'lnum' : 10, 'text' : "Apple"},
|
||||
\ {'filename' : 'b.txt', 'lnum' : 20, 'text' : "Orange"}]
|
||||
:call setqflist([], 'a', {'id' : qfid, 'items' : newItems})
|
||||
|
||||
" free all the quickfix lists in the stack
|
||||
:call setqflist([], 'f')
|
||||
|
||||
" set the title of the fourth quickfix list
|
||||
:call setqflist([], 'a', {'nr' : 4, 'title' : 'SomeTitle'})
|
||||
|
||||
" create a new quickfix list at the end of the stack
|
||||
:call setqflist([], ' ', {'nr' : '$',
|
||||
\ 'lines' : systemlist('grep -Hn class *.java')})
|
||||
|
||||
" create a new location list from a command output
|
||||
:call setloclist(0, [], ' ', {'lines' : systemlist('grep -Hn main *.c')})
|
||||
|
||||
" replace the location list entries for the third window
|
||||
:call setloclist(3, [], 'r', {'items' : newItems})
|
||||
<
|
||||
=============================================================================
|
||||
3. Using more than one list of errors *quickfix-error-lists*
|
||||
@@ -1130,6 +1220,7 @@ you want to match case, add "\C" to the pattern |/\C|.
|
||||
Basic items
|
||||
|
||||
%f file name (finds a string)
|
||||
%o module name (finds a string)
|
||||
%l line number (finds a number)
|
||||
%c column number (finds a number representing character
|
||||
column of the error, (1 <tab> == 1 character column))
|
||||
@@ -1174,6 +1265,11 @@ conversion can be used to locate lines without a line number in the error
|
||||
output. Like the output of the "grep" shell command.
|
||||
When the pattern is present the line number will not be used.
|
||||
|
||||
The "%o" conversion specifies the module name in quickfix entry. If present
|
||||
it will be used in quickfix error window instead of the filename. The module
|
||||
name is used only for displaying purposes, the file name is used when jumping
|
||||
to the file.
|
||||
|
||||
Changing directory
|
||||
|
||||
The following uppercase conversion characters specify the type of special
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*scroll.txt* For Vim version 8.0. Last change: 2016 Nov 10
|
||||
*scroll.txt* For Vim version 8.0. Last change: 2018 Apr 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -32,6 +32,7 @@ seen):
|
||||
|
||||
*CTRL-E*
|
||||
CTRL-E Scroll window [count] lines downwards in the buffer.
|
||||
The text moves upwards on the screen.
|
||||
Mnemonic: Extra lines.
|
||||
|
||||
*CTRL-D*
|
||||
@@ -70,6 +71,7 @@ seen):
|
||||
|
||||
*CTRL-Y*
|
||||
CTRL-Y Scroll window [count] lines upwards in the buffer.
|
||||
The text moves downwards on the screen.
|
||||
Note: When using the MS-Windows key bindings CTRL-Y is
|
||||
remapped to redo.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.0. Last change: 2018 Jan 31
|
||||
*syntax.txt* For Vim version 8.0. Last change: 2018 Apr 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -4627,7 +4627,9 @@ in their own color.
|
||||
runtime colors/evening.vim
|
||||
hi Statement ctermfg=Blue guifg=Blue
|
||||
|
||||
< After the color scheme has been loaded the
|
||||
< Before the color scheme will be loaded the
|
||||
|ColorSchemePre| autocommand event is triggered.
|
||||
After the color scheme has been loaded the
|
||||
|ColorScheme| autocommand event is triggered.
|
||||
For info about writing a colorscheme file: >
|
||||
:edit $VIMRUNTIME/colors/README.txt
|
||||
|
||||
@@ -3570,6 +3570,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
@r eval.txt /*@r*
|
||||
A insert.txt /*A*
|
||||
ACL editing.txt /*ACL*
|
||||
ANSI-C develop.txt /*ANSI-C*
|
||||
ATTENTION usr_11.txt /*ATTENTION*
|
||||
Abbreviations map.txt /*Abbreviations*
|
||||
Actions.plist gui_mac.txt /*Actions.plist*
|
||||
@@ -3611,6 +3612,8 @@ BufWritePre autocmd.txt /*BufWritePre*
|
||||
C change.txt /*C*
|
||||
C-editing tips.txt /*C-editing*
|
||||
C-indenting indent.txt /*C-indenting*
|
||||
C89 develop.txt /*C89*
|
||||
C99 develop.txt /*C99*
|
||||
COMSPEC starting.txt /*COMSPEC*
|
||||
CR-used-for-NL pattern.txt /*CR-used-for-NL*
|
||||
CTRL-6 editing.txt /*CTRL-6*
|
||||
@@ -3745,6 +3748,7 @@ CmdlineLeave autocmd.txt /*CmdlineLeave*
|
||||
CmdwinEnter autocmd.txt /*CmdwinEnter*
|
||||
CmdwinLeave autocmd.txt /*CmdwinLeave*
|
||||
ColorScheme autocmd.txt /*ColorScheme*
|
||||
ColorSchemePre autocmd.txt /*ColorSchemePre*
|
||||
Colors.plist gui_mac.txt /*Colors.plist*
|
||||
Command-line cmdline.txt /*Command-line*
|
||||
Command-line-mode cmdline.txt /*Command-line-mode*
|
||||
@@ -5172,6 +5176,7 @@ asin() eval.txt /*asin()*
|
||||
asm.vim syntax.txt /*asm.vim*
|
||||
asm68k syntax.txt /*asm68k*
|
||||
asmh8300.vim syntax.txt /*asmh8300.vim*
|
||||
assert-return eval.txt /*assert-return*
|
||||
assert_beeps() eval.txt /*assert_beeps()*
|
||||
assert_equal() eval.txt /*assert_equal()*
|
||||
assert_equalfile() eval.txt /*assert_equalfile()*
|
||||
@@ -6678,6 +6683,7 @@ getmatches() eval.txt /*getmatches()*
|
||||
getpid() eval.txt /*getpid()*
|
||||
getpos() eval.txt /*getpos()*
|
||||
getqflist() eval.txt /*getqflist()*
|
||||
getqflist-examples quickfix.txt /*getqflist-examples*
|
||||
getreg() eval.txt /*getreg()*
|
||||
getregtype() eval.txt /*getregtype()*
|
||||
getscript pi_getscript.txt /*getscript*
|
||||
@@ -8454,6 +8460,7 @@ setloclist() eval.txt /*setloclist()*
|
||||
setmatches() eval.txt /*setmatches()*
|
||||
setpos() eval.txt /*setpos()*
|
||||
setqflist() eval.txt /*setqflist()*
|
||||
setqflist-examples quickfix.txt /*setqflist-examples*
|
||||
setreg() eval.txt /*setreg()*
|
||||
settabvar() eval.txt /*settabvar()*
|
||||
settabwinvar() eval.txt /*settabwinvar()*
|
||||
@@ -9829,6 +9836,7 @@ zz scroll.txt /*zz*
|
||||
{Visual} intro.txt /*{Visual}*
|
||||
{address} cmdline.txt /*{address}*
|
||||
{arglist} editing.txt /*{arglist}*
|
||||
{bufname} windows.txt /*{bufname}*
|
||||
{char1-char2} intro.txt /*{char1-char2}*
|
||||
{event} autocmd.txt /*{event}*
|
||||
{file} editing.txt /*{file}*
|
||||
|
||||
+25
-40
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.0. Last change: 2018 Apr 20
|
||||
*todo.txt* For Vim version 8.0. Last change: 2018 Apr 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -40,32 +40,31 @@ Terminal emulator window:
|
||||
|
||||
Problem with sudo. #2758
|
||||
|
||||
Make assert_functions return non-zero on failure. Make sure they add one
|
||||
entry to v:errors then.
|
||||
Use WaitForAssert() in tests: give error when failed.
|
||||
Remove asserts after WaitFor().
|
||||
|
||||
balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec
|
||||
20, #2481)
|
||||
Also see #2352, want better control over balloon, perhaps set the position.
|
||||
|
||||
Errors found with random data:
|
||||
heap-buffer-overflow in alist_add (#2472)
|
||||
|
||||
Patch to avoid bad highlighting caused by #if. (ichizok, #2731)
|
||||
Patch to shorten filenames in quickfix window. (Yegappan, 2018 Apr 28, #2851,
|
||||
closes #2846)
|
||||
|
||||
Patch to refactor qf_set_properties(). (Yegappan, Apr 17, #2812)
|
||||
|
||||
Patch for static analysis warnings. (Christian Brabandt, 2018 Apr 1, #2770)
|
||||
Ther are more here: https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
|
||||
|
||||
Patch to refactor ex_helpgrep. (Yegappan, #2766, 2018 Mar 30)
|
||||
Also in email, take the one with a test.
|
||||
|
||||
Allow for C99 features, decide which ones are OK:
|
||||
- "inline"
|
||||
- "long long"
|
||||
- flexible array members (change code to avoid FORTIFY_SOURCE problems)
|
||||
More warnings from static analysis:
|
||||
https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
|
||||
|
||||
Looks like an error for inserting register makes ":file other" not work.
|
||||
(Tom M, 2018 Mar 28) Reset did_emsg after inserting a register.
|
||||
Or at the top of the loop? (Apr 4)
|
||||
|
||||
Patch to fix mouse pointer after :tselect. (Hirohito Higashi, #2709)
|
||||
How to reproduce the problem? Remarks by Hirohito, Apr 8.
|
||||
|
||||
Patch to avoid job killed when I/O is disconnected. (ichizok, #2734)
|
||||
Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
|
||||
8, #1757) Now part of #2322. Or #2327? #1757 was re-opened, include that
|
||||
first.
|
||||
|
||||
When opening foo/x.txt and bar/x.txt get swap file warning. Should check the
|
||||
file name. (Juergen Weigert)
|
||||
@@ -80,14 +79,6 @@ Tests failing for "make testgui" with GTK:
|
||||
- Test_setbufvar_options()
|
||||
- Test_exit_callback_interval()
|
||||
|
||||
Mouse pointer sticks to stop shape. Only on Windows GUI? #2709
|
||||
|
||||
Patch to make log_tr() use variable arguments. (Ichizok, 2018 Mar 20, #2730)
|
||||
|
||||
balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec
|
||||
20, #2481)
|
||||
Also see #2352, want better control over balloon, perhaps set the position.
|
||||
|
||||
Try out background make plugin:
|
||||
https://github.com/AndrewVos/vim-make-background
|
||||
or asyncmake:
|
||||
@@ -96,18 +87,13 @@ or asyncmake:
|
||||
Add a ModeChanged autocommand that has an argument indicating the old and new
|
||||
mode. Also used for switching Terminal mode.
|
||||
|
||||
Cursor in status line after search. (#2530)
|
||||
Patch to shorten filenames in quickfix window. (Yegappan Lakshmanan, 2018
|
||||
Apr 27)
|
||||
|
||||
Add an option with file patterns, to be used when unloading a buffer: If there
|
||||
is a match, remove entries for the buffer from marks, jumplist, etc. To be
|
||||
used for git temp files.
|
||||
|
||||
Patch to fix that an empty buffer remains when using :argedit. (Christian,
|
||||
#2713) Updated patch.
|
||||
|
||||
Patch to fix interaction between 'virtualedit' and i_CTRL-G_j. (Christian
|
||||
Brabandt, #2743)
|
||||
|
||||
Cursor in wrong position when line wraps. (#2540)
|
||||
|
||||
Add an option similar to 'lazyredraw' to skip redrawing while executing a
|
||||
@@ -131,6 +117,9 @@ Jan 15, #2555)
|
||||
|
||||
Check argument of systemlist(). (Pavlov)
|
||||
|
||||
Patch to support 256 colors in Windows console. (Nobuhiro Takasaki, 2018 Apr
|
||||
25, #2821)
|
||||
|
||||
Patch to add reg_executing() and reg_recording(). (Hirohito Higashi, #2745)
|
||||
|
||||
No maintainer for Vietnamese translations.
|
||||
@@ -146,10 +135,6 @@ Should be supported with a flag.
|
||||
Starting job with cwd option, when the directory does not exist, gives a
|
||||
confusing error message. (Wang Shidong, 2018 Jan 2, #2519)
|
||||
|
||||
Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
|
||||
8, #1757) Now part of #2322. Or #2327? #1757 was re-opened, include that
|
||||
first.
|
||||
|
||||
Add the debug command line history to viminfo.
|
||||
|
||||
Avoid that "sign unplace id" does a redraw right away, esp. when there is a
|
||||
@@ -163,6 +148,9 @@ Add Makefiles to the runtime/spell directory tree, since nobody uses Aap.
|
||||
Will have to explain the manual steps (downloading the .aff and .dic files,
|
||||
applying the diff, etc.
|
||||
|
||||
Pasting a register in Visual mode cannot be repeated. (Mahmoud Al-Qudsi, 2018
|
||||
Apr 26, #2849)
|
||||
|
||||
User dictionary ~/.vim/spell/lang.utf-8.add not used for spell checking until a
|
||||
word is re-added to it. (Matej Cepl, 2018 Feb 6)
|
||||
|
||||
@@ -252,9 +240,6 @@ ml_get errors with buggy script. (Dominique, 2017 Apr 30)
|
||||
|
||||
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
|
||||
|
||||
Using CTRL-G j in insert mode in combination with 'virtualedit' doesn't work
|
||||
as expected. (Rich, 2018 March 23, #2743)
|
||||
|
||||
Patch to fix encoding in print document name (Yasuhiro Matsumoto, 2017 Dec 20,
|
||||
#2478)
|
||||
|
||||
|
||||
+16
-14
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 8.0. Last change: 2018 Mar 29
|
||||
*windows.txt* For Vim version 8.0. Last change: 2018 Apr 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1083,10 +1083,8 @@ list of buffers. |unlisted-buffer|
|
||||
<
|
||||
|
||||
:bdelete[!] {bufname} *E93* *E94*
|
||||
Like ":bdelete[!] [N]", but buffer given by name. Note that a
|
||||
buffer whose name is a number cannot be referenced by that
|
||||
name; use the buffer number instead. Insert a backslash
|
||||
before a space in a buffer name.
|
||||
Like ":bdelete[!] [N]", but buffer given by name, see
|
||||
|{bufname}|.
|
||||
|
||||
:bdelete[!] N1 N2 ...
|
||||
Do ":bdelete[!]" for buffer N1, N2, etc. The arguments can be
|
||||
@@ -1123,10 +1121,8 @@ list of buffers. |unlisted-buffer|
|
||||
into a loaded buffer.
|
||||
|
||||
:bunload[!] {bufname}
|
||||
Like ":bunload[!] [N]", but buffer given by name. Note that a
|
||||
buffer whose name is a number cannot be referenced by that
|
||||
name; use the buffer number instead. Insert a backslash
|
||||
before a space in a buffer name.
|
||||
Like ":bunload[!] [N]", but buffer given by name.
|
||||
Also see |{bufname}|.
|
||||
|
||||
:N,Mbunload[!] Do ":bunload[!]" for all buffers in the range N to M
|
||||
|inclusive|.
|
||||
@@ -1144,10 +1140,16 @@ list of buffers. |unlisted-buffer|
|
||||
list, without setting the 'buflisted' flag.
|
||||
Also see |+cmd|.
|
||||
|
||||
:[N]b[uffer][!] [+cmd] {bufname}
|
||||
Edit buffer for {bufname} from the buffer list. See
|
||||
|:buffer-!| for [!]. This will also edit a buffer that is not
|
||||
in the buffer list, without setting the 'buflisted' flag.
|
||||
:[N]b[uffer][!] [+cmd] {bufname} *{bufname}*
|
||||
Edit buffer for {bufname} from the buffer list. A partial
|
||||
name also works, so long as it is unique in the list of
|
||||
buffers.
|
||||
Note that a buffer whose name is a number cannot be referenced
|
||||
by that name; use the buffer number instead.
|
||||
Insert a backslash before a space in a buffer name.
|
||||
See |:buffer-!| for [!].
|
||||
This will also edit a buffer that is not in the buffer list,
|
||||
without setting the 'buflisted' flag.
|
||||
Also see |+cmd|.
|
||||
|
||||
:[N]sb[uffer] [+cmd] [N] *:sb* *:sbuffer*
|
||||
@@ -1159,7 +1161,7 @@ list of buffers. |unlisted-buffer|
|
||||
Also see |+cmd|.
|
||||
|
||||
:[N]sb[uffer] [+cmd] {bufname}
|
||||
Split window and edit buffer for {bufname} from the buffer
|
||||
Split window and edit buffer for |{bufname}| from the buffer
|
||||
list. This will also edit a buffer that is not in the buffer
|
||||
list, without setting the 'buflisted' flag.
|
||||
Note: If what you want to do is split the buffer, make a copy
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Maintainer: Adrien Beau <version.francaise@free.fr>
|
||||
" First Version: Francois Thunus <thunus@systran.fr>
|
||||
" Last Modification: David Blanchet <david.blanchet@free.fr>
|
||||
" Last Change: 2012 May 01
|
||||
" Last Change: 2018 Apr 25
|
||||
|
||||
" Quit when menu translations have already been done.
|
||||
if exists("did_menu_trans")
|
||||
@@ -47,7 +47,7 @@ menutrans &Close<Tab>:close &Fermer<Tab>:close
|
||||
menutrans &Save<Tab>:w &Enregistrer<Tab>:w
|
||||
menutrans Save\ &As\.\.\.<Tab>:sav Enregistrer\ &sous\.\.\.<Tab>:sav
|
||||
" -SEP2-
|
||||
menutrans Split\ &Diff\ with\.\.\. &Difference\ avec\.\.\.
|
||||
menutrans Split\ &Diff\ with\.\.\. &Différence\ avec\.\.\.
|
||||
"menutrans Split\ Patched\ &By\.\.\. &Patcher\ avec\.\.\.
|
||||
menutrans Split\ Patched\ &By\.\.\. &Tester\ un\ patch\.\.\.
|
||||
" -SEP3-
|
||||
@@ -121,7 +121,7 @@ menutrans Soft\ &Tabstop &Pseudo-tabulations
|
||||
menutrans Te&xt\ Width\.\.\. Largeur\ du\ te&xte\.\.\.
|
||||
menutrans &File\ Format\.\.\. Format\ du\ &fichier\.\.\.
|
||||
|
||||
let g:menutrans_textwidth_dialog = "Entrez la nouvelle largeur du texte\n(0 pour désactiver le formattage)."
|
||||
let g:menutrans_textwidth_dialog = "Entrez la nouvelle largeur du texte\n(0 pour désactiver le formatage)."
|
||||
let g:menutrans_fileformat_dialog = "Choisissez le format dans lequel écrire le fichier."
|
||||
let g:menutrans_fileformat_choices = " &Unix \n &Dos \n &Mac \n &Annuler "
|
||||
|
||||
@@ -340,7 +340,7 @@ fun! Do_toolbar_tmenu()
|
||||
tmenu ToolBar.WinClose Fermer fenêtre
|
||||
endif
|
||||
tmenu ToolBar.LoadSesn Ouvrir session
|
||||
tmenu ToolBar.SaveSesn Enregister session courante
|
||||
tmenu ToolBar.SaveSesn Enregistrer session courante
|
||||
tmenu ToolBar.RunScript Lancer un script Vim
|
||||
tmenu ToolBar.Make Lancer make
|
||||
tmenu ToolBar.RunCtags Créer les étiquettes
|
||||
|
||||
+38
-38
@@ -1,9 +1,9 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 8.0 script
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: February 13, 2018
|
||||
" Version: 8.0-12
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||
" Last Change: April 30, 2018
|
||||
" Version: 8.0-14
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
" Quit when a syntax file was already loaded {{{2
|
||||
@@ -19,34 +19,34 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
|
||||
syn cluster vimCommentGroup contains=vimTodo,@Spell
|
||||
|
||||
" regular vim commands {{{2
|
||||
syn keyword vimCommand contained a arga[dd] argu[ment] bad[d] bn[ext] breakd[el] bw[ipeout] cadde[xpr] cc cf[ile] changes cla[st] cnf[ile] comp[iler] cq[uit] cw[indow] delep dell diffg[et] dig[raphs] doau ea el[se] endt[ry] f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] isp[lit] keepa l[ist] lat lcl[ose] lex[pr] lgete[xpr] lla[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkv[imrc] n[ext] nmapc[lear] nore omapc[lear] pa[ckadd] perld[o] prev[ious] promptr[epl] ptj[ump] pts[elect] py[thon] pyx quita[ll] redr[aw] retu[rn] rub[y] sI sIn sal[l] sba[ll] sbp[revious] scg scripte[ncoding] setg[lobal] sgI sgn sic sim[alt] sla[st] smile so[urce] spelli[nfo] sr sri sta[g] stopi[nsert] sus[pend] sync ta[g] tabe[dit] tabn[ext] tabs te[aroff] tm[enu] to[pleft] tu[nmenu] undol[ist] up[date] vi[sual] vmapc[lear] wa[ll] winp[os] ws[verb] xmapc[lear] xprop
|
||||
syn keyword vimCommand contained ab argd[elete] as[cii] bd[elete] bo[tright] breakl[ist] cN[ext] caddf[ile] ccl[ose] cfdo chd[ir] cle[arjumps] co[py] con[tinue] cr[ewind] d[elete] deletel delm[arks] diffo[ff] dir dp earlier elsei[f] endw[hile] files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] iuna[bbrev] keepalt la[st] later lcs lf[ile] lgr[ep] lli[st] lo[adview] lop[en] lua m[ove] mes mkvie[w] nb[key] noa nos[wapfile] on[ly] packl[oadall] po[p] pro ps[earch] ptl[ast] pu[t] pydo pyxdo r[ead] redraws[tatus] rew[ind] rubyd[o] sIc sIp san[dbox] sbf[irst] sbr[ewind] sci scs setl[ocal] sgc sgp sie sin sm[agic] sn[ext] sor[t] spellr[epall] srI srl star[tinsert] sts[elect] sv[iew] syncbind tab tabf[ind] tabnew tags tf[irst] tma[p] tp[revious] tunma[p] unh[ide] v vie[w] vne[w] wh[ile] wn[ext] wundo xme xunme
|
||||
syn keyword vimCommand contained abc[lear] argdo au bel[owright] bp[revious] bro[wse] cNf[ile] cal[l] cd cfir[st] che[ckpath] clo[se] col[der] conf[irm] cs debug deletep delp diffp[atch] dj[ump] dr[op] ec em[enu] ene[w] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] j[oin] keepj[umps] lad[dexpr] lb[uffer] lcscope lfdo lgrepa[dd] lmak[e] loadk lp[revious] luado ma[rk] messages mod[e] nbc[lose] noautocmd nu[mber] opt[ions] pc[lose] popu[p] prof[ile] ptN[ext] ptn[ext] pw[d] pyf[ile] pyxfile rec[over] reg[isters] ri[ght] rubyf[ile] sIe sIr sav[eas] sbl[ast] sc scl scscope sf[ind] sge sgr sig sip sm[ap] sno[magic] sp[lit] spellu[ndo] src srn startg[replace] sun[hide] sw[apname] syntime tabN[ext] tabfir[st] tabo[nly] tc[l] th[row] tmapc[lear] tr[ewind] u[ndo] unl ve[rsion] vim[grep] vs[plit] win[size] wp[revious] wv[iminfo] xmenu xunmenu
|
||||
syn keyword vimCommand contained abo[veleft] arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] cat[ch] cdo cg[etfile] checkt[ime] cmapc[lear] colo[rscheme] cope[n] cscope debugg[reedy] deletl dep diffpu[t] dl ds[earch] echoe[rr] en[dif] ex filetype fix[del] for gui helpg[rep] ia in ju[mps] keepp[atterns] laddb[uffer] lbo[ttom] ld[o] lfir[st] lh[elpgrep] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mk[exrc] mz[scheme] nbs[tart] noh[lsearch] o[pen] ownsyntax pe[rl] pp[op] profd[el] pta[g] ptp[revious] py3 python3 q[uit] red[o] res[ize] rightb[elow] rundo sIg sN[ext] sbN[ext] sbm[odified] scI scp se[t] sfir[st] sgi sh[ell] sign sir sme snoreme spe[llgood] spellw[rong] sre[wind] srp startr[eplace] sunme sy t tabc[lose] tabl[ast] tabp[revious] tcld[o] tj[ump] tn[ext] try una[bbreviate] unlo[ckvar] verb[ose] vimgrepa[dd] wN[ext] winc[md] wq x[it] xnoreme xwininfo
|
||||
syn keyword vimCommand contained al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers cabc[lear] cb[uffer] ce[nter] cgetb[uffer] chi[story] cn[ext] com cp[revious] cstag delc[ommand] deletp di[splay] diffs[plit] dli[st] dsp[lit] echom[sg] endf[unction] exi[t] filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] intro k lN[ext] laddf[ile] lc[d] le[ft] lg[etfile] lhi[story] lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mks[ession] mzf[ile] new nor ol[dfiles] p[rint] ped[it] pre[serve] promptf[ind] ptf[irst] ptr[ewind] py3do pythonx qa[ll] redi[r] ret[ab] ru[ntime] rv[iminfo] sIl sa[rgument] sb[uffer] sbn[ext] sce scr[iptnames] setf[iletype] sg sgl si sil[ent] sl[eep] smenu snoremenu spelld[ump] spr[evious] srg st[op] stj[ump] sunmenu syn tN[ext] tabd[o] tabm[ove] tabr[ewind] tclf[ile] tl[ast] tno[remap] ts[elect] undoj[oin] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xa[ll] xnoremenu y[ank]
|
||||
syn keyword vimCommand contained ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cad[dbuffer] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cnew[er] comc[lear] cpf[ile] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do e[dit] echon endfo[r] exu[sage] fin[d] foldc[lose] g h[elp] hi if is[earch] kee[pmarks] lNf[ile] lan[guage] lch[dir] lefta[bove] lgetb[uffer] ll lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mksp[ell]
|
||||
syn keyword vimCommand contained a arga[dd] argu[ment] bad[d] bn[ext] breakd[el] bw[ipeout] cadde[xpr] cc cf[ile] changes cla[st] cnf[ile] comp[iler] cq[uit] cw[indow] delep dell diffg[et] dig[raphs] doau ea el[se] endt[ry] f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] isp[lit] keepa l[ist] lat lcl[ose] lex[pr] lgete[xpr] lla[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkv[imrc] n[ext] nmapc[lear] nore omapc[lear] pa[ckadd] perld[o] prev[ious] promptr[epl] ptj[ump] pts[elect] py[thon] pyx quita[ll] redr[aw] retu[rn] rub[y] sI sIn sal[l] sba[ll] sbp[revious] scg scripte[ncoding] setg[lobal] sgI sgn sic sim[alt] sla[st] smile so[urce] spelli[nfo] sr sri sta[g] stopi[nsert] sus[pend] sync ta[g] tabe[dit] tabn[ext] tabs te[aroff] tm[enu] to[pleft] tu[nmenu] undol[ist] up[date] vi[sual] vmapc[lear] wa[ll] winp[os] ws[verb] xmapc[lear] xprop
|
||||
syn keyword vimCommand contained ab argd[elete] as[cii] bd[elete] bo[tright] breakl[ist] cN[ext] caddf[ile] ccl[ose] cfdo chd[ir] cle[arjumps] co[py] con[tinue] cr[ewind] d[elete] deletel delm[arks] diffo[ff] dir dp earlier elsei[f] endw[hile] files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] iuna[bbrev] keepalt la[st] later lcs lf[ile] lgr[ep] lli[st] lo[adview] lop[en] lua m[ove] mes mkvie[w] nb[key] noa nos[wapfile] on[ly] packl[oadall] po[p] pro ps[earch] ptl[ast] pu[t] pydo pyxdo r[ead] redraws[tatus] rew[ind] rubyd[o] sIc sIp san[dbox] sbf[irst] sbr[ewind] sci scs setl[ocal] sgc sgp sie sin sm[agic] sn[ext] sor[t] spellr[epall] srI srl star[tinsert] sts[elect] sv[iew] syncbind tab tabf[ind] tabnew tags tf[irst] tma[p] tp[revious] tunma[p] unh[ide] v vie[w] vne[w] wh[ile] wn[ext] wundo xme xunme
|
||||
syn keyword vimCommand contained abc[lear] argdo au bel[owright] bp[revious] bro[wse] cNf[ile] cal[l] cd cfir[st] che[ckpath] clo[se] col[der] conf[irm] cs debug deletep delp diffp[atch] dj[ump] dr[op] ec em[enu] ene[w] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] j[oin] keepj[umps] lad[dexpr] lb[uffer] lcscope lfdo lgrepa[dd] lmak[e] loadk lp[revious] luado ma[rk] messages mod[e] nbc[lose] noautocmd nu[mber] opt[ions] pc[lose] popu[p] prof[ile] ptN[ext] ptn[ext] pw[d] pyf[ile] pyxfile rec[over] reg[isters] ri[ght] rubyf[ile] sIe sIr sav[eas] sbl[ast] sc scl scscope sf[ind] sge sgr sig sip sm[ap] sno[magic] sp[lit] spellu[ndo] src srn startg[replace] sun[hide] sw[apname] syntime tabN[ext] tabfir[st] tabo[nly] tc[l] th[row] tmapc[lear] tr[ewind] u[ndo] unl ve[rsion] vim[grep] vs[plit] win[size] wp[revious] wv[iminfo] xmenu xunmenu
|
||||
syn keyword vimCommand contained abo[veleft] arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] cat[ch] cdo cg[etfile] checkt[ime] cmapc[lear] colo[rscheme] cope[n] cscope debugg[reedy] deletl dep diffpu[t] dl ds[earch] echoe[rr] en[dif] ex filetype fix[del] for gui helpg[rep] ia in ju[mps] keepp[atterns] laddb[uffer] lbo[ttom] ld[o] lfir[st] lh[elpgrep] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mk[exrc] mz[scheme] nbs[tart] noh[lsearch] o[pen] ownsyntax pe[rl] pp[op] profd[el] pta[g] ptp[revious] py3 python3 q[uit] red[o] res[ize] rightb[elow] rundo sIg sN[ext] sbN[ext] sbm[odified] scI scp se[t] sfir[st] sgi sh[ell] sign sir sme snoreme spe[llgood] spellw[rong] sre[wind] srp startr[eplace] sunme sy t tabc[lose] tabl[ast] tabp[revious] tcld[o] tj[ump] tn[ext] try una[bbreviate] unlo[ckvar] verb[ose] vimgrepa[dd] wN[ext] winc[md] wq x[it] xnoreme xwininfo
|
||||
syn keyword vimCommand contained al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers cabc[lear] cb[uffer] ce[nter] cgetb[uffer] chi[story] cn[ext] com cp[revious] cstag delc[ommand] deletp di[splay] diffs[plit] dli[st] dsp[lit] echom[sg] endf[unction] exi[t] filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] intro k lN[ext] laddf[ile] lc[d] le[ft] lg[etfile] lhi[story] lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mks[ession] mzf[ile] new nor ol[dfiles] p[rint] ped[it] pre[serve] promptf[ind] ptf[irst] ptr[ewind] py3do pythonx qa[ll] redi[r] ret[ab] ru[ntime] rv[iminfo] sIl sa[rgument] sb[uffer] sbn[ext] sce scr[iptnames] setf[iletype] sg sgl si sil[ent] sl[eep] smenu snoremenu spelld[ump] spr[evious] srg st[op] stj[ump] sunmenu syn tN[ext] tabd[o] tabm[ove] tabr[ewind] tclf[ile] tl[ast] tno[remap] ts[elect] undoj[oin] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xa[ll] xnoremenu y[ank]
|
||||
syn keyword vimCommand contained ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cad[dbuffer] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cnew[er] comc[lear] cpf[ile] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do e[dit] echon endfo[r] exu[sage] fin[d] foldc[lose] g h[elp] hi if is[earch] kee[pmarks] lNf[ile] lan[guage] lch[dir] lefta[bove] lgetb[uffer] ll lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mksp[ell]
|
||||
syn match vimCommand contained "\<z[-+^.=]\=\>"
|
||||
syn keyword vimStdPlugin contained DiffOrig Man N[ext] P[rint] S TOhtml XMLent XMLns
|
||||
syn keyword vimStdPlugin contained DiffOrig Man N[ext] P[rint] S TOhtml XMLent XMLns
|
||||
|
||||
" vimOptions are caught only when contained in a vimSet {{{2
|
||||
syn keyword vimOption contained acd ambw arshape background ballooneval bg bomb bs cb ch cinoptions cms commentstring copyindent cscopepathcomp csprg cursorbind delcombine digraph eadirection emo equalprg expandtab fdls fex fileignorecase fml foldlevel formatexpr gcr go guifontset helpheight history hlsearch imactivatekey imi imstyle indentkeys isf isprint km laststatus lisp loadplugins lz mat maxmempattern mh mmp more mouses mzq number opendevice paragraphs penc pi previewheight printmbcharset pvw rdt renderoptions rl ru sbo scrollbind secure shcf shelltemp shortmess showtabline sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs termguicolors tf title tms ts ttybuiltin tx undolevels vbs viewdir vop wd wic wildmode winheight wm wrapscan
|
||||
syn keyword vimOption contained ai anti autochdir backspace balloonexpr bh breakat bsdir cc charconvert cinw co compatible cot cscopeprg csqf cursorcolumn dex dip eb emoji errorbells exrc fdm ff filetype fmr foldlevelstart formatlistpat gd gp guifontwide helplang hk ic imaf iminsert inc indk isfname joinspaces kmp lazyredraw lispwords lpl ma matchpairs maxmemtot mis mmt mouse mouseshape mzquantum numberwidth operatorfunc paste perldll pm previewwindow printmbfont pythondll re report rlc rubydll sbr scrolljump sel shell shelltype shortname shq slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tagstack tc termkey tgc titlelen to tsl ttyfast uc undoreload vdir viewoptions wa weirdinvert wig wildoptions winminheight wmh write
|
||||
syn keyword vimOption contained akm antialias autoindent backup bdir bin breakindent bsk ccv ci cinwords cocu complete cp cscopequickfix csre cursorline dg dir ed enc errorfile fcl fdn ffs fillchars fo foldmarker formatoptions gdefault grepformat guiheadroom hf hkmap icon imak ims include inex isi js kp lbr list lrm macatsui matchtime mco mkspellmem mod mousef mouset mzschemedll nuw opfunc pastetoggle pex pmbcs printdevice printoptions pythonthreedll readonly restorescreen rnu ruf sc scrolloff selection shellcmdflag shellxescape showbreak si sm so spellfile spr st sts swapsync syn tag tal tcldll termsize tgst titleold toolbar tsr ttym udf updatecount ve vif wak wfh wildchar wim winminwidth wmnu writeany
|
||||
syn keyword vimOption contained al ar autoread backupcopy bdlay binary breakindentopt bt cd cin clipboard cole completefunc cpo cscoperelative cst cwh dict directory edcompatible encoding errorformat fcs fdo fic fixendofline foldclose foldmethod formatprg gfm grepprg guioptions hh hkmapp iconstring imc imsearch includeexpr inf isident key langmap lcs listchars ls magic maxcombine mef ml modeline mousefocus mousetime mzschemegcdll odev osfiletype patchexpr pexpr pmbfn printencoding prompt pyx redrawtime revins ro ruler scb scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tb tenc terse thesaurus titlestring toolbariconsize ttimeout ttymouse udir updatetime verbose viminfo warn wfw wildcharm winaltkeys winptydll wmw writebackup
|
||||
syn keyword vimOption contained aleph arab autowrite backupdir belloff bk bri bufhidden cdpath cindent cm colorcolumn completeopt cpoptions cscopetag csto debug dictionary display ef endofline esckeys fdc fdt fileencoding fixeol foldcolumn foldminlines fp gfn gtl guipty hi hkp ignorecase imcmdline imsf incsearch infercase isk keymap langmenu linebreak lm lsp makeef maxfuncdepth menc mls modelines mousehide mp nf oft pa patchmode pfn popt printexpr pt pyxversion regexpengine ri rop rulerformat scl scs sessionoptions shellquote shiftround showfulltag sidescrolloff smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi term textauto tildeop tk top ttimeoutlen ttyscroll ul ur verbosefile viminfofile wb wh wildignore window winwidth wop writedelay
|
||||
syn keyword vimOption contained allowrevins arabic autowriteall backupext beval bkc briopt buflisted cedit cink cmdheight columns concealcursor cpt cscopetagorder csverb deco diff dy efm eol et fde fen fileencodings fk foldenable foldnestmax fs gfs gtt guitablabel hid hl im imd imst inde insertmode iskeyword keymodel langnoremap lines lmap luadll makeencoding maxmapdepth menuitems mm modifiable mousem mps nrformats ofu packpath path ph pp printfont pumheight qe relativenumber rightleft rs runtimepath scr sect sft shellredir shiftwidth showmatch signcolumn smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termbidi textmode timeout tl tpm ttm ttytype undodir ut vfile virtualedit wc whichwrap wildignorecase winfixheight wiv wrap ws
|
||||
syn keyword vimOption contained altkeymap arabicshape aw backupskip bex bl brk buftype cf cinkeys cmdwinheight com conceallevel crb cscopeverbose cuc def diffexpr ea ei ep eventignore fdi fenc fileformat fkmap foldexpr foldopen fsync gfw guicursor guitabtooltip hidden hlg imactivatefunc imdisable imstatusfunc indentexpr is isp keywordprg langremap linespace lnr lw makeprg maxmem mfd mmd modified mousemodel msm nu omnifunc para pdev pheader preserveindent printheader pvh quoteescape remap rightleftcmd rtp sb scroll sections sh shellslash shm showmode siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis termencoding textwidth timeoutlen tm tr tty tw undofile vb vi visualbell wcm wi wildmenu winfixwidth wiw wrapmargin ww
|
||||
syn keyword vimOption contained ambiwidth ari awa balloondelay bexpr bo browsedir casemap cfu cino cmp comments confirm cryptmethod cspc cul define diffopt ead ek equalalways ex fdl fencs fileformats flp foldignore foldtext ft ghr guifont helpfile highlight hls
|
||||
syn keyword vimOption contained acd ambw arshape background ballooneval bex bl brk buftype cf cinkeys cmdwinheight com conceallevel crb cscopeverbose cuc def diffexpr ea ei ep eventignore fdi fenc fileformat fkmap foldexpr foldopen fsync gfw guicursor guitabtooltip hidden hlg imactivatefunc imi inc inex isident keymap langnoremap linespace lnr lw makeprg maxmem mfd mmd modified mousemodel msm nu omnifunc para pdev pheader preserveindent printheader pumwidth pythonthreehome readonly restorescreen rnu ruf sc scrolloff selection shellcmdflag shellxescape showbreak si sm so spellfile spr st sts swapsync syn tag tal tcldll termwinscroll tgc titlelen toolbariconsize ttimeout ttymouse tx undolevels vbs viewdir vop wd wic wildmode winheight wm wrapscan
|
||||
syn keyword vimOption contained ai anti autochdir backspace balloonevalterm bexpr bo browsedir casemap cfu cino cmp comments confirm cryptmethod cspc cul define diffopt ead ek equalalways ex fdl fencs fileformats flp foldignore foldtext ft ghr guifont helpfile highlight hls imactivatekey iminsert include inf isk keymodel langremap lisp loadplugins lz mat maxmempattern mh mmp more mouses mzq number opendevice paragraphs penc pi previewheight printmbcharset pvh pyx redrawtime revins ro ruler scb scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tb tenc termwinsize tgst titleold top ttimeoutlen ttyscroll uc undoreload vdir viewoptions wa weirdinvert wig wildoptions winminheight wmh write
|
||||
syn keyword vimOption contained akm antialias autoindent backup balloonexpr bg bomb bs cb ch cinoptions cms commentstring copyindent cscopepathcomp csprg cursorbind delcombine digraph eadirection emo equalprg expandtab fdls fex fileignorecase fml foldlevel formatexpr gcr go guifontset helpheight history hlsearch imaf ims includeexpr infercase iskeyword keywordprg laststatus lispwords lpl ma matchpairs maxmemtot mis mmt mouse mouseshape mzquantum numberwidth operatorfunc paste perldll pm previewwindow printmbfont pvw pyxversion regexpengine ri rop rulerformat scl scs sessionoptions shellquote shiftround showfulltag sidescrolloff smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi term terse thesaurus titlestring tpm ttm ttytype udf updatecount ve vif wak wfh wildchar wim winminwidth wmnu writeany
|
||||
syn keyword vimOption contained al ar autoread backupcopy bdir bh breakat bsdir cc charconvert cinw co compatible cot cscopeprg csqf cursorcolumn dex dip eb emoji errorbells exrc fdm ff filetype fmr foldlevelstart formatlistpat gd gp guifontwide helplang hk ic imak imsearch incsearch insertmode isp km lazyredraw list lrm macatsui matchtime mco mkspellmem mod mousef mouset mzschemedll nuw opfunc pastetoggle pex pmbcs printdevice printoptions pw qe relativenumber rightleft rs runtimepath scr sect sft shellredir shiftwidth showmatch signcolumn smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termbidi textauto tildeop tl tr tty tw udir updatetime verbose viminfo warn wfw wildcharm winaltkeys winptydll wmw writebackup
|
||||
syn keyword vimOption contained aleph arab autowrite backupdir bdlay bin breakindent bsk ccv ci cinwords cocu complete cp cscopequickfix csre cursorline dg dir ed enc errorfile fcl fdn ffs fillchars fo foldmarker formatoptions gdefault grepformat guiheadroom hf hkmap icon imc imsf inde is isprint kmp lbr listchars ls magic maxcombine mef ml modeline mousefocus mousetime mzschemegcdll odev osfiletype patchexpr pexpr pmbfn printencoding prompt pythondll quoteescape remap rightleftcmd rtp sb scroll sections sh shellslash shm showmode siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis termencoding textmode timeout tm ts ttybuiltin twk ul ur verbosefile viminfofile wb wh wildignore window winwidth wop writedelay
|
||||
syn keyword vimOption contained allowrevins arabic autowriteall backupext belloff binary breakindentopt bt cd cin clipboard cole completefunc cpo cscoperelative cst cwh dict directory edcompatible encoding errorformat fcs fdo fic fixendofline foldclose foldmethod formatprg gfm grepprg guioptions hh hkmapp iconstring imcmdline imst indentexpr isf joinspaces kp lcs lm lsp makeef maxfuncdepth menc mls modelines mousehide mp nf oft pa patchmode pfn popt printexpr pt pythonhome rdt renderoptions rl ru sbo scrollbind secure shcf shelltemp shortmess showtabline sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs termguicolors textwidth timeoutlen to tsl ttyfast tws undodir ut vfile virtualedit wc whichwrap wildignorecase winfixheight wiv wrap ws
|
||||
syn keyword vimOption contained altkeymap arabicshape aw backupskip beval bk bri bufhidden cdpath cindent cm colorcolumn completeopt cpoptions cscopetag csto debug dictionary display ef endofline esckeys fdc fdt fileencoding fixeol foldcolumn foldminlines fp gfn gtl guipty hi hkp ignorecase imd imstatusfunc indentkeys isfname js langmap linebreak lmap luadll makeencoding maxmapdepth menuitems mm modifiable mousem mps nrformats ofu packpath path ph pp printfont pumheight pythonthreedll re report rlc rubydll sbr scrolljump sel shell shelltype shortname shq slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tagstack tc termwinkey tf title toolbar tsr ttym twsl undofile vb vi visualbell wcm wi wildmenu winfixwidth wiw wrapmargin ww
|
||||
syn keyword vimOption contained ambiwidth ari awa balloondelay bevalterm bkc briopt buflisted cedit cink cmdheight columns concealcursor cpt cscopetagorder csverb deco diff dy efm eol et fde fen fileencodings fk foldenable foldnestmax fs gfs gtt guitablabel hid hl im imdisable imstyle indk isi key langmenu lines
|
||||
|
||||
" vimOptions: These are the turn-off setting variants {{{2
|
||||
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobomb nobuflisted nocin noconfirm nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noendofline noerrorbells noex nofen nofixendofline nofkmap nofsync noguipty nohk nohkp noic noim noimd noinf nois nolangnoremap nolazyredraw nolinebreak nolist noloadplugins nolrm noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx noundofile novisualbell nowarn noweirdinvert nowfw nowildignorecase nowinfixheight nowiv nowrap nowrite nowritebackup
|
||||
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobk nobreakindent nocf nocindent nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noemo noeol noesckeys noexpandtab nofic nofixeol nofoldenable nogd nohid nohkmap nohls noicon noimc noimdisable noinfercase nojoinspaces nolangremap nolbr nolisp nolnr nolpl nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast noudf novb nowa nowb nowfh nowic nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
|
||||
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobl nobri noci nocompatible nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noemoji noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noincsearch noinsertmode nojs
|
||||
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobevalterm nobk nobreakindent nocf nocindent nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noemo noeol noesckeys noexpandtab nofic nofixeol nofoldenable nogd nohid nohkmap nohls noicon noimc noimdisable noinfercase nojoinspaces nolangremap nolinebreak nolist noloadplugins nolrm noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx noundofile novisualbell nowarn noweirdinvert nowfw nowildignorecase nowinfixheight nowiv nowrap nowrite nowritebackup
|
||||
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa noballoonevalterm nobin nobl nobri noci nocompatible nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noemoji noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noincsearch noinsertmode nojs nolazyredraw nolisp nolnr nolpl nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast noudf novb nowa nowb nowfh nowic nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
|
||||
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobeval nobinary nobomb nobuflisted nocin noconfirm nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noendofline noerrorbells noex nofen nofixendofline nofkmap nofsync noguipty nohk nohkp noic noim noimd noinf nois nolangnoremap nolbr
|
||||
|
||||
" vimOptions: These are the invertible variants {{{2
|
||||
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbomb invbuflisted invcin invconfirm invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invendofline inverrorbells invex invfen invfixendofline invfkmap invfsync invguipty invhk invhkp invic invim invimd invinf invis invlangnoremap invlazyredraw invlinebreak invlist invloadplugins invlrm invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invundofile invvisualbell invwarn invweirdinvert invwfw invwildignorecase invwinfixheight invwiv invwrap invwrite invwritebackup
|
||||
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invemo inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc invimdisable invinfercase invjoinspaces invlangremap invlbr invlisp invlnr invlpl invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invudf invvb invwa invwb invwfh invwic invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
|
||||
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbl invbri invci invcompatible invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible invemoji invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs
|
||||
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbevalterm invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invemo inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc invimdisable invinfercase invjoinspaces invlangremap invlinebreak invlist invloadplugins invlrm invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invundofile invvisualbell invwarn invweirdinvert invwfw invwildignorecase invwinfixheight invwiv invwrap invwrite invwritebackup
|
||||
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invballoonevalterm invbin invbl invbri invci invcompatible invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible invemoji invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs invlazyredraw invlisp invlnr invlpl invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invudf invvb invwa invwb invwfh invwic invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
|
||||
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbeval invbinary invbomb invbuflisted invcin invconfirm invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invendofline inverrorbells invex invfen invfixendofline invfkmap invfsync invguipty invhk invhkp invic invim invimd invinf invis invlangnoremap invlbr
|
||||
|
||||
" termcap codes (which can also be set) {{{2
|
||||
syn keyword vimOption contained t_8b t_AB t_al t_bc t_BE t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_EI t_F2 t_F4 t_F6 t_F8 t_fs t_IE t_k1 t_k2 t_K3 t_K4 t_K5 t_K6 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_PE t_PS t_RB t_RC t_RF t_RI t_RS t_RV t_Sb t_SC t_se t_Sf t_SH t_SI t_so t_sr t_SR t_te t_Te t_ti t_ts t_Ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_VS t_WP t_WS t_xn t_xs t_ZH t_ZR
|
||||
@@ -66,21 +66,21 @@ syn keyword vimErrSetting contained bioskey biosk conskey consk autoprint beauti
|
||||
|
||||
" AutoCmd Events {{{2
|
||||
syn case ignore
|
||||
syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre CmdlineEnter CmdlineLeave CmdUndefined CmdwinEnter CmdwinLeave ColorScheme CompleteDone CursorHold CursorHoldI CursorMoved CursorMovedI EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave MenuPopup OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabEnter TabLeave TabNew TermChanged TermResponse TextChanged TextChangedI User VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave WinNew
|
||||
syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre CmdlineChanged CmdlineEnter CmdlineLeave CmdUndefined CmdwinEnter CmdwinLeave ColorScheme CompleteDone CursorHold CursorHoldI CursorMoved CursorMovedI DirChanged EncodingChanged ExitPre FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave MenuPopup OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabEnter TabLeave TabNew TermChanged TerminalOpen TermResponse TextChanged TextChangedI TextChangedP TextYankPost User VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave WinNew
|
||||
|
||||
" Highlight commonly used Groupnames {{{2
|
||||
syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
|
||||
|
||||
" Default highlighting groups {{{2
|
||||
syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine CursorLineNr DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question QuickFixLine Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
|
||||
syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine CursorLineNr DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question QuickFixLine Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC StatusLineTerm TabLine TabLineFill TabLineSel Terminal Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
|
||||
syn match vimHLGroup contained "Conceal"
|
||||
syn case match
|
||||
|
||||
" Function Names {{{2
|
||||
syn keyword vimFuncName contained abs append argv assert_fails assert_notequal atan browsedir bufname byte2line ceil ch_close ch_getbufnr ch_logfile ch_sendexpr cindent complete_add cos cursor diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcmdline getcompletion getfperm getline getpos gettabinfo getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode len line2byte log10 mapcheck matcharg matchstr mkdir nr2char pow py3eval readfile remote_expr remote_send repeat screenattr search searchpos setbufvar setline setqflist setwinvar simplify soundfold sqrt strcharpart strftime string strridx submatch synID synstack tabpagebuflist tagfiles tanh term_getattr term_getline term_getstatus term_gettty term_sendkeys term_wait test_feedinput test_null_channel test_null_list test_override timer_pause timer_stopall tr undofile values wildmenumode win_findbuf winheight winline winrestview wordcount
|
||||
syn keyword vimFuncName contained acos argc asin assert_false assert_notmatch atan2 bufexists bufnr byteidx changenr ch_close_in ch_getjob ch_open ch_sendraw clearmatches complete_check cosh deepcopy diff_hlID eventhandler exists feedkeys finddir fmod foldclosedend foreground get getchar getcmdpos getcurpos getfsize getloclist getqflist gettabvar getwinposy globpath hasmapto histnr iconv inputdialog inputsecret islocked job_info job_stop json_decode libcall lispindent luaeval match matchdelete matchstrpos mode or prevnonblank pyeval reltime remote_foreground remote_startserver resolve screenchar searchdecl server2client setcharsearch setloclist setreg sha256 sin spellbadword str2float strchars strgetchar strlen strtrans substitute synIDattr system tabpagenr taglist tempname term_getcursor term_getscrolled term_gettitle term_list term_setsize test_alloc_fail test_garbagecollect_now test_null_dict test_null_partial test_settime timer_start tolower trunc undotree virtcol winbufnr win_getid win_id2tabwin winnr winsaveview writefile
|
||||
syn keyword vimFuncName contained add argidx assert_equal assert_inrange assert_report balloon_show buflisted bufwinid byteidxcomp char2nr ch_evalexpr ch_info ch_read ch_setoptions col confirm count delete empty executable exp filereadable findfile fnameescape foldlevel funcref getbufinfo getcharmod getcmdtype getcwd getftime getmatches getreg gettabwinvar getwinvar has histadd hlexists indent inputlist insert isnan job_setoptions join json_encode libcallnr localtime map matchadd matchend max mzeval pathshorten printf pyxeval reltimefloat remote_peek remove reverse screencol searchpair serverlist setcmdpos setmatches settabvar shellescape sinh spellsuggest str2nr strdisplaywidth stridx strpart strwidth synconcealed synIDtrans systemlist tabpagewinnr tan term_getaltscreen term_getjob term_getsize term_getttty term_scrape term_start test_autochdir test_ignore_error test_null_job test_null_string timer_info timer_stop toupper type uniq visualmode wincol win_gotoid win_id2win winrestcmd winwidth xor
|
||||
syn keyword vimFuncName contained and arglistid assert_exception assert_match assert_true browse bufloaded bufwinnr call ch_canread ch_evalraw ch_log ch_readraw ch_status complete copy cscope_connection did_filetype escape execute expand filewritable float2nr fnamemodify foldtext function getbufline getcharsearch getcmdwintype getfontname getftype getpid getregtype getwininfo glob has_key histdel hlID index inputrestore invert items job_start js_decode keys line log maparg matchaddpos matchlist min nextnonblank perleval pumvisible range reltimestr remote_read rename round screenrow searchpairpos setbufline setfperm setpos settabwinvar shiftwidth sort split
|
||||
syn keyword vimFuncName contained abs append argv assert_equalfile assert_inrange assert_report balloon_show bufexists bufnr byteidx changenr ch_close_in ch_getjob ch_open ch_sendraw clearmatches complete_check cosh deepcopy diff_hlID eventhandler exists feedkeys finddir fmod foldclosedend foreground get getchangelist getcmdline getcompletion getfperm getjumplist getpid getregtype getwininfo getwinvar has histadd hlexists indent inputlist insert isnan job_setoptions join json_encode libcallnr localtime map matchadd matchend max mzeval option_save pow py3eval readfile remote_expr remote_send repeat screenattr search searchpos setbufvar setline setqflist setwinvar simplify soundfold sqrt strchars stridx strridx substitute synIDtrans tabpagebuflist taglist term_dumpdiff term_getansicolors term_getline term_gettitle term_sendkeys term_setsize test_autochdir test_ignore_error test_null_job test_null_string timer_info timer_stop toupper trunc undotree virtcol winbufnr win_getid win_id2tabwin winnr winsaveview wordcount
|
||||
syn keyword vimFuncName contained acos argc asin assert_exception assert_match assert_true balloon_split buflisted bufwinid byteidxcomp char2nr ch_evalexpr ch_info ch_read ch_setoptions col confirm count delete empty executable exp filereadable findfile fnameescape foldlevel funcref getbufinfo getchar getcmdpos getcurpos getfsize getline getpos gettabinfo getwinpos glob has_key histdel hlID index inputrestore invert items job_start js_decode keys line log maparg matchaddpos matchlist min nextnonblank or prevnonblank pyeval reltime remote_foreground remote_startserver resolve screenchar searchdecl server2client setcharsearch setloclist setreg sha256 sin spellbadword str2float strdisplaywidth string strtrans synconcealed synstack tabpagenr tan term_dumpload term_getattr term_getscrolled term_gettty term_setansicolors term_start test_feedinput test_null_channel test_null_list test_override timer_pause timer_stopall tr type uniq visualmode wincol win_gotoid win_id2win winrestcmd win_screenpos writefile
|
||||
syn keyword vimFuncName contained add argidx assert_beeps assert_fails assert_notequal atan browse bufloaded bufwinnr call ch_canread ch_evalraw ch_log ch_readraw ch_status complete copy cscope_connection did_filetype escape execute expand filewritable float2nr fnamemodify foldtext function getbufline getcharmod getcmdtype getcwd getftime getloclist getqflist gettabvar getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode len line2byte log10 mapcheck matcharg matchstr mkdir nr2char pathshorten printf pyxeval reltimefloat remote_peek remove reverse screencol searchpair serverlist setcmdpos setmatches settabvar shellescape sinh spellsuggest str2nr strftime strlen strwidth synID system tabpagewinnr tanh term_dumpwrite term_getcursor term_getsize term_list term_setkill term_wait test_garbagecollect_now test_null_dict test_null_partial test_settime timer_start tolower trim undofile values wildmenumode win_findbuf winheight winline winrestview winwidth xor
|
||||
syn keyword vimFuncName contained and arglistid assert_equal assert_false assert_notmatch atan2 browsedir bufname byte2line ceil ch_close ch_getbufnr ch_logfile ch_sendexpr cindent complete_add cos cursor diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcharsearch getcmdwintype getfontname getftype getmatches getreg gettabwinvar getwinposy globpath hasmapto histnr iconv inputdialog inputsecret islocked job_info job_stop json_decode libcall lispindent luaeval match matchdelete matchstrpos mode option_restore perleval pumvisible range reltimestr remote_read rename round screenrow searchpairpos setbufline setfperm setpos settabwinvar shiftwidth sort split strcharpart strgetchar strpart submatch synIDattr systemlist tagfiles tempname term_getaltscreen term_getjob term_getstatus term_scrape term_setrestore test_alloc_fail
|
||||
|
||||
"--- syntax here and above generated by mkvimvim ---
|
||||
" Special Vim Highlighting (not automatic) {{{1
|
||||
@@ -670,8 +670,8 @@ if (g:vimsyn_embed =~# 'p' && has("perl")) && filereadable(s:perlpath)
|
||||
unlet! b:current_syntax
|
||||
syn cluster vimFuncBodyList add=vimPerlRegion
|
||||
exe "syn include @vimPerlScript ".s:perlpath
|
||||
VimFoldp syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript
|
||||
VimFoldp syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
|
||||
VimFoldp syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(\S*\)\ze\(\s*["#].*\)\=$+ end=+^\z1\ze\(\s*[#"].*\)\=$+ contains=@vimPerlScript
|
||||
VimFoldp syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
|
||||
syn cluster vimFuncBodyList add=vimPerlRegion
|
||||
else
|
||||
syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+
|
||||
@@ -693,8 +693,8 @@ if (g:vimsyn_embed =~# 'r' && has("ruby")) && filereadable(s:rubypath)
|
||||
syn cluster vimFuncBodyList add=vimRubyRegion
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimRubyScript ".s:rubypath
|
||||
VimFoldr syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript
|
||||
syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript
|
||||
VimFoldr syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(\S*\)\ze\(\s*#.*\)\=$+ end=+^\z1\ze\(\s*".*\)\=$+ contains=@vimRubyScript
|
||||
syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript
|
||||
syn cluster vimFuncBodyList add=vimRubyRegion
|
||||
else
|
||||
syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+
|
||||
@@ -716,10 +716,10 @@ if g:vimsyn_embed =~# 'P' && has("pythonx") && filereadable(s:pythonpath)
|
||||
unlet! b:current_syntax
|
||||
syn cluster vimFuncBodyList add=vimPythonRegion
|
||||
exe "syn include @vimPythonScript ".s:pythonpath
|
||||
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
|
||||
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
|
||||
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
|
||||
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
|
||||
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(\S*\)\ze\(\s*#.*\)\=$+ end=+^\z1\ze\(\s*".*\)\=$+ contains=@vimPythonScript
|
||||
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
|
||||
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\z(\S*\)\ze\(\s*#.*\)\=$+ end=+^\z1\ze\(\s*".*\)\=$+ contains=@vimPythonScript
|
||||
VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
|
||||
syn cluster vimFuncBodyList add=vimPythonRegion
|
||||
else
|
||||
syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
vimtutor <ENTER>
|
||||
|
||||
4. Если вы уверены в том, что запомнили эти шаги, выполните шаги от 1 до 3
|
||||
чтобы выйти снова запустить редактор.
|
||||
чтобы выйти и снова запустить редактор.
|
||||
|
||||
Замечание! :q! <ENTER> отбрасывает любые сделанные вами изменения. Через
|
||||
несколько уроков вы узнаете как сохранять изменения в файл.
|
||||
@@ -790,10 +790,10 @@
|
||||
1. Переместите курсор вниз, к первой строке помеченной --->, и в начало
|
||||
первого слова xxx.
|
||||
|
||||
2. Теперь нажмите R и введите число указанный ниже во второй строке чтобы
|
||||
2. Теперь нажмите R и введите число, указанное ниже во второй строке, чтобы
|
||||
заменить xxx.
|
||||
|
||||
3. Нажмите <ESC> для выхода из режима замены. Заметьте что остаток строки
|
||||
3. Нажмите <ESC> для выхода из режима замены. Заметьте, что остаток строки
|
||||
не был изменён.
|
||||
|
||||
4. Повторите эти шаги для замены оставшихся xxx.
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
vimtutor <ENTER>
|
||||
|
||||
4. Если вы уверены в том, что запомнили эти шаги, выполните шаги от 1 до 3
|
||||
чтобы выйти снова запустить редактор.
|
||||
чтобы выйти и снова запустить редактор.
|
||||
|
||||
Замечание! :q! <ENTER> отбрасывает любые сделанные вами изменения. Через
|
||||
несколько уроков вы узнаете как сохранять изменения в файл.
|
||||
@@ -790,10 +790,10 @@
|
||||
1. Переместите курсор вниз, к первой строке помеченной --->, и в начало
|
||||
первого слова xxx.
|
||||
|
||||
2. Теперь нажмите R и введите число указанный ниже во второй строке чтобы
|
||||
2. Теперь нажмите R и введите число, указанное ниже во второй строке, чтобы
|
||||
заменить xxx.
|
||||
|
||||
3. Нажмите <ESC> для выхода из режима замены. Заметьте что остаток строки
|
||||
3. Нажмите <ESC> для выхода из режима замены. Заметьте, что остаток строки
|
||||
не был изменён.
|
||||
|
||||
4. Повторите эти шаги для замены оставшихся xxx.
|
||||
|
||||
@@ -15,6 +15,7 @@ typedef enum {
|
||||
aid_qf_dirname_start,
|
||||
aid_qf_dirname_now,
|
||||
aid_qf_namebuf,
|
||||
aid_qf_module,
|
||||
aid_qf_errmsg,
|
||||
aid_qf_pattern,
|
||||
aid_last
|
||||
|
||||
+1
-1
@@ -5538,12 +5538,12 @@ job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg)
|
||||
int argc = 0;
|
||||
#if defined(UNIX)
|
||||
# define USE_ARGV
|
||||
int i;
|
||||
#else
|
||||
garray_T ga;
|
||||
#endif
|
||||
jobopt_T opt;
|
||||
ch_part_T part;
|
||||
int i;
|
||||
|
||||
job = job_alloc();
|
||||
if (job == NULL)
|
||||
|
||||
+2
-1
@@ -909,7 +909,8 @@ ex_diffpatch(exarg_T *eap)
|
||||
if (cmdmod.browse)
|
||||
{
|
||||
browseFile = do_browse(0, (char_u *)_("Patch file"),
|
||||
eap->arg, NULL, NULL, BROWSE_FILTER_ALL_FILES, NULL);
|
||||
eap->arg, NULL, NULL,
|
||||
(char_u *)_(BROWSE_FILTER_ALL_FILES), NULL);
|
||||
if (browseFile == NULL)
|
||||
return; /* operation cancelled */
|
||||
eap->arg = browseFile;
|
||||
|
||||
+34
-12
@@ -8815,7 +8815,7 @@ assert_error(garray_T *gap)
|
||||
list_append_string(vimvars[VV_ERRORS].vv_list, gap->ga_data, gap->ga_len);
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
assert_equal_common(typval_T *argvars, assert_type_T atype)
|
||||
{
|
||||
garray_T ga;
|
||||
@@ -8828,10 +8828,12 @@ assert_equal_common(typval_T *argvars, assert_type_T atype)
|
||||
atype);
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
assert_equalfile(typval_T *argvars)
|
||||
{
|
||||
char_u buf1[NUMBUFLEN];
|
||||
@@ -8843,7 +8845,7 @@ assert_equalfile(typval_T *argvars)
|
||||
FILE *fd2;
|
||||
|
||||
if (fname1 == NULL || fname2 == NULL)
|
||||
return;
|
||||
return 0;
|
||||
|
||||
IObuff[0] = NUL;
|
||||
fd1 = mch_fopen((char *)fname1, READBIN);
|
||||
@@ -8897,10 +8899,12 @@ assert_equalfile(typval_T *argvars)
|
||||
ga_concat(&ga, IObuff);
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
assert_match_common(typval_T *argvars, assert_type_T atype)
|
||||
{
|
||||
garray_T ga;
|
||||
@@ -8918,10 +8922,12 @@ assert_match_common(typval_T *argvars, assert_type_T atype)
|
||||
atype);
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
assert_inrange(typval_T *argvars)
|
||||
{
|
||||
garray_T ga;
|
||||
@@ -8934,7 +8940,7 @@ assert_inrange(typval_T *argvars)
|
||||
char_u numbuf[NUMBUFLEN];
|
||||
|
||||
if (error)
|
||||
return;
|
||||
return 0;
|
||||
if (actual < lower || actual > upper)
|
||||
{
|
||||
prepare_assert_error(&ga);
|
||||
@@ -8951,13 +8957,16 @@ assert_inrange(typval_T *argvars)
|
||||
}
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Common for assert_true() and assert_false().
|
||||
* Return non-zero for failure.
|
||||
*/
|
||||
void
|
||||
int
|
||||
assert_bool(typval_T *argvars, int isTrue)
|
||||
{
|
||||
int error = FALSE;
|
||||
@@ -8965,7 +8974,7 @@ assert_bool(typval_T *argvars, int isTrue)
|
||||
|
||||
if (argvars[0].v_type == VAR_SPECIAL
|
||||
&& argvars[0].vval.v_number == (isTrue ? VVAL_TRUE : VVAL_FALSE))
|
||||
return;
|
||||
return 0;
|
||||
if (argvars[0].v_type != VAR_NUMBER
|
||||
|| (get_tv_number_chk(&argvars[0], &error) == 0) == isTrue
|
||||
|| error)
|
||||
@@ -8976,10 +8985,12 @@ assert_bool(typval_T *argvars, int isTrue)
|
||||
NULL, &argvars[0], ASSERT_OTHER);
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
assert_report(typval_T *argvars)
|
||||
{
|
||||
garray_T ga;
|
||||
@@ -8988,9 +8999,10 @@ assert_report(typval_T *argvars)
|
||||
ga_concat(&ga, get_tv_string(&argvars[0]));
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
return 1;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
assert_exception(typval_T *argvars)
|
||||
{
|
||||
garray_T ga;
|
||||
@@ -9002,6 +9014,7 @@ assert_exception(typval_T *argvars)
|
||||
ga_concat(&ga, (char_u *)"v:exception is not set");
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
return 1;
|
||||
}
|
||||
else if (error != NULL
|
||||
&& strstr((char *)vimvars[VV_EXCEPTION].vv_str, (char *)error) == NULL)
|
||||
@@ -9011,14 +9024,17 @@ assert_exception(typval_T *argvars)
|
||||
&vimvars[VV_EXCEPTION].vv_tv, ASSERT_OTHER);
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
assert_beeps(typval_T *argvars)
|
||||
{
|
||||
char_u *cmd = get_tv_string_chk(&argvars[0]);
|
||||
garray_T ga;
|
||||
int ret = 0;
|
||||
|
||||
called_vim_beep = FALSE;
|
||||
suppress_errthrow = TRUE;
|
||||
@@ -9031,17 +9047,20 @@ assert_beeps(typval_T *argvars)
|
||||
ga_concat(&ga, cmd);
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
suppress_errthrow = FALSE;
|
||||
emsg_on_display = FALSE;
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
assert_fails(typval_T *argvars)
|
||||
{
|
||||
char_u *cmd = get_tv_string_chk(&argvars[0]);
|
||||
garray_T ga;
|
||||
int ret = 0;
|
||||
|
||||
called_emsg = FALSE;
|
||||
suppress_errthrow = TRUE;
|
||||
@@ -9054,6 +9073,7 @@ assert_fails(typval_T *argvars)
|
||||
ga_concat(&ga, cmd);
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
ret = 1;
|
||||
}
|
||||
else if (argvars[1].v_type != VAR_UNKNOWN)
|
||||
{
|
||||
@@ -9068,6 +9088,7 @@ assert_fails(typval_T *argvars)
|
||||
&vimvars[VV_ERRMSG].vv_tv, ASSERT_OTHER);
|
||||
assert_error(&ga);
|
||||
ga_clear(&ga);
|
||||
ret = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9076,6 +9097,7 @@ assert_fails(typval_T *argvars)
|
||||
emsg_silent = FALSE;
|
||||
emsg_on_display = FALSE;
|
||||
set_vim_var_string(VV_ERRMSG, NULL, 0);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+30
-36
@@ -1300,108 +1300,108 @@ f_argv(typval_T *argvars, typval_T *rettv)
|
||||
* "assert_beeps(cmd [, error])" function
|
||||
*/
|
||||
static void
|
||||
f_assert_beeps(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_beeps(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_beeps(argvars);
|
||||
rettv->vval.v_number = assert_beeps(argvars);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_equal(expected, actual[, msg])" function
|
||||
*/
|
||||
static void
|
||||
f_assert_equal(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_equal(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_equal_common(argvars, ASSERT_EQUAL);
|
||||
rettv->vval.v_number = assert_equal_common(argvars, ASSERT_EQUAL);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_equalfile(fname-one, fname-two)" function
|
||||
*/
|
||||
static void
|
||||
f_assert_equalfile(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_equalfile(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_equalfile(argvars);
|
||||
rettv->vval.v_number = assert_equalfile(argvars);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_notequal(expected, actual[, msg])" function
|
||||
*/
|
||||
static void
|
||||
f_assert_notequal(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_notequal(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_equal_common(argvars, ASSERT_NOTEQUAL);
|
||||
rettv->vval.v_number = assert_equal_common(argvars, ASSERT_NOTEQUAL);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_exception(string[, msg])" function
|
||||
*/
|
||||
static void
|
||||
f_assert_exception(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_exception(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_exception(argvars);
|
||||
rettv->vval.v_number = assert_exception(argvars);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_fails(cmd [, error])" function
|
||||
*/
|
||||
static void
|
||||
f_assert_fails(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_fails(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_fails(argvars);
|
||||
rettv->vval.v_number = assert_fails(argvars);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_false(actual[, msg])" function
|
||||
*/
|
||||
static void
|
||||
f_assert_false(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_false(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_bool(argvars, FALSE);
|
||||
rettv->vval.v_number = assert_bool(argvars, FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_inrange(lower, upper[, msg])" function
|
||||
*/
|
||||
static void
|
||||
f_assert_inrange(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_inrange(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_inrange(argvars);
|
||||
rettv->vval.v_number = assert_inrange(argvars);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_match(pattern, actual[, msg])" function
|
||||
*/
|
||||
static void
|
||||
f_assert_match(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_match(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_match_common(argvars, ASSERT_MATCH);
|
||||
rettv->vval.v_number = assert_match_common(argvars, ASSERT_MATCH);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_notmatch(pattern, actual[, msg])" function
|
||||
*/
|
||||
static void
|
||||
f_assert_notmatch(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_notmatch(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_match_common(argvars, ASSERT_NOTMATCH);
|
||||
rettv->vval.v_number = assert_match_common(argvars, ASSERT_NOTMATCH);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_report(msg)" function
|
||||
*/
|
||||
static void
|
||||
f_assert_report(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_report(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_report(argvars);
|
||||
rettv->vval.v_number = assert_report(argvars);
|
||||
}
|
||||
|
||||
/*
|
||||
* "assert_true(actual[, msg])" function
|
||||
*/
|
||||
static void
|
||||
f_assert_true(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_assert_true(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
assert_bool(argvars, TRUE);
|
||||
rettv->vval.v_number = assert_bool(argvars, TRUE);
|
||||
}
|
||||
|
||||
#ifdef FEAT_FLOAT
|
||||
@@ -3311,18 +3311,12 @@ f_feedkeys(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
/* Avoid a 1 second delay when the keys start Insert mode. */
|
||||
msg_scroll = FALSE;
|
||||
|
||||
#ifdef FEAT_TERMINAL
|
||||
if (term_use_loop())
|
||||
terminal_loop(FALSE);
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if (!dangerous)
|
||||
++ex_normal_busy;
|
||||
exec_normal(TRUE);
|
||||
if (!dangerous)
|
||||
--ex_normal_busy;
|
||||
}
|
||||
if (!dangerous)
|
||||
++ex_normal_busy;
|
||||
exec_normal(TRUE);
|
||||
if (!dangerous)
|
||||
--ex_normal_busy;
|
||||
|
||||
msg_scroll |= save_msg_scroll;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -4213,7 +4213,8 @@ ex_source(exarg_T *eap)
|
||||
char_u *fname = NULL;
|
||||
|
||||
fname = do_browse(0, (char_u *)_("Source Vim script"), eap->arg,
|
||||
NULL, NULL, BROWSE_FILTER_MACROS, NULL);
|
||||
NULL, NULL,
|
||||
(char_u *)_(BROWSE_FILTER_MACROS), NULL);
|
||||
if (fname != NULL)
|
||||
{
|
||||
cmd_source(fname, eap);
|
||||
|
||||
+19
-3
@@ -9638,7 +9638,8 @@ ex_redir(exarg_T *eap)
|
||||
|
||||
browseFile = do_browse(BROWSE_SAVE,
|
||||
(char_u *)_("Save Redirection"),
|
||||
fname, NULL, NULL, BROWSE_FILTER_ALL_FILES, curbuf);
|
||||
fname, NULL, NULL,
|
||||
(char_u *)_(BROWSE_FILTER_ALL_FILES), curbuf);
|
||||
if (browseFile == NULL)
|
||||
return; /* operation cancelled */
|
||||
vim_free(fname);
|
||||
@@ -9872,7 +9873,8 @@ ex_mkrc(
|
||||
eap->cmdidx == CMD_mksession ? (char_u *)_("Save Session") :
|
||||
# endif
|
||||
(char_u *)_("Save Setup"),
|
||||
fname, (char_u *)"vim", NULL, BROWSE_FILTER_MACROS, NULL);
|
||||
fname, (char_u *)"vim", NULL,
|
||||
(char_u *)_(BROWSE_FILTER_MACROS), NULL);
|
||||
if (browseFile == NULL)
|
||||
goto theend;
|
||||
fname = browseFile;
|
||||
@@ -10365,7 +10367,21 @@ exec_normal(int was_typed)
|
||||
&& typebuf.tb_len > 0)) && !got_int)
|
||||
{
|
||||
update_topline_cursor();
|
||||
normal_cmd(&oa, TRUE); /* execute a Normal mode cmd */
|
||||
#ifdef FEAT_TERMINAL
|
||||
if (term_use_loop()
|
||||
&& oa.op_type == OP_NOP && oa.regname == NUL
|
||||
&& !VIsual_active)
|
||||
{
|
||||
/* If terminal_loop() returns OK we got a key that is handled
|
||||
* in Normal model. With FAIL we first need to position the
|
||||
* cursor and the screen needs to be redrawn. */
|
||||
if (terminal_loop(TRUE) == OK)
|
||||
normal_cmd(&oa, TRUE);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
/* execute a Normal mode cmd */
|
||||
normal_cmd(&oa, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+49
-53
@@ -187,6 +187,45 @@ empty_pattern(char_u *p)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_SEARCH_EXTRA
|
||||
typedef struct {
|
||||
colnr_T vs_curswant;
|
||||
colnr_T vs_leftcol;
|
||||
linenr_T vs_topline;
|
||||
# ifdef FEAT_DIFF
|
||||
int vs_topfill;
|
||||
# endif
|
||||
linenr_T vs_botline;
|
||||
linenr_T vs_empty_rows;
|
||||
} viewstate_T;
|
||||
|
||||
static void
|
||||
save_viewstate(viewstate_T *vs)
|
||||
{
|
||||
vs->vs_curswant = curwin->w_curswant;
|
||||
vs->vs_leftcol = curwin->w_leftcol;
|
||||
vs->vs_topline = curwin->w_topline;
|
||||
# ifdef FEAT_DIFF
|
||||
vs->vs_topfill = curwin->w_topfill;
|
||||
# endif
|
||||
vs->vs_botline = curwin->w_botline;
|
||||
vs->vs_empty_rows = curwin->w_empty_rows;
|
||||
}
|
||||
|
||||
static void
|
||||
restore_viewstate(viewstate_T *vs)
|
||||
{
|
||||
curwin->w_curswant = vs->vs_curswant;
|
||||
curwin->w_leftcol = vs->vs_leftcol;
|
||||
curwin->w_topline = vs->vs_topline;
|
||||
# ifdef FEAT_DIFF
|
||||
curwin->w_topfill = vs->vs_topfill;
|
||||
# endif
|
||||
curwin->w_botline = vs->vs_botline;
|
||||
curwin->w_empty_rows = vs->vs_empty_rows;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* getcmdline() - accept a command line starting with firstc.
|
||||
*
|
||||
@@ -225,21 +264,10 @@ getcmdline(
|
||||
#ifdef FEAT_SEARCH_EXTRA
|
||||
pos_T search_start; /* where 'incsearch' starts searching */
|
||||
pos_T save_cursor;
|
||||
colnr_T old_curswant;
|
||||
colnr_T init_curswant = curwin->w_curswant;
|
||||
colnr_T old_leftcol;
|
||||
colnr_T init_leftcol = curwin->w_leftcol;
|
||||
linenr_T old_topline;
|
||||
linenr_T init_topline = curwin->w_topline;
|
||||
viewstate_T init_viewstate;
|
||||
viewstate_T old_viewstate;
|
||||
pos_T match_start = curwin->w_cursor;
|
||||
pos_T match_end;
|
||||
# ifdef FEAT_DIFF
|
||||
int old_topfill;
|
||||
int init_topfill = curwin->w_topfill;
|
||||
# endif
|
||||
linenr_T old_botline, old_empty_rows;
|
||||
linenr_T init_botline = curwin->w_botline;
|
||||
linenr_T init_empty_rows = curwin->w_empty_rows;
|
||||
int did_incsearch = FALSE;
|
||||
int incsearch_postponed = FALSE;
|
||||
#endif
|
||||
@@ -285,14 +313,8 @@ getcmdline(
|
||||
CLEAR_POS(&match_end);
|
||||
save_cursor = curwin->w_cursor; /* may be restored later */
|
||||
search_start = curwin->w_cursor;
|
||||
old_curswant = curwin->w_curswant;
|
||||
old_leftcol = curwin->w_leftcol;
|
||||
old_topline = curwin->w_topline;
|
||||
# ifdef FEAT_DIFF
|
||||
old_topfill = curwin->w_topfill;
|
||||
# endif
|
||||
old_botline = curwin->w_botline;
|
||||
old_empty_rows = curwin->w_empty_rows;
|
||||
save_viewstate(&init_viewstate);
|
||||
save_viewstate(&old_viewstate);
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -1070,14 +1092,7 @@ getcmdline(
|
||||
search_start = save_cursor;
|
||||
/* save view settings, so that the screen
|
||||
* won't be restored at the wrong position */
|
||||
old_curswant = init_curswant;
|
||||
old_leftcol = init_leftcol;
|
||||
old_topline = init_topline;
|
||||
# ifdef FEAT_DIFF
|
||||
old_topfill = init_topfill;
|
||||
# endif
|
||||
old_botline = init_botline;
|
||||
old_empty_rows = init_empty_rows;
|
||||
old_viewstate = init_viewstate;
|
||||
}
|
||||
#endif
|
||||
redrawcmd();
|
||||
@@ -1808,14 +1823,7 @@ getcmdline(
|
||||
update_topline();
|
||||
validate_cursor();
|
||||
highlight_match = TRUE;
|
||||
old_curswant = curwin->w_curswant;
|
||||
old_leftcol = curwin->w_leftcol;
|
||||
old_topline = curwin->w_topline;
|
||||
# ifdef FEAT_DIFF
|
||||
old_topfill = curwin->w_topfill;
|
||||
# endif
|
||||
old_botline = curwin->w_botline;
|
||||
old_empty_rows = curwin->w_empty_rows;
|
||||
save_viewstate(&old_viewstate);
|
||||
update_screen(NOT_VALID);
|
||||
redrawcmdline();
|
||||
}
|
||||
@@ -2026,13 +2034,7 @@ cmdline_changed:
|
||||
|
||||
/* first restore the old curwin values, so the screen is
|
||||
* positioned in the same way as the actual search command */
|
||||
curwin->w_leftcol = old_leftcol;
|
||||
curwin->w_topline = old_topline;
|
||||
# ifdef FEAT_DIFF
|
||||
curwin->w_topfill = old_topfill;
|
||||
# endif
|
||||
curwin->w_botline = old_botline;
|
||||
curwin->w_empty_rows = old_empty_rows;
|
||||
restore_viewstate(&old_viewstate);
|
||||
changed_cline_bef_curs();
|
||||
update_topline();
|
||||
|
||||
@@ -2120,14 +2122,7 @@ returncmd:
|
||||
}
|
||||
curwin->w_cursor = search_start;
|
||||
}
|
||||
curwin->w_curswant = old_curswant;
|
||||
curwin->w_leftcol = old_leftcol;
|
||||
curwin->w_topline = old_topline;
|
||||
# ifdef FEAT_DIFF
|
||||
curwin->w_topfill = old_topfill;
|
||||
# endif
|
||||
curwin->w_botline = old_botline;
|
||||
curwin->w_empty_rows = old_empty_rows;
|
||||
restore_viewstate(&old_viewstate);
|
||||
highlight_match = FALSE;
|
||||
validate_cursor(); /* needed for TAB */
|
||||
redraw_all_later(SOME_VALID);
|
||||
@@ -3315,7 +3310,8 @@ cmdline_paste(
|
||||
/* check for valid regname; also accept special characters for CTRL-R in
|
||||
* the command line */
|
||||
if (regname != Ctrl_F && regname != Ctrl_P && regname != Ctrl_W
|
||||
&& regname != Ctrl_A && !valid_yank_reg(regname, FALSE))
|
||||
&& regname != Ctrl_A && regname != Ctrl_L
|
||||
&& !valid_yank_reg(regname, FALSE))
|
||||
return FAIL;
|
||||
|
||||
/* A register containing CTRL-R can cause an endless loop. Allow using
|
||||
|
||||
+61
-34
@@ -1209,28 +1209,42 @@ retry:
|
||||
* The amount is limited by the fact that read() only can read
|
||||
* upto max_unsigned characters (and other things).
|
||||
*/
|
||||
if (!skip_read)
|
||||
{
|
||||
#if VIM_SIZEOF_INT > 2
|
||||
# if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L)
|
||||
size = SSIZE_MAX; /* use max I/O size, 52K */
|
||||
# else
|
||||
/* Use buffer >= 64K. Add linerest to double the size if the
|
||||
* line gets very long, to avoid a lot of copying. But don't
|
||||
* read more than 1 Mbyte at a time, so we can be interrupted.
|
||||
*/
|
||||
size = 0x10000L + linerest;
|
||||
if (size > 0x100000L)
|
||||
size = 0x100000L;
|
||||
# endif
|
||||
#else
|
||||
size = 0x7ff0L - linerest; /* limit buffer to 32K */
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Protect against the argument of lalloc() going negative. */
|
||||
if (
|
||||
#if VIM_SIZEOF_INT <= 2
|
||||
if (linerest >= 0x7ff0)
|
||||
linerest >= 0x7ff0
|
||||
#else
|
||||
size < 0 || size + linerest + 1 < 0 || linerest >= MAXCOL
|
||||
#endif
|
||||
)
|
||||
{
|
||||
++split;
|
||||
*ptr = NL; /* split line by inserting a NL */
|
||||
size = 1;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if (!skip_read)
|
||||
{
|
||||
#if VIM_SIZEOF_INT > 2
|
||||
# if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L)
|
||||
size = SSIZE_MAX; /* use max I/O size, 52K */
|
||||
# else
|
||||
size = 0x10000L; /* use buffer >= 64K */
|
||||
# endif
|
||||
#else
|
||||
size = 0x7ff0L - linerest; /* limit buffer to 32K */
|
||||
#endif
|
||||
|
||||
for ( ; size >= 10; size = (long)((long_u)size >> 1))
|
||||
{
|
||||
if ((new_buffer = lalloc((long_u)(size + linerest + 1),
|
||||
@@ -6153,7 +6167,7 @@ shorten_fname(char_u *full_path, char_u *dir_name)
|
||||
}
|
||||
|
||||
/*
|
||||
* Shorten filenames for all buffers.
|
||||
* Shorten filename of a buffer.
|
||||
* When "force" is TRUE: Use full path from now on for files currently being
|
||||
* edited, both for file name and swap file name. Try to shorten the file
|
||||
* names a bit, if safe to do so.
|
||||
@@ -6162,34 +6176,44 @@ shorten_fname(char_u *full_path, char_u *dir_name)
|
||||
* name.
|
||||
*/
|
||||
void
|
||||
shorten_buf_fname(buf_T *buf, char_u *dirname, int force)
|
||||
{
|
||||
char_u *p;
|
||||
|
||||
if (buf->b_fname != NULL
|
||||
#ifdef FEAT_QUICKFIX
|
||||
&& !bt_nofile(buf)
|
||||
#endif
|
||||
&& !path_with_url(buf->b_fname)
|
||||
&& (force
|
||||
|| buf->b_sfname == NULL
|
||||
|| mch_isFullName(buf->b_sfname)))
|
||||
{
|
||||
VIM_CLEAR(buf->b_sfname);
|
||||
p = shorten_fname(buf->b_ffname, dirname);
|
||||
if (p != NULL)
|
||||
{
|
||||
buf->b_sfname = vim_strsave(p);
|
||||
buf->b_fname = buf->b_sfname;
|
||||
}
|
||||
if (p == NULL || buf->b_fname == NULL)
|
||||
buf->b_fname = buf->b_ffname;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Shorten filenames for all buffers.
|
||||
*/
|
||||
void
|
||||
shorten_fnames(int force)
|
||||
{
|
||||
char_u dirname[MAXPATHL];
|
||||
buf_T *buf;
|
||||
char_u *p;
|
||||
|
||||
mch_dirname(dirname, MAXPATHL);
|
||||
FOR_ALL_BUFFERS(buf)
|
||||
{
|
||||
if (buf->b_fname != NULL
|
||||
#ifdef FEAT_QUICKFIX
|
||||
&& !bt_nofile(buf)
|
||||
#endif
|
||||
&& !path_with_url(buf->b_fname)
|
||||
&& (force
|
||||
|| buf->b_sfname == NULL
|
||||
|| mch_isFullName(buf->b_sfname)))
|
||||
{
|
||||
VIM_CLEAR(buf->b_sfname);
|
||||
p = shorten_fname(buf->b_ffname, dirname);
|
||||
if (p != NULL)
|
||||
{
|
||||
buf->b_sfname = vim_strsave(p);
|
||||
buf->b_fname = buf->b_sfname;
|
||||
}
|
||||
if (p == NULL || buf->b_fname == NULL)
|
||||
buf->b_fname = buf->b_ffname;
|
||||
}
|
||||
shorten_buf_fname(buf, dirname, force);
|
||||
|
||||
/* Always make the swap file name a full path, a "nofile" buffer may
|
||||
* also have a swap file. */
|
||||
@@ -7758,6 +7782,7 @@ static struct event_name
|
||||
{"CmdwinLeave", EVENT_CMDWINLEAVE},
|
||||
{"CmdUndefined", EVENT_CMDUNDEFINED},
|
||||
{"ColorScheme", EVENT_COLORSCHEME},
|
||||
{"ColorSchemePre", EVENT_COLORSCHEMEPRE},
|
||||
{"CompleteDone", EVENT_COMPLETEDONE},
|
||||
{"CursorHold", EVENT_CURSORHOLD},
|
||||
{"CursorHoldI", EVENT_CURSORHOLDI},
|
||||
@@ -9503,7 +9528,8 @@ apply_autocmds_group(
|
||||
*/
|
||||
if (fname_io == NULL)
|
||||
{
|
||||
if (event == EVENT_COLORSCHEME || event == EVENT_OPTIONSET)
|
||||
if (event == EVENT_COLORSCHEME || event == EVENT_COLORSCHEMEPRE
|
||||
|| event == EVENT_OPTIONSET)
|
||||
autocmd_fname = NULL;
|
||||
else if (fname != NULL && !ends_excmd(*fname))
|
||||
autocmd_fname = fname;
|
||||
@@ -9573,6 +9599,7 @@ apply_autocmds_group(
|
||||
|| event == EVENT_SPELLFILEMISSING
|
||||
|| event == EVENT_QUICKFIXCMDPRE
|
||||
|| event == EVENT_COLORSCHEME
|
||||
|| event == EVENT_COLORSCHEMEPRE
|
||||
|| event == EVENT_OPTIONSET
|
||||
|| event == EVENT_QUICKFIXCMDPOST
|
||||
|| event == EVENT_DIRCHANGED)
|
||||
|
||||
+7
-3
@@ -2059,7 +2059,7 @@ vgetorpeek(int advance)
|
||||
c = inchar(typebuf.tb_buf, typebuf.tb_buflen - 1, 0L);
|
||||
/*
|
||||
* If inchar() returns TRUE (script file was active) or we
|
||||
* are inside a mapping, get out of insert mode.
|
||||
* are inside a mapping, get out of Insert mode.
|
||||
* Otherwise we behave like having gotten a CTRL-C.
|
||||
* As a result typing CTRL-C in insert mode will
|
||||
* really insert a CTRL-C.
|
||||
@@ -2755,6 +2755,10 @@ vgetorpeek(int advance)
|
||||
* cmdline window. */
|
||||
if (p_im && (State & INSERT))
|
||||
c = Ctrl_L;
|
||||
#ifdef FEAT_TERMINAL
|
||||
else if (terminal_is_active())
|
||||
c = K_CANCEL;
|
||||
#endif
|
||||
else if ((State & CMDLINE)
|
||||
#ifdef FEAT_CMDWIN
|
||||
|| (cmdwin_type > 0 && tc == ESC)
|
||||
@@ -2898,8 +2902,8 @@ vgetorpeek(int advance)
|
||||
} /* for (;;) */
|
||||
} /* if (!character from stuffbuf) */
|
||||
|
||||
/* if advance is FALSE don't loop on NULs */
|
||||
} while (c < 0 || (advance && c == NUL));
|
||||
/* if advance is FALSE don't loop on NULs */
|
||||
} while ((c < 0 && c != K_CANCEL) || (advance && c == NUL));
|
||||
|
||||
/*
|
||||
* The "INSERT" message is taken care of here:
|
||||
|
||||
+6
-4
@@ -270,12 +270,13 @@ enum key_extra
|
||||
, KE_FOCUSGAINED = 98 /* focus gained */
|
||||
, KE_FOCUSLOST = 99 /* focus lost */
|
||||
, KE_MOUSEMOVE = 100 /* mouse moved with no button down */
|
||||
, KE_CANCEL = 101 /* return from vgetc() */
|
||||
|
||||
#ifdef FEAT_GUI_MACVIM
|
||||
, KE_SWIPELEFT = 101 /* Swipe trackpad left */
|
||||
, KE_SWIPERIGHT = 102 /* Swipe trackpad right */
|
||||
, KE_SWIPEUP = 103 /* Swipe trackpad up */
|
||||
, KE_SWIPEDOWN = 104 /* Swipe trackpad down */
|
||||
, KE_SWIPELEFT = 102 /* Swipe trackpad left */
|
||||
, KE_SWIPERIGHT = 103 /* Swipe trackpad right */
|
||||
, KE_SWIPEUP = 104 /* Swipe trackpad up */
|
||||
, KE_SWIPEDOWN = 105 /* Swipe trackpad down */
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -462,6 +463,7 @@ enum key_extra
|
||||
|
||||
#define K_IGNORE TERMCAP2KEY(KS_EXTRA, KE_IGNORE)
|
||||
#define K_NOP TERMCAP2KEY(KS_EXTRA, KE_NOP)
|
||||
#define K_CANCEL TERMCAP2KEY(KS_EXTRA, KE_CANCEL)
|
||||
|
||||
#define K_MOUSEDOWN TERMCAP2KEY(KS_EXTRA, KE_MOUSEDOWN)
|
||||
#define K_MOUSEUP TERMCAP2KEY(KS_EXTRA, KE_MOUSEUP)
|
||||
|
||||
+1
-1
@@ -4061,7 +4061,7 @@ do_browse(
|
||||
}
|
||||
else
|
||||
fname = gui_mch_browse(flags & BROWSE_SAVE,
|
||||
title, dflt, ext, initdir, filter);
|
||||
title, dflt, ext, initdir, (char_u *)_(filter));
|
||||
|
||||
/* We hang around in the dialog for a while, the user might do some
|
||||
* things to our files. The Win32 dialog allows deleting or renaming
|
||||
|
||||
+1
-1
@@ -3729,7 +3729,7 @@ vim_beep(
|
||||
/* No restore color information, refresh the screen. */
|
||||
if (has_vtp_working() != 0
|
||||
# ifdef FEAT_TERMGUICOLORS
|
||||
&& p_tgc
|
||||
&& (p_tgc || (!p_tgc && t_colors >= 256))
|
||||
# endif
|
||||
)
|
||||
{
|
||||
|
||||
@@ -1573,6 +1573,14 @@ get_spec_reg(
|
||||
*allocated = TRUE;
|
||||
return TRUE;
|
||||
|
||||
case Ctrl_L: /* Line under cursor */
|
||||
if (!errmsg)
|
||||
return FALSE;
|
||||
|
||||
*argp = ml_get_buf(curwin->w_buffer,
|
||||
curwin->w_cursor.lnum, FALSE);
|
||||
return TRUE;
|
||||
|
||||
case '_': /* black hole: always empty */
|
||||
*argp = (char_u *)"";
|
||||
return TRUE;
|
||||
@@ -2703,6 +2711,8 @@ op_insert(oparg_T *oap, long count1)
|
||||
{
|
||||
struct block_def bd2;
|
||||
int did_indent = FALSE;
|
||||
size_t len;
|
||||
int add;
|
||||
|
||||
/* If indent kicked in, the firstline might have changed
|
||||
* but only do that, if the indent actually increased. */
|
||||
@@ -2781,9 +2791,15 @@ op_insert(oparg_T *oap, long count1)
|
||||
* Subsequent calls to ml_get() flush the firstline data - take a
|
||||
* copy of the required string.
|
||||
*/
|
||||
firstline = ml_get(oap->start.lnum) + bd.textcol;
|
||||
firstline = ml_get(oap->start.lnum);
|
||||
len = STRLEN(firstline);
|
||||
add = bd.textcol;
|
||||
if (oap->op_type == OP_APPEND)
|
||||
firstline += bd.textlen;
|
||||
add += bd.textlen;
|
||||
if ((size_t)add > len)
|
||||
firstline += len; // short line, point to the NUL
|
||||
else
|
||||
firstline += add;
|
||||
if (pre_textlen >= 0
|
||||
&& (ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
|
||||
{
|
||||
|
||||
+23
-2
@@ -6190,6 +6190,9 @@ did_set_string_option(
|
||||
int redraw_gui_only = FALSE;
|
||||
#endif
|
||||
int ft_changed = FALSE;
|
||||
#if defined(FEAT_VTP) && defined(FEAT_TERMGUICOLORS)
|
||||
int did_swaptcap = FALSE;
|
||||
#endif
|
||||
|
||||
/* Get the global option to compare with, otherwise we would have to check
|
||||
* two values for all local options. */
|
||||
@@ -6933,6 +6936,13 @@ did_set_string_option(
|
||||
vim_free(T_CCO);
|
||||
T_CCO = empty_option;
|
||||
}
|
||||
#if defined(FEAT_VTP) && defined(FEAT_TERMGUICOLORS)
|
||||
if (is_term_win32())
|
||||
{
|
||||
swap_tcap();
|
||||
did_swaptcap = TRUE;
|
||||
}
|
||||
#endif
|
||||
/* We now have a different color setup, initialize it again. */
|
||||
init_highlight(TRUE, FALSE);
|
||||
}
|
||||
@@ -7797,6 +7807,16 @@ did_set_string_option(
|
||||
#endif
|
||||
check_redraw(options[opt_idx].flags);
|
||||
|
||||
#if defined(FEAT_VTP) && defined(FEAT_TERMGUICOLORS)
|
||||
if (did_swaptcap)
|
||||
{
|
||||
if (t_colors < 256)
|
||||
p_tgc = 0;
|
||||
set_termname((char_u *)"win32");
|
||||
init_highlight(TRUE, FALSE);
|
||||
}
|
||||
#endif
|
||||
|
||||
return errmsg;
|
||||
}
|
||||
|
||||
@@ -8887,7 +8907,8 @@ set_bool_option(
|
||||
p_tgc = 0;
|
||||
return (char_u*)N_("E954: 24-bit colors are not supported on this environment");
|
||||
}
|
||||
swap_tcap();
|
||||
if (is_term_win32())
|
||||
swap_tcap();
|
||||
# endif
|
||||
# ifdef FEAT_GUI
|
||||
if (!gui.in_use && !gui.starting)
|
||||
@@ -8896,7 +8917,7 @@ set_bool_option(
|
||||
# ifdef FEAT_VTP
|
||||
control_console_color_rgb();
|
||||
/* reset t_Co */
|
||||
if (STRCMP(T_NAME, "win32") == 0)
|
||||
if (is_term_win32())
|
||||
set_termname(T_NAME);
|
||||
# endif
|
||||
}
|
||||
|
||||
+38
-5
@@ -214,7 +214,7 @@ static guicolor_T save_console_bg_rgb;
|
||||
static guicolor_T save_console_fg_rgb;
|
||||
|
||||
# ifdef FEAT_TERMGUICOLORS
|
||||
# define USE_VTP (vtp_working && p_tgc)
|
||||
# define USE_VTP (vtp_working && is_term_win32() && (p_tgc || (!p_tgc && t_colors >= 256)))
|
||||
# else
|
||||
# define USE_VTP 0
|
||||
# endif
|
||||
@@ -2630,7 +2630,6 @@ mch_init(void)
|
||||
|
||||
/* set termcap codes to current text attributes */
|
||||
update_tcap(g_attrCurrent);
|
||||
swap_tcap();
|
||||
|
||||
GetConsoleCursorInfo(g_hConOut, &g_cci);
|
||||
GetConsoleMode(g_hConIn, &g_cmodein);
|
||||
@@ -5763,7 +5762,11 @@ clear_chars(
|
||||
if (!USE_VTP)
|
||||
FillConsoleOutputAttribute(g_hConOut, g_attrCurrent, n, coord, &dwDummy);
|
||||
else
|
||||
FillConsoleOutputAttribute(g_hConOut, 0, n, coord, &dwDummy);
|
||||
{
|
||||
set_console_color_rgb();
|
||||
gotoxy(coord.X + 1, coord.Y + 1);
|
||||
vtp_printf("\033[%dX", n);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7653,6 +7656,18 @@ vtp_sgr_bulks(
|
||||
vtp_printf((char *)buf);
|
||||
}
|
||||
|
||||
# ifdef FEAT_TERMGUICOLORS
|
||||
static int
|
||||
ctermtoxterm(
|
||||
int cterm)
|
||||
{
|
||||
uint8_t r, g, b, idx;
|
||||
|
||||
cterm_color2rgb(cterm, &r, &g, &b, &idx);
|
||||
return (((int)r << 16) | ((int)g << 8) | (int)b);
|
||||
}
|
||||
# endif
|
||||
|
||||
static void
|
||||
set_console_color_rgb(void)
|
||||
{
|
||||
@@ -7661,6 +7676,8 @@ set_console_color_rgb(void)
|
||||
int id;
|
||||
guicolor_T fg = INVALCOLOR;
|
||||
guicolor_T bg = INVALCOLOR;
|
||||
int ctermfg;
|
||||
int ctermbg;
|
||||
|
||||
if (!USE_VTP)
|
||||
return;
|
||||
@@ -7669,9 +7686,19 @@ set_console_color_rgb(void)
|
||||
if (id > 0)
|
||||
syn_id2colors(id, &fg, &bg);
|
||||
if (fg == INVALCOLOR)
|
||||
fg = 0xc0c0c0; /* white text */
|
||||
{
|
||||
ctermfg = -1;
|
||||
if (id > 0)
|
||||
syn_id2cterm_bg(id, &ctermfg, &ctermbg);
|
||||
fg = ctermfg != -1 ? ctermtoxterm(ctermfg) : 0xc0c0c0; /* white */
|
||||
}
|
||||
if (bg == INVALCOLOR)
|
||||
bg = 0x000000; /* black background */
|
||||
{
|
||||
ctermbg = -1;
|
||||
if (id > 0)
|
||||
syn_id2cterm_bg(id, &ctermfg, &ctermbg);
|
||||
bg = ctermbg != -1 ? ctermtoxterm(ctermbg) : 0x000000; /* black */
|
||||
}
|
||||
fg = (GetRValue(fg) << 16) | (GetGValue(fg) << 8) | GetBValue(fg);
|
||||
bg = (GetRValue(bg) << 16) | (GetGValue(bg) << 8) | GetBValue(bg);
|
||||
|
||||
@@ -7730,4 +7757,10 @@ use_vtp(void)
|
||||
return USE_VTP;
|
||||
}
|
||||
|
||||
int
|
||||
is_term_win32(void)
|
||||
{
|
||||
return T_NAME != NULL && STRCMP(T_NAME, "win32") == 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
+2
-2
@@ -130,11 +130,11 @@ all: $(MOFILES)
|
||||
|
||||
first_time:
|
||||
$(XGETTEXT) --default-domain=$(LANGUAGE) \
|
||||
--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h
|
||||
--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h ../vim.h
|
||||
|
||||
$(LANGUAGES):
|
||||
$(XGETTEXT) --default-domain=$(PACKAGE) \
|
||||
--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h
|
||||
--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h ../vim.h
|
||||
$(MV) $(PACKAGE).po $(PACKAGE).pot
|
||||
$(CP) $@.po $@.po.orig
|
||||
$(MV) $@.po $@.po.old
|
||||
|
||||
@@ -139,11 +139,11 @@ all: $(MOFILES)
|
||||
|
||||
first_time:
|
||||
$(XGETTEXT) --default-domain=$(LANGUAGE) \
|
||||
--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h
|
||||
--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h ../vim.h
|
||||
|
||||
$(LANGUAGES):
|
||||
$(XGETTEXT) --default-domain=$(PACKAGE) \
|
||||
--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h
|
||||
--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 $(wildcard ../*.c) ../if_perl.xs ../GvimExt/gvimext.cpp $(wildcard ../globals.h) ../if_py_both.h ../vim.h
|
||||
$(MV) $(PACKAGE).po $(PACKAGE).pot
|
||||
$(CP) $@.po $@.po.orig
|
||||
$(MV) $@.po $@.po.old
|
||||
|
||||
+1
-1
@@ -119,7 +119,7 @@ INSTALLDIR = $(VIMRUNTIME)\lang\$(LANGUAGE)\LC_MESSAGES
|
||||
all: $(MOFILES)
|
||||
|
||||
files:
|
||||
$(LS) $(LSFLAGS) ..\*.c ..\if_perl.xs ..\GvimExt\gvimext.cpp ..\globals.h ..\if_py_both.h > .\files
|
||||
$(LS) $(LSFLAGS) ..\*.c ..\if_perl.xs ..\GvimExt\gvimext.cpp ..\globals.h ..\if_py_both.h ..\vim.h > .\files
|
||||
|
||||
first_time: files
|
||||
set OLD_PO_FILE_INPUT=yes
|
||||
|
||||
+2
-2
@@ -281,10 +281,10 @@ distclean: clean
|
||||
checkclean:
|
||||
rm -f *.ck
|
||||
|
||||
$(PACKAGE).pot: ../*.c ../if_perl.xs ../GvimExt/gvimext.cpp ../globals.h ../if_py_both.h
|
||||
$(PACKAGE).pot: ../*.c ../if_perl.xs ../GvimExt/gvimext.cpp ../globals.h ../if_py_both.h ../vim.h
|
||||
cd ..; $(XGETTEXT) --default-domain=$(PACKAGE) \
|
||||
--add-comments --keyword=_ --keyword=N_ --keyword=NGETTEXT:1,2 \
|
||||
*.c if_perl.xs GvimExt/gvimext.cpp globals.h if_py_both.h
|
||||
*.c if_perl.xs GvimExt/gvimext.cpp globals.h if_py_both.h vim.h
|
||||
mv -f ../$(PACKAGE).po $(PACKAGE).pot
|
||||
|
||||
update-po: $(LANGUAGES)
|
||||
|
||||
@@ -121,6 +121,7 @@ endfunc
|
||||
|
||||
" Check that the \n at the end of the msgid line is also present in the msgstr
|
||||
" line. Skip over the header.
|
||||
1
|
||||
/^"MIME-Version:
|
||||
while 1
|
||||
let lnum = search('^msgid\>')
|
||||
|
||||
+145
-55
@@ -11,14 +11,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Vim(deutsch)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-10-15 22:00+0200\n"
|
||||
"POT-Creation-Date: 2018-04-30 15:16+0200\n"
|
||||
"PO-Revision-Date: 2008-05-24 17:26+0200\n"
|
||||
"Last-Translator: Christian Brabandt\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
"Last-Translator: Christian Brabandt <cb@256bit.org>\n"
|
||||
"Language-Team: German\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO_8859-1\n"
|
||||
"Content-Transfer-Encoding: 8-bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "E831: bf_key_init() called with empty password"
|
||||
msgstr "E831: bf_key_init() mit leerem passwort aufgerufen."
|
||||
@@ -535,21 +536,6 @@ msgstr "E743: Variable ist zu tief verschachtelt f
|
||||
msgid "E109: Missing ':' after '?'"
|
||||
msgstr "E109: Fehlender ':' nach '?'"
|
||||
|
||||
msgid "E691: Can only compare List with List"
|
||||
msgstr "E691: Kann nur eine Liste mit einer Liste vergleichen."
|
||||
|
||||
msgid "E692: Invalid operation for List"
|
||||
msgstr "E692: Unzulässige Operation für Listen"
|
||||
|
||||
msgid "E735: Can only compare Dictionary with Dictionary"
|
||||
msgstr "E735: Kann nur ein Dictionary mit einem Dictionary vergleichen"
|
||||
|
||||
msgid "E736: Invalid operation for Dictionary"
|
||||
msgstr "E736: Unzulässige Funktion für ein Dictionary"
|
||||
|
||||
msgid "E694: Invalid operation for Funcrefs"
|
||||
msgstr "E694: Unzulässige Operation für Funktionsreferenzen"
|
||||
|
||||
msgid "E804: Cannot use '%' with Float"
|
||||
msgstr "E804: Kann '%' mit Floats benutzen."
|
||||
|
||||
@@ -678,6 +664,21 @@ msgstr ""
|
||||
"\n"
|
||||
"\tZuletzt gesetzt in "
|
||||
|
||||
msgid "E691: Can only compare List with List"
|
||||
msgstr "E691: Kann nur eine Liste mit einer Liste vergleichen."
|
||||
|
||||
msgid "E692: Invalid operation for List"
|
||||
msgstr "E692: Unzulässige Operation für Listen"
|
||||
|
||||
msgid "E735: Can only compare Dictionary with Dictionary"
|
||||
msgstr "E735: Kann nur ein Dictionary mit einem Dictionary vergleichen"
|
||||
|
||||
msgid "E736: Invalid operation for Dictionary"
|
||||
msgstr "E736: Unzulässige Funktion für ein Dictionary"
|
||||
|
||||
msgid "E694: Invalid operation for Funcrefs"
|
||||
msgstr "E694: Unzulässige Operation für Funktionsreferenzen"
|
||||
|
||||
msgid "map() argument"
|
||||
msgstr "map() Argument"
|
||||
|
||||
@@ -703,6 +704,11 @@ msgstr "E785: complete() kann nur im Einf
|
||||
msgid "&Ok"
|
||||
msgstr "&Ok"
|
||||
|
||||
msgid "+-%s%3ld line: "
|
||||
msgid_plural "+-%s%3ld lines: "
|
||||
msgstr[0] "+-%s%3ld Zeile, "
|
||||
msgstr[1] "+-%s%3ld Zeilen, "
|
||||
|
||||
#, c-format
|
||||
msgid "E700: Unknown function: %s"
|
||||
msgstr "E700: Unbekannte Funktion: %s"
|
||||
@@ -807,10 +813,19 @@ msgstr "E677: Fehler beim Schreiben einer tempor
|
||||
msgid "E921: Invalid callback argument"
|
||||
msgstr "E921: Ungülgültiges Callback Argument"
|
||||
|
||||
msgid "<%s>%s%s %d, Hex %02x, Oct %03o, Digr %s"
|
||||
msgstr "<%s>%s%s %d, Hex %02x, Oktal %03o, Digr %s"
|
||||
|
||||
#, c-format
|
||||
msgid "<%s>%s%s %d, Hex %02x, Octal %03o"
|
||||
msgstr "<%s>%s%s %d, Hex %02x, Oktal %03o"
|
||||
|
||||
msgid "> %d, Hex %04x, Oct %o, Digr %s"
|
||||
msgstr "> %d, Hex %04x, Oktal %o, Digr %s"
|
||||
|
||||
msgid "> %d, Hex %08x, Oct %o, Digr %s"
|
||||
msgstr "> %d, Hex %08x, Oktal %o, Digr %s"
|
||||
|
||||
#, c-format
|
||||
msgid "> %d, Hex %04x, Octal %o"
|
||||
msgstr "> %d, Hex %04x, Oktal %o"
|
||||
@@ -1117,6 +1132,13 @@ msgstr "Keine Alt-Dateien"
|
||||
msgid "Entering Debug mode. Type \"cont\" to continue."
|
||||
msgstr "Debug-Modus. Geben Sie \"cont\" zum Fortsetzen ein."
|
||||
|
||||
msgid "Oldval = \"%s\""
|
||||
msgstr "Alter Wert = \"%s\""
|
||||
|
||||
#, c-format
|
||||
msgid "Newval = \"%s\""
|
||||
msgstr "Neuer Wert = \"%s\""
|
||||
|
||||
#, c-format
|
||||
msgid "line %ld: %s"
|
||||
msgstr "Zeile %ld: %s"
|
||||
@@ -1147,6 +1169,10 @@ msgstr "Keine Haltepunkte definiert"
|
||||
msgid "%3d %s %s line %ld"
|
||||
msgstr "%3d %s %s Zeile %ld"
|
||||
|
||||
#, c-format
|
||||
msgid "%3d expr %s"
|
||||
msgstr "%3d expr %s"
|
||||
|
||||
msgid "E750: First use \":profile start {fname}\""
|
||||
msgstr "E750: Benutze vorher :profile start <fname>"
|
||||
|
||||
@@ -1154,6 +1180,7 @@ msgstr "E750: Benutze vorher :profile start <fname>"
|
||||
msgid "Save changes to \"%s\"?"
|
||||
msgstr "Änderungen in \"%s\" speichern?"
|
||||
|
||||
#, c-format
|
||||
msgid "E947: Job still running in buffer \"%s\""
|
||||
msgstr "E947: Job noch aktiv in Puffer \"%s\""
|
||||
|
||||
@@ -1306,9 +1333,6 @@ msgstr ""
|
||||
msgid "E319: Sorry, the command is not available in this version"
|
||||
msgstr "E319: Der Befehl ist in dieser Version nicht implementiert"
|
||||
|
||||
msgid "E172: Only one file name allowed"
|
||||
msgstr "E172: Nur ein Dateiname erlaubt"
|
||||
|
||||
msgid "1 more file to edit. Quit anyway?"
|
||||
msgstr "Eine weitere Datei zum Editieren. Trotzdem beenden?"
|
||||
|
||||
@@ -1793,9 +1817,6 @@ msgstr "E509: Sicherungsdatei kann nicht angelegt werden (erzwinge mit !)"
|
||||
msgid "E510: Can't make backup file (add ! to override)"
|
||||
msgstr "E510: Sicherungsdatei kann nicht erstellt werden (erzwinge mit !)"
|
||||
|
||||
msgid "E460: The resource fork would be lost (add ! to override)"
|
||||
msgstr "E460: Der Ressourcefork geht verloren (erzwinge mit !)"
|
||||
|
||||
msgid "E214: Can't find temp file for writing"
|
||||
msgstr "E214: Temporäre Datei kann nicht zum Schreiben geöffnet werden"
|
||||
|
||||
@@ -1808,8 +1829,8 @@ msgstr "E166: Gelinkte Datei kann nicht zum Schreiben ge
|
||||
msgid "E212: Can't open file for writing"
|
||||
msgstr "E212: Datei kann nicht zum Schreiben geöffnet werden"
|
||||
|
||||
msgid "E667: Fsync failed"
|
||||
msgstr "E667: Fsync fehlgeschlagen"
|
||||
msgid "E949: File changed while writing"
|
||||
msgstr "E949: Datei wurde während des Schreibens verändert"
|
||||
|
||||
msgid "E512: Close failed"
|
||||
msgstr "E512: Fehler beim Schließen"
|
||||
@@ -2069,6 +2090,11 @@ msgid "E351: Cannot delete fold with current 'foldmethod'"
|
||||
msgstr ""
|
||||
"E351: Faltung kann mit der aktuellen Faltungsmethode nicht gelöscht werden"
|
||||
|
||||
msgid "+--%3ld line folded "
|
||||
msgid_plural "+--%3ld lines folded "
|
||||
msgstr[0] "%3ld Zeile gefaltet "
|
||||
msgstr[1] "%3ld Zeilen gefaltet "
|
||||
|
||||
msgid "E222: Add to read buffer"
|
||||
msgstr "E222: Zum Lesepuffer hinzufügen"
|
||||
|
||||
@@ -4273,9 +4299,8 @@ msgstr ""
|
||||
"Sp %s von %s; Zeile %ld von %ld; Wort %lld von %lld; Zeichen %lld von %lld; "
|
||||
"Byte %lld von %lld"
|
||||
|
||||
#, c-format
|
||||
msgid "(+%ld for BOM)"
|
||||
msgstr "(+%ld für BOM)"
|
||||
msgid "(+%lld for BOM)"
|
||||
msgstr "(+%lld für BOM)"
|
||||
|
||||
msgid "Thanks for flying Vim"
|
||||
msgstr "Danke für die Benutzung von Vim"
|
||||
@@ -4327,6 +4352,9 @@ msgstr "E835: Widerspricht Wert aus 'fillchars'"
|
||||
msgid "E617: Cannot be changed in the GTK+ 2 GUI"
|
||||
msgstr "E617: Kann in der GTK+ 2 GUI nicht verändert werden"
|
||||
|
||||
msgid "E950: Cannot convert between %s and %s"
|
||||
msgstr "E950: Kann nicht zwischen %s und %s konvertieren."
|
||||
|
||||
msgid "E524: Missing colon"
|
||||
msgstr "E524: Fehlender Doppelpunkt"
|
||||
|
||||
@@ -4393,6 +4421,9 @@ msgstr "E590: Ein Vorschaufenster existiert bereits"
|
||||
msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
|
||||
msgstr "W17: Arabisch benötigt UTF-8, bitte ':set encoding=utf-8' ausführen"
|
||||
|
||||
msgid "E954: 24-bit colors are not supported on this environment"
|
||||
msgstr "E954: 24-bit Farben werden in dieser Umgebung nicht unterstützt"
|
||||
|
||||
#, c-format
|
||||
msgid "E593: Need at least %d lines"
|
||||
msgstr "E593: Mindestens %d Zeilen werden benötigt"
|
||||
@@ -4678,6 +4709,9 @@ msgstr "Vim Achtung"
|
||||
msgid "shell returned %d"
|
||||
msgstr "Shell gab %d zurück"
|
||||
|
||||
msgid "E926: Current location list was changed"
|
||||
msgstr "E926: Aktuelle Positionsliste wurde geändert."
|
||||
|
||||
#, c-format
|
||||
msgid "E372: Too many %%%c in format string"
|
||||
msgstr "E372: Zu viele %%%c im Format"
|
||||
@@ -4716,9 +4750,6 @@ msgstr "E924: Aktuelles Fenster wurde geschlossen."
|
||||
msgid "E925: Current quickfix was changed"
|
||||
msgstr "E925: Aktuelle Quickfix wurde geändert."
|
||||
|
||||
msgid "E926: Current location list was changed"
|
||||
msgstr "E926: Aktuelle Positionsliste wurde geändert."
|
||||
|
||||
#, c-format
|
||||
msgid "(%d of %d)%s%s: "
|
||||
msgstr "(%d aus %d)%s%s: "
|
||||
@@ -4881,6 +4912,9 @@ msgstr "E877: (NFA regexp) Ung
|
||||
msgid "E867: (NFA) Unknown operator '\\z%c'"
|
||||
msgstr "E867: (NFA) Unbekannter Operator '\\z%c'"
|
||||
|
||||
msgid "E951: \\% value too large"
|
||||
msgstr "E951: \\% Wert zu groß"
|
||||
|
||||
#, c-format
|
||||
msgid "E867: (NFA) Unknown operator '\\%%%c'"
|
||||
msgstr "E867: (NFA) Unbekannter Operator '\\%%%c'"
|
||||
@@ -5302,9 +5336,8 @@ msgstr "Lese W
|
||||
msgid "E760: No word count in %s"
|
||||
msgstr "E760: Keine Wörter gezählt in %s"
|
||||
|
||||
#, c-format
|
||||
msgid "line %6d, word %6d - %s"
|
||||
msgstr "Zeile %6d, Wort %6d - %s"
|
||||
msgid "line %6d, word %6ld - %s"
|
||||
msgstr "Zeile %6d, Wort %6ld - %s"
|
||||
|
||||
#, c-format
|
||||
msgid "Duplicate word in %s line %d: %s"
|
||||
@@ -5390,8 +5423,8 @@ msgstr "Gesch
|
||||
msgid "E751: Output file name must not have region name"
|
||||
msgstr "E751: Ausgabedatei darf keinen Regionsnamen haben"
|
||||
|
||||
msgid "E754: Only up to 8 regions supported"
|
||||
msgstr "E754: Maximal 8 Regionen unterstützt"
|
||||
msgid "E754: Only up to %ld regions supported"
|
||||
msgstr "E754: Maximal %ld Regionen unterstützt"
|
||||
|
||||
#, c-format
|
||||
msgid "E755: Invalid region in %s"
|
||||
@@ -5781,6 +5814,10 @@ msgstr ""
|
||||
msgid "Cannot open $VIMRUNTIME/rgb.txt"
|
||||
msgstr "Kann Datei $VIMRUNTIME/rgb.txt nicht öffnen."
|
||||
|
||||
#, c-format
|
||||
msgid "Kill job in \"%s\"?"
|
||||
msgstr "Beende job in \"%s\"?"
|
||||
|
||||
msgid "Terminal"
|
||||
msgstr "Terminal"
|
||||
|
||||
@@ -5796,6 +5833,12 @@ msgstr "F
|
||||
msgid "finished"
|
||||
msgstr "beendet"
|
||||
|
||||
msgid "E953: File exists: %s"
|
||||
msgstr "E953: Datei existiert bereits: %s"
|
||||
|
||||
msgid "E955: Not a terminal buffer"
|
||||
msgstr "E955: Kein Terminal Puffer"
|
||||
|
||||
msgid "new shell started\n"
|
||||
msgstr "neue Shell gestartet\n"
|
||||
|
||||
@@ -6109,25 +6152,18 @@ msgstr ""
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"MacOS X (unix) version"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"MacOS X (unix) Version"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"MacOS X version"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"MacOS X Version"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"MacOS version"
|
||||
"macOS version"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"MacOS Version"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"macOS version w/o darwin feat."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"MacOS Version ohne Darwin"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"OpenVMS version"
|
||||
@@ -6230,9 +6266,6 @@ msgstr "mit Carbon GUI."
|
||||
msgid "with Cocoa GUI."
|
||||
msgstr "mit Cocoa GUI."
|
||||
|
||||
msgid "with (classic) GUI."
|
||||
msgstr "mit (klassischem) GUI."
|
||||
|
||||
msgid " Features included (+) or not (-):\n"
|
||||
msgstr " Ein- (+) oder ausschließlich (-) der Eigenschaften:\n"
|
||||
|
||||
@@ -6532,6 +6565,12 @@ msgstr "E474: Ung
|
||||
msgid "E475: Invalid argument: %s"
|
||||
msgstr "E475: Ungültiges Argument: %s"
|
||||
|
||||
msgid "E475: Invalid value for argument %s"
|
||||
msgstr "E475: Ungültiger Wert für Argument: %s"
|
||||
|
||||
msgid "E475: Invalid value for argument %s: %s"
|
||||
msgstr "E475: Ungültiger Wert für Argument %s: %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E15: Invalid expression: %s"
|
||||
msgstr "E15: ungültiger Ausdruck: %s"
|
||||
@@ -6550,6 +6589,9 @@ msgstr "E17: \"%s\" ist ein Verzeichnis"
|
||||
msgid "E364: Library call failed for \"%s()\""
|
||||
msgstr "E364: Bibliotheksaufruf für \"%s()\" schlug fehl"
|
||||
|
||||
msgid "E667: Fsync failed"
|
||||
msgstr "E667: Fsync fehlgeschlagen"
|
||||
|
||||
#, c-format
|
||||
msgid "E448: Could not load library function %s"
|
||||
msgstr "E448: Bibliotheksfunktion %s konnte nicht geladen werden"
|
||||
@@ -6828,6 +6870,9 @@ msgstr "E850: Ung
|
||||
msgid "E919: Directory not found in '%s': \"%s\""
|
||||
msgstr "E919: Verzeichnis nicht gefunden in '%s': \"%s\""
|
||||
|
||||
msgid "E952: Autocommand caused recursive behavior"
|
||||
msgstr "E952: Autokommando verursachten Rekursion"
|
||||
|
||||
msgid "search hit TOP, continuing at BOTTOM"
|
||||
msgstr "Suche erreichte den ANFANG und wurde am ENDE fortgesetzt"
|
||||
|
||||
@@ -7101,3 +7146,48 @@ msgid ""
|
||||
msgstr ""
|
||||
"Fehler beim setzen des Pfades: sys.path ist keine Liste\n"
|
||||
"Fügen Sie vim.VIM_SPECIAL_PATH zu sys.path hinzu"
|
||||
|
||||
msgid ""
|
||||
"Vim macro files (*.vim)\t*.vim\n"
|
||||
"All Files (*.*)\t*.*\n"
|
||||
msgstr ""
|
||||
"Vim Dateien (*.vim)\t*.vim\n"
|
||||
"Alle Dateien (*.*)\t*.*\n"
|
||||
|
||||
msgid "All Files (*.*)\t*.*\n"
|
||||
msgstr "Alle Dateien (*.*)\t*.*\n"
|
||||
|
||||
msgid ""
|
||||
"All Files (*.*)\t*.*\n"
|
||||
"C source (*.c, *.h)\t*.c;*.h\n"
|
||||
"C++ source (*.cpp, *.hpp)\t*.cpp;*.hpp\n"
|
||||
"VB code (*.bas, *.frm)\t*.bas;*.frm\n"
|
||||
"Vim files (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n"
|
||||
msgstr ""
|
||||
"Alle Dateien (*.*)\t*.*\n"
|
||||
"C Quellcode (*.c, *.h)\t*.c;*.h\n"
|
||||
"C++ Quellcode (*.cpp, *.hpp)\t*.cpp;*.hpp\n"
|
||||
"VB Quellcode (*.bas, *.frm)\t*.bas;*.frm\n"
|
||||
"Vim Dateien (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n"
|
||||
|
||||
msgid ""
|
||||
"Vim macro files (*.vim)\t*.vim\n"
|
||||
"All Files (*)\t*\n"
|
||||
msgstr ""
|
||||
"Vim Dateien (*.vim)\t*.vim\n"
|
||||
"Alle Dateien (*)\t*\n"
|
||||
|
||||
msgid "All Files (*)\t*\n"
|
||||
msgstr ""
|
||||
"Alle Dateien (*)\t*\n"
|
||||
|
||||
msgid ""
|
||||
"All Files (*)\t*\n"
|
||||
"C source (*.c, *.h)\t*.c;*.h\n"
|
||||
"C++ source (*.cpp, *.hpp)\t*.cpp;*.hpp\n"
|
||||
"Vim files (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n"
|
||||
msgstr ""
|
||||
"Alle Dateien (*)\t*\n"
|
||||
"C Quellcode (*.c, *.h)\t*.c;*.h\n"
|
||||
"C++ Quellcode (*.cpp, *.hpp)\t*.cpp;*.hpp\n"
|
||||
"Vim Dateien (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n"
|
||||
|
||||
+150
-50
@@ -17,8 +17,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Vim(Esperanto)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-10-02 22:42+0200\n"
|
||||
"PO-Revision-Date: 2017-10-02 22:57+0200\n"
|
||||
"POT-Creation-Date: 2018-04-30 19:32+0200\n"
|
||||
"PO-Revision-Date: 2018-05-30 20:14+0200\n"
|
||||
"Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: eo\n"
|
||||
@@ -543,21 +543,6 @@ msgstr "E743: variablo ingita tro profunde por (mal)ŝlosi"
|
||||
msgid "E109: Missing ':' after '?'"
|
||||
msgstr "E109: Mankas ':' malantaŭ '?'"
|
||||
|
||||
msgid "E691: Can only compare List with List"
|
||||
msgstr "E691: Eblas nur kompari Liston kun Listo"
|
||||
|
||||
msgid "E692: Invalid operation for List"
|
||||
msgstr "E692: Nevalida operacio de Listoj"
|
||||
|
||||
msgid "E735: Can only compare Dictionary with Dictionary"
|
||||
msgstr "E735: Eblas nur kompari Vortaron kun Vortaro"
|
||||
|
||||
msgid "E736: Invalid operation for Dictionary"
|
||||
msgstr "E736: Nevalida operacio de Vortaro"
|
||||
|
||||
msgid "E694: Invalid operation for Funcrefs"
|
||||
msgstr "E694: Nevalida operacio de Funcref-oj"
|
||||
|
||||
msgid "E804: Cannot use '%' with Float"
|
||||
msgstr "E804: Ne eblas uzi '%' kun Glitpunktnombro"
|
||||
|
||||
@@ -683,6 +668,21 @@ msgstr ""
|
||||
"\n"
|
||||
"\tLaste ŝaltita de "
|
||||
|
||||
msgid "E691: Can only compare List with List"
|
||||
msgstr "E691: Eblas nur kompari Liston kun Listo"
|
||||
|
||||
msgid "E692: Invalid operation for List"
|
||||
msgstr "E692: Nevalida operacio de Listoj"
|
||||
|
||||
msgid "E735: Can only compare Dictionary with Dictionary"
|
||||
msgstr "E735: Eblas nur kompari Vortaron kun Vortaro"
|
||||
|
||||
msgid "E736: Invalid operation for Dictionary"
|
||||
msgstr "E736: Nevalida operacio de Vortaro"
|
||||
|
||||
msgid "E694: Invalid operation for Funcrefs"
|
||||
msgstr "E694: Nevalida operacio de Funcref-oj"
|
||||
|
||||
msgid "map() argument"
|
||||
msgstr "argumento de map()"
|
||||
|
||||
@@ -708,6 +708,12 @@ msgstr "E785: complete() uzeblas nur en Enmeta reĝimo"
|
||||
msgid "&Ok"
|
||||
msgstr "&Bone"
|
||||
|
||||
#, c-format
|
||||
msgid "+-%s%3ld line: "
|
||||
msgid_plural "+-%s%3ld lines: "
|
||||
msgstr[0] "+-%s%3ld linio: "
|
||||
msgstr[1] "+-%s%3ld linioj: "
|
||||
|
||||
#, c-format
|
||||
msgid "E700: Unknown function: %s"
|
||||
msgstr "E700: Nekonata funkcio: %s"
|
||||
@@ -810,10 +816,22 @@ msgstr "E677: Eraro dum skribo de provizora dosiero"
|
||||
msgid "E921: Invalid callback argument"
|
||||
msgstr "E921: Nevalida argumento de reagfunctio"
|
||||
|
||||
#, c-format
|
||||
msgid "<%s>%s%s %d, Hex %02x, Oct %03o, Digr %s"
|
||||
msgstr "<%s>%s%s %d, Deksesuma %02x, Okuma %03o, Digr %s"
|
||||
|
||||
#, c-format
|
||||
msgid "<%s>%s%s %d, Hex %02x, Octal %03o"
|
||||
msgstr "<%s>%s%s %d, Deksesuma %02x, Okuma %03o"
|
||||
|
||||
#, c-format
|
||||
msgid "> %d, Hex %04x, Oct %o, Digr %s"
|
||||
msgstr "> %d, Deksesuma %04x, Okuma %o, Digr %s"
|
||||
|
||||
#, c-format
|
||||
msgid "> %d, Hex %08x, Oct %o, Digr %s"
|
||||
msgstr "> %d, Deksesuma %08x, Okuma %o, Digr %s"
|
||||
|
||||
#, c-format
|
||||
msgid "> %d, Hex %04x, Octal %o"
|
||||
msgstr "> %d, Deksesuma %04x, Okuma %o"
|
||||
@@ -1118,6 +1136,14 @@ msgstr "Neniu malnova dosiero"
|
||||
msgid "Entering Debug mode. Type \"cont\" to continue."
|
||||
msgstr "Eniras sencimigan reĝimon. Tajpu \"cont\" por daŭrigi."
|
||||
|
||||
#, c-format
|
||||
msgid "Oldval = \"%s\""
|
||||
msgstr "Malnovaval = \"%s\""
|
||||
|
||||
#, c-format
|
||||
msgid "Newval = \"%s\""
|
||||
msgstr "Novaval = \"%s\""
|
||||
|
||||
#, c-format
|
||||
msgid "line %ld: %s"
|
||||
msgstr "linio %ld: %s"
|
||||
@@ -1148,6 +1174,10 @@ msgstr "Neniu kontrolpunkto estas difinita"
|
||||
msgid "%3d %s %s line %ld"
|
||||
msgstr "%3d %s %s linio %ld"
|
||||
|
||||
#, c-format
|
||||
msgid "%3d expr %s"
|
||||
msgstr "%3d espr %s"
|
||||
|
||||
msgid "E750: First use \":profile start {fname}\""
|
||||
msgstr "E750: Uzu unue \":profile start {dosiernomo}\""
|
||||
|
||||
@@ -1302,9 +1332,6 @@ msgstr "E943: Tabulo de komandoj estas ĝisdatigenda, lanĉu 'make cmdidx'"
|
||||
msgid "E319: Sorry, the command is not available in this version"
|
||||
msgstr "E319: Bedaŭrinde, tiu komando ne haveblas en tiu versio"
|
||||
|
||||
msgid "E172: Only one file name allowed"
|
||||
msgstr "E172: Nur unu dosiernomo permesebla"
|
||||
|
||||
msgid "1 more file to edit. Quit anyway?"
|
||||
msgstr "1 plia redaktenda dosiero. Ĉu tamen eliri?"
|
||||
|
||||
@@ -1781,9 +1808,6 @@ msgstr "E509: Ne eblas krei restaŭrkopion (aldonu ! por transpasi)"
|
||||
msgid "E510: Can't make backup file (add ! to override)"
|
||||
msgstr "E510: Ne eblas krei restaŭrkopion (aldonu ! por transpasi)"
|
||||
|
||||
msgid "E460: The resource fork would be lost (add ! to override)"
|
||||
msgstr "E460: La rimeda forko estus perdita (aldonu ! por transpasi)"
|
||||
|
||||
msgid "E214: Can't find temp file for writing"
|
||||
msgstr "E214: Ne eblas trovi provizoran dosieron por skribi"
|
||||
|
||||
@@ -1796,9 +1820,8 @@ msgstr "E166: Ne eblas malfermi ligitan dosieron por skribi"
|
||||
msgid "E212: Can't open file for writing"
|
||||
msgstr "E212: Ne eblas malfermi la dosieron por skribi"
|
||||
|
||||
# AM: fsync: ne traduku (nomo de C-komando)
|
||||
msgid "E667: Fsync failed"
|
||||
msgstr "E667: Fsync malsukcesis"
|
||||
msgid "E949: File changed while writing"
|
||||
msgstr "E949: Dosiero ŝanĝiĝis dum skribo"
|
||||
|
||||
msgid "E512: Close failed"
|
||||
msgstr "E512: Fermo malsukcesis"
|
||||
@@ -2047,11 +2070,17 @@ msgstr "E350: Ne eblas krei faldon per la aktuala 'foldmethod'"
|
||||
msgid "E351: Cannot delete fold with current 'foldmethod'"
|
||||
msgstr "E351: Ne eblas forviŝi faldon per la aktuala 'foldmethod'"
|
||||
|
||||
#, c-format
|
||||
msgid "+--%3ld line folded "
|
||||
msgid_plural "+--%3ld lines folded "
|
||||
msgstr[0] "+--%3ld linio faldita"
|
||||
msgstr[1] "+--%3ld linioj falditaj"
|
||||
|
||||
msgid "E222: Add to read buffer"
|
||||
msgstr "E222: Aldoni al lega bufro"
|
||||
|
||||
msgid "E223: recursive mapping"
|
||||
msgstr "E223: rekursia mapo"
|
||||
msgstr "E223: rikura mapo"
|
||||
|
||||
#, c-format
|
||||
msgid "E224: global abbreviation already exists for %s"
|
||||
@@ -4221,8 +4250,8 @@ msgstr ""
|
||||
"Bajto %lld de %lld"
|
||||
|
||||
#, c-format
|
||||
msgid "(+%ld for BOM)"
|
||||
msgstr "(+%ld por BOM)"
|
||||
msgid "(+%lld for BOM)"
|
||||
msgstr "(+%lld por BOM)"
|
||||
|
||||
msgid "Thanks for flying Vim"
|
||||
msgstr "Dankon pro flugi per Vim"
|
||||
@@ -4274,6 +4303,10 @@ msgstr "E835: Konfliktoj kun la valoro de 'fillchars'"
|
||||
msgid "E617: Cannot be changed in the GTK+ 2 GUI"
|
||||
msgstr "E617: Ne ŝanĝeblas en la grafika interfaco GTK+ 2"
|
||||
|
||||
#, c-format
|
||||
msgid "E950: Cannot convert between %s and %s"
|
||||
msgstr "E950: Ne eblas konverti de %s al %s"
|
||||
|
||||
msgid "E524: Missing colon"
|
||||
msgstr "E524: Mankas dupunkto"
|
||||
|
||||
@@ -4340,6 +4373,9 @@ msgstr "E590: Antaŭvida fenestro jam ekzistas"
|
||||
msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
|
||||
msgstr "W17: La araba bezonas UTF-8, tajpu \":set encoding=utf-8\""
|
||||
|
||||
msgid "E954: 24-bit colors are not supported on this environment"
|
||||
msgstr "E954: 24-bitaj koloroj ne estas subtenataj en tiu sistemo"
|
||||
|
||||
#, c-format
|
||||
msgid "E593: Need at least %d lines"
|
||||
msgstr "E593: Bezonas almenaŭ %d liniojn"
|
||||
@@ -4626,6 +4662,9 @@ msgstr "Averto de Vim"
|
||||
msgid "shell returned %d"
|
||||
msgstr "la ŝelo liveris %d"
|
||||
|
||||
msgid "E926: Current location list was changed"
|
||||
msgstr "E926: Aktuala listo de lokoj ŝanĝiĝis"
|
||||
|
||||
#, c-format
|
||||
msgid "E372: Too many %%%c in format string"
|
||||
msgstr "E372: Tro da %%%c en formata ĉeno"
|
||||
@@ -4664,9 +4703,6 @@ msgstr "E924: Aktuala vindozo fermiĝis"
|
||||
msgid "E925: Current quickfix was changed"
|
||||
msgstr "E925: Aktuala rapidriparo ŝanĝiĝis"
|
||||
|
||||
msgid "E926: Current location list was changed"
|
||||
msgstr "E926: Aktuala listo de lokoj ŝanĝiĝis"
|
||||
|
||||
#, c-format
|
||||
msgid "(%d of %d)%s%s: "
|
||||
msgstr "(%d de %d)%s%s: "
|
||||
@@ -4830,6 +4866,9 @@ msgstr "E877: (NFA-regulesprimo) Nevalida klaso de signoj: %ld"
|
||||
msgid "E867: (NFA) Unknown operator '\\z%c'"
|
||||
msgstr "E867: (NFA) Nekonata operatoro '\\z%c'"
|
||||
|
||||
msgid "E951: \\% value too large"
|
||||
msgstr "E951: tro larga valoro de \\%"
|
||||
|
||||
#, c-format
|
||||
msgid "E867: (NFA) Unknown operator '\\%%%c'"
|
||||
msgstr "E867: (NFA) Nekonata operatoro '\\%%%c'"
|
||||
@@ -5248,8 +5287,8 @@ msgid "E760: No word count in %s"
|
||||
msgstr "E760: Ne estas nombro de vortoj en %s"
|
||||
|
||||
#, c-format
|
||||
msgid "line %6d, word %6d - %s"
|
||||
msgstr "linio %6d, vorto %6d - %s"
|
||||
msgid "line %6d, word %6ld - %s"
|
||||
msgstr "linio %6d, vorto %6ld - %s"
|
||||
|
||||
#, c-format
|
||||
msgid "Duplicate word in %s line %d: %s"
|
||||
@@ -5335,8 +5374,9 @@ msgstr "Evaluo de memoro uzata: %d bajtoj"
|
||||
msgid "E751: Output file name must not have region name"
|
||||
msgstr "E751: Nomo de eliga dosiero ne devas havi nomon de regiono"
|
||||
|
||||
msgid "E754: Only up to 8 regions supported"
|
||||
msgstr "E754: Nur 8 regionoj subtenataj"
|
||||
#, c-format
|
||||
msgid "E754: Only up to %ld regions supported"
|
||||
msgstr "E754: Nur ĝis %ld regionoj subtenataj"
|
||||
|
||||
#, c-format
|
||||
msgid "E755: Invalid region in %s"
|
||||
@@ -5723,6 +5763,10 @@ msgstr ""
|
||||
msgid "Cannot open $VIMRUNTIME/rgb.txt"
|
||||
msgstr "Ne povas malfermi $VIMRUNTIME/rgb.txt"
|
||||
|
||||
#, c-format
|
||||
msgid "Kill job in \"%s\"?"
|
||||
msgstr "Ĉu ĉesigi taskon en \"%s\"?"
|
||||
|
||||
msgid "Terminal"
|
||||
msgstr "Terminalo"
|
||||
|
||||
@@ -5738,6 +5782,13 @@ msgstr "ruliĝas"
|
||||
msgid "finished"
|
||||
msgstr "finiĝis"
|
||||
|
||||
#, c-format
|
||||
msgid "E953: File exists: %s"
|
||||
msgstr "E953: Dosiero jam ekzistas: %s"
|
||||
|
||||
msgid "E955: Not a terminal buffer"
|
||||
msgstr "E955: Ne estas bufro de terminalo"
|
||||
|
||||
msgid "new shell started\n"
|
||||
msgstr "nova ŝelo lanĉita\n"
|
||||
|
||||
@@ -6043,24 +6094,17 @@ msgstr ""
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"MacOS X (unix) version"
|
||||
"macOS version"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Versio Mak OS X (unikso)"
|
||||
"Versio makOS"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"MacOS X version"
|
||||
"macOS version w/o darwin feat."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Versio Mak OS X"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"MacOS version"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Versio Mak OS"
|
||||
"Versio makOS sen ebloj de darwin."
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
@@ -6164,9 +6208,6 @@ msgstr "kun grafika interfaco Carbon."
|
||||
msgid "with Cocoa GUI."
|
||||
msgstr "kun grafika interfaco Cocoa."
|
||||
|
||||
msgid "with (classic) GUI."
|
||||
msgstr "kun (klasika) grafika interfaco."
|
||||
|
||||
msgid " Features included (+) or not (-):\n"
|
||||
msgstr " Ebloj inkluzivitaj (+) aŭ ne (-):\n"
|
||||
|
||||
@@ -6474,6 +6515,14 @@ msgstr "E474: Nevalida argumento"
|
||||
msgid "E475: Invalid argument: %s"
|
||||
msgstr "E475: Nevalida argumento: %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E475: Invalid value for argument %s"
|
||||
msgstr "E475: Nevalida valoro de argumento: %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E475: Invalid value for argument %s: %s"
|
||||
msgstr "E475: Nevalida valoro de argumento %s: %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E15: Invalid expression: %s"
|
||||
msgstr "E15: Nevalida esprimo: %s"
|
||||
@@ -6492,6 +6541,10 @@ msgstr "E17: \"%s\" estas dosierujo"
|
||||
msgid "E364: Library call failed for \"%s()\""
|
||||
msgstr "E364: Alvoko al biblioteko malsukcesis por \"%s()\""
|
||||
|
||||
# AM: fsync: ne traduku (nomo de C-komando)
|
||||
msgid "E667: Fsync failed"
|
||||
msgstr "E667: Fsync malsukcesis"
|
||||
|
||||
#, c-format
|
||||
msgid "E448: Could not load library function %s"
|
||||
msgstr "E448: Ne eblis ŝargi bibliotekan funkcion %s"
|
||||
@@ -6762,6 +6815,9 @@ msgstr "E850: Nevalida nomo de reĝistro"
|
||||
msgid "E919: Directory not found in '%s': \"%s\""
|
||||
msgstr "E919: Dosierujo ne trovita en '%s': \"%s\""
|
||||
|
||||
msgid "E952: Autocommand caused recursive behavior"
|
||||
msgstr "E952: Aŭtokomandoj kaŭzis rikiran konduton"
|
||||
|
||||
msgid "search hit TOP, continuing at BOTTOM"
|
||||
msgstr "serĉo atingis SUPRON, daŭrigonte al SUBO"
|
||||
|
||||
@@ -7024,3 +7080,47 @@ msgid ""
|
||||
msgstr ""
|
||||
"Agordo de serĉvojo malsukcesis: sys.path ne estas listo\n"
|
||||
"Vi nun devas aldoni vim.VIM_SPECIAL_PATH al sys.path"
|
||||
|
||||
msgid ""
|
||||
"Vim macro files (*.vim)\t*.vim\n"
|
||||
"All Files (*.*)\t*.*\n"
|
||||
msgstr ""
|
||||
"Doserioj de vim-makrooj (*.vim)\t*.vim\n"
|
||||
"Ĉiuj dosieroj (*.*)\t*.*\n"
|
||||
|
||||
msgid "All Files (*.*)\t*.*\n"
|
||||
msgstr "Ĉiuj dosieroj (*.*)\t*.*\n"
|
||||
|
||||
msgid ""
|
||||
"All Files (*.*)\t*.*\n"
|
||||
"C source (*.c, *.h)\t*.c;*.h\n"
|
||||
"C++ source (*.cpp, *.hpp)\t*.cpp;*.hpp\n"
|
||||
"VB code (*.bas, *.frm)\t*.bas;*.frm\n"
|
||||
"Vim files (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n"
|
||||
msgstr ""
|
||||
"Ĉiuj dosieroj (*.*)\t*.*\n"
|
||||
"Dosieroj C (*.c, *.h)\t*.c;*.h\n"
|
||||
"Dosieroj C++ (*.cpp, *.hpp)\t*.cpp;*.hpp\n"
|
||||
"Fonto VB (*.bas, *.frm)\t.bas;*.frm\n"
|
||||
"Dosieroj Vim (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n"
|
||||
|
||||
msgid ""
|
||||
"Vim macro files (*.vim)\t*.vim\n"
|
||||
"All Files (*)\t*\n"
|
||||
msgstr ""
|
||||
"Doserioj de vim-makrooj (*.vim)\t*.vim\n"
|
||||
"Ĉiuj dosieroj (*)\t*\n"
|
||||
|
||||
msgid "All Files (*)\t*\n"
|
||||
msgstr "Ĉiuj dosieroj (*)\t*\n"
|
||||
|
||||
msgid ""
|
||||
"All Files (*)\t*\n"
|
||||
"C source (*.c, *.h)\t*.c;*.h\n"
|
||||
"C++ source (*.cpp, *.hpp)\t*.cpp;*.hpp\n"
|
||||
"Vim files (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n"
|
||||
msgstr ""
|
||||
"Ĉiuj dosieroj (*)\t*\n"
|
||||
"Dosieroj C (*.c, *.h)\t*.c;*.h\n"
|
||||
"Dosieroj C++ (*.cpp, *.hpp)\t*.cpp;*.hpp\n"
|
||||
"Dosieroj Vim (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n"
|
||||
|
||||
+110
-53
@@ -6,14 +6,14 @@
|
||||
# FIRST AUTHOR DindinX <David.Odin@bigfoot.com> 2000.
|
||||
# SECOND AUTHOR Adrien Beau <version.francaise@free.fr> 2002, 2003.
|
||||
# THIRD AUTHOR David Blanchet <david.blanchet@free.fr> 2006, 2008.
|
||||
# FOURTH AUTHOR Dominique Pellé <dominique.pelle@gmail.com> 2008, 2017.
|
||||
# FOURTH AUTHOR Dominique Pellé <dominique.pelle@gmail.com> 2008, 2018.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Vim(Français)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-10-04 23:32+0200\n"
|
||||
"PO-Revision-Date: 2017-10-04 23:44+0200\n"
|
||||
"POT-Creation-Date: 2018-04-27 17:51+0200\n"
|
||||
"PO-Revision-Date: 2018-04-27 18:06+0200\n"
|
||||
"Last-Translator: Dominique Pellé <dominique.pelle@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
@@ -592,7 +592,7 @@ msgstr "E108: Variable inexistante : %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E940: Cannot lock or unlock variable %s"
|
||||
msgstr "E940: Impossible de (dé)verrouiler la variable %s"
|
||||
msgstr "E940: Impossible de (dé)verrouiller la variable %s"
|
||||
|
||||
msgid "E743: variable nested too deep for (un)lock"
|
||||
msgstr "E743: variable trop imbriquée pour la (dé)verrouiller"
|
||||
@@ -602,21 +602,6 @@ msgstr "E743: variable trop imbriqu
|
||||
msgid "E109: Missing ':' after '?'"
|
||||
msgstr "E109: Il manque ':' après '?'"
|
||||
|
||||
msgid "E691: Can only compare List with List"
|
||||
msgstr "E691: Une Liste ne peut être comparée qu'avec une Liste"
|
||||
|
||||
msgid "E692: Invalid operation for List"
|
||||
msgstr "E692: Opération invalide avec les Liste"
|
||||
|
||||
msgid "E735: Can only compare Dictionary with Dictionary"
|
||||
msgstr "E735: Un Dictionnaire ne peut être comparé qu'avec un Dictionnaire"
|
||||
|
||||
msgid "E736: Invalid operation for Dictionary"
|
||||
msgstr "E736: Opération invalide avec les Dictionnaires"
|
||||
|
||||
msgid "E694: Invalid operation for Funcrefs"
|
||||
msgstr "E694: Opération invalide avec les Funcrefs"
|
||||
|
||||
msgid "E804: Cannot use '%' with Float"
|
||||
msgstr "E804: Impossible d'utiliser '%' avec un Flottant"
|
||||
|
||||
@@ -751,6 +736,21 @@ msgstr ""
|
||||
"\n"
|
||||
"\tModifié la dernière fois dans "
|
||||
|
||||
msgid "E691: Can only compare List with List"
|
||||
msgstr "E691: Une Liste ne peut être comparée qu'avec une Liste"
|
||||
|
||||
msgid "E692: Invalid operation for List"
|
||||
msgstr "E692: Opération invalide avec les Liste"
|
||||
|
||||
msgid "E735: Can only compare Dictionary with Dictionary"
|
||||
msgstr "E735: Un Dictionnaire ne peut être comparé qu'avec un Dictionnaire"
|
||||
|
||||
msgid "E736: Invalid operation for Dictionary"
|
||||
msgstr "E736: Opération invalide avec les Dictionnaires"
|
||||
|
||||
msgid "E694: Invalid operation for Funcrefs"
|
||||
msgstr "E694: Opération invalide avec les Funcrefs"
|
||||
|
||||
msgid "map() argument"
|
||||
msgstr "argument de map()"
|
||||
|
||||
@@ -778,6 +778,12 @@ msgstr "E785: complete() n'est utilisable que dans le mode Insertion"
|
||||
msgid "&Ok"
|
||||
msgstr "&Ok"
|
||||
|
||||
#, c-format
|
||||
msgid "+-%s%3ld line: "
|
||||
msgid_plural "+-%s%3ld lines: "
|
||||
msgstr[0] "+-%s%3ld ligne : "
|
||||
msgstr[1] "+-%s%3ld lignes : "
|
||||
|
||||
#, c-format
|
||||
msgid "E700: Unknown function: %s"
|
||||
msgstr "E700: Fonction inconnue : %s"
|
||||
@@ -885,10 +891,22 @@ msgstr "E677: Erreur lors de l'
|
||||
msgid "E921: Invalid callback argument"
|
||||
msgstr "E921: Argument de callback invalide"
|
||||
|
||||
#, c-format
|
||||
msgid "<%s>%s%s %d, Hex %02x, Oct %03o, Digr %s"
|
||||
msgstr "<%s>%s%s %d, Hexa %02x, Octal %03o, Digr %s"
|
||||
|
||||
#, c-format
|
||||
msgid "<%s>%s%s %d, Hex %02x, Octal %03o"
|
||||
msgstr "<%s>%s%s %d, Hexa %02x, Octal %03o"
|
||||
|
||||
#, c-format
|
||||
msgid "> %d, Hex %04x, Oct %o, Digr %s"
|
||||
msgstr "> %d, Hexa %04x, Octal %o, Digr %s"
|
||||
|
||||
#, c-format
|
||||
msgid "> %d, Hex %08x, Oct %o, Digr %s"
|
||||
msgstr "> %d, Hexa %08x, Octal %o, Digr %s"
|
||||
|
||||
#, c-format
|
||||
msgid "> %d, Hex %04x, Octal %o"
|
||||
msgstr "> %d, Hexa %04x, Octal %o"
|
||||
@@ -1278,6 +1296,14 @@ msgstr "Aucun vieux fichier"
|
||||
msgid "Entering Debug mode. Type \"cont\" to continue."
|
||||
msgstr "Mode débogage activé. Tapez \"cont\" pour continuer."
|
||||
|
||||
#, c-format
|
||||
msgid "Oldval = \"%s\""
|
||||
msgstr "Ancienneval = \"%s\""
|
||||
|
||||
#, c-format
|
||||
msgid "Newval = \"%s\""
|
||||
msgstr "Nouvelleval = \"%s\""
|
||||
|
||||
#, c-format
|
||||
msgid "line %ld: %s"
|
||||
msgstr "ligne %ld : %s"
|
||||
@@ -1310,6 +1336,10 @@ msgstr "Aucun point d'arr
|
||||
msgid "%3d %s %s line %ld"
|
||||
msgstr "%3d %s %s ligne %ld"
|
||||
|
||||
#, c-format
|
||||
msgid "%3d expr %s"
|
||||
msgstr "%3d expr %s"
|
||||
|
||||
msgid "E750: First use \":profile start {fname}\""
|
||||
msgstr "E750: Utilisez d'abord \":profile start {nomfichier}\""
|
||||
|
||||
@@ -1472,9 +1502,6 @@ msgstr ""
|
||||
msgid "E319: Sorry, the command is not available in this version"
|
||||
msgstr "E319: Désolé, cette commande n'est pas disponible dans cette version"
|
||||
|
||||
msgid "E172: Only one file name allowed"
|
||||
msgstr "E172: Un seul nom de fichier autorisé"
|
||||
|
||||
msgid "1 more file to edit. Quit anyway?"
|
||||
msgstr "Encore 1 fichier à éditer. Quitter tout de même ?"
|
||||
|
||||
@@ -1964,10 +1991,6 @@ msgid "E510: Can't make backup file (add ! to override)"
|
||||
msgstr ""
|
||||
"E510: Impossible de générer la copie de secours (ajoutez ! pour passer outre)"
|
||||
|
||||
msgid "E460: The resource fork would be lost (add ! to override)"
|
||||
msgstr ""
|
||||
"E460: Les ressources partagées seraient perdues (ajoutez ! pour passer outre)"
|
||||
|
||||
msgid "E214: Can't find temp file for writing"
|
||||
msgstr "E214: Impossible de générer un fichier temporaire pour y écrire"
|
||||
|
||||
@@ -1980,8 +2003,8 @@ msgstr "E166: Impossible d'ouvrir le lien pour y
|
||||
msgid "E212: Can't open file for writing"
|
||||
msgstr "E212: Impossible d'ouvrir le fichier pour y écrire"
|
||||
|
||||
msgid "E667: Fsync failed"
|
||||
msgstr "E667: Fsynch a échoué"
|
||||
msgid "E949: File changed while writing"
|
||||
msgstr "E949: Fichier modifié après écriture"
|
||||
|
||||
msgid "E512: Close failed"
|
||||
msgstr "E512: Erreur de fermeture de fichier"
|
||||
@@ -2237,6 +2260,12 @@ msgstr "E350: Impossible de cr
|
||||
msgid "E351: Cannot delete fold with current 'foldmethod'"
|
||||
msgstr "E351: Impossible de supprimer un repli avec la 'foldmethod'e actuelle"
|
||||
|
||||
#, c-format
|
||||
msgid "+--%3ld line folded "
|
||||
msgid_plural "+--%3ld lines folded "
|
||||
msgstr[0] "+--%3ld ligne déplacée "
|
||||
msgstr[1] "+--%3ld lignes déplacées "
|
||||
|
||||
msgid "E222: Add to read buffer"
|
||||
msgstr "E222: Ajout au tampon de lecture"
|
||||
|
||||
@@ -3370,7 +3399,8 @@ msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
|
||||
msgstr "-i <viminfo>\t\tUtiliser <viminfo> au lieu du viminfo habituel"
|
||||
|
||||
msgid "--clean\t\t'nocompatible', Vim defaults, no plugins, no viminfo"
|
||||
msgstr "--clean\t\t'nocompatible', réglages par défaut, aucun greffon ni viminfo"
|
||||
msgstr ""
|
||||
"--clean\t\t'nocompatible', réglages par défaut, aucun greffon ni viminfo"
|
||||
|
||||
msgid "-h or --help\tPrint Help (this message) and exit"
|
||||
msgstr "-h ou --help\t\tAfficher l'aide (ce message) puis quitter"
|
||||
@@ -4448,8 +4478,8 @@ msgstr ""
|
||||
"sur %lld ; Octet %lld sur %lld"
|
||||
|
||||
#, c-format
|
||||
msgid "(+%ld for BOM)"
|
||||
msgstr "(+%ld pour le BOM)"
|
||||
msgid "(+%lld for BOM)"
|
||||
msgstr "(+%lld pour le BOM)"
|
||||
|
||||
msgid "Thanks for flying Vim"
|
||||
msgstr "Merci d'avoir choisi Vim"
|
||||
@@ -4501,6 +4531,10 @@ msgstr "E835: Conflits avec la valeur de 'fillchars'"
|
||||
msgid "E617: Cannot be changed in the GTK+ 2 GUI"
|
||||
msgstr "E617: Non modifiable dans l'interface graphique GTK+ 2"
|
||||
|
||||
#, c-format
|
||||
msgid "E950: Cannot convert between %s and %s"
|
||||
msgstr "E950: Impossible de convertir de %s à %s"
|
||||
|
||||
msgid "E524: Missing colon"
|
||||
msgstr "E524: ':' manquant"
|
||||
|
||||
@@ -4562,7 +4596,8 @@ msgid "E542: unbalanced groups"
|
||||
msgstr "E542: parenthèses non équilibrées"
|
||||
|
||||
msgid "E946: Cannot make a terminal with running job modifiable"
|
||||
msgstr "E946: terminal avec tâche en cours d'exécution ne peut pas être modifiable"
|
||||
msgstr ""
|
||||
"E946: terminal avec tâche en cours d'exécution ne peut pas être modifiable"
|
||||
|
||||
msgid "E590: A preview window already exists"
|
||||
msgstr "E590: Il existe déjà une fenêtre de prévisualisation"
|
||||
@@ -4570,6 +4605,9 @@ msgstr "E590: Il existe d
|
||||
msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
|
||||
msgstr "W17: L'arabe nécessite l'UTF-8, tapez ':set encoding=utf-8'"
|
||||
|
||||
msgid "E954: 24-bit colors are not supported on this environment"
|
||||
msgstr "E954: Couleurs en 24-bits non-supportées sur cet environnement."
|
||||
|
||||
#, c-format
|
||||
msgid "E593: Need at least %d lines"
|
||||
msgstr "E593: Au moins %d lignes sont nécessaires"
|
||||
@@ -4857,6 +4895,9 @@ msgstr "Alerte Vim"
|
||||
msgid "shell returned %d"
|
||||
msgstr "le shell a retourné %d"
|
||||
|
||||
msgid "E926: Current location list was changed"
|
||||
msgstr "E926: La liste d'emplacements courante a changé"
|
||||
|
||||
#, c-format
|
||||
msgid "E372: Too many %%%c in format string"
|
||||
msgstr "E372: Trop de %%%c dans la chaîne de format"
|
||||
@@ -4895,9 +4936,6 @@ msgstr "E924: La fen
|
||||
msgid "E925: Current quickfix was changed"
|
||||
msgstr "E925: Le quickfix courant a changé"
|
||||
|
||||
msgid "E926: Current location list was changed"
|
||||
msgstr "E926: La liste d'emplacements courante a changé"
|
||||
|
||||
#, c-format
|
||||
msgid "(%d of %d)%s%s: "
|
||||
msgstr "(%d sur %d)%s%s : "
|
||||
@@ -5060,6 +5098,9 @@ msgstr "E877: (regexp NFA) Classe de caract
|
||||
msgid "E867: (NFA) Unknown operator '\\z%c'"
|
||||
msgstr "E867: (NFA) Opérateur inconnu '\\z%c'"
|
||||
|
||||
msgid "E951: \\% value too large"
|
||||
msgstr "E951: valeur \\% trop grande"
|
||||
|
||||
#, c-format
|
||||
msgid "E867: (NFA) Unknown operator '\\%%%c'"
|
||||
msgstr "E867: (NFA) Opérateur inconnu '\\%%%c'"
|
||||
@@ -5483,8 +5524,8 @@ msgid "E760: No word count in %s"
|
||||
msgstr "E760: Nombre de mots non indiqué dans %s"
|
||||
|
||||
#, c-format
|
||||
msgid "line %6d, word %6d - %s"
|
||||
msgstr "ligne %6d, mot %6d - %s"
|
||||
msgid "line %6d, word %6ld - %s"
|
||||
msgstr "ligne %6d, mot %6ld - %s"
|
||||
|
||||
#, c-format
|
||||
msgid "Duplicate word in %s line %d: %s"
|
||||
@@ -5570,8 +5611,9 @@ msgstr "Estimation de m
|
||||
msgid "E751: Output file name must not have region name"
|
||||
msgstr "E751: Le nom du fichier ne doit pas contenir de nom de région"
|
||||
|
||||
msgid "E754: Only up to 8 regions supported"
|
||||
msgstr "E754: 8 régions au maximum sont supportées"
|
||||
#, c-format
|
||||
msgid "E754: Only up to %ld regions supported"
|
||||
msgstr "E754: %ld régions au maximum supportées"
|
||||
|
||||
#, c-format
|
||||
msgid "E755: Invalid region in %s"
|
||||
@@ -5966,6 +6008,10 @@ msgstr ""
|
||||
msgid "Cannot open $VIMRUNTIME/rgb.txt"
|
||||
msgstr "Impossible d'ouvrir $VIMRUNTIME/rgb.txt"
|
||||
|
||||
#, c-format
|
||||
msgid "Kill job in \"%s\"?"
|
||||
msgstr "Terminer la tâche d'exécution dans \"%s\"?"
|
||||
|
||||
msgid "Terminal"
|
||||
msgstr "Terminal"
|
||||
|
||||
@@ -5981,6 +6027,13 @@ msgstr "en cours"
|
||||
msgid "finished"
|
||||
msgstr "fini"
|
||||
|
||||
#, c-format
|
||||
msgid "E953: File exists: %s"
|
||||
msgstr "E953: Le fichier existe déjà : %s"
|
||||
|
||||
msgid "E955: Not a terminal buffer"
|
||||
msgstr "E955: Ce n'est pas un buffer de terminal"
|
||||
|
||||
msgid "new shell started\n"
|
||||
msgstr "nouveau shell démarré\n"
|
||||
|
||||
@@ -6312,24 +6365,17 @@ msgstr ""
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"MacOS X (unix) version"
|
||||
"macOS version"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Version MaxOS X (unix)"
|
||||
"Version macOS"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"MacOS X version"
|
||||
"macOS version w/o darwin feat."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Version MacOS X"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"MacOS version"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Version MacOS"
|
||||
"Version macOS sans fonctionalités darwin"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
@@ -6433,9 +6479,6 @@ msgstr "avec interface graphique Carbon."
|
||||
msgid "with Cocoa GUI."
|
||||
msgstr "avec interface graphique Cocoa."
|
||||
|
||||
msgid "with (classic) GUI."
|
||||
msgstr "avec interface graphique (classic)."
|
||||
|
||||
msgid " Features included (+) or not (-):\n"
|
||||
msgstr " Fonctionnalités incluses (+) ou non (-) :\n"
|
||||
|
||||
@@ -6740,6 +6783,14 @@ msgstr "E474: Argument invalide"
|
||||
msgid "E475: Invalid argument: %s"
|
||||
msgstr "E475: Argument invalide : %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E475: Invalid value for argument %s"
|
||||
msgstr "E475: Valeur d'argument invalide : %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E475: Invalid value for argument %s: %s"
|
||||
msgstr "E475: Valeur d'argument invalide %s : %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E15: Invalid expression: %s"
|
||||
msgstr "E15: Expression invalide : %s"
|
||||
@@ -6758,6 +6809,9 @@ msgstr "E17: \"%s\" est un r
|
||||
msgid "E364: Library call failed for \"%s()\""
|
||||
msgstr "E364: L'appel à la bibliothèque a échoué pour \"%s()\""
|
||||
|
||||
msgid "E667: Fsync failed"
|
||||
msgstr "E667: Fsynch a échoué"
|
||||
|
||||
#, c-format
|
||||
msgid "E448: Could not load library function %s"
|
||||
msgstr "E448: Impossible de charger la fonction %s de la bibliothèque"
|
||||
@@ -7032,6 +7086,9 @@ msgstr "E850: Nom de registre invalide"
|
||||
msgid "E919: Directory not found in '%s': \"%s\""
|
||||
msgstr "E919: Répertoire introuvable dans '%s' : \"%s\""
|
||||
|
||||
msgid "E952: Autocommand caused recursive behavior"
|
||||
msgstr "E952: Une autocommande a causé une récursivité"
|
||||
|
||||
msgid "search hit TOP, continuing at BOTTOM"
|
||||
msgstr "La recherche a atteint le HAUT, et continue en BAS"
|
||||
|
||||
|
||||
+966
-789
File diff suppressed because it is too large
Load Diff
+966
-789
File diff suppressed because it is too large
Load Diff
+9
-9
@@ -121,15 +121,15 @@ void last_set_msg(scid_T scriptID);
|
||||
void reset_v_option_vars(void);
|
||||
void prepare_assert_error(garray_T *gap);
|
||||
void assert_error(garray_T *gap);
|
||||
void assert_equal_common(typval_T *argvars, assert_type_T atype);
|
||||
void assert_equalfile(typval_T *argvars);
|
||||
void assert_match_common(typval_T *argvars, assert_type_T atype);
|
||||
void assert_inrange(typval_T *argvars);
|
||||
void assert_bool(typval_T *argvars, int isTrue);
|
||||
void assert_report(typval_T *argvars);
|
||||
void assert_exception(typval_T *argvars);
|
||||
void assert_beeps(typval_T *argvars);
|
||||
void assert_fails(typval_T *argvars);
|
||||
int assert_equal_common(typval_T *argvars, assert_type_T atype);
|
||||
int assert_equalfile(typval_T *argvars);
|
||||
int assert_match_common(typval_T *argvars, assert_type_T atype);
|
||||
int assert_inrange(typval_T *argvars);
|
||||
int assert_bool(typval_T *argvars, int isTrue);
|
||||
int assert_report(typval_T *argvars);
|
||||
int assert_exception(typval_T *argvars);
|
||||
int assert_beeps(typval_T *argvars);
|
||||
int assert_fails(typval_T *argvars);
|
||||
void fill_assert_error(garray_T *gap, typval_T *opt_msg_tv, char_u *exp_str, typval_T *exp_tv, typval_T *got_tv, assert_type_T atype);
|
||||
int typval_compare(typval_T *typ1, typval_T *typ2, exptype_T type, int type_is, int ic);
|
||||
char_u *typval_tostring(typval_T *arg);
|
||||
|
||||
@@ -11,6 +11,7 @@ void msg_add_fname(buf_T *buf, char_u *fname);
|
||||
void msg_add_lines(int insert_space, long lnum, off_T nchars);
|
||||
char_u *shorten_fname1(char_u *full_path);
|
||||
char_u *shorten_fname(char_u *full_path, char_u *dir_name);
|
||||
void shorten_buf_fname(buf_T *buf, char_u *dirname, int force);
|
||||
void shorten_fnames(int force);
|
||||
void shorten_filenames(char_u **fnames, int count);
|
||||
char_u *modname(char_u *fname, char_u *ext, int prepend_dot);
|
||||
|
||||
@@ -72,4 +72,5 @@ int mch_setenv(char *var, char *value, int x);
|
||||
void control_console_color_rgb(void);
|
||||
int has_vtp_working(void);
|
||||
int use_vtp(void);
|
||||
int is_term_win32(void);
|
||||
/* vim: set ft=c : */
|
||||
|
||||
@@ -76,4 +76,5 @@ void update_tcap(int attr);
|
||||
void swap_tcap(void);
|
||||
guicolor_T gui_get_color_cmn(char_u *name);
|
||||
guicolor_T gui_get_rgb_color_cmn(int r, int g, int b);
|
||||
void cterm_color2rgb(int nr, uint8_t *r, uint8_t *g, uint8_t *b, uint8_t *ansi_idx);
|
||||
/* vim: set ft=c : */
|
||||
|
||||
+87
-24
@@ -33,6 +33,7 @@ struct qfline_S
|
||||
int qf_fnum; /* file number for the line */
|
||||
int qf_col; /* column where the error occurred */
|
||||
int qf_nr; /* error number */
|
||||
char_u *qf_module; /* module name for this error */
|
||||
char_u *qf_pattern; /* search pattern for the error */
|
||||
char_u *qf_text; /* description of the error */
|
||||
char_u qf_viscol; /* set to TRUE if qf_col is screen column */
|
||||
@@ -101,7 +102,7 @@ struct qf_info_S
|
||||
static qf_info_T ql_info; /* global quickfix list */
|
||||
static int_u last_qf_id = 0; /* Last used quickfix list id */
|
||||
|
||||
#define FMT_PATTERNS 10 /* maximum number of % recognized */
|
||||
#define FMT_PATTERNS 11 /* maximum number of % recognized */
|
||||
|
||||
/*
|
||||
* Structure used to hold the info of one part of 'errorformat'
|
||||
@@ -135,7 +136,8 @@ static efm_T *fmt_start = NULL; /* cached across qf_parse_line() calls */
|
||||
|
||||
static int qf_init_ext(qf_info_T *qi, int qf_idx, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title, char_u *enc);
|
||||
static void qf_new_list(qf_info_T *qi, char_u *qf_title);
|
||||
static int qf_add_entry(qf_info_T *qi, int qf_idx, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid);
|
||||
static int qf_add_entry(qf_info_T *qi, int qf_idx, char_u *dir, char_u *fname, char_u *module, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid);
|
||||
static qf_info_T *ll_new_list(void);
|
||||
static void qf_free(qf_info_T *qi, int idx);
|
||||
static char_u *qf_types(int, int);
|
||||
static int qf_get_fnum(qf_info_T *qi, int qf_idx, char_u *, char_u *);
|
||||
@@ -221,7 +223,8 @@ static struct fmtpattern
|
||||
{'r', ".*"},
|
||||
{'p', "[- .]*"},
|
||||
{'v', "\\d\\+"},
|
||||
{'s', ".\\+"}
|
||||
{'s', ".\\+"},
|
||||
{'o', ".\\+"}
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -809,6 +812,7 @@ qf_get_nextline(qfstate_T *state)
|
||||
|
||||
typedef struct {
|
||||
char_u *namebuf;
|
||||
char_u *module;
|
||||
char_u *errmsg;
|
||||
int errmsglen;
|
||||
long lnum;
|
||||
@@ -868,6 +872,7 @@ restofline:
|
||||
if (qfl->qf_multiscan && vim_strchr((char_u *)"OPQ", idx) == NULL)
|
||||
continue;
|
||||
fields->namebuf[0] = NUL;
|
||||
fields->module[0] = NUL;
|
||||
fields->pattern[0] = NUL;
|
||||
if (!qfl->qf_multiscan)
|
||||
fields->errmsg[0] = NUL;
|
||||
@@ -1008,6 +1013,15 @@ restofline:
|
||||
fields->pattern[len + 4] = '$';
|
||||
fields->pattern[len + 5] = NUL;
|
||||
}
|
||||
if ((i = (int)fmt_ptr->addr[10]) > 0) /* %o */
|
||||
{
|
||||
if (regmatch.startp[i] == NULL)
|
||||
continue;
|
||||
len = (int)(regmatch.endp[i] - regmatch.startp[i]);
|
||||
if (len > CMDBUFFSIZE)
|
||||
len = CMDBUFFSIZE;
|
||||
STRNCAT(fields->module, regmatch.startp[i], len);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1181,11 +1195,12 @@ qf_init_ext(
|
||||
convert_setup(&state.vc, enc, p_enc);
|
||||
#endif
|
||||
fields.namebuf = alloc_id(CMDBUFFSIZE + 1, aid_qf_namebuf);
|
||||
fields.module = alloc_id(CMDBUFFSIZE + 1, aid_qf_module);
|
||||
fields.errmsglen = CMDBUFFSIZE + 1;
|
||||
fields.errmsg = alloc_id(fields.errmsglen, aid_qf_errmsg);
|
||||
fields.pattern = alloc_id(CMDBUFFSIZE + 1, aid_qf_pattern);
|
||||
if (fields.namebuf == NULL || fields.errmsg == NULL
|
||||
|| fields.pattern == NULL)
|
||||
|| fields.pattern == NULL || fields.module == NULL)
|
||||
goto qf_init_end;
|
||||
|
||||
if (efile != NULL && (state.fd = mch_fopen((char *)efile, "r")) == NULL)
|
||||
@@ -1282,6 +1297,7 @@ qf_init_ext(
|
||||
? fields.namebuf
|
||||
: ((qfl->qf_currfile != NULL && fields.valid)
|
||||
? qfl->qf_currfile : (char_u *)NULL),
|
||||
fields.module,
|
||||
0,
|
||||
fields.errmsg,
|
||||
fields.lnum,
|
||||
@@ -1327,6 +1343,7 @@ qf_init_end:
|
||||
if (state.fd != NULL)
|
||||
fclose(state.fd);
|
||||
vim_free(fields.namebuf);
|
||||
vim_free(fields.module);
|
||||
vim_free(fields.errmsg);
|
||||
vim_free(fields.pattern);
|
||||
vim_free(state.growbuf);
|
||||
@@ -1444,6 +1461,7 @@ qf_add_entry(
|
||||
int qf_idx, /* list index */
|
||||
char_u *dir, /* optional directory name */
|
||||
char_u *fname, /* file name or NULL */
|
||||
char_u *module, /* module name or NULL */
|
||||
int bufnum, /* buffer number or zero */
|
||||
char_u *mesg, /* message */
|
||||
long lnum, /* line number */
|
||||
@@ -1486,6 +1504,15 @@ qf_add_entry(
|
||||
vim_free(qfp);
|
||||
return FAIL;
|
||||
}
|
||||
if (module == NULL || *module == NUL)
|
||||
qfp->qf_module = NULL;
|
||||
else if ((qfp->qf_module = vim_strsave(module)) == NULL)
|
||||
{
|
||||
vim_free(qfp->qf_text);
|
||||
vim_free(qfp->qf_pattern);
|
||||
vim_free(qfp);
|
||||
return FAIL;
|
||||
}
|
||||
qfp->qf_nr = nr;
|
||||
if (type != 1 && !vim_isprintc(type)) /* only printable chars allowed */
|
||||
type = 0;
|
||||
@@ -1635,6 +1662,7 @@ copy_loclist(win_T *from, win_T *to)
|
||||
to->w_llist->qf_curlist,
|
||||
NULL,
|
||||
NULL,
|
||||
from_qfp->qf_module,
|
||||
0,
|
||||
from_qfp->qf_text,
|
||||
from_qfp->qf_lnum,
|
||||
@@ -2351,7 +2379,7 @@ qf_jump_edit_buffer(
|
||||
if (!can_abandon(curbuf, forceit))
|
||||
{
|
||||
no_write_message();
|
||||
retval = FALSE;
|
||||
retval = FAIL;
|
||||
}
|
||||
else
|
||||
retval = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1,
|
||||
@@ -2395,7 +2423,7 @@ qf_jump_edit_buffer(
|
||||
}
|
||||
|
||||
if (*abort)
|
||||
retval = FALSE;
|
||||
retval = FAIL;
|
||||
}
|
||||
|
||||
return retval;
|
||||
@@ -2736,6 +2764,9 @@ qf_list(exarg_T *eap)
|
||||
idx2 = (-idx2 > i) ? 0 : idx2 + i + 1;
|
||||
}
|
||||
|
||||
/* Shorten all the file names, so that it is easy to read */
|
||||
shorten_fnames(FALSE);
|
||||
|
||||
/*
|
||||
* Get the attributes for the different quickfix highlight items. Note
|
||||
* that this depends on syntax items defined in the qf.vim syntax file
|
||||
@@ -2762,18 +2793,22 @@ qf_list(exarg_T *eap)
|
||||
break;
|
||||
|
||||
fname = NULL;
|
||||
if (qfp->qf_fnum != 0
|
||||
&& (buf = buflist_findnr(qfp->qf_fnum)) != NULL)
|
||||
{
|
||||
fname = buf->b_fname;
|
||||
if (qfp->qf_type == 1) /* :helpgrep */
|
||||
fname = gettail(fname);
|
||||
if (qfp->qf_module != NULL && *qfp->qf_module != NUL)
|
||||
vim_snprintf((char *)IObuff, IOSIZE, "%2d %s", i, (char *)qfp->qf_module);
|
||||
else {
|
||||
if (qfp->qf_fnum != 0
|
||||
&& (buf = buflist_findnr(qfp->qf_fnum)) != NULL)
|
||||
{
|
||||
fname = buf->b_fname;
|
||||
if (qfp->qf_type == 1) /* :helpgrep */
|
||||
fname = gettail(fname);
|
||||
}
|
||||
if (fname == NULL)
|
||||
sprintf((char *)IObuff, "%2d", i);
|
||||
else
|
||||
vim_snprintf((char *)IObuff, IOSIZE, "%2d %s",
|
||||
i, (char *)fname);
|
||||
}
|
||||
if (fname == NULL)
|
||||
sprintf((char *)IObuff, "%2d", i);
|
||||
else
|
||||
vim_snprintf((char *)IObuff, IOSIZE, "%2d %s",
|
||||
i, (char *)fname);
|
||||
msg_outtrans_attr(IObuff, i == qi->qf_lists[qi->qf_curlist].qf_index
|
||||
? HL_ATTR(HLF_QFL) : qfFileAttr);
|
||||
|
||||
@@ -2954,9 +2989,10 @@ qf_free_items(qf_info_T *qi, int idx)
|
||||
qfpnext = qfp->qf_next;
|
||||
if (!stop)
|
||||
{
|
||||
vim_free(qfp->qf_module);
|
||||
vim_free(qfp->qf_text);
|
||||
stop = (qfp == qfpnext);
|
||||
vim_free(qfp->qf_pattern);
|
||||
stop = (qfp == qfpnext);
|
||||
vim_free(qfp);
|
||||
if (stop)
|
||||
/* Somehow qf_count may have an incorrect value, set it to 1
|
||||
@@ -3542,6 +3578,10 @@ qf_fill_buffer(qf_info_T *qi, buf_T *buf, qfline_T *old_last)
|
||||
/* Check if there is anything to display */
|
||||
if (qi->qf_curlist < qi->qf_listcount)
|
||||
{
|
||||
char_u dirname[MAXPATHL];
|
||||
|
||||
*dirname = NUL;
|
||||
|
||||
/* Add one line for each error */
|
||||
if (old_last == NULL)
|
||||
{
|
||||
@@ -3555,14 +3595,29 @@ qf_fill_buffer(qf_info_T *qi, buf_T *buf, qfline_T *old_last)
|
||||
}
|
||||
while (lnum < qi->qf_lists[qi->qf_curlist].qf_count)
|
||||
{
|
||||
if (qfp->qf_fnum != 0
|
||||
if (qfp->qf_module != NULL)
|
||||
{
|
||||
STRCPY(IObuff, qfp->qf_module);
|
||||
len = (int)STRLEN(IObuff);
|
||||
}
|
||||
else if (qfp->qf_fnum != 0
|
||||
&& (errbuf = buflist_findnr(qfp->qf_fnum)) != NULL
|
||||
&& errbuf->b_fname != NULL)
|
||||
{
|
||||
if (qfp->qf_type == 1) /* :helpgrep */
|
||||
STRCPY(IObuff, gettail(errbuf->b_fname));
|
||||
else
|
||||
{
|
||||
/* shorten the file name if not done already */
|
||||
if (errbuf->b_sfname == NULL
|
||||
|| mch_isFullName(errbuf->b_sfname))
|
||||
{
|
||||
if (*dirname == NUL)
|
||||
mch_dirname(dirname, MAXPATHL);
|
||||
shorten_buf_fname(errbuf, dirname, FALSE);
|
||||
}
|
||||
STRCPY(IObuff, errbuf->b_fname);
|
||||
}
|
||||
len = (int)STRLEN(IObuff);
|
||||
}
|
||||
else
|
||||
@@ -4115,7 +4170,8 @@ ex_cfile(exarg_T *eap)
|
||||
if (cmdmod.browse)
|
||||
{
|
||||
char_u *browse_file = do_browse(0, (char_u *)_("Error file"), eap->arg,
|
||||
NULL, NULL, BROWSE_FILTER_ALL_FILES, NULL);
|
||||
NULL, NULL,
|
||||
(char_u *)_(BROWSE_FILTER_ALL_FILES), NULL);
|
||||
if (browse_file == NULL)
|
||||
return;
|
||||
set_string_option_direct((char_u *)"ef", -1, browse_file, OPT_FREE, 0);
|
||||
@@ -4172,7 +4228,7 @@ qf_id2nr(qf_info_T *qi, int_u qfid)
|
||||
for (qf_idx = 0; qf_idx < qi->qf_listcount; qf_idx++)
|
||||
if (qi->qf_lists[qf_idx].qf_id == qfid)
|
||||
return qf_idx;
|
||||
return -1;
|
||||
return INVALID_QFIDX;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4349,6 +4405,7 @@ vgr_match_buflines(
|
||||
qi->qf_curlist,
|
||||
NULL, /* dir */
|
||||
fname,
|
||||
NULL,
|
||||
duplicate_name ? 0 : buf->b_fnum,
|
||||
ml_get_buf(buf,
|
||||
regmatch->startpos[0].lnum + lnum, FALSE),
|
||||
@@ -4889,7 +4946,7 @@ get_errorlist(qf_info_T *qi_arg, win_T *wp, int qf_idx, list_T *list)
|
||||
}
|
||||
}
|
||||
|
||||
if (qf_idx == -1)
|
||||
if (qf_idx == INVALID_QFIDX)
|
||||
qf_idx = qi->qf_curlist;
|
||||
|
||||
if (qf_idx >= qi->qf_listcount
|
||||
@@ -4916,6 +4973,8 @@ get_errorlist(qf_info_T *qi_arg, win_T *wp, int qf_idx, list_T *list)
|
||||
|| dict_add_nr_str(dict, "col", (long)qfp->qf_col, NULL) == FAIL
|
||||
|| dict_add_nr_str(dict, "vcol", (long)qfp->qf_viscol, NULL) == FAIL
|
||||
|| dict_add_nr_str(dict, "nr", (long)qfp->qf_nr, NULL) == FAIL
|
||||
|| dict_add_nr_str(dict, "module", 0L,
|
||||
qfp->qf_module == NULL ? (char_u *)"" : qfp->qf_module) == FAIL
|
||||
|| dict_add_nr_str(dict, "pattern", 0L,
|
||||
qfp->qf_pattern == NULL ? (char_u *)"" : qfp->qf_pattern) == FAIL
|
||||
|| dict_add_nr_str(dict, "text", 0L,
|
||||
@@ -5294,7 +5353,7 @@ qf_add_entries(
|
||||
{
|
||||
listitem_T *li;
|
||||
dict_T *d;
|
||||
char_u *filename, *pattern, *text, *type;
|
||||
char_u *filename, *module, *pattern, *text, *type;
|
||||
int bufnum;
|
||||
long lnum;
|
||||
int col, nr;
|
||||
@@ -5329,6 +5388,7 @@ qf_add_entries(
|
||||
continue;
|
||||
|
||||
filename = get_dict_string(d, (char_u *)"filename", TRUE);
|
||||
module = get_dict_string(d, (char_u *)"module", TRUE);
|
||||
bufnum = (int)get_dict_number(d, (char_u *)"bufnr");
|
||||
lnum = (int)get_dict_number(d, (char_u *)"lnum");
|
||||
col = (int)get_dict_number(d, (char_u *)"col");
|
||||
@@ -5365,6 +5425,7 @@ qf_add_entries(
|
||||
qf_idx,
|
||||
NULL, /* dir */
|
||||
filename,
|
||||
module,
|
||||
bufnum,
|
||||
text,
|
||||
lnum,
|
||||
@@ -5376,6 +5437,7 @@ qf_add_entries(
|
||||
valid);
|
||||
|
||||
vim_free(filename);
|
||||
vim_free(module);
|
||||
vim_free(pattern);
|
||||
vim_free(text);
|
||||
vim_free(type);
|
||||
@@ -6022,6 +6084,7 @@ hgr_search_file(
|
||||
qi->qf_curlist,
|
||||
NULL, /* dir */
|
||||
fname,
|
||||
NULL,
|
||||
0,
|
||||
line,
|
||||
lnum,
|
||||
@@ -6086,7 +6149,7 @@ hgr_search_files_in_dir(
|
||||
/* Skip files for a different language. */
|
||||
if (lang != NULL
|
||||
&& STRNICMP(lang, fnames[fi]
|
||||
+ STRLEN(fnames[fi]) - 3, 2) != 0
|
||||
+ STRLEN(fnames[fi]) - 3, 2) != 0
|
||||
&& !(STRNICMP(lang, "en", 2) == 0
|
||||
&& STRNICMP("txt", fnames[fi]
|
||||
+ STRLEN(fnames[fi]) - 3, 3) == 0))
|
||||
|
||||
@@ -7224,6 +7224,8 @@ load_colors(char_u *name)
|
||||
buf = alloc((unsigned)(STRLEN(name) + 12));
|
||||
if (buf != NULL)
|
||||
{
|
||||
apply_autocmds(EVENT_COLORSCHEMEPRE, name,
|
||||
curbuf->b_fname, FALSE, curbuf);
|
||||
sprintf((char *)buf, "colors/%s.vim", name);
|
||||
retval = source_runtime(buf, DIP_START + DIP_OPT);
|
||||
vim_free(buf);
|
||||
|
||||
+166
-45
@@ -2015,11 +2015,6 @@ set_termname(char_u *term)
|
||||
may_req_termresponse();
|
||||
#endif
|
||||
|
||||
#if defined(WIN3264) && !defined(FEAT_GUI) && defined(FEAT_TERMGUICOLORS)
|
||||
if (STRCMP(term, "win32") == 0)
|
||||
set_color_count((p_tgc) ? 256 : 16);
|
||||
#endif
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -2857,7 +2852,11 @@ term_color(char_u *s, int n)
|
||||
/* Also accept "\e[3%dm" for TERMINFO, it is sometimes used */
|
||||
/* Also accept CSI instead of <Esc>[ */
|
||||
if (n >= 8 && t_colors >= 16
|
||||
&& ((s[0] == ESC && s[1] == '[') || (s[0] == CSI && (i = 1) == 1))
|
||||
&& ((s[0] == ESC && s[1] == '[')
|
||||
#if defined(FEAT_VTP) && defined(FEAT_TERMGUICOLORS)
|
||||
|| (s[0] == ESC && s[1] == '|')
|
||||
#endif
|
||||
|| (s[0] == CSI && (i = 1) == 1))
|
||||
&& s[i] != NUL
|
||||
&& (STRCMP(s + i + 1, "%p1%dm") == 0
|
||||
|| STRCMP(s + i + 1, "%dm") == 0)
|
||||
@@ -2869,7 +2868,11 @@ term_color(char_u *s, int n)
|
||||
char *format = "%s%s%%dm";
|
||||
#endif
|
||||
sprintf(buf, format,
|
||||
i == 2 ? IF_EB("\033[", ESC_STR "[") : "\233",
|
||||
i == 2 ?
|
||||
#if defined(FEAT_VTP) && defined(FEAT_TERMGUICOLORS)
|
||||
s[1] == '|' ? IF_EB("\033|", ESC_STR "|") :
|
||||
#endif
|
||||
IF_EB("\033[", ESC_STR "[") : "\233",
|
||||
s[i] == '3' ? (n >= 16 ? "38;5;" : "9")
|
||||
: (n >= 16 ? "48;5;" : "10"));
|
||||
OUT_STR(tgoto(buf, 0, n >= 16 ? n : n - 8));
|
||||
@@ -6646,26 +6649,38 @@ update_tcap(int attr)
|
||||
}
|
||||
|
||||
# ifdef FEAT_TERMGUICOLORS
|
||||
# define KSSIZE 20
|
||||
struct ks_tbl_s
|
||||
{
|
||||
int code; /* value of KS_ */
|
||||
char *vtp; /* code in vtp mode */
|
||||
char *buf; /* buffer in non-vtp mode */
|
||||
char *vbuf; /* buffer in vtp mode */
|
||||
int code; /* value of KS_ */
|
||||
char *vtp; /* code in vtp mode */
|
||||
char *vtp2; /* code in vtp2 mode */
|
||||
char buf[KSSIZE]; /* save buffer in non-vtp mode */
|
||||
char vbuf[KSSIZE]; /* save buffer in vtp mode */
|
||||
char v2buf[KSSIZE]; /* save buffer in vtp2 mode */
|
||||
char arr[KSSIZE]; /* real buffer */
|
||||
};
|
||||
|
||||
static struct ks_tbl_s ks_tbl[] =
|
||||
{
|
||||
{(int)KS_ME, "\033|0m" }, /* normal */
|
||||
{(int)KS_MR, "\033|7m" }, /* reverse */
|
||||
{(int)KS_MD, "\033|1m" }, /* bold */
|
||||
{(int)KS_SO, "\033|91m"}, /* standout: bright red text */
|
||||
{(int)KS_SE, "\033|39m"}, /* standout end: default color */
|
||||
{(int)KS_CZH, "\033|95m"}, /* italic: bright magenta text */
|
||||
{(int)KS_CZR, "\033|0m",}, /* italic end */
|
||||
{(int)KS_US, "\033|4m",}, /* underscore */
|
||||
{(int)KS_UE, "\033|24m"}, /* underscore end */
|
||||
{(int)KS_NAME, NULL}
|
||||
{(int)KS_ME, "\033|0m", "\033|0m"}, /* normal */
|
||||
{(int)KS_MR, "\033|7m", "\033|7m"}, /* reverse */
|
||||
{(int)KS_MD, "\033|1m", "\033|1m"}, /* bold */
|
||||
{(int)KS_SO, "\033|91m", "\033|91m"}, /* standout: bright red text */
|
||||
{(int)KS_SE, "\033|39m", "\033|39m"}, /* standout end: default color */
|
||||
{(int)KS_CZH, "\033|95m", "\033|95m"}, /* italic: bright magenta text */
|
||||
{(int)KS_CZR, "\033|0m", "\033|0m"}, /* italic end */
|
||||
{(int)KS_US, "\033|4m", "\033|4m"}, /* underscore */
|
||||
{(int)KS_UE, "\033|24m", "\033|24m"}, /* underscore end */
|
||||
# ifdef TERMINFO
|
||||
{(int)KS_CAB, "\033|%p1%db", "\033|%p14%dm"}, /* set background color */
|
||||
{(int)KS_CAF, "\033|%p1%df", "\033|%p13%dm"}, /* set foreground color */
|
||||
# else
|
||||
{(int)KS_CAB, "\033|%db", "\033|4%dm"}, /* set background color */
|
||||
{(int)KS_CAF, "\033|%df", "\033|3%dm"}, /* set foreground color */
|
||||
# endif
|
||||
{(int)KS_CCO, "16", "256"}, /* colors */
|
||||
{(int)KS_NAME} /* terminator */
|
||||
};
|
||||
|
||||
static struct builtin_term *
|
||||
@@ -6690,57 +6705,85 @@ swap_tcap(void)
|
||||
{
|
||||
# ifdef FEAT_TERMGUICOLORS
|
||||
static int init_done = FALSE;
|
||||
static int last_tgc;
|
||||
static int curr_mode;
|
||||
struct ks_tbl_s *ks;
|
||||
struct builtin_term *bt;
|
||||
int mode;
|
||||
enum
|
||||
{
|
||||
CMODEINDEX,
|
||||
CMODE24,
|
||||
CMODE256
|
||||
};
|
||||
|
||||
/* buffer initialization */
|
||||
if (!init_done)
|
||||
{
|
||||
for (ks = ks_tbl; ks->vtp != NULL; ks++)
|
||||
for (ks = ks_tbl; ks->code != (int)KS_NAME; ks++)
|
||||
{
|
||||
bt = find_first_tcap(DEFAULT_TERM, ks->code);
|
||||
if (bt != NULL)
|
||||
{
|
||||
ks->buf = bt->bt_string;
|
||||
ks->vbuf = ks->vtp;
|
||||
STRNCPY(ks->buf, bt->bt_string, KSSIZE);
|
||||
STRNCPY(ks->vbuf, ks->vtp, KSSIZE);
|
||||
STRNCPY(ks->v2buf, ks->vtp2, KSSIZE);
|
||||
|
||||
STRNCPY(ks->arr, bt->bt_string, KSSIZE);
|
||||
bt->bt_string = &ks->arr[0];
|
||||
}
|
||||
}
|
||||
init_done = TRUE;
|
||||
last_tgc = p_tgc;
|
||||
return;
|
||||
curr_mode = CMODEINDEX;
|
||||
}
|
||||
|
||||
if (last_tgc != p_tgc)
|
||||
if (p_tgc)
|
||||
mode = CMODE24;
|
||||
else if (t_colors >= 256)
|
||||
mode = CMODE256;
|
||||
else
|
||||
mode = CMODEINDEX;
|
||||
|
||||
for (ks = ks_tbl; ks->code != (int)KS_NAME; ks++)
|
||||
{
|
||||
if (p_tgc)
|
||||
bt = find_first_tcap(DEFAULT_TERM, ks->code);
|
||||
if (bt != NULL)
|
||||
{
|
||||
/* switch to special character sequence */
|
||||
for (ks = ks_tbl; ks->vtp != NULL; ks++)
|
||||
switch (curr_mode)
|
||||
{
|
||||
bt = find_first_tcap(DEFAULT_TERM, ks->code);
|
||||
if (bt != NULL)
|
||||
{
|
||||
ks->buf = bt->bt_string;
|
||||
bt->bt_string = ks->vbuf;
|
||||
}
|
||||
case CMODEINDEX:
|
||||
STRNCPY(&ks->buf[0], bt->bt_string, KSSIZE);
|
||||
break;
|
||||
case CMODE24:
|
||||
STRNCPY(&ks->vbuf[0], bt->bt_string, KSSIZE);
|
||||
break;
|
||||
default:
|
||||
STRNCPY(&ks->v2buf[0], bt->bt_string, KSSIZE);
|
||||
}
|
||||
}
|
||||
else
|
||||
}
|
||||
|
||||
if (mode != curr_mode)
|
||||
{
|
||||
for (ks = ks_tbl; ks->code != (int)KS_NAME; ks++)
|
||||
{
|
||||
/* switch to index color */
|
||||
for (ks = ks_tbl; ks->vtp != NULL; ks++)
|
||||
bt = find_first_tcap(DEFAULT_TERM, ks->code);
|
||||
if (bt != NULL)
|
||||
{
|
||||
bt = find_first_tcap(DEFAULT_TERM, ks->code);
|
||||
if (bt != NULL)
|
||||
switch (mode)
|
||||
{
|
||||
ks->vbuf = bt->bt_string;
|
||||
bt->bt_string = ks->buf;
|
||||
case CMODEINDEX:
|
||||
STRNCPY(bt->bt_string, &ks->buf[0], KSSIZE);
|
||||
break;
|
||||
case CMODE24:
|
||||
STRNCPY(bt->bt_string, &ks->vbuf[0], KSSIZE);
|
||||
break;
|
||||
default:
|
||||
STRNCPY(bt->bt_string, &ks->v2buf[0], KSSIZE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
last_tgc = p_tgc;
|
||||
curr_mode = mode;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
@@ -6926,3 +6969,81 @@ gui_get_rgb_color_cmn(int r, int g, int b)
|
||||
return color;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (defined(WIN3264) && !defined(FEAT_GUI_W32)) || defined(FEAT_TERMINAL) \
|
||||
|| defined(PROTO)
|
||||
static int cube_value[] = {
|
||||
0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF
|
||||
};
|
||||
|
||||
static int grey_ramp[] = {
|
||||
0x08, 0x12, 0x1C, 0x26, 0x30, 0x3A, 0x44, 0x4E, 0x58, 0x62, 0x6C, 0x76,
|
||||
0x80, 0x8A, 0x94, 0x9E, 0xA8, 0xB2, 0xBC, 0xC6, 0xD0, 0xDA, 0xE4, 0xEE
|
||||
};
|
||||
|
||||
# ifdef FEAT_TERMINAL
|
||||
# include "libvterm/include/vterm.h" // for VTERM_ANSI_INDEX_NONE
|
||||
# else
|
||||
# define VTERM_ANSI_INDEX_NONE 0
|
||||
# endif
|
||||
|
||||
static uint8_t ansi_table[16][4] = {
|
||||
// R G B idx
|
||||
{ 0, 0, 0, 1}, // black
|
||||
{224, 0, 0, 2}, // dark red
|
||||
{ 0, 224, 0, 3}, // dark green
|
||||
{224, 224, 0, 4}, // dark yellow / brown
|
||||
{ 0, 0, 224, 5}, // dark blue
|
||||
{224, 0, 224, 6}, // dark magenta
|
||||
{ 0, 224, 224, 7}, // dark cyan
|
||||
{224, 224, 224, 8}, // light grey
|
||||
|
||||
{128, 128, 128, 9}, // dark grey
|
||||
{255, 64, 64, 10}, // light red
|
||||
{ 64, 255, 64, 11}, // light green
|
||||
{255, 255, 64, 12}, // yellow
|
||||
{ 64, 64, 255, 13}, // light blue
|
||||
{255, 64, 255, 14}, // light magenta
|
||||
{ 64, 255, 255, 15}, // light cyan
|
||||
{255, 255, 255, 16}, // white
|
||||
};
|
||||
|
||||
void
|
||||
cterm_color2rgb(int nr, uint8_t *r, uint8_t *g, uint8_t *b, uint8_t *ansi_idx)
|
||||
{
|
||||
int idx;
|
||||
|
||||
if (nr < 16)
|
||||
{
|
||||
*r = ansi_table[nr][0];
|
||||
*g = ansi_table[nr][1];
|
||||
*b = ansi_table[nr][2];
|
||||
*ansi_idx = ansi_table[nr][3];
|
||||
}
|
||||
else if (nr < 232)
|
||||
{
|
||||
/* 216 color cube */
|
||||
idx = nr - 16;
|
||||
*r = cube_value[idx / 36 % 6];
|
||||
*g = cube_value[idx / 6 % 6];
|
||||
*b = cube_value[idx % 6];
|
||||
*ansi_idx = VTERM_ANSI_INDEX_NONE;
|
||||
}
|
||||
else if (nr < 256)
|
||||
{
|
||||
/* 24 grey scale ramp */
|
||||
idx = nr - 232;
|
||||
*r = grey_ramp[idx];
|
||||
*g = grey_ramp[idx];
|
||||
*b = grey_ramp[idx];
|
||||
*ansi_idx = VTERM_ANSI_INDEX_NONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
*r = 0;
|
||||
*g = 0;
|
||||
*b = 0;
|
||||
*ansi_idx = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
+14
-62
@@ -42,8 +42,6 @@
|
||||
* redirection. Probably in call to channel_set_pipes().
|
||||
* - Win32: Redirecting output does not work, Test_terminal_redir_file()
|
||||
* is disabled.
|
||||
* - Add test for 'termwinkey'.
|
||||
* - libvterm: bringg back using // comments and trailing comma in enum
|
||||
* - When starting terminal window with shell in terminal, then using :gui to
|
||||
* switch to GUI, shell stops working. Scrollback seems wrong, command
|
||||
* running in shell is still running.
|
||||
@@ -1696,6 +1694,7 @@ send_keys_to_term(term_T *term, int c, int typed)
|
||||
return FAIL;
|
||||
|
||||
case K_IGNORE:
|
||||
case K_CANCEL: // used for :normal when running out of chars
|
||||
return FAIL;
|
||||
|
||||
case K_LEFTDRAG:
|
||||
@@ -1832,9 +1831,9 @@ term_paste_register(int prev_c UNUSED)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(FEAT_GUI) || defined(PROTO)
|
||||
/*
|
||||
* Return TRUE when the cursor of the terminal should be displayed.
|
||||
* Return TRUE when waiting for a character in the terminal, the cursor of the
|
||||
* terminal should be displayed.
|
||||
*/
|
||||
int
|
||||
terminal_is_active()
|
||||
@@ -1842,6 +1841,7 @@ terminal_is_active()
|
||||
return in_terminal_loop != NULL;
|
||||
}
|
||||
|
||||
#if defined(FEAT_GUI) || defined(PROTO)
|
||||
cursorentry_T *
|
||||
term_get_cursor_shape(guicolor_T *fg, guicolor_T *bg)
|
||||
{
|
||||
@@ -3021,66 +3021,14 @@ term_get_attr(buf_T *buf, linenr_T lnum, int col)
|
||||
return cell2attr(cellattr->attrs, cellattr->fg, cellattr->bg);
|
||||
}
|
||||
|
||||
static VTermColor ansi_table[16] = {
|
||||
{ 0, 0, 0, 1}, /* black */
|
||||
{224, 0, 0, 2}, /* dark red */
|
||||
{ 0, 224, 0, 3}, /* dark green */
|
||||
{224, 224, 0, 4}, /* dark yellow / brown */
|
||||
{ 0, 0, 224, 5}, /* dark blue */
|
||||
{224, 0, 224, 6}, /* dark magenta */
|
||||
{ 0, 224, 224, 7}, /* dark cyan */
|
||||
{224, 224, 224, 8}, /* light grey */
|
||||
|
||||
{128, 128, 128, 9}, /* dark grey */
|
||||
{255, 64, 64, 10}, /* light red */
|
||||
{ 64, 255, 64, 11}, /* light green */
|
||||
{255, 255, 64, 12}, /* yellow */
|
||||
{ 64, 64, 255, 13}, /* light blue */
|
||||
{255, 64, 255, 14}, /* light magenta */
|
||||
{ 64, 255, 255, 15}, /* light cyan */
|
||||
{255, 255, 255, 16}, /* white */
|
||||
};
|
||||
|
||||
static int cube_value[] = {
|
||||
0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF
|
||||
};
|
||||
|
||||
static int grey_ramp[] = {
|
||||
0x08, 0x12, 0x1C, 0x26, 0x30, 0x3A, 0x44, 0x4E, 0x58, 0x62, 0x6C, 0x76,
|
||||
0x80, 0x8A, 0x94, 0x9E, 0xA8, 0xB2, 0xBC, 0xC6, 0xD0, 0xDA, 0xE4, 0xEE
|
||||
};
|
||||
|
||||
/*
|
||||
* Convert a cterm color number 0 - 255 to RGB.
|
||||
* This is compatible with xterm.
|
||||
*/
|
||||
static void
|
||||
cterm_color2rgb(int nr, VTermColor *rgb)
|
||||
cterm_color2vterm(int nr, VTermColor *rgb)
|
||||
{
|
||||
int idx;
|
||||
|
||||
if (nr < 16)
|
||||
{
|
||||
*rgb = ansi_table[nr];
|
||||
}
|
||||
else if (nr < 232)
|
||||
{
|
||||
/* 216 color cube */
|
||||
idx = nr - 16;
|
||||
rgb->blue = cube_value[idx % 6];
|
||||
rgb->green = cube_value[idx / 6 % 6];
|
||||
rgb->red = cube_value[idx / 36 % 6];
|
||||
rgb->ansi_index = VTERM_ANSI_INDEX_NONE;
|
||||
}
|
||||
else if (nr < 256)
|
||||
{
|
||||
/* 24 grey scale ramp */
|
||||
idx = nr - 232;
|
||||
rgb->blue = grey_ramp[idx];
|
||||
rgb->green = grey_ramp[idx];
|
||||
rgb->red = grey_ramp[idx];
|
||||
rgb->ansi_index = VTERM_ANSI_INDEX_NONE;
|
||||
}
|
||||
cterm_color2rgb(nr, &rgb->red, &rgb->green, &rgb->blue, &rgb->ansi_index);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3125,6 +3073,10 @@ init_default_colors(term_T *term)
|
||||
# endif
|
||||
# ifdef FEAT_TERMGUICOLORS
|
||||
|| p_tgc
|
||||
# ifdef FEAT_VTP
|
||||
/* Finally get INVALCOLOR on this execution path */
|
||||
|| (!p_tgc && t_colors >= 256)
|
||||
# endif
|
||||
# endif
|
||||
)
|
||||
{
|
||||
@@ -3176,9 +3128,9 @@ init_default_colors(term_T *term)
|
||||
if (id != 0 && t_colors >= 16)
|
||||
{
|
||||
if (term_default_cterm_fg >= 0)
|
||||
cterm_color2rgb(term_default_cterm_fg, fg);
|
||||
cterm_color2vterm(term_default_cterm_fg, fg);
|
||||
if (term_default_cterm_bg >= 0)
|
||||
cterm_color2rgb(term_default_cterm_bg, bg);
|
||||
cterm_color2vterm(term_default_cterm_bg, bg);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3189,7 +3141,7 @@ init_default_colors(term_T *term)
|
||||
/* In an MS-Windows console we know the normal colors. */
|
||||
if (cterm_normal_fg_color > 0)
|
||||
{
|
||||
cterm_color2rgb(cterm_normal_fg_color - 1, fg);
|
||||
cterm_color2vterm(cterm_normal_fg_color - 1, fg);
|
||||
# if defined(WIN3264) && !defined(FEAT_GUI_W32)
|
||||
tmp = fg->red;
|
||||
fg->red = fg->blue;
|
||||
@@ -3203,7 +3155,7 @@ init_default_colors(term_T *term)
|
||||
|
||||
if (cterm_normal_bg_color > 0)
|
||||
{
|
||||
cterm_color2rgb(cterm_normal_bg_color - 1, bg);
|
||||
cterm_color2vterm(cterm_normal_bg_color - 1, bg);
|
||||
# if defined(WIN3264) && !defined(FEAT_GUI_W32)
|
||||
tmp = bg->red;
|
||||
bg->red = bg->blue;
|
||||
|
||||
@@ -64,9 +64,15 @@ func RunVimInTerminal(arguments, options)
|
||||
let cols = term_getsize(buf)[1]
|
||||
endif
|
||||
|
||||
" Wait for "All" of the ruler in the status line to be shown.
|
||||
" This can be quite slow (e.g. when using valgrind).
|
||||
call WaitFor({-> len(term_getline(buf, rows)) >= cols - 1})
|
||||
" Wait for "All" or "Top" of the ruler in the status line to be shown. This
|
||||
" can be quite slow (e.g. when using valgrind).
|
||||
" If it fails then show the terminal contents for debugging.
|
||||
try
|
||||
call WaitFor({-> len(term_getline(buf, rows)) >= cols - 1})
|
||||
catch /timed out after/
|
||||
let lines = map(range(1, rows), {key, val -> term_getline(buf, val)})
|
||||
call assert_report('RunVimInTerminal() failed, screen contents: ' . join(lines, "<NL>"))
|
||||
endtry
|
||||
|
||||
return buf
|
||||
endfunc
|
||||
@@ -75,7 +81,7 @@ endfunc
|
||||
func StopVimInTerminal(buf)
|
||||
call assert_equal("running", term_getstatus(a:buf))
|
||||
call term_sendkeys(a:buf, "\<Esc>\<Esc>:qa!\<cr>")
|
||||
call WaitFor('term_getstatus(' . a:buf . ') == "finished"')
|
||||
call WaitForAssert({-> assert_equal("finished", term_getstatus(a:buf))})
|
||||
only!
|
||||
endfunc
|
||||
|
||||
|
||||
+60
-18
@@ -115,38 +115,80 @@ endfunc
|
||||
|
||||
" Wait for up to five seconds for "expr" to become true. "expr" can be a
|
||||
" stringified expression to evaluate, or a funcref without arguments.
|
||||
" Using a lambda works best. Example:
|
||||
" call WaitFor({-> status == "ok"})
|
||||
"
|
||||
" A second argument can be used to specify a different timeout in msec.
|
||||
"
|
||||
" Return time slept in milliseconds. With the +reltime feature this can be
|
||||
" more than the actual waiting time. Without +reltime it can also be less.
|
||||
" When successful the time slept is returned.
|
||||
" When running into the timeout an exception is thrown, thus the function does
|
||||
" not return.
|
||||
func WaitFor(expr, ...)
|
||||
let timeout = get(a:000, 0, 5000)
|
||||
let slept = s:WaitForCommon(a:expr, v:null, timeout)
|
||||
if slept < 0
|
||||
throw 'WaitFor() timed out after ' . timeout . ' msec'
|
||||
endif
|
||||
return slept
|
||||
endfunc
|
||||
|
||||
" Wait for up to five seconds for "assert" to return zero. "assert" must be a
|
||||
" (lambda) function containing one assert function. Example:
|
||||
" call WaitForAssert({-> assert_equal("dead", job_status(job)})
|
||||
"
|
||||
" A second argument can be used to specify a different timeout in msec.
|
||||
"
|
||||
" Return zero for success, one for failure (like the assert function).
|
||||
func WaitForAssert(assert, ...)
|
||||
let timeout = get(a:000, 0, 5000)
|
||||
if s:WaitForCommon(v:null, a:assert, timeout) < 0
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
" Common implementation of WaitFor() and WaitForAssert().
|
||||
" Either "expr" or "assert" is not v:null
|
||||
" Return the waiting time for success, -1 for failure.
|
||||
func s:WaitForCommon(expr, assert, timeout)
|
||||
" using reltime() is more accurate, but not always available
|
||||
let slept = 0
|
||||
if has('reltime')
|
||||
let start = reltime()
|
||||
else
|
||||
let slept = 0
|
||||
endif
|
||||
if type(a:expr) == v:t_func
|
||||
let Test = a:expr
|
||||
else
|
||||
let Test = {-> eval(a:expr) }
|
||||
endif
|
||||
for i in range(timeout / 10)
|
||||
if Test()
|
||||
if has('reltime')
|
||||
return float2nr(reltimefloat(reltime(start)) * 1000)
|
||||
endif
|
||||
|
||||
while 1
|
||||
if type(a:expr) == v:t_func
|
||||
let success = a:expr()
|
||||
elseif type(a:assert) == v:t_func
|
||||
let success = a:assert() == 0
|
||||
else
|
||||
let success = eval(a:expr)
|
||||
endif
|
||||
if success
|
||||
return slept
|
||||
endif
|
||||
if !has('reltime')
|
||||
|
||||
if slept >= a:timeout
|
||||
break
|
||||
endif
|
||||
if type(a:assert) == v:t_func
|
||||
" Remove the error added by the assert function.
|
||||
call remove(v:errors, -1)
|
||||
endif
|
||||
|
||||
sleep 10m
|
||||
if has('reltime')
|
||||
let slept = float2nr(reltimefloat(reltime(start)) * 1000)
|
||||
else
|
||||
let slept += 10
|
||||
endif
|
||||
sleep 10m
|
||||
endfor
|
||||
throw 'WaitFor() timed out after ' . timeout . ' msec'
|
||||
endwhile
|
||||
|
||||
return -1 " timed out
|
||||
endfunc
|
||||
|
||||
|
||||
" Wait for up to a given milliseconds.
|
||||
" With the +timers feature this waits for key-input by getchar(), Resume()
|
||||
" feeds key-input and resumes process. Return time waited in milliseconds.
|
||||
|
||||
+46
-38
@@ -1,58 +1,66 @@
|
||||
" Test that the methods used for testing work.
|
||||
|
||||
func Test_assert_false()
|
||||
call assert_false(0)
|
||||
call assert_false(v:false)
|
||||
call assert_equal(0, assert_false(0))
|
||||
call assert_equal(0, assert_false(v:false))
|
||||
|
||||
call assert_equal(1, assert_false(123))
|
||||
call assert_match("Expected False but got 123", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endfunc
|
||||
|
||||
func Test_assert_true()
|
||||
call assert_true(1)
|
||||
call assert_true(123)
|
||||
call assert_true(v:true)
|
||||
call assert_equal(0, assert_true(1))
|
||||
call assert_equal(0, assert_true(123))
|
||||
call assert_equal(0, assert_true(v:true))
|
||||
|
||||
call assert_equal(1, assert_true(0))
|
||||
call assert_match("Expected True but got 0", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endfunc
|
||||
|
||||
func Test_assert_equal()
|
||||
let s = 'foo'
|
||||
call assert_equal('foo', s)
|
||||
call assert_equal(0, assert_equal('foo', s))
|
||||
let n = 4
|
||||
call assert_equal(4, n)
|
||||
call assert_equal(0, assert_equal(4, n))
|
||||
let l = [1, 2, 3]
|
||||
call assert_equal([1, 2, 3], l)
|
||||
call assert_equal(0, assert_equal([1, 2, 3], l))
|
||||
|
||||
let s = 'foo'
|
||||
call assert_equal('bar', s)
|
||||
call assert_equal(1, assert_equal('bar', s))
|
||||
call assert_match("Expected 'bar' but got 'foo'", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endfunc
|
||||
|
||||
func Test_assert_equalfile()
|
||||
call assert_equalfile('abcabc', 'xyzxyz')
|
||||
call assert_equal(1, assert_equalfile('abcabc', 'xyzxyz'))
|
||||
call assert_match("E485: Can't read file abcabc", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
let goodtext = ["one", "two", "three"]
|
||||
call writefile(goodtext, 'Xone')
|
||||
call assert_equalfile('Xone', 'xyzxyz')
|
||||
call assert_equal(1, assert_equalfile('Xone', 'xyzxyz'))
|
||||
call assert_match("E485: Can't read file xyzxyz", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
call writefile(goodtext, 'Xtwo')
|
||||
call assert_equalfile('Xone', 'Xtwo')
|
||||
call assert_equal(0, assert_equalfile('Xone', 'Xtwo'))
|
||||
|
||||
call writefile([goodtext[0]], 'Xone')
|
||||
call assert_equalfile('Xone', 'Xtwo')
|
||||
call assert_equal(1, assert_equalfile('Xone', 'Xtwo'))
|
||||
call assert_match("first file is shorter", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
call writefile(goodtext, 'Xone')
|
||||
call writefile([goodtext[0]], 'Xtwo')
|
||||
call assert_equalfile('Xone', 'Xtwo')
|
||||
call assert_equal(1, assert_equalfile('Xone', 'Xtwo'))
|
||||
call assert_match("second file is shorter", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
call writefile(['1234X89'], 'Xone')
|
||||
call writefile(['1234Y89'], 'Xtwo')
|
||||
call assert_equalfile('Xone', 'Xtwo')
|
||||
call assert_equal(1, assert_equalfile('Xone', 'Xtwo'))
|
||||
call assert_match("difference at byte 4", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
@@ -62,17 +70,17 @@ endfunc
|
||||
|
||||
func Test_assert_notequal()
|
||||
let n = 4
|
||||
call assert_notequal('foo', n)
|
||||
call assert_equal(0, assert_notequal('foo', n))
|
||||
let s = 'foo'
|
||||
call assert_notequal([1, 2, 3], s)
|
||||
call assert_equal(0, assert_notequal([1, 2, 3], s))
|
||||
|
||||
call assert_notequal('foo', s)
|
||||
call assert_equal(1, assert_notequal('foo', s))
|
||||
call assert_match("Expected not equal to 'foo'", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endfunc
|
||||
|
||||
func Test_assert_report()
|
||||
call assert_report('something is wrong')
|
||||
call assert_equal(1, assert_report('something is wrong'))
|
||||
call assert_match('something is wrong', v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endfunc
|
||||
@@ -81,7 +89,7 @@ func Test_assert_exception()
|
||||
try
|
||||
nocommand
|
||||
catch
|
||||
call assert_exception('E492:')
|
||||
call assert_equal(0, assert_exception('E492:'))
|
||||
endtry
|
||||
|
||||
try
|
||||
@@ -89,9 +97,9 @@ func Test_assert_exception()
|
||||
catch
|
||||
try
|
||||
" illegal argument, get NULL for error
|
||||
call assert_exception([])
|
||||
call assert_equal(1, assert_exception([]))
|
||||
catch
|
||||
call assert_exception('E730:')
|
||||
call assert_equal(0, assert_exception('E730:'))
|
||||
endtry
|
||||
endtry
|
||||
endfunc
|
||||
@@ -113,59 +121,59 @@ func Test_compare_fail()
|
||||
try
|
||||
call assert_equal(s:w, '')
|
||||
catch
|
||||
call assert_exception('E724:')
|
||||
call assert_equal(0, assert_exception('E724:'))
|
||||
call assert_match("Expected NULL but got ''", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endtry
|
||||
endfunc
|
||||
|
||||
func Test_match()
|
||||
call assert_match('^f.*b.*r$', 'foobar')
|
||||
call assert_equal(0, assert_match('^f.*b.*r$', 'foobar'))
|
||||
|
||||
call assert_match('bar.*foo', 'foobar')
|
||||
call assert_equal(1, assert_match('bar.*foo', 'foobar'))
|
||||
call assert_match("Pattern 'bar.*foo' does not match 'foobar'", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
call assert_match('bar.*foo', 'foobar', 'wrong')
|
||||
call assert_equal(1, assert_match('bar.*foo', 'foobar', 'wrong'))
|
||||
call assert_match('wrong', v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endfunc
|
||||
|
||||
func Test_notmatch()
|
||||
call assert_notmatch('foo', 'bar')
|
||||
call assert_notmatch('^foobar$', 'foobars')
|
||||
call assert_equal(0, assert_notmatch('foo', 'bar'))
|
||||
call assert_equal(0, assert_notmatch('^foobar$', 'foobars'))
|
||||
|
||||
call assert_notmatch('foo', 'foobar')
|
||||
call assert_equal(1, assert_notmatch('foo', 'foobar'))
|
||||
call assert_match("Pattern 'foo' does match 'foobar'", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endfunc
|
||||
|
||||
func Test_assert_fail_fails()
|
||||
call assert_fails('xxx', {})
|
||||
call assert_equal(1, assert_fails('xxx', {}))
|
||||
call assert_match("Expected {} but got 'E731:", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
endfunc
|
||||
|
||||
func Test_assert_beeps()
|
||||
new
|
||||
call assert_beeps('normal h')
|
||||
call assert_equal(0, assert_beeps('normal h'))
|
||||
|
||||
call assert_beeps('normal 0')
|
||||
call assert_equal(1, assert_beeps('normal 0'))
|
||||
call assert_match("command did not beep: normal 0", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
bwipe
|
||||
endfunc
|
||||
|
||||
func Test_assert_inrange()
|
||||
call assert_inrange(7, 7, 7)
|
||||
call assert_inrange(5, 7, 5)
|
||||
call assert_inrange(5, 7, 6)
|
||||
call assert_inrange(5, 7, 7)
|
||||
call assert_equal(0, assert_inrange(7, 7, 7))
|
||||
call assert_equal(0, assert_inrange(5, 7, 5))
|
||||
call assert_equal(0, assert_inrange(5, 7, 6))
|
||||
call assert_equal(0, assert_inrange(5, 7, 7))
|
||||
|
||||
call assert_inrange(5, 7, 4)
|
||||
call assert_equal(1, assert_inrange(5, 7, 4))
|
||||
call assert_match("Expected range 5 - 7, but got 4", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
call assert_inrange(5, 7, 8)
|
||||
call assert_equal(1, assert_inrange(5, 7, 8))
|
||||
call assert_match("Expected range 5 - 7, but got 8", v:errors[0])
|
||||
call remove(v:errors, 0)
|
||||
|
||||
|
||||
@@ -1322,11 +1322,11 @@ func Test_Changed_FirstTime()
|
||||
let buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile'], {'term_rows': 3})
|
||||
call assert_equal('running', term_getstatus(buf))
|
||||
" Wait for the ruler (in the status line) to be shown.
|
||||
call WaitFor({-> term_getline(buf, 3) =~# '\<All$'})
|
||||
call WaitForAssert({-> assert_match('\<All$', term_getline(buf, 3))})
|
||||
" It's only adding autocmd, so that no event occurs.
|
||||
call term_sendkeys(buf, ":au! TextChanged <buffer> call writefile(['No'], 'Xchanged.txt')\<cr>")
|
||||
call term_sendkeys(buf, "\<C-\\>\<C-N>:qa!\<cr>")
|
||||
call WaitFor({-> term_getstatus(buf) == 'finished'})
|
||||
call WaitForAssert({-> assert_equal('finished', term_getstatus(buf))})
|
||||
call assert_equal([''], readfile('Xchanged.txt'))
|
||||
|
||||
" clean up
|
||||
|
||||
@@ -16,5 +16,18 @@ func Test_blockinsert_indent()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_blockinsert_delete()
|
||||
new
|
||||
let _bs = &bs
|
||||
set bs=2
|
||||
call setline(1, ['case Arg is ', ' when Name_Async,', ' when Name_Num_Gangs,', 'end if;'])
|
||||
exe "norm! ggjVj\<c-v>$o$A\<bs>\<esc>"
|
||||
"call feedkeys("Vj\<c-v>$o$A\<bs>\<esc>", 'ti')
|
||||
call assert_equal(["case Arg is ", " when Name_Async", " when Name_Num_Gangs,", "end if;"],
|
||||
\ getline(1,'$'))
|
||||
" reset to sane state
|
||||
let &bs = _bs
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@@ -95,18 +95,15 @@ func Ch_communicate(port)
|
||||
" handled before getting the response, but it's not guaranteed, thus wait a
|
||||
" tiny bit for the commands to get executed.
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'make change'))
|
||||
call WaitFor('"added2" == getline("$")')
|
||||
call WaitForAssert({-> assert_equal("added2", getline("$"))})
|
||||
call assert_equal('added1', getline(line('$') - 1))
|
||||
call assert_equal('added2', getline('$'))
|
||||
|
||||
" Request command "foo bar", which fails silently.
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'bad command'))
|
||||
call WaitFor('v:errmsg =~ "E492"')
|
||||
call assert_match('E492:.*foo bar', v:errmsg)
|
||||
call WaitForAssert({-> assert_match("E492:.*foo bar", v:errmsg)})
|
||||
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'do normal', {'timeout': 100}))
|
||||
call WaitFor('"added more" == getline("$")')
|
||||
call assert_equal('added more', getline('$'))
|
||||
call WaitForAssert({-> assert_equal('added more', getline('$'))})
|
||||
|
||||
" Send a request with a specific handler.
|
||||
call ch_sendexpr(handle, 'hello!', {'callback': 'Ch_requestHandler'})
|
||||
@@ -188,10 +185,9 @@ func Ch_communicate(port)
|
||||
|
||||
" Send an expr request
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'an expr'))
|
||||
call WaitFor('"three" == getline("$")')
|
||||
call WaitForAssert({-> assert_equal('three', getline('$'))})
|
||||
call assert_equal('one', getline(line('$') - 2))
|
||||
call assert_equal('two', getline(line('$') - 1))
|
||||
call assert_equal('three', getline('$'))
|
||||
|
||||
" Request a redraw, we don't check for the effect.
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'redraw'))
|
||||
@@ -288,11 +284,11 @@ func Ch_channel_handler(port)
|
||||
|
||||
" Test that it works while waiting on a numbered message.
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'call me'))
|
||||
call WaitFor('"we called you" == g:Ch_reply')
|
||||
call WaitForAssert({-> assert_equal('we called you', g:Ch_reply)})
|
||||
|
||||
" Test that it works while not waiting on a numbered message.
|
||||
call ch_sendexpr(handle, 'call me again')
|
||||
call WaitFor('"we did call you" == g:Ch_reply')
|
||||
call WaitForAssert({-> assert_equal('we did call you', g:Ch_reply)})
|
||||
endfunc
|
||||
|
||||
func Test_channel_handler()
|
||||
@@ -334,7 +330,7 @@ func Ch_channel_zero(port)
|
||||
let g:Ch_reply = ''
|
||||
call assert_equal('sent zero', ch_evalexpr(handle, 'send zero'))
|
||||
if s:has_handler
|
||||
call WaitFor('"zero index" == g:Ch_reply')
|
||||
call WaitForAssert({-> assert_equal('zero index', g:Ch_reply)})
|
||||
else
|
||||
sleep 20m
|
||||
call assert_equal('', g:Ch_reply)
|
||||
@@ -344,7 +340,7 @@ func Ch_channel_zero(port)
|
||||
let g:Ch_reply = ''
|
||||
let g:Ch_zero_reply = ''
|
||||
call ch_sendexpr(handle, 'send zero', {'callback': 'Ch_oneHandler'})
|
||||
call WaitFor('"sent zero" == g:Ch_zero_reply')
|
||||
call WaitForAssert({-> assert_equal('sent zero', g:Ch_zero_reply)})
|
||||
if s:has_handler
|
||||
call assert_equal('zero index', g:Ch_reply)
|
||||
else
|
||||
@@ -395,15 +391,12 @@ func Ch_raw_one_time_callback(port)
|
||||
|
||||
" The messages are sent raw, we do our own JSON strings here.
|
||||
call ch_sendraw(handle, "[1, \"hello!\"]\n", {'callback': 'Ch_handleRaw1'})
|
||||
call WaitFor('g:Ch_reply1 != ""')
|
||||
call assert_equal("[1, \"got it\"]", g:Ch_reply1)
|
||||
call WaitForAssert({-> assert_equal("[1, \"got it\"]", g:Ch_reply1)})
|
||||
call ch_sendraw(handle, "[2, \"echo something\"]\n", {'callback': 'Ch_handleRaw2'})
|
||||
call ch_sendraw(handle, "[3, \"wait a bit\"]\n", {'callback': 'Ch_handleRaw3'})
|
||||
call WaitFor('g:Ch_reply2 != ""')
|
||||
call assert_equal("[2, \"something\"]", g:Ch_reply2)
|
||||
call WaitForAssert({-> assert_equal("[2, \"something\"]", g:Ch_reply2)})
|
||||
" wait for the 200 msec delayed reply
|
||||
call WaitFor('g:Ch_reply3 != ""')
|
||||
call assert_equal("[3, \"waited\"]", g:Ch_reply3)
|
||||
call WaitForAssert({-> assert_equal("[3, \"waited\"]", g:Ch_reply3)})
|
||||
endfunc
|
||||
|
||||
func Test_raw_one_time_callback()
|
||||
@@ -494,8 +487,7 @@ func Test_raw_pipe()
|
||||
|
||||
let g:Ch_reply = ""
|
||||
call ch_sendraw(job, "double this\n", {'callback': 'Ch_handler'})
|
||||
call WaitFor('"" != g:Ch_reply')
|
||||
call assert_equal("this\nAND this\n", substitute(g:Ch_reply, "\r", "", 'g'))
|
||||
call WaitForAssert({-> assert_equal("this\nAND this\n", substitute(g:Ch_reply, "\r", "", 'g'))})
|
||||
|
||||
let reply = ch_evalraw(job, "quit\n", {'timeout': 100})
|
||||
call assert_equal("Goodbye!\n", substitute(reply, "\r", "", 'g'))
|
||||
@@ -504,7 +496,7 @@ func Test_raw_pipe()
|
||||
endtry
|
||||
|
||||
let g:Ch_job = job
|
||||
call WaitFor('"dead" == job_status(g:Ch_job)')
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(g:Ch_job))})
|
||||
let info = job_info(job)
|
||||
call assert_equal("dead", info.status)
|
||||
call assert_equal("term", info.stoponexit)
|
||||
@@ -602,7 +594,7 @@ func Stop_g_job()
|
||||
if has('win32')
|
||||
" On MS-Windows the server must close the file handle before we are able
|
||||
" to delete the file.
|
||||
call WaitFor('job_status(g:job) == "dead"')
|
||||
call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
|
||||
sleep 10m
|
||||
endif
|
||||
endfunc
|
||||
@@ -641,8 +633,7 @@ func Test_nl_write_out_file()
|
||||
call ch_sendraw(handle, "echo line one\n")
|
||||
call ch_sendraw(handle, "echo line two\n")
|
||||
call ch_sendraw(handle, "double this\n")
|
||||
call WaitFor('len(readfile("Xoutput")) > 2')
|
||||
call assert_equal(['line one', 'line two', 'this', 'AND this'], readfile('Xoutput'))
|
||||
call WaitForAssert({-> assert_equal(['line one', 'line two', 'this', 'AND this'], readfile('Xoutput'))})
|
||||
finally
|
||||
call Stop_g_job()
|
||||
call assert_equal(-1, match(s:get_resources(), '\(^\|/\)Xoutput$'))
|
||||
@@ -663,8 +654,7 @@ func Test_nl_write_err_file()
|
||||
call ch_sendraw(handle, "echoerr line one\n")
|
||||
call ch_sendraw(handle, "echoerr line two\n")
|
||||
call ch_sendraw(handle, "doubleerr this\n")
|
||||
call WaitFor('len(readfile("Xoutput")) > 2')
|
||||
call assert_equal(['line one', 'line two', 'this', 'AND this'], readfile('Xoutput'))
|
||||
call WaitForAssert({-> assert_equal(['line one', 'line two', 'this', 'AND this'], readfile('Xoutput'))})
|
||||
finally
|
||||
call Stop_g_job()
|
||||
call delete('Xoutput')
|
||||
@@ -685,8 +675,7 @@ func Test_nl_write_both_file()
|
||||
call ch_sendraw(handle, "echo line two\n")
|
||||
call ch_sendraw(handle, "double this\n")
|
||||
call ch_sendraw(handle, "doubleerr that\n")
|
||||
call WaitFor('len(readfile("Xoutput")) > 5')
|
||||
call assert_equal(['line one', 'line two', 'this', 'AND this', 'that', 'AND that'], readfile('Xoutput'))
|
||||
call WaitForAssert({-> assert_equal(['line one', 'line two', 'this', 'AND this', 'that', 'AND that'], readfile('Xoutput'))})
|
||||
finally
|
||||
call Stop_g_job()
|
||||
call assert_equal(-1, match(s:get_resources(), '\(^\|/\)Xoutput$'))
|
||||
@@ -777,8 +766,7 @@ func Test_close_output_buffer()
|
||||
let job = job_start(s:python . " test_channel_write.py", options)
|
||||
call assert_equal("run", job_status(job))
|
||||
try
|
||||
call WaitFor('line("$") == 3')
|
||||
call assert_inrange(3, 10, line('$'))
|
||||
call WaitForAssert({-> assert_equal(3, line('$'))})
|
||||
quit!
|
||||
sleep 100m
|
||||
" Make sure the write didn't happen to the wrong buffer.
|
||||
@@ -827,8 +815,7 @@ func Run_test_pipe_err_to_buffer(use_name, nomod, do_msg)
|
||||
call ch_sendraw(handle, "doubleerr this\n")
|
||||
call ch_sendraw(handle, "quit\n")
|
||||
sp pipe-err
|
||||
call WaitFor('line("$") == ' . len(expected))
|
||||
call assert_equal(expected, getline(1, '$'))
|
||||
call WaitForAssert({-> assert_equal(expected, getline(1, '$'))})
|
||||
if a:nomod
|
||||
call assert_equal(0, &modifiable)
|
||||
else
|
||||
@@ -872,8 +859,7 @@ func Test_pipe_both_to_buffer()
|
||||
call ch_sendraw(handle, "doubleerr that\n")
|
||||
call ch_sendraw(handle, "quit\n")
|
||||
sp pipe-err
|
||||
call WaitFor('line("$") >= 7')
|
||||
call assert_equal(['Reading from channel output...', 'line one', 'line two', 'this', 'AND this', 'that', 'AND that', 'Goodbye!'], getline(1, '$'))
|
||||
call WaitForAssert({-> assert_equal(['Reading from channel output...', 'line one', 'line two', 'this', 'AND this', 'that', 'AND that', 'Goodbye!'], getline(1, '$'))})
|
||||
bwipe!
|
||||
finally
|
||||
call job_stop(job)
|
||||
@@ -939,8 +925,7 @@ func Run_pipe_through_sort(all, use_buffer)
|
||||
call ch_close_in(g:job)
|
||||
endif
|
||||
|
||||
call WaitFor('job_status(g:job) == "dead"')
|
||||
call assert_equal("dead", job_status(g:job))
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(g:job))})
|
||||
|
||||
sp sortout
|
||||
call WaitFor('line("$") > 3')
|
||||
@@ -1222,16 +1207,14 @@ func Test_out_cb()
|
||||
let g:Ch_errmsg = ''
|
||||
call ch_sendraw(job, "echo [0, \"hello\"]\n")
|
||||
call ch_sendraw(job, "echoerr [0, \"there\"]\n")
|
||||
call WaitFor('g:Ch_outmsg != ""')
|
||||
call assert_equal("dict: hello", g:Ch_outmsg)
|
||||
call WaitFor('g:Ch_errmsg != ""')
|
||||
call assert_equal("dict: there", g:Ch_errmsg)
|
||||
call WaitForAssert({-> assert_equal("dict: hello", g:Ch_outmsg)})
|
||||
call WaitForAssert({-> assert_equal("dict: there", g:Ch_errmsg)})
|
||||
|
||||
" Receive a json object split in pieces
|
||||
unlet! g:Ch_outobj
|
||||
call ch_sendraw(job, "echosplit [0, {\"one\": 1,| \"tw|o\": 2, \"three\": 3|}]\n")
|
||||
call WaitFor('exists("g:Ch_outobj")')
|
||||
call assert_equal({'one': 1, 'two': 2, 'three': 3}, g:Ch_outobj)
|
||||
let g:Ch_outobj = ''
|
||||
call WaitForAssert({-> assert_equal({'one': 1, 'two': 2, 'three': 3}, g:Ch_outobj)})
|
||||
finally
|
||||
call job_stop(job)
|
||||
endtry
|
||||
@@ -1261,9 +1244,8 @@ func Test_out_close_cb()
|
||||
\ 'close_cb': 'CloseHandler'})
|
||||
call assert_equal("run", job_status(job))
|
||||
try
|
||||
call WaitFor('g:Ch_closemsg != 0 && g:Ch_msg1 != ""')
|
||||
call assert_equal('quit', g:Ch_msg1)
|
||||
call assert_equal(2, g:Ch_closemsg)
|
||||
call WaitForAssert({-> assert_equal('quit', g:Ch_msg1)})
|
||||
call WaitForAssert({-> assert_equal(2, g:Ch_closemsg)})
|
||||
finally
|
||||
call job_stop(job)
|
||||
delfunc OutHandler
|
||||
@@ -1285,8 +1267,7 @@ func Test_read_in_close_cb()
|
||||
\ {'close_cb': 'CloseHandler'})
|
||||
call assert_equal("run", job_status(job))
|
||||
try
|
||||
call WaitFor('g:Ch_received != ""')
|
||||
call assert_equal('quit', g:Ch_received)
|
||||
call WaitForAssert({-> assert_equal('quit', g:Ch_received)})
|
||||
finally
|
||||
call job_stop(job)
|
||||
delfunc CloseHandler
|
||||
@@ -1310,8 +1291,7 @@ func Test_read_in_close_cb_incomplete()
|
||||
\ {'close_cb': 'CloseHandler'})
|
||||
call assert_equal("run", job_status(job))
|
||||
try
|
||||
call WaitFor('g:Ch_received != ""')
|
||||
call assert_equal('incomplete', g:Ch_received)
|
||||
call WaitForAssert({-> assert_equal('incomplete', g:Ch_received)})
|
||||
finally
|
||||
call job_stop(job)
|
||||
delfunc CloseHandler
|
||||
@@ -1335,10 +1315,8 @@ func Test_out_cb_lambda()
|
||||
let g:Ch_errmsg = ''
|
||||
call ch_sendraw(job, "echo [0, \"hello\"]\n")
|
||||
call ch_sendraw(job, "echoerr [0, \"there\"]\n")
|
||||
call WaitFor('g:Ch_outmsg != ""')
|
||||
call assert_equal("lambda: hello", g:Ch_outmsg)
|
||||
call WaitFor('g:Ch_errmsg != ""')
|
||||
call assert_equal("lambda: there", g:Ch_errmsg)
|
||||
call WaitForAssert({-> assert_equal("lambda: hello", g:Ch_outmsg)})
|
||||
call WaitForAssert({-> assert_equal("lambda: there", g:Ch_errmsg)})
|
||||
finally
|
||||
call job_stop(job)
|
||||
endtry
|
||||
@@ -1364,8 +1342,7 @@ func Test_close_and_exit_cb()
|
||||
\ })
|
||||
call assert_equal('run', job_status(g:job))
|
||||
unlet g:job
|
||||
call WaitFor('len(g:retdict.ret) >= 2')
|
||||
call assert_equal(2, len(g:retdict.ret))
|
||||
call WaitForAssert({-> assert_equal(2, len(g:retdict.ret))})
|
||||
call assert_match('^\%(dead\|run\)', g:retdict.ret['close_cb'])
|
||||
call assert_equal('dead', g:retdict.ret['exit_cb'])
|
||||
unlet g:retdict
|
||||
@@ -1383,8 +1360,7 @@ endfunc
|
||||
func Ch_unlet_handle(port)
|
||||
let s:channelfd = ch_open('localhost:' . a:port, s:chopt)
|
||||
call ch_sendexpr(s:channelfd, "test", {'callback': function('s:UnletHandler')})
|
||||
call WaitFor('"what?" == g:Ch_unletResponse')
|
||||
call assert_equal('what?', g:Ch_unletResponse)
|
||||
call WaitForAssert({-> assert_equal('what?', g:Ch_unletResponse)})
|
||||
endfunc
|
||||
|
||||
func Test_unlet_handle()
|
||||
@@ -1404,8 +1380,7 @@ endfunc
|
||||
func Ch_close_handle(port)
|
||||
let s:channelfd = ch_open('localhost:' . a:port, s:chopt)
|
||||
call ch_sendexpr(s:channelfd, "test", {'callback': function('Ch_CloseHandler')})
|
||||
call WaitFor('"what?" == g:Ch_unletResponse')
|
||||
call assert_equal('what?', g:Ch_unletResponse)
|
||||
call WaitForAssert({-> assert_equal('what?', g:Ch_unletResponse)})
|
||||
endfunc
|
||||
|
||||
func Test_close_handle()
|
||||
@@ -1458,8 +1433,7 @@ function Ch_test_call(port)
|
||||
|
||||
let g:Ch_call_ret = []
|
||||
call assert_equal('ok', ch_evalexpr(handle, 'call-func'))
|
||||
call WaitFor('len(g:Ch_call_ret) > 0')
|
||||
call assert_equal([1, 2, 3], g:Ch_call_ret)
|
||||
call WaitForAssert({-> assert_equal([1, 2, 3], g:Ch_call_ret)})
|
||||
endfunc
|
||||
|
||||
func Test_call()
|
||||
@@ -1556,8 +1530,7 @@ function Ch_test_close_callback(port)
|
||||
call ch_setoptions(handle, {'close_cb': 'MyCloseCb'})
|
||||
|
||||
call assert_equal('', ch_evalexpr(handle, 'close me'))
|
||||
call WaitFor('"closed" == g:Ch_close_ret')
|
||||
call assert_equal('closed', g:Ch_close_ret)
|
||||
call WaitForAssert({-> assert_equal('closed', g:Ch_close_ret)})
|
||||
endfunc
|
||||
|
||||
func Test_close_callback()
|
||||
@@ -1578,8 +1551,7 @@ function Ch_test_close_partial(port)
|
||||
call ch_setoptions(handle, {'close_cb': g:Ch_d.closeCb})
|
||||
|
||||
call assert_equal('', ch_evalexpr(handle, 'close me'))
|
||||
call WaitFor('"closed" == g:Ch_d.close_ret')
|
||||
call assert_equal('closed', g:Ch_d.close_ret)
|
||||
call WaitForAssert({-> assert_equal('closed', g:Ch_d.close_ret)})
|
||||
unlet g:Ch_d
|
||||
endfunc
|
||||
|
||||
@@ -1601,8 +1573,7 @@ func Test_job_stop_immediately()
|
||||
let g:job = job_start([s:python, '-c', 'import time;time.sleep(10)'])
|
||||
try
|
||||
call job_stop(g:job)
|
||||
call WaitFor('"dead" == job_status(g:job)')
|
||||
call assert_equal('dead', job_status(g:job))
|
||||
call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
|
||||
finally
|
||||
call job_stop(g:job, 'kill')
|
||||
unlet g:job
|
||||
@@ -1637,8 +1608,7 @@ func Test_collapse_buffers()
|
||||
split testout
|
||||
1,$delete
|
||||
call job_start('cat test_channel.vim', {'out_io': 'buffer', 'out_name': 'testout'})
|
||||
call WaitFor('line("$") >= g:linecount')
|
||||
call assert_inrange(g:linecount, g:linecount + 1, line('$'))
|
||||
call WaitForAssert({-> assert_inrange(g:linecount, g:linecount + 1, line('$'))})
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
@@ -1648,13 +1618,11 @@ func Test_cmd_parsing()
|
||||
endif
|
||||
call assert_false(filereadable("file with space"))
|
||||
let job = job_start('touch "file with space"')
|
||||
call WaitFor('filereadable("file with space")')
|
||||
call assert_true(filereadable("file with space"))
|
||||
call WaitForAssert({-> assert_true(filereadable("file with space"))})
|
||||
call delete("file with space")
|
||||
|
||||
let job = job_start('touch file\ with\ space')
|
||||
call WaitFor('filereadable("file with space")')
|
||||
call assert_true(filereadable("file with space"))
|
||||
call WaitForAssert({-> assert_true(filereadable("file with space"))})
|
||||
call delete("file with space")
|
||||
endfunc
|
||||
|
||||
@@ -1683,7 +1651,7 @@ func Test_raw_passes_nul()
|
||||
new mybuffer
|
||||
call setline(1, ["asdf\nasdf", "xxx\n", "\nyyy"])
|
||||
let g:Ch_job = job_start('cat', {'in_io': 'buffer', 'in_name': 'mybuffer', 'out_io': 'file', 'out_name': 'Xtestwrite'})
|
||||
call WaitFor('"dead" == job_status(g:Ch_job)')
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(g:Ch_job))})
|
||||
bwipe!
|
||||
split Xtestwrite
|
||||
call assert_equal("asdf\nasdf", getline(1))
|
||||
@@ -1707,8 +1675,7 @@ func Test_read_nonl_line()
|
||||
let g:linecount = 0
|
||||
let arg = 'import sys;sys.stdout.write("1\n2\n3")'
|
||||
call job_start([s:python, '-c', arg], {'callback': 'MyLineCountCb'})
|
||||
call WaitFor('3 <= g:linecount')
|
||||
call assert_equal(3, g:linecount)
|
||||
call WaitForAssert({-> assert_equal(3, g:linecount)})
|
||||
endfunc
|
||||
|
||||
func Test_read_from_terminated_job()
|
||||
@@ -1719,8 +1686,7 @@ func Test_read_from_terminated_job()
|
||||
let g:linecount = 0
|
||||
let arg = 'import os,sys;os.close(1);sys.stderr.write("test\n")'
|
||||
call job_start([s:python, '-c', arg], {'callback': 'MyLineCountCb'})
|
||||
call WaitFor('1 <= g:linecount')
|
||||
call assert_equal(1, g:linecount)
|
||||
call WaitForAssert({-> assert_equal(1, g:linecount)})
|
||||
endfunc
|
||||
|
||||
func Test_env()
|
||||
@@ -1736,8 +1702,7 @@ func Test_env()
|
||||
endif
|
||||
call assert_fails('call job_start(cmd, {"env": 1})', 'E475:')
|
||||
call job_start(cmd, {'callback': {ch,msg -> execute(":let g:envstr .= msg")}, 'env': {'FOO': 'bar'}})
|
||||
call WaitFor('"" != g:envstr')
|
||||
call assert_equal("bar", g:envstr)
|
||||
call WaitForAssert({-> assert_equal("bar", g:envstr)})
|
||||
unlet g:envstr
|
||||
endfunc
|
||||
|
||||
@@ -1756,7 +1721,7 @@ func Test_cwd()
|
||||
endif
|
||||
let job = job_start(cmd, {'callback': {ch,msg -> execute(":let g:envstr .= msg")}, 'cwd': expect})
|
||||
try
|
||||
call WaitFor('"" != g:envstr')
|
||||
call WaitForAssert({-> assert_notequal("", g:envstr)})
|
||||
let expect = substitute(expect, '[/\\]$', '', '')
|
||||
let g:envstr = substitute(g:envstr, '[/\\]$', '', '')
|
||||
if $CI != '' && stridx(g:envstr, '/private/') == 0
|
||||
@@ -1779,8 +1744,7 @@ function Ch_test_close_lambda(port)
|
||||
call ch_setoptions(handle, {'close_cb': {ch -> execute("let g:Ch_close_ret = 'closed'")}})
|
||||
|
||||
call assert_equal('', ch_evalexpr(handle, 'close me'))
|
||||
call WaitFor('"closed" == g:Ch_close_ret')
|
||||
call assert_equal('closed', g:Ch_close_ret)
|
||||
call WaitForAssert({-> assert_equal('closed', g:Ch_close_ret)})
|
||||
endfunc
|
||||
|
||||
func Test_close_lambda()
|
||||
|
||||
@@ -28,12 +28,11 @@ func Test_client_server()
|
||||
let name = 'XVIMTEST'
|
||||
let cmd .= ' --servername ' . name
|
||||
let job = job_start(cmd, {'stoponexit': 'kill', 'out_io': 'null'})
|
||||
call WaitFor({-> job_status(job) == "run"})
|
||||
call WaitForAssert({-> assert_equal("run", job_status(job))})
|
||||
|
||||
" Takes a short while for the server to be active.
|
||||
" When using valgrind it takes much longer.
|
||||
call WaitFor('serverlist() =~ "' . name . '"')
|
||||
call assert_match(name, serverlist())
|
||||
call WaitForAssert({-> assert_match(name, serverlist())})
|
||||
|
||||
call remote_foreground(name)
|
||||
|
||||
@@ -54,12 +53,10 @@ func Test_client_server()
|
||||
endif
|
||||
" Wait for the server to be up and answering requests.
|
||||
sleep 100m
|
||||
call WaitFor('remote_expr("' . name . '", "v:version", "", 1) != ""')
|
||||
call assert_true(remote_expr(name, "v:version", "", 1) != "")
|
||||
call WaitForAssert({-> assert_true(remote_expr(name, "v:version", "", 1) != "")})
|
||||
|
||||
call remote_send(name, ":let testvar = 'maybe'\<CR>")
|
||||
call WaitFor('remote_expr("' . name . '", "testvar", "", 1) == "maybe"')
|
||||
call assert_equal('maybe', remote_expr(name, "testvar", "", 2))
|
||||
call WaitForAssert({-> assert_equal('maybe', remote_expr(name, "testvar", "", 2))})
|
||||
endif
|
||||
|
||||
call assert_fails('call remote_send("XXX", ":let testvar = ''yes''\<CR>")', 'E241')
|
||||
@@ -94,7 +91,7 @@ func Test_client_server()
|
||||
|
||||
call remote_send(name, ":qa!\<CR>")
|
||||
try
|
||||
call WaitFor({-> job_status(job) == "dead"})
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(job))})
|
||||
finally
|
||||
if job_status(job) != 'dead'
|
||||
call assert_report('Server did not exit')
|
||||
|
||||
@@ -306,6 +306,9 @@ func Test_paste_in_cmdline()
|
||||
call feedkeys("ft:aaa \<C-R>\<C-F> bbb\<C-B>\"\<CR>", 'tx')
|
||||
call assert_equal('"aaa /tmp/some bbb', @:)
|
||||
|
||||
call feedkeys(":aaa \<C-R>\<C-L> bbb\<C-B>\"\<CR>", 'tx')
|
||||
call assert_equal('"aaa '.getline(1).' bbb', @:)
|
||||
|
||||
set incsearch
|
||||
call feedkeys("fy:aaa veryl\<C-R>\<C-W> bbb\<C-B>\"\<CR>", 'tx')
|
||||
call assert_equal('"aaa verylongword bbb', @:)
|
||||
|
||||
@@ -33,13 +33,25 @@ endfunc
|
||||
|
||||
func Test_colorscheme()
|
||||
let colorscheme_saved = exists('g:colors_name') ? g:colors_name : 'default'
|
||||
let g:color_count = 0
|
||||
augroup TestColors
|
||||
au!
|
||||
au ColorScheme * let g:color_count += 1| let g:after_colors = g:color_count
|
||||
au ColorSchemePre * let g:color_count += 1 |let g:before_colors = g:color_count
|
||||
augroup END
|
||||
|
||||
colorscheme torte
|
||||
redraw!
|
||||
sleep 200m
|
||||
call assert_equal('dark', &background)
|
||||
call assert_equal(1, g:before_colors)
|
||||
call assert_equal(2, g:after_colors)
|
||||
|
||||
exec 'colorscheme' colorscheme_saved
|
||||
augroup TestColors
|
||||
au!
|
||||
augroup END
|
||||
unlet g:color_count g:after_colors g:before_colors
|
||||
redraw!
|
||||
endfunc
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@ func Test_job_start_fails()
|
||||
if has('job')
|
||||
let job = job_start('axdfxsdf')
|
||||
if has('unix')
|
||||
call WaitFor({-> job_status(job) == "dead"})
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(job))})
|
||||
else
|
||||
call WaitFor({-> job_status(job) == "fail"})
|
||||
call WaitForAssert({-> assert_equal("fail", job_status(job))})
|
||||
endif
|
||||
endif
|
||||
endfunc
|
||||
|
||||
@@ -649,18 +649,15 @@ func Test_popup_and_window_resize()
|
||||
call term_sendkeys(buf, "\<c-v>")
|
||||
call term_wait(buf, 100)
|
||||
" popup first entry "!" must be at the top
|
||||
call WaitFor({-> term_getline(buf, 1) =~ "^!"})
|
||||
call assert_match('^!\s*$', term_getline(buf, 1))
|
||||
call WaitForAssert({-> assert_match('^!\s*$', term_getline(buf, 1))})
|
||||
exe 'resize +' . (h - 1)
|
||||
call term_wait(buf, 100)
|
||||
redraw!
|
||||
" popup shifted down, first line is now empty
|
||||
call WaitFor({-> term_getline(buf, 1) == ""})
|
||||
call assert_equal('', term_getline(buf, 1))
|
||||
call WaitForAssert({-> assert_equal('', term_getline(buf, 1))})
|
||||
sleep 100m
|
||||
" popup is below cursor line and shows first match "!"
|
||||
call WaitFor({-> term_getline(buf, term_getcursor(buf)[0] + 1) =~ "^!"})
|
||||
call assert_match('^!\s*$', term_getline(buf, term_getcursor(buf)[0] + 1))
|
||||
call WaitForAssert({-> assert_match('^!\s*$', term_getline(buf, term_getcursor(buf)[0] + 1))})
|
||||
" cursor line also shows !
|
||||
call assert_match('^!\s*$', term_getline(buf, term_getcursor(buf)[0]))
|
||||
bwipe!
|
||||
|
||||
@@ -138,6 +138,16 @@ func XlistTests(cchar)
|
||||
\ ' 4:40 col 20 x 44: Other',
|
||||
\ ' 5:50 col 25 55: one'], l)
|
||||
|
||||
" Test for module names, one needs to explicitly set `'valid':v:true` so
|
||||
call g:Xsetlist([
|
||||
\ {'lnum':10,'col':5,'type':'W','module':'Data.Text','text':'ModuleWarning','nr':11,'valid':v:true},
|
||||
\ {'lnum':20,'col':10,'type':'W','module':'Data.Text','filename':'Data/Text.hs','text':'ModuleWarning','nr':22,'valid':v:true},
|
||||
\ {'lnum':30,'col':15,'type':'W','filename':'Data/Text.hs','text':'FileWarning','nr':33,'valid':v:true}])
|
||||
let l = split(execute('Xlist', ""), "\n")
|
||||
call assert_equal([' 1 Data.Text:10 col 5 warning 11: ModuleWarning',
|
||||
\ ' 2 Data.Text:20 col 10 warning 22: ModuleWarning',
|
||||
\ ' 3 Data/Text.hs:30 col 15 warning 33: FileWarning'], l)
|
||||
|
||||
" Error cases
|
||||
call assert_fails('Xlist abc', 'E488:')
|
||||
endfunc
|
||||
@@ -1142,6 +1152,21 @@ func Test_efm2()
|
||||
call assert_equal(1, l[4].valid)
|
||||
call assert_equal('unittests/dbfacadeTest.py', bufname(l[4].bufnr))
|
||||
|
||||
" Test for %o
|
||||
set efm=%f(%o):%l\ %m
|
||||
cgetexpr ['Xotestfile(Language.PureScript.Types):20 Error']
|
||||
call writefile(['Line1'], 'Xotestfile')
|
||||
let l = getqflist()
|
||||
call assert_equal(1, len(l), string(l))
|
||||
call assert_equal('Language.PureScript.Types', l[0].module)
|
||||
copen
|
||||
call assert_equal('Language.PureScript.Types|20| Error', getline(1))
|
||||
call feedkeys("\<CR>", 'xn')
|
||||
call assert_equal('Xotestfile', expand('%:t'))
|
||||
cclose
|
||||
bd
|
||||
call delete("Xotestfile")
|
||||
|
||||
" The following sequence of commands used to crash Vim
|
||||
set efm=%W%m
|
||||
cgetexpr ['msg1']
|
||||
@@ -3201,3 +3226,27 @@ func Test_lhelpgrep_autocmd()
|
||||
au! QuickFixCmdPost
|
||||
new | only
|
||||
endfunc
|
||||
|
||||
" Test for shortening/simplifying the file name when opening the
|
||||
" quickfix window or when displaying the quickfix list
|
||||
func Test_shorten_fname()
|
||||
if !has('unix')
|
||||
return
|
||||
endif
|
||||
%bwipe
|
||||
" Create a quickfix list with a absolute path filename
|
||||
let fname = getcwd() . '/test_quickfix.vim'
|
||||
call setqflist([], ' ', {'lines':[fname . ":20:Line20"], 'efm':'%f:%l:%m'})
|
||||
call assert_equal(fname, bufname('test_quickfix.vim'))
|
||||
" Opening the quickfix window should simplify the file path
|
||||
cwindow
|
||||
call assert_equal('test_quickfix.vim', bufname('test_quickfix.vim'))
|
||||
cclose
|
||||
%bwipe
|
||||
" Create a quickfix list with a absolute path filename
|
||||
call setqflist([], ' ', {'lines':[fname . ":20:Line20"], 'efm':'%f:%l:%m'})
|
||||
call assert_equal(fname, bufname('test_quickfix.vim'))
|
||||
" Displaying the quickfix list should simplify the file path
|
||||
silent! clist
|
||||
call assert_equal('test_quickfix.vim', bufname('test_quickfix.vim'))
|
||||
endfunc
|
||||
|
||||
@@ -54,34 +54,33 @@ func Do_test_quotestar_for_x11()
|
||||
" Make sure a previous server has exited
|
||||
try
|
||||
call remote_send(name, ":qa!\<CR>")
|
||||
call WaitFor('serverlist() !~ "' . name . '"')
|
||||
catch /E241:/
|
||||
endtry
|
||||
call assert_notmatch(name, serverlist())
|
||||
call WaitForAssert({-> assert_notmatch(name, serverlist())})
|
||||
|
||||
let cmd .= ' --servername ' . name
|
||||
let job = job_start(cmd, {'stoponexit': 'kill', 'out_io': 'null'})
|
||||
call WaitFor({-> job_status(job) == "run"})
|
||||
call WaitForAssert({-> assert_equal("run", job_status(job))})
|
||||
|
||||
" Takes a short while for the server to be active.
|
||||
call WaitFor('serverlist() =~ "' . name . '"')
|
||||
call WaitForAssert({-> assert_match(name, serverlist())})
|
||||
|
||||
" Wait for the server to be up and answering requests. One second is not
|
||||
" always sufficient.
|
||||
call WaitFor('remote_expr("' . name . '", "v:version", "", 2) != ""')
|
||||
call WaitForAssert({-> assert_notequal('', remote_expr(name, "v:version", "", 2))})
|
||||
|
||||
" Clear the *-register of this vim instance and wait for it to be picked up
|
||||
" by the server.
|
||||
let @* = 'no'
|
||||
call remote_foreground(name)
|
||||
call WaitFor('remote_expr("' . name . '", "@*", "", 1) == "no"')
|
||||
call WaitForAssert({-> assert_equal("no", remote_expr(name, "@*", "", 1))})
|
||||
|
||||
" Set the * register on the server.
|
||||
call remote_send(name, ":let @* = 'yes'\<CR>")
|
||||
call WaitFor('remote_expr("' . name . '", "@*", "", 1) == "yes"')
|
||||
call WaitForAssert({-> assert_equal("yes", remote_expr(name, "@*", "", 1))})
|
||||
|
||||
" Check that the *-register of this vim instance is changed as expected.
|
||||
call WaitFor('@* == "yes"')
|
||||
call WaitForAssert({-> assert_equal("yes", @*)})
|
||||
|
||||
" Handle the large selection over 262040 byte.
|
||||
let length = 262044
|
||||
@@ -109,18 +108,17 @@ func Do_test_quotestar_for_x11()
|
||||
call remote_send(name, ":gui -f\<CR>")
|
||||
endif
|
||||
" Wait for the server in the GUI to be up and answering requests.
|
||||
call WaitFor('remote_expr("' . name . '", "has(\"gui_running\")", "", 1) =~ "1"')
|
||||
call WaitForAssert({-> assert_match("1", remote_expr(name, "has('gui_running')", "", 1))})
|
||||
|
||||
call remote_send(name, ":let @* = 'maybe'\<CR>")
|
||||
call WaitFor('remote_expr("' . name . '", "@*", "", 1) == "maybe"')
|
||||
call assert_equal('maybe', remote_expr(name, "@*", "", 2))
|
||||
call WaitForAssert({-> assert_equal("maybe", remote_expr(name, "@*", "", 2))})
|
||||
|
||||
call assert_equal('maybe', @*)
|
||||
endif
|
||||
|
||||
call remote_send(name, ":qa!\<CR>")
|
||||
try
|
||||
call WaitFor({-> job_status(job) == "dead"})
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(job))})
|
||||
finally
|
||||
if job_status(job) != 'dead'
|
||||
call assert_report('Server did not exit')
|
||||
|
||||
@@ -494,7 +494,7 @@ func Test_search_cmdline8()
|
||||
call writefile(lines, 'Xsearch.txt')
|
||||
let buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile', 'Xsearch.txt'], {'term_rows': 3})
|
||||
|
||||
call WaitFor({-> lines == [term_getline(buf, 1), term_getline(buf, 2)] })
|
||||
call WaitForAssert({-> assert_equal(lines, [term_getline(buf, 1), term_getline(buf, 2)])})
|
||||
|
||||
call term_sendkeys(buf, ":set incsearch hlsearch\<cr>")
|
||||
call term_sendkeys(buf, ":14vsp\<cr>")
|
||||
@@ -619,7 +619,7 @@ func Test_search_cmdline_incsearch_highlight_attr()
|
||||
call writefile(lines, 'Xsearch.txt')
|
||||
let buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile', 'Xsearch.txt'], {'term_rows': 3})
|
||||
|
||||
call WaitFor({-> lines == [term_getline(buf, 1), term_getline(buf, 2)] })
|
||||
call WaitForAssert({-> assert_equal(lines, [term_getline(buf, 1), term_getline(buf, 2)])})
|
||||
" wait for vim to complete initialization
|
||||
call term_wait(buf)
|
||||
|
||||
|
||||
@@ -83,8 +83,7 @@ func Test_terminal_wipe_buffer()
|
||||
let buf = Run_shell_in_terminal({})
|
||||
call assert_fails(buf . 'bwipe', 'E517')
|
||||
exe buf . 'bwipe!'
|
||||
call WaitFor('job_status(g:job) == "dead"')
|
||||
call assert_equal('dead', job_status(g:job))
|
||||
call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
|
||||
call assert_equal("", bufname(buf))
|
||||
|
||||
unlet g:job
|
||||
@@ -100,8 +99,7 @@ func Test_terminal_split_quit()
|
||||
call assert_equal('run', job_status(g:job))
|
||||
|
||||
quit!
|
||||
call WaitFor('job_status(g:job) == "dead"')
|
||||
call assert_equal('dead', job_status(g:job))
|
||||
call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
|
||||
|
||||
exe buf . 'bwipe'
|
||||
unlet g:job
|
||||
@@ -143,8 +141,8 @@ func Test_terminal_nasty_cb()
|
||||
let g:buf = term_start(cmd, {'exit_cb': function('s:Nasty_exit_cb')})
|
||||
let g:job = term_getjob(g:buf)
|
||||
|
||||
call WaitFor('job_status(g:job) == "dead"')
|
||||
call WaitFor('g:buf == 0')
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(g:job))})
|
||||
call WaitForAssert({-> assert_equal(0, g:buf)})
|
||||
unlet g:buf
|
||||
unlet g:job
|
||||
call delete('Xtext')
|
||||
@@ -191,12 +189,12 @@ func Test_terminal_scrape_123()
|
||||
call term_wait(buf)
|
||||
" On MS-Windows we first get a startup message of two lines, wait for the
|
||||
" "cls" to happen, after that we have one line with three characters.
|
||||
call WaitFor({-> len(term_scrape(buf, 1)) == 3})
|
||||
call WaitForAssert({-> assert_equal(3, len(term_scrape(buf, 1)))})
|
||||
call Check_123(buf)
|
||||
|
||||
" Must still work after the job ended.
|
||||
let job = term_getjob(buf)
|
||||
call WaitFor({-> job_status(job) == "dead"})
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(job))})
|
||||
call term_wait(buf)
|
||||
call Check_123(buf)
|
||||
|
||||
@@ -235,7 +233,7 @@ func Test_terminal_scrape_multibyte()
|
||||
call assert_equal('s', l[6].chars)
|
||||
|
||||
let job = term_getjob(buf)
|
||||
call WaitFor({-> job_status(job) == "dead"})
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(job))})
|
||||
call term_wait(buf)
|
||||
|
||||
exe buf . 'bwipe'
|
||||
@@ -252,7 +250,7 @@ func Test_terminal_scroll()
|
||||
let buf = term_start(cmd)
|
||||
|
||||
let job = term_getjob(buf)
|
||||
call WaitFor({-> job_status(job) == "dead"})
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(job))})
|
||||
call term_wait(buf)
|
||||
if has('win32')
|
||||
" TODO: this should not be needed
|
||||
@@ -282,7 +280,7 @@ func Test_terminal_scrollback()
|
||||
endif
|
||||
let rows = term_getsize(buf)[0]
|
||||
" On MS-Windows there is an empty line, check both last line and above it.
|
||||
call WaitFor({-> term_getline(buf, rows - 1) . term_getline(buf, rows - 2) =~ '149'})
|
||||
call WaitForAssert({-> assert_match( '149', term_getline(buf, rows - 1) . term_getline(buf, rows - 2))})
|
||||
let lines = line('$')
|
||||
call assert_inrange(91, 100, lines)
|
||||
|
||||
@@ -409,16 +407,16 @@ func Test_terminal_finish_open_close()
|
||||
let buf = bufnr('%')
|
||||
call assert_equal(2, winnr('$'))
|
||||
" Wait for the shell to display a prompt
|
||||
call WaitFor({-> term_getline(buf, 1) != ""})
|
||||
call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
|
||||
call Stop_shell_in_terminal(buf)
|
||||
call WaitFor("winnr('$') == 1", waittime)
|
||||
call WaitForAssert({-> assert_equal(1, winnr('$'))}, waittime)
|
||||
|
||||
" shell terminal that does not close automatically
|
||||
terminal ++noclose
|
||||
let buf = bufnr('%')
|
||||
call assert_equal(2, winnr('$'))
|
||||
" Wait for the shell to display a prompt
|
||||
call WaitFor({-> term_getline(buf, 1) != ""})
|
||||
call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
|
||||
call Stop_shell_in_terminal(buf)
|
||||
call assert_equal(2, winnr('$'))
|
||||
quit
|
||||
@@ -427,36 +425,32 @@ func Test_terminal_finish_open_close()
|
||||
exe 'terminal ++close ' . cmd
|
||||
call assert_equal(2, winnr('$'))
|
||||
wincmd p
|
||||
call WaitFor("winnr('$') == 1", waittime)
|
||||
call WaitForAssert({-> assert_equal(1, winnr('$'))}, waittime)
|
||||
|
||||
call term_start(cmd, {'term_finish': 'close'})
|
||||
call assert_equal(2, winnr('$'))
|
||||
wincmd p
|
||||
call WaitFor("winnr('$') == 1", waittime)
|
||||
call WaitForAssert({-> assert_equal(1, winnr('$'))}, waittime)
|
||||
call assert_equal(1, winnr('$'))
|
||||
|
||||
exe 'terminal ++open ' . cmd
|
||||
close!
|
||||
call WaitFor("winnr('$') == 2", waittime)
|
||||
call assert_equal(2, winnr('$'))
|
||||
call WaitForAssert({-> assert_equal(2, winnr('$'))}, waittime)
|
||||
bwipe
|
||||
|
||||
call term_start(cmd, {'term_finish': 'open'})
|
||||
close!
|
||||
call WaitFor("winnr('$') == 2", waittime)
|
||||
call assert_equal(2, winnr('$'))
|
||||
call WaitForAssert({-> assert_equal(2, winnr('$'))}, waittime)
|
||||
bwipe
|
||||
|
||||
exe 'terminal ++hidden ++open ' . cmd
|
||||
call assert_equal(1, winnr('$'))
|
||||
call WaitFor("winnr('$') == 2", waittime)
|
||||
call assert_equal(2, winnr('$'))
|
||||
call WaitForAssert({-> assert_equal(2, winnr('$'))}, waittime)
|
||||
bwipe
|
||||
|
||||
call term_start(cmd, {'term_finish': 'open', 'hidden': 1})
|
||||
call assert_equal(1, winnr('$'))
|
||||
call WaitFor("winnr('$') == 2", waittime)
|
||||
call assert_equal(2, winnr('$'))
|
||||
call WaitForAssert({-> assert_equal(2, winnr('$'))}, waittime)
|
||||
bwipe
|
||||
|
||||
call assert_fails("call term_start(cmd, {'term_opencmd': 'open'})", 'E475:')
|
||||
@@ -466,8 +460,7 @@ func Test_terminal_finish_open_close()
|
||||
|
||||
call term_start(cmd, {'term_finish': 'open', 'term_opencmd': '4split | buffer %d'})
|
||||
close!
|
||||
call WaitFor("winnr('$') == 2", waittime)
|
||||
call assert_equal(2, winnr('$'))
|
||||
call WaitForAssert({-> assert_equal(2, winnr('$'))}, waittime)
|
||||
call assert_equal(4, winheight(0))
|
||||
bwipe
|
||||
endfunc
|
||||
@@ -478,8 +471,7 @@ func Test_terminal_cwd()
|
||||
endif
|
||||
call mkdir('Xdir')
|
||||
let buf = term_start('pwd', {'cwd': 'Xdir'})
|
||||
call WaitFor('"Xdir" == fnamemodify(getline(1), ":t")')
|
||||
call assert_equal('Xdir', fnamemodify(getline(1), ":t"))
|
||||
call WaitForAssert({-> assert_equal('Xdir', fnamemodify(getline(1), ":t"))})
|
||||
|
||||
exe buf . 'bwipe'
|
||||
call delete('Xdir', 'rf')
|
||||
@@ -491,7 +483,7 @@ func Test_terminal_servername()
|
||||
endif
|
||||
let buf = Run_shell_in_terminal({})
|
||||
" Wait for the shell to display a prompt
|
||||
call WaitFor({-> term_getline(buf, 1) != ""})
|
||||
call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
|
||||
if has('win32')
|
||||
call term_sendkeys(buf, "echo %VIM_SERVERNAME%\r")
|
||||
else
|
||||
@@ -509,7 +501,7 @@ endfunc
|
||||
func Test_terminal_env()
|
||||
let buf = Run_shell_in_terminal({'env': {'TESTENV': 'correct'}})
|
||||
" Wait for the shell to display a prompt
|
||||
call WaitFor({-> term_getline(buf, 1) != ""})
|
||||
call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
|
||||
if has('win32')
|
||||
call term_sendkeys(buf, "echo %TESTENV%\r")
|
||||
else
|
||||
@@ -517,8 +509,7 @@ func Test_terminal_env()
|
||||
endif
|
||||
call term_wait(buf)
|
||||
call Stop_shell_in_terminal(buf)
|
||||
call WaitFor('getline(2) == "correct"')
|
||||
call assert_equal('correct', getline(2))
|
||||
call WaitForAssert({-> assert_equal('correct', getline(2))})
|
||||
|
||||
exe buf . 'bwipe'
|
||||
endfunc
|
||||
@@ -540,8 +531,7 @@ func Test_zz_terminal_in_gui()
|
||||
call term_wait(buf)
|
||||
|
||||
" closing window wipes out the terminal buffer a with finished job
|
||||
call WaitFor("winnr('$') == 1")
|
||||
call assert_equal(1, winnr('$'))
|
||||
call WaitForAssert({-> assert_equal(1, winnr('$'))})
|
||||
call assert_equal("", bufname(buf))
|
||||
|
||||
unlet g:job
|
||||
@@ -598,7 +588,7 @@ func Test_terminal_write_stdin()
|
||||
new
|
||||
call setline(1, ['one', 'two', 'three'])
|
||||
%term wc
|
||||
call WaitFor('getline("$") =~ "3"')
|
||||
call WaitForAssert({-> assert_match('3', getline("$"))})
|
||||
let nrs = split(getline('$'))
|
||||
call assert_equal(['3', '3', '14'], nrs)
|
||||
bwipe
|
||||
@@ -606,7 +596,7 @@ func Test_terminal_write_stdin()
|
||||
new
|
||||
call setline(1, ['one', 'two', 'three', 'four'])
|
||||
2,3term wc
|
||||
call WaitFor('getline("$") =~ "2"')
|
||||
call WaitForAssert({-> assert_match('2', getline("$"))})
|
||||
let nrs = split(getline('$'))
|
||||
call assert_equal(['2', '2', '10'], nrs)
|
||||
bwipe
|
||||
@@ -628,7 +618,7 @@ func Test_terminal_write_stdin()
|
||||
new
|
||||
call setline(1, ['print("hello")'])
|
||||
1term ++eof=<C-Z> python
|
||||
call WaitFor('getline("$") =~ "Z"')
|
||||
call WaitForAssert({-> assert_match('Z', getline("$"))})
|
||||
call assert_equal('hello', getline(line('$') - 1))
|
||||
bwipe
|
||||
endif
|
||||
@@ -652,9 +642,8 @@ func Test_terminal_no_cmd()
|
||||
else
|
||||
call system('echo "look here" > ' . pty)
|
||||
endif
|
||||
call WaitFor({-> term_getline(buf, 1) =~ "look here"})
|
||||
call WaitForAssert({-> assert_match('look here', term_getline(buf, 1))})
|
||||
|
||||
call assert_match('look here', term_getline(buf, 1))
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
@@ -666,8 +655,7 @@ func Test_terminal_special_chars()
|
||||
call mkdir('Xdir with spaces')
|
||||
call writefile(['x'], 'Xdir with spaces/quoted"file')
|
||||
term ls Xdir\ with\ spaces/quoted\"file
|
||||
call WaitFor('term_getline("", 1) =~ "quoted"')
|
||||
call assert_match('quoted"file', term_getline('', 1))
|
||||
call WaitForAssert({-> assert_match('quoted"file', term_getline('', 1))})
|
||||
call term_wait('')
|
||||
|
||||
call delete('Xdir with spaces', 'rf')
|
||||
@@ -697,10 +685,10 @@ func Test_terminal_redir_file()
|
||||
let cmd = Get_cat_123_cmd()
|
||||
let buf = term_start(cmd, {'out_io': 'file', 'out_name': 'Xfile'})
|
||||
call term_wait(buf)
|
||||
call WaitFor('len(readfile("Xfile")) > 0')
|
||||
call WaitForAssert({-> assert_notequal(0, len(readfile("Xfile")))})
|
||||
call assert_match('123', readfile('Xfile')[0])
|
||||
let g:job = term_getjob(buf)
|
||||
call WaitFor('job_status(g:job) == "dead"')
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(g:job))})
|
||||
call delete('Xfile')
|
||||
bwipe
|
||||
endif
|
||||
@@ -709,10 +697,9 @@ func Test_terminal_redir_file()
|
||||
call writefile(['one line'], 'Xfile')
|
||||
let buf = term_start('cat', {'in_io': 'file', 'in_name': 'Xfile'})
|
||||
call term_wait(buf)
|
||||
call WaitFor('term_getline(' . buf . ', 1) == "one line"')
|
||||
call assert_equal('one line', term_getline(buf, 1))
|
||||
call WaitForAssert({-> assert_equal('one line', term_getline(buf, 1))})
|
||||
let g:job = term_getjob(buf)
|
||||
call WaitFor('job_status(g:job) == "dead"')
|
||||
call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
|
||||
bwipe
|
||||
call delete('Xfile')
|
||||
endif
|
||||
@@ -732,7 +719,7 @@ func TerminalTmap(remap)
|
||||
call assert_equal('456', maparg('123', 't'))
|
||||
call assert_equal('abxde', maparg('456', 't'))
|
||||
call feedkeys("123", 'tx')
|
||||
call WaitFor({-> term_getline(buf, term_getcursor(buf)[0]) =~ 'abxde\|456'})
|
||||
call WaitForAssert({-> assert_match('abxde\|456', term_getline(buf, term_getcursor(buf)[0]))})
|
||||
let lnum = term_getcursor(buf)[0]
|
||||
if a:remap
|
||||
call assert_match('abxde', term_getline(buf, lnum))
|
||||
@@ -831,8 +818,7 @@ func Test_terminal_composing_unicode()
|
||||
call assert_equal("\u00a0\u0308", l[3].chars)
|
||||
|
||||
call term_sendkeys(buf, "exit\r")
|
||||
call WaitFor('job_status(g:job) == "dead"')
|
||||
call assert_equal('dead', job_status(g:job))
|
||||
call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
|
||||
bwipe!
|
||||
unlet g:job
|
||||
let &encoding = save_enc
|
||||
@@ -855,7 +841,7 @@ func Test_terminal_aucmd_on_close()
|
||||
call setline(1, ['one', 'two'])
|
||||
exe 'term ++close ' . cmd
|
||||
wincmd p
|
||||
call WaitFor("winnr('$') == 2", waittime)
|
||||
call WaitForAssert({-> assert_equal(2, winnr('$'))}, waittime)
|
||||
call assert_equal(1, s:called)
|
||||
bwipe!
|
||||
|
||||
@@ -886,16 +872,16 @@ func Test_terminal_response_to_control_sequence()
|
||||
endif
|
||||
|
||||
let buf = Run_shell_in_terminal({})
|
||||
call WaitFor({-> term_getline(buf, 1) != ''})
|
||||
call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
|
||||
|
||||
call term_sendkeys(buf, "cat\<CR>")
|
||||
call WaitFor({-> term_getline(buf, 1) =~ 'cat'})
|
||||
call WaitForAssert({-> assert_match('cat', term_getline(buf, 1))})
|
||||
|
||||
" Request the cursor position.
|
||||
call term_sendkeys(buf, "\x1b[6n\<CR>")
|
||||
|
||||
" Wait for output from tty to display, below an empty line.
|
||||
call WaitFor({-> term_getline(buf, 4) =~ '3;1R'})
|
||||
call WaitForAssert({-> assert_match('3;1R', term_getline(buf, 4))})
|
||||
|
||||
" End "cat" gently.
|
||||
call term_sendkeys(buf, "\<CR>\<C-D>")
|
||||
@@ -972,14 +958,14 @@ func Test_terminal_qall_prompt()
|
||||
|
||||
" Open a terminal window and wait for the prompt to appear
|
||||
call term_sendkeys(buf, ":term\<CR>")
|
||||
call WaitFor({-> term_getline(buf, 10) =~ '\[running]'})
|
||||
call WaitFor({-> term_getline(buf, 1) !~ '^\s*$'})
|
||||
call WaitForAssert({-> assert_match('\[running]', term_getline(buf, 10))})
|
||||
call WaitForAssert({-> assert_notmatch('^\s*$', term_getline(buf, 1))})
|
||||
|
||||
" make Vim exit, it will prompt to kill the shell
|
||||
call term_sendkeys(buf, "\<C-W>:confirm qall\<CR>")
|
||||
call WaitFor({-> term_getline(buf, 20) =~ 'ancel:'})
|
||||
call WaitForAssert({-> assert_match('ancel:', term_getline(buf, 20))})
|
||||
call term_sendkeys(buf, "y")
|
||||
call WaitFor({-> term_getstatus(buf) == "finished"})
|
||||
call WaitForAssert({-> assert_equal('finished', term_getstatus(buf))})
|
||||
|
||||
" close the terminal window where Vim was running
|
||||
quit
|
||||
@@ -1035,8 +1021,8 @@ func Test_terminal_dumpwrite_composing()
|
||||
|
||||
let text = " a\u0300 e\u0302 o\u0308"
|
||||
call writefile([text], 'Xcomposing')
|
||||
let buf = RunVimInTerminal('Xcomposing', {})
|
||||
call WaitFor({-> term_getline(buf, 1) =~ text})
|
||||
let buf = RunVimInTerminal('--cmd "set encoding=utf-8" Xcomposing', {})
|
||||
call WaitForAssert({-> assert_match(text, term_getline(buf, 1))})
|
||||
call term_dumpwrite(buf, 'Xdump')
|
||||
let dumpline = readfile('Xdump')[0]
|
||||
call assert_match('|à| |ê| |ö', dumpline)
|
||||
@@ -1246,7 +1232,7 @@ func Test_terminal_api_drop_oldwin()
|
||||
\ "set t_ts=",
|
||||
\ ], 'Xscript')
|
||||
let buf = RunVimInTerminal('-S Xscript', {'rows': 10})
|
||||
call WaitFor({-> expand('%:t') =='Xtextfile'})
|
||||
call WaitForAssert({-> assert_equal('Xtextfile', expand('%:t'))})
|
||||
call assert_equal(textfile_winid, win_getid())
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
@@ -1295,7 +1281,7 @@ func Test_terminal_api_call_fails()
|
||||
call WriteApiCall('TryThis')
|
||||
call ch_logfile('Xlog', 'w')
|
||||
let buf = RunVimInTerminal('-S Xscript', {})
|
||||
call WaitFor({-> string(readfile('Xlog')) =~ 'Invalid function name: TryThis'})
|
||||
call WaitForAssert({-> assert_match('Invalid function name: TryThis', string(readfile('Xlog')))})
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('Xscript')
|
||||
@@ -1320,7 +1306,7 @@ func Test_terminal_api_call_fail_delete()
|
||||
|
||||
call WriteApiCall('Tapi_Delete')
|
||||
let buf = RunVimInTerminal('-S Xscript', {})
|
||||
call WaitFor({-> s:caught_e937 == 1})
|
||||
call WaitForAssert({-> assert_equal(1, s:caught_e937)})
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('Xscript')
|
||||
@@ -1495,3 +1481,19 @@ func Test_terminal_termwinsize_mininmum()
|
||||
|
||||
set termwinsize=
|
||||
endfunc
|
||||
|
||||
func Test_terminal_termwinkey()
|
||||
call assert_equal(1, winnr('$'))
|
||||
let thiswin = win_getid()
|
||||
|
||||
let buf = Run_shell_in_terminal({})
|
||||
let termwin = bufwinid(buf)
|
||||
set termwinkey=<C-L>
|
||||
call feedkeys("\<C-L>w", 'tx')
|
||||
call assert_equal(thiswin, win_getid())
|
||||
call feedkeys("\<C-W>w", 'tx')
|
||||
|
||||
let job = term_getjob(buf)
|
||||
call feedkeys("\<C-L>\<C-C>", 'tx')
|
||||
call WaitForAssert({-> assert_equal("dead", job_status(job))})
|
||||
endfunc
|
||||
|
||||
@@ -143,7 +143,7 @@ endfunc
|
||||
func Test_delete_myself()
|
||||
let g:called = 0
|
||||
let t = timer_start(10, 'StopMyself', {'repeat': -1})
|
||||
call WaitFor('g:called == 2')
|
||||
call WaitForAssert({-> assert_equal(2, g:called)})
|
||||
call assert_equal(2, g:called)
|
||||
call assert_equal([], timer_info(t))
|
||||
endfunc
|
||||
@@ -206,7 +206,7 @@ func Test_timer_errors()
|
||||
let g:call_count = 0
|
||||
let timer = timer_start(10, 'FuncWithError', {'repeat': -1})
|
||||
" Timer will be stopped after failing 3 out of 3 times.
|
||||
call WaitFor('g:call_count == 3')
|
||||
call WaitForAssert({-> assert_equal(3, g:call_count)})
|
||||
sleep 50m
|
||||
call assert_equal(3, g:call_count)
|
||||
endfunc
|
||||
@@ -224,7 +224,7 @@ func Test_timer_catch_error()
|
||||
let g:call_count = 0
|
||||
let timer = timer_start(10, 'FuncWithCaughtError', {'repeat': 4})
|
||||
" Timer will not be stopped.
|
||||
call WaitFor('g:call_count == 4')
|
||||
call WaitForAssert({-> assert_equal(4, g:call_count)})
|
||||
sleep 50m
|
||||
call assert_equal(4, g:call_count)
|
||||
endfunc
|
||||
|
||||
@@ -776,6 +776,44 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1787,
|
||||
/**/
|
||||
1786,
|
||||
/**/
|
||||
1785,
|
||||
/**/
|
||||
1784,
|
||||
/**/
|
||||
1783,
|
||||
/**/
|
||||
1782,
|
||||
/**/
|
||||
1781,
|
||||
/**/
|
||||
1780,
|
||||
/**/
|
||||
1779,
|
||||
/**/
|
||||
1778,
|
||||
/**/
|
||||
1777,
|
||||
/**/
|
||||
1776,
|
||||
/**/
|
||||
1775,
|
||||
/**/
|
||||
1774,
|
||||
/**/
|
||||
1773,
|
||||
/**/
|
||||
1772,
|
||||
/**/
|
||||
1771,
|
||||
/**/
|
||||
1770,
|
||||
/**/
|
||||
1769,
|
||||
/**/
|
||||
1768,
|
||||
/**/
|
||||
|
||||
@@ -1279,6 +1279,7 @@ enum auto_event
|
||||
EVENT_CMDWINENTER, /* after entering the cmdline window */
|
||||
EVENT_CMDWINLEAVE, /* before leaving the cmdline window */
|
||||
EVENT_COLORSCHEME, /* after loading a colorscheme */
|
||||
EVENT_COLORSCHEMEPRE, /* before loading a colorscheme */
|
||||
EVENT_COMPLETEDONE, /* after finishing insert complete */
|
||||
EVENT_CURSORHOLD, /* cursor in same position for a while */
|
||||
EVENT_CURSORHOLDI, /* idem, in Insert mode */
|
||||
@@ -2188,16 +2189,16 @@ typedef enum {
|
||||
#ifdef FEAT_BROWSE
|
||||
# ifdef BACKSLASH_IN_FILENAME
|
||||
# define BROWSE_FILTER_MACROS \
|
||||
(char_u *)"Vim macro files (*.vim)\t*.vim\nAll Files (*.*)\t*.*\n"
|
||||
# define BROWSE_FILTER_ALL_FILES (char_u *)"All Files (*.*)\t*.*\n"
|
||||
(char_u *)N_("Vim macro files (*.vim)\t*.vim\nAll Files (*.*)\t*.*\n")
|
||||
# define BROWSE_FILTER_ALL_FILES (char_u *)N_("All Files (*.*)\t*.*\n")
|
||||
# define BROWSE_FILTER_DEFAULT \
|
||||
(char_u *)"All Files (*.*)\t*.*\nC source (*.c, *.h)\t*.c;*.h\nC++ source (*.cpp, *.hpp)\t*.cpp;*.hpp\nVB code (*.bas, *.frm)\t*.bas;*.frm\nVim files (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n"
|
||||
(char_u *)N_("All Files (*.*)\t*.*\nC source (*.c, *.h)\t*.c;*.h\nC++ source (*.cpp, *.hpp)\t*.cpp;*.hpp\nVB code (*.bas, *.frm)\t*.bas;*.frm\nVim files (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n")
|
||||
# else
|
||||
# define BROWSE_FILTER_MACROS \
|
||||
(char_u *)"Vim macro files (*.vim)\t*.vim\nAll Files (*)\t*\n"
|
||||
# define BROWSE_FILTER_ALL_FILES (char_u *)"All Files (*)\t*\n"
|
||||
(char_u *)N_("Vim macro files (*.vim)\t*.vim\nAll Files (*)\t*\n")
|
||||
# define BROWSE_FILTER_ALL_FILES (char_u *)N_("All Files (*)\t*\n")
|
||||
# define BROWSE_FILTER_DEFAULT \
|
||||
(char_u *)"All Files (*)\t*\nC source (*.c, *.h)\t*.c;*.h\nC++ source (*.cpp, *.hpp)\t*.cpp;*.hpp\nVim files (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n"
|
||||
(char_u *)N_("All Files (*)\t*\nC source (*.c, *.h)\t*.c;*.h\nC++ source (*.cpp, *.hpp)\t*.cpp;*.hpp\nVim files (*.vim, _vimrc, _gvimrc)\t*.vim;_vimrc;_gvimrc\n")
|
||||
# endif
|
||||
# define BROWSE_SAVE 1 /* flag for do_browse() */
|
||||
# define BROWSE_DIR 2 /* flag for do_browse() */
|
||||
|
||||
Reference in New Issue
Block a user