mirror of
https://github.com/zoriya/vim.git
synced 2025-12-15 11:46:16 +00:00
Compare commits
174 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29a2c08d79 | ||
|
|
28ada699c1 | ||
|
|
24fe475894 | ||
|
|
6e35a11490 | ||
|
|
8a3bb56230 | ||
|
|
107279c17b | ||
|
|
f2bd8ef2b4 | ||
|
|
3f54fd319f | ||
|
|
71137fed4d | ||
|
|
069dafc1de | ||
|
|
3767b61ad9 | ||
|
|
658a154cbf | ||
|
|
aef8c3da2b | ||
|
|
c71807db9c | ||
|
|
590ec878a5 | ||
|
|
77780b66f4 | ||
|
|
0726870326 | ||
|
|
5f73ef8d20 | ||
|
|
8195247054 | ||
|
|
988615f26f | ||
|
|
792f0e3659 | ||
|
|
5d7ead3bc8 | ||
|
|
3ad8772ef0 | ||
|
|
75542ec9f6 | ||
|
|
9c474b2773 | ||
|
|
c8bcfe7efd | ||
|
|
8226ac6b59 | ||
|
|
22f1d0e35e | ||
|
|
d4fc577e60 | ||
|
|
33ef5bb0e4 | ||
|
|
9271d058c9 | ||
|
|
36f923014a | ||
|
|
2b10bcbfc1 | ||
|
|
6bb2cdfe60 | ||
|
|
bb008dd323 | ||
|
|
085346f5a1 | ||
|
|
791010e648 | ||
|
|
6acadda8d6 | ||
|
|
b7ea7cb8e4 | ||
|
|
674e482d13 | ||
|
|
cc0f2be880 | ||
|
|
cafafb381a | ||
|
|
19eb6658ec | ||
|
|
3049418f3d | ||
|
|
81226e0310 | ||
|
|
3cc9f7440d | ||
|
|
da65058a9c | ||
|
|
7a76092a51 | ||
|
|
9c8816bd30 | ||
|
|
d96ff16511 | ||
|
|
4287ed33dd | ||
|
|
73cddfd559 | ||
|
|
181ca99e16 | ||
|
|
341a64c9ca | ||
|
|
2be5733152 | ||
|
|
bc197195b0 | ||
|
|
b3292fa2d3 | ||
|
|
ab5e7c3deb | ||
|
|
07ad816525 | ||
|
|
4867974137 | ||
|
|
e4db7aedab | ||
|
|
3198870137 | ||
|
|
b48e96f61c | ||
|
|
294959528e | ||
|
|
5a656864a0 | ||
|
|
bfbea567d8 | ||
|
|
c19e1d1ba5 | ||
|
|
c6f9f739d3 | ||
|
|
c33ecb2915 | ||
|
|
cdd09aa51a | ||
|
|
71a43c0137 | ||
|
|
a0221df149 | ||
|
|
0549a1e184 | ||
|
|
4b7e7bed6c | ||
|
|
a7e18d237f | ||
|
|
4f50588ba3 | ||
|
|
d23a823669 | ||
|
|
42443c7d7f | ||
|
|
5a09343719 | ||
|
|
9b56a57cda | ||
|
|
b301f6b950 | ||
|
|
a8f04aa275 | ||
|
|
2993ac5fce | ||
|
|
7254067ee9 | ||
|
|
5459129af2 | ||
|
|
0d20737732 | ||
|
|
8846ac5aed | ||
|
|
82846a00ac | ||
|
|
9e33efd152 | ||
|
|
a15ef4588c | ||
|
|
9d32276b52 | ||
|
|
02ae9b4a93 | ||
|
|
1567558b20 | ||
|
|
0562532c2e | ||
|
|
bc0e9adae9 | ||
|
|
dff72ba445 | ||
|
|
d317b38a4d | ||
|
|
acda04f5c6 | ||
|
|
f12519dec8 | ||
|
|
dd08b6a32b | ||
|
|
511ffdd65d | ||
|
|
5d4247402b | ||
|
|
28944fecff | ||
|
|
2c7b906afb | ||
|
|
2374faae11 | ||
|
|
191f18bad0 | ||
|
|
fef4ddd5eb | ||
|
|
06b77ef69f | ||
|
|
4bc0bed536 | ||
|
|
8a37b03289 | ||
|
|
ec48a9c589 | ||
|
|
f4aba797cb | ||
|
|
15833239a4 | ||
|
|
b5cb65ba2b | ||
|
|
b7407d3fc9 | ||
|
|
ddb349369d | ||
|
|
8fd2ffc530 | ||
|
|
8dce6c54c8 | ||
|
|
4bfa8af141 | ||
|
|
42b23fad1d | ||
|
|
218101442e | ||
|
|
d4a282f7a5 | ||
|
|
94073167e3 | ||
|
|
1dd45fb4f3 | ||
|
|
a338adcf22 | ||
|
|
37badc898b | ||
|
|
cada78975e | ||
|
|
6f361c9912 | ||
|
|
153b704e20 | ||
|
|
ec0557f08b | ||
|
|
059fd01021 | ||
|
|
a172b63ab8 | ||
|
|
ce46d934af | ||
|
|
b50773c6df | ||
|
|
1274d33493 | ||
|
|
0479e910c4 | ||
|
|
d6d304298a | ||
|
|
40962ec9c0 | ||
|
|
84b242c369 | ||
|
|
501383236d | ||
|
|
d7823d5b7c | ||
|
|
95dbcbea6d | ||
|
|
2ec364e94d | ||
|
|
0cbcd949e1 | ||
|
|
4aad53c369 | ||
|
|
ede35bbbd0 | ||
|
|
200ea8ffaa | ||
|
|
de04654ddc | ||
|
|
9e3dfc6501 | ||
|
|
2095148277 | ||
|
|
df980db69b | ||
|
|
a47ebdbd22 | ||
|
|
fabaf753e2 | ||
|
|
45a0000d5c | ||
|
|
e6640ad44e | ||
|
|
3c09722600 | ||
|
|
b73fa629d6 | ||
|
|
ae6f865125 | ||
|
|
1bd999f982 | ||
|
|
8ada6aa929 | ||
|
|
4ce46c2a6b | ||
|
|
14a4deb064 | ||
|
|
aaf6e43b7a | ||
|
|
1223744849 | ||
|
|
2efb323e87 | ||
|
|
338e47fdfd | ||
|
|
132f75255e | ||
|
|
a0ca7d002d | ||
|
|
4af031dbc8 | ||
|
|
b254af312d | ||
|
|
c9e649ae81 | ||
|
|
606d45ccd8 | ||
|
|
4fb921e388 | ||
|
|
9bca805ec4 |
2
Filelist
2
Filelist
@@ -110,6 +110,7 @@ SRC_ALL = \
|
|||||||
src/testdir/sautest/autoload/*.vim \
|
src/testdir/sautest/autoload/*.vim \
|
||||||
src/testdir/runtest.vim \
|
src/testdir/runtest.vim \
|
||||||
src/testdir/shared.vim \
|
src/testdir/shared.vim \
|
||||||
|
src/testdir/screendump.vim \
|
||||||
src/testdir/view_util.vim \
|
src/testdir/view_util.vim \
|
||||||
src/testdir/setup.vim \
|
src/testdir/setup.vim \
|
||||||
src/testdir/gui_init.vim \
|
src/testdir/gui_init.vim \
|
||||||
@@ -134,6 +135,7 @@ SRC_ALL = \
|
|||||||
src/testdir/pyxfile/*.py \
|
src/testdir/pyxfile/*.py \
|
||||||
src/testdir/bench*.in \
|
src/testdir/bench*.in \
|
||||||
src/testdir/bench*.vim \
|
src/testdir/bench*.vim \
|
||||||
|
src/testdir/dumps/*.dump \
|
||||||
src/testdir/samples/*.txt \
|
src/testdir/samples/*.txt \
|
||||||
src/testdir/samples/test000 \
|
src/testdir/samples/test000 \
|
||||||
src/testdir/if_ver*.vim \
|
src/testdir/if_ver*.vim \
|
||||||
|
|||||||
@@ -89,6 +89,11 @@ Page instfiles
|
|||||||
UninstPage uninstConfirm
|
UninstPage uninstConfirm
|
||||||
UninstPage instfiles
|
UninstPage instfiles
|
||||||
|
|
||||||
|
# Reserve files
|
||||||
|
# Needed for showing the _vimrc setting page faster.
|
||||||
|
ReserveFile /plugin InstallOptions.dll
|
||||||
|
ReserveFile vimrc.ini
|
||||||
|
|
||||||
##########################################################
|
##########################################################
|
||||||
# Functions
|
# Functions
|
||||||
|
|
||||||
@@ -475,15 +480,13 @@ Function SetCustom
|
|||||||
# Display the InstallOptions dialog
|
# Display the InstallOptions dialog
|
||||||
|
|
||||||
# Check if a _vimrc should be created
|
# Check if a _vimrc should be created
|
||||||
SectionGetFlags ${sec_vimrc_id} $0
|
SectionGetFlags ${sec_vimrc_id} $3
|
||||||
IntOp $0 $0 & 1
|
IntOp $3 $3 & 1
|
||||||
StrCmp $0 "1" +2 0
|
StrCmp $3 "1" +2 0
|
||||||
Abort
|
Abort
|
||||||
|
|
||||||
Push $3
|
|
||||||
InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
|
InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
|
||||||
Pop $3
|
Pop $3
|
||||||
Pop $3
|
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
||||||
Function ValidateCustom
|
Function ValidateCustom
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*autocmd.txt* For Vim version 8.0. Last change: 2017 Dec 17
|
*autocmd.txt* For Vim version 8.0. Last change: 2018 Feb 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -33,7 +33,7 @@ files matching *.c. You can also use autocommands to implement advanced
|
|||||||
features, such as editing compressed files (see |gzip-example|). The usual
|
features, such as editing compressed files (see |gzip-example|). The usual
|
||||||
place to put autocommands is in your .vimrc or .exrc file.
|
place to put autocommands is in your .vimrc or .exrc file.
|
||||||
|
|
||||||
*E203* *E204* *E143* *E855* *E937*
|
*E203* *E204* *E143* *E855* *E937* *E952*
|
||||||
WARNING: Using autocommands is very powerful, and may lead to unexpected side
|
WARNING: Using autocommands is very powerful, and may lead to unexpected side
|
||||||
effects. Be careful not to destroy your text.
|
effects. Be careful not to destroy your text.
|
||||||
- It's a good idea to do some testing on an expendable copy of a file first.
|
- It's a good idea to do some testing on an expendable copy of a file first.
|
||||||
@@ -295,6 +295,8 @@ Name triggered by ~
|
|||||||
|FileChangedShellPost| After handling a file changed since editing started
|
|FileChangedShellPost| After handling a file changed since editing started
|
||||||
|FileChangedRO| before making the first change to a read-only file
|
|FileChangedRO| before making the first change to a read-only file
|
||||||
|
|
||||||
|
|DirChanged| after the working directory has changed
|
||||||
|
|
||||||
|ShellCmdPost| after executing a shell command
|
|ShellCmdPost| after executing a shell command
|
||||||
|ShellFilterPost| after filtering with a shell command
|
|ShellFilterPost| after filtering with a shell command
|
||||||
|
|
||||||
@@ -330,6 +332,9 @@ Name triggered by ~
|
|||||||
|
|
||||||
|TextChanged| after a change was made to the text in Normal mode
|
|TextChanged| after a change was made to the text in Normal mode
|
||||||
|TextChangedI| after a change was made to the text in Insert mode
|
|TextChangedI| after a change was made to the text in Insert mode
|
||||||
|
when popup menu is not visible
|
||||||
|
|TextChangedP| after a change was made to the text in Insert mode
|
||||||
|
when popup menu visible
|
||||||
|TextYankPost| after text is yanked or deleted
|
|TextYankPost| after text is yanked or deleted
|
||||||
|
|
||||||
|ColorScheme| after loading a color scheme
|
|ColorScheme| after loading a color scheme
|
||||||
@@ -500,6 +505,13 @@ CmdUndefined When a user command is used but it isn't
|
|||||||
command is defined. An alternative is to
|
command is defined. An alternative is to
|
||||||
always define the user command and have it
|
always define the user command and have it
|
||||||
invoke an autoloaded function. See |autoload|.
|
invoke an autoloaded function. See |autoload|.
|
||||||
|
*CmdlineChanged*
|
||||||
|
CmdlineChanged After a change was made to the text inside
|
||||||
|
command line. Be careful not to mess up the
|
||||||
|
command line, it may cause Vim to lock up.
|
||||||
|
<afile> is set to a single character,
|
||||||
|
indicating the type of command-line.
|
||||||
|
|cmdwin-char|
|
||||||
*CmdlineEnter*
|
*CmdlineEnter*
|
||||||
CmdlineEnter After moving the cursor to the command line,
|
CmdlineEnter After moving the cursor to the command line,
|
||||||
where the user can type a command or search
|
where the user can type a command or search
|
||||||
@@ -626,6 +638,16 @@ FileChangedRO Before making the first change to a read-only
|
|||||||
*E881*
|
*E881*
|
||||||
If the number of lines changes saving for undo
|
If the number of lines changes saving for undo
|
||||||
may fail and the change will be aborted.
|
may fail and the change will be aborted.
|
||||||
|
*DirChanged*
|
||||||
|
DirChanged The working directory has changed in response
|
||||||
|
to the |:cd| or |:lcd| commands, or as a
|
||||||
|
result of the 'autochdir' option.
|
||||||
|
The pattern can be:
|
||||||
|
"window" to trigger on `:lcd
|
||||||
|
"global" to trigger on `:cd`
|
||||||
|
"auto" to trigger on 'autochdir'.
|
||||||
|
"drop" to trigger on editing a file
|
||||||
|
<afile> is set to the new directory name.
|
||||||
*FileChangedShell*
|
*FileChangedShell*
|
||||||
FileChangedShell When Vim notices that the modification time of
|
FileChangedShell When Vim notices that the modification time of
|
||||||
a file has changed since editing started.
|
a file has changed since editing started.
|
||||||
@@ -957,6 +979,11 @@ TextChangedI After a change was made to the text in the
|
|||||||
current buffer in Insert mode.
|
current buffer in Insert mode.
|
||||||
Not triggered when the popup menu is visible.
|
Not triggered when the popup menu is visible.
|
||||||
Otherwise the same as TextChanged.
|
Otherwise the same as TextChanged.
|
||||||
|
*TextChangedP*
|
||||||
|
TextChangedP After a change was made to the text in the
|
||||||
|
current buffer in Insert mode, only when the
|
||||||
|
popup menu is visible. Otherwise the same as
|
||||||
|
TextChanged.
|
||||||
*TextYankPost*
|
*TextYankPost*
|
||||||
TextYankPost After text has been yanked or deleted in the
|
TextYankPost After text has been yanked or deleted in the
|
||||||
current buffer. The following values of
|
current buffer. The following values of
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*editing.txt* For Vim version 8.0. Last change: 2017 Nov 16
|
*editing.txt* For Vim version 8.0. Last change: 2018 Feb 19
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1202,7 +1202,8 @@ MULTIPLE WINDOWS AND BUFFERS *window-exit*
|
|||||||
:wqa[ll]! [++opt]
|
:wqa[ll]! [++opt]
|
||||||
:xa[ll]! Write all changed buffers, even the ones that are readonly,
|
:xa[ll]! Write all changed buffers, even the ones that are readonly,
|
||||||
and exit Vim. If there are buffers without a file name or
|
and exit Vim. If there are buffers without a file name or
|
||||||
which cannot be written for another reason, Vim will not quit.
|
which cannot be written for another reason, or there is a
|
||||||
|
terminal with a running job, Vim will not quit.
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*eval.txt* For Vim version 8.0. Last change: 2017 Dec 16
|
*eval.txt* For Vim version 8.0. Last change: 2018 Feb 27
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1246,8 +1246,8 @@ The arguments are optional. Example: >
|
|||||||
*closure*
|
*closure*
|
||||||
Lambda expressions can access outer scope variables and arguments. This is
|
Lambda expressions can access outer scope variables and arguments. This is
|
||||||
often called a closure. Example where "i" and "a:arg" are used in a lambda
|
often called a closure. Example where "i" and "a:arg" are used in a lambda
|
||||||
while they exist in the function scope. They remain valid even after the
|
while they already exist in the function scope. They remain valid even after
|
||||||
function returns: >
|
the function returns: >
|
||||||
:function Foo(arg)
|
:function Foo(arg)
|
||||||
: let i = 3
|
: let i = 3
|
||||||
: return {x -> x + i - a:arg}
|
: return {x -> x + i - a:arg}
|
||||||
@@ -1256,7 +1256,10 @@ function returns: >
|
|||||||
:echo Bar(6)
|
:echo Bar(6)
|
||||||
< 5
|
< 5
|
||||||
|
|
||||||
See also |:func-closure|. Lambda and closure support can be checked with: >
|
Note that the variables must exist in the outer scope before the lamba is
|
||||||
|
defined for this to work. See also |:func-closure|.
|
||||||
|
|
||||||
|
Lambda and closure support can be checked with: >
|
||||||
if has('lambda')
|
if has('lambda')
|
||||||
|
|
||||||
Examples for using a lambda expression with |sort()|, |map()| and |filter()|: >
|
Examples for using a lambda expression with |sort()|, |map()| and |filter()|: >
|
||||||
@@ -2017,8 +2020,11 @@ argidx() Number current index in the argument list
|
|||||||
arglistid([{winnr} [, {tabnr}]]) Number argument list id
|
arglistid([{winnr} [, {tabnr}]]) Number argument list id
|
||||||
argv({nr}) String {nr} entry of the argument list
|
argv({nr}) String {nr} entry of the argument list
|
||||||
argv() List the argument list
|
argv() List the argument list
|
||||||
|
assert_beeps({cmd}) none assert {cmd} causes a beep
|
||||||
assert_equal({exp}, {act} [, {msg}])
|
assert_equal({exp}, {act} [, {msg}])
|
||||||
none assert {exp} is equal to {act}
|
none assert {exp} is equal to {act}
|
||||||
|
assert_equalfile({fname-one}, {fname-two})
|
||||||
|
none assert file contents is equal
|
||||||
assert_exception({error} [, {msg}])
|
assert_exception({error} [, {msg}])
|
||||||
none assert {error} is in v:exception
|
none assert {error} is in v:exception
|
||||||
assert_fails({cmd} [, {error}]) none assert {cmd} fails
|
assert_fails({cmd} [, {error}]) none assert {cmd} fails
|
||||||
@@ -2151,6 +2157,7 @@ getbufline({expr}, {lnum} [, {end}])
|
|||||||
List lines {lnum} to {end} of buffer {expr}
|
List lines {lnum} to {end} of buffer {expr}
|
||||||
getbufvar({expr}, {varname} [, {def}])
|
getbufvar({expr}, {varname} [, {def}])
|
||||||
any variable {varname} in buffer {expr}
|
any variable {varname} in buffer {expr}
|
||||||
|
getchangelist({expr}) List list of change list items
|
||||||
getchar([expr]) Number get one character from the user
|
getchar([expr]) Number get one character from the user
|
||||||
getcharmod() Number modifiers for the last typed character
|
getcharmod() Number modifiers for the last typed character
|
||||||
getcharsearch() Dict last character search
|
getcharsearch() Dict last character search
|
||||||
@@ -2167,6 +2174,8 @@ getfperm({fname}) String file permissions of file {fname}
|
|||||||
getfsize({fname}) Number size in bytes of file {fname}
|
getfsize({fname}) Number size in bytes of file {fname}
|
||||||
getftime({fname}) Number last modification time of file
|
getftime({fname}) Number last modification time of file
|
||||||
getftype({fname}) String description of type of file {fname}
|
getftype({fname}) String description of type of file {fname}
|
||||||
|
getjumplist([{winnr} [, {tabnr}]])
|
||||||
|
List list of jump list items
|
||||||
getline({lnum}) String line {lnum} of current buffer
|
getline({lnum}) String line {lnum} of current buffer
|
||||||
getline({lnum}, {end}) List lines {lnum} to {end} of current buffer
|
getline({lnum}, {end}) List lines {lnum} to {end} of current buffer
|
||||||
getloclist({nr} [, {what}]) List list of location list items
|
getloclist({nr} [, {what}]) List list of location list items
|
||||||
@@ -2183,8 +2192,9 @@ gettabvar({nr}, {varname} [, {def}])
|
|||||||
gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
|
gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
|
||||||
any {name} in {winnr} in tab page {tabnr}
|
any {name} in {winnr} in tab page {tabnr}
|
||||||
getwininfo([{winid}]) List list of windows
|
getwininfo([{winid}]) List list of windows
|
||||||
getwinposx() Number X coord in pixels of GUI Vim window
|
getwinpos([{tmeout}]) List X and Y coord in pixels of the Vim window
|
||||||
getwinposy() Number Y coord in pixels of GUI Vim window
|
getwinposx() Number X coord in pixels of the Vim window
|
||||||
|
getwinposy() Number Y coord in pixels of the Vim window
|
||||||
getwinvar({nr}, {varname} [, {def}])
|
getwinvar({nr}, {varname} [, {def}])
|
||||||
any variable {varname} in window {nr}
|
any variable {varname} in window {nr}
|
||||||
glob({expr} [, {nosuf} [, {list} [, {alllinks}]]])
|
glob({expr} [, {nosuf} [, {list} [, {alllinks}]]])
|
||||||
@@ -2406,6 +2416,12 @@ tagfiles() List tags files used
|
|||||||
tan({expr}) Float tangent of {expr}
|
tan({expr}) Float tangent of {expr}
|
||||||
tanh({expr}) Float hyperbolic tangent of {expr}
|
tanh({expr}) Float hyperbolic tangent of {expr}
|
||||||
tempname() String name for a temporary file
|
tempname() String name for a temporary file
|
||||||
|
term_dumpdiff({filename}, {filename} [, {options}])
|
||||||
|
Number display difference between two dumps
|
||||||
|
term_dumpload({filename} [, {options}])
|
||||||
|
Number displaying a screen dump
|
||||||
|
term_dumpwrite({buf}, {filename} [, {options}])
|
||||||
|
none dump terminal window contents
|
||||||
term_getaltscreen({buf}) Number get the alternate screen flag
|
term_getaltscreen({buf}) Number get the alternate screen flag
|
||||||
term_getattr({attr}, {what}) Number get the value of attribute {what}
|
term_getattr({attr}, {what}) Number get the value of attribute {what}
|
||||||
term_getcursor({buf}) List get the cursor position of a terminal
|
term_getcursor({buf}) List get the cursor position of a terminal
|
||||||
@@ -2566,6 +2582,11 @@ argv([{nr}]) The result is the {nr}th file in the argument list of the
|
|||||||
< Without the {nr} argument a |List| with the whole |arglist| is
|
< Without the {nr} argument a |List| with the whole |arglist| is
|
||||||
returned.
|
returned.
|
||||||
|
|
||||||
|
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()|.
|
||||||
|
|
||||||
*assert_equal()*
|
*assert_equal()*
|
||||||
assert_equal({expected}, {actual} [, {msg}])
|
assert_equal({expected}, {actual} [, {msg}])
|
||||||
When {expected} and {actual} are not equal an error message is
|
When {expected} and {actual} are not equal an error message is
|
||||||
@@ -2581,6 +2602,14 @@ assert_equal({expected}, {actual} [, {msg}])
|
|||||||
< Will result in a string to be added to |v:errors|:
|
< Will result in a string to be added to |v:errors|:
|
||||||
test.vim line 12: Expected 'foo' but got 'bar' ~
|
test.vim line 12: Expected 'foo' but got 'bar' ~
|
||||||
|
|
||||||
|
*assert_equalfile()*
|
||||||
|
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|.
|
||||||
|
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()*
|
assert_exception({error} [, {msg}]) *assert_exception()*
|
||||||
When v:exception does not contain the string {error} an error
|
When v:exception does not contain the string {error} an error
|
||||||
message is added to |v:errors|.
|
message is added to |v:errors|.
|
||||||
@@ -2598,6 +2627,8 @@ assert_fails({cmd} [, {error}]) *assert_fails()*
|
|||||||
Run {cmd} and add an error message to |v:errors| if it does
|
Run {cmd} and add an error message to |v:errors| if it does
|
||||||
NOT produce an error.
|
NOT produce an error.
|
||||||
When {error} is given it must match in |v:errmsg|.
|
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()*
|
assert_false({actual} [, {msg}]) *assert_false()*
|
||||||
When {actual} is not false an error message is added to
|
When {actual} is not false an error message is added to
|
||||||
@@ -3338,8 +3369,8 @@ count({comp}, {expr} [, {ic} [, {start}]]) *count()*
|
|||||||
When {ic} is given and it's |TRUE| then case is ignored.
|
When {ic} is given and it's |TRUE| then case is ignored.
|
||||||
|
|
||||||
When {comp} is a string then the number of not overlapping
|
When {comp} is a string then the number of not overlapping
|
||||||
occurrences of {expr} is returned.
|
occurrences of {expr} is returned. Zero is returned when
|
||||||
|
{expr} is an empty string.
|
||||||
|
|
||||||
*cscope_connection()*
|
*cscope_connection()*
|
||||||
cscope_connection([{num} , {dbpath} [, {prepend}]])
|
cscope_connection([{num} , {dbpath} [, {prepend}]])
|
||||||
@@ -4268,6 +4299,22 @@ getbufvar({expr}, {varname} [, {def}]) *getbufvar()*
|
|||||||
:let bufmodified = getbufvar(1, "&mod")
|
:let bufmodified = getbufvar(1, "&mod")
|
||||||
:echo "todo myvar = " . getbufvar("todo", "myvar")
|
:echo "todo myvar = " . getbufvar("todo", "myvar")
|
||||||
<
|
<
|
||||||
|
getchangelist({expr}) *getchangelist()*
|
||||||
|
Returns the |changelist| for the buffer {expr}. For the use
|
||||||
|
of {expr}, see |bufname()| above. If buffer {expr} doesn't
|
||||||
|
exist, an empty list is returned.
|
||||||
|
|
||||||
|
The returned list contains two entries: a list with the change
|
||||||
|
locations and the current position in the list. Each
|
||||||
|
entry in the change list is a dictionary with the following
|
||||||
|
entries:
|
||||||
|
col column number
|
||||||
|
coladd column offset for 'virtualedit'
|
||||||
|
lnum line number
|
||||||
|
If buffer {expr} is the current buffer, then the current
|
||||||
|
position refers to the position in the list. For other
|
||||||
|
buffers, it is set to the length of the list.
|
||||||
|
|
||||||
getchar([expr]) *getchar()*
|
getchar([expr]) *getchar()*
|
||||||
Get a single character from the user or input stream.
|
Get a single character from the user or input stream.
|
||||||
If [expr] is omitted, wait until a character is available.
|
If [expr] is omitted, wait until a character is available.
|
||||||
@@ -4484,10 +4531,13 @@ getcwd([{winnr} [, {tabnr}]])
|
|||||||
Without arguments, for the current window.
|
Without arguments, for the current window.
|
||||||
|
|
||||||
With {winnr} return the local current directory of this window
|
With {winnr} return the local current directory of this window
|
||||||
in the current tab page.
|
in the current tab page. {winnr} can be the window number or
|
||||||
|
the |window-ID|.
|
||||||
|
If {winnr} is -1 return the name of the global working
|
||||||
|
directory. See also |haslocaldir()|.
|
||||||
|
|
||||||
With {winnr} and {tabnr} return the local current directory of
|
With {winnr} and {tabnr} return the local current directory of
|
||||||
the window in the specified tab page.
|
the window in the specified tab page.
|
||||||
{winnr} can be the window number or the |window-ID|.
|
|
||||||
Return an empty string if the arguments are invalid.
|
Return an empty string if the arguments are invalid.
|
||||||
|
|
||||||
getfsize({fname}) *getfsize()*
|
getfsize({fname}) *getfsize()*
|
||||||
@@ -4557,6 +4607,25 @@ getftype({fname}) *getftype()*
|
|||||||
"file" are returned. On MS-Windows a symbolic link to a
|
"file" are returned. On MS-Windows a symbolic link to a
|
||||||
directory returns "dir" instead of "link".
|
directory returns "dir" instead of "link".
|
||||||
|
|
||||||
|
getjumplist([{winnr} [, {tabnr}]]) *getjumplist()*
|
||||||
|
Returns the |jumplist| for the specified window.
|
||||||
|
|
||||||
|
Without arguments use the current window.
|
||||||
|
With {winnr} only use this window in the current tab page.
|
||||||
|
{winnr} can also be a |window-ID|.
|
||||||
|
With {winnr} and {tabnr} use the window in the specified tab
|
||||||
|
page.
|
||||||
|
|
||||||
|
The returned list contains two entries: a list with the jump
|
||||||
|
locations and the last used jump position number in the list.
|
||||||
|
Each entry in the jump location list is a dictionary with
|
||||||
|
the following entries:
|
||||||
|
bufnr buffer number
|
||||||
|
col column number
|
||||||
|
coladd column offset for 'virtualedit'
|
||||||
|
filename filename if available
|
||||||
|
lnum line number
|
||||||
|
|
||||||
*getline()*
|
*getline()*
|
||||||
getline({lnum} [, {end}])
|
getline({lnum} [, {end}])
|
||||||
Without {end} the result is a String, which is line {lnum}
|
Without {end} the result is a String, which is line {lnum}
|
||||||
@@ -4674,6 +4743,8 @@ getqflist([{what}]) *getqflist()*
|
|||||||
If the optional {what} dictionary argument is supplied, then
|
If the optional {what} dictionary argument is supplied, then
|
||||||
returns only the items listed in {what} as a dictionary. The
|
returns only the items listed in {what} as a dictionary. The
|
||||||
following string items are supported in {what}:
|
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()|
|
context get the context stored with |setqflist()|
|
||||||
efm errorformat to use when parsing "lines". If
|
efm errorformat to use when parsing "lines". If
|
||||||
not present, then the 'errorformat' option
|
not present, then the 'errorformat' option
|
||||||
@@ -4707,6 +4778,8 @@ getqflist([{what}]) *getqflist()*
|
|||||||
"items" with the list of entries.
|
"items" with the list of entries.
|
||||||
|
|
||||||
The returned dictionary contains the following entries:
|
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 context information stored with |setqflist()|.
|
||||||
If not present, set to "".
|
If not present, set to "".
|
||||||
id quickfix list ID |quickfix-ID|. If not
|
id quickfix list ID |quickfix-ID|. If not
|
||||||
@@ -4806,16 +4879,24 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
|
|||||||
:let list_is_on = gettabwinvar(1, 2, '&list')
|
:let list_is_on = gettabwinvar(1, 2, '&list')
|
||||||
:echo "myvar = " . gettabwinvar(3, 1, 'myvar')
|
:echo "myvar = " . gettabwinvar(3, 1, 'myvar')
|
||||||
<
|
<
|
||||||
|
getwinpos([{timeout}]) *getwinpos()*
|
||||||
|
The result is a list with two numbers, the result of
|
||||||
|
getwinposx() and getwinposy() combined:
|
||||||
|
[x-pos, y-pos]
|
||||||
|
{timeout} can be used to specify how long to wait in msec for
|
||||||
|
a response from the terminal. When omitted 100 msec is used.
|
||||||
|
|
||||||
*getwinposx()*
|
*getwinposx()*
|
||||||
getwinposx() The result is a Number, which is the X coordinate in pixels of
|
getwinposx() The result is a Number, which is the X coordinate in pixels of
|
||||||
the left hand side of the GUI Vim window. Also works for an
|
the left hand side of the GUI Vim window. Also works for an
|
||||||
xterm.
|
xterm (uses a timeout of 100 msec).
|
||||||
The result will be -1 if the information is not available.
|
The result will be -1 if the information is not available.
|
||||||
The value can be used with `:winpos`.
|
The value can be used with `:winpos`.
|
||||||
|
|
||||||
*getwinposy()*
|
*getwinposy()*
|
||||||
getwinposy() The result is a Number, which is the Y coordinate in pixels of
|
getwinposy() The result is a Number, which is the Y coordinate in pixels of
|
||||||
the top of the GUI Vim window. Also works for an xterm.
|
the top of the GUI Vim window. Also works for an xterm (uses
|
||||||
|
a timeout of 100 msec).
|
||||||
The result will be -1 if the information is not available.
|
The result will be -1 if the information is not available.
|
||||||
The value can be used with `:winpos`.
|
The value can be used with `:winpos`.
|
||||||
|
|
||||||
@@ -5929,8 +6010,6 @@ matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
|
|||||||
< Matches added by |matchaddpos()| are returned by
|
< Matches added by |matchaddpos()| are returned by
|
||||||
|getmatches()| with an entry "pos1", "pos2", etc., with the
|
|getmatches()| with an entry "pos1", "pos2", etc., with the
|
||||||
value a list like the {pos} item.
|
value a list like the {pos} item.
|
||||||
These matches cannot be set via |setmatches()|, however they
|
|
||||||
can still be deleted by |clearmatches()|.
|
|
||||||
|
|
||||||
matcharg({nr}) *matcharg()*
|
matcharg({nr}) *matcharg()*
|
||||||
Selects the {nr} match item, as set with a |:match|,
|
Selects the {nr} match item, as set with a |:match|,
|
||||||
@@ -6519,7 +6598,7 @@ remote_expr({server}, {string} [, {idvar} [, {timeout}]])
|
|||||||
between (not at the end), like with join(expr, "\n").
|
between (not at the end), like with join(expr, "\n").
|
||||||
If {idvar} is present and not empty, it is taken as the name
|
If {idvar} is present and not empty, it is taken as the name
|
||||||
of a variable and a {serverid} for later use with
|
of a variable and a {serverid} for later use with
|
||||||
remote_read() is stored there.
|
|remote_read()| is stored there.
|
||||||
If {timeout} is given the read times out after this many
|
If {timeout} is given the read times out after this many
|
||||||
seconds. Otherwise a timeout of 600 seconds is used.
|
seconds. Otherwise a timeout of 600 seconds is used.
|
||||||
See also |clientserver| |RemoteReply|.
|
See also |clientserver| |RemoteReply|.
|
||||||
@@ -8083,6 +8162,57 @@ tempname() *tempname()* *temp-file-name*
|
|||||||
For MS-Windows forward slashes are used when the 'shellslash'
|
For MS-Windows forward slashes are used when the 'shellslash'
|
||||||
option is set or when 'shellcmdflag' starts with '-'.
|
option is set or when 'shellcmdflag' starts with '-'.
|
||||||
|
|
||||||
|
*term_dumpdiff()*
|
||||||
|
term_dumpdiff({filename}, {filename} [, {options}])
|
||||||
|
Open a new window displaying the difference between the two
|
||||||
|
files. The files must have been created with
|
||||||
|
|term_dumpwrite()|.
|
||||||
|
Returns the buffer number or zero when the diff fails.
|
||||||
|
Also see |terminal-diff|.
|
||||||
|
NOTE: this does not work with double-width characters yet.
|
||||||
|
|
||||||
|
The top part of the buffer contains the contents of the first
|
||||||
|
file, the bottom part of the buffer contains the contents of
|
||||||
|
the second file. The middle part shows the differences.
|
||||||
|
The parts are separated by a line of dashes.
|
||||||
|
|
||||||
|
{options} are not implemented yet.
|
||||||
|
|
||||||
|
Each character in the middle part indicates a difference. If
|
||||||
|
there are multiple differences only the first in this list is
|
||||||
|
used:
|
||||||
|
X different character
|
||||||
|
w different width
|
||||||
|
f different foreground color
|
||||||
|
b different background color
|
||||||
|
a different attribute
|
||||||
|
+ missing position in first file
|
||||||
|
- missing position in second file
|
||||||
|
|
||||||
|
Using the "s" key the top and bottom parts are swapped. This
|
||||||
|
makes it easy to spot a difference.
|
||||||
|
|
||||||
|
*term_dumpload()*
|
||||||
|
term_dumpload({filename} [, {options}])
|
||||||
|
Open a new window displaying the contents of {filename}
|
||||||
|
The file must have been created with |term_dumpwrite()|.
|
||||||
|
Returns the buffer number or zero when it fails.
|
||||||
|
Also see |terminal-diff|.
|
||||||
|
|
||||||
|
{options} are not implemented yet.
|
||||||
|
|
||||||
|
*term_dumpwrite()*
|
||||||
|
term_dumpwrite({buf}, {filename} [, {options}])
|
||||||
|
Dump the contents of the terminal screen of {buf} in the file
|
||||||
|
{filename}. This uses a format that can be used with
|
||||||
|
|term_dumpload()| and |term_dumpdiff()|.
|
||||||
|
If {filename} already exists an error is given. *E953*
|
||||||
|
Also see |terminal-diff|.
|
||||||
|
|
||||||
|
{options} is a dictionary with these optional entries:
|
||||||
|
"rows" maximum number of rows to dump
|
||||||
|
"columns" maximum number of columns to dump
|
||||||
|
|
||||||
term_getaltscreen({buf}) *term_getaltscreen()*
|
term_getaltscreen({buf}) *term_getaltscreen()*
|
||||||
Returns 1 if the terminal of {buf} is using the alternate
|
Returns 1 if the terminal of {buf} is using the alternate
|
||||||
screen.
|
screen.
|
||||||
@@ -9005,8 +9135,12 @@ persistent_undo Compiled with support for persistent undo history.
|
|||||||
postscript Compiled with PostScript file printing.
|
postscript Compiled with PostScript file printing.
|
||||||
printer Compiled with |:hardcopy| support.
|
printer Compiled with |:hardcopy| support.
|
||||||
profile Compiled with |:profile| support.
|
profile Compiled with |:profile| support.
|
||||||
python Compiled with Python 2.x interface. |has-python|
|
python Python 2.x interface available. |has-python|
|
||||||
python3 Compiled with Python 3.x interface. |has-python|
|
python_compiled Compiled with Python 2.x interface. |has-python|
|
||||||
|
python_dynamic Python 2.x interface is dynamically loaded. |has-python|
|
||||||
|
python3 Python 3.x interface available. |has-python|
|
||||||
|
python3_compiled Compiled with Python 3.x interface. |has-python|
|
||||||
|
python3_dynamic Python 3.x interface is dynamically loaded. |has-python|
|
||||||
pythonx Compiled with |python_x| interface. |has-pythonx|
|
pythonx Compiled with |python_x| interface. |has-pythonx|
|
||||||
qnx QNX version of Vim.
|
qnx QNX version of Vim.
|
||||||
quickfix Compiled with |quickfix| support.
|
quickfix Compiled with |quickfix| support.
|
||||||
@@ -9048,6 +9182,8 @@ ttyout output is a terminal (tty)
|
|||||||
unix Unix version of Vim. *+unix*
|
unix Unix version of Vim. *+unix*
|
||||||
unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
|
unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
|
||||||
user_commands User-defined commands.
|
user_commands User-defined commands.
|
||||||
|
vcon Win32: Virtual console support is working, can use
|
||||||
|
'termguicolors'. Also see |+vtp|.
|
||||||
vertsplit Compiled with vertically split windows |:vsplit|.
|
vertsplit Compiled with vertically split windows |:vsplit|.
|
||||||
vim_starting True while initial source'ing takes place. |startup|
|
vim_starting True while initial source'ing takes place. |startup|
|
||||||
*vim_starting*
|
*vim_starting*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*filetype.txt* For Vim version 8.0. Last change: 2017 Dec 05
|
*filetype.txt* For Vim version 8.0. Last change: 2018 Feb 04
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -602,51 +602,17 @@ MANPAGER *manpager.vim*
|
|||||||
The :Man command allows you to turn Vim into a manpager (that syntax highlights
|
The :Man command allows you to turn Vim into a manpager (that syntax highlights
|
||||||
manpages and follows linked manpages on hitting CTRL-]).
|
manpages and follows linked manpages on hitting CTRL-]).
|
||||||
|
|
||||||
Tested on:
|
|
||||||
|
|
||||||
- Linux
|
|
||||||
- Mac OS
|
|
||||||
- FreeBSD
|
|
||||||
- OpenBSD
|
|
||||||
- Cygwin
|
|
||||||
- Win 10 under Bash
|
|
||||||
|
|
||||||
Untested:
|
|
||||||
|
|
||||||
- Amiga OS
|
|
||||||
- BeOS
|
|
||||||
- OS/2
|
|
||||||
|
|
||||||
If man sets the $MAN_PN environment variable, like man-db, the most common
|
|
||||||
implementation on Linux, then the "env MAN_PN=1 " part below should NOT be
|
|
||||||
set, that is, the "env MAN_PN=1" should be omitted! Otherwise, the Vim
|
|
||||||
manpager does not correctly recognize manpages whose title contains a capital
|
|
||||||
letter. See the discussion on
|
|
||||||
|
|
||||||
https://groups.google.com/forum/#!topic/vim_dev/pWZmt_7GkxI
|
|
||||||
|
|
||||||
For bash,zsh,ksh or dash, add to the config file (.bashrc,.zshrc, ...)
|
For bash,zsh,ksh or dash, add to the config file (.bashrc,.zshrc, ...)
|
||||||
|
|
||||||
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER -"
|
export MANPAGER="vim -M +MANPAGER -"
|
||||||
|
|
||||||
For (t)csh, add to the config file
|
For (t)csh, add to the config file
|
||||||
|
|
||||||
setenv MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
|
setenv MANPAGER "vim -M +MANPAGER -"
|
||||||
|
|
||||||
For fish, add to the config file
|
For fish, add to the config file
|
||||||
|
|
||||||
set -x MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
|
set -x MANPAGER "vim -M +MANPAGER -"
|
||||||
|
|
||||||
On OpenBSD:
|
|
||||||
|
|
||||||
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER"
|
|
||||||
|
|
||||||
If you experience still issues on manpages whose titles do not contain capital
|
|
||||||
letters, then try adding MANPATH=${MANPATH} after MAN_PN=1. If your manpages do
|
|
||||||
not show up localized, then try adding, LANGUAGE=${LANG} after MAN_PN=1. See
|
|
||||||
|
|
||||||
https://github.com/vim/vim/issues/1002
|
|
||||||
|
|
||||||
|
|
||||||
PDF *ft-pdf-plugin*
|
PDF *ft-pdf-plugin*
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_cscop.txt* For Vim version 8.0. Last change: 2017 Nov 23
|
*if_cscop.txt* For Vim version 8.0. Last change: 2018 Jan 21
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Andy Kahn
|
VIM REFERENCE MANUAL by Andy Kahn
|
||||||
@@ -478,7 +478,7 @@ The cscope interface/support for Vim was originally written by
|
|||||||
Andy Kahn <ackahn@netapp.com>. The original structure (as well as a tiny
|
Andy Kahn <ackahn@netapp.com>. The original structure (as well as a tiny
|
||||||
bit of code) was adapted from the cscope interface in nvi.
|
bit of code) was adapted from the cscope interface in nvi.
|
||||||
*cscope-win32*
|
*cscope-win32*
|
||||||
For a cscope version for Win32 see (seems abandonded):
|
For a cscope version for Win32 see (seems abandoned):
|
||||||
https://code.google.com/archive/p/cscope-win32/
|
https://code.google.com/archive/p/cscope-win32/
|
||||||
|
|
||||||
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
|
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_pyth.txt* For Vim version 8.0. Last change: 2017 Nov 09
|
*if_pyth.txt* For Vim version 8.0. Last change: 2018 Jan 30
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Paul Moore
|
VIM REFERENCE MANUAL by Paul Moore
|
||||||
@@ -809,7 +809,8 @@ Raising SystemExit exception in python isn't endorsed way to quit vim, use: >
|
|||||||
You can test what Python version is available with: >
|
You can test what Python version is available with: >
|
||||||
if has('python')
|
if has('python')
|
||||||
echo 'there is Python 2.x'
|
echo 'there is Python 2.x'
|
||||||
elseif has('python3')
|
endif
|
||||||
|
if has('python3')
|
||||||
echo 'there is Python 3.x'
|
echo 'there is Python 3.x'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -818,6 +819,24 @@ dynamically, these has() calls will try to load them. If only one can be
|
|||||||
loaded at a time, just checking if Python 2 or 3 are available will prevent
|
loaded at a time, just checking if Python 2 or 3 are available will prevent
|
||||||
the other one from being available.
|
the other one from being available.
|
||||||
|
|
||||||
|
To avoid loading the dynamic library, only check if Vim was compiled with
|
||||||
|
python support: >
|
||||||
|
if has('python_compiled')
|
||||||
|
echo 'compiled with Python 2.x support'
|
||||||
|
if has('python_dynamic')
|
||||||
|
echo 'Python 2.x dynamically loaded'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
if has('python3_compiled')
|
||||||
|
echo 'compiled with Python 3.x support'
|
||||||
|
if has('python3_dynamic')
|
||||||
|
echo 'Python 3.x dynamically loaded'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
This also tells you whether Python is dynamically loaded, which will fail if
|
||||||
|
the runtime library cannot be found.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
11. Python X *python_x* *pythonx*
|
11. Python X *python_x* *pythonx*
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*insert.txt* For Vim version 8.0. Last change: 2017 Nov 23
|
*insert.txt* For Vim version 8.0. Last change: 2018 Feb 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1103,6 +1103,8 @@ items:
|
|||||||
item with the same word is already present.
|
item with the same word is already present.
|
||||||
empty when non-zero this match will be added even when it is
|
empty when non-zero this match will be added even when it is
|
||||||
an empty string
|
an empty string
|
||||||
|
user_data custom data which is associated with the item and
|
||||||
|
available in |v:completed_item|
|
||||||
|
|
||||||
All of these except "icase", "dup" and "empty" must be a string. If an item
|
All of these except "icase", "dup" and "empty" must be a string. If an item
|
||||||
does not meet these requirements then an error message is given and further
|
does not meet these requirements then an error message is given and further
|
||||||
@@ -1196,6 +1198,8 @@ The menu is used when:
|
|||||||
|
|
||||||
The 'pumheight' option can be used to set a maximum height. The default is to
|
The 'pumheight' option can be used to set a maximum height. The default is to
|
||||||
use all space available.
|
use all space available.
|
||||||
|
The 'pumwidth' option can be used to set a minimum width. The default is 15
|
||||||
|
characters.
|
||||||
|
|
||||||
There are three states:
|
There are three states:
|
||||||
1. A complete match has been inserted, e.g., after using CTRL-N or CTRL-P.
|
1. A complete match has been inserted, e.g., after using CTRL-N or CTRL-P.
|
||||||
@@ -1530,9 +1534,9 @@ groups are included by default with the PHP: phpEnvVar, phpIntVar,
|
|||||||
phpFunctions.
|
phpFunctions.
|
||||||
|
|
||||||
If you wish non-filetype syntax items to also be included, you can use a
|
If you wish non-filetype syntax items to also be included, you can use a
|
||||||
regular expression syntax (added in version 13.0 of autoload\syntaxcomplete.vim)
|
regular expression syntax (added in version 13.0 of
|
||||||
to add items. Looking at the output from ":syntax list" while editing a PHP file
|
autoload\syntaxcomplete.vim) to add items. Looking at the output from
|
||||||
I can see some of these entries: >
|
":syntax list" while editing a PHP file I can see some of these entries: >
|
||||||
htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
|
htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
|
||||||
|
|
||||||
To pick up any JavaScript and HTML keyword syntax groups while editing a PHP
|
To pick up any JavaScript and HTML keyword syntax groups while editing a PHP
|
||||||
@@ -1579,15 +1583,15 @@ SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
|
|||||||
various groups and syntax items. For example: >
|
various groups and syntax items. For example: >
|
||||||
syntax list
|
syntax list
|
||||||
|
|
||||||
Yields data similar to this: >
|
Yields data similar to this:
|
||||||
sqlOperator xxx some prior all like and any escape exists in is not
|
sqlOperator xxx some prior all like and any escape exists in is not ~
|
||||||
or intersect minus between distinct
|
or intersect minus between distinct ~
|
||||||
links to Operator
|
links to Operator ~
|
||||||
sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier
|
sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier ~
|
||||||
date money long tinyint unsigned xml text smalldate
|
date money long tinyint unsigned xml text smalldate ~
|
||||||
double datetime nchar smallint numeric time bit char
|
double datetime nchar smallint numeric time bit char ~
|
||||||
varbinary binary smallmoney
|
varbinary binary smallmoney ~
|
||||||
image float integer timestamp real decimal
|
image float integer timestamp real decimal ~
|
||||||
|
|
||||||
There are two syntax groups listed here: sqlOperator and sqlType. To retrieve
|
There are two syntax groups listed here: sqlOperator and sqlType. To retrieve
|
||||||
a List of syntax items you can call OmniSyntaxList a number of different
|
a List of syntax items you can call OmniSyntaxList a number of different
|
||||||
@@ -1608,7 +1612,6 @@ From within a plugin, you would typically assign the output to a List: >
|
|||||||
let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
|
let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SQL *ft-sql-omni*
|
SQL *ft-sql-omni*
|
||||||
|
|
||||||
Completion for the SQL language includes statements, functions, keywords.
|
Completion for the SQL language includes statements, functions, keywords.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*intro.txt* For Vim version 8.0. Last change: 2017 Sep 04
|
*intro.txt* For Vim version 8.0. Last change: 2018 Jan 24
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -138,7 +138,7 @@ There are two ways to report bugs, both work:
|
|||||||
see the message. If you don't want that, e.g. because it is a security
|
see the message. If you don't want that, e.g. because it is a security
|
||||||
issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer
|
issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer
|
||||||
(that's Bram).
|
(that's Bram).
|
||||||
2. Open issue on GitHub: https://github.com/vim/vim/issues
|
2. Open an issue on GitHub: https://github.com/vim/vim/issues
|
||||||
The text will be forwarded to the vim-dev maillist.
|
The text will be forwarded to the vim-dev maillist.
|
||||||
|
|
||||||
Please be brief; all the time that is spent on answering mail is subtracted
|
Please be brief; all the time that is spent on answering mail is subtracted
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*mbyte.txt* For Vim version 8.0. Last change: 2017 Nov 30
|
*mbyte.txt* For Vim version 8.0. Last change: 2018 Jan 21
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||||
@@ -1258,7 +1258,7 @@ Combining forms:
|
|||||||
10. Input with imactivatefunc() *mbyte-func*
|
10. Input with imactivatefunc() *mbyte-func*
|
||||||
|
|
||||||
Vim has the 'imactivatefunc' and 'imstatusfunc' options. These are useful to
|
Vim has the 'imactivatefunc' and 'imstatusfunc' options. These are useful to
|
||||||
activate/deativate the input method from Vim in any way, also with an external
|
activate/deactivate the input method from Vim in any way, also with an external
|
||||||
command. For example, fcitx provide fcitx-remote command: >
|
command. For example, fcitx provide fcitx-remote command: >
|
||||||
|
|
||||||
set iminsert=2
|
set iminsert=2
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*message.txt* For Vim version 8.0. Last change: 2017 Oct 14
|
*message.txt* For Vim version 8.0. Last change: 2018 Feb 04
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -76,7 +76,7 @@ See `:messages` above.
|
|||||||
LIST OF MESSAGES
|
LIST OF MESSAGES
|
||||||
*E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317*
|
*E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317*
|
||||||
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
|
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
|
||||||
*E323* *E341* *E473* *E570* *E685* >
|
*E323* *E341* *E473* *E570* *E685* *E950* >
|
||||||
Add to read buffer
|
Add to read buffer
|
||||||
makemap: Illegal mode
|
makemap: Illegal mode
|
||||||
Cannot create BalloonEval with both message and callback
|
Cannot create BalloonEval with both message and callback
|
||||||
@@ -97,6 +97,7 @@ LIST OF MESSAGES
|
|||||||
Internal error
|
Internal error
|
||||||
Internal error: {function}
|
Internal error: {function}
|
||||||
fatal error in cs_manage_matches
|
fatal error in cs_manage_matches
|
||||||
|
Invalid count for del_bytes(): {N}
|
||||||
|
|
||||||
This is an internal error. If you can reproduce it, please send in a bug
|
This is an internal error. If you can reproduce it, please send in a bug
|
||||||
report. |bugs|
|
report. |bugs|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*options.txt* For Vim version 8.0. Last change: 2017 Dec 01
|
*options.txt* For Vim version 8.0. Last change: 2018 Feb 25
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1808,7 +1808,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
'copyindent' + off don't copy indent structure
|
'copyindent' + off don't copy indent structure
|
||||||
'cpoptions' & (all flags) Vi-compatible flags
|
'cpoptions' & (all flags) Vi-compatible flags
|
||||||
'cscopepathcomp'+ 0 don't show directories in tags list
|
'cscopepathcomp'+ 0 don't show directories in tags list
|
||||||
'cscoperelative'+ off
|
'cscoperelative'+ off don't use basename of path as prefix
|
||||||
'cscopetag' + off don't use cscope for ":tag"
|
'cscopetag' + off don't use cscope for ":tag"
|
||||||
'cscopetagorder'+ 0 see |cscopetagorder|
|
'cscopetagorder'+ 0 see |cscopetagorder|
|
||||||
'cscopeverbose' + off see |cscopeverbose|
|
'cscopeverbose' + off see |cscopeverbose|
|
||||||
@@ -5203,8 +5203,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
{not in Vi}
|
{not in Vi}
|
||||||
Maximum amount of memory (in Kbyte) to use for one buffer. When this
|
Maximum amount of memory (in Kbyte) to use for one buffer. When this
|
||||||
limit is reached allocating extra memory for a buffer will cause
|
limit is reached allocating extra memory for a buffer will cause
|
||||||
other memory to be freed. The maximum usable value is about 2000000.
|
other memory to be freed.
|
||||||
Use this to work without a limit. Also see 'maxmemtot'.
|
The maximum usable value is about 2000000. Use this to work without a
|
||||||
|
limit.
|
||||||
|
The value is ignored when 'swapfile' is off.
|
||||||
|
Also see 'maxmemtot'.
|
||||||
|
|
||||||
*'maxmempattern'* *'mmp'*
|
*'maxmempattern'* *'mmp'*
|
||||||
'maxmempattern' 'mmp' number (default 1000)
|
'maxmempattern' 'mmp' number (default 1000)
|
||||||
@@ -5233,6 +5236,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
need more than 2 Gbyte for text editing? Keep in mind that text is
|
need more than 2 Gbyte for text editing? Keep in mind that text is
|
||||||
stored in the swap file, one can edit files > 2 Gbyte anyway. We do
|
stored in the swap file, one can edit files > 2 Gbyte anyway. We do
|
||||||
need the memory to store undo info.
|
need the memory to store undo info.
|
||||||
|
Buffers with 'swapfile' off still count to the total amount of memory
|
||||||
|
used.
|
||||||
Also see 'maxmem'.
|
Also see 'maxmem'.
|
||||||
|
|
||||||
*'menuitems'* *'mis'*
|
*'menuitems'* *'mis'*
|
||||||
@@ -5749,11 +5754,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
copy of the original file will be kept. The name of the copy is the
|
copy of the original file will be kept. The name of the copy is the
|
||||||
name of the original file with the string in the 'patchmode' option
|
name of the original file with the string in the 'patchmode' option
|
||||||
appended. This option should start with a dot. Use a string like
|
appended. This option should start with a dot. Use a string like
|
||||||
".org". 'backupdir' must not be empty for this to work (Detail: The
|
".orig" or ".org". 'backupdir' must not be empty for this to work
|
||||||
backup file is renamed to the patchmode file after the new file has
|
(Detail: The backup file is renamed to the patchmode file after the
|
||||||
been successfully written, that's why it must be possible to write a
|
new file has been successfully written, that's why it must be possible
|
||||||
backup file). If there was no file to be backed up, an empty file is
|
to write a backup file). If there was no file to be backed up, an
|
||||||
created.
|
empty file is created.
|
||||||
When the 'backupskip' pattern matches, a patchmode file is not made.
|
When the 'backupskip' pattern matches, a patchmode file is not made.
|
||||||
Using 'patchmode' for compressed files appends the extension at the
|
Using 'patchmode' for compressed files appends the extension at the
|
||||||
end (e.g., "file.gz.orig"), thus the resulting name isn't always
|
end (e.g., "file.gz.orig"), thus the resulting name isn't always
|
||||||
@@ -5955,6 +5960,15 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
Insert mode completion. When zero as much space as available is used.
|
Insert mode completion. When zero as much space as available is used.
|
||||||
|ins-completion-menu|.
|
|ins-completion-menu|.
|
||||||
|
|
||||||
|
*'pumwidth'* *'pw'*
|
||||||
|
'pumwidth' 'pw' number (default 15)
|
||||||
|
global
|
||||||
|
{not available when compiled without the
|
||||||
|
|+insert_expand| feature}
|
||||||
|
{not in Vi}
|
||||||
|
Determines the minimum width to use for the popup menu for Insert mode
|
||||||
|
completion. |ins-completion-menu|.
|
||||||
|
|
||||||
*'pythondll'*
|
*'pythondll'*
|
||||||
'pythondll' string (default depends on the build)
|
'pythondll' string (default depends on the build)
|
||||||
global
|
global
|
||||||
@@ -5965,6 +5979,20 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
DYNAMIC_PYTHON_DLL, which was specified at compile time.
|
DYNAMIC_PYTHON_DLL, which was specified at compile time.
|
||||||
Environment variables are expanded |:set_env|.
|
Environment variables are expanded |:set_env|.
|
||||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||||
|
security reasons.
|
||||||
|
|
||||||
|
*'pythonhome'*
|
||||||
|
'pythonhome' string (default "")
|
||||||
|
global
|
||||||
|
{not in Vi}
|
||||||
|
{only available when compiled with the |+python/dyn|
|
||||||
|
feature}
|
||||||
|
Specifies the name of the Python 2.x home directory. When 'pythonhome'
|
||||||
|
and the PYTHONHOME environment variable are not set, PYTHON_HOME,
|
||||||
|
which was specified at compile time, will be used for the Python 2.x
|
||||||
|
home directory.
|
||||||
|
Environment variables are expanded |:set_env|.
|
||||||
|
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||||
security reasons.
|
security reasons.
|
||||||
|
|
||||||
*'pythonthreedll'*
|
*'pythonthreedll'*
|
||||||
@@ -5977,6 +6005,20 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
DYNAMIC_PYTHON3_DLL, which was specified at compile time.
|
DYNAMIC_PYTHON3_DLL, which was specified at compile time.
|
||||||
Environment variables are expanded |:set_env|.
|
Environment variables are expanded |:set_env|.
|
||||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||||
|
security reasons.
|
||||||
|
|
||||||
|
*'pythonthreehome'*
|
||||||
|
'pythonthreehome' string (default "")
|
||||||
|
global
|
||||||
|
{not in Vi}
|
||||||
|
{only available when compiled with the |+python3/dyn|
|
||||||
|
feature}
|
||||||
|
Specifies the name of the Python 3 home directory. When
|
||||||
|
'pythonthreehome' and the PYTHONHOME environment variable are not set,
|
||||||
|
PYTHON3_HOME, which was specified at compile time, will be used for
|
||||||
|
the Python 3 home directory.
|
||||||
|
Environment variables are expanded |:set_env|.
|
||||||
|
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||||
security reasons.
|
security reasons.
|
||||||
|
|
||||||
*'pyxversion'* *'pyx'*
|
*'pyxversion'* *'pyx'*
|
||||||
@@ -6122,7 +6164,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
geom pixelGeometry int 0 - 2 (see below)
|
geom pixelGeometry int 0 - 2 (see below)
|
||||||
renmode renderingMode int 0 - 6 (see below)
|
renmode renderingMode int 0 - 6 (see below)
|
||||||
taamode textAntialiasMode int 0 - 3 (see below)
|
taamode textAntialiasMode int 0 - 3 (see below)
|
||||||
scrlines Scroll Lines int >= 0 (see below)
|
scrlines Scroll Lines int (deprecated)
|
||||||
|
|
||||||
See this URL for detail (except for scrlines):
|
See this URL for detail (except for scrlines):
|
||||||
https://msdn.microsoft.com/en-us/library/dd368190.aspx
|
https://msdn.microsoft.com/en-us/library/dd368190.aspx
|
||||||
@@ -6156,23 +6198,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
See this URL for detail:
|
See this URL for detail:
|
||||||
https://msdn.microsoft.com/en-us/library/dd368170.aspx
|
https://msdn.microsoft.com/en-us/library/dd368170.aspx
|
||||||
|
|
||||||
For scrlines: threshold for lines to be scrolled.
|
For scrlines:
|
||||||
0 - Always use scrolling. (default)
|
This was used for optimizing scrolling behavior, however this
|
||||||
1 - Use full page redrawing.
|
is now deprecated. If specified, it is simply ignored.
|
||||||
> 1 - If the lines to be scrolled is grater or equal to the
|
|
||||||
specified value, use redrawing. Otherwise use
|
|
||||||
scrolling.
|
|
||||||
|
|
||||||
If you feel scrolling a page (CTRL-F) is too slow with DirectX
|
|
||||||
renderer, try this "scrlines" option.
|
|
||||||
When set it "1", Vim uses full page redrawing instead of
|
|
||||||
scrolling. Redrawing a page is faster than scrolling a
|
|
||||||
page in some environments.
|
|
||||||
After that, when you feel scrolling lines (CTRL-Y) becomes
|
|
||||||
slow, please try "2" or greater value for this option.
|
|
||||||
It works threshold line number to switch scrolling to
|
|
||||||
redrawing. Scrolling a few lines might be faster than
|
|
||||||
redrawing a page in some environments.
|
|
||||||
|
|
||||||
Example: >
|
Example: >
|
||||||
set encoding=utf-8
|
set encoding=utf-8
|
||||||
@@ -6616,14 +6644,21 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
It is allowed to give an argument to the command, e.g. "csh -f".
|
It is allowed to give an argument to the command, e.g. "csh -f".
|
||||||
See |option-backslash| about including spaces and backslashes.
|
See |option-backslash| about including spaces and backslashes.
|
||||||
Environment variables are expanded |:set_env|.
|
Environment variables are expanded |:set_env|.
|
||||||
|
|
||||||
If the name of the shell contains a space, you might need to enclose
|
If the name of the shell contains a space, you might need to enclose
|
||||||
it in quotes. Example: >
|
it in quotes or escape the space. Example with quotes: >
|
||||||
:set shell=\"c:\program\ files\unix\sh.exe\"\ -f
|
:set shell=\"c:\program\ files\unix\sh.exe\"\ -f
|
||||||
< Note the backslash before each quote (to avoid starting a comment) and
|
< Note the backslash before each quote (to avoid starting a comment) and
|
||||||
each space (to avoid ending the option value). Also note that the
|
each space (to avoid ending the option value). Also note that the
|
||||||
"-f" is not inside the quotes, because it is not part of the command
|
"-f" is not inside the quotes, because it is not part of the command
|
||||||
name. And Vim automagically recognizes the backslashes that are path
|
name. Vim automagically recognizes the backslashes that are path
|
||||||
separators.
|
separators.
|
||||||
|
Example with escaped space (Vim will do this when initializing the
|
||||||
|
option from $SHELL): >
|
||||||
|
:set shell=/bin/with\\\ space/sh
|
||||||
|
< The resulting value of 'shell' is "/bin/with\ space/sh", two
|
||||||
|
backslashes are consumed by `:set`.
|
||||||
|
|
||||||
Under MS-Windows, when the executable ends in ".com" it must be
|
Under MS-Windows, when the executable ends in ".com" it must be
|
||||||
included. Thus setting the shell to "command.com" or "4dos.com"
|
included. Thus setting the shell to "command.com" or "4dos.com"
|
||||||
works, but "command" and "4dos" do not work for all commands (e.g.,
|
works, but "command" and "4dos" do not work for all commands (e.g.,
|
||||||
@@ -7526,6 +7561,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
Also see |swap-file| and |'swapsync'|.
|
Also see |swap-file| and |'swapsync'|.
|
||||||
If you want to open a new buffer without creating a swap file for it,
|
If you want to open a new buffer without creating a swap file for it,
|
||||||
use the |:noswapfile| modifier.
|
use the |:noswapfile| modifier.
|
||||||
|
See 'directory' for where the swap file is created.
|
||||||
|
|
||||||
This option is used together with 'bufhidden' and 'buftype' to
|
This option is used together with 'bufhidden' and 'buftype' to
|
||||||
specify special kinds of buffers. See |special-buffers|.
|
specify special kinds of buffers. See |special-buffers|.
|
||||||
@@ -7872,17 +7908,24 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
:set encoding=utf-8
|
:set encoding=utf-8
|
||||||
< You need to do this when your system has no locale support for UTF-8.
|
< You need to do this when your system has no locale support for UTF-8.
|
||||||
|
|
||||||
*'termguicolors'* *'tgc'*
|
*'termguicolors'* *'tgc'* *E954*
|
||||||
'termguicolors' 'tgc' boolean (default off)
|
'termguicolors' 'tgc' boolean (default off)
|
||||||
global
|
global
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
{not available when compiled without the
|
{not available when compiled without the
|
||||||
|+termguicolors| feature}
|
|+termguicolors| feature}
|
||||||
When on, uses |highlight-guifg| and |highlight-guibg| attributes in
|
When on, uses |highlight-guifg| and |highlight-guibg| attributes in
|
||||||
the terminal (thus using 24-bit color). Requires a ISO-8613-3
|
the terminal (thus using 24-bit color).
|
||||||
compatible terminal.
|
|
||||||
If setting this option does not work (produces a colorless UI)
|
Requires a ISO-8613-3 compatible terminal. If setting this option
|
||||||
reading |xterm-true-color| might help.
|
does not work (produces a colorless UI) reading |xterm-true-color|
|
||||||
|
might help.
|
||||||
|
|
||||||
|
For Win32 console, Windows 10 version 1703 (Creators Update) or later
|
||||||
|
is required. Use this check to find out: >
|
||||||
|
if has('vcon')
|
||||||
|
< This requires Vim to be built with the |+vtp| feature.
|
||||||
|
|
||||||
Note that the "cterm" attributes are still used, not the "gui" ones.
|
Note that the "cterm" attributes are still used, not the "gui" ones.
|
||||||
NOTE: This option is reset when 'compatible' is set.
|
NOTE: This option is reset when 'compatible' is set.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*os_mac.txt* For Vim version 8.0. Last change: 2017 Apr 28
|
*os_mac.txt* For Vim version 8.0. Last change: 2018 Jan 21
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||||
@@ -165,7 +165,7 @@ and then run `make` to build Vim. The order of the options doesn't matter.
|
|||||||
|
|
||||||
To make sure at runtime whether or not the darwin feature is compiled in, you
|
To make sure at runtime whether or not the darwin feature is compiled in, you
|
||||||
can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0
|
can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0
|
||||||
otherwise. For backwards comptibility, you can still use `macunix` instead of
|
otherwise. For backward compatibility, you can still use `macunix` instead of
|
||||||
`osxdarwin`.
|
`osxdarwin`.
|
||||||
|
|
||||||
Notable use cases where `--disable-darwin` is turned out to be useful are:
|
Notable use cases where `--disable-darwin` is turned out to be useful are:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*pattern.txt* For Vim version 8.0. Last change: 2017 Jun 05
|
*pattern.txt* For Vim version 8.0. Last change: 2018 Feb 04
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -905,7 +905,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
|||||||
becomes invalid. Vim doesn't automatically update the matches.
|
becomes invalid. Vim doesn't automatically update the matches.
|
||||||
Similar to moving the cursor for "\%#" |/\%#|.
|
Similar to moving the cursor for "\%#" |/\%#|.
|
||||||
|
|
||||||
*/\%l* */\%>l* */\%<l*
|
*/\%l* */\%>l* */\%<l* *E951*
|
||||||
\%23l Matches in a specific line.
|
\%23l Matches in a specific line.
|
||||||
\%<23l Matches above a specific line (lower line number).
|
\%<23l Matches above a specific line (lower line number).
|
||||||
\%>23l Matches below a specific line (higher line number).
|
\%>23l Matches below a specific line (higher line number).
|
||||||
|
|||||||
@@ -64,6 +64,14 @@ When a window with a location list is split, the new window gets a copy of the
|
|||||||
location list. When there are no longer any references to a location list,
|
location list. When there are no longer any references to a location list,
|
||||||
the location list is destroyed.
|
the location list is destroyed.
|
||||||
|
|
||||||
|
*quickfix-changedtick*
|
||||||
|
Every quickfix and location list has a read-only changedtick variable that
|
||||||
|
tracks the total number of changes made to the list. Every time the quickfix
|
||||||
|
list is modified, this count is incremented. This can be used to perform an
|
||||||
|
action only when the list has changed. The getqflist() and getloclist()
|
||||||
|
functions can be used to query the current value of changedtick. You cannot
|
||||||
|
change the changedtick variable.
|
||||||
|
|
||||||
The following quickfix commands can be used. The location list commands are
|
The following quickfix commands can be used. The location list commands are
|
||||||
similar to the quickfix commands, replacing the 'c' prefix in the quickfix
|
similar to the quickfix commands, replacing the 'c' prefix in the quickfix
|
||||||
command with 'l'.
|
command with 'l'.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*quickref.txt* For Vim version 8.0. Last change: 2017 Nov 21
|
*quickref.txt* For Vim version 8.0. Last change: 2018 Feb 11
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -838,8 +838,11 @@ Short explanation of each option: *option-list*
|
|||||||
'printoptions' 'popt' controls the format of :hardcopy output
|
'printoptions' 'popt' controls the format of :hardcopy output
|
||||||
'prompt' 'prompt' enable prompt in Ex mode
|
'prompt' 'prompt' enable prompt in Ex mode
|
||||||
'pumheight' 'ph' maximum height of the popup menu
|
'pumheight' 'ph' maximum height of the popup menu
|
||||||
|
'pumwidth' 'pw' minimum width of the popup menu
|
||||||
'pythondll' name of the Python 2 dynamic library
|
'pythondll' name of the Python 2 dynamic library
|
||||||
|
'pythonhome' name of the Python 2 home directory
|
||||||
'pythonthreedll' name of the Python 3 dynamic library
|
'pythonthreedll' name of the Python 3 dynamic library
|
||||||
|
'pythonthreehome' name of the Python 3 home directory
|
||||||
'pyxversion' 'pyx' Python version used for pyx* commands
|
'pyxversion' 'pyx' Python version used for pyx* commands
|
||||||
'quoteescape' 'qe' escape characters used in a string
|
'quoteescape' 'qe' escape characters used in a string
|
||||||
'readonly' 'ro' disallow writing the buffer
|
'readonly' 'ro' disallow writing the buffer
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*repeat.txt* For Vim version 8.0. Last change: 2017 Dec 17
|
*repeat.txt* For Vim version 8.0. Last change: 2018 Feb 11
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -806,6 +806,19 @@ DEFINING BREAKPOINTS
|
|||||||
< Note that this only works for commands that are executed when
|
< Note that this only works for commands that are executed when
|
||||||
sourcing the file, not for a function defined in that file.
|
sourcing the file, not for a function defined in that file.
|
||||||
|
|
||||||
|
:breaka[dd] expr {expression}
|
||||||
|
Sets a breakpoint, that will break whenever the {expression}
|
||||||
|
evaluates to a different value. Example: >
|
||||||
|
:breakadd expr g:lnum
|
||||||
|
|
||||||
|
< Will break, whenever the global variable lnum changes.
|
||||||
|
Note if you watch a |script-variable| this will break
|
||||||
|
when switching scripts, since the script variable is only
|
||||||
|
valid in the script where it has been defined and if that
|
||||||
|
script is called from several other scripts, this will stop
|
||||||
|
whenever that particular variable will become visible or
|
||||||
|
unaccessible again.
|
||||||
|
|
||||||
The [lnum] is the line number of the breakpoint. Vim will stop at or after
|
The [lnum] is the line number of the breakpoint. Vim will stop at or after
|
||||||
this line. When omitted line 1 is used.
|
this line. When omitted line 1 is used.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*starting.txt* For Vim version 8.0. Last change: 2017 Nov 18
|
*starting.txt* For Vim version 8.0. Last change: 2018 Feb 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -516,6 +516,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
|||||||
- the |defaults.vim| script is loaded, which implies
|
- the |defaults.vim| script is loaded, which implies
|
||||||
'nocompatible': use Vim defaults
|
'nocompatible': use Vim defaults
|
||||||
- no viminfo file is read or written
|
- no viminfo file is read or written
|
||||||
|
- the home directory is excluded from 'runtimepath'
|
||||||
*-x*
|
*-x*
|
||||||
-x Use encryption to read/write files. Will prompt for a key,
|
-x Use encryption to read/write files. Will prompt for a key,
|
||||||
which is then stored in the 'key' option. All writes will
|
which is then stored in the 'key' option. All writes will
|
||||||
@@ -1010,14 +1011,13 @@ Vi compatible default value ~
|
|||||||
When Vim starts, the 'compatible' option is on. This will be used when Vim
|
When Vim starts, the 'compatible' option is on. This will be used when Vim
|
||||||
starts its initializations. But as soon as:
|
starts its initializations. But as soon as:
|
||||||
- a user vimrc file is found, or
|
- a user vimrc file is found, or
|
||||||
- a vimrc file in the current directory, or
|
- a vimrc file in the current directory is found, or
|
||||||
- the "VIMINIT" environment variable is set, or
|
- the "VIMINIT" environment variable is set, or
|
||||||
- the "-N" command line argument is given, or
|
- the "-N" command line argument is given, or
|
||||||
- the "--clean" command line argument is given, or
|
- the "--clean" command line argument is given, or
|
||||||
even when no vimrc file exists.
|
|
||||||
- the |defaults.vim| script is loaded, or
|
- the |defaults.vim| script is loaded, or
|
||||||
- gvimrc file was found,
|
- a gvimrc file was found,
|
||||||
then it will be set to 'nocompatible'.
|
then the option will be set to 'nocompatible'.
|
||||||
|
|
||||||
Note that this does NOT happen when a system-wide vimrc file was found.
|
Note that this does NOT happen when a system-wide vimrc file was found.
|
||||||
|
|
||||||
@@ -1043,7 +1043,7 @@ giving the mapping.
|
|||||||
Defaults without a .vimrc file ~
|
Defaults without a .vimrc file ~
|
||||||
*defaults.vim*
|
*defaults.vim*
|
||||||
If Vim is started normally and no user vimrc file is found, the
|
If Vim is started normally and no user vimrc file is found, the
|
||||||
$VIMRUTIME/defaults.vim script is loaded. This will set 'compatible' off,
|
$VIMRUNTIME/defaults.vim script is loaded. This will set 'compatible' off,
|
||||||
switch on syntax highlighting and a few more things. See the script for
|
switch on syntax highlighting and a few more things. See the script for
|
||||||
details. NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
|
details. NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
|
||||||
patch 7.4.2111 to be exact).
|
patch 7.4.2111 to be exact).
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*syntax.txt* For Vim version 8.0. Last change: 2017 Sep 30
|
*syntax.txt* For Vim version 8.0. Last change: 2018 Jan 31
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -2779,13 +2779,10 @@ Ruby syntax will perform spellchecking of strings if you define
|
|||||||
|
|
||||||
SCHEME *scheme.vim* *ft-scheme-syntax*
|
SCHEME *scheme.vim* *ft-scheme-syntax*
|
||||||
|
|
||||||
By default only R5RS keywords are highlighted and properly indented.
|
By default only R7RS keywords are highlighted and properly indented.
|
||||||
|
|
||||||
MzScheme-specific stuff will be used if b:is_mzscheme or g:is_mzscheme
|
scheme.vim also supports extensions of the CHICKEN Scheme->C compiler.
|
||||||
variables are defined.
|
Define b:is_chicken or g:is_chicken, if you need them.
|
||||||
|
|
||||||
Also scheme.vim supports keywords of the Chicken Scheme->C compiler. Define
|
|
||||||
b:is_chicken or g:is_chicken, if you need them.
|
|
||||||
|
|
||||||
|
|
||||||
SDL *sdl.vim* *ft-sdl-syntax*
|
SDL *sdl.vim* *ft-sdl-syntax*
|
||||||
@@ -5025,12 +5022,19 @@ StatusLine status line of current window
|
|||||||
StatusLineNC status lines of not-current windows
|
StatusLineNC status lines of not-current windows
|
||||||
Note: if this is equal to "StatusLine" Vim will use "^^^" in
|
Note: if this is equal to "StatusLine" Vim will use "^^^" in
|
||||||
the status line of the current window.
|
the status line of the current window.
|
||||||
|
*hl-StatusLineTerm*
|
||||||
|
StatusLineTerm status line of current window, if it is a |terminal| window.
|
||||||
|
*hl-StatusLineTermNC*
|
||||||
|
StatusLineTermNC status lines of not-current windows that is a |terminal|
|
||||||
|
window.
|
||||||
*hl-TabLine*
|
*hl-TabLine*
|
||||||
TabLine tab pages line, not active tab page label
|
TabLine tab pages line, not active tab page label
|
||||||
*hl-TabLineFill*
|
*hl-TabLineFill*
|
||||||
TabLineFill tab pages line, where there are no labels
|
TabLineFill tab pages line, where there are no labels
|
||||||
*hl-TabLineSel*
|
*hl-TabLineSel*
|
||||||
TabLineSel tab pages line, active tab page label
|
TabLineSel tab pages line, active tab page label
|
||||||
|
*hl-Terminal*
|
||||||
|
Terminal |terminal| window (see |terminal-size-color|)
|
||||||
*hl-Title*
|
*hl-Title*
|
||||||
Title titles for output from ":set all", ":autocmd" etc.
|
Title titles for output from ":set all", ":autocmd" etc.
|
||||||
*hl-Visual*
|
*hl-Visual*
|
||||||
|
|||||||
@@ -782,10 +782,14 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
'prompt' options.txt /*'prompt'*
|
'prompt' options.txt /*'prompt'*
|
||||||
'pt' options.txt /*'pt'*
|
'pt' options.txt /*'pt'*
|
||||||
'pumheight' options.txt /*'pumheight'*
|
'pumheight' options.txt /*'pumheight'*
|
||||||
|
'pumwidth' options.txt /*'pumwidth'*
|
||||||
'pvh' options.txt /*'pvh'*
|
'pvh' options.txt /*'pvh'*
|
||||||
'pvw' options.txt /*'pvw'*
|
'pvw' options.txt /*'pvw'*
|
||||||
|
'pw' options.txt /*'pw'*
|
||||||
'pythondll' options.txt /*'pythondll'*
|
'pythondll' options.txt /*'pythondll'*
|
||||||
|
'pythonhome' options.txt /*'pythonhome'*
|
||||||
'pythonthreedll' options.txt /*'pythonthreedll'*
|
'pythonthreedll' options.txt /*'pythonthreedll'*
|
||||||
|
'pythonthreehome' options.txt /*'pythonthreehome'*
|
||||||
'pyx' options.txt /*'pyx'*
|
'pyx' options.txt /*'pyx'*
|
||||||
'pyxversion' options.txt /*'pyxversion'*
|
'pyxversion' options.txt /*'pyxversion'*
|
||||||
'qe' options.txt /*'qe'*
|
'qe' options.txt /*'qe'*
|
||||||
@@ -1353,6 +1357,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
+visual various.txt /*+visual*
|
+visual various.txt /*+visual*
|
||||||
+visualextra various.txt /*+visualextra*
|
+visualextra various.txt /*+visualextra*
|
||||||
+vreplace various.txt /*+vreplace*
|
+vreplace various.txt /*+vreplace*
|
||||||
|
+vtp various.txt /*+vtp*
|
||||||
+wildignore various.txt /*+wildignore*
|
+wildignore various.txt /*+wildignore*
|
||||||
+wildmenu various.txt /*+wildmenu*
|
+wildmenu various.txt /*+wildmenu*
|
||||||
+windows various.txt /*+windows*
|
+windows various.txt /*+windows*
|
||||||
@@ -3664,6 +3669,7 @@ Cmd-event autocmd.txt /*Cmd-event*
|
|||||||
CmdUndefined autocmd.txt /*CmdUndefined*
|
CmdUndefined autocmd.txt /*CmdUndefined*
|
||||||
Cmdline cmdline.txt /*Cmdline*
|
Cmdline cmdline.txt /*Cmdline*
|
||||||
Cmdline-mode cmdline.txt /*Cmdline-mode*
|
Cmdline-mode cmdline.txt /*Cmdline-mode*
|
||||||
|
CmdlineChanged autocmd.txt /*CmdlineChanged*
|
||||||
CmdlineEnter autocmd.txt /*CmdlineEnter*
|
CmdlineEnter autocmd.txt /*CmdlineEnter*
|
||||||
CmdlineLeave autocmd.txt /*CmdlineLeave*
|
CmdlineLeave autocmd.txt /*CmdlineLeave*
|
||||||
CmdwinEnter autocmd.txt /*CmdwinEnter*
|
CmdwinEnter autocmd.txt /*CmdwinEnter*
|
||||||
@@ -3688,6 +3694,7 @@ Dictionaries eval.txt /*Dictionaries*
|
|||||||
Dictionary eval.txt /*Dictionary*
|
Dictionary eval.txt /*Dictionary*
|
||||||
Dictionary-function eval.txt /*Dictionary-function*
|
Dictionary-function eval.txt /*Dictionary-function*
|
||||||
Digraphs digraph.txt /*Digraphs*
|
Digraphs digraph.txt /*Digraphs*
|
||||||
|
DirChanged autocmd.txt /*DirChanged*
|
||||||
E motion.txt /*E*
|
E motion.txt /*E*
|
||||||
E10 message.txt /*E10*
|
E10 message.txt /*E10*
|
||||||
E100 diff.txt /*E100*
|
E100 diff.txt /*E100*
|
||||||
@@ -4577,6 +4584,11 @@ E947 terminal.txt /*E947*
|
|||||||
E948 terminal.txt /*E948*
|
E948 terminal.txt /*E948*
|
||||||
E949 editing.txt /*E949*
|
E949 editing.txt /*E949*
|
||||||
E95 message.txt /*E95*
|
E95 message.txt /*E95*
|
||||||
|
E950 message.txt /*E950*
|
||||||
|
E951 pattern.txt /*E951*
|
||||||
|
E952 autocmd.txt /*E952*
|
||||||
|
E953 eval.txt /*E953*
|
||||||
|
E954 options.txt /*E954*
|
||||||
E96 diff.txt /*E96*
|
E96 diff.txt /*E96*
|
||||||
E97 diff.txt /*E97*
|
E97 diff.txt /*E97*
|
||||||
E98 diff.txt /*E98*
|
E98 diff.txt /*E98*
|
||||||
@@ -4820,6 +4832,7 @@ TermResponse autocmd.txt /*TermResponse*
|
|||||||
Terminal-mode terminal.txt /*Terminal-mode*
|
Terminal-mode terminal.txt /*Terminal-mode*
|
||||||
TextChanged autocmd.txt /*TextChanged*
|
TextChanged autocmd.txt /*TextChanged*
|
||||||
TextChangedI autocmd.txt /*TextChangedI*
|
TextChangedI autocmd.txt /*TextChangedI*
|
||||||
|
TextChangedP autocmd.txt /*TextChangedP*
|
||||||
TextYankPost autocmd.txt /*TextYankPost*
|
TextYankPost autocmd.txt /*TextYankPost*
|
||||||
Transact-SQL ft_sql.txt /*Transact-SQL*
|
Transact-SQL ft_sql.txt /*Transact-SQL*
|
||||||
U undo.txt /*U*
|
U undo.txt /*U*
|
||||||
@@ -5080,7 +5093,9 @@ asin() eval.txt /*asin()*
|
|||||||
asm.vim syntax.txt /*asm.vim*
|
asm.vim syntax.txt /*asm.vim*
|
||||||
asm68k syntax.txt /*asm68k*
|
asm68k syntax.txt /*asm68k*
|
||||||
asmh8300.vim syntax.txt /*asmh8300.vim*
|
asmh8300.vim syntax.txt /*asmh8300.vim*
|
||||||
|
assert_beeps() eval.txt /*assert_beeps()*
|
||||||
assert_equal() eval.txt /*assert_equal()*
|
assert_equal() eval.txt /*assert_equal()*
|
||||||
|
assert_equalfile() eval.txt /*assert_equalfile()*
|
||||||
assert_exception() eval.txt /*assert_exception()*
|
assert_exception() eval.txt /*assert_exception()*
|
||||||
assert_fails() eval.txt /*assert_fails()*
|
assert_fails() eval.txt /*assert_fails()*
|
||||||
assert_false() eval.txt /*assert_false()*
|
assert_false() eval.txt /*assert_false()*
|
||||||
@@ -6555,6 +6570,7 @@ get-ms-debuggers debug.txt /*get-ms-debuggers*
|
|||||||
getbufinfo() eval.txt /*getbufinfo()*
|
getbufinfo() eval.txt /*getbufinfo()*
|
||||||
getbufline() eval.txt /*getbufline()*
|
getbufline() eval.txt /*getbufline()*
|
||||||
getbufvar() eval.txt /*getbufvar()*
|
getbufvar() eval.txt /*getbufvar()*
|
||||||
|
getchangelist() eval.txt /*getchangelist()*
|
||||||
getchar() eval.txt /*getchar()*
|
getchar() eval.txt /*getchar()*
|
||||||
getcharmod() eval.txt /*getcharmod()*
|
getcharmod() eval.txt /*getcharmod()*
|
||||||
getcharsearch() eval.txt /*getcharsearch()*
|
getcharsearch() eval.txt /*getcharsearch()*
|
||||||
@@ -6570,6 +6586,7 @@ getfperm() eval.txt /*getfperm()*
|
|||||||
getfsize() eval.txt /*getfsize()*
|
getfsize() eval.txt /*getfsize()*
|
||||||
getftime() eval.txt /*getftime()*
|
getftime() eval.txt /*getftime()*
|
||||||
getftype() eval.txt /*getftype()*
|
getftype() eval.txt /*getftype()*
|
||||||
|
getjumplist() eval.txt /*getjumplist()*
|
||||||
getlatestvimscripts-install pi_getscript.txt /*getlatestvimscripts-install*
|
getlatestvimscripts-install pi_getscript.txt /*getlatestvimscripts-install*
|
||||||
getline() eval.txt /*getline()*
|
getline() eval.txt /*getline()*
|
||||||
getloclist() eval.txt /*getloclist()*
|
getloclist() eval.txt /*getloclist()*
|
||||||
@@ -6825,9 +6842,12 @@ hl-SpellLocal syntax.txt /*hl-SpellLocal*
|
|||||||
hl-SpellRare syntax.txt /*hl-SpellRare*
|
hl-SpellRare syntax.txt /*hl-SpellRare*
|
||||||
hl-StatusLine syntax.txt /*hl-StatusLine*
|
hl-StatusLine syntax.txt /*hl-StatusLine*
|
||||||
hl-StatusLineNC syntax.txt /*hl-StatusLineNC*
|
hl-StatusLineNC syntax.txt /*hl-StatusLineNC*
|
||||||
|
hl-StatusLineTerm syntax.txt /*hl-StatusLineTerm*
|
||||||
|
hl-StatusLineTermNC syntax.txt /*hl-StatusLineTermNC*
|
||||||
hl-TabLine syntax.txt /*hl-TabLine*
|
hl-TabLine syntax.txt /*hl-TabLine*
|
||||||
hl-TabLineFill syntax.txt /*hl-TabLineFill*
|
hl-TabLineFill syntax.txt /*hl-TabLineFill*
|
||||||
hl-TabLineSel syntax.txt /*hl-TabLineSel*
|
hl-TabLineSel syntax.txt /*hl-TabLineSel*
|
||||||
|
hl-Terminal syntax.txt /*hl-Terminal*
|
||||||
hl-Title syntax.txt /*hl-Title*
|
hl-Title syntax.txt /*hl-Title*
|
||||||
hl-Tooltip syntax.txt /*hl-Tooltip*
|
hl-Tooltip syntax.txt /*hl-Tooltip*
|
||||||
hl-User1 syntax.txt /*hl-User1*
|
hl-User1 syntax.txt /*hl-User1*
|
||||||
@@ -6838,6 +6858,8 @@ hl-Visual syntax.txt /*hl-Visual*
|
|||||||
hl-VisualNOS syntax.txt /*hl-VisualNOS*
|
hl-VisualNOS syntax.txt /*hl-VisualNOS*
|
||||||
hl-WarningMsg syntax.txt /*hl-WarningMsg*
|
hl-WarningMsg syntax.txt /*hl-WarningMsg*
|
||||||
hl-WildMenu syntax.txt /*hl-WildMenu*
|
hl-WildMenu syntax.txt /*hl-WildMenu*
|
||||||
|
hl-debugBreakpoint terminal.txt /*hl-debugBreakpoint*
|
||||||
|
hl-debugPC terminal.txt /*hl-debugPC*
|
||||||
hlID() eval.txt /*hlID()*
|
hlID() eval.txt /*hlID()*
|
||||||
hlexists() eval.txt /*hlexists()*
|
hlexists() eval.txt /*hlexists()*
|
||||||
hlsearch-variable eval.txt /*hlsearch-variable*
|
hlsearch-variable eval.txt /*hlsearch-variable*
|
||||||
@@ -8064,6 +8086,7 @@ quake.vim syntax.txt /*quake.vim*
|
|||||||
quickfix quickfix.txt /*quickfix*
|
quickfix quickfix.txt /*quickfix*
|
||||||
quickfix-6 version6.txt /*quickfix-6*
|
quickfix-6 version6.txt /*quickfix-6*
|
||||||
quickfix-ID quickfix.txt /*quickfix-ID*
|
quickfix-ID quickfix.txt /*quickfix-ID*
|
||||||
|
quickfix-changedtick quickfix.txt /*quickfix-changedtick*
|
||||||
quickfix-context quickfix.txt /*quickfix-context*
|
quickfix-context quickfix.txt /*quickfix-context*
|
||||||
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
|
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
|
||||||
quickfix-error-lists quickfix.txt /*quickfix-error-lists*
|
quickfix-error-lists quickfix.txt /*quickfix-error-lists*
|
||||||
@@ -8888,6 +8911,9 @@ term++open terminal.txt /*term++open*
|
|||||||
term-dependent-settings term.txt /*term-dependent-settings*
|
term-dependent-settings term.txt /*term-dependent-settings*
|
||||||
term-list syntax.txt /*term-list*
|
term-list syntax.txt /*term-list*
|
||||||
term.txt term.txt /*term.txt*
|
term.txt term.txt /*term.txt*
|
||||||
|
term_dumpdiff() eval.txt /*term_dumpdiff()*
|
||||||
|
term_dumpload() eval.txt /*term_dumpload()*
|
||||||
|
term_dumpwrite() eval.txt /*term_dumpwrite()*
|
||||||
term_getaltscreen() eval.txt /*term_getaltscreen()*
|
term_getaltscreen() eval.txt /*term_getaltscreen()*
|
||||||
term_getattr() eval.txt /*term_getattr()*
|
term_getattr() eval.txt /*term_getattr()*
|
||||||
term_getcursor() eval.txt /*term_getcursor()*
|
term_getcursor() eval.txt /*term_getcursor()*
|
||||||
@@ -8922,6 +8948,9 @@ terminal terminal.txt /*terminal*
|
|||||||
terminal-colors os_unix.txt /*terminal-colors*
|
terminal-colors os_unix.txt /*terminal-colors*
|
||||||
terminal-cursor-style terminal.txt /*terminal-cursor-style*
|
terminal-cursor-style terminal.txt /*terminal-cursor-style*
|
||||||
terminal-debug terminal.txt /*terminal-debug*
|
terminal-debug terminal.txt /*terminal-debug*
|
||||||
|
terminal-diff terminal.txt /*terminal-diff*
|
||||||
|
terminal-diffscreendump terminal.txt /*terminal-diffscreendump*
|
||||||
|
terminal-dumptest terminal.txt /*terminal-dumptest*
|
||||||
terminal-functions usr_41.txt /*terminal-functions*
|
terminal-functions usr_41.txt /*terminal-functions*
|
||||||
terminal-info term.txt /*terminal-info*
|
terminal-info term.txt /*terminal-info*
|
||||||
terminal-key-codes term.txt /*terminal-key-codes*
|
terminal-key-codes term.txt /*terminal-key-codes*
|
||||||
@@ -8929,6 +8958,7 @@ terminal-ms-windows terminal.txt /*terminal-ms-windows*
|
|||||||
terminal-options term.txt /*terminal-options*
|
terminal-options term.txt /*terminal-options*
|
||||||
terminal-output-codes term.txt /*terminal-output-codes*
|
terminal-output-codes term.txt /*terminal-output-codes*
|
||||||
terminal-resizing terminal.txt /*terminal-resizing*
|
terminal-resizing terminal.txt /*terminal-resizing*
|
||||||
|
terminal-screendump terminal.txt /*terminal-screendump*
|
||||||
terminal-size-color terminal.txt /*terminal-size-color*
|
terminal-size-color terminal.txt /*terminal-size-color*
|
||||||
terminal-special-keys terminal.txt /*terminal-special-keys*
|
terminal-special-keys terminal.txt /*terminal-special-keys*
|
||||||
terminal-testing terminal.txt /*terminal-testing*
|
terminal-testing terminal.txt /*terminal-testing*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*terminal.txt* For Vim version 8.0. Last change: 2017 Dec 17
|
*terminal.txt* For Vim version 8.0. Last change: 2018 Feb 20
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -7,8 +7,6 @@
|
|||||||
Terminal window support *terminal*
|
Terminal window support *terminal*
|
||||||
|
|
||||||
|
|
||||||
WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE
|
|
||||||
|
|
||||||
The terminal feature is optional, use this to check if your Vim has it: >
|
The terminal feature is optional, use this to check if your Vim has it: >
|
||||||
echo has('terminal')
|
echo has('terminal')
|
||||||
If the result is "1" you have it.
|
If the result is "1" you have it.
|
||||||
@@ -25,7 +23,11 @@ If the result is "1" you have it.
|
|||||||
Unix |terminal-unix|
|
Unix |terminal-unix|
|
||||||
MS-Windows |terminal-ms-windows|
|
MS-Windows |terminal-ms-windows|
|
||||||
2. Remote testing |terminal-testing|
|
2. Remote testing |terminal-testing|
|
||||||
3. Debugging |terminal-debug|
|
3. Diffing screen dumps |terminal-diff|
|
||||||
|
Writing a screen dump test for Vim |terminal-dumptest|
|
||||||
|
Creating a screen dump |terminal-screendump|
|
||||||
|
Comparing screen dumps |terminal-diffscreendump|
|
||||||
|
4. Debugging |terminal-debug|
|
||||||
Starting |termdebug-starting|
|
Starting |termdebug-starting|
|
||||||
Example session |termdebug-example|
|
Example session |termdebug-example|
|
||||||
Stepping through code |termdebug-stepping|
|
Stepping through code |termdebug-stepping|
|
||||||
@@ -36,7 +38,6 @@ If the result is "1" you have it.
|
|||||||
|
|
||||||
{Vi does not have any of these commands}
|
{Vi does not have any of these commands}
|
||||||
{only available when compiled with the |+terminal| feature}
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.
|
The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
@@ -122,7 +123,8 @@ and background colors are taken from Vim, the Normal highlight group.
|
|||||||
For a color terminal the 'background' option is used to decide whether the
|
For a color terminal the 'background' option is used to decide whether the
|
||||||
terminal window will start with a white or black background.
|
terminal window will start with a white or black background.
|
||||||
|
|
||||||
To use a different color the Terminal highlight group can be used: >
|
To use a different color the Terminal highlight group can be used, for
|
||||||
|
example: >
|
||||||
hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
|
hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
|
||||||
|
|
||||||
|
|
||||||
@@ -148,11 +150,6 @@ Syntax ~
|
|||||||
keys in the terminal window. For MS-Windows see the
|
keys in the terminal window. For MS-Windows see the
|
||||||
++eof argument below.
|
++eof argument below.
|
||||||
|
|
||||||
Two comma separated numbers are used as "rows,cols".
|
|
||||||
E.g. `:24,80gdb` opens a terminal with 24 rows and 80
|
|
||||||
columns. However, if the terminal window spans the
|
|
||||||
Vim window with, there is no vertical split, the Vim
|
|
||||||
window width is used.
|
|
||||||
*term++close* *term++open*
|
*term++close* *term++open*
|
||||||
Supported [options] are:
|
Supported [options] are:
|
||||||
++close The terminal window will close
|
++close The terminal window will close
|
||||||
@@ -167,9 +164,15 @@ Syntax ~
|
|||||||
++hidden Open the terminal in a hidden buffer,
|
++hidden Open the terminal in a hidden buffer,
|
||||||
no window will be used.
|
no window will be used.
|
||||||
++rows={height} Use {height} for the terminal window
|
++rows={height} Use {height} for the terminal window
|
||||||
height.
|
height. If the terminal uses the full
|
||||||
|
Vim height (no window above or below
|
||||||
|
th terminal window) the command line
|
||||||
|
height will be reduced as needed.
|
||||||
++cols={width} Use {width} for the terminal window
|
++cols={width} Use {width} for the terminal window
|
||||||
width.
|
width. If the terminal uses the full
|
||||||
|
Vim width (no window left or right of
|
||||||
|
the terminal window) this value is
|
||||||
|
ignored.
|
||||||
++eof={text} when using [range]: text to send after
|
++eof={text} when using [range]: text to send after
|
||||||
the last line was written. Cannot
|
the last line was written. Cannot
|
||||||
contain white space. A CR is
|
contain white space. A CR is
|
||||||
@@ -358,7 +361,97 @@ term_scrape() inspect terminal screen
|
|||||||
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
3. Debugging *terminal-debug*
|
3. Diffing screen dumps *terminal-diff*
|
||||||
|
|
||||||
|
In some cases it can be bothersome to test that Vim displays the right
|
||||||
|
characters on the screen. E.g. with syntax highlighting. To make this
|
||||||
|
simpler it is possible to take a screen dump of a terminal and compare it to
|
||||||
|
an expected screen dump.
|
||||||
|
|
||||||
|
Vim uses the window size, text, color and other attributes as displayed. The
|
||||||
|
Vim screen size, font and other properties do not matter. Therefore this
|
||||||
|
mechanism is portable across systems. A convential screenshot would reflect
|
||||||
|
all differences, including font size and family.
|
||||||
|
|
||||||
|
|
||||||
|
Writing a screen dump test for Vim ~
|
||||||
|
*terminal-dumptest*
|
||||||
|
For an example see the Test_syntax_c() function in
|
||||||
|
src/testdir/test_syntax.vim. The main parts are:
|
||||||
|
- Write a file you want to test with. This is useful for testing syntax
|
||||||
|
highlighting. You can also start Vim with en empty buffer.
|
||||||
|
- Run Vim in a terminal with a specific size. The default is 20 lines of 75
|
||||||
|
characters. This makes sure the dump is always this size. The function
|
||||||
|
RunVimInTerminal() takes care of this. Pass it the arguments for the Vim
|
||||||
|
command.
|
||||||
|
- Send any commands to Vim using term_sendkeys(). For example: >
|
||||||
|
call term_sendkeys(buf, ":echo &lines &columns\<CR>")
|
||||||
|
- Check that the screen is now in the expected state, using
|
||||||
|
VerifyScreenDump(). This expects the reference screen dump to be in the
|
||||||
|
src/testdir/dumps/ directory. Pass the name without ".dump". It is
|
||||||
|
recommended to use the name of the test function and a sequence number, so
|
||||||
|
that we know what test is using the file.
|
||||||
|
- Repeat sending commands and checking the state.
|
||||||
|
- Finally stop Vim by calling StopVimInTerminal().
|
||||||
|
|
||||||
|
The first time you do this you won't have a screen dump yet. Create an empty
|
||||||
|
file for now, e.g.: >
|
||||||
|
touch src/testdir/dumps/Test_function_name_01.dump
|
||||||
|
|
||||||
|
The test will then fail, giving you the command to compare the reference dump
|
||||||
|
and the failed dump, e.g.: >
|
||||||
|
call term_dumpdiff("Test_func.dump.failed", "dumps/Test_func.dump")
|
||||||
|
|
||||||
|
Use this command in Vim, with the current directory set to src/testdir.
|
||||||
|
Once you are satisfied with the test, move the failed dump in place of the
|
||||||
|
reference: >
|
||||||
|
:!mv Test_func.dump.failed dumps/Test_func.dump
|
||||||
|
|
||||||
|
|
||||||
|
Creating a screen dump ~
|
||||||
|
*terminal-screendump*
|
||||||
|
|
||||||
|
To create the screen dump, run Vim (or any other program) in a terminal and
|
||||||
|
make it show the desired state. Then use the term_dumpwrite() function to
|
||||||
|
create a screen dump file. For example: >
|
||||||
|
:call term_dumpwrite(77, "mysyntax.dump")
|
||||||
|
|
||||||
|
Here "77" is the buffer number of the terminal. Use `:ls!` to see it.
|
||||||
|
|
||||||
|
You can view the screen dump with term_dumpload(): >
|
||||||
|
:call term_dumpload("mysyntax.dump")
|
||||||
|
|
||||||
|
To verify that Vim still shows exactly the same screen, run Vim again with
|
||||||
|
exactly the same way to show the desired state. Then create a screen dump
|
||||||
|
again, using a different file name: >
|
||||||
|
:call term_dumpwrite(88, "test.dump")
|
||||||
|
|
||||||
|
To assert that the files are exactly the same use assert_equalfile(): >
|
||||||
|
call assert_equalfile("mysyntax.dump", "test.dump")
|
||||||
|
|
||||||
|
If there are differences then v:errors will contain the error message.
|
||||||
|
|
||||||
|
|
||||||
|
Comparing screen dumps ~
|
||||||
|
*terminal-diffscreendump*
|
||||||
|
|
||||||
|
assert_equalfile() does not make it easy to see what is different.
|
||||||
|
To spot the problem use term_dumpdiff(): >
|
||||||
|
call term_dumpdiff("mysyntax.dump", "test.dump")
|
||||||
|
|
||||||
|
This will open a window consisting of three parts:
|
||||||
|
1. The contents of the first dump
|
||||||
|
2. The difference between the first and second dump
|
||||||
|
3. The contents of the second dump
|
||||||
|
|
||||||
|
You can usually see what differs in the second part. Use the 'ruler' to
|
||||||
|
relate it to the postion in the first or second dump.
|
||||||
|
|
||||||
|
Alternatively, press "s" to swap the first and second dump. Do this everal
|
||||||
|
times so that you can spot the difference in the context of the text.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
4. Debugging *terminal-debug*
|
||||||
|
|
||||||
The Terminal debugging plugin can be used to debug a program with gdb and view
|
The Terminal debugging plugin can be used to debug a program with gdb and view
|
||||||
the source code in a Vim window. Since this is completely contained inside
|
the source code in a Vim window. Since this is completely contained inside
|
||||||
@@ -385,7 +478,7 @@ program window A terminal window for the executed program. When "run" is
|
|||||||
|
|
||||||
The current window is used to show the source code. When gdb pauses the
|
The current window is used to show the source code. When gdb pauses the
|
||||||
source file location will be displayed, if possible. A sign is used to
|
source file location will be displayed, if possible. A sign is used to
|
||||||
highlight the current position (using highlight group debugPC).
|
highlight the current position, using highlight group debugPC.
|
||||||
|
|
||||||
If the buffer in the current window is modified, another window will be opened
|
If the buffer in the current window is modified, another window will be opened
|
||||||
to display the current gdb position.
|
to display the current gdb position.
|
||||||
@@ -410,6 +503,7 @@ You should now have three windows:
|
|||||||
source - where you started, has a window toolbar with buttons
|
source - where you started, has a window toolbar with buttons
|
||||||
gdb - you can type gdb commands here
|
gdb - you can type gdb commands here
|
||||||
program - the executed program will use this window
|
program - the executed program will use this window
|
||||||
|
|
||||||
You can use CTRL-W CTRL-W or the mouse to move focus between windows.
|
You can use CTRL-W CTRL-W or the mouse to move focus between windows.
|
||||||
Put focus on the gdb window and type: >
|
Put focus on the gdb window and type: >
|
||||||
break ex_help
|
break ex_help
|
||||||
@@ -430,6 +524,8 @@ displayed:
|
|||||||
This way you can inspect the value of local variables. You can also focus the
|
This way you can inspect the value of local variables. You can also focus the
|
||||||
gdb window and use a "print" command, e.g.: >
|
gdb window and use a "print" command, e.g.: >
|
||||||
print *eap
|
print *eap
|
||||||
|
If mouse pointer movements are working, Vim will also show a balloon when the
|
||||||
|
mouse rests on text that can be evaluated by gdb.
|
||||||
|
|
||||||
Now go back to the source window and put the cursor on the first line after
|
Now go back to the source window and put the cursor on the first line after
|
||||||
the for loop, then type: >
|
the for loop, then type: >
|
||||||
@@ -465,38 +561,42 @@ Put focus on the gdb window to type commands there. Some common ones are:
|
|||||||
- frame N go to the Nth stack frame
|
- frame N go to the Nth stack frame
|
||||||
- continue continue execution
|
- continue continue execution
|
||||||
|
|
||||||
In the window showing the source code these commands can used to control gdb:
|
In the window showing the source code these commands can be used to control gdb:
|
||||||
:Run [args] run the program with [args] or the previous arguments
|
`:Run` [args] run the program with [args] or the previous arguments
|
||||||
:Arguments {args} set arguments for the next :Run
|
`:Arguments` {args} set arguments for the next `:Run`
|
||||||
|
|
||||||
:Break set a breakpoint at the current line; a sign will be displayed
|
`:Break` set a breakpoint at the current line; a sign will be displayed
|
||||||
:Delete delete a breakpoint at the current line
|
`:Clear` delete the breakpoint at the current line
|
||||||
|
|
||||||
:Step execute the gdb "step" command
|
`:Step` execute the gdb "step" command
|
||||||
:Over execute the gdb "next" command (:Next is a Vim command)
|
`:Over` execute the gdb "next" command (`:Next` is a Vim command)
|
||||||
:Finish execute the gdb "finish" command
|
`:Finish` execute the gdb "finish" command
|
||||||
:Continue execute the gdb "continue" command
|
`:Continue` execute the gdb "continue" command
|
||||||
:Stop interrupt the program
|
`:Stop` interrupt the program
|
||||||
|
|
||||||
If 'mouse' is set the plugin adds a window toolbar with these entries:
|
If 'mouse' is set the plugin adds a window toolbar with these entries:
|
||||||
Step :Step
|
Step `:Step`
|
||||||
Next :Over
|
Next `:Over`
|
||||||
Finish :Finish
|
Finish `:Finish`
|
||||||
Cont :Continue
|
Cont `:Continue`
|
||||||
Stop :Stop
|
Stop `:Stop`
|
||||||
Eval :Evaluate
|
Eval `:Evaluate`
|
||||||
This way you can use the mouse to perform the most common commands. You need
|
This way you can use the mouse to perform the most common commands. You need
|
||||||
to have the 'mouse' option set to enable mouse clicks.
|
to have the 'mouse' option set to enable mouse clicks.
|
||||||
|
|
||||||
|
You can add the window toolbar in other windows you open with: >
|
||||||
|
:Winbar
|
||||||
|
|
||||||
|
|
||||||
Inspecting variables ~
|
Inspecting variables ~
|
||||||
*termdebug-variables*
|
*termdebug-variables*
|
||||||
:Evaluate evaluate the expression under the cursor
|
`:Evaluate` evaluate the expression under the cursor
|
||||||
K same
|
`K` same
|
||||||
:Evaluate {expr} evaluate {expr}
|
`:Evaluate` {expr} evaluate {expr}
|
||||||
:'<,'>Evaluate evaluate the Visually selected text
|
`:'<,'>Evaluate` evaluate the Visually selected text
|
||||||
|
|
||||||
This is similar to using "print" in the gdb window.
|
This is similar to using "print" in the gdb window.
|
||||||
|
You can usually shorten `:Evaluate` to `:Ev`.
|
||||||
|
|
||||||
|
|
||||||
Other commands ~
|
Other commands ~
|
||||||
@@ -513,7 +613,9 @@ will break the debugger.
|
|||||||
|
|
||||||
|
|
||||||
Customizing ~
|
Customizing ~
|
||||||
*termdebug-customizing*
|
|
||||||
|
GDB command *termdebug-customizing*
|
||||||
|
|
||||||
To change the name of the gdb command, set the "termdebugger" variable before
|
To change the name of the gdb command, set the "termdebugger" variable before
|
||||||
invoking `:Termdebug`: >
|
invoking `:Termdebug`: >
|
||||||
let termdebugger = "mygdb"
|
let termdebugger = "mygdb"
|
||||||
@@ -523,6 +625,9 @@ interface. This probably requires gdb version 7.12. if you get this error:
|
|||||||
Undefined command: "new-ui". Try "help".~
|
Undefined command: "new-ui". Try "help".~
|
||||||
Then your gdb is too old.
|
Then your gdb is too old.
|
||||||
|
|
||||||
|
|
||||||
|
Colors *hl-debugPC* *hl-debugBreakpoint*
|
||||||
|
|
||||||
The color of the signs can be adjusted with these highlight groups:
|
The color of the signs can be adjusted with these highlight groups:
|
||||||
- debugPC the current position
|
- debugPC the current position
|
||||||
- debugBreakpoint a breakpoint
|
- debugBreakpoint a breakpoint
|
||||||
@@ -535,6 +640,20 @@ When 'background' is "dark":
|
|||||||
hi debugPC term=reverse ctermbg=darkblue guibg=darkblue
|
hi debugPC term=reverse ctermbg=darkblue guibg=darkblue
|
||||||
hi debugBreakpoint term=reverse ctermbg=red guibg=red
|
hi debugBreakpoint term=reverse ctermbg=red guibg=red
|
||||||
|
|
||||||
|
|
||||||
|
Popup menu *termdebug_popup*
|
||||||
|
|
||||||
|
By default the Termdebug plugin sets 'mousemodel' to "popup_setpos" and adds
|
||||||
|
these entries to the popup menu:
|
||||||
|
Set breakpoint `:Break`
|
||||||
|
Clear breakpoint `:Clear`
|
||||||
|
Evaluate `:Evaluate`
|
||||||
|
If you don't want this then disable it with: >
|
||||||
|
let g:termdebug_popup = 0
|
||||||
|
|
||||||
|
|
||||||
|
Vim window width *termdebug_wide*
|
||||||
|
|
||||||
To change the width of the Vim window when debugging starts, and use a
|
To change the width of the Vim window when debugging starts, and use a
|
||||||
vertical split: >
|
vertical split: >
|
||||||
let g:termdebug_wide = 163
|
let g:termdebug_wide = 163
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 8.0. Last change: 2017 Dec 17
|
*todo.txt* For Vim version 8.0. Last change: 2018 Feb 27
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -39,145 +39,85 @@ No maintainer for Vietnamese translations.
|
|||||||
No maintainer for Simplified Chinese translations.
|
No maintainer for Simplified Chinese translations.
|
||||||
|
|
||||||
Terminal emulator window:
|
Terminal emulator window:
|
||||||
|
- using feedkeys() does not work? (Charles Sheridan, 2018 Feb 17)
|
||||||
- Lots of stuff to implement, see src/terminal.c
|
- Lots of stuff to implement, see src/terminal.c
|
||||||
- Improve debugger interface:
|
- Improve debugger interface:
|
||||||
Include all debug features of Agide.
|
|
||||||
- Implement the right-click popup menu for the terminal. Can use the
|
- Implement the right-click popup menu for the terminal. Can use the
|
||||||
completion popup menu code and mouse dragging.
|
completion popup menu code and mouse dragging.
|
||||||
Use it for "set breakpoint", "remove breakpoint", etc.
|
Use it for "set breakpoint", "remove breakpoint", etc.
|
||||||
- get ideas from http://clewn.sf.net
|
|
||||||
- Look into the idevim plugin/script.
|
- Look into the idevim plugin/script.
|
||||||
- Improve testing:
|
- Improve screen dump testing:
|
||||||
Make a screenshot of a terminal, store in a file.
|
Add docs for how to properly use the screen dumps for testing, e.g. for
|
||||||
Display a stored screenshot, display diff with another one.
|
syntax highlighting.
|
||||||
Make a test that puts Vim in a specific state, make a screenshot and compare
|
|
||||||
with the expected screenshot. Set t_Co to 256.
|
|
||||||
|
|
||||||
+channel:
|
Mode message isn't updated on vertical split. (Alexei Averchenko, 2018 Feb 2,
|
||||||
- Add a separate timeout for opening a socket. Currently it's fixed at 50
|
#2611)
|
||||||
msec, which is too small for a remote connection. (tverniquet, #2130)
|
|
||||||
- Try out background make plugin:
|
|
||||||
https://github.com/AndrewVos/vim-make-background
|
|
||||||
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
|
|
||||||
- Writing raw mode to a buffer should still handle NL characters as line
|
|
||||||
breaks. (Dmitry Zotikov, 2017 Aug 16)
|
|
||||||
- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
|
|
||||||
2016 Dec 11, #1320)
|
|
||||||
- Implement |job-term| ?
|
|
||||||
- Channel test fails with Motif. Sometimes kills the X11 server.
|
|
||||||
- When a message in the queue but there is no callback, drop it after a while?
|
|
||||||
Add timestamp to queued messages and callbacks with ID, remove after a
|
|
||||||
minute. Option to set the droptime.
|
|
||||||
- Add an option to drop text of very long lines? Default to 1 Mbyte.
|
|
||||||
- Add remark about undo sync, is there a way to force it?
|
|
||||||
- When starting a job, have an option to open the server socket, so we know
|
|
||||||
the port, and pass it to the command with --socket-fd {nr}. (Olaf Dabrunz,
|
|
||||||
Feb 9) How to do this on MS-Windows?
|
|
||||||
- For connection to server, a "keep open" flag would be useful. Retry
|
|
||||||
connecting in the main loop with zero timeout.
|
|
||||||
- job_start(): run job in a newly opened terminal (not a terminal window).
|
|
||||||
With xterm could use -S{pty}.
|
|
||||||
Although user could use "xterm -e 'cmd arg'".
|
|
||||||
|
|
||||||
Regexp problems:
|
Errors found with random data:
|
||||||
- When search pattern has the base character both with and without combining
|
heap-buffer-overflow in alist_add (#2472)
|
||||||
character, search fails. E.g. "รรีบ" in "การรีบรักใคร". (agguser, #2312)
|
|
||||||
- [:space:] only matches ASCII spaces. Add [:white:] for all space-like
|
|
||||||
characters, esp. including 0xa0. Use character class zero.
|
|
||||||
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
|
|
||||||
(Manuel Ortega, 2016 Apr 24)
|
|
||||||
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
|
|
||||||
LC_CTYPE
|
|
||||||
- The old engine does not find a match for "/\%#=1\(\)\{80}", the new engine
|
|
||||||
matches everywhere.
|
|
||||||
- Using win_linetabsize() can still be slow. Cache the result, store col and
|
|
||||||
vcol. Reset them when moving to another line.
|
|
||||||
- Very slow with a long line and Ruby highlighting. (John Whitley, 2014 Dec 4)
|
|
||||||
- Bug with pattern: '\vblock (\d+)\.\n.*\d+%(\1)@<!\.$'
|
|
||||||
(Lech Lorens, 2014 Feb 3)
|
|
||||||
- Issue 164: freeze on regexp search.
|
|
||||||
- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
|
|
||||||
2013 Dec 11)
|
|
||||||
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin
|
|
||||||
Szamotulski; Remark from Brett 2014 Jan 6 and 7.
|
|
||||||
- NFA regexp doesn't handle \%<v correctly. (Ingo Karkat, 2014 May 12)
|
|
||||||
- Does not work with NFA regexp engine:
|
|
||||||
\%u, \%x, \%o, \%d followed by a composing character
|
|
||||||
- Search for \%d0\+ may fail with E363. (Christian Brabandt, 2016 Oct 4)
|
|
||||||
- \%'[ does not work. '%'] does work. (Masaaki Nakamura, 2016 Apr 4)
|
|
||||||
- Bug relating to back references. (Ingo Karkat, 2014 Jul 24)
|
|
||||||
- New RE does not give an error for empty group: "\(\)\{2}" (Dominique Pelle,
|
|
||||||
2015 Feb 7)
|
|
||||||
- Using back reference before the capturing group sometimes works with the old
|
|
||||||
engine, can we do this with the new engine? E.g. with
|
|
||||||
"/\%(<\1>\)\@<=.*\%(<\/\(\w\+\)>\)\@=" matching text inside HTML tags.
|
|
||||||
This problem is probably the same: "\%(^\1.*$\n\)\@<=\(\d\+\).*$".
|
|
||||||
(guotuofeng, 2015 Jun 22)
|
|
||||||
- Strange matching with "\(Hello\n\)\@<=A". (Anas Syed, 2015 Feb 12)
|
|
||||||
- Problem with \v(A)@<=b+\1c. (Issue 334)
|
|
||||||
- Diff highlighting can be very slow. (Issue 309)
|
|
||||||
- Using %> for a virtual column has a check based on 'tabsize'. Better would
|
|
||||||
be to cache the result of win_linetabsize(col), storing both col and vcol,
|
|
||||||
and use them to decide whether win_linetabsize() needs to be called. Reset
|
|
||||||
col and vcol when moving to another line.
|
|
||||||
- this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving
|
|
||||||
out the \& works. Seems any column check after \& fails.
|
|
||||||
- Difference between two engines: ".*\zs\/\@>\/" on text "///"
|
|
||||||
(Chris Paul, 2016 Nov 13) New engine not greedy enough?
|
|
||||||
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
|
|
||||||
(2017 May 15, #1252)
|
|
||||||
|
|
||||||
Include a few color schemes, based on popularity:
|
|
||||||
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
|
|
||||||
http://vimawesome.com/?q=tag:color-scheme
|
|
||||||
Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
|
|
||||||
- monokai - Xia Crusoe (2017 Aug 4)
|
|
||||||
- seoul256 - Christian Brabandt (2017 Aug 3)
|
|
||||||
- gruvbox - Christian Brabandt (2017 Aug 3)
|
|
||||||
- janah - Marco Hinz (2017 Aug 4)
|
|
||||||
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
|
|
||||||
Suggested by Hiroki Kokubun:
|
|
||||||
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
|
|
||||||
- [hybrid](https://github.com/w0ng/vim-hybrid)
|
|
||||||
Include solarized color scheme?, it does not support termguicolors.
|
|
||||||
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
|
|
||||||
|
|
||||||
heap use after free. (gy741, #2447)
|
|
||||||
heap use after free in set_bufref (gy741, #2448)
|
|
||||||
reproduces with valgrind (Dominique)
|
|
||||||
heap use after free in getout. (gy741, #2449)
|
|
||||||
reproduces with valgrind (Dominique)
|
|
||||||
|
|
||||||
Compiler warnings (geeknik, 2017 Oct 26):
|
Compiler warnings (geeknik, 2017 Oct 26):
|
||||||
- signed integer overflow in do_sub() (#2249)
|
- signed integer overflow in do_sub() (#2249)
|
||||||
- signed integer overflow in get_address() (#2248)
|
- signed integer overflow in get_address() (#2248)
|
||||||
- signed integer overflow in getdecchrs() (#2254)
|
- signed integer overflow in getdecchrs() (#2254)
|
||||||
- signed integer overflow in nfa_regatom() (#2251)
|
|
||||||
- undefined left shift in get_string_tv() (#2250)
|
- undefined left shift in get_string_tv() (#2250)
|
||||||
|
|
||||||
Triggering CursorHoldI happens too often in the GUI. (#2451).
|
Patch to fix 'undolevels' in options window. (Yasuhiro Matsumoto, 2018 Feb 14,
|
||||||
Should move code from os_unix.c mch_inchar() up into common use, it's not
|
#2645)
|
||||||
really machine specific. Also the part of WaitForChar(), it deals with timers
|
|
||||||
and is also for all machines.
|
|
||||||
|
|
||||||
When starting with --clean packages under "start" are not loaded. Make this
|
Patch to fix fd leak when using jobs. (ichizok, 2018 Feb 16, #2651)
|
||||||
work: :packadd START {name} similar to :runtime START name
|
|
||||||
|
Popup menu is too wide, causing it not to be aligned. (Linwei, 2018 Feb 22,
|
||||||
|
#2661)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Cursor in status line after search. (#2530)
|
||||||
|
|
||||||
|
Cursor in wrong position when line wraps. (#2540)
|
||||||
|
|
||||||
|
Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
|
||||||
|
|
||||||
When using :packadd files under "later" are not used, which is inconsistent
|
When using :packadd files under "later" are not used, which is inconsistent
|
||||||
with packages under "start". (xtal8, #1994)
|
with packages under "start". (xtal8, #1994)
|
||||||
|
|
||||||
Patch to add changedtick var to quickfix list. (Yegappan Lakshmanan, 2017 Nov
|
Column number is wrong whsn using 'linebreak' and 'wrap'. (Keith Smiley, 2018
|
||||||
18, #2391)
|
Jan 15, #2555)
|
||||||
|
|
||||||
7 Add a watchpoint in the debug mode: An expression that breaks execution
|
Check argument of systemlist(). (Pavlov)
|
||||||
when evaluating to non-zero. Add the "watchadd expr" command, stop when
|
|
||||||
the value of the expression changes. ":watchdel" deletes an item,
|
When 'inchsearch' and 'hlsearch' are set /\v highlights everything.
|
||||||
":watchlist" lists the items. (Charles Campbell)
|
Also see #2337
|
||||||
Patch by Christian Brabandt, 2016 Jun 10, #859
|
|
||||||
|
Starting job with cwd option, when the directory does not exist, gives a
|
||||||
|
confusing error message. (Wang Shidong, 2018 Jan 2, #2519)
|
||||||
|
|
||||||
7 Make "ga" show the digraph for a character, if it exists.
|
7 Make "ga" show the digraph for a character, if it exists.
|
||||||
Patch from Christian Brabandt, 2011 Aug 19.
|
Patch from Christian Brabandt, 2011 Aug 19.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
ch_sendraw() with long string does not try to read inbetween, which may cause
|
||||||
|
a deadlock if the reading side is waiting for the write to finish. (Nate
|
||||||
|
Bosch, 2018 Jan 13, #2548)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
Problem with mouse scroll in tmux. (fcying, #2419) Might be caused by patch
|
||||||
|
8.0.1309. Removing "held_button = MOUSE_RELEASE;" helps. (2018 Feb 5)
|
||||||
|
|
||||||
|
Does setting 'cursorline' cause syntax highlighting to slow down? Perhaps is
|
||||||
|
mess up the cache? (Mike Lee Williams, 2018 Jan 27, #2539)
|
||||||
|
|
||||||
Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
|
Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
|
||||||
|
|
||||||
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
||||||
@@ -190,12 +130,28 @@ Using 'wildignore' also applies to literally entered file name. Also with
|
|||||||
directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
|
directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
|
||||||
Also see #1689.
|
Also see #1689.
|
||||||
|
|
||||||
Patch for 24 bit color support in MS-Windows console, using vcon. (Nobuhiro
|
|
||||||
Takasaki, Ken Takata, 2017 Oct 1, #2060).
|
|
||||||
|
|
||||||
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
|
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
|
||||||
Lemonboy can reproduce (2017 Jun 5)
|
Lemonboy can reproduce (2017 Jun 5)
|
||||||
|
|
||||||
|
crash when removing an element while inside map(). (Nikolai Pavlov, 2018 Feb
|
||||||
|
17, #2652)
|
||||||
|
|
||||||
|
When 'virtualedit' is "all" and 'cursorcolumn' is set, the wrong column may be
|
||||||
|
highlighted. (van-de-bugger, 2018 Jan 23, #2576)
|
||||||
|
|
||||||
|
Patch to parse ":line" in tags file and use it for search. (Daniel Hahler,
|
||||||
|
#2546) Fixes #1057. Missing a test.
|
||||||
|
|
||||||
|
Patch to add winlayout() function. (Yegappan Lakshmanan, 2018 Jan 4)
|
||||||
|
|
||||||
|
No profile information for function that executes ":quit". (Daniel Hahler,
|
||||||
|
2017 Dec 26, #2501)
|
||||||
|
|
||||||
|
Get a "No Name" buffer when 'hidden' is set and opening a new window from the
|
||||||
|
quickfix list. (bfrg, 2018 Jan 22, #2574)
|
||||||
|
|
||||||
|
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
|
||||||
|
|
||||||
Patch to fix E806. (Dominique, 2017 Nov 22, #2368)
|
Patch to fix E806. (Dominique, 2017 Nov 22, #2368)
|
||||||
Kazunobu Kuriyama: caused by XtSetLanguageProc().
|
Kazunobu Kuriyama: caused by XtSetLanguageProc().
|
||||||
|
|
||||||
@@ -209,15 +165,25 @@ ml_get errors with buggy script. (Dominique, 2017 Apr 30)
|
|||||||
|
|
||||||
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
|
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
|
||||||
|
|
||||||
Patch to avoid clearing the intro message on Win32 console.
|
Patch to fix encoding in print document name (Yasuhiro Matsumoto, 2017 Dec 20,
|
||||||
(Ken Takata, 2017 Nov 14)
|
#2478)
|
||||||
|
|
||||||
Patch to copy buffer-local options before buffer leaves the window. (Bjorn
|
Patch to copy buffer-local options before buffer leaves the window. (Bjorn
|
||||||
Linse, 2017 Nov 14, #2336)
|
Linse, 2017 Nov 14, #2336)
|
||||||
|
|
||||||
|
Join truncates xml comment. (Dmitrii Tcyganok, 2017 Dec 24, #2494)
|
||||||
|
Requires 'formatoptions' to include "j". (Gary Johnson, 2017 Dec 24)
|
||||||
|
|
||||||
|
Patch to support hunspell. (Matej Cepl, Jan 2018, #2500) Based on older patch
|
||||||
|
in #846)
|
||||||
|
Doesn't work on Windows yet. Not ready to included, hard coded paths.
|
||||||
|
|
||||||
When a timer is running and typing CTRL-R on the command line, it is not
|
When a timer is running and typing CTRL-R on the command line, it is not
|
||||||
redrawn properly. (xtal8, 2017 Oct 23, #2241)
|
redrawn properly. (xtal8, 2017 Oct 23, #2241)
|
||||||
|
|
||||||
|
In an optional package the "after" directory is not scanned?
|
||||||
|
(Renato Fabbri, 2018 Feb 22)
|
||||||
|
|
||||||
Universal solution to detect if t_RS is working, using cursor position.
|
Universal solution to detect if t_RS is working, using cursor position.
|
||||||
Koichi Iwamoto, #2126
|
Koichi Iwamoto, #2126
|
||||||
|
|
||||||
@@ -233,6 +199,9 @@ Ask whether to use Windows or Vim key behavior?
|
|||||||
Patch for improving detecting Ruby on Mac in configure. (Ilya Mikhaltsou, 2017
|
Patch for improving detecting Ruby on Mac in configure. (Ilya Mikhaltsou, 2017
|
||||||
Nov 21)
|
Nov 21)
|
||||||
|
|
||||||
|
Add a ModeChanged autocommand that has an argument indicating the old and new
|
||||||
|
mode. Also used for switching Terminal mode.
|
||||||
|
|
||||||
When using command line window, CmdlineLeave is triggered without
|
When using command line window, CmdlineLeave is triggered without
|
||||||
CmdlineEnter. (xtal8, 2017 Oct 30, #2263)
|
CmdlineEnter. (xtal8, 2017 Oct 30, #2263)
|
||||||
Add some way to get the nested state. Although CmdwinEnter is obviously
|
Add some way to get the nested state. Although CmdwinEnter is obviously
|
||||||
@@ -240,6 +209,9 @@ always nested.
|
|||||||
|
|
||||||
matchit hasn't been maintained for a long time. #955.
|
matchit hasn't been maintained for a long time. #955.
|
||||||
|
|
||||||
|
Patch to add variable name after "scope add". (Eddie Lebow, 2018 Feb 7, #2620)
|
||||||
|
Maybe not needed?
|
||||||
|
|
||||||
Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)
|
Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)
|
||||||
|
|
||||||
MS-Windows: buffer completion doesn't work when using backslash (or slash)
|
MS-Windows: buffer completion doesn't work when using backslash (or slash)
|
||||||
@@ -269,11 +241,8 @@ line breaks. (Ken Takata, 2017 Aug 22)
|
|||||||
The ":move" command does not honor closed folds. (Ryan Lue, #2351)
|
The ":move" command does not honor closed folds. (Ryan Lue, #2351)
|
||||||
|
|
||||||
Memory leaks in test_channel? (or is it because of fork())
|
Memory leaks in test_channel? (or is it because of fork())
|
||||||
Memory leak in test_arabic.
|
|
||||||
Using uninitialized value in test_crypt.
|
Using uninitialized value in test_crypt.
|
||||||
|
Memory leaks in test_escaped_glob
|
||||||
Patch to clear background when "guibg=NONE" is used and 'termguicolors' is
|
|
||||||
set.
|
|
||||||
|
|
||||||
Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
|
Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
|
||||||
|
|
||||||
@@ -322,6 +291,22 @@ Seems to happen when the selection is requested the second time, but before
|
|||||||
clip_x11_convert_selection_cb() is invoked, thus in X library code.
|
clip_x11_convert_selection_cb() is invoked, thus in X library code.
|
||||||
Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)
|
Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)
|
||||||
|
|
||||||
|
Include a few color schemes, based on popularity:
|
||||||
|
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
|
||||||
|
http://vimawesome.com/?q=tag:color-scheme
|
||||||
|
Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
|
||||||
|
- monokai - Xia Crusoe (2017 Aug 4)
|
||||||
|
- seoul256 - Christian Brabandt (2017 Aug 3)
|
||||||
|
- gruvbox - Christian Brabandt (2017 Aug 3) (simplified version from
|
||||||
|
Lifepillar, 2018 Jan 22, #2573)
|
||||||
|
- janah - Marco Hinz (2017 Aug 4)
|
||||||
|
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
|
||||||
|
Suggested by Hiroki Kokubun:
|
||||||
|
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
|
||||||
|
- [hybrid](https://github.com/w0ng/vim-hybrid)
|
||||||
|
Include solarized color scheme?, it does not support termguicolors.
|
||||||
|
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
|
||||||
|
|
||||||
Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
|
Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
|
||||||
|
|
||||||
Creating a partial with an autoload function is confused about the "self"
|
Creating a partial with an autoload function is confused about the "self"
|
||||||
@@ -349,10 +334,6 @@ stack trace. (Yggdroot, 2017 Jul 28, #1887)
|
|||||||
Profile of a dict function is lost when the dict is deleted. Would it be
|
Profile of a dict function is lost when the dict is deleted. Would it be
|
||||||
possible to collect this? (Daniel Hahler, #2350)
|
possible to collect this? (Daniel Hahler, #2350)
|
||||||
|
|
||||||
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 `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
|
Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
|
||||||
#2322) Now in #2327?
|
#2322) Now in #2327?
|
||||||
|
|
||||||
@@ -430,7 +411,7 @@ Perhaps simpler: actually delete the mappings. Use maplist() to list matching
|
|||||||
mappings (with a lhs prefix, like maparg()), mapdelete() to delete,
|
mappings (with a lhs prefix, like maparg()), mapdelete() to delete,
|
||||||
maprestore() to restore (using the output of maplist()).
|
maprestore() to restore (using the output of maplist()).
|
||||||
|
|
||||||
Add an argument to :mkvimrc (or add aother command) to skip mappings from
|
Add an argument to :mkvimrc (or add another command) to skip mappings from
|
||||||
plugins (source is a Vim script). No need to put these in a .vimrc, they will
|
plugins (source is a Vim script). No need to put these in a .vimrc, they will
|
||||||
be defined when the plugin is loaded.
|
be defined when the plugin is loaded.
|
||||||
|
|
||||||
@@ -616,6 +597,80 @@ no longer support.
|
|||||||
sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
|
sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
|
||||||
4#1038)
|
4#1038)
|
||||||
|
|
||||||
|
+channel:
|
||||||
|
- Add a separate timeout for opening a socket. Currently it's fixed at 50
|
||||||
|
msec, which is too small for a remote connection. (tverniquet, #2130)
|
||||||
|
- Try out background make plugin:
|
||||||
|
https://github.com/AndrewVos/vim-make-background
|
||||||
|
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
|
||||||
|
- Writing raw mode to a buffer should still handle NL characters as line
|
||||||
|
breaks. (Dmitry Zotikov, 2017 Aug 16)
|
||||||
|
- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
|
||||||
|
2016 Dec 11, #1320)
|
||||||
|
- Implement |job-term| ?
|
||||||
|
- Channel test fails with Motif. Sometimes kills the X11 server.
|
||||||
|
- When a message in the queue but there is no callback, drop it after a while?
|
||||||
|
Add timestamp to queued messages and callbacks with ID, remove after a
|
||||||
|
minute. Option to set the droptime.
|
||||||
|
- Add an option to drop text of very long lines? Default to 1 Mbyte.
|
||||||
|
- Add remark about undo sync, is there a way to force it?
|
||||||
|
- When starting a job, have an option to open the server socket, so we know
|
||||||
|
the port, and pass it to the command with --socket-fd {nr}. (Olaf Dabrunz,
|
||||||
|
Feb 9) How to do this on MS-Windows?
|
||||||
|
- For connection to server, a "keep open" flag would be useful. Retry
|
||||||
|
connecting in the main loop with zero timeout.
|
||||||
|
- job_start(): run job in a newly opened terminal (not a terminal window).
|
||||||
|
With xterm could use -S{pty}.
|
||||||
|
Although user could use "xterm -e 'cmd arg'".
|
||||||
|
|
||||||
|
Regexp problems:
|
||||||
|
- When search pattern has the base character both with and without combining
|
||||||
|
character, search fails. E.g. "รรีบ" in "การรีบรักใคร". (agguser, #2312)
|
||||||
|
- [:space:] only matches ASCII spaces. Add [:white:] for all space-like
|
||||||
|
characters, esp. including 0xa0. Use character class zero.
|
||||||
|
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
|
||||||
|
(Manuel Ortega, 2016 Apr 24)
|
||||||
|
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
|
||||||
|
LC_CTYPE
|
||||||
|
- The old engine does not find a match for "/\%#=1\(\)\{80}", the new engine
|
||||||
|
matches everywhere.
|
||||||
|
- Using win_linetabsize() can still be slow. Cache the result, store col and
|
||||||
|
vcol. Reset them when moving to another line.
|
||||||
|
- Very slow with a long line and Ruby highlighting. (John Whitley, 2014 Dec 4)
|
||||||
|
- Bug with pattern: '\vblock (\d+)\.\n.*\d+%(\1)@<!\.$'
|
||||||
|
(Lech Lorens, 2014 Feb 3)
|
||||||
|
- Issue 164: freeze on regexp search.
|
||||||
|
- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
|
||||||
|
2013 Dec 11)
|
||||||
|
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin
|
||||||
|
Szamotulski; Remark from Brett 2014 Jan 6 and 7.
|
||||||
|
- NFA regexp doesn't handle \%<v correctly. (Ingo Karkat, 2014 May 12)
|
||||||
|
- Does not work with NFA regexp engine:
|
||||||
|
\%u, \%x, \%o, \%d followed by a composing character
|
||||||
|
- Search for \%d0\+ may fail with E363. (Christian Brabandt, 2016 Oct 4)
|
||||||
|
- \%'[ does not work. '%'] does work. (Masaaki Nakamura, 2016 Apr 4)
|
||||||
|
- Bug relating to back references. (Ingo Karkat, 2014 Jul 24)
|
||||||
|
- New RE does not give an error for empty group: "\(\)\{2}" (Dominique Pelle,
|
||||||
|
2015 Feb 7)
|
||||||
|
- Using back reference before the capturing group sometimes works with the old
|
||||||
|
engine, can we do this with the new engine? E.g. with
|
||||||
|
"/\%(<\1>\)\@<=.*\%(<\/\(\w\+\)>\)\@=" matching text inside HTML tags.
|
||||||
|
This problem is probably the same: "\%(^\1.*$\n\)\@<=\(\d\+\).*$".
|
||||||
|
(guotuofeng, 2015 Jun 22)
|
||||||
|
- Strange matching with "\(Hello\n\)\@<=A". (Anas Syed, 2015 Feb 12)
|
||||||
|
- Problem with \v(A)@<=b+\1c. (Issue 334)
|
||||||
|
- Diff highlighting can be very slow. (Issue 309)
|
||||||
|
- Using %> for a virtual column has a check based on 'tabsize'. Better would
|
||||||
|
be to cache the result of win_linetabsize(col), storing both col and vcol,
|
||||||
|
and use them to decide whether win_linetabsize() needs to be called. Reset
|
||||||
|
col and vcol when moving to another line.
|
||||||
|
- this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving
|
||||||
|
out the \& works. Seems any column check after \& fails.
|
||||||
|
- Difference between two engines: ".*\zs\/\@>\/" on text "///"
|
||||||
|
(Chris Paul, 2016 Nov 13) New engine not greedy enough?
|
||||||
|
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
|
||||||
|
(2017 May 15, #1252)
|
||||||
|
|
||||||
Patch to add "cmdline" completion to getcompletion(). (Shougo, Oct 1, #1140)
|
Patch to add "cmdline" completion to getcompletion(). (Shougo, Oct 1, #1140)
|
||||||
|
|
||||||
Feature request: Complete members of a dictionary. (Luc Hermitte, 2017 Jan 4,
|
Feature request: Complete members of a dictionary. (Luc Hermitte, 2017 Jan 4,
|
||||||
@@ -699,9 +754,6 @@ Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)
|
|||||||
Have a way to get the call stack, in a function and from an exception.
|
Have a way to get the call stack, in a function and from an exception.
|
||||||
#1125
|
#1125
|
||||||
|
|
||||||
Patch to add 'pythonhome' and 'pythonthreehome' options. (Kazuki Sakamoto,
|
|
||||||
2016 Nov 21, #1266)
|
|
||||||
|
|
||||||
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
|
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
|
||||||
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
|
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
|
||||||
|
|
||||||
@@ -944,9 +996,6 @@ Update Aug 14.
|
|||||||
When using --remote-tab on MS-Windows 'encoding' hasn't been initialized yet,
|
When using --remote-tab on MS-Windows 'encoding' hasn't been initialized yet,
|
||||||
the file name ends up encoded wrong. (Raul Coronado, 2015 Dec 21)
|
the file name ends up encoded wrong. (Raul Coronado, 2015 Dec 21)
|
||||||
|
|
||||||
Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015
|
|
||||||
Sep 10)
|
|
||||||
|
|
||||||
Example in editing.txt uses $HOME with the expectation that it ends in a
|
Example in editing.txt uses $HOME with the expectation that it ends in a
|
||||||
slash. For me it does, but perhaps not for everybody. Add a function that
|
slash. For me it does, but perhaps not for everybody. Add a function that
|
||||||
inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12)
|
inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12)
|
||||||
@@ -993,9 +1042,6 @@ Doesn't work completely (Dominique Orban)
|
|||||||
|
|
||||||
Patch to add a "literal" argument to bufnr(). (Olaf Dabrunz, 2015 Aug 4)
|
Patch to add a "literal" argument to bufnr(). (Olaf Dabrunz, 2015 Aug 4)
|
||||||
|
|
||||||
Cannot execute the shell when it's in a directory with a space.
|
|
||||||
Issue #459.
|
|
||||||
|
|
||||||
When a session file is created and there are "nofile" buffers, these are not
|
When a session file is created and there are "nofile" buffers, these are not
|
||||||
filled. Need to trigger BufReadCmd autocommands. Also handle deleting the
|
filled. Need to trigger BufReadCmd autocommands. Also handle deleting the
|
||||||
initial empty buffer better. (ZyX, 2015 March 8)
|
initial empty buffer better. (ZyX, 2015 March 8)
|
||||||
@@ -1052,8 +1098,6 @@ Patch to open folds for 'incsearch'. (Christian Brabandt, 2015 Jan 6)
|
|||||||
Patch for building a 32bit Vim with 64bit MingW compiler.
|
Patch for building a 32bit Vim with 64bit MingW compiler.
|
||||||
(Michael Soyka, 2014 Oct 15)
|
(Michael Soyka, 2014 Oct 15)
|
||||||
|
|
||||||
Delete old code in os_msdos.c, mch_FullName().
|
|
||||||
|
|
||||||
Patch: On MS-Windows shellescape() may have to triple double quotes.
|
Patch: On MS-Windows shellescape() may have to triple double quotes.
|
||||||
(Ingo Karkat, 2015 Jan 16)
|
(Ingo Karkat, 2015 Jan 16)
|
||||||
|
|
||||||
@@ -1910,8 +1954,6 @@ Haskell, 2010 Aug 24)
|
|||||||
|
|
||||||
This does not work yet: "a\(%C\)" (get composing characters into a submatch).
|
This does not work yet: "a\(%C\)" (get composing characters into a submatch).
|
||||||
|
|
||||||
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
|
|
||||||
|
|
||||||
Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
|
Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
|
||||||
messages, even though locale is not supported. But ":lang messages
|
messages, even though locale is not supported. But ":lang messages
|
||||||
es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
|
es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
|
||||||
@@ -4498,8 +4540,6 @@ Autocommands:
|
|||||||
Error - When an error happens
|
Error - When an error happens
|
||||||
NormalEnter - Entering Normal mode
|
NormalEnter - Entering Normal mode
|
||||||
ReplaceEnter - Entering Replace mode
|
ReplaceEnter - Entering Replace mode
|
||||||
CmdEnter - Entering Cmdline mode (with type of cmdline to allow
|
|
||||||
different mapping)
|
|
||||||
VisualEnter - Entering Visual mode
|
VisualEnter - Entering Visual mode
|
||||||
*Leave - Leaving a mode (in pair with the above *Enter)
|
*Leave - Leaving a mode (in pair with the above *Enter)
|
||||||
VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
|
VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*usr_05.txt* For Vim version 8.0. Last change: 2016 Mar 28
|
*usr_05.txt* For Vim version 8.0. Last change: 2018 Feb 20
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -48,6 +48,14 @@ For MS-DOS and MS-Windows you can use one of these:
|
|||||||
$HOME/_vimrc ~
|
$HOME/_vimrc ~
|
||||||
$VIM/_vimrc ~
|
$VIM/_vimrc ~
|
||||||
|
|
||||||
|
If you are creating the vimrc file for the first time, it is recommended to
|
||||||
|
put this line at the top: >
|
||||||
|
|
||||||
|
source $VIMRUNTIME/defaults.vim
|
||||||
|
|
||||||
|
This initializes Vim for new users (as opposed to traditional Vi users). See
|
||||||
|
|defaults.vim| for the details.
|
||||||
|
|
||||||
The vimrc file can contain all the commands that you type after a colon. The
|
The vimrc file can contain all the commands that you type after a colon. The
|
||||||
most simple ones are for setting options. For example, if you want Vim to
|
most simple ones are for setting options. For example, if you want Vim to
|
||||||
always start with the 'incsearch' option on, add this line your vimrc file: >
|
always start with the 'incsearch' option on, add this line your vimrc file: >
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*usr_27.txt* For Vim version 8.0. Last change: 2010 Mar 28
|
*usr_27.txt* For Vim version 8.0. Last change: 2018 Jan 26
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -225,9 +225,9 @@ specify a line offset, this can cause trouble. For example: >
|
|||||||
/const/-2
|
/const/-2
|
||||||
|
|
||||||
This finds the next word "const" and then moves two lines up. If you
|
This finds the next word "const" and then moves two lines up. If you
|
||||||
use "n" to search again, Vim could start at the current position and find the same
|
use "n" to search again, Vim could start at the current position and find the
|
||||||
"const" match. Then using the offset again, you would be back where you started.
|
same "const" match. Then using the offset again, you would be back where you
|
||||||
You would be stuck!
|
started. You would be stuck!
|
||||||
It could be worse: Suppose there is another match with "const" in the next
|
It could be worse: Suppose there is another match with "const" in the next
|
||||||
line. Then repeating the forward search would find this match and move two
|
line. Then repeating the forward search would find this match and move two
|
||||||
lines up. Thus you would actually move the cursor back!
|
lines up. Thus you would actually move the cursor back!
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*usr_41.txt* For Vim version 8.0. Last change: 2017 Dec 02
|
*usr_41.txt* For Vim version 8.0. Last change: 2018 Feb 13
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -807,6 +807,8 @@ Buffers, windows and the argument list:
|
|||||||
getbufinfo() get a list with buffer information
|
getbufinfo() get a list with buffer information
|
||||||
gettabinfo() get a list with tab page information
|
gettabinfo() get a list with tab page information
|
||||||
getwininfo() get a list with window information
|
getwininfo() get a list with window information
|
||||||
|
getchangelist() get a list of change list entries
|
||||||
|
getjumplist() get a list of jump list entries
|
||||||
|
|
||||||
Command line: *command-line-functions*
|
Command line: *command-line-functions*
|
||||||
getcmdline() get the current command line
|
getcmdline() get the current command line
|
||||||
@@ -922,7 +924,8 @@ Testing: *test-functions*
|
|||||||
assert_false() assert that an expression is false
|
assert_false() assert that an expression is false
|
||||||
assert_true() assert that an expression is true
|
assert_true() assert that an expression is true
|
||||||
assert_exception() assert that a command throws an exception
|
assert_exception() assert that a command throws an exception
|
||||||
assert_fails() assert that a function call fails
|
assert_beeps() assert that a command beeps
|
||||||
|
assert_fails() assert that a command fails
|
||||||
assert_report() report a test failure
|
assert_report() report a test failure
|
||||||
test_alloc_fail() make memory allocation fail
|
test_alloc_fail() make memory allocation fail
|
||||||
test_autochdir() enable 'autochdir' during startup
|
test_autochdir() enable 'autochdir' during startup
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*various.txt* For Vim version 8.0. Last change: 2017 Nov 18
|
*various.txt* For Vim version 8.0. Last change: 2018 Feb 27
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -40,23 +40,35 @@ CTRL-L Clear and redraw the screen. The redraw may happen
|
|||||||
|
|
||||||
:as[cii] or *ga* *:as* *:ascii*
|
:as[cii] or *ga* *:as* *:ascii*
|
||||||
ga Print the ascii value of the character under the
|
ga Print the ascii value of the character under the
|
||||||
cursor in decimal, hexadecimal and octal. For
|
cursor in decimal, hexadecimal and octal.
|
||||||
example, when the cursor is on a 'R':
|
Mnemonic: Get Ascii value.
|
||||||
|
|
||||||
|
For example, when the cursor is on a 'R':
|
||||||
<R> 82, Hex 52, Octal 122 ~
|
<R> 82, Hex 52, Octal 122 ~
|
||||||
When the character is a non-standard ASCII character,
|
When the character is a non-standard ASCII character,
|
||||||
but printable according to the 'isprint' option, the
|
but printable according to the 'isprint' option, the
|
||||||
non-printable version is also given. When the
|
non-printable version is also given.
|
||||||
character is larger than 127, the <M-x> form is also
|
|
||||||
printed. For example:
|
When the character is larger than 127, the <M-x> form
|
||||||
|
is also printed. For example:
|
||||||
<~A> <M-^A> 129, Hex 81, Octal 201 ~
|
<~A> <M-^A> 129, Hex 81, Octal 201 ~
|
||||||
<p> <|~> <M-~> 254, Hex fe, Octal 376 ~
|
<p> <|~> <M-~> 254, Hex fe, Octal 376 ~
|
||||||
(where <p> is a special character)
|
(where <p> is a special character)
|
||||||
|
|
||||||
The <Nul> character in a file is stored internally as
|
The <Nul> character in a file is stored internally as
|
||||||
<NL>, but it will be shown as:
|
<NL>, but it will be shown as:
|
||||||
<^@> 0, Hex 00, Octal 000 ~
|
<^@> 0, Hex 00, Octal 000 ~
|
||||||
|
|
||||||
If the character has composing characters these are
|
If the character has composing characters these are
|
||||||
also shown. The value of 'maxcombine' doesn't matter.
|
also shown. The value of 'maxcombine' doesn't matter.
|
||||||
Mnemonic: Get Ascii value. {not in Vi}
|
|
||||||
|
If the character can be inserted as a digraph, also
|
||||||
|
output the two characters that can be used to create
|
||||||
|
the character:
|
||||||
|
<ö> 246, Hex 00f6, Oct 366, Digr o: ~
|
||||||
|
This shows you can type CTRL-K o : to insert ö.
|
||||||
|
|
||||||
|
{not in Vi}
|
||||||
|
|
||||||
*g8*
|
*g8*
|
||||||
g8 Print the hex values of the bytes used in the
|
g8 Print the hex values of the bytes used in the
|
||||||
@@ -449,6 +461,7 @@ N *+virtualedit* |'virtualedit'|
|
|||||||
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
|
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
|
||||||
N *+visualextra* extra Visual mode commands |blockwise-operators|
|
N *+visualextra* extra Visual mode commands |blockwise-operators|
|
||||||
N *+vreplace* |gR| and |gr|
|
N *+vreplace* |gR| and |gr|
|
||||||
|
*+vtp* on MS-Windows console: support for 'termguicolors'
|
||||||
N *+wildignore* |'wildignore'|
|
N *+wildignore* |'wildignore'|
|
||||||
N *+wildmenu* |'wildmenu'|
|
N *+wildmenu* |'wildmenu'|
|
||||||
*+windows* more than one window; Always enabled since 8.0.1118.
|
*+windows* more than one window; Always enabled since 8.0.1118.
|
||||||
|
|||||||
@@ -711,7 +711,6 @@ can also get to them with the buffer list commands, like ":bnext".
|
|||||||
When using the |:tab| modifier each argument is opened in a
|
When using the |:tab| modifier each argument is opened in a
|
||||||
tab page. The last window is used if it's empty.
|
tab page. The last window is used if it's empty.
|
||||||
Also see |++opt| and |+cmd|.
|
Also see |++opt| and |+cmd|.
|
||||||
{only available when compiled with a GUI}
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
8. Do a command in all buffers or windows *list-repeat*
|
8. Do a command in all buffers or windows *list-repeat*
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim support file to detect file types
|
" Vim support file to detect file types
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2017 Nov 23
|
" Last Change: 2018 Jan 28
|
||||||
|
|
||||||
" Listen very carefully, I will say this only once
|
" Listen very carefully, I will say this only once
|
||||||
if exists("did_load_filetypes")
|
if exists("did_load_filetypes")
|
||||||
@@ -239,6 +239,7 @@ endif
|
|||||||
|
|
||||||
" C or lpc
|
" C or lpc
|
||||||
au BufNewFile,BufRead *.c call dist#ft#FTlpc()
|
au BufNewFile,BufRead *.c call dist#ft#FTlpc()
|
||||||
|
au BufNewFile,BufRead *.lpc,*.ulpc setf lpc
|
||||||
|
|
||||||
" Calendar
|
" Calendar
|
||||||
au BufNewFile,BufRead calendar setf calendar
|
au BufNewFile,BufRead calendar setf calendar
|
||||||
@@ -378,7 +379,7 @@ au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf
|
|||||||
au BufNewFile,BufRead configure.in,configure.ac setf config
|
au BufNewFile,BufRead configure.in,configure.ac setf config
|
||||||
|
|
||||||
" CUDA Cumpute Unified Device Architecture
|
" CUDA Cumpute Unified Device Architecture
|
||||||
au BufNewFile,BufRead *.cu setf cuda
|
au BufNewFile,BufRead *.cu,*.cuh setf cuda
|
||||||
|
|
||||||
" Dockerfile
|
" Dockerfile
|
||||||
au BufNewFile,BufRead Dockerfile,*.Dockerfile setf dockerfile
|
au BufNewFile,BufRead Dockerfile,*.Dockerfile setf dockerfile
|
||||||
@@ -1152,8 +1153,9 @@ au BufNewFile,BufRead *.pod6 setf pod6
|
|||||||
" Also .ctp for Cake template file
|
" Also .ctp for Cake template file
|
||||||
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php
|
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php
|
||||||
|
|
||||||
" Pike
|
" Pike and Cmod
|
||||||
au BufNewFile,BufRead *.pike,*.lpc,*.ulpc,*.pmod setf pike
|
au BufNewFile,BufRead *.pike,*.pmod setf pike
|
||||||
|
au BufNewFile,BufRead *.cmod setf cmod
|
||||||
|
|
||||||
" Pinfo config
|
" Pinfo config
|
||||||
au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo
|
au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo
|
||||||
|
|||||||
51
runtime/ftplugin/chicken.vim
Normal file
51
runtime/ftplugin/chicken.vim
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
" CHICKEN-specific Vim customizations
|
||||||
|
" Last Change: 2018-01-06
|
||||||
|
" Author: Evan Hanson <evhan@foldling.org>
|
||||||
|
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||||
|
" URL: https://foldling.org/vim/ftplugin/chicken.vim
|
||||||
|
" Notes: These are supplemental settings, to be loaded after the core
|
||||||
|
" Scheme ftplugin file (ftplugin/scheme.vim). Enable it by setting
|
||||||
|
" b:is_chicken=1 and filetype=scheme.
|
||||||
|
|
||||||
|
if !exists('b:did_scheme_ftplugin')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
setl keywordprg=chicken-doc
|
||||||
|
|
||||||
|
setl lispwords+=and-let*
|
||||||
|
setl lispwords+=begin-for-syntax
|
||||||
|
setl lispwords+=compiler-typecase
|
||||||
|
setl lispwords+=condition-case
|
||||||
|
setl lispwords+=define-compiler-syntax
|
||||||
|
setl lispwords+=define-constant
|
||||||
|
setl lispwords+=define-external
|
||||||
|
setl lispwords+=define-for-syntax
|
||||||
|
setl lispwords+=define-inline
|
||||||
|
setl lispwords+=define-record
|
||||||
|
setl lispwords+=define-record-printer
|
||||||
|
setl lispwords+=define-specialization
|
||||||
|
setl lispwords+=define-syntax-rule
|
||||||
|
setl lispwords+=eval-when
|
||||||
|
setl lispwords+=fluid-let
|
||||||
|
setl lispwords+=handle-exceptions
|
||||||
|
setl lispwords+=let-compiler-syntax
|
||||||
|
setl lispwords+=let-optionals
|
||||||
|
setl lispwords+=let-optionals*
|
||||||
|
setl lispwords+=letrec-values
|
||||||
|
setl lispwords+=match
|
||||||
|
setl lispwords+=match-lambda
|
||||||
|
setl lispwords+=match-lambda*
|
||||||
|
setl lispwords+=match-let
|
||||||
|
setl lispwords+=match-let*
|
||||||
|
setl lispwords+=module
|
||||||
|
setl lispwords+=receive
|
||||||
|
setl lispwords+=select
|
||||||
|
setl lispwords+=set!-values
|
||||||
|
|
||||||
|
let b:undo_ftplugin = b:undo_ftplugin . ' keywordprg<'
|
||||||
|
|
||||||
|
if exists('g:loaded_matchit') && !exists('b:match_words')
|
||||||
|
let b:match_words = '#>:<#'
|
||||||
|
let b:undo_ftplugin = b:undo_ftplugin . ' | unlet! b:match_words'
|
||||||
|
endif
|
||||||
16
runtime/ftplugin/cmake.vim
Normal file
16
runtime/ftplugin/cmake.vim
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
" Vim filetype plugin
|
||||||
|
" Language: CMake
|
||||||
|
" Maintainer: Keith Smiley <keithbsmiley@gmail.com>
|
||||||
|
" Last Change: 2017 Dec 24
|
||||||
|
|
||||||
|
" Only do this when not done yet for this buffer
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Don't load another plugin for this buffer
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
let b:undo_ftplugin = "setl commentstring<"
|
||||||
|
|
||||||
|
setlocal commentstring=#\ %s
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
" Vim filetype plugin file (GUI menu, folding and completion)
|
" Vim filetype plugin file (GUI menu, folding and completion)
|
||||||
" Language: Debian Changelog
|
" Language: Debian Changelog
|
||||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
" Maintainer: Debian Vim Maintainers
|
||||||
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
|
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
|
||||||
" Stefano Zacchiroli <zack@debian.org>
|
" Stefano Zacchiroli <zack@debian.org>
|
||||||
" Last Change: 2014-01-31
|
" Last Change: 2018-01-06
|
||||||
" License: Vim License
|
" License: Vim License
|
||||||
" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim
|
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim
|
||||||
|
|
||||||
" Bug completion requires apt-listbugs installed for Debian packages or
|
" Bug completion requires apt-listbugs installed for Debian packages or
|
||||||
" python-launchpadlib installed for Ubuntu packages
|
" python-launchpadlib installed for Ubuntu packages
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
" Vim filetype plugin file (GUI menu and folding)
|
" Vim filetype plugin file (GUI menu and folding)
|
||||||
" Language: Debian control files
|
" Language: Debian control files
|
||||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
" Maintainer: Debian Vim Maintainers
|
||||||
" Former Maintainer: Pierre Habouzit <madcoder@debian.org>
|
" Former Maintainer: Pierre Habouzit <madcoder@debian.org>
|
||||||
" Last Change: 2008-03-08
|
" Last Change: 2018-01-06
|
||||||
" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/ftplugin/debcontrol.vim
|
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debcontrol.vim
|
||||||
|
|
||||||
" Do these settings once per buffer
|
" Do these settings once per buffer
|
||||||
if exists("b:did_ftplugin")
|
if exists("b:did_ftplugin")
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim filetype plugin file
|
" Vim filetype plugin file
|
||||||
" Language: man
|
" Language: man
|
||||||
" Maintainer: SungHyun Nam <goweol@gmail.com>
|
" Maintainer: SungHyun Nam <goweol@gmail.com>
|
||||||
" Last Change: 2017 Nov 11
|
" Last Change: 2018 Jan 15
|
||||||
|
|
||||||
" To make the ":Man" command available before editing a manual page, source
|
" To make the ":Man" command available before editing a manual page, source
|
||||||
" this script from your startup vimrc file.
|
" this script from your startup vimrc file.
|
||||||
@@ -39,7 +39,7 @@ if &filetype == "man"
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if exists(":Man") != 2
|
if exists(":Man") != 2
|
||||||
com -nargs=+ Man call s:GetPage(<f-args>)
|
com -nargs=+ -complete=shellcmd Man call s:GetPage(<f-args>)
|
||||||
nmap <Leader>K :call <SID>PreGetPage(0)<CR>
|
nmap <Leader>K :call <SID>PreGetPage(0)<CR>
|
||||||
nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR>
|
nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR>
|
||||||
endif
|
endif
|
||||||
@@ -173,7 +173,15 @@ func <SID>GetPage(...)
|
|||||||
|
|
||||||
" Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[
|
" Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[
|
||||||
" on a man page reference by unsetting MANPAGER.
|
" on a man page reference by unsetting MANPAGER.
|
||||||
silent exec "r !env -u MANPAGER man ".s:GetCmdArg(sect, page)." | col -b"
|
" Some versions of env(1) do not support the '-u' option, and in such case
|
||||||
|
" we set MANPAGER=cat.
|
||||||
|
if !exists('s:env_has_u')
|
||||||
|
call system('env -u x true')
|
||||||
|
let s:env_has_u = (v:shell_error == 0)
|
||||||
|
endif
|
||||||
|
let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat'
|
||||||
|
let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b'
|
||||||
|
silent exec "r !" . man_cmd
|
||||||
|
|
||||||
if unsetwidth
|
if unsetwidth
|
||||||
let $MANWIDTH = ''
|
let $MANWIDTH = ''
|
||||||
|
|||||||
@@ -1,22 +1,43 @@
|
|||||||
" Vim ftplugin file
|
" Vim ftplugin file
|
||||||
" Language: NSIS script
|
" Language: NSIS script
|
||||||
|
" Maintainer: Ken Takata
|
||||||
|
" URL: https://github.com/k-takata/vim-nsis
|
||||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||||
" Latest Revision: 2008-07-09
|
" Last Change: 2018-01-26
|
||||||
|
|
||||||
let s:cpo_save = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
if exists("b:did_ftplugin")
|
if exists("b:did_ftplugin")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
let b:did_ftplugin = 1
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
|
let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
|
||||||
|
\ " | unlet! b:match_ignorecase b:match_words"
|
||||||
|
|
||||||
setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
|
setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
|
||||||
setlocal formatoptions-=t formatoptions+=croql
|
setlocal formatoptions-=t formatoptions+=croql
|
||||||
setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\=
|
setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\=
|
||||||
setlocal include=^\\s*!include\\%(/NONFATAL\\)\\=
|
setlocal include=^\\s*!include\\%(/NONFATAL\\)\\=
|
||||||
|
|
||||||
|
if exists("loaded_matchit")
|
||||||
|
let b:match_ignorecase = 1
|
||||||
|
let b:match_words =
|
||||||
|
\ '\${\%(If\|IfNot\|Unless\)}:\${\%(Else\|ElseIf\|ElseIfNot\|ElseUnless\)}:\${\%(EndIf\|EndUnless\)},' .
|
||||||
|
\ '\${Select}:\${EndSelect},' .
|
||||||
|
\ '\${Switch}:\${EndSwitch},' .
|
||||||
|
\ '\${\%(Do\|DoWhile\|DoUntil\)}:\${\%(Loop\|LoopWhile\|LoopUntil\)},' .
|
||||||
|
\ '\${\%(For\|ForEach\)}:\${Next},' .
|
||||||
|
\ '\<Function\>:\<FunctionEnd\>,' .
|
||||||
|
\ '\<Section\>:\<SectionEnd\>,' .
|
||||||
|
\ '\<SectionGroup\>:\<SectionGroupEnd\>,' .
|
||||||
|
\ '\<PageEx\>:\<PageExEnd\>,' .
|
||||||
|
\ '\${MementoSection}:\${MementoSectionEnd},' .
|
||||||
|
\ '!if\%(\%(macro\)\?n\?def\)\?\>:!else\>:!endif\>,' .
|
||||||
|
\ '!macro\>:!macroend\>'
|
||||||
|
endif
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: Tom Picton <tom@tompicton.co.uk>
|
" Maintainer: Tom Picton <tom@tompicton.co.uk>
|
||||||
" Previous Maintainer: James Sully <sullyj3@gmail.com>
|
" Previous Maintainer: James Sully <sullyj3@gmail.com>
|
||||||
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
|
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||||
" Last Change: Thur, 09 November 2017
|
" Last Change: Wed, 20 December 2017
|
||||||
" https://github.com/tpict/vim-ftplugin-python
|
" https://github.com/tpict/vim-ftplugin-python
|
||||||
|
|
||||||
if exists("b:did_ftplugin") | finish | endif
|
if exists("b:did_ftplugin") | finish | endif
|
||||||
@@ -20,6 +20,9 @@ setlocal comments=b:#,fb:-
|
|||||||
setlocal commentstring=#\ %s
|
setlocal commentstring=#\ %s
|
||||||
|
|
||||||
setlocal omnifunc=pythoncomplete#Complete
|
setlocal omnifunc=pythoncomplete#Complete
|
||||||
|
if has('python3')
|
||||||
|
setlocal omnifunc=python3complete#Complete
|
||||||
|
endif
|
||||||
|
|
||||||
set wildignore+=*.pyc
|
set wildignore+=*.pyc
|
||||||
|
|
||||||
|
|||||||
@@ -1,45 +1,62 @@
|
|||||||
" Vim filetype plugin
|
" Vim filetype plugin file
|
||||||
" Language: Scheme
|
" Language: Scheme (R7RS)
|
||||||
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
" Last Change: 2018-01-20
|
||||||
" URL: http://sites.google.com/site/khorser/opensource/vim
|
" Author: Evan Hanson <evhan@foldling.org>
|
||||||
" Original author: Dorai Sitaram <ds26@gte.com>
|
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||||
" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
|
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||||
" Last Change: Oct 23, 2013
|
" URL: https://foldling.org/vim/ftplugin/scheme.vim
|
||||||
|
|
||||||
" Only do this when not done yet for this buffer
|
if exists('b:did_ftplugin')
|
||||||
if exists("b:did_ftplugin")
|
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Don't load another plugin for this buffer
|
let s:cpo = &cpo
|
||||||
let b:did_ftplugin = 1
|
set cpo&vim
|
||||||
|
|
||||||
" Copy-paste from ftplugin/lisp.vim
|
|
||||||
setl comments=:;
|
|
||||||
setl define=^\\s*(def\\k*
|
|
||||||
setl formatoptions-=t
|
|
||||||
setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
|
|
||||||
setl lisp
|
setl lisp
|
||||||
|
setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,ex:\|#
|
||||||
setl commentstring=;%s
|
setl commentstring=;%s
|
||||||
|
setl define=^\\s*(def\\k*
|
||||||
|
setl iskeyword=33,35-39,42-43,45-58,60-90,94,95,97-122,126
|
||||||
|
|
||||||
setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
|
let b:undo_ftplugin = 'setl lisp< comments< commentstring< define< iskeyword<'
|
||||||
|
|
||||||
" Scheme-specific settings
|
setl lispwords=begin
|
||||||
if exists("b:is_mzscheme") || exists("is_mzscheme")
|
setl lispwords+=case
|
||||||
" improve indenting
|
setl lispwords+=case-lambda
|
||||||
setl iskeyword+=#,%,^
|
setl lispwords+=cond
|
||||||
setl lispwords+=module,parameterize,let-values,let*-values,letrec-values
|
setl lispwords+=cond-expand
|
||||||
setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
|
setl lispwords+=define
|
||||||
setl lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig
|
setl lispwords+=define-record-type
|
||||||
|
setl lispwords+=define-syntax
|
||||||
|
setl lispwords+=define-values
|
||||||
|
setl lispwords+=do
|
||||||
|
setl lispwords+=guard
|
||||||
|
setl lispwords+=import
|
||||||
|
setl lispwords+=lambda
|
||||||
|
setl lispwords+=let
|
||||||
|
setl lispwords+=let*
|
||||||
|
setl lispwords+=let*-values
|
||||||
|
setl lispwords+=let-syntax
|
||||||
|
setl lispwords+=let-values
|
||||||
|
setl lispwords+=letrec
|
||||||
|
setl lispwords+=letrec*
|
||||||
|
setl lispwords+=letrec-syntax
|
||||||
|
setl lispwords+=parameterize
|
||||||
|
setl lispwords+=set!
|
||||||
|
setl lispwords+=syntax-rules
|
||||||
|
setl lispwords+=unless
|
||||||
|
setl lispwords+=when
|
||||||
|
|
||||||
|
let b:undo_ftplugin = b:undo_ftplugin . ' lispwords<'
|
||||||
|
|
||||||
|
let b:did_scheme_ftplugin = 1
|
||||||
|
|
||||||
|
if exists('b:is_chicken') || exists('g:is_chicken')
|
||||||
|
exe 'ru! ftplugin/chicken.vim'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists("b:is_chicken") || exists("is_chicken")
|
unlet b:did_scheme_ftplugin
|
||||||
" improve indenting
|
let b:did_ftplugin = 1
|
||||||
setl iskeyword+=#,%,^
|
let &cpo = s:cpo
|
||||||
setl lispwords+=let-optionals,let-optionals*,declare
|
unlet s:cpo
|
||||||
setl lispwords+=let-values,let*-values,letrec-values
|
|
||||||
setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
|
|
||||||
setl lispwords+=cond-expand,and-let*,foreign-lambda,foreign-lambda*
|
|
||||||
endif
|
|
||||||
|
|
||||||
let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lispwords< lisp< commentstring<"
|
|
||||||
|
|||||||
91
runtime/indent/nsis.vim
Normal file
91
runtime/indent/nsis.vim
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
" Vim indent file
|
||||||
|
" Language: NSIS script
|
||||||
|
" Maintainer: Ken Takata
|
||||||
|
" URL: https://github.com/k-takata/vim-nsis
|
||||||
|
" Last Change: 2018-01-21
|
||||||
|
" Filenames: *.nsi
|
||||||
|
" License: VIM License
|
||||||
|
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
setlocal nosmartindent
|
||||||
|
setlocal noautoindent
|
||||||
|
setlocal indentexpr=GetNsisIndent(v:lnum)
|
||||||
|
setlocal indentkeys=!^F,o,O
|
||||||
|
setlocal indentkeys+==~${Else,=~${EndIf,=~${EndUnless,=~${AndIf,=~${AndUnless,=~${OrIf,=~${OrUnless,=~${Case,=~${Default,=~${EndSelect,=~${EndSwith,=~${Loop,=~${Next,=~${MementoSectionEnd,=~FunctionEnd,=~SectionEnd,=~SectionGroupEnd,=~PageExEnd,0=~!macroend,0=~!if,0=~!else,0=~!endif
|
||||||
|
|
||||||
|
if exists("*GetNsisIndent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
function! GetNsisIndent(lnum)
|
||||||
|
" If this line is explicitly joined: If the previous line was also joined,
|
||||||
|
" line it up with that one, otherwise add two 'shiftwidth'
|
||||||
|
if getline(a:lnum - 1) =~ '\\$'
|
||||||
|
if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
|
||||||
|
return indent(a:lnum - 1)
|
||||||
|
endif
|
||||||
|
return indent(a:lnum - 1) + shiftwidth() * 2
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Grab the current line, stripping comments.
|
||||||
|
let l:thisl = substitute(getline(a:lnum), '[;#].*$', '', '')
|
||||||
|
" Check if this line is a conditional preprocessor line.
|
||||||
|
let l:preproc = l:thisl =~? '^\s*!\%(if\|else\|endif\)'
|
||||||
|
|
||||||
|
" Grab the previous line, stripping comments.
|
||||||
|
" Skip preprocessor lines and continued lines.
|
||||||
|
let l:prevlnum = a:lnum
|
||||||
|
while 1
|
||||||
|
let l:prevlnum = prevnonblank(l:prevlnum - 1)
|
||||||
|
if l:prevlnum == 0
|
||||||
|
" top of file
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
let l:prevl = substitute(getline(l:prevlnum), '[;#].*$', '', '')
|
||||||
|
let l:prevpreproc = l:prevl =~? '^\s*!\%(if\|else\|endif\)'
|
||||||
|
if l:preproc == l:prevpreproc && getline(l:prevlnum - 1) !~? '\\$'
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
let l:previ = indent(l:prevlnum)
|
||||||
|
let l:ind = l:previ
|
||||||
|
|
||||||
|
if l:preproc
|
||||||
|
" conditional preprocessor
|
||||||
|
if l:prevl =~? '^\s*!\%(if\%(\%(macro\)\?n\?def\)\?\|else\)\>'
|
||||||
|
let l:ind += shiftwidth()
|
||||||
|
endif
|
||||||
|
if l:thisl =~? '^\s*!\%(else\|endif\)\?\>'
|
||||||
|
let l:ind -= shiftwidth()
|
||||||
|
endif
|
||||||
|
return l:ind
|
||||||
|
endif
|
||||||
|
|
||||||
|
if l:prevl =~? '^\s*\%(\${\%(If\|IfNot\|Unless\|ElseIf\|ElseIfNot\|ElseUnless\|Else\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Select\|Case\|Case[2-5]\|CaseElse\|Default\|Switch\|Do\|DoWhile\|DoUntil\|For\|ForEach\|MementoSection\)}\|Function\>\|Section\>\|SectionGroup\|PageEx\>\|!macro\>\)'
|
||||||
|
" previous line opened a block
|
||||||
|
let l:ind += shiftwidth()
|
||||||
|
endif
|
||||||
|
if l:thisl =~? '^\s*\%(\${\%(ElseIf\|ElseIfNot\|ElseUnless\|Else\|EndIf\|EndUnless\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Loop\|LoopWhile\|LoopUntil\|Next\|MementoSectionEnd\)\>}\?\|FunctionEnd\>\|SectionEnd\>\|SectionGroupEnd\|PageExEnd\>\|!macroend\>\)'
|
||||||
|
" this line closed a block
|
||||||
|
let l:ind -= shiftwidth()
|
||||||
|
elseif l:thisl =~? '^\s*\${\%(Case\|Case[2-5]\|CaseElse\|Default\)\>}\?'
|
||||||
|
if l:prevl !~? '^\s*\${\%(Select\|Switch\)}'
|
||||||
|
let l:ind -= shiftwidth()
|
||||||
|
endif
|
||||||
|
elseif l:thisl =~? '^\s*\${\%(EndSelect\|EndSwitch\)\>}\?'
|
||||||
|
" this line closed a block
|
||||||
|
if l:prevl =~? '^\s*\${\%(Select\|Switch\)}'
|
||||||
|
let l:ind -= shiftwidth()
|
||||||
|
else
|
||||||
|
let l:ind -= shiftwidth() * 2
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
return l:ind
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" vim: ts=8 sw=2 sts=2
|
||||||
@@ -1,11 +1,14 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Scheme
|
" Language: Scheme
|
||||||
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
" Last Change: 2018 Jan 31
|
||||||
" Last Change: 2005 Jun 24
|
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||||
|
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||||
|
" URL: https://foldling.org/vim/indent/scheme.vim
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" Use the Lisp indenting
|
||||||
runtime! indent/lisp.vim
|
runtime! indent/lisp.vim
|
||||||
|
|||||||
143
runtime/keymap/oldturkic-orkhon_utf-8.vim
Normal file
143
runtime/keymap/oldturkic-orkhon_utf-8.vim
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
" Maintainer: Oliver Corff <oliver.corff@email.de>
|
||||||
|
" Last Changed: 2018 Feb 12
|
||||||
|
|
||||||
|
scriptencoding utf-8
|
||||||
|
|
||||||
|
" oto = Old Turkic, Orkhon
|
||||||
|
let b:keymap_name = "oto"
|
||||||
|
highlight lCursor guibg=red guifg=NONE
|
||||||
|
|
||||||
|
" map F8 to toggle keymap (Ctrl-^ not present on keyboard)
|
||||||
|
noremap <F8> :let &iminsert = ! &iminsert<CR>
|
||||||
|
lnoremap <F8> <C-^>
|
||||||
|
noremap! <F8> <C-^>
|
||||||
|
|
||||||
|
loadkeymap
|
||||||
|
A 𐰀 10C00 OLD TURKIC LETTER ORKHON A
|
||||||
|
00 𐰀 10C00 OLD TURKIC LETTER ORKHON A
|
||||||
|
I 𐰃 10C03 OLD TURKIC LETTER ORKHON I
|
||||||
|
03 𐰃 10C03 OLD TURKIC LETTER ORKHON I
|
||||||
|
O 𐰆 10C06 OLD TURKIC LETTER ORKHON O
|
||||||
|
U 𐰆 10C06 OLD TURKIC LETTER ORKHON O
|
||||||
|
06 𐰆 10C06 OLD TURKIC LETTER ORKHON O
|
||||||
|
OE 𐰇 10C07 OLD TURKIC LETTER ORKHON OE
|
||||||
|
UE 𐰇 10C07 OLD TURKIC LETTER ORKHON OE
|
||||||
|
07 𐰇 10C07 OLD TURKIC LETTER ORKHON OE
|
||||||
|
ab 𐰉 10C09 OLD TURKIC LETTER ORKHON AB
|
||||||
|
b1 𐰉 10C09 OLD TURKIC LETTER ORKHON AB
|
||||||
|
09 𐰉 10C09 OLD TURKIC LETTER ORKHON AB
|
||||||
|
aeb 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB
|
||||||
|
eb 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB
|
||||||
|
b2 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB
|
||||||
|
0b 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB
|
||||||
|
ag 𐰍 10C0D OLD TURKIC LETTER ORKHON AG
|
||||||
|
g1 𐰍 10C0D OLD TURKIC LETTER ORKHON AG
|
||||||
|
0d 𐰍 10C0D OLD TURKIC LETTER ORKHON AG
|
||||||
|
aeg 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG
|
||||||
|
eg 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG
|
||||||
|
g2 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG
|
||||||
|
0f 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG
|
||||||
|
ad 𐰑 10C11 OLD TURKIC LETTER ORKHON AD
|
||||||
|
d1 𐰑 10C11 OLD TURKIC LETTER ORKHON AD
|
||||||
|
11 𐰑 10C11 OLD TURKIC LETTER ORKHON AD
|
||||||
|
aed 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
|
||||||
|
ed 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
|
||||||
|
d2 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
|
||||||
|
13 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
|
||||||
|
ez 𐰔 10C14 OLD TURKIC LETTER ORKHON EZ
|
||||||
|
z 𐰔 10C14 OLD TURKIC LETTER ORKHON EZ
|
||||||
|
14 𐰔 10C14 OLD TURKIC LETTER ORKHON EZ
|
||||||
|
ay 𐰖 10C16 OLD TURKIC LETTER ORKHON AY
|
||||||
|
y1 𐰖 10C16 OLD TURKIC LETTER ORKHON AY
|
||||||
|
16 𐰖 10C16 OLD TURKIC LETTER ORKHON AY
|
||||||
|
aey 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY
|
||||||
|
ey 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY
|
||||||
|
y2 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY
|
||||||
|
18 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY
|
||||||
|
aek 𐰚 10C1A OLD TURKIC LETTER ORKHON AEK
|
||||||
|
k 𐰚 10C1A OLD TURKIC LETTER ORKHON AEK
|
||||||
|
1a 𐰚 10C1A OLD TURKIC LETTER ORKHON AEK
|
||||||
|
oek 𐰜 10C1C OLD TURKIC LETTER ORKHON OEK
|
||||||
|
q 𐰜 10C1C OLD TURKIC LETTER ORKHON OEK
|
||||||
|
1c 𐰜 10C1C OLD TURKIC LETTER ORKHON OEK
|
||||||
|
al 𐰞 10C1E OLD TURKIC LETTER ORKHON AL
|
||||||
|
l1 𐰞 10C1E OLD TURKIC LETTER ORKHON AL
|
||||||
|
1e 𐰞 10C1E OLD TURKIC LETTER ORKHON AL
|
||||||
|
ael 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
|
||||||
|
el 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
|
||||||
|
l2 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
|
||||||
|
20 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
|
||||||
|
elt 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT
|
||||||
|
lt 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT
|
||||||
|
21 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT
|
||||||
|
em 𐰢 10C22 OLD TURKIC LETTER ORKHON EM
|
||||||
|
m 𐰢 10C22 OLD TURKIC LETTER ORKHON EM
|
||||||
|
22 𐰢 10C22 OLD TURKIC LETTER ORKHON EM
|
||||||
|
an 𐰣 10C23 OLD TURKIC LETTER ORKHON AN
|
||||||
|
n1 𐰣 10C23 OLD TURKIC LETTER ORKHON AN
|
||||||
|
23 𐰣 10C23 OLD TURKIC LETTER ORKHON AN
|
||||||
|
en 𐰤 10C24 OLD TURKIC LETTER ORKHON AEN
|
||||||
|
n2 𐰤 10C24 OLD TURKIC LETTER ORKHON AEN
|
||||||
|
24 𐰤 10C24 OLD TURKIC LETTER ORKHON AEN
|
||||||
|
ent 𐰦 10C26 OLD TURKIC LETTER ORKHON ENT
|
||||||
|
nt 𐰦 10C26 OLD TURKIC LETTER ORKHON ENT
|
||||||
|
26 𐰦 10C26 OLD TURKIC LETTER ORKHON ENT
|
||||||
|
enc 𐰨 10C28 OLD TURKIC LETTER ORKHON ENC
|
||||||
|
nc 𐰨 10C28 OLD TURKIC LETTER ORKHON ENC
|
||||||
|
28 𐰨 10C28 OLD TURKIC LETTER ORKHON ENC
|
||||||
|
eny 𐰪 10C2A OLD TURKIC LETTER ORKHON ENY
|
||||||
|
ny 𐰪 10C2A OLD TURKIC LETTER ORKHON ENY
|
||||||
|
2a 𐰪 10C2A OLD TURKIC LETTER ORKHON ENY
|
||||||
|
eng 𐰭 10C2D OLD TURKIC LETTER ORKHON ENG
|
||||||
|
ng 𐰭 10C2D OLD TURKIC LETTER ORKHON ENG
|
||||||
|
2d 𐰭 10C2D OLD TURKIC LETTER ORKHON ENG
|
||||||
|
ep 𐰯 10C2F OLD TURKIC LETTER ORKHON EP
|
||||||
|
p 𐰯 10C2F OLD TURKIC LETTER ORKHON EP
|
||||||
|
2f 𐰯 10C2F OLD TURKIC LETTER ORKHON EP
|
||||||
|
op 𐰰 10C30 OLD TURKIC LETTER ORKHON OP
|
||||||
|
up 𐰰 10C30 OLD TURKIC LETTER ORKHON OP
|
||||||
|
30 𐰰 10C30 OLD TURKIC LETTER ORKHON OP
|
||||||
|
ic 𐰱 10C31 OLD TURKIC LETTER ORKHON IC
|
||||||
|
31 𐰱 10C31 OLD TURKIC LETTER ORKHON IC
|
||||||
|
ec 𐰲 10C32 OLD TURKIC LETTER ORKHON EC
|
||||||
|
32 𐰲 10C32 OLD TURKIC LETTER ORKHON EC
|
||||||
|
aq 𐰴 10C34 OLD TURKIC LETTER ORKHON AQ
|
||||||
|
34 𐰴 10C34 OLD TURKIC LETTER ORKHON AQ
|
||||||
|
iq 𐰶 10C36 OLD TURKIC LETTER ORKHON IQ
|
||||||
|
yq 𐰶 10C36 OLD TURKIC LETTER ORKHON IQ
|
||||||
|
36 𐰶 10C36 OLD TURKIC LETTER ORKHON IQ
|
||||||
|
oq 𐰸 10C38 OLD TURKIC LETTER ORKHON OQ
|
||||||
|
uq 𐰸 10C38 OLD TURKIC LETTER ORKHON OQ
|
||||||
|
38 𐰸 10C38 OLD TURKIC LETTER ORKHON OQ
|
||||||
|
ar 𐰺 10C3A OLD TURKIC LETTER ORKHON AR
|
||||||
|
r1 𐰺 10C3A OLD TURKIC LETTER ORKHON AR
|
||||||
|
3a 𐰺 10C3A OLD TURKIC LETTER ORKHON AR
|
||||||
|
aer 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
|
||||||
|
er 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
|
||||||
|
r2 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
|
||||||
|
3c 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
|
||||||
|
as 𐰽 10C3D OLD TURKIC LETTER ORKHON AS
|
||||||
|
s1 𐰽 10C3D OLD TURKIC LETTER ORKHON AS
|
||||||
|
3d 𐰽 10C3D OLD TURKIC LETTER ORKHON AS
|
||||||
|
aes 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
|
||||||
|
es 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
|
||||||
|
s2 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
|
||||||
|
3e 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
|
||||||
|
ash 𐰿 10C3F OLD TURKIC LETTER ORKHON ASH
|
||||||
|
sh1 𐰿 10C3F OLD TURKIC LETTER ORKHON ASH
|
||||||
|
3f 𐰿 10C3F OLD TURKIC LETTER ORKHON ASH
|
||||||
|
esh 𐱁 10C41 OLD TURKIC LETTER ORKHON ESH
|
||||||
|
sh2 𐱁 10C41 OLD TURKIC LETTER ORKHON ESH
|
||||||
|
41 𐱁 10C41 OLD TURKIC LETTER ORKHON ESH
|
||||||
|
at 𐱃 10C43 OLD TURKIC LETTER ORKHON AT
|
||||||
|
t1 𐱃 10C43 OLD TURKIC LETTER ORKHON AT
|
||||||
|
43 𐱃 10C43 OLD TURKIC LETTER ORKHON AT
|
||||||
|
aet 𐱅 10C45 OLD TURKIC LETTER ORKHON AET
|
||||||
|
et 𐱅 10C45 OLD TURKIC LETTER ORKHON AET
|
||||||
|
t2 𐱅 10C45 OLD TURKIC LETTER ORKHON AET
|
||||||
|
45 𐱅 10C45 OLD TURKIC LETTER ORKHON AET
|
||||||
|
ot 𐱇 10C47 OLD TURKIC LETTER ORKHON OT
|
||||||
|
ut 𐱇 10C47 OLD TURKIC LETTER ORKHON OT
|
||||||
|
47 𐱇 10C47 OLD TURKIC LETTER ORKHON OT
|
||||||
|
bash 𐱈 10C48 OLD TURKIC LETTER ORKHON BASH
|
||||||
|
48 𐱈 10C48 OLD TURKIC LETTER ORKHON BASH
|
||||||
115
runtime/keymap/oldturkic-yenisei_utf-8.vim
Normal file
115
runtime/keymap/oldturkic-yenisei_utf-8.vim
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
" Maintainer: Oliver Corff <oliver.corff@yemail.de>
|
||||||
|
" Last Changed: 2018 Feb 12
|
||||||
|
|
||||||
|
" All characters are given literally, conversion to another encoding (e.g.,
|
||||||
|
" UTF-8) should work.
|
||||||
|
scriptencoding utf-8
|
||||||
|
|
||||||
|
let b:keymap_name = "oto"
|
||||||
|
highlight lCursor guibg=red guifg=NONE
|
||||||
|
|
||||||
|
" map F8 to toggle keymap (Ctrl-^ not present on keyboard)
|
||||||
|
noremap <F8> :let &iminsert = ! &iminsert<CR>
|
||||||
|
lnoremap <F8> <C-^>
|
||||||
|
noremap! <F8> <C-^>
|
||||||
|
|
||||||
|
loadkeymap
|
||||||
|
A 𐰁 10C01 OLD TURKIC LETTER YENISEI A
|
||||||
|
01 𐰁 10C01 OLD TURKIC LETTER YENISEI A
|
||||||
|
AE 𐰂 10C02 OLD TURKIC LETTER YENISEI AE
|
||||||
|
02 𐰂 10C02 OLD TURKIC LETTER YENISEI AE
|
||||||
|
I 𐰄 10C04 OLD TURKIC LETTER YENISEI I
|
||||||
|
04 𐰄 10C04 OLD TURKIC LETTER YENISEI I
|
||||||
|
E 𐰅 10C05 OLD TURKIC LETTER YENISEI E
|
||||||
|
05 𐰅 10C05 OLD TURKIC LETTER YENISEI E
|
||||||
|
OE 𐰈 10C08 OLD TURKIC LETTER YENISEI OE
|
||||||
|
UE 𐰈 10C08 OLD TURKIC LETTER YENISEI OE
|
||||||
|
08 𐰈 10C08 OLD TURKIC LETTER YENISEI OE
|
||||||
|
ab 𐰊 10C0A OLD TURKIC LETTER YENISEI AB
|
||||||
|
b1 𐰊 10C0A OLD TURKIC LETTER YENISEI AB
|
||||||
|
0a 𐰊 10C0A OLD TURKIC LETTER YENISEI AB
|
||||||
|
aeb 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB
|
||||||
|
eb 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB
|
||||||
|
b2 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB
|
||||||
|
0c 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB
|
||||||
|
ag 𐰎 10C0E OLD TURKIC LETTER YENISEI AG
|
||||||
|
g1 𐰎 10C0E OLD TURKIC LETTER YENISEI AG
|
||||||
|
0e 𐰎 10C0E OLD TURKIC LETTER YENISEI AG
|
||||||
|
aeg 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG
|
||||||
|
eg 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG
|
||||||
|
g2 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG
|
||||||
|
10 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG
|
||||||
|
ad 𐰒 10C12 OLD TURKIC LETTER YENISEI AD
|
||||||
|
d1 𐰒 10C12 OLD TURKIC LETTER YENISEI AD
|
||||||
|
12 𐰒 10C12 OLD TURKIC LETTER YENISEI AD
|
||||||
|
ez 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ
|
||||||
|
z 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ
|
||||||
|
15 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ
|
||||||
|
ay 𐰗 10C17 OLD TURKIC LETTER YENISEI AY
|
||||||
|
y1 𐰗 10C17 OLD TURKIC LETTER YENISEI AY
|
||||||
|
17 𐰗 10C17 OLD TURKIC LETTER YENISEI AY
|
||||||
|
aey 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY
|
||||||
|
ey 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY
|
||||||
|
y2 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY
|
||||||
|
19 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY
|
||||||
|
aek 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK
|
||||||
|
ak 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK
|
||||||
|
k 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK
|
||||||
|
1b 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK
|
||||||
|
oek 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK
|
||||||
|
ök 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK
|
||||||
|
uek 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK
|
||||||
|
ük 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK
|
||||||
|
1d 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK
|
||||||
|
al 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
|
||||||
|
l 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
|
||||||
|
l1 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
|
||||||
|
1f 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
|
||||||
|
aen 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
|
||||||
|
en 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
|
||||||
|
n2 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
|
||||||
|
25 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
|
||||||
|
ent 𐰧 10C27 OLD TURKIC LETTER YENISEI ENT
|
||||||
|
nt 𐰧 10C27 OLD TURKIC LETTER YENISEI ENT
|
||||||
|
27 𐰧 10C27 OLD TURKIC LETTER YENISEI ENT
|
||||||
|
enc 𐰩 10C29 OLD TURKIC LETTER YENISEI ENC
|
||||||
|
nc 𐰩 10C29 OLD TURKIC LETTER YENISEI ENC
|
||||||
|
29 𐰩 10C29 OLD TURKIC LETTER YENISEI ENC
|
||||||
|
eny 𐰫 10C2B OLD TURKIC LETTER YENISEI ENY
|
||||||
|
ny 𐰫 10C2B OLD TURKIC LETTER YENISEI ENY
|
||||||
|
2b 𐰫 10C2B OLD TURKIC LETTER YENISEI ENY
|
||||||
|
ang 𐰬 10C2C OLD TURKIC LETTER YENISEI ANG
|
||||||
|
ng 𐰬 10C2C OLD TURKIC LETTER YENISEI ANG
|
||||||
|
2c 𐰬 10C2C OLD TURKIC LETTER YENISEI ANG
|
||||||
|
aeng 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG
|
||||||
|
eng 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG
|
||||||
|
2e 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG
|
||||||
|
ec 𐰳 10C33 OLD TURKIC LETTER YENISEI EC
|
||||||
|
c 𐰳 10C33 OLD TURKIC LETTER YENISEI EC
|
||||||
|
33 𐰳 10C33 OLD TURKIC LETTER YENISEI EC
|
||||||
|
aq 𐰵 10C35 OLD TURKIC LETTER YENISEI AQ
|
||||||
|
q 𐰵 10C35 OLD TURKIC LETTER YENISEI AQ
|
||||||
|
35 𐰵 10C35 OLD TURKIC LETTER YENISEI AQ
|
||||||
|
iq 𐰷 10C37 OLD TURKIC LETTER YENISEI IQ
|
||||||
|
yq 𐰷 10C37 OLD TURKIC LETTER YENISEI IQ
|
||||||
|
37 𐰷 10C37 OLD TURKIC LETTER YENISEI IQ
|
||||||
|
oq 𐰹 10C39 OLD TURKIC LETTER YENISEI OQ
|
||||||
|
uq 𐰹 10C39 OLD TURKIC LETTER YENISEI OQ
|
||||||
|
39 𐰹 10C39 OLD TURKIC LETTER YENISEI OQ
|
||||||
|
ar 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
|
||||||
|
r 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
|
||||||
|
r1 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
|
||||||
|
3b 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
|
||||||
|
ash 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH
|
||||||
|
sh1 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH
|
||||||
|
40 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH
|
||||||
|
esh 𐱂 10C42 OLD TURKIC LETTER YENISEI ESH
|
||||||
|
sh2 𐱂 10C42 OLD TURKIC LETTER YENISEI ESH
|
||||||
|
42 𐱂 10C42 OLD TURKIC LETTER YENISEI ESH
|
||||||
|
at 𐱄 10C44 OLD TURKIC LETTER YENISEI AT
|
||||||
|
t1 𐱄 10C44 OLD TURKIC LETTER YENISEI AT
|
||||||
|
44 𐱄 10C44 OLD TURKIC LETTER YENISEI AT
|
||||||
|
aet 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
|
||||||
|
et 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
|
||||||
|
t2 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
|
||||||
|
46 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
" Menu Translations: Serbian
|
" Menu Translations: Serbian
|
||||||
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
||||||
" Last Change: Fri, 30 May 2003 12:15:30 -0400
|
" Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time
|
||||||
|
" Adapted for VIM 8 by: Ivan Pesic on 2017-12-28 12:05+0400
|
||||||
|
|
||||||
" Quit when menu translations have already been done.
|
" Quit when menu translations have already been done.
|
||||||
if exists("did_menu_trans")
|
if exists("did_menu_trans")
|
||||||
@@ -19,6 +20,7 @@ menutrans &Find &Nadji
|
|||||||
menutrans &Credits &Zasluge
|
menutrans &Credits &Zasluge
|
||||||
menutrans Co&pying P&reuzimanje
|
menutrans Co&pying P&reuzimanje
|
||||||
menutrans O&rphans &Sirocici
|
menutrans O&rphans &Sirocici
|
||||||
|
menutrans &Sponsor/Register Sponzor/&Registrujte\ se
|
||||||
menutrans &Version &Verzija
|
menutrans &Version &Verzija
|
||||||
menutrans &About &O\ programu
|
menutrans &About &O\ programu
|
||||||
|
|
||||||
@@ -26,6 +28,7 @@ menutrans &About &O\ programu
|
|||||||
menutrans &File &Datoteka
|
menutrans &File &Datoteka
|
||||||
menutrans &Open\.\.\.<Tab>:e &Otvori\.\.\.<Tab>:e
|
menutrans &Open\.\.\.<Tab>:e &Otvori\.\.\.<Tab>:e
|
||||||
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Podeli-otvori\.\.\.<Tab>:sp
|
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Podeli-otvori\.\.\.<Tab>:sp
|
||||||
|
menutrans Open\ Tab\.\.\.<Tab>:tabnew Otvori\ karticu\.\.\.<Tab>:tabnew
|
||||||
menutrans &New<Tab>:enew &Nova<Tab>:enew
|
menutrans &New<Tab>:enew &Nova<Tab>:enew
|
||||||
menutrans &Close<Tab>:close &Zatvori<Tab>:close
|
menutrans &Close<Tab>:close &Zatvori<Tab>:close
|
||||||
menutrans &Save<Tab>:w &Sacuvaj<Tab>:w
|
menutrans &Save<Tab>:w &Sacuvaj<Tab>:w
|
||||||
@@ -52,24 +55,27 @@ menutrans &Select\ all<Tab>ggVG Izaberi\ sv&e<Tab>ggVG
|
|||||||
menutrans &Find\.\.\. &Nadji\.\.\.
|
menutrans &Find\.\.\. &Nadji\.\.\.
|
||||||
menutrans Find\ and\ Rep&lace\.\.\. Nadji\ i\ &zameni\.\.\.
|
menutrans Find\ and\ Rep&lace\.\.\. Nadji\ i\ &zameni\.\.\.
|
||||||
menutrans Settings\ &Window P&rozor\ podesavanja
|
menutrans Settings\ &Window P&rozor\ podesavanja
|
||||||
|
menutrans Startup\ &Settings Po&desavanja\ pri\ pokretanju
|
||||||
menutrans &Global\ Settings Op&sta\ podesavanja
|
menutrans &Global\ Settings Op&sta\ podesavanja
|
||||||
menutrans F&ile\ Settings Podesavanja\ za\ da&toteke
|
menutrans F&ile\ Settings Podesavanja\ za\ da&toteke
|
||||||
menutrans &Shiftwidth &Pomeraj
|
menutrans &Shiftwidth &Pomeraj
|
||||||
menutrans Soft\ &Tabstop &Meka\ tabulacija
|
menutrans Soft\ &Tabstop &Meka\ tabulacija
|
||||||
menutrans Te&xt\ Width\.\.\. &Sirina\ teksta\.\.\.
|
menutrans Te&xt\ Width\.\.\. &Sirina\ teksta\.\.\.
|
||||||
menutrans &File\ Format\.\.\. &Vrsta\ datoteke\.\.\.
|
menutrans &File\ Format\.\.\. &Vrsta\ datoteke\.\.\.
|
||||||
menutrans C&olor\ Scheme Bo&je
|
menutrans Show\ C&olor\ Schemes\ in\ Menu Prikazi\ seme\ bo&ja\ u\ meniju
|
||||||
menutrans &Keymap Pres&likavanje\ tastature
|
menutrans C&olor\ Scheme \Seme\ bo&ja
|
||||||
|
menutrans Show\ &Keymaps\ in\ Menu Prikazi\ pres&likavanja\ tastature\ u\ meniju
|
||||||
|
menutrans &Keymap Pres&likavanja\ tastature
|
||||||
menutrans Select\ Fo&nt\.\.\. Izbor\ &fonta\.\.\.
|
menutrans Select\ Fo&nt\.\.\. Izbor\ &fonta\.\.\.
|
||||||
|
|
||||||
" Edit/Global Settings
|
" Edit/Global Settings
|
||||||
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Naglasi\ &obrazce\ (da/ne)<Tab>:set\ hls!
|
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Naglasi\ &obrazce\ (da/ne)<Tab>:set\ hls!
|
||||||
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! Zanemari\ \velicinu\ &slova\ (da/ne)<Tab>:set\ ic!
|
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Zanemari\ velicinu\ &slova\ (da/ne)<Tab>:set\ ic!
|
||||||
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Proveri\ pratecu\ &zagradu\ (da/ne)<Tab>:set\ sm!
|
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Proveri\ pratecu\ &zagradu\ (da/ne)<Tab>:set\ sm!
|
||||||
menutrans &Context\ lines Vidljivi\ &redovi
|
menutrans &Context\ lines Vidljivi\ &redovi
|
||||||
menutrans &Virtual\ Edit Virtuelno\ &uredjivanje
|
menutrans &Virtual\ Edit Virtuelno\ &uredjivanje
|
||||||
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Rezim\ u&nosa\ (da/ne)<Tab>:set\ im!
|
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Rezim\ u&nosa\ (da/ne)<Tab>:set\ im!
|
||||||
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! '&Vi'\ saglasno\ (da/ne)<Tab>:set\ cp!
|
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ saglasno\ (da/ne)<Tab>:set\ cp!
|
||||||
menutrans Search\ &Path\.\.\. Putanja\ &pretrage\.\.\.
|
menutrans Search\ &Path\.\.\. Putanja\ &pretrage\.\.\.
|
||||||
menutrans Ta&g\ Files\.\.\. &Datoteke\ oznaka\.\.\.
|
menutrans Ta&g\ Files\.\.\. &Datoteke\ oznaka\.\.\.
|
||||||
menutrans Toggle\ &Toolbar Linija\ sa\ &alatkama\ (da/ne)
|
menutrans Toggle\ &Toolbar Linija\ sa\ &alatkama\ (da/ne)
|
||||||
@@ -85,28 +91,30 @@ menutrans Block\ and\ Insert Blok\ i\ unos
|
|||||||
menutrans Always Uvek
|
menutrans Always Uvek
|
||||||
|
|
||||||
" Edit/File Settings
|
" Edit/File Settings
|
||||||
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Redni\ &brojevi\ (da/ne)<Tab>:set\ nu!
|
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Prikazi\ &numeraciju\ linija\ (da/ne)<Tab>:set\ nu!
|
||||||
|
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Prikazi\ Relati&vnu\ numeraciju\ linija\ (da/ne)<Tab>:set\ rnu!
|
||||||
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Rezim\ &liste\ (da/ne)<Tab>:set\ list!
|
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Rezim\ &liste\ (da/ne)<Tab>:set\ list!
|
||||||
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! Obavijanje\ &redova\ (da/ne)<Tab>:set\ wrap!
|
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! Obavijanje\ &redova\ (da/ne)<Tab>:set\ wrap!
|
||||||
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Prelomi\ &na\ rec\ (da/ne)<Tab>:set\ lbr!
|
menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! Prelomi\ &na\ rec\ (da/ne)<Tab>:set\ lbr!
|
||||||
menutrans Toggle\ &expand-tab<Tab>:set\ et! Razmaci\ umesto\ &tabulacije\ (da/ne)<Tab>:set\ et!
|
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! Razmaci\ umesto\ &tabulacije\ (da/ne)<Tab>:set\ et!
|
||||||
menutrans Toggle\ &auto-indent<Tab>:set\ ai! Auto-&uvlacenje\ (da/ne)<Tab>:set\ ai!
|
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! Auto-&uvlacenje\ (da/ne)<Tab>:set\ ai!
|
||||||
menutrans Toggle\ &C-indenting<Tab>:set\ cin! &Ce-uvlacenje\ (da/ne)<Tab>:set\ cin!
|
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! &C-uvlacenje\ (da/ne)<Tab>:set\ cin!
|
||||||
|
|
||||||
" Edit/Keymap
|
" Edit/Keymap
|
||||||
menutrans None Nijedan
|
menutrans None Bez\ preslikavanja
|
||||||
|
|
||||||
" Tools menu
|
" Tools menu
|
||||||
menutrans &Tools &Alatke
|
menutrans &Tools &Alatke
|
||||||
menutrans &Jump\ to\ this\ tag<Tab>g^] Skoci\ na\ &ovu\ oznaku<Tab>g^]
|
menutrans &Jump\ to\ this\ tag<Tab>g^] Skoci\ na\ &ovu\ oznaku<Tab>g^]
|
||||||
menutrans Jump\ &back<Tab>^T Skoci\ &natrag<Tab>^T
|
menutrans Jump\ &back<Tab>^T Skoci\ &natrag<Tab>^T
|
||||||
menutrans Build\ &Tags\ File Izgradi\ &datoteku\ oznaka
|
menutrans Build\ &Tags\ File Izgradi\ &datoteku\ oznaka
|
||||||
|
menutrans &Spelling Pra&vopis
|
||||||
menutrans &Folding &Podvijanje
|
menutrans &Folding &Podvijanje
|
||||||
menutrans Create\ &Fold<Tab>zf S&tvori\ podvijutak<Tab>zf
|
menutrans Create\ &Fold<Tab>zf S&tvori\ podvijutak<Tab>zf
|
||||||
menutrans &Delete\ Fold<Tab>zd O&brisi\ podvijutak<Tab>zd
|
menutrans &Delete\ Fold<Tab>zd O&brisi\ podvijutak<Tab>zd
|
||||||
menutrans Delete\ &All\ Folds<Tab>zD Obrisi\ sve\ po&dvijutke<Tab>zD
|
menutrans Delete\ &All\ Folds<Tab>zD Obrisi\ sve\ po&dvijutke<Tab>zD
|
||||||
menutrans Fold\ column\ &width Sirina\ &reda\ podvijutka
|
menutrans Fold\ column\ &width Sirina\ &reda\ podvijutka
|
||||||
menutrans &Diff &Uporedjivanje
|
"menutrans &Diff &Uporedjivanje
|
||||||
menutrans &Make<Tab>:make 'mak&e'<Tab>:make
|
menutrans &Make<Tab>:make 'mak&e'<Tab>:make
|
||||||
menutrans &List\ Errors<Tab>:cl Spisak\ &gresaka<Tab>:cl
|
menutrans &List\ Errors<Tab>:cl Spisak\ &gresaka<Tab>:cl
|
||||||
menutrans L&ist\ Messages<Tab>:cl! Sp&isak\ poruka<Tab>:cl!
|
menutrans L&ist\ Messages<Tab>:cl! Sp&isak\ poruka<Tab>:cl!
|
||||||
@@ -115,9 +123,25 @@ menutrans &Previous\ Error<Tab>:cp Pre&thodna\ greska<Tab>:cp
|
|||||||
menutrans &Older\ List<Tab>:cold Stari\ spisa&k<Tab>:cold
|
menutrans &Older\ List<Tab>:cold Stari\ spisa&k<Tab>:cold
|
||||||
menutrans N&ewer\ List<Tab>:cnew No&vi\ spisak<Tab>:cnew
|
menutrans N&ewer\ List<Tab>:cnew No&vi\ spisak<Tab>:cnew
|
||||||
menutrans Error\ &Window Prozor\ sa\ g&reskama
|
menutrans Error\ &Window Prozor\ sa\ g&reskama
|
||||||
menutrans &Set\ Compiler I&zaberi\ prevodioca
|
menutrans Se&t\ Compiler I&zaberi\ prevodioca
|
||||||
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ u\ &HEKS<Tab>:%!xxd
|
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ u\ &HEKS<Tab>:%!xxd
|
||||||
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Vr&ati\ u\ prvobitan\ oblik<Tab>:%!xxd\ -r
|
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Vr&ati\ u\ prvobitan\ oblik<Tab>:%!xxd\ -r
|
||||||
|
menutrans Show\ Compiler\ Se&ttings\ in\ Menu Prikazi\ pode&savanja\ prevodioca\ u\ meniju
|
||||||
|
|
||||||
|
" Tools/Spelling
|
||||||
|
menutrans &Spell\ Check\ On &Ukljuci\ proveru\ pravopisa
|
||||||
|
menutrans Spell\ Check\ &Off &Iskljuci\ proveru\ pravopisa
|
||||||
|
menutrans To\ &Next\ Error<Tab>]s Idi\ na\ &sledecu\ gresku<Tab>]s
|
||||||
|
menutrans To\ &Previous\ Error<Tab>[s Idi\ na\ &prethodnu\ gresku<Tab>[s
|
||||||
|
menutrans Suggest\ &Corrections<Tab>z= Predlozi\ isp&ravke<Tab>z=
|
||||||
|
menutrans &Repeat\ Correction<Tab>:spellrepall P&onovi\ ispravku<Tab>:spellrepall
|
||||||
|
menutrans Set\ Language\ to\ "en" Postavi\ jezik\ na\ "en"
|
||||||
|
menutrans Set\ Language\ to\ "en_au" Postavi\ jezik\ na\ "en_au"
|
||||||
|
menutrans Set\ Language\ to\ "en_ca" Postavi\ jezik\ na\ "en_ca"
|
||||||
|
menutrans Set\ Language\ to\ "en_gb" Postavi\ jezik\ na\ "en_gb"
|
||||||
|
menutrans Set\ Language\ to\ "en_nz" Postavi\ jezik\ na\ "en_nz"
|
||||||
|
menutrans Set\ Language\ to\ "en_us" Postavi\ jezik\ na\ "en_us"
|
||||||
|
menutrans &Find\ More\ Languages Pronadji\ jos\ jezika
|
||||||
|
|
||||||
" Tools/Folding
|
" Tools/Folding
|
||||||
menutrans &Enable/Disable\ folds<Tab>zi &Omoguci/prekini\ podvijanje<Tab>zi
|
menutrans &Enable/Disable\ folds<Tab>zi &Omoguci/prekini\ podvijanje<Tab>zi
|
||||||
@@ -128,6 +152,7 @@ menutrans &Close\ all\ folds<Tab>zM Zatvori\ s&ve\ podvijutke<Tab>zM
|
|||||||
menutrans O&pen\ more\ folds<Tab>zr Otvori\ vis&e\ podvijutaka<Tab>zr
|
menutrans O&pen\ more\ folds<Tab>zr Otvori\ vis&e\ podvijutaka<Tab>zr
|
||||||
menutrans &Open\ all\ folds<Tab>zR O&tvori\ sve\ podvijutke<Tab>zR
|
menutrans &Open\ all\ folds<Tab>zR O&tvori\ sve\ podvijutke<Tab>zR
|
||||||
menutrans Fold\ Met&hod &Nacin\ podvijanja
|
menutrans Fold\ Met&hod &Nacin\ podvijanja
|
||||||
|
menutrans Fold\ Col&umn\ Width Sirina\ kolone\ ispred\ podvijutaka
|
||||||
|
|
||||||
" Tools/Folding/Fold Method
|
" Tools/Folding/Fold Method
|
||||||
menutrans M&anual &Rucno
|
menutrans M&anual &Rucno
|
||||||
@@ -139,8 +164,8 @@ menutrans Ma&rker &Oznaka
|
|||||||
|
|
||||||
" Tools/Diff
|
" Tools/Diff
|
||||||
menutrans &Update &Azuriraj
|
menutrans &Update &Azuriraj
|
||||||
menutrans &Get\ Block &Prihvati\ izmenu
|
menutrans &Get\ Block &Prihvati\ blok\ izmena
|
||||||
menutrans &Put\ Block Pre&baci\ izmenu
|
menutrans &Put\ Block Pre&baci\ blok\ izmena
|
||||||
|
|
||||||
" Tools/Error Window
|
" Tools/Error Window
|
||||||
menutrans &Update<Tab>:cwin &Azuriraj<Tab>:cwin
|
menutrans &Update<Tab>:cwin &Azuriraj<Tab>:cwin
|
||||||
@@ -188,8 +213,10 @@ menutrans Cu&t &Iseci
|
|||||||
menutrans &Copy &Kopiraj
|
menutrans &Copy &Kopiraj
|
||||||
menutrans &Paste &Ubaci
|
menutrans &Paste &Ubaci
|
||||||
menutrans &Delete I&zbrisi
|
menutrans &Delete I&zbrisi
|
||||||
menutrans Select\ Blockwise Biraj\ &pravougaono
|
menutrans Select\ Blockwise Biraj\ b&lokovski
|
||||||
menutrans Select\ &Word Izaberi\ &rec
|
menutrans Select\ &Word Izaberi\ &rec
|
||||||
|
menutrans Select\ &Sentence Izaberi\ r&ecenicu
|
||||||
|
menutrans Select\ Pa&ragraph Izaberi\ ¶graf
|
||||||
menutrans Select\ &Line Izaberi\ r&ed
|
menutrans Select\ &Line Izaberi\ r&ed
|
||||||
menutrans Select\ &Block Izaberi\ &blok
|
menutrans Select\ &Block Izaberi\ &blok
|
||||||
menutrans Select\ &All Izaberi\ &sve
|
menutrans Select\ &All Izaberi\ &sve
|
||||||
@@ -235,9 +262,9 @@ endif
|
|||||||
|
|
||||||
" Syntax menu
|
" Syntax menu
|
||||||
menutrans &Syntax &Sintaksa
|
menutrans &Syntax &Sintaksa
|
||||||
menutrans &Show\ filetypes\ in\ menu Izbor\ 'filetype'\ iz\ &menija
|
menutrans &Show\ File\ Types\ in\ Menu Prikazi\ tipove\ datoteka\ u\ &meniju
|
||||||
menutrans Set\ '&syntax'\ only Pode&si\ 'syntax'\ samo
|
menutrans Set\ '&syntax'\ only Pode&si\ samo\ 'syntax'
|
||||||
menutrans Set\ '&filetype'\ too Podesi\ 'filetype'\ &takodje
|
menutrans Set\ '&filetype'\ too Podesi\ &takodje\ i\ 'filetype'
|
||||||
menutrans &Off &Iskljuceno
|
menutrans &Off &Iskljuceno
|
||||||
menutrans &Manual &Rucno
|
menutrans &Manual &Rucno
|
||||||
menutrans A&utomatic &Automatski
|
menutrans A&utomatic &Automatski
|
||||||
@@ -255,9 +282,13 @@ let g:menutrans_tags_dialog = "Unesite imena datoteka sa oznakama\nRazdvojite za
|
|||||||
|
|
||||||
let g:menutrans_textwidth_dialog = "Unesite novu sirinu teksta (0 sprecava prelom)"
|
let g:menutrans_textwidth_dialog = "Unesite novu sirinu teksta (0 sprecava prelom)"
|
||||||
|
|
||||||
let g:menutrans_fileformat_dialog = "Izaberite vrstu datoteke"
|
let g:menutrans_fileformat_dialog = "Izaberite format zapisa datoteke"
|
||||||
|
|
||||||
|
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Otkazi"
|
||||||
|
|
||||||
let menutrans_no_file = "[Nema datoteke]"
|
let menutrans_no_file = "[Nema datoteke]"
|
||||||
|
|
||||||
let &cpo = s:keepcpo
|
let &cpo = s:keepcpo
|
||||||
unlet s:keepcpo
|
unlet s:keepcpo
|
||||||
|
|
||||||
|
" vim: tw=0 keymap=serbian
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
" Menu Translations: Serbian
|
" Menu Translations: Serbian
|
||||||
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
||||||
" Last Change: Fri, 30 May 2003 12:04:48 -0400
|
" Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time
|
||||||
|
" Adapted for VIM 8 by: Ivan Pe<50>i<EFBFBD> on 2017-12-28 12:05+0400
|
||||||
|
|
||||||
" Quit when menu translations have already been done.
|
" Quit when menu translations have already been done.
|
||||||
if exists("did_menu_trans")
|
if exists("did_menu_trans")
|
||||||
@@ -21,6 +22,7 @@ menutrans &Find &Na
|
|||||||
menutrans &Credits &Zasluge
|
menutrans &Credits &Zasluge
|
||||||
menutrans Co&pying P&reuzimanje
|
menutrans Co&pying P&reuzimanje
|
||||||
menutrans O&rphans &Siro<EFBFBD>i<EFBFBD>i
|
menutrans O&rphans &Siro<EFBFBD>i<EFBFBD>i
|
||||||
|
menutrans &Sponsor/Register Sponzor/&Registrujte\ se
|
||||||
menutrans &Version &Verzija
|
menutrans &Version &Verzija
|
||||||
menutrans &About &O\ programu
|
menutrans &About &O\ programu
|
||||||
|
|
||||||
@@ -28,6 +30,7 @@ menutrans &About &O\ programu
|
|||||||
menutrans &File &Datoteka
|
menutrans &File &Datoteka
|
||||||
menutrans &Open\.\.\.<Tab>:e &Otvori\.\.\.<Tab>:e
|
menutrans &Open\.\.\.<Tab>:e &Otvori\.\.\.<Tab>:e
|
||||||
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Podeli-otvori\.\.\.<Tab>:sp
|
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Podeli-otvori\.\.\.<Tab>:sp
|
||||||
|
menutrans Open\ Tab\.\.\.<Tab>:tabnew Otvori\ karticu\.\.\.<Tab>:tabnew
|
||||||
menutrans &New<Tab>:enew &Nova<Tab>:enew
|
menutrans &New<Tab>:enew &Nova<Tab>:enew
|
||||||
menutrans &Close<Tab>:close &Zatvori<Tab>:close
|
menutrans &Close<Tab>:close &Zatvori<Tab>:close
|
||||||
menutrans &Save<Tab>:w &Sa<EFBFBD>uvaj<Tab>:w
|
menutrans &Save<Tab>:w &Sa<EFBFBD>uvaj<Tab>:w
|
||||||
@@ -54,24 +57,27 @@ menutrans &Select\ all<Tab>ggVG Izaberi\ sv&e<Tab>ggVG
|
|||||||
menutrans &Find\.\.\. &Na<EFBFBD>i\.\.\.
|
menutrans &Find\.\.\. &Na<EFBFBD>i\.\.\.
|
||||||
menutrans Find\ and\ Rep&lace\.\.\. Na<EFBFBD>i\ i\ &zameni\.\.\.
|
menutrans Find\ and\ Rep&lace\.\.\. Na<EFBFBD>i\ i\ &zameni\.\.\.
|
||||||
menutrans Settings\ &Window P&rozor\ pode<EFBFBD>avanja
|
menutrans Settings\ &Window P&rozor\ pode<EFBFBD>avanja
|
||||||
|
menutrans Startup\ &Settings Po&de<EFBFBD>avanja\ pri\ pokretanju
|
||||||
menutrans &Global\ Settings Op&<26>ta\ pode<EFBFBD>avanja
|
menutrans &Global\ Settings Op&<26>ta\ pode<EFBFBD>avanja
|
||||||
menutrans F&ile\ Settings Pode<EFBFBD>avanja\ za\ da&toteke
|
menutrans F&ile\ Settings Pode<EFBFBD>avanja\ za\ da&toteke
|
||||||
menutrans &Shiftwidth &Pomeraj
|
menutrans &Shiftwidth &Pomeraj
|
||||||
menutrans Soft\ &Tabstop &Meka\ tabulacija
|
menutrans Soft\ &Tabstop &Meka\ tabulacija
|
||||||
menutrans Te&xt\ Width\.\.\. &<26>irina\ teksta\.\.\.
|
menutrans Te&xt\ Width\.\.\. &<26>irina\ teksta\.\.\.
|
||||||
menutrans &File\ Format\.\.\. &Vrsta\ datoteke\.\.\.
|
menutrans &File\ Format\.\.\. &Vrsta\ datoteke\.\.\.
|
||||||
menutrans C&olor\ Scheme Bo&je
|
menutrans Show\ C&olor\ Schemes\ in\ Menu Prika<EFBFBD>i\ <20>eme\ bo&ja\ u\ meniju
|
||||||
menutrans &Keymap Pres&likavanje\ tastature
|
menutrans C&olor\ Scheme \<5C>eme\ bo&ja
|
||||||
|
menutrans Show\ &Keymaps\ in\ Menu Prika<EFBFBD>i\ pres&likavanja\ tastature\ u\ meniju
|
||||||
|
menutrans &Keymap Pres&likavanja\ tastature
|
||||||
menutrans Select\ Fo&nt\.\.\. Izbor\ &fonta\.\.\.
|
menutrans Select\ Fo&nt\.\.\. Izbor\ &fonta\.\.\.
|
||||||
|
|
||||||
" Edit/Global Settings
|
" Edit/Global Settings
|
||||||
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Naglasi\ &obrazce\ (da/ne)<Tab>:set\ hls!
|
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Naglasi\ &obrazce\ (da/ne)<Tab>:set\ hls!
|
||||||
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! Zanemari\ \veli<EFBFBD>inu\ &slova\ (da/ne)<Tab>:set\ ic!
|
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Zanemari\ veli<EFBFBD>inu\ &slova\ (da/ne)<Tab>:set\ ic!
|
||||||
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Proveri\ prate<EFBFBD>u\ &zagradu\ (da/ne)<Tab>:set\ sm!
|
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Proveri\ prate<EFBFBD>u\ &zagradu\ (da/ne)<Tab>:set\ sm!
|
||||||
menutrans &Context\ lines Vidljivi\ &redovi
|
menutrans &Context\ lines Vidljivi\ &redovi
|
||||||
menutrans &Virtual\ Edit Virtuelno\ &ure<EFBFBD>ivanje
|
menutrans &Virtual\ Edit Virtuelno\ &ure<EFBFBD>ivanje
|
||||||
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Re<EFBFBD>im\ u&nosa\ (da/ne)<Tab>:set\ im!
|
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Re<EFBFBD>im\ u&nosa\ (da/ne)<Tab>:set\ im!
|
||||||
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! '&Vi'\ saglasno\ (da/ne)<Tab>:set\ cp!
|
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ saglasno\ (da/ne)<Tab>:set\ cp!
|
||||||
menutrans Search\ &Path\.\.\. Putanja\ &pretrage\.\.\.
|
menutrans Search\ &Path\.\.\. Putanja\ &pretrage\.\.\.
|
||||||
menutrans Ta&g\ Files\.\.\. &Datoteke\ oznaka\.\.\.
|
menutrans Ta&g\ Files\.\.\. &Datoteke\ oznaka\.\.\.
|
||||||
menutrans Toggle\ &Toolbar Linija\ sa\ &alatkama\ (da/ne)
|
menutrans Toggle\ &Toolbar Linija\ sa\ &alatkama\ (da/ne)
|
||||||
@@ -87,28 +93,30 @@ menutrans Block\ and\ Insert Blok\ i\ unos
|
|||||||
menutrans Always Uvek
|
menutrans Always Uvek
|
||||||
|
|
||||||
" Edit/File Settings
|
" Edit/File Settings
|
||||||
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Redni\ &brojevi\ (da/ne)<Tab>:set\ nu!
|
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Prika<EFBFBD>i\ &numeraciju\ linija\ (da/ne)<Tab>:set\ nu!
|
||||||
|
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Prika<EFBFBD>i\ Relati&vnu\ numeraciju\ linija\ (da/ne)<Tab>:set\ rnu!
|
||||||
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Re<EFBFBD>im\ &liste\ (da/ne)<Tab>:set\ list!
|
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Re<EFBFBD>im\ &liste\ (da/ne)<Tab>:set\ list!
|
||||||
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! Obavijanje\ &redova\ (da/ne)<Tab>:set\ wrap!
|
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! Obavijanje\ &redova\ (da/ne)<Tab>:set\ wrap!
|
||||||
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Prelomi\ &na\ re<EFBFBD>\ (da/ne)<Tab>:set\ lbr!
|
menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! Prelomi\ &na\ re<EFBFBD>\ (da/ne)<Tab>:set\ lbr!
|
||||||
menutrans Toggle\ &expand-tab<Tab>:set\ et! Razmaci\ umesto\ &tabulacije\ (da/ne)<Tab>:set\ et!
|
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! Razmaci\ umesto\ &tabulacije\ (da/ne)<Tab>:set\ et!
|
||||||
menutrans Toggle\ &auto-indent<Tab>:set\ ai! Auto-&uvla<EFBFBD>enje\ (da/ne)<Tab>:set\ ai!
|
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! Auto-&uvla<EFBFBD>enje\ (da/ne)<Tab>:set\ ai!
|
||||||
menutrans Toggle\ &C-indenting<Tab>:set\ cin! &Ce-uvla<EFBFBD>enje\ (da/ne)<Tab>:set\ cin!
|
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! &C-uvla<EFBFBD>enje\ (da/ne)<Tab>:set\ cin!
|
||||||
|
|
||||||
" Edit/Keymap
|
" Edit/Keymap
|
||||||
menutrans None Nijedan
|
menutrans None Bez\ preslikavanja
|
||||||
|
|
||||||
" Tools menu
|
" Tools menu
|
||||||
menutrans &Tools &Alatke
|
menutrans &Tools &Alatke
|
||||||
menutrans &Jump\ to\ this\ tag<Tab>g^] Sko<EFBFBD>i\ na\ &ovu\ oznaku<Tab>g^]
|
menutrans &Jump\ to\ this\ tag<Tab>g^] Sko<EFBFBD>i\ na\ &ovu\ oznaku<Tab>g^]
|
||||||
menutrans Jump\ &back<Tab>^T Sko<EFBFBD>i\ &natrag<Tab>^T
|
menutrans Jump\ &back<Tab>^T Sko<EFBFBD>i\ &natrag<Tab>^T
|
||||||
menutrans Build\ &Tags\ File Izgradi\ &datoteku\ oznaka
|
menutrans Build\ &Tags\ File Izgradi\ &datoteku\ oznaka
|
||||||
|
menutrans &Spelling Pra&vopis
|
||||||
menutrans &Folding &Podvijanje
|
menutrans &Folding &Podvijanje
|
||||||
menutrans Create\ &Fold<Tab>zf S&tvori\ podvijutak<Tab>zf
|
menutrans Create\ &Fold<Tab>zf S&tvori\ podvijutak<Tab>zf
|
||||||
menutrans &Delete\ Fold<Tab>zd O&bri<EFBFBD>i\ podvijutak<Tab>zd
|
menutrans &Delete\ Fold<Tab>zd O&bri<EFBFBD>i\ podvijutak<Tab>zd
|
||||||
menutrans Delete\ &All\ Folds<Tab>zD Obri<EFBFBD>i\ sve\ po&dvijutke<Tab>zD
|
menutrans Delete\ &All\ Folds<Tab>zD Obri<EFBFBD>i\ sve\ po&dvijutke<Tab>zD
|
||||||
menutrans Fold\ column\ &width <20>irina\ &reda\ podvijutka
|
menutrans Fold\ column\ &width <20>irina\ &reda\ podvijutka
|
||||||
menutrans &Diff &Upore<EFBFBD>ivanje
|
"menutrans &Diff &Upore<EFBFBD>ivanje
|
||||||
menutrans &Make<Tab>:make 'mak&e'<Tab>:make
|
menutrans &Make<Tab>:make 'mak&e'<Tab>:make
|
||||||
menutrans &List\ Errors<Tab>:cl Spisak\ &gre<EFBFBD>aka<Tab>:cl
|
menutrans &List\ Errors<Tab>:cl Spisak\ &gre<EFBFBD>aka<Tab>:cl
|
||||||
menutrans L&ist\ Messages<Tab>:cl! Sp&isak\ poruka<Tab>:cl!
|
menutrans L&ist\ Messages<Tab>:cl! Sp&isak\ poruka<Tab>:cl!
|
||||||
@@ -117,9 +125,25 @@ menutrans &Previous\ Error<Tab>:cp Pre&thodna\ gre
|
|||||||
menutrans &Older\ List<Tab>:cold Stari\ spisa&k<Tab>:cold
|
menutrans &Older\ List<Tab>:cold Stari\ spisa&k<Tab>:cold
|
||||||
menutrans N&ewer\ List<Tab>:cnew No&vi\ spisak<Tab>:cnew
|
menutrans N&ewer\ List<Tab>:cnew No&vi\ spisak<Tab>:cnew
|
||||||
menutrans Error\ &Window Prozor\ sa\ g&re<EFBFBD>kama
|
menutrans Error\ &Window Prozor\ sa\ g&re<EFBFBD>kama
|
||||||
menutrans &Set\ Compiler I&zaberi\ prevodioca
|
menutrans Se&t\ Compiler I&zaberi\ prevodioca
|
||||||
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ u\ &HEKS<Tab>:%!xxd
|
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ u\ &HEKS<Tab>:%!xxd
|
||||||
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Vr&ati\ u\ prvobitan\ oblik<Tab>:%!xxd\ -r
|
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Vr&ati\ u\ prvobitan\ oblik<Tab>:%!xxd\ -r
|
||||||
|
menutrans Show\ Compiler\ Se&ttings\ in\ Menu Prika<EFBFBD>i\ pode&<26>avanja\ prevodioca\ u\ meniju
|
||||||
|
|
||||||
|
" Tools/Spelling
|
||||||
|
menutrans &Spell\ Check\ On &Uklju<EFBFBD>i\ proveru\ pravopisa
|
||||||
|
menutrans Spell\ Check\ &Off &Isklju<EFBFBD>i\ proveru\ pravopisa
|
||||||
|
menutrans To\ &Next\ Error<Tab>]s Idi\ na\ &slede<EFBFBD>u\ gre<EFBFBD>ku<Tab>]s
|
||||||
|
menutrans To\ &Previous\ Error<Tab>[s Idi\ na\ &prethodnu\ gre<EFBFBD>ku<Tab>[s
|
||||||
|
menutrans Suggest\ &Corrections<Tab>z= Predlo<EFBFBD>i\ isp&ravke<Tab>z=
|
||||||
|
menutrans &Repeat\ Correction<Tab>:spellrepall P&onovi\ ispravku<Tab>:spellrepall
|
||||||
|
menutrans Set\ Language\ to\ "en" Postavi\ jezik\ na\ "en"
|
||||||
|
menutrans Set\ Language\ to\ "en_au" Postavi\ jezik\ na\ "en_au"
|
||||||
|
menutrans Set\ Language\ to\ "en_ca" Postavi\ jezik\ na\ "en_ca"
|
||||||
|
menutrans Set\ Language\ to\ "en_gb" Postavi\ jezik\ na\ "en_gb"
|
||||||
|
menutrans Set\ Language\ to\ "en_nz" Postavi\ jezik\ na\ "en_nz"
|
||||||
|
menutrans Set\ Language\ to\ "en_us" Postavi\ jezik\ na\ "en_us"
|
||||||
|
menutrans &Find\ More\ Languages Prona<EFBFBD>i\ jo<EFBFBD>\ jezika
|
||||||
|
|
||||||
" Tools/Folding
|
" Tools/Folding
|
||||||
menutrans &Enable/Disable\ folds<Tab>zi &Omogu<67>i/prekini\ podvijanje<Tab>zi
|
menutrans &Enable/Disable\ folds<Tab>zi &Omogu<67>i/prekini\ podvijanje<Tab>zi
|
||||||
@@ -130,6 +154,7 @@ menutrans &Close\ all\ folds<Tab>zM Zatvori\ s&ve\ podvijutke<Tab>zM
|
|||||||
menutrans O&pen\ more\ folds<Tab>zr Otvori\ vi<EFBFBD>&e\ podvijutaka<Tab>zr
|
menutrans O&pen\ more\ folds<Tab>zr Otvori\ vi<EFBFBD>&e\ podvijutaka<Tab>zr
|
||||||
menutrans &Open\ all\ folds<Tab>zR O&tvori\ sve\ podvijutke<Tab>zR
|
menutrans &Open\ all\ folds<Tab>zR O&tvori\ sve\ podvijutke<Tab>zR
|
||||||
menutrans Fold\ Met&hod &Na<EFBFBD>in\ podvijanja
|
menutrans Fold\ Met&hod &Na<EFBFBD>in\ podvijanja
|
||||||
|
menutrans Fold\ Col&umn\ Width <09>irina\ kolone\ ispred\ podvijutaka
|
||||||
|
|
||||||
" Tools/Folding/Fold Method
|
" Tools/Folding/Fold Method
|
||||||
menutrans M&anual &Ru<EFBFBD>no
|
menutrans M&anual &Ru<EFBFBD>no
|
||||||
@@ -141,8 +166,8 @@ menutrans Ma&rker &Oznaka
|
|||||||
|
|
||||||
" Tools/Diff
|
" Tools/Diff
|
||||||
menutrans &Update &A<EFBFBD>uriraj
|
menutrans &Update &A<EFBFBD>uriraj
|
||||||
menutrans &Get\ Block &Prihvati\ izmenu
|
menutrans &Get\ Block &Prihvati\ blok\ izmena
|
||||||
menutrans &Put\ Block Pre&baci\ izmenu
|
menutrans &Put\ Block Pre&baci\ blok\ izmena
|
||||||
|
|
||||||
" Tools/Error Window
|
" Tools/Error Window
|
||||||
menutrans &Update<Tab>:cwin &A<EFBFBD>uriraj<Tab>:cwin
|
menutrans &Update<Tab>:cwin &A<EFBFBD>uriraj<Tab>:cwin
|
||||||
@@ -190,8 +215,10 @@ menutrans Cu&t &Iseci
|
|||||||
menutrans &Copy &Kopiraj
|
menutrans &Copy &Kopiraj
|
||||||
menutrans &Paste &Ubaci
|
menutrans &Paste &Ubaci
|
||||||
menutrans &Delete I&zbri<EFBFBD>i
|
menutrans &Delete I&zbri<EFBFBD>i
|
||||||
menutrans Select\ Blockwise Biraj\ &pravougaono
|
menutrans Select\ Blockwise Biraj\ b&lokovski
|
||||||
menutrans Select\ &Word Izaberi\ &re<EFBFBD>
|
menutrans Select\ &Word Izaberi\ &re<EFBFBD>
|
||||||
|
menutrans Select\ &Sentence Izaberi\ r&e<EFBFBD>enicu
|
||||||
|
menutrans Select\ Pa&ragraph Izaberi\ ¶graf
|
||||||
menutrans Select\ &Line Izaberi\ r&ed
|
menutrans Select\ &Line Izaberi\ r&ed
|
||||||
menutrans Select\ &Block Izaberi\ &blok
|
menutrans Select\ &Block Izaberi\ &blok
|
||||||
menutrans Select\ &All Izaberi\ &sve
|
menutrans Select\ &All Izaberi\ &sve
|
||||||
@@ -237,9 +264,9 @@ endif
|
|||||||
|
|
||||||
" Syntax menu
|
" Syntax menu
|
||||||
menutrans &Syntax &Sintaksa
|
menutrans &Syntax &Sintaksa
|
||||||
menutrans &Show\ filetypes\ in\ menu Izbor\ 'filetype'\ iz\ &menija
|
menutrans &Show\ File\ Types\ in\ Menu Prika<EFBFBD>i\ tipove\ datoteka\ u\ &meniju
|
||||||
menutrans Set\ '&syntax'\ only Pode&si\ 'syntax'\ samo
|
menutrans Set\ '&syntax'\ only Pode&si\ samo\ 'syntax'
|
||||||
menutrans Set\ '&filetype'\ too Podesi\ 'filetype'\ &tako<EFBFBD>e
|
menutrans Set\ '&filetype'\ too Podesi\ &tako<EFBFBD>e\ i\ 'filetype'
|
||||||
menutrans &Off &Isklju<EFBFBD>eno
|
menutrans &Off &Isklju<EFBFBD>eno
|
||||||
menutrans &Manual &Ru<EFBFBD>no
|
menutrans &Manual &Ru<EFBFBD>no
|
||||||
menutrans A&utomatic &Automatski
|
menutrans A&utomatic &Automatski
|
||||||
@@ -257,9 +284,13 @@ let g:menutrans_tags_dialog = "Unesite imena datoteka sa oznakama\nRazdvojite za
|
|||||||
|
|
||||||
let g:menutrans_textwidth_dialog = "Unesite novu <20>irinu teksta (0 spre<72>ava prelom)"
|
let g:menutrans_textwidth_dialog = "Unesite novu <20>irinu teksta (0 spre<72>ava prelom)"
|
||||||
|
|
||||||
let g:menutrans_fileformat_dialog = "Izaberite vrstu datoteke"
|
let g:menutrans_fileformat_dialog = "Izaberite format zapisa datoteke"
|
||||||
|
|
||||||
|
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Otka<6B>i"
|
||||||
|
|
||||||
let menutrans_no_file = "[Nema datoteke]"
|
let menutrans_no_file = "[Nema datoteke]"
|
||||||
|
|
||||||
let &cpo = s:keepcpo
|
let &cpo = s:keepcpo
|
||||||
unlet s:keepcpo
|
unlet s:keepcpo
|
||||||
|
|
||||||
|
" vim: tw=0 keymap=serbian
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
" Menu Translations: Serbian
|
" Menu Translations: Serbian
|
||||||
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
||||||
" Last Change: Fri, 30 May 2003 12:02:07 -0400
|
" Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time
|
||||||
|
" Adapted for VIM 8 by: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> on 2017-12-28 12:05+0400
|
||||||
|
|
||||||
" Quit when menu translations have already been done.
|
" Quit when menu translations have already been done.
|
||||||
if exists("did_menu_trans")
|
if exists("did_menu_trans")
|
||||||
@@ -21,6 +22,7 @@ menutrans &Find &
|
|||||||
menutrans &Credits &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Credits &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans Co&pying <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans Co&pying <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans O&rphans &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans O&rphans &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
menutrans &Sponsor/Register <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>
|
||||||
menutrans &Version &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Version &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &About &<26>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &About &<26>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
@@ -28,6 +30,7 @@ menutrans &About &
|
|||||||
menutrans &File &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &File &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Open\.\.\.<Tab>:e &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:e
|
menutrans &Open\.\.\.<Tab>:e &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:e
|
||||||
menutrans Sp&lit-Open\.\.\.<Tab>:sp &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:sp
|
menutrans Sp&lit-Open\.\.\.<Tab>:sp &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:sp
|
||||||
|
menutrans Open\ Tab\.\.\.<Tab>:tabnew <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:tabnew
|
||||||
menutrans &New<Tab>:enew &<26><><EFBFBD><EFBFBD><Tab>:enew
|
menutrans &New<Tab>:enew &<26><><EFBFBD><EFBFBD><Tab>:enew
|
||||||
menutrans &Close<Tab>:close &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:close
|
menutrans &Close<Tab>:close &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:close
|
||||||
menutrans &Save<Tab>:w &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:w
|
menutrans &Save<Tab>:w &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:w
|
||||||
@@ -54,24 +57,27 @@ menutrans &Select\ all<Tab>ggVG
|
|||||||
menutrans &Find\.\.\. &<26><><EFBFBD><EFBFBD>\.\.\.
|
menutrans &Find\.\.\. &<26><><EFBFBD><EFBFBD>\.\.\.
|
||||||
menutrans Find\ and\ Rep&lace\.\.\. <20><><EFBFBD><EFBFBD>\ <20>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
menutrans Find\ and\ Rep&lace\.\.\. <20><><EFBFBD><EFBFBD>\ <20>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
||||||
menutrans Settings\ &Window <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans Settings\ &Window <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
menutrans Startup\ &Settings <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Global\ Settings <20><>&<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Global\ Settings <20><>&<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans F&ile\ Settings <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans F&ile\ Settings <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Shiftwidth &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Shiftwidth &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans Soft\ &Tabstop &<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans Soft\ &Tabstop &<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans Te&xt\ Width\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
menutrans Te&xt\ Width\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
||||||
menutrans &File\ Format\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
menutrans &File\ Format\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
||||||
menutrans C&olor\ Scheme <20><>&<EFBFBD><EFBFBD>
|
menutrans Show\ C&olor\ Schemes\ in\ Menu <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><>&<26><>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Keymap <20><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans C&olor\ Scheme \<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>&<EFBFBD><EFBFBD>
|
||||||
|
menutrans Show\ &Keymaps\ in\ Menu <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
menutrans &Keymap <09><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans Select\ Fo&nt\.\.\. <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
menutrans Select\ Fo&nt\.\.\. <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
||||||
|
|
||||||
" Edit/Global Settings
|
" Edit/Global Settings
|
||||||
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ hls!
|
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ hls!
|
||||||
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ \<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ ic!
|
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ ic!
|
||||||
menutrans Toggle\ &Showmatch<Tab>:set\ sm! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ sm!
|
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ sm!
|
||||||
menutrans &Context\ lines <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Context\ lines <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Virtual\ Edit <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Virtual\ Edit <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! <20><><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ im!
|
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! <20><><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ im!
|
||||||
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! '&Vi'\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ cp!
|
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ cp!
|
||||||
menutrans Search\ &Path\.\.\. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
menutrans Search\ &Path\.\.\. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
||||||
menutrans Ta&g\ Files\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
menutrans Ta&g\ Files\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
|
||||||
menutrans Toggle\ &Toolbar <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)
|
menutrans Toggle\ &Toolbar <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)
|
||||||
@@ -87,28 +93,30 @@ menutrans Block\ and\ Insert
|
|||||||
menutrans Always <20><><EFBFBD><EFBFBD>
|
menutrans Always <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
" Edit/File Settings
|
" Edit/File Settings
|
||||||
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ nu!
|
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ nu!
|
||||||
|
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ rnu!
|
||||||
menutrans Toggle\ &List\ Mode<Tab>:set\ list! <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ list!
|
menutrans Toggle\ &List\ Mode<Tab>:set\ list! <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ list!
|
||||||
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ wrap!
|
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ wrap!
|
||||||
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><>\ <20><><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ lbr!
|
menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><>\ <20><><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ lbr!
|
||||||
menutrans Toggle\ &expand-tab<Tab>:set\ et! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ et!
|
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ et!
|
||||||
menutrans Toggle\ &auto-indent<Tab>:set\ ai! <09><><EFBFBD><EFBFBD>-&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ ai!
|
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! <09><><EFBFBD><EFBFBD>-&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ ai!
|
||||||
menutrans Toggle\ &C-indenting<Tab>:set\ cin! &<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ cin!
|
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! &C-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ cin!
|
||||||
|
|
||||||
" Edit/Keymap
|
" Edit/Keymap
|
||||||
menutrans None <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans None <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
" Tools menu
|
" Tools menu
|
||||||
menutrans &Tools &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Tools &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Jump\ to\ this\ tag<Tab>g^] <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ &<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>g^]
|
menutrans &Jump\ to\ this\ tag<Tab>g^] <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ &<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>g^]
|
||||||
menutrans Jump\ &back<Tab>^T <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^T
|
menutrans Jump\ &back<Tab>^T <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^T
|
||||||
menutrans Build\ &Tags\ File <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans Build\ &Tags\ File <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
menutrans &Spelling <20><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Folding &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Folding &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans Create\ &Fold<Tab>zf <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zf
|
menutrans Create\ &Fold<Tab>zf <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zf
|
||||||
menutrans &Delete\ Fold<Tab>zd <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zd
|
menutrans &Delete\ Fold<Tab>zd <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zd
|
||||||
menutrans Delete\ &All\ Folds<Tab>zD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zD
|
menutrans Delete\ &All\ Folds<Tab>zD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zD
|
||||||
menutrans Fold\ column\ &width <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans Fold\ column\ &width <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Diff &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
"menutrans &Diff &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Make<Tab>:make 'mak&<26>'<Tab>:make
|
menutrans &Make<Tab>:make 'mak&<26>'<Tab>:make
|
||||||
menutrans &List\ Errors<Tab>:cl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cl
|
menutrans &List\ Errors<Tab>:cl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cl
|
||||||
menutrans L&ist\ Messages<Tab>:cl! <20><>&<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cl!
|
menutrans L&ist\ Messages<Tab>:cl! <20><>&<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cl!
|
||||||
@@ -117,9 +125,25 @@ menutrans &Previous\ Error<Tab>:cp
|
|||||||
menutrans &Older\ List<Tab>:cold <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>&<26><Tab>:cold
|
menutrans &Older\ List<Tab>:cold <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>&<26><Tab>:cold
|
||||||
menutrans N&ewer\ List<Tab>:cnew <20><>&<26><>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cnew
|
menutrans N&ewer\ List<Tab>:cnew <20><>&<26><>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cnew
|
||||||
menutrans Error\ &Window <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans Error\ &Window <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Set\ Compiler <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans Se&t\ Compiler <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Convert\ to\ HEX<Tab>:%!xxd <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ &ŵ<EFBFBD><EFBFBD><Tab>:%!xxd
|
menutrans &Convert\ to\ HEX<Tab>:%!xxd <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ &ŵ<EFBFBD><EFBFBD><Tab>:%!xxd
|
||||||
menutrans Conve&rt\ back<Tab>:%!xxd\ -r <20><>&<26><><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><Tab>:%!xxd\ -r
|
menutrans Conve&rt\ back<Tab>:%!xxd\ -r <20><>&<26><><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><Tab>:%!xxd\ -r
|
||||||
|
menutrans Show\ Compiler\ Se&ttings\ in\ Menu <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
" Tools/Spelling
|
||||||
|
menutrans &Spell\ Check\ On &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
menutrans Spell\ Check\ &Off &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
menutrans To\ &Next\ Error<Tab>]s <09><><EFBFBD>\ <20><>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>]s
|
||||||
|
menutrans To\ &Previous\ Error<Tab>[s <09><><EFBFBD>\ <20><>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>[s
|
||||||
|
menutrans Suggest\ &Corrections<Tab>z= <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><Tab>z=
|
||||||
|
menutrans &Repeat\ Correction<Tab>:spellrepall <09>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:spellrepall
|
||||||
|
menutrans Set\ Language\ to\ "en" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en"
|
||||||
|
menutrans Set\ Language\ to\ "en_au" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en_au"
|
||||||
|
menutrans Set\ Language\ to\ "en_ca" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en_ca"
|
||||||
|
menutrans Set\ Language\ to\ "en_gb" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en_gb"
|
||||||
|
menutrans Set\ Language\ to\ "en_nz" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en_nz"
|
||||||
|
menutrans Set\ Language\ to\ "en_us" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en_us"
|
||||||
|
menutrans &Find\ More\ Languages <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
" Tools/Folding
|
" Tools/Folding
|
||||||
menutrans &Enable/Disable\ folds<Tab>zi &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zi
|
menutrans &Enable/Disable\ folds<Tab>zi &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zi
|
||||||
@@ -130,6 +154,7 @@ menutrans &Close\ all\ folds<Tab>zM
|
|||||||
menutrans O&pen\ more\ folds<Tab>zr <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>&<26>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zr
|
menutrans O&pen\ more\ folds<Tab>zr <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>&<26>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zr
|
||||||
menutrans &Open\ all\ folds<Tab>zR <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zR
|
menutrans &Open\ all\ folds<Tab>zR <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zR
|
||||||
menutrans Fold\ Met&hod &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans Fold\ Met&hod &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
menutrans Fold\ Col&umn\ Width <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
" Tools/Folding/Fold Method
|
" Tools/Folding/Fold Method
|
||||||
menutrans M&anual &<26><><EFBFBD><EFBFBD><EFBFBD>
|
menutrans M&anual &<26><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -141,8 +166,8 @@ menutrans Ma&rker &
|
|||||||
|
|
||||||
" Tools/Diff
|
" Tools/Diff
|
||||||
menutrans &Update &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Update &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Get\ Block &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Get\ Block &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>a
|
||||||
menutrans &Put\ Block <09><><EFBFBD>&<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Put\ Block <09><><EFBFBD>&<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
" Tools/Error Window
|
" Tools/Error Window
|
||||||
menutrans &Update<Tab>:cwin &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cwin
|
menutrans &Update<Tab>:cwin &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cwin
|
||||||
@@ -190,8 +215,10 @@ menutrans Cu&t &
|
|||||||
menutrans &Copy &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Copy &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Paste &<26><><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Paste &<26><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Delete <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Delete <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans Select\ Blockwise <20><><EFBFBD><EFBFBD><EFBFBD>\ &<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans Select\ Blockwise <20><><EFBFBD><EFBFBD><EFBFBD>\ <EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans Select\ &Word <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD>
|
menutrans Select\ &Word <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD>
|
||||||
|
menutrans Select\ &Sentence <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
menutrans Select\ Pa&ragraph <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans Select\ &Line <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><>
|
menutrans Select\ &Line <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><>
|
||||||
menutrans Select\ &Block <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD>
|
menutrans Select\ &Block <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD>
|
||||||
menutrans Select\ &All <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD>
|
menutrans Select\ &All <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD>
|
||||||
@@ -237,9 +264,9 @@ endif
|
|||||||
|
|
||||||
" Syntax menu
|
" Syntax menu
|
||||||
menutrans &Syntax &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Syntax &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Show\ filetypes\ in\ menu <20><><EFBFBD><EFBFBD><EFBFBD>\ 'filetype'\ <20><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Show\ File\ Types\ in\ Menu <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans Set\ '&syntax'\ only <20><><EFBFBD><EFBFBD>&<26><>\ 'syntax'\ <20><><EFBFBD><EFBFBD>
|
menutrans Set\ '&syntax'\ only <20><><EFBFBD><EFBFBD>&<26><>\ <20><><EFBFBD><EFBFBD>\ 'syntax'
|
||||||
menutrans Set\ '&filetype'\ too <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ 'filetype'\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans Set\ '&filetype'\ too <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ 'filetype'
|
||||||
menutrans &Off &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Off &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans &Manual &<26><><EFBFBD><EFBFBD><EFBFBD>
|
menutrans &Manual &<26><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
menutrans A&utomatic &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
menutrans A&utomatic &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -257,9 +284,13 @@ let g:menutrans_tags_dialog = "
|
|||||||
|
|
||||||
let g:menutrans_textwidth_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
|
let g:menutrans_textwidth_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
|
||||||
|
|
||||||
let g:menutrans_fileformat_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
let g:menutrans_fileformat_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
|
||||||
|
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
|
||||||
let menutrans_no_file = "[<5B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]"
|
let menutrans_no_file = "[<5B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]"
|
||||||
|
|
||||||
let &cpo = s:keepcpo
|
let &cpo = s:keepcpo
|
||||||
unlet s:keepcpo
|
unlet s:keepcpo
|
||||||
|
|
||||||
|
" vim: tw=0 keymap=serbian
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
" Menu Translations: Serbian
|
" Menu Translations: Serbian
|
||||||
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
||||||
" Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time
|
" Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time
|
||||||
|
" Adapted for VIM 8 by: Иван Пешић on 2017-12-28 12:05+0400
|
||||||
|
|
||||||
" Quit when menu translations have already been done.
|
" Quit when menu translations have already been done.
|
||||||
if exists("did_menu_trans")
|
if exists("did_menu_trans")
|
||||||
@@ -21,6 +22,7 @@ menutrans &Find &Нађи
|
|||||||
menutrans &Credits &Заслуге
|
menutrans &Credits &Заслуге
|
||||||
menutrans Co&pying П&реузимање
|
menutrans Co&pying П&реузимање
|
||||||
menutrans O&rphans &Сирочићи
|
menutrans O&rphans &Сирочићи
|
||||||
|
menutrans &Sponsor/Register Спонзор/&Региструјте\ се
|
||||||
menutrans &Version &Верзија
|
menutrans &Version &Верзија
|
||||||
menutrans &About &О\ програму
|
menutrans &About &О\ програму
|
||||||
|
|
||||||
@@ -28,6 +30,7 @@ menutrans &About &О\ програму
|
|||||||
menutrans &File &Датотека
|
menutrans &File &Датотека
|
||||||
menutrans &Open\.\.\.<Tab>:e &Отвори\.\.\.<Tab>:e
|
menutrans &Open\.\.\.<Tab>:e &Отвори\.\.\.<Tab>:e
|
||||||
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Подели-отвори\.\.\.<Tab>:sp
|
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Подели-отвори\.\.\.<Tab>:sp
|
||||||
|
menutrans Open\ Tab\.\.\.<Tab>:tabnew Отвори\ картицу\.\.\.<Tab>:tabnew
|
||||||
menutrans &New<Tab>:enew &Нова<Tab>:enew
|
menutrans &New<Tab>:enew &Нова<Tab>:enew
|
||||||
menutrans &Close<Tab>:close &Затвори<Tab>:close
|
menutrans &Close<Tab>:close &Затвори<Tab>:close
|
||||||
menutrans &Save<Tab>:w &Сачувај<Tab>:w
|
menutrans &Save<Tab>:w &Сачувај<Tab>:w
|
||||||
@@ -54,24 +57,27 @@ menutrans &Select\ all<Tab>ggVG Изабери\ св&е<Tab>ggVG
|
|||||||
menutrans &Find\.\.\. &Нађи\.\.\.
|
menutrans &Find\.\.\. &Нађи\.\.\.
|
||||||
menutrans Find\ and\ Rep&lace\.\.\. Нађи\ и\ &замени\.\.\.
|
menutrans Find\ and\ Rep&lace\.\.\. Нађи\ и\ &замени\.\.\.
|
||||||
menutrans Settings\ &Window П&розор\ подешавања
|
menutrans Settings\ &Window П&розор\ подешавања
|
||||||
|
menutrans Startup\ &Settings По&дешавања\ при\ покретању
|
||||||
menutrans &Global\ Settings Оп&шта\ подешавања
|
menutrans &Global\ Settings Оп&шта\ подешавања
|
||||||
menutrans F&ile\ Settings Подешавања\ за\ да&тотеке
|
menutrans F&ile\ Settings Подешавања\ за\ да&тотеке
|
||||||
menutrans &Shiftwidth &Померај
|
menutrans &Shiftwidth &Померај
|
||||||
menutrans Soft\ &Tabstop &Мека\ табулација
|
menutrans Soft\ &Tabstop &Мека\ табулација
|
||||||
menutrans Te&xt\ Width\.\.\. &Ширина\ текста\.\.\.
|
menutrans Te&xt\ Width\.\.\. &Ширина\ текста\.\.\.
|
||||||
menutrans &File\ Format\.\.\. &Врста\ датотеке\.\.\.
|
menutrans &File\ Format\.\.\. &Врста\ датотеке\.\.\.
|
||||||
menutrans C&olor\ Scheme Бо&је
|
menutrans Show\ C&olor\ Schemes\ in\ Menu Прикажи\ шеме\ бо&ја\ у\ менију
|
||||||
menutrans &Keymap Прес&ликавање\ тастатуре
|
menutrans C&olor\ Scheme \Шеме\ бо&ја
|
||||||
|
menutrans Show\ &Keymaps\ in\ Menu Прикажи\ прес&ликавања\ тастатуре\ у\ менију
|
||||||
|
menutrans &Keymap Прес&ликавања\ тастатуре
|
||||||
menutrans Select\ Fo&nt\.\.\. Избор\ &фонта\.\.\.
|
menutrans Select\ Fo&nt\.\.\. Избор\ &фонта\.\.\.
|
||||||
|
|
||||||
" Edit/Global Settings
|
" Edit/Global Settings
|
||||||
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Нагласи\ &образце\ (да/не)<Tab>:set\ hls!
|
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Нагласи\ &образце\ (да/не)<Tab>:set\ hls!
|
||||||
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! Занемари\ \величину\ &слова\ (да/не)<Tab>:set\ ic!
|
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Занемари\ величину\ &слова\ (да/не)<Tab>:set\ ic!
|
||||||
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Провери\ пратећу\ &заграду\ (да/не)<Tab>:set\ sm!
|
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Провери\ пратећу\ &заграду\ (да/не)<Tab>:set\ sm!
|
||||||
menutrans &Context\ lines Видљиви\ &редови
|
menutrans &Context\ lines Видљиви\ &редови
|
||||||
menutrans &Virtual\ Edit Виртуелно\ &уређивање
|
menutrans &Virtual\ Edit Виртуелно\ &уређивање
|
||||||
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Режим\ у&носа\ (да/не)<Tab>:set\ im!
|
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Режим\ у&носа\ (да/не)<Tab>:set\ im!
|
||||||
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! '&Vi'\ сагласно\ (да/не)<Tab>:set\ cp!
|
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ сагласно\ (да/не)<Tab>:set\ cp!
|
||||||
menutrans Search\ &Path\.\.\. Путања\ &претраге\.\.\.
|
menutrans Search\ &Path\.\.\. Путања\ &претраге\.\.\.
|
||||||
menutrans Ta&g\ Files\.\.\. &Датотеке\ ознака\.\.\.
|
menutrans Ta&g\ Files\.\.\. &Датотеке\ ознака\.\.\.
|
||||||
menutrans Toggle\ &Toolbar Линија\ са\ &алаткама\ (да/не)
|
menutrans Toggle\ &Toolbar Линија\ са\ &алаткама\ (да/не)
|
||||||
@@ -87,28 +93,30 @@ menutrans Block\ and\ Insert Блок\ и\ унос
|
|||||||
menutrans Always Увек
|
menutrans Always Увек
|
||||||
|
|
||||||
" Edit/File Settings
|
" Edit/File Settings
|
||||||
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Редни\ &бројеви\ (да/не)<Tab>:set\ nu!
|
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Прикажи\ &нумерацију\ линија\ (да/не)<Tab>:set\ nu!
|
||||||
|
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Прикажи\ Релати&вну\ нумерацију\ линија\ (да/не)<Tab>:set\ rnu!
|
||||||
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Режим\ &листе\ (да/не)<Tab>:set\ list!
|
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Режим\ &листе\ (да/не)<Tab>:set\ list!
|
||||||
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! Обавијање\ &редова\ (да/не)<Tab>:set\ wrap!
|
menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! Обавијање\ &редова\ (да/не)<Tab>:set\ wrap!
|
||||||
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Преломи\ &на\ реч\ (да/не)<Tab>:set\ lbr!
|
menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! Преломи\ &на\ реч\ (да/не)<Tab>:set\ lbr!
|
||||||
menutrans Toggle\ &expand-tab<Tab>:set\ et! Размаци\ уместо\ &табулације\ (да/не)<Tab>:set\ et!
|
menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! Размаци\ уместо\ &табулације\ (да/не)<Tab>:set\ et!
|
||||||
menutrans Toggle\ &auto-indent<Tab>:set\ ai! Ауто-&увлачење\ (да/не)<Tab>:set\ ai!
|
menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! Ауто-&увлачење\ (да/не)<Tab>:set\ ai!
|
||||||
menutrans Toggle\ &C-indenting<Tab>:set\ cin! &Це-увлачење\ (да/не)<Tab>:set\ cin!
|
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! &C-увлачење\ (да/не)<Tab>:set\ cin!
|
||||||
|
|
||||||
" Edit/Keymap
|
" Edit/Keymap
|
||||||
menutrans None Ниједан
|
menutrans None Без\ пресликавања
|
||||||
|
|
||||||
" Tools menu
|
" Tools menu
|
||||||
menutrans &Tools &Алатке
|
menutrans &Tools &Алатке
|
||||||
menutrans &Jump\ to\ this\ tag<Tab>g^] Скочи\ на\ &ову\ ознаку<Tab>g^]
|
menutrans &Jump\ to\ this\ tag<Tab>g^] Скочи\ на\ &ову\ ознаку<Tab>g^]
|
||||||
menutrans Jump\ &back<Tab>^T Скочи\ &натраг<Tab>^T
|
menutrans Jump\ &back<Tab>^T Скочи\ &натраг<Tab>^T
|
||||||
menutrans Build\ &Tags\ File Изгради\ &датотеку\ ознака
|
menutrans Build\ &Tags\ File Изгради\ &датотеку\ ознака
|
||||||
|
menutrans &Spelling Пра&вопис
|
||||||
menutrans &Folding &Подвијање
|
menutrans &Folding &Подвијање
|
||||||
menutrans Create\ &Fold<Tab>zf С&твори\ подвијутак<Tab>zf
|
menutrans Create\ &Fold<Tab>zf С&твори\ подвијутак<Tab>zf
|
||||||
menutrans &Delete\ Fold<Tab>zd О&бриши\ подвијутак<Tab>zd
|
menutrans &Delete\ Fold<Tab>zd О&бриши\ подвијутак<Tab>zd
|
||||||
menutrans Delete\ &All\ Folds<Tab>zD Обриши\ све\ по&двијутке<Tab>zD
|
menutrans Delete\ &All\ Folds<Tab>zD Обриши\ све\ по&двијутке<Tab>zD
|
||||||
menutrans Fold\ column\ &width Ширина\ &реда\ подвијутка
|
menutrans Fold\ column\ &width Ширина\ &реда\ подвијутка
|
||||||
menutrans &Diff &Упоређивање
|
"menutrans &Diff &Упоређивање
|
||||||
menutrans &Make<Tab>:make 'mak&е'<Tab>:make
|
menutrans &Make<Tab>:make 'mak&е'<Tab>:make
|
||||||
menutrans &List\ Errors<Tab>:cl Списак\ &грешака<Tab>:cl
|
menutrans &List\ Errors<Tab>:cl Списак\ &грешака<Tab>:cl
|
||||||
menutrans L&ist\ Messages<Tab>:cl! Сп&исак\ порука<Tab>:cl!
|
menutrans L&ist\ Messages<Tab>:cl! Сп&исак\ порука<Tab>:cl!
|
||||||
@@ -117,9 +125,25 @@ menutrans &Previous\ Error<Tab>:cp Пре&тходна\ грешка<Tab>:cp
|
|||||||
menutrans &Older\ List<Tab>:cold Стари\ списа&к<Tab>:cold
|
menutrans &Older\ List<Tab>:cold Стари\ списа&к<Tab>:cold
|
||||||
menutrans N&ewer\ List<Tab>:cnew Но&ви\ списак<Tab>:cnew
|
menutrans N&ewer\ List<Tab>:cnew Но&ви\ списак<Tab>:cnew
|
||||||
menutrans Error\ &Window Прозор\ са\ г&решкама
|
menutrans Error\ &Window Прозор\ са\ г&решкама
|
||||||
menutrans &Set\ Compiler И&забери\ преводиоца
|
menutrans Se&t\ Compiler И&забери\ преводиоца
|
||||||
menutrans &Convert\ to\ HEX<Tab>:%!xxd Претвори\ у\ &ХЕКС<Tab>:%!xxd
|
menutrans &Convert\ to\ HEX<Tab>:%!xxd Претвори\ у\ &ХЕКС<Tab>:%!xxd
|
||||||
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Вр&ати\ у\ првобитан\ облик<Tab>:%!xxd\ -r
|
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Вр&ати\ у\ првобитан\ облик<Tab>:%!xxd\ -r
|
||||||
|
menutrans Show\ Compiler\ Se&ttings\ in\ Menu Прикажи\ поде&шавања\ преводиоца\ у\ менију
|
||||||
|
|
||||||
|
" Tools/Spelling
|
||||||
|
menutrans &Spell\ Check\ On &Укључи\ проверу\ правописа
|
||||||
|
menutrans Spell\ Check\ &Off &Искључи\ проверу\ правописа
|
||||||
|
menutrans To\ &Next\ Error<Tab>]s Иди\ на\ &следећу\ грешку<Tab>]s
|
||||||
|
menutrans To\ &Previous\ Error<Tab>[s Иди\ на\ &претходну\ грешку<Tab>[s
|
||||||
|
menutrans Suggest\ &Corrections<Tab>z= Предложи\ исп&равке<Tab>z=
|
||||||
|
menutrans &Repeat\ Correction<Tab>:spellrepall П&онови\ исправку<Tab>:spellrepall
|
||||||
|
menutrans Set\ Language\ to\ "en" Постави\ језик\ на\ "en"
|
||||||
|
menutrans Set\ Language\ to\ "en_au" Постави\ језик\ на\ "en_au"
|
||||||
|
menutrans Set\ Language\ to\ "en_ca" Постави\ језик\ на\ "en_ca"
|
||||||
|
menutrans Set\ Language\ to\ "en_gb" Постави\ језик\ на\ "en_gb"
|
||||||
|
menutrans Set\ Language\ to\ "en_nz" Постави\ језик\ на\ "en_nz"
|
||||||
|
menutrans Set\ Language\ to\ "en_us" Постави\ језик\ на\ "en_us"
|
||||||
|
menutrans &Find\ More\ Languages Пронађи\ још\ језика
|
||||||
|
|
||||||
" Tools/Folding
|
" Tools/Folding
|
||||||
menutrans &Enable/Disable\ folds<Tab>zi &Омогући/прекини\ подвијање<Tab>zi
|
menutrans &Enable/Disable\ folds<Tab>zi &Омогући/прекини\ подвијање<Tab>zi
|
||||||
@@ -130,6 +154,7 @@ menutrans &Close\ all\ folds<Tab>zM Затвори\ с&ве\ подвијут
|
|||||||
menutrans O&pen\ more\ folds<Tab>zr Отвори\ виш&е\ подвијутака<Tab>zr
|
menutrans O&pen\ more\ folds<Tab>zr Отвори\ виш&е\ подвијутака<Tab>zr
|
||||||
menutrans &Open\ all\ folds<Tab>zR О&твори\ све\ подвијутке<Tab>zR
|
menutrans &Open\ all\ folds<Tab>zR О&твори\ све\ подвијутке<Tab>zR
|
||||||
menutrans Fold\ Met&hod &Начин\ подвијања
|
menutrans Fold\ Met&hod &Начин\ подвијања
|
||||||
|
menutrans Fold\ Col&umn\ Width Ширина\ колоне\ испред\ подвијутака
|
||||||
|
|
||||||
" Tools/Folding/Fold Method
|
" Tools/Folding/Fold Method
|
||||||
menutrans M&anual &Ручно
|
menutrans M&anual &Ручно
|
||||||
@@ -141,8 +166,8 @@ menutrans Ma&rker &Ознака
|
|||||||
|
|
||||||
" Tools/Diff
|
" Tools/Diff
|
||||||
menutrans &Update &Ажурирај
|
menutrans &Update &Ажурирај
|
||||||
menutrans &Get\ Block &Прихвати\ измену
|
menutrans &Get\ Block &Прихвати\ блок\ изменa
|
||||||
menutrans &Put\ Block Пре&баци\ измену
|
menutrans &Put\ Block Пре&баци\ блок\ измена
|
||||||
|
|
||||||
" Tools/Error Window
|
" Tools/Error Window
|
||||||
menutrans &Update<Tab>:cwin &Ажурирај<Tab>:cwin
|
menutrans &Update<Tab>:cwin &Ажурирај<Tab>:cwin
|
||||||
@@ -190,8 +215,10 @@ menutrans Cu&t &Исеци
|
|||||||
menutrans &Copy &Копирај
|
menutrans &Copy &Копирај
|
||||||
menutrans &Paste &Убаци
|
menutrans &Paste &Убаци
|
||||||
menutrans &Delete И&збриши
|
menutrans &Delete И&збриши
|
||||||
menutrans Select\ Blockwise Бирај\ &правоугаоно
|
menutrans Select\ Blockwise Бирај\ б&локовски
|
||||||
menutrans Select\ &Word Изабери\ &реч
|
menutrans Select\ &Word Изабери\ &реч
|
||||||
|
menutrans Select\ &Sentence Изабери\ р&еченицу
|
||||||
|
menutrans Select\ Pa&ragraph Изабери\ &параграф
|
||||||
menutrans Select\ &Line Изабери\ р&ед
|
menutrans Select\ &Line Изабери\ р&ед
|
||||||
menutrans Select\ &Block Изабери\ &блок
|
menutrans Select\ &Block Изабери\ &блок
|
||||||
menutrans Select\ &All Изабери\ &све
|
menutrans Select\ &All Изабери\ &све
|
||||||
@@ -237,9 +264,9 @@ endif
|
|||||||
|
|
||||||
" Syntax menu
|
" Syntax menu
|
||||||
menutrans &Syntax &Синтакса
|
menutrans &Syntax &Синтакса
|
||||||
menutrans &Show\ filetypes\ in\ menu Избор\ 'filetype'\ из\ &менија
|
menutrans &Show\ File\ Types\ in\ Menu Прикажи\ типове\ датотека\ у\ &менију
|
||||||
menutrans Set\ '&syntax'\ only Поде&си\ 'syntax'\ само
|
menutrans Set\ '&syntax'\ only Поде&си\ само\ 'syntax'
|
||||||
menutrans Set\ '&filetype'\ too Подеси\ 'filetype'\ &такође
|
menutrans Set\ '&filetype'\ too Подеси\ &такође\ и\ 'filetype'
|
||||||
menutrans &Off &Искључено
|
menutrans &Off &Искључено
|
||||||
menutrans &Manual &Ручно
|
menutrans &Manual &Ручно
|
||||||
menutrans A&utomatic &Аутоматски
|
menutrans A&utomatic &Аутоматски
|
||||||
@@ -257,7 +284,9 @@ let g:menutrans_tags_dialog = "Унесите имена датотека са
|
|||||||
|
|
||||||
let g:menutrans_textwidth_dialog = "Унесите нову ширину текста (0 спречава прелом)"
|
let g:menutrans_textwidth_dialog = "Унесите нову ширину текста (0 спречава прелом)"
|
||||||
|
|
||||||
let g:menutrans_fileformat_dialog = "Изаберите врсту датотеке"
|
let g:menutrans_fileformat_dialog = "Изаберите формат записа датотеке"
|
||||||
|
|
||||||
|
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Откажи"
|
||||||
|
|
||||||
let menutrans_no_file = "[Нема датотеке]"
|
let menutrans_no_file = "[Нема датотеке]"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" These commands create the option window.
|
" These commands create the option window.
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2017 Nov 21
|
" Last Change: 2018 Feb 27
|
||||||
|
|
||||||
" If there already is an option window, jump to that one.
|
" If there already is an option window, jump to that one.
|
||||||
let buf = bufnr('option-window')
|
let buf = bufnr('option-window')
|
||||||
@@ -122,11 +122,13 @@ fun! <SID>Update(lnum, line, local, thiswin)
|
|||||||
endfun
|
endfun
|
||||||
|
|
||||||
" Reset 'title' and 'icon' to make it work faster.
|
" Reset 'title' and 'icon' to make it work faster.
|
||||||
|
" Reset 'undolevels' to avoid undo'ing until the buffer is empty.
|
||||||
let s:old_title = &title
|
let s:old_title = &title
|
||||||
let s:old_icon = &icon
|
let s:old_icon = &icon
|
||||||
let s:old_sc = &sc
|
let s:old_sc = &sc
|
||||||
let s:old_ru = &ru
|
let s:old_ru = &ru
|
||||||
set notitle noicon nosc noru
|
let s:old_ul = &ul
|
||||||
|
set notitle noicon nosc noru ul=-1
|
||||||
|
|
||||||
" If the current window is a help window, try finding a non-help window.
|
" If the current window is a help window, try finding a non-help window.
|
||||||
" Relies on syntax highlighting to be switched on.
|
" Relies on syntax highlighting to be switched on.
|
||||||
@@ -756,7 +758,7 @@ call <SID>OptionG("km", &km)
|
|||||||
call <SID>Header("editing text")
|
call <SID>Header("editing text")
|
||||||
call append("$", "undolevels\tmaximum number of changes that can be undone")
|
call append("$", "undolevels\tmaximum number of changes that can be undone")
|
||||||
call append("$", "\t(global or local to buffer)")
|
call append("$", "\t(global or local to buffer)")
|
||||||
call append("$", " \tset ul=" . &ul)
|
call append("$", " \tset ul=" . s:old_ul)
|
||||||
call append("$", "undofile\tautomatically save and restore undo history")
|
call append("$", "undofile\tautomatically save and restore undo history")
|
||||||
call <SID>BinOptionG("udf", &udf)
|
call <SID>BinOptionG("udf", &udf)
|
||||||
call append("$", "undodir\tlist of directories for undo files")
|
call append("$", "undodir\tlist of directories for undo files")
|
||||||
@@ -802,6 +804,8 @@ if has("insert_expand")
|
|||||||
call <SID>OptionG("cot", &cot)
|
call <SID>OptionG("cot", &cot)
|
||||||
call append("$", "pumheight\tmaximum height of the popup menu")
|
call append("$", "pumheight\tmaximum height of the popup menu")
|
||||||
call <SID>OptionG("ph", &ph)
|
call <SID>OptionG("ph", &ph)
|
||||||
|
call append("$", "pumwidth\tminimum width of the popup menu")
|
||||||
|
call <SID>OptionG("pw", &pw)
|
||||||
call append("$", "completefunc\tuser defined function for Insert mode completion")
|
call append("$", "completefunc\tuser defined function for Insert mode completion")
|
||||||
call append("$", "\t(local to buffer)")
|
call append("$", "\t(local to buffer)")
|
||||||
call <SID>OptionL("cfu")
|
call <SID>OptionL("cfu")
|
||||||
@@ -1354,10 +1358,18 @@ if exists("&pythondll")
|
|||||||
call append("$", "pythondll\tname of the Python 2 dynamic library")
|
call append("$", "pythondll\tname of the Python 2 dynamic library")
|
||||||
call <SID>OptionG("pythondll", &pythondll)
|
call <SID>OptionG("pythondll", &pythondll)
|
||||||
endif
|
endif
|
||||||
|
if exists("&pythonhome")
|
||||||
|
call append("$", "pythonhome\tname of the Python 2 home directory")
|
||||||
|
call <SID>OptionG("pythonhome", &pythonhome)
|
||||||
|
endif
|
||||||
if exists("&pythonthreedll")
|
if exists("&pythonthreedll")
|
||||||
call append("$", "pythonthreedll\tname of the Python 3 dynamic library")
|
call append("$", "pythonthreedll\tname of the Python 3 dynamic library")
|
||||||
call <SID>OptionG("pythonthreedll", &pythonthreedll)
|
call <SID>OptionG("pythonthreedll", &pythonthreedll)
|
||||||
endif
|
endif
|
||||||
|
if exists("&pythonthreehome")
|
||||||
|
call append("$", "pythonthreehome\tname of the Python 3 home directory")
|
||||||
|
call <SID>OptionG("pythonthreehome", &pythonthreehome)
|
||||||
|
endif
|
||||||
if exists("&rubydll")
|
if exists("&rubydll")
|
||||||
call append("$", "rubydll\tname of the Ruby dynamic library")
|
call append("$", "rubydll\tname of the Ruby dynamic library")
|
||||||
call <SID>OptionG("rubydll", &rubydll)
|
call <SID>OptionG("rubydll", &rubydll)
|
||||||
@@ -1428,6 +1440,7 @@ let &icon = s:old_icon
|
|||||||
let &ru = s:old_ru
|
let &ru = s:old_ru
|
||||||
let &sc = s:old_sc
|
let &sc = s:old_sc
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
unlet s:old_title s:old_icon s:old_ru s:old_sc s:cpo_save s:idx s:lnum
|
let &ul = s:old_ul
|
||||||
|
unlet s:old_title s:old_icon s:old_ru s:old_sc s:cpo_save s:idx s:lnum s:old_ul
|
||||||
|
|
||||||
" vim: ts=8 sw=2 sts=2
|
" vim: ts=8 sw=2 sts=2
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ endfunc
|
|||||||
" Install commands in the current window to control the debugger.
|
" Install commands in the current window to control the debugger.
|
||||||
func s:InstallCommands()
|
func s:InstallCommands()
|
||||||
command Break call s:SetBreakpoint()
|
command Break call s:SetBreakpoint()
|
||||||
command Delete call s:DeleteBreakpoint()
|
command Clear call s:ClearBreakpoint()
|
||||||
command Step call s:SendCommand('-exec-step')
|
command Step call s:SendCommand('-exec-step')
|
||||||
command Over call s:SendCommand('-exec-next')
|
command Over call s:SendCommand('-exec-next')
|
||||||
command Finish call s:SendCommand('-exec-finish')
|
command Finish call s:SendCommand('-exec-finish')
|
||||||
@@ -212,24 +212,42 @@ func s:InstallCommands()
|
|||||||
command -range -nargs=* Evaluate call s:Evaluate(<range>, <q-args>)
|
command -range -nargs=* Evaluate call s:Evaluate(<range>, <q-args>)
|
||||||
command Gdb call win_gotoid(s:gdbwin)
|
command Gdb call win_gotoid(s:gdbwin)
|
||||||
command Program call win_gotoid(s:ptywin)
|
command Program call win_gotoid(s:ptywin)
|
||||||
|
command Winbar call s:InstallWinbar()
|
||||||
|
|
||||||
" TODO: can the K mapping be restored?
|
" TODO: can the K mapping be restored?
|
||||||
nnoremap K :Evaluate<CR>
|
nnoremap K :Evaluate<CR>
|
||||||
|
|
||||||
if has('menu') && &mouse != ''
|
if has('menu') && &mouse != ''
|
||||||
|
call s:InstallWinbar()
|
||||||
|
|
||||||
|
if !exists('g:termdebug_popup') || g:termdebug_popup != 0
|
||||||
|
let s:saved_mousemodel = &mousemodel
|
||||||
|
let &mousemodel = 'popup_setpos'
|
||||||
|
an 1.200 PopUp.-SEP3- <Nop>
|
||||||
|
an 1.210 PopUp.Set\ breakpoint :Break<CR>
|
||||||
|
an 1.220 PopUp.Clear\ breakpoint :Clear<CR>
|
||||||
|
an 1.230 PopUp.Evaluate :Evaluate<CR>
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
let s:winbar_winids = []
|
||||||
|
|
||||||
|
" Install the window toolbar in the current window.
|
||||||
|
func s:InstallWinbar()
|
||||||
nnoremenu WinBar.Step :Step<CR>
|
nnoremenu WinBar.Step :Step<CR>
|
||||||
nnoremenu WinBar.Next :Over<CR>
|
nnoremenu WinBar.Next :Over<CR>
|
||||||
nnoremenu WinBar.Finish :Finish<CR>
|
nnoremenu WinBar.Finish :Finish<CR>
|
||||||
nnoremenu WinBar.Cont :Continue<CR>
|
nnoremenu WinBar.Cont :Continue<CR>
|
||||||
nnoremenu WinBar.Stop :Stop<CR>
|
nnoremenu WinBar.Stop :Stop<CR>
|
||||||
nnoremenu WinBar.Eval :Evaluate<CR>
|
nnoremenu WinBar.Eval :Evaluate<CR>
|
||||||
endif
|
call add(s:winbar_winids, win_getid(winnr()))
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Delete installed debugger commands in the current window.
|
" Delete installed debugger commands in the current window.
|
||||||
func s:DeleteCommands()
|
func s:DeleteCommands()
|
||||||
delcommand Break
|
delcommand Break
|
||||||
delcommand Delete
|
delcommand Clear
|
||||||
delcommand Step
|
delcommand Step
|
||||||
delcommand Over
|
delcommand Over
|
||||||
delcommand Finish
|
delcommand Finish
|
||||||
@@ -240,10 +258,15 @@ func s:DeleteCommands()
|
|||||||
delcommand Evaluate
|
delcommand Evaluate
|
||||||
delcommand Gdb
|
delcommand Gdb
|
||||||
delcommand Program
|
delcommand Program
|
||||||
|
delcommand Winbar
|
||||||
|
|
||||||
nunmap K
|
nunmap K
|
||||||
|
|
||||||
if has('menu')
|
if has('menu')
|
||||||
|
" Remove the WinBar entries from all windows where it was added.
|
||||||
|
let curwinid = win_getid(winnr())
|
||||||
|
for winid in s:winbar_winids
|
||||||
|
if win_gotoid(winid)
|
||||||
aunmenu WinBar.Step
|
aunmenu WinBar.Step
|
||||||
aunmenu WinBar.Next
|
aunmenu WinBar.Next
|
||||||
aunmenu WinBar.Finish
|
aunmenu WinBar.Finish
|
||||||
@@ -251,6 +274,19 @@ func s:DeleteCommands()
|
|||||||
aunmenu WinBar.Stop
|
aunmenu WinBar.Stop
|
||||||
aunmenu WinBar.Eval
|
aunmenu WinBar.Eval
|
||||||
endif
|
endif
|
||||||
|
endfor
|
||||||
|
call win_gotoid(curwinid)
|
||||||
|
let s:winbar_winids = []
|
||||||
|
|
||||||
|
if exists('s:saved_mousemodel')
|
||||||
|
let &mousemodel = s:saved_mousemodel
|
||||||
|
unlet s:saved_mousemodel
|
||||||
|
aunmenu PopUp.-SEP3-
|
||||||
|
aunmenu PopUp.Set\ breakpoint
|
||||||
|
aunmenu PopUp.Clear\ breakpoint
|
||||||
|
aunmenu PopUp.Evaluate
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
exe 'sign unplace ' . s:pc_id
|
exe 'sign unplace ' . s:pc_id
|
||||||
for key in keys(s:breakpoints)
|
for key in keys(s:breakpoints)
|
||||||
@@ -278,8 +314,8 @@ func s:SetBreakpoint()
|
|||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" :Delete - Delete a breakpoint at the cursor position.
|
" :Clear - Delete a breakpoint at the cursor position.
|
||||||
func s:DeleteBreakpoint()
|
func s:ClearBreakpoint()
|
||||||
let fname = fnameescape(expand('%:p'))
|
let fname = fnameescape(expand('%:p'))
|
||||||
let lnum = line('.')
|
let lnum = line('.')
|
||||||
for [key, val] in items(s:breakpoints)
|
for [key, val] in items(s:breakpoints)
|
||||||
@@ -325,9 +361,11 @@ func s:Evaluate(range, arg)
|
|||||||
else
|
else
|
||||||
let expr = expand('<cexpr>')
|
let expr = expand('<cexpr>')
|
||||||
endif
|
endif
|
||||||
|
let s:ignoreEvalError = 0
|
||||||
call s:SendEval(expr)
|
call s:SendEval(expr)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
let s:ignoreEvalError = 0
|
||||||
let s:evalFromBalloonExpr = 0
|
let s:evalFromBalloonExpr = 0
|
||||||
|
|
||||||
" Handle the result of data-evaluate-expression
|
" Handle the result of data-evaluate-expression
|
||||||
@@ -347,6 +385,7 @@ func s:HandleEvaluate(msg)
|
|||||||
|
|
||||||
if s:evalexpr[0] != '*' && value =~ '^0x' && value != '0x0' && value !~ '"$'
|
if s:evalexpr[0] != '*' && value =~ '^0x' && value != '0x0' && value !~ '"$'
|
||||||
" Looks like a pointer, also display what it points to.
|
" Looks like a pointer, also display what it points to.
|
||||||
|
let s:ignoreEvalError = 1
|
||||||
call s:SendEval('*' . s:evalexpr)
|
call s:SendEval('*' . s:evalexpr)
|
||||||
else
|
else
|
||||||
let s:evalFromBalloonExpr = 0
|
let s:evalFromBalloonExpr = 0
|
||||||
@@ -359,19 +398,19 @@ func TermDebugBalloonExpr()
|
|||||||
if v:beval_winid != s:startwin
|
if v:beval_winid != s:startwin
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
call s:SendEval(v:beval_text)
|
|
||||||
let s:evalFromBalloonExpr = 1
|
let s:evalFromBalloonExpr = 1
|
||||||
let s:evalFromBalloonExprResult = ''
|
let s:evalFromBalloonExprResult = ''
|
||||||
|
let s:ignoreEvalError = 1
|
||||||
|
call s:SendEval(v:beval_text)
|
||||||
return ''
|
return ''
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Handle an error.
|
" Handle an error.
|
||||||
func s:HandleError(msg)
|
func s:HandleError(msg)
|
||||||
if a:msg =~ 'No symbol .* in current context'
|
if s:ignoreEvalError
|
||||||
\ || a:msg =~ 'Cannot access memory at address '
|
|
||||||
\ || a:msg =~ 'Attempt to use a type name as an expression'
|
|
||||||
\ || a:msg =~ 'A syntax error in expression,'
|
|
||||||
" Result of s:SendEval() failed, ignore.
|
" Result of s:SendEval() failed, ignore.
|
||||||
|
let s:ignoreEvalError = 0
|
||||||
|
let s:evalFromBalloonExpr = 0
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
echoerr substitute(a:msg, '.*msg="\(.*\)"', '\1', '')
|
echoerr substitute(a:msg, '.*msg="\(.*\)"', '\1', '')
|
||||||
|
|||||||
@@ -1,29 +1,30 @@
|
|||||||
" Vim plugin for using Vim as manpager.
|
" Vim plugin for using Vim as manpager.
|
||||||
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
|
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
|
||||||
" Last Change: 2017 November 07
|
" Last Change: 2018 Feb 04
|
||||||
|
|
||||||
" $MAN_PN is supposed to be set by MANPAGER, see ":help manpager.vim".
|
command! -nargs=0 MANPAGER call s:ManPager() | delcommand MANPAGER
|
||||||
if empty($MAN_PN)
|
|
||||||
finish
|
function! s:ManPager()
|
||||||
|
set nocompatible
|
||||||
|
if exists('+viminfofile')
|
||||||
|
set viminfofile=NONE
|
||||||
endif
|
endif
|
||||||
|
set noswapfile
|
||||||
|
|
||||||
command! -nargs=0 MANPAGER call s:MANPAGER() | delcommand MANPAGER
|
setlocal ft=man
|
||||||
|
runtime ftplugin/man.vim
|
||||||
|
setlocal buftype=nofile bufhidden=hide iskeyword+=: modifiable
|
||||||
|
|
||||||
function! s:MANPAGER()
|
" Emulate 'col -b'
|
||||||
let page_pattern = '\v\w[-_.:0-9A-Za-z]*'
|
silent keepj keepp %s/\v(.)\b\ze\1?//ge
|
||||||
let sec_pattern = '\v\w+%(\+\w+)*'
|
|
||||||
let pagesec_pattern = '\v(' . page_pattern . ')\((' . sec_pattern . ')\)'
|
|
||||||
|
|
||||||
if $MAN_PN is '1'
|
" Remove empty lines above the header
|
||||||
let manpage = tolower(matchstr( getline(nextnonblank(1)), '^' . pagesec_pattern ))
|
call cursor(1, 1)
|
||||||
else
|
let n = search(".*(.*)", "c")
|
||||||
let manpage = expand($MAN_PN)
|
if n > 1
|
||||||
|
exe "1," . n-1 . "d"
|
||||||
endif
|
endif
|
||||||
|
setlocal nomodified readonly
|
||||||
|
|
||||||
let page_sec = matchlist(manpage, '^' . pagesec_pattern . '$')
|
syntax on
|
||||||
|
|
||||||
bwipe!
|
|
||||||
|
|
||||||
setlocal filetype=man
|
|
||||||
exe 'Man' page_sec[2] page_sec[1]
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim support file to detect file types in scripts
|
" Vim support file to detect file types in scripts
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last change: 2017 Nov 11
|
" Last change: 2018 Feb 03
|
||||||
|
|
||||||
" This file is called by an autocommand for every file that has just been
|
" This file is called by an autocommand for every file that has just been
|
||||||
" loaded into a buffer. It checks if the type of file can be recognized by
|
" loaded into a buffer. It checks if the type of file can be recognized by
|
||||||
@@ -100,6 +100,10 @@ if s:line1 =~# "^#!"
|
|||||||
elseif s:name =~# 'make\>'
|
elseif s:name =~# 'make\>'
|
||||||
set ft=make
|
set ft=make
|
||||||
|
|
||||||
|
" Pike
|
||||||
|
elseif s:name =~# '^pike\%(\>\|[0-9]\)'
|
||||||
|
set ft=pike
|
||||||
|
|
||||||
" Lua
|
" Lua
|
||||||
elseif s:name =~# 'lua'
|
elseif s:name =~# 'lua'
|
||||||
set ft=lua
|
set ft=lua
|
||||||
@@ -129,7 +133,7 @@ if s:line1 =~# "^#!"
|
|||||||
set ft=ruby
|
set ft=ruby
|
||||||
|
|
||||||
" JavaScript
|
" JavaScript
|
||||||
elseif s:name =~# 'node\(js\)\=\>' || s:name =~# 'rhino\>'
|
elseif s:name =~# 'node\(js\)\=\>\|js\>' || s:name =~# 'rhino\>'
|
||||||
set ft=javascript
|
set ft=javascript
|
||||||
|
|
||||||
" BC calculator
|
" BC calculator
|
||||||
@@ -172,6 +176,10 @@ if s:line1 =~# "^#!"
|
|||||||
elseif s:name =~# 'scala\>'
|
elseif s:name =~# 'scala\>'
|
||||||
set ft=scala
|
set ft=scala
|
||||||
|
|
||||||
|
" Clojure
|
||||||
|
elseif s:name =~# 'clojure'
|
||||||
|
set ft=clojure
|
||||||
|
|
||||||
endif
|
endif
|
||||||
unlet s:name
|
unlet s:name
|
||||||
|
|
||||||
|
|||||||
142
runtime/spell/sr/main.aap
Normal file
142
runtime/spell/sr/main.aap
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
# Aap recipe for Serbian Vim spell files.
|
||||||
|
|
||||||
|
# Use a freshly compiled Vim if it exists.
|
||||||
|
@if os.path.exists('../../../src/vim'):
|
||||||
|
VIM = ../../../src/vim
|
||||||
|
@else:
|
||||||
|
:progsearch VIM vim
|
||||||
|
|
||||||
|
SPELLDIR = ..
|
||||||
|
FILES = sr_RS.aff sr_RS.dic
|
||||||
|
'sr_RS@latin.aff' 'sr_RS@latin.dic'
|
||||||
|
|
||||||
|
all: $SPELLDIR/sr.utf-8.spl $SPELLDIR/'sr@latin.utf-8.spl' ../README_sr.txt
|
||||||
|
|
||||||
|
# Original files will be in the subfolder hunspell-sr after unpacking:
|
||||||
|
# sr.dic original cyrillic dictionary
|
||||||
|
# sr.aff original cyrillic affix file
|
||||||
|
# sr-Latn.dic original latin dictionary file
|
||||||
|
# sr-Latn.aff original latin affix file
|
||||||
|
# Just before using the dictionary files, the right ones are copied to
|
||||||
|
# sr_RS.aff
|
||||||
|
# sr_RS.dic
|
||||||
|
# and
|
||||||
|
# sr_RS@latin.aff
|
||||||
|
# sr_RS@latin.dic
|
||||||
|
|
||||||
|
$SPELLDIR/sr.utf-8.spl : $FILES
|
||||||
|
:sys env LANG=sr_RS.UTF-8
|
||||||
|
$VIM -u NONE -e -c "set enc=utf-8" -c "mkspell! $SPELLDIR/sr sr_RS" -c q
|
||||||
|
|
||||||
|
$SPELLDIR/"sr@latin.utf-8.spl" : $FILES
|
||||||
|
:sys env LANG=sr_RS@latin.UTF-8
|
||||||
|
$VIM -u NONE -e -c "set enc=utf-8" -c "mkspell! $SPELLDIR/sr@latin sr_RS@latin" -c q
|
||||||
|
|
||||||
|
../README_sr.txt : hunspell-sr/README_sr.txt README_sr_RS.txt
|
||||||
|
:cat README_sr_RS.txt >!$target
|
||||||
|
:print >>$target
|
||||||
|
:print ============================================================== >>$target
|
||||||
|
:print Следи оригинална README датотека: >>$target
|
||||||
|
:print >>$target
|
||||||
|
:cat hunspell-sr/README_sr.txt >>$target
|
||||||
|
|
||||||
|
#
|
||||||
|
# Used to fetch the files.
|
||||||
|
#
|
||||||
|
ZIPFILE = http://devbase.net/dict-sr/hunspell-sr-20130715.zip
|
||||||
|
|
||||||
|
:attr {fetch = $ZIPFILE} sr_RS.zip
|
||||||
|
|
||||||
|
# The files don't depend on the .zip file so that we can delete it.
|
||||||
|
# Only download the zip file if the targets don't exist.
|
||||||
|
sr_RS.aff sr_RS.dic: {buildcheck=}
|
||||||
|
:assertpkg unzip patch
|
||||||
|
:fetch sr_RS.zip
|
||||||
|
:sys $UNZIP sr_RS.zip
|
||||||
|
:delete sr_RS.zip
|
||||||
|
@if not os.path.exists('sr_RS.orig.aff'):
|
||||||
|
:copy hunspell-sr/sr.aff sr_RS.orig.aff
|
||||||
|
@if not os.path.exists('sr_RS.orig.dic'):
|
||||||
|
:copy hunspell-sr/sr.dic sr_RS.orig.dic
|
||||||
|
@if os.path.exists('sr_RS.diff'):
|
||||||
|
:sys patch <sr_RS.diff
|
||||||
|
:copy sr_RS.orig.aff sr_RS.aff
|
||||||
|
:copy sr_RS.orig.dic sr_RS.dic
|
||||||
|
|
||||||
|
# Remove the 3 misspelled words and update the word count
|
||||||
|
# :sys $VIM -u NONE -e -c "set enc=utf-8"
|
||||||
|
# -c "e sr_RS.orig.dic"
|
||||||
|
# -c "%g/ажуриранје/d"
|
||||||
|
# -c "%g/вишнја/d"
|
||||||
|
# -c "%g/вишнјевац/d"
|
||||||
|
# -c "%s/263909/263906/e"
|
||||||
|
# -c "w! sr_RS.dic"
|
||||||
|
# -c q
|
||||||
|
|
||||||
|
sr_RS@latin.aff sr_RS@latin.dic: {buildcheck=}
|
||||||
|
:assertpkg unzip patch
|
||||||
|
:fetch sr_RS.zip
|
||||||
|
:sys $UNZIP sr_RS.zip
|
||||||
|
:delete sr_RS.zip
|
||||||
|
@if not os.path.exists('sr_RS@latin.orig.aff'):
|
||||||
|
:copy hunspell-sr/sr-Latn.aff 'sr_RS@latin.orig.aff'
|
||||||
|
@if not os.path.exists('sr_RS@latin.orig.dic'):
|
||||||
|
:copy hunspell-sr/sr-Latn.dic 'sr_RS@latin.orig.dic'
|
||||||
|
@if os.path.exists('sr_RS@latin.diff'):
|
||||||
|
:sys patch <'sr_RS@latin.diff'
|
||||||
|
:copy 'sr_RS@latin.orig.aff' 'sr_RS@latin.aff'
|
||||||
|
:copy 'sr_RS@latin.orig.dic' 'sr_RS@latin.dic'
|
||||||
|
|
||||||
|
|
||||||
|
# Remove the 3 duplicated words and update the word count
|
||||||
|
# :sys $VIM -u NONE -e -c "set enc=utf-8"
|
||||||
|
# -c "e sr_RS@latin.orig.dic"
|
||||||
|
# -c "%g/\v(ažuriranje)(\_.*\1)@=/d"
|
||||||
|
# -c "%g/\v(višnja)(\_.*\1)@=/d"
|
||||||
|
# -c "%g/\v(višnjevac)(\_.*\1)@=/d"
|
||||||
|
# -c "%s/263909/263906/e"
|
||||||
|
# -c "w! sr_RS@latin.dic"
|
||||||
|
# -c q
|
||||||
|
|
||||||
|
# Generate diff files, so that others can get the files and apply
|
||||||
|
# the diffs to get the Vim versions.
|
||||||
|
diff:
|
||||||
|
:assertpkg diff
|
||||||
|
:sys {force} diff -a -C 1 sr_RS.orig.aff sr_RS.aff >sr_RS.diff
|
||||||
|
:sys {force} diff -a -C 1 sr_RS.orig.dic sr_RS.dic >>sr_RS.diff
|
||||||
|
:sys {force} diff -a -C 1 'sr_RS@latin.orig.aff' 'sr_RS@latin.aff' >'sr_RS@latin.diff'
|
||||||
|
:sys {force} diff -a -C 1 'sr_RS@latin.orig.dic' 'sr_RS@latin.dic' >>'sr_RS@latin.diff'
|
||||||
|
|
||||||
|
# Delete all the unpacked and generated files, including the "orig" files.
|
||||||
|
clean:
|
||||||
|
:delete {force} sr_RS.zip sr_RS.dic
|
||||||
|
sr_RS.orig.aff sr_RS.orig.dic
|
||||||
|
sr_RS.aff
|
||||||
|
'sr_RS@latin.dic' 'sr_RS@latin.aff'
|
||||||
|
'sr_RS@latin.orig.aff' 'sr_RS@latin.orig.dic'
|
||||||
|
:sys rm -f -r hunspell-sr/
|
||||||
|
|
||||||
|
# Check for updated OpenOffice spell files. When there are changes the
|
||||||
|
# ".new.aff" and ".new.dic" files are left behind for manual inspection.
|
||||||
|
#
|
||||||
|
#check:
|
||||||
|
# :assertpkg unzip diff
|
||||||
|
# :fetch fr_FR.zip
|
||||||
|
# :mkdir tmp
|
||||||
|
# :cd tmp
|
||||||
|
# @try:
|
||||||
|
# @import stat
|
||||||
|
# :sys $UNZIP ../fr_FR.zip
|
||||||
|
# :sys {force} diff ../fr_FR.orig.aff fr_FR.aff >d
|
||||||
|
# @if os.stat('d')[stat.ST_SIZE] > 0:
|
||||||
|
# :copy fr_FR.aff ../fr_FR.new.aff
|
||||||
|
# :sys {force} diff ../fr_FR.orig.dic fr_FR.dic >d
|
||||||
|
# @if os.stat('d')[stat.ST_SIZE] > 0:
|
||||||
|
# :copy fr_FR.dic ../fr_FR.new.dic
|
||||||
|
# @finally:
|
||||||
|
# :cd ..
|
||||||
|
# :delete {r}{f}{q} tmp
|
||||||
|
# :delete fr_FR.zip
|
||||||
|
|
||||||
|
|
||||||
|
vim: set sts=4 sw=4 :
|
||||||
68
runtime/spell/sr/sr_RS.diff
Normal file
68
runtime/spell/sr/sr_RS.diff
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
*** sr_RS.orig.aff Fri Feb 23 20:04:41 2018
|
||||||
|
--- sr_RS.aff Fri Feb 23 18:18:48 2018
|
||||||
|
***************
|
||||||
|
*** 1,10 ****
|
||||||
|
! SET UTF-8
|
||||||
|
|
||||||
|
! LANG sr
|
||||||
|
! TRY аиоенртсвумклпјдгзбшчцхћњљжфђџАИОЕНРТСВУМКЛПЈДГЗБШЧЦХЋЊЉЖФЂЏ
|
||||||
|
! KEY љњертжуиопшђж|асдфгхјклчћ|зџцвбнм|жшђ|ћшч|жчђ|ђћж|зж|љањседрфтгжхуј|јиколпч|азсџдцфвгбх|хнјмк
|
||||||
|
!
|
||||||
|
! MAP 4
|
||||||
|
! MAP цћ
|
||||||
|
! MAP цч
|
||||||
|
MAP зж
|
||||||
|
--- 1,5 ----
|
||||||
|
! SET utf-8
|
||||||
|
|
||||||
|
! MAP 3
|
||||||
|
! MAP цћч
|
||||||
|
MAP зж
|
||||||
|
***************
|
||||||
|
*** 12,14 ****
|
||||||
|
|
||||||
|
! REP 8
|
||||||
|
REP дј ђ
|
||||||
|
--- 7,11 ----
|
||||||
|
|
||||||
|
! MIDWORD -’
|
||||||
|
!
|
||||||
|
! REP 4
|
||||||
|
REP дј ђ
|
||||||
|
***************
|
||||||
|
*** 17,28 ****
|
||||||
|
REP дж џ
|
||||||
|
- REP ц с # Ако хоћу да откуцам слово „С“ могу се залетети за ознаком на тастатури и уписати „Ц“ (C)
|
||||||
|
- REP п р # Ако хоћу да откуцам слово „В“ могу се залетети за ознаком и уписати „Б“ (B)
|
||||||
|
- REP џ х # Ако хоћу да откуцам слово „Р“ могу се залетети за ознаком и уписати „П“ (P)
|
||||||
|
- REP х н # Ако хоћу да откуцам слово „Х“ могу се залетети за ознаком и уписати „Џ“ (X)
|
||||||
|
- # Ако хоћу да откуцам слово „В“ могу се залетети за ознаком и уписати „Б“ (B) (покривено KEY паром „в - б“)
|
||||||
|
-
|
||||||
|
- ICONV 3
|
||||||
|
- ICONV ҵ тц
|
||||||
|
- ICONV ҥ нг
|
||||||
|
- ICONV ӕ ае
|
||||||
|
|
||||||
|
--- 14,15 ----
|
||||||
|
*** sr_RS.orig.dic Fri Feb 23 20:04:42 2018
|
||||||
|
--- sr_RS.dic Fri Feb 23 20:04:46 2018
|
||||||
|
***************
|
||||||
|
*** 1,2 ****
|
||||||
|
! 263909
|
||||||
|
а
|
||||||
|
--- 1,2 ----
|
||||||
|
! 263906
|
||||||
|
а
|
||||||
|
***************
|
||||||
|
*** 882,884 ****
|
||||||
|
ажурираних
|
||||||
|
- ажуриранје
|
||||||
|
ажурирано
|
||||||
|
--- 882,883 ----
|
||||||
|
***************
|
||||||
|
*** 22177,22180 ****
|
||||||
|
вишку
|
||||||
|
- вишнја
|
||||||
|
- вишнјевац
|
||||||
|
Вишну
|
||||||
|
--- 22176,22177 ----
|
||||||
66
runtime/spell/sr/sr_RS@latin.diff
Normal file
66
runtime/spell/sr/sr_RS@latin.diff
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
*** sr_RS@latin.orig.aff Fri Feb 23 20:08:28 2018
|
||||||
|
--- sr_RS@latin.aff Fri Feb 23 18:18:48 2018
|
||||||
|
***************
|
||||||
|
*** 1,10 ****
|
||||||
|
! SET UTF-8
|
||||||
|
|
||||||
|
! LANG sr-Latn
|
||||||
|
! TRY aioenrtsvumklpjdgzbščchćnjljžfđdžAIOENRTSVUMKLPJDGZBŠČCHĆNJLJŽFĐDŽ
|
||||||
|
! KEY qwertyuiopšđž|asdfghjklčć|zxcvbnm|žšđ|ćšč|žčđ|đćž|zy|qawsedrftgyhuj|jikolpč|azsxdcfvgbh|hnjmk
|
||||||
|
!
|
||||||
|
! MAP 4
|
||||||
|
! MAP cć
|
||||||
|
! MAP cč
|
||||||
|
MAP zž
|
||||||
|
--- 1,5 ----
|
||||||
|
! SET utf-8
|
||||||
|
|
||||||
|
! MAP 3
|
||||||
|
! MAP cćč
|
||||||
|
MAP zž
|
||||||
|
***************
|
||||||
|
*** 12,20 ****
|
||||||
|
|
||||||
|
! REP 1
|
||||||
|
! REP dj đ
|
||||||
|
|
||||||
|
! ICONV fi fi
|
||||||
|
! ICONV fl fl
|
||||||
|
! ICONV st st
|
||||||
|
! ICONV ij ij
|
||||||
|
! ICONV œ oe
|
||||||
|
--- 7,14 ----
|
||||||
|
|
||||||
|
! MIDWORD -’
|
||||||
|
|
||||||
|
! REP 4
|
||||||
|
! REP dj đ
|
||||||
|
! REP fl fl
|
||||||
|
! REP ff ff
|
||||||
|
! REP fi fi
|
||||||
|
*** sr_RS@latin.orig.dic Fri Feb 23 20:08:28 2018
|
||||||
|
--- sr_RS@latin.dic Fri Feb 23 20:08:53 2018
|
||||||
|
***************
|
||||||
|
*** 1,2 ****
|
||||||
|
! 263909
|
||||||
|
a
|
||||||
|
--- 1,2 ----
|
||||||
|
! 263906
|
||||||
|
a
|
||||||
|
***************
|
||||||
|
*** 882,884 ****
|
||||||
|
ažuriranih
|
||||||
|
- ažuriranje
|
||||||
|
ažurirano
|
||||||
|
--- 882,883 ----
|
||||||
|
***************
|
||||||
|
*** 22177,22184 ****
|
||||||
|
višku
|
||||||
|
- višnja
|
||||||
|
- višnjevac
|
||||||
|
Višnu
|
||||||
|
višnja
|
||||||
|
višnjama
|
||||||
|
višnjare
|
||||||
|
višnje
|
||||||
|
--- 22176,22181 ----
|
||||||
101
runtime/syntax/autodoc.vim
Normal file
101
runtime/syntax/autodoc.vim
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: Autodoc
|
||||||
|
" Maintainer: Stephen R. van den Berg <srb@cuci.nl>
|
||||||
|
" Last Change: 2018 Jan 23
|
||||||
|
" Version: 2.9
|
||||||
|
" Remark: Included by pike.vim, cmod.vim and optionally c.vim
|
||||||
|
" Remark: In order to make c.vim use it, set: c_autodoc
|
||||||
|
|
||||||
|
" Quit when a (custom) syntax file was already loaded
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
syn case match
|
||||||
|
|
||||||
|
" A bunch of useful autodoc keywords
|
||||||
|
syn keyword autodocStatement contained appears belongs global
|
||||||
|
syn keyword autodocStatement contained decl directive inherit
|
||||||
|
syn keyword autodocStatement contained deprecated obsolete bugs
|
||||||
|
syn keyword autodocStatement contained copyright example fixme note param returns
|
||||||
|
syn keyword autodocStatement contained seealso thanks throws constant
|
||||||
|
syn keyword autodocStatement contained member index elem
|
||||||
|
syn keyword autodocStatement contained value type item
|
||||||
|
|
||||||
|
syn keyword autodocRegion contained enum mapping code multiset array
|
||||||
|
syn keyword autodocRegion contained int string section mixed ol ul dl
|
||||||
|
syn keyword autodocRegion contained class module namespace
|
||||||
|
syn keyword autodocRegion contained endenum endmapping endcode endmultiset
|
||||||
|
syn keyword autodocRegion contained endarray endint endstring endsection
|
||||||
|
syn keyword autodocRegion contained endmixed endol endul enddl
|
||||||
|
syn keyword autodocRegion contained endclass endmodule endnamespace
|
||||||
|
|
||||||
|
syn keyword autodocIgnore contained ignore endignore
|
||||||
|
|
||||||
|
syn keyword autodocStatAcc contained b i u tt url pre sub sup
|
||||||
|
syn keyword autodocStatAcc contained ref rfc xml dl expr image
|
||||||
|
|
||||||
|
syn keyword autodocTodo contained TODO FIXME XXX
|
||||||
|
|
||||||
|
syn match autodocLineStart display "\(//\|/\?\*\)\@2<=!"
|
||||||
|
syn match autodocWords "[^!@{}[\]]\+" display contains=@Spell
|
||||||
|
|
||||||
|
syn match autodocLink "@\[[^[\]]\+]"hs=s+2,he=e-1 display contains=autodocLead
|
||||||
|
syn match autodocAtStmt "@[a-z]\+\%(\s\|$\)\@="hs=s+1 display contains=autodocStatement,autodocIgnore,autodocLead,autodocRegion
|
||||||
|
|
||||||
|
" Due to limitations of the matching algorithm, we cannot highlight
|
||||||
|
" nested autodocNStmtAcc structures correctly
|
||||||
|
syn region autodocNStmtAcc start="@[a-z]\+{" end="@}" contains=autodocStatAcc,autodocLead keepend
|
||||||
|
|
||||||
|
syn match autodocUrl contained display ".\+"
|
||||||
|
syn region autodocAtUrlAcc start="{"ms=s+1 end="@}"he=e-1,me=e-2 contained display contains=autodocUrl,autodocLead keepend
|
||||||
|
syn region autodocNUrlAcc start="@url{" end="@}" contains=autodocStatAcc,autodocAtUrlAcc,autodocLead transparent
|
||||||
|
|
||||||
|
syn match autodocSpecial "@@" display
|
||||||
|
syn match autodocLead "@" display contained
|
||||||
|
|
||||||
|
"when wanted, highlight trailing white space
|
||||||
|
if exists("c_space_errors")
|
||||||
|
if !exists("c_no_trail_space_error")
|
||||||
|
syn match autodocSpaceError display excludenl "\s\+$"
|
||||||
|
endif
|
||||||
|
if !exists("c_no_tab_space_error")
|
||||||
|
syn match autodocSpaceError display " \+\t"me=e-1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists("c_minlines")
|
||||||
|
let b:c_minlines = c_minlines
|
||||||
|
else
|
||||||
|
if !exists("c_no_if0")
|
||||||
|
let b:c_minlines = 50 " #if 0 constructs can be long
|
||||||
|
else
|
||||||
|
let b:c_minlines = 15 " mostly for () constructs
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
exec "syn sync ccomment autodocComment minlines=" . b:c_minlines
|
||||||
|
|
||||||
|
" Define the default highlighting.
|
||||||
|
" Only used when an item doesn't have highlighting yet
|
||||||
|
hi def link autodocStatement Statement
|
||||||
|
hi def link autodocStatAcc Statement
|
||||||
|
hi def link autodocRegion Structure
|
||||||
|
hi def link autodocAtStmt Error
|
||||||
|
hi def link autodocNStmtAcc Identifier
|
||||||
|
hi def link autodocLink Type
|
||||||
|
hi def link autodocTodo Todo
|
||||||
|
hi def link autodocSpaceError Error
|
||||||
|
hi def link autodocLineStart SpecialComment
|
||||||
|
hi def link autodocSpecial SpecialChar
|
||||||
|
hi def link autodocUrl Underlined
|
||||||
|
hi def link autodocLead Statement
|
||||||
|
hi def link autodocIgnore Delimiter
|
||||||
|
|
||||||
|
let b:current_syntax = "autodoc"
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
" vim: ts=8
|
||||||
@@ -13,6 +13,14 @@ set cpo&vim
|
|||||||
|
|
||||||
let s:ft = matchstr(&ft, '^\([^.]\)\+')
|
let s:ft = matchstr(&ft, '^\([^.]\)\+')
|
||||||
|
|
||||||
|
" Optional embedded Autodoc parsing
|
||||||
|
" To enable it add: let g:c_autodoc = 1
|
||||||
|
" to your .vimrc
|
||||||
|
if exists("c_autodoc")
|
||||||
|
syn include @cAutodoc <sfile>:p:h/autodoc.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
" A bunch of useful C keywords
|
" A bunch of useful C keywords
|
||||||
syn keyword cStatement goto break return continue asm
|
syn keyword cStatement goto break return continue asm
|
||||||
syn keyword cLabel case default
|
syn keyword cLabel case default
|
||||||
@@ -377,6 +385,13 @@ syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInP
|
|||||||
syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||||
syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||||
|
|
||||||
|
" Optional embedded Autodoc parsing
|
||||||
|
if exists("c_autodoc")
|
||||||
|
syn match cAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cAutodoc containedin=cComment,cCommentL
|
||||||
|
syn cluster cCommentGroup add=cAutodocReal
|
||||||
|
syn cluster cPreProcGroup add=cAutodocReal
|
||||||
|
endif
|
||||||
|
|
||||||
" Highlight User Labels
|
" Highlight User Labels
|
||||||
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
||||||
if s:ft ==# 'c' || exists("cpp_no_cpp11")
|
if s:ft ==# 'c' || exists("cpp_no_cpp11")
|
||||||
|
|||||||
77
runtime/syntax/chicken.vim
Normal file
77
runtime/syntax/chicken.vim
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: Scheme (CHICKEN)
|
||||||
|
" Last Change: 2018 Jan 31
|
||||||
|
" Author: Evan Hanson <evhan@foldling.org>
|
||||||
|
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||||
|
" URL: https://foldling.org/vim/syntax/chicken.vim
|
||||||
|
" Notes: This is supplemental syntax, to be loaded after the core Scheme
|
||||||
|
" syntax file (syntax/scheme.vim). Enable it by setting b:is_chicken=1
|
||||||
|
" and filetype=scheme.
|
||||||
|
|
||||||
|
" Only to be used on top of the Scheme syntax.
|
||||||
|
if !exists('b:did_scheme_syntax')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Lighten parentheses.
|
||||||
|
hi def link schemeParentheses Comment
|
||||||
|
|
||||||
|
" foo#bar
|
||||||
|
syn match schemeExtraSyntax /[^ #'`\t\n()\[\]"|;]\+#[^ '`\t\n()\[\]"|;]\+/
|
||||||
|
|
||||||
|
" ##foo#bar
|
||||||
|
syn match schemeExtraSyntax /##[^ '`\t\n()\[\]"|;]\+/
|
||||||
|
|
||||||
|
" Heredocs.
|
||||||
|
syn region schemeString start=/#<[<#]\s*\z(.*\)/ end=/^\z1$/
|
||||||
|
|
||||||
|
" Keywords.
|
||||||
|
syn match schemeKeyword /#[!:][a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+/
|
||||||
|
syn match schemeKeyword /[a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+:\>/
|
||||||
|
|
||||||
|
" C/C++ syntax.
|
||||||
|
let s:c = globpath(&rtp, 'syntax/cpp.vim', 0, 1)
|
||||||
|
if len(s:c)
|
||||||
|
exe 'syn include @c ' s:c[0]
|
||||||
|
syn region c matchgroup=schemeComment start=/#>/ end=/<#/ contains=@c
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn keyword schemeSyntax define-record
|
||||||
|
|
||||||
|
syn keyword schemeLibrarySyntax declare
|
||||||
|
syn keyword schemeLibrarySyntax module
|
||||||
|
syn keyword schemeLibrarySyntax reexport
|
||||||
|
syn keyword schemeLibrarySyntax require-library
|
||||||
|
|
||||||
|
syn keyword schemeTypeSyntax -->
|
||||||
|
syn keyword schemeTypeSyntax ->
|
||||||
|
syn keyword schemeTypeSyntax :
|
||||||
|
syn keyword schemeTypeSyntax assume
|
||||||
|
syn keyword schemeTypeSyntax compiler-typecase
|
||||||
|
syn keyword schemeTypeSyntax define-specialization
|
||||||
|
syn keyword schemeTypeSyntax define-type
|
||||||
|
syn keyword schemeTypeSyntax the
|
||||||
|
|
||||||
|
syn keyword schemeExtraSyntax and-let*
|
||||||
|
syn keyword schemeExtraSyntax match
|
||||||
|
syn keyword schemeExtraSyntax match-lambda
|
||||||
|
syn keyword schemeExtraSyntax match-lambda*
|
||||||
|
|
||||||
|
syn keyword schemeSpecialSyntax define-compiler-syntax
|
||||||
|
syn keyword schemeSpecialSyntax define-constant
|
||||||
|
syn keyword schemeSpecialSyntax define-external
|
||||||
|
syn keyword schemeSpecialSyntax define-inline
|
||||||
|
syn keyword schemeSpecialSyntax foreign-code
|
||||||
|
syn keyword schemeSpecialSyntax foreign-declare
|
||||||
|
syn keyword schemeSpecialSyntax foreign-lambda
|
||||||
|
syn keyword schemeSpecialSyntax foreign-lambda*
|
||||||
|
syn keyword schemeSpecialSyntax foreign-primitive
|
||||||
|
syn keyword schemeSpecialSyntax foreign-safe-lambda
|
||||||
|
syn keyword schemeSpecialSyntax foreign-safe-lambda*
|
||||||
|
syn keyword schemeSpecialSyntax foreign-value
|
||||||
|
|
||||||
|
syn keyword schemeSyntaxSyntax begin-for-syntax
|
||||||
|
syn keyword schemeSyntaxSyntax define-for-syntax
|
||||||
|
syn keyword schemeSyntaxSyntax er-macro-transformer
|
||||||
|
syn keyword schemeSyntaxSyntax ir-macro-transformer
|
||||||
|
syn keyword schemeSyntaxSyntax require-library-for-syntax
|
||||||
144
runtime/syntax/cmod.vim
Normal file
144
runtime/syntax/cmod.vim
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: Cmod
|
||||||
|
" Current Maintainer: Stephen R. van den Berg <srb@cuci.nl>
|
||||||
|
" Last Change: 2018 Jan 23
|
||||||
|
" Version: 2.9
|
||||||
|
" Remark: Is used to edit Cmod files for Pike development.
|
||||||
|
" Remark: Includes a highlighter for any embedded Autodoc format.
|
||||||
|
|
||||||
|
" quit when a syntax file was already loaded
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
" Read the C syntax to start with
|
||||||
|
runtime! syntax/c.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
if !exists("c_autodoc")
|
||||||
|
" For embedded Autodoc documentation
|
||||||
|
syn include @cmodAutodoc <sfile>:p:h/autodoc.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Supports rotating amongst several same-level preprocessor conditionals
|
||||||
|
packadd! matchit
|
||||||
|
let b:match_words = "({:}\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"
|
||||||
|
|
||||||
|
" Cmod extensions
|
||||||
|
syn keyword cmodStatement __INIT INIT EXIT GC_RECURSE GC_CHECK
|
||||||
|
syn keyword cmodStatement EXTRA OPTIMIZE RETURN
|
||||||
|
syn keyword cmodStatement ADD_EFUN ADD_EFUN2 ADD_FUNCTION
|
||||||
|
syn keyword cmodStatement MK_STRING MK_STRING_SVALUE CONSTANT_STRLEN
|
||||||
|
|
||||||
|
syn keyword cmodStatement SET_SVAL pop_n_elems pop_stack
|
||||||
|
syn keyword cmodStatement SIMPLE_ARG_TYPE_ERROR Pike_sp Pike_fp MKPCHARP
|
||||||
|
syn keyword cmodStatement SET_SVAL_TYPE REF_MAKE_CONST_STRING INC_PCHARP
|
||||||
|
syn keyword cmodStatement PTR_FROM_INT INHERIT_FROM_PTR
|
||||||
|
syn keyword cmodStatement DECLARE_CYCLIC BEGIN_CYCLIC END_CYCLIC
|
||||||
|
syn keyword cmodStatement UPDATE_LOCATION UNSAFE_IS_ZERO SAFE_IS_ZERO
|
||||||
|
syn keyword cmodStatement MKPCHARP_STR APPLY_MASTER current_storage
|
||||||
|
syn keyword cmodStatement PIKE_MAP_VARIABLE size_shift
|
||||||
|
syn keyword cmodStatement THREADS_ALLOW THREADS_DISALLOW
|
||||||
|
|
||||||
|
syn keyword cmodStatement add_integer_constant ref_push_object
|
||||||
|
syn keyword cmodStatement push_string apply_svalue free_svalue
|
||||||
|
syn keyword cmodStatement get_inherit_storage get_storage
|
||||||
|
syn keyword cmodStatement make_shared_binary_string push_int64
|
||||||
|
syn keyword cmodStatement begin_shared_string end_shared_string
|
||||||
|
syn keyword cmodStatement add_ref fast_clone_object clone_object
|
||||||
|
syn keyword cmodStatement push_undefined push_int ref_push_string
|
||||||
|
syn keyword cmodStatement free_string push_ulongest free_object
|
||||||
|
syn keyword cmodStatement convert_stack_top_to_bignum push_array
|
||||||
|
syn keyword cmodStatement push_object reduce_stack_top_bignum
|
||||||
|
syn keyword cmodStatement push_static_text apply_current
|
||||||
|
syn keyword cmodStatement assign_svalue free_program destruct_object
|
||||||
|
syn keyword cmodStatement start_new_program low_inherit stack_swap
|
||||||
|
syn keyword cmodStatement generic_error_program end_program
|
||||||
|
syn keyword cmodStatement free_array apply_external copy_mapping
|
||||||
|
syn keyword cmodStatement push_constant_text ref_push_mapping
|
||||||
|
syn keyword cmodStatement mapping_insert mapping_string_insert_string
|
||||||
|
syn keyword cmodStatement f_aggregate_mapping f_aggregate apply
|
||||||
|
syn keyword cmodStatement push_mapping push_svalue low_mapping_lookup
|
||||||
|
syn keyword cmodStatement assign_svalues_no_free f_add
|
||||||
|
syn keyword cmodStatement push_empty_string stack_dup assign_lvalue
|
||||||
|
syn keyword cmodStatement low_mapping_string_lookup allocate_mapping
|
||||||
|
syn keyword cmodStatement copy_shared_string make_shared_binary_string0
|
||||||
|
syn keyword cmodStatement f_call_function f_index f_utf8_to_string
|
||||||
|
syn keyword cmodStatement finish_string_builder init_string_builder
|
||||||
|
syn keyword cmodStatement reset_string_builder free_string_builder
|
||||||
|
syn keyword cmodStatement string_builder_putchar get_all_args
|
||||||
|
syn keyword cmodStatement add_shared_strings check_all_args
|
||||||
|
syn keyword cmodStatement do_inherit add_string_constant
|
||||||
|
syn keyword cmodStatement add_program_constant set_init_callback
|
||||||
|
syn keyword cmodStatement simple_mapping_string_lookup
|
||||||
|
syn keyword cmodStatement f_sprintf push_text string_has_null
|
||||||
|
syn keyword cmodStatement end_and_resize_shared_string
|
||||||
|
|
||||||
|
syn keyword cmodStatement args sp
|
||||||
|
|
||||||
|
syn keyword cmodStatement free
|
||||||
|
|
||||||
|
syn keyword cmodConstant ID_PROTECTED ID_FINAL PIKE_DEBUG
|
||||||
|
syn keyword cmodConstant NUMBER_NUMBER
|
||||||
|
syn keyword cmodConstant PIKE_T_INT PIKE_T_STRING PIKE_T_ARRAY
|
||||||
|
syn keyword cmodConstant PIKE_T_MULTISET PIKE_T_OBJECT PIKE_T_MAPPING
|
||||||
|
syn keyword cmodConstant NUMBER_UNDEFINED PIKE_T_PROGRAM PIKE_T_FUNCTION
|
||||||
|
syn keyword cmodConstant T_OBJECT T_STRING T_ARRAY T_MAPPING
|
||||||
|
|
||||||
|
syn keyword cmodException SET_ONERROR UNSET_ONERROR ONERROR
|
||||||
|
syn keyword cmodException CALL_AND_UNSET_ONERROR
|
||||||
|
|
||||||
|
syn keyword cmodDebug Pike_fatal Pike_error check_stack
|
||||||
|
|
||||||
|
syn keyword cmodAccess public protected private INHERIT
|
||||||
|
syn keyword cmodAccess CTYPE CVAR PIKEVAR PIKEFUN
|
||||||
|
|
||||||
|
syn keyword cmodModifier efun export flags optflags optfunc
|
||||||
|
syn keyword cmodModifier type rawtype errname name c_name prototype
|
||||||
|
syn keyword cmodModifier program_flags gc_trivial PMOD_EXPORT
|
||||||
|
syn keyword cmodModifier ATTRIBUTE noclone noinline
|
||||||
|
syn keyword cmodModifier tOr tFuncV tInt tMix tVoid tStr tMap tPrg
|
||||||
|
syn keyword cmodModifier tSetvar tArr tMult tMultiset
|
||||||
|
syn keyword cmodModifier tArray tMapping tString tSetvar tVar
|
||||||
|
|
||||||
|
syn keyword cmodType bool mapping string multiset array mixed
|
||||||
|
syn keyword cmodType object function program auto svalue
|
||||||
|
syn keyword cmodType bignum longest zero pike_string
|
||||||
|
syn keyword cmodType this this_program THIS INT_TYPE INT64 INT32
|
||||||
|
syn keyword cmodType p_wchar2 PCHARP p_wchar1 p_wchar0 MP_INT
|
||||||
|
|
||||||
|
syn keyword cmodOperator _destruct create __hash _sizeof _indices _values
|
||||||
|
syn keyword cmodOperator _is_type _sprintf _equal _m_delete _get_iterator
|
||||||
|
syn keyword cmodOperator _search _types _serialize _deserialize
|
||||||
|
syn keyword cmodOperator _size_object _random _sqrt TYPEOF SUBTYPEOF
|
||||||
|
syn keyword cmodOperator LIKELY UNLIKELY
|
||||||
|
|
||||||
|
syn keyword cmodStructure DECLARATIONS PIKECLASS DECLARE_STORAGE
|
||||||
|
|
||||||
|
if !exists("c_autodoc")
|
||||||
|
syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL
|
||||||
|
syn cluster cCommentGroup add=cmodAutodocReal
|
||||||
|
syn cluster cPreProcGroup add=cmodAutodocReal
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Default highlighting
|
||||||
|
hi def link cmodAccess Statement
|
||||||
|
hi def link cmodOperator Operator
|
||||||
|
hi def link cmodStatement Statement
|
||||||
|
hi def link cmodConstant Constant
|
||||||
|
hi def link cmodModifier Type
|
||||||
|
hi def link cmodType Type
|
||||||
|
hi def link cmodStorageClass StorageClass
|
||||||
|
hi def link cmodStructure Structure
|
||||||
|
hi def link cmodException Exception
|
||||||
|
hi def link cmodDebug Debug
|
||||||
|
|
||||||
|
let b:current_syntax = "cmod"
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
" vim: ts=8
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: configure.in script: M4 with sh
|
" Language: configure.in script: M4 with sh
|
||||||
" Maintainer: Christian Hammesr <ch@lathspell.westend.com>
|
" Former Maintainer: Christian Hammesr <ch@lathspell.westend.com>
|
||||||
" Last Change: 2015 Jan 14
|
" Last Change: 2018 Feb 03
|
||||||
" (patch from Yngve Inntjore Levinsen to detect AC_MSG)
|
" (patch from Yngve Inntjore Levinsen to detect AC_MSG)
|
||||||
" (patch from Khym Chanur to add @Spell)
|
" (patch from Khym Chanur to add @Spell)
|
||||||
|
" (patch from James McCoy to fix paren matching)
|
||||||
|
|
||||||
" Well, I actually even do not know much about m4. This explains why there
|
" Well, I actually even do not know much about m4. This explains why there
|
||||||
" is probably very much missing here, yet !
|
" is probably very much missing here, yet !
|
||||||
@@ -30,8 +31,8 @@ syn keyword configspecial cat rm eval
|
|||||||
syn region configstring start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell
|
syn region configstring start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell
|
||||||
|
|
||||||
" Anything inside AC_MSG_TYPE([...]) and AC_MSG_TYPE(...) is a string.
|
" Anything inside AC_MSG_TYPE([...]) and AC_MSG_TYPE(...) is a string.
|
||||||
syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell
|
syn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell
|
||||||
syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell
|
syn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell
|
||||||
|
|
||||||
" Define the default highlighting.
|
" Define the default highlighting.
|
||||||
" Only when an item doesn't have highlighting yet
|
" Only when an item doesn't have highlighting yet
|
||||||
@@ -45,6 +46,7 @@ hi def link confignumber Number
|
|||||||
hi def link configkeyword Keyword
|
hi def link configkeyword Keyword
|
||||||
hi def link configspecial Special
|
hi def link configspecial Special
|
||||||
hi def link configstring String
|
hi def link configstring String
|
||||||
|
hi def link configmsg String
|
||||||
|
|
||||||
|
|
||||||
let b:current_syntax = "config"
|
let b:current_syntax = "config"
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
" Claudio Fleiner <claudio@fleiner.com> (Maintainer)
|
" Claudio Fleiner <claudio@fleiner.com> (Maintainer)
|
||||||
" Yeti (Add full CSS2, HTML4 support)
|
" Yeti (Add full CSS2, HTML4 support)
|
||||||
" Nikolai Weibull (Add CSS2 support)
|
" Nikolai Weibull (Add CSS2 support)
|
||||||
" Maintainer: Jules Wang <w.jq0722@gmail.com>
|
|
||||||
" URL: https://github.com/JulesWang/css.vim
|
" URL: https://github.com/JulesWang/css.vim
|
||||||
" Last Change: 2017 Jan 14
|
" Maintainer: Jules Wang <w.jq0722@gmail.com>
|
||||||
|
" Last Change: 2018 Feb. 27
|
||||||
" cssClassName updated by Ryuichi Hayashida Jan 2016
|
" cssClassName updated by Ryuichi Hayashida Jan 2016
|
||||||
|
|
||||||
" quit when a syntax file was already loaded
|
" quit when a syntax file was already loaded
|
||||||
@@ -69,74 +69,12 @@ endtry
|
|||||||
" digits
|
" digits
|
||||||
syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
|
syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
|
||||||
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
|
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
|
||||||
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)\>" contains=cssUnitDecorators
|
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)\>" contains=cssUnitDecorators
|
||||||
|
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators
|
||||||
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators
|
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators
|
||||||
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators
|
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators
|
||||||
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators
|
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators
|
||||||
|
|
||||||
|
|
||||||
syn match cssIncludeKeyword /@\(-[a-z]\+-\)\=\(media\|keyframes\|import\|charset\|namespace\|page\)/ contained
|
|
||||||
" @media
|
|
||||||
syn region cssInclude start=/@media\>/ end=/\ze{/ skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssIncludeKeyword,cssMediaComma,cssComment nextgroup=cssMediaBlock
|
|
||||||
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained skipwhite skipnl
|
|
||||||
syn keyword cssMediaKeyword only not and contained
|
|
||||||
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssTagName,cssClassName,cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,cssAttributeSelector fold
|
|
||||||
syn match cssMediaComma "," skipwhite skipnl contained
|
|
||||||
|
|
||||||
" Reference: http://www.w3.org/TR/css3-mediaqueries/
|
|
||||||
syn keyword cssMediaProp contained width height orientation scan grid
|
|
||||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
|
|
||||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
|
|
||||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
|
|
||||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
|
|
||||||
syn keyword cssMediaAttr contained portrait landscape progressive interlace
|
|
||||||
|
|
||||||
" @page
|
|
||||||
" http://www.w3.org/TR/css3-page/
|
|
||||||
syn match cssPage "@page\>[^{]*{\@=" contains=cssPagePseudo,cssIncludeKeyword nextgroup=cssPageWrap transparent skipwhite skipnl
|
|
||||||
syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
|
|
||||||
syn region cssPageWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssPageMargin,cssPageProp,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks
|
|
||||||
syn match cssPageMargin /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition skipwhite skipnl
|
|
||||||
syn keyword cssPageProp contained content size
|
|
||||||
" http://www.w3.org/TR/CSS2/page.html#break-inside
|
|
||||||
syn keyword cssPageProp contained orphans widows
|
|
||||||
|
|
||||||
" @keyframe
|
|
||||||
" http://www.w3.org/TR/css3-animations/#keyframes
|
|
||||||
syn match cssKeyFrame "@\(-[a-z]\+-\)\=keyframes\>[^{]*{\@=" nextgroup=cssKeyFrameWrap contains=cssVendor,cssIncludeKeyword skipwhite skipnl transparent
|
|
||||||
syn region cssKeyFrameWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector
|
|
||||||
syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl nextgroup=cssDefinition
|
|
||||||
|
|
||||||
" @import
|
|
||||||
syn region cssInclude start=/@import\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword,cssURL,cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType
|
|
||||||
syn region cssInclude start=/@charset\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
|
|
||||||
syn region cssInclude start=/@namespace\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
|
|
||||||
|
|
||||||
" @font-face
|
|
||||||
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
|
|
||||||
syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
|
|
||||||
syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssCommonAttr,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssFontDescriptorAttr,cssNoise
|
|
||||||
|
|
||||||
syn match cssFontDescriptorProp contained "\<font-family\>"
|
|
||||||
syn keyword cssFontDescriptorProp contained src
|
|
||||||
syn match cssFontDescriptorProp contained "\<font-\(style\|weight\|stretch\)\>"
|
|
||||||
syn match cssFontDescriptorProp contained "\<unicode-range\>"
|
|
||||||
syn match cssFontDescriptorProp contained "\<font-\(variant\|feature-settings\)\>"
|
|
||||||
|
|
||||||
" src functions
|
|
||||||
syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
|
|
||||||
" font-sytle and font-weight attributes
|
|
||||||
syn keyword cssFontDescriptorAttr contained normal italic oblique bold
|
|
||||||
" font-stretch attributes
|
|
||||||
syn match cssFontDescriptorAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
|
|
||||||
" unicode-range attributes
|
|
||||||
syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+"
|
|
||||||
syn match cssFontDescriptorAttr contained "U+\x\+-\x\+"
|
|
||||||
" font-feature-settings attributes
|
|
||||||
syn keyword cssFontDescriptorAttr contained on off
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" The 16 basic color names
|
" The 16 basic color names
|
||||||
syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
|
syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
|
||||||
|
|
||||||
@@ -162,8 +100,8 @@ syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajow
|
|||||||
syn keyword cssColor contained oldlace olivedrab orange orangered orchid
|
syn keyword cssColor contained oldlace olivedrab orange orangered orchid
|
||||||
syn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/
|
syn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/
|
||||||
syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
|
syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
|
||||||
syn keyword cssColor contained rosybrown royalblue saddlebrown salmon sandybrown
|
syn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon
|
||||||
syn keyword cssColor contained seagreen seashell sienna skyblue slateblue
|
syn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue
|
||||||
syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
|
syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
|
||||||
syn keyword cssColor contained thistle tomato turquoise violet wheat
|
syn keyword cssColor contained thistle tomato turquoise violet wheat
|
||||||
syn keyword cssColor contained whitesmoke yellowgreen
|
syn keyword cssColor contained whitesmoke yellowgreen
|
||||||
@@ -180,10 +118,11 @@ syn match cssImportant contained "!\s*important\>"
|
|||||||
syn match cssColor contained "\<transparent\>"
|
syn match cssColor contained "\<transparent\>"
|
||||||
syn match cssColor contained "\<currentColor\>"
|
syn match cssColor contained "\<currentColor\>"
|
||||||
syn match cssColor contained "\<white\>"
|
syn match cssColor contained "\<white\>"
|
||||||
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" contains=cssUnitDecorators
|
syn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators
|
||||||
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" contains=cssUnitDecorators
|
syn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators
|
||||||
|
syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators
|
||||||
|
|
||||||
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
|
syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
|
||||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
|
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
|
||||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
|
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
|
||||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
|
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
|
||||||
@@ -224,7 +163,6 @@ syn keyword cssBackgroundAttr contained left center right top bottom
|
|||||||
" background-repeat attributes
|
" background-repeat attributes
|
||||||
syn match cssBackgroundAttr contained "\<no-repeat\>"
|
syn match cssBackgroundAttr contained "\<no-repeat\>"
|
||||||
syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
|
syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
|
||||||
syn keyword cssBackgroundAttr contained space round
|
|
||||||
|
|
||||||
" background-size attributes
|
" background-size attributes
|
||||||
syn keyword cssBackgroundAttr contained cover contain
|
syn keyword cssBackgroundAttr contained cover contain
|
||||||
@@ -236,7 +174,7 @@ syn match cssBorderProp contained "\<box-decoration-break\>"
|
|||||||
syn match cssBorderProp contained "\<box-shadow\>"
|
syn match cssBorderProp contained "\<box-shadow\>"
|
||||||
|
|
||||||
" border-image attributes
|
" border-image attributes
|
||||||
syn keyword cssBorderAttr contained stretch round space fill
|
syn keyword cssBorderAttr contained stretch round fill
|
||||||
|
|
||||||
" border-style attributes
|
" border-style attributes
|
||||||
syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
|
syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
|
||||||
@@ -264,14 +202,18 @@ syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
|
|||||||
syn keyword cssDimensionProp contained height
|
syn keyword cssDimensionProp contained height
|
||||||
syn keyword cssDimensionProp contained width
|
syn keyword cssDimensionProp contained width
|
||||||
|
|
||||||
" shadow and sizing are in other property groups
|
" CSS Flexible Box Layout Module Level 1
|
||||||
syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
|
" http://www.w3.org/TR/css3-flexbox/
|
||||||
syn keyword cssFlexibleBoxAttr contained start end baseline
|
" CSS Box Alignment Module Level 3
|
||||||
syn keyword cssFlexibleBoxAttr contained reverse
|
" http://www.w3.org/TR/css-align-3/
|
||||||
syn keyword cssFlexibleBoxAttr contained single multiple
|
syn match cssFlexibleBoxProp contained "\<flex\(-\(direction\|wrap\|flow\|grow\|shrink\|basis\)\)\=\>"
|
||||||
syn keyword cssFlexibleBoxAttr contained horizontal
|
syn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>"
|
||||||
syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>" "escape vertical-align
|
syn keyword cssFlexibleBoxProp contained order
|
||||||
syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
|
|
||||||
|
syn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>"
|
||||||
|
syn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center
|
||||||
|
syn match cssFlexibleBoxAttr contained "\<flex\(-\(start\|end\)\)\=\>"
|
||||||
|
syn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\)\)\=\>"
|
||||||
|
|
||||||
" CSS Fonts Module Level 3
|
" CSS Fonts Module Level 3
|
||||||
" http://www.w3.org/TR/css-fonts-3/
|
" http://www.w3.org/TR/css-fonts-3/
|
||||||
@@ -279,11 +221,11 @@ syn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\
|
|||||||
|
|
||||||
" font attributes
|
" font attributes
|
||||||
syn keyword cssFontAttr contained icon menu caption
|
syn keyword cssFontAttr contained icon menu caption
|
||||||
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
|
|
||||||
syn match cssFontAttr contained "\<message-box\>"
|
syn match cssFontAttr contained "\<message-box\>"
|
||||||
syn match cssFontAttr contained "\<status-bar\>"
|
syn match cssFontAttr contained "\<status-bar\>"
|
||||||
syn keyword cssFontAttr contained larger smaller
|
syn keyword cssFontAttr contained larger smaller
|
||||||
syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
|
syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
|
||||||
|
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
|
||||||
" font-family attributes
|
" font-family attributes
|
||||||
syn match cssFontAttr contained "\<\(sans-\)\=serif\>"
|
syn match cssFontAttr contained "\<\(sans-\)\=serif\>"
|
||||||
syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Verdana Webdings Wingdings York Zapf
|
syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Verdana Webdings Wingdings York Zapf
|
||||||
@@ -312,12 +254,16 @@ syn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>"
|
|||||||
syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
|
syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
|
||||||
syn keyword cssMultiColumnProp contained columns
|
syn keyword cssMultiColumnProp contained columns
|
||||||
syn keyword cssMultiColumnAttr contained balance medium
|
syn keyword cssMultiColumnAttr contained balance medium
|
||||||
syn keyword cssMultiColumnAttr contained always avoid left right page column
|
syn keyword cssMultiColumnAttr contained always left right page column
|
||||||
syn match cssMultiColumnAttr contained "\<avoid-\(page\|column\)\>"
|
syn match cssMultiColumnAttr contained "\<avoid\(-\(page\|column\)\)\=\>"
|
||||||
|
|
||||||
" http://www.w3.org/TR/css3-break/#page-break
|
" http://www.w3.org/TR/css3-break/#page-break
|
||||||
syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
|
syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
|
||||||
|
|
||||||
|
" http://www.w3.org/TR/SVG11/interact.html
|
||||||
|
syn match cssInteractProp contained "\<pointer-events\>"
|
||||||
|
syn match cssInteractAttr contained "\<\(visible\)\=\(Painted\|Fill\|Stroke\)\=\>"
|
||||||
|
|
||||||
" TODO find following items in w3c docs.
|
" TODO find following items in w3c docs.
|
||||||
syn keyword cssGeneratedContentProp contained quotes crop
|
syn keyword cssGeneratedContentProp contained quotes crop
|
||||||
syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
|
syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
|
||||||
@@ -325,7 +271,12 @@ syn match cssGeneratedContentProp contained "\<move-to\>"
|
|||||||
syn match cssGeneratedContentProp contained "\<page-policy\>"
|
syn match cssGeneratedContentProp contained "\<page-policy\>"
|
||||||
syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
|
syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
|
||||||
|
|
||||||
syn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
|
" https://www.w3.org/TR/css-grid-1/
|
||||||
|
syn match cssGridProp contained "\<grid\>"
|
||||||
|
syn match cssGridProp contained "\<grid\(-\(template\|auto\)\)\=\(-\(columns\|rows\|areas\)\)\>"
|
||||||
|
syn match cssGridProp contained "\<grid-\(column\|row\)\(-\(start\|end\|gap\)\)\=\>"
|
||||||
|
syn match cssGridProp contained "\<grid-\(area\|gap\)\>"
|
||||||
|
syn match cssGridProp contained "\<grid-auto-flow\>"
|
||||||
|
|
||||||
syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
|
syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
|
||||||
|
|
||||||
@@ -339,14 +290,14 @@ syn keyword cssListAttr contained inside outside
|
|||||||
syn keyword cssPositioningProp contained bottom clear clip display float left
|
syn keyword cssPositioningProp contained bottom clear clip display float left
|
||||||
syn keyword cssPositioningProp contained position right top visibility
|
syn keyword cssPositioningProp contained position right top visibility
|
||||||
syn match cssPositioningProp contained "\<z-index\>"
|
syn match cssPositioningProp contained "\<z-index\>"
|
||||||
syn keyword cssPositioningAttr contained block compact
|
syn keyword cssPositioningAttr contained block compact grid
|
||||||
syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
|
syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
|
||||||
syn keyword cssPositioningAttr contained left right both
|
syn keyword cssPositioningAttr contained left right both
|
||||||
syn match cssPositioningAttr contained "\<list-item\>"
|
syn match cssPositioningAttr contained "\<list-item\>"
|
||||||
syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\)\)\=\>"
|
syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\|grid\|flex\)\)\=\>"
|
||||||
syn keyword cssPositioningAttr contained static relative absolute fixed
|
syn keyword cssPositioningAttr contained static relative absolute fixed subgrid
|
||||||
|
|
||||||
syn keyword cssPrintAttr contained landscape portrait crop cross always avoid
|
syn keyword cssPrintAttr contained landscape portrait crop cross always
|
||||||
|
|
||||||
syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
|
syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
|
||||||
syn keyword cssTableAttr contained fixed collapse separate show hide once always
|
syn keyword cssTableAttr contained fixed collapse separate show hide once always
|
||||||
@@ -419,17 +370,20 @@ syn keyword cssUIAttr contained both horizontal vertical
|
|||||||
syn match cssUIProp contained "\<text-overflow\>"
|
syn match cssUIProp contained "\<text-overflow\>"
|
||||||
syn keyword cssUIAttr contained clip ellipsis
|
syn keyword cssUIAttr contained clip ellipsis
|
||||||
|
|
||||||
" Already highlighted Props: font content
|
syn match cssUIProp contained "\<image-rendering\>"
|
||||||
|
syn keyword cssUIAttr contained pixellated
|
||||||
|
syn match cssUIAttr contained "\<crisp-edges\>"
|
||||||
|
|
||||||
"------------------------------------------------
|
"------------------------------------------------
|
||||||
" Webkit/iOS specific attributes
|
" Webkit/iOS specific attributes
|
||||||
syn match cssUIAttr contained '\(preserve-3d\)'
|
syn match cssUIAttr contained '\<preserve-3d\>'
|
||||||
" IE specific attributes
|
" IE specific attributes
|
||||||
syn match cssIEUIAttr contained '\(bicubic\)'
|
syn match cssIEUIAttr contained '\<bicubic\>'
|
||||||
|
|
||||||
" Webkit/iOS specific properties
|
" Webkit/iOS specific properties
|
||||||
syn match cssUIProp contained '\(tap-highlight-color\|user-select\|touch-callout\)'
|
syn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>'
|
||||||
" IE specific properties
|
" IE specific properties
|
||||||
syn match cssIEUIProp contained '\(interpolation-mode\|zoom\|filter\)'
|
syn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>'
|
||||||
|
|
||||||
" Webkit/Firebox specific properties/attributes
|
" Webkit/Firebox specific properties/attributes
|
||||||
syn keyword cssUIProp contained appearance
|
syn keyword cssUIProp contained appearance
|
||||||
@@ -454,11 +408,25 @@ syn keyword cssAuralAttr contained male female child code digits continuous
|
|||||||
" mobile text
|
" mobile text
|
||||||
syn match cssMobileTextProp contained "\<text-size-adjust\>"
|
syn match cssMobileTextProp contained "\<text-size-adjust\>"
|
||||||
|
|
||||||
|
syn keyword cssMediaProp contained width height orientation scan grid
|
||||||
|
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
|
||||||
|
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
|
||||||
|
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
|
||||||
|
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
|
||||||
|
syn keyword cssMediaAttr contained portrait landscape progressive interlace
|
||||||
|
syn match cssKeyFrameProp /\d*%\|from\|to/ contained nextgroup=cssDefinition
|
||||||
|
syn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition
|
||||||
|
syn keyword cssPageProp contained content size
|
||||||
|
syn keyword cssPageProp contained orphans widows
|
||||||
|
syn keyword cssFontDescriptorProp contained src
|
||||||
|
syn match cssFontDescriptorProp contained "\<unicode-range\>"
|
||||||
|
" unicode-range attributes
|
||||||
|
syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+"
|
||||||
|
syn match cssFontDescriptorAttr contained "U+\x\+-\x\+"
|
||||||
|
|
||||||
syn match cssBraces contained "[{}]"
|
syn match cssBraces contained "[{}]"
|
||||||
syn match cssError contained "{@<>"
|
syn match cssError contained "{@<>"
|
||||||
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold
|
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssAttributeSelector,cssClassName,cssIdentifier,cssAtRule,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold
|
||||||
syn match cssBraceError "}"
|
syn match cssBraceError "}"
|
||||||
syn match cssAttrComma ","
|
syn match cssAttrComma ","
|
||||||
|
|
||||||
@@ -477,7 +445,7 @@ syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
|
|||||||
syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
|
syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
|
||||||
|
|
||||||
" Misc highlight groups
|
" Misc highlight groups
|
||||||
syntax match cssUnitDecorators /\(#\|-\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
|
syntax match cssUnitDecorators /\(#\|-\|+\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
|
||||||
syntax match cssNoise contained /\(:\|;\|\/\)/
|
syntax match cssNoise contained /\(:\|;\|\/\)/
|
||||||
|
|
||||||
" Comment
|
" Comment
|
||||||
@@ -490,7 +458,7 @@ syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEsc
|
|||||||
syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
|
syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
|
||||||
|
|
||||||
" Vendor Prefix
|
" Vendor Prefix
|
||||||
syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
|
syn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-"
|
||||||
|
|
||||||
" Various CSS Hack characters
|
" Various CSS Hack characters
|
||||||
" In earlier versions of IE (6 and 7), one can prefix property names
|
" In earlier versions of IE (6 and 7), one can prefix property names
|
||||||
@@ -508,6 +476,34 @@ syn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*
|
|||||||
" 'transition' has Props after ':'.
|
" 'transition' has Props after ':'.
|
||||||
syn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
|
syn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
|
||||||
|
|
||||||
|
syn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/ contained
|
||||||
|
|
||||||
|
syn keyword cssAtRuleLogical only not and contained
|
||||||
|
|
||||||
|
" @media
|
||||||
|
" Reference: http://www.w3.org/TR/css3-mediaqueries/
|
||||||
|
syn region cssAtRule start=/@media\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssComment nextgroup=cssDefinition
|
||||||
|
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained
|
||||||
|
|
||||||
|
" @page
|
||||||
|
" http://www.w3.org/TR/css3-page/
|
||||||
|
syn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition
|
||||||
|
syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
|
||||||
|
" @keyframe
|
||||||
|
" http://www.w3.org/TR/css3-animations/#keyframes
|
||||||
|
syn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition
|
||||||
|
|
||||||
|
syn region cssAtRule start=/@import\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType
|
||||||
|
syn region cssAtRule start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
|
||||||
|
syn region cssAtRule start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
|
||||||
|
|
||||||
|
" @font-face
|
||||||
|
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
|
||||||
|
syn match cssAtRule "@font-face\>" nextgroup=cssFontDescriptorBlock
|
||||||
|
" @supports
|
||||||
|
" https://www.w3.org/TR/css3-conditional/#at-supports
|
||||||
|
syn region cssAtRule start=/@supports\>/ end=/\ze{/ skipwhite skipnl contains=cssAtRuleLogical,cssAttrRegion,css.*Prop,cssValue.*,cssVendor,cssAtKeyword,cssComment nextgroup=cssDefinition
|
||||||
|
|
||||||
|
|
||||||
if main_syntax == "css"
|
if main_syntax == "css"
|
||||||
syn sync minlines=10
|
syn sync minlines=10
|
||||||
@@ -537,6 +533,7 @@ hi def link cssFontProp cssProp
|
|||||||
hi def link cssGeneratedContentProp cssProp
|
hi def link cssGeneratedContentProp cssProp
|
||||||
hi def link cssGridProp cssProp
|
hi def link cssGridProp cssProp
|
||||||
hi def link cssHyerlinkProp cssProp
|
hi def link cssHyerlinkProp cssProp
|
||||||
|
hi def link cssInteractProp cssProp
|
||||||
hi def link cssLineboxProp cssProp
|
hi def link cssLineboxProp cssProp
|
||||||
hi def link cssListProp cssProp
|
hi def link cssListProp cssProp
|
||||||
hi def link cssMarqueeProp cssProp
|
hi def link cssMarqueeProp cssProp
|
||||||
@@ -567,6 +564,7 @@ hi def link cssFontAttr cssAttr
|
|||||||
hi def link cssGeneratedContentAttr cssAttr
|
hi def link cssGeneratedContentAttr cssAttr
|
||||||
hi def link cssGridAttr cssAttr
|
hi def link cssGridAttr cssAttr
|
||||||
hi def link cssHyerlinkAttr cssAttr
|
hi def link cssHyerlinkAttr cssAttr
|
||||||
|
hi def link cssInteractAttr cssAttr
|
||||||
hi def link cssLineboxAttr cssAttr
|
hi def link cssLineboxAttr cssAttr
|
||||||
hi def link cssListAttr cssAttr
|
hi def link cssListAttr cssAttr
|
||||||
hi def link cssMarginAttr cssAttr
|
hi def link cssMarginAttr cssAttr
|
||||||
@@ -603,8 +601,8 @@ hi def link cssFunctionName Function
|
|||||||
hi def link cssFunctionComma Function
|
hi def link cssFunctionComma Function
|
||||||
hi def link cssColor Constant
|
hi def link cssColor Constant
|
||||||
hi def link cssIdentifier Function
|
hi def link cssIdentifier Function
|
||||||
hi def link cssInclude Include
|
hi def link cssAtRule Include
|
||||||
hi def link cssIncludeKeyword atKeyword
|
hi def link cssAtKeyword PreProc
|
||||||
hi def link cssImportant Special
|
hi def link cssImportant Special
|
||||||
hi def link cssBraces Function
|
hi def link cssBraces Function
|
||||||
hi def link cssBraceError Error
|
hi def link cssBraceError Error
|
||||||
@@ -613,20 +611,16 @@ hi def link cssUnicodeEscape Special
|
|||||||
hi def link cssStringQQ String
|
hi def link cssStringQQ String
|
||||||
hi def link cssStringQ String
|
hi def link cssStringQ String
|
||||||
hi def link cssAttributeSelector String
|
hi def link cssAttributeSelector String
|
||||||
hi def link cssMedia atKeyword
|
|
||||||
hi def link cssMediaType Special
|
hi def link cssMediaType Special
|
||||||
hi def link cssMediaComma Normal
|
hi def link cssMediaComma Normal
|
||||||
hi def link cssMediaKeyword Statement
|
hi def link cssAtRuleLogical Statement
|
||||||
hi def link cssMediaProp cssProp
|
hi def link cssMediaProp cssProp
|
||||||
hi def link cssMediaAttr cssAttr
|
hi def link cssMediaAttr cssAttr
|
||||||
hi def link cssPage atKeyword
|
|
||||||
hi def link cssPagePseudo PreProc
|
hi def link cssPagePseudo PreProc
|
||||||
hi def link cssPageMargin atKeyword
|
hi def link cssPageMarginProp cssAtKeyword
|
||||||
hi def link cssPageProp cssProp
|
hi def link cssPageProp cssProp
|
||||||
hi def link cssKeyFrame atKeyword
|
hi def link cssKeyFrameProp Constant
|
||||||
hi def link cssKeyFrameSelector Constant
|
|
||||||
hi def link cssFontDescriptor Special
|
hi def link cssFontDescriptor Special
|
||||||
hi def link cssFontDescriptorFunction Constant
|
|
||||||
hi def link cssFontDescriptorProp cssProp
|
hi def link cssFontDescriptorProp cssProp
|
||||||
hi def link cssFontDescriptorAttr cssAttr
|
hi def link cssFontDescriptorAttr cssAttr
|
||||||
hi def link cssUnicodeRange Constant
|
hi def link cssUnicodeRange Constant
|
||||||
@@ -636,7 +630,6 @@ hi def link cssProp StorageClass
|
|||||||
hi def link cssAttr Constant
|
hi def link cssAttr Constant
|
||||||
hi def link cssUnitDecorators Number
|
hi def link cssUnitDecorators Number
|
||||||
hi def link cssNoise Noise
|
hi def link cssNoise Noise
|
||||||
hi def link atKeyword PreProc
|
|
||||||
|
|
||||||
let b:current_syntax = "css"
|
let b:current_syntax = "css"
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: CUDA (NVIDIA Compute Unified Device Architecture)
|
" Language: CUDA (NVIDIA Compute Unified Device Architecture)
|
||||||
" Maintainer: Timothy B. Terriberry <tterribe@users.sourceforge.net>
|
" Maintainer: Timothy B. Terriberry <tterribe@users.sourceforge.net>
|
||||||
" Last Change: 2007 Oct 13
|
" Last Change: 2018 Feb 06
|
||||||
|
|
||||||
" quit when a syntax file was already loaded
|
" quit when a syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Read the C syntax to start with
|
" Read the C++ syntax to start with
|
||||||
runtime! syntax/c.vim
|
runtime! syntax/cpp.vim
|
||||||
|
|
||||||
" CUDA extentions
|
" CUDA extentions
|
||||||
syn keyword cudaStorageClass __device__ __global__ __host__
|
syn keyword cudaStorageClass __device__ __global__ __host__
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Debian changelog files
|
" Language: Debian changelog files
|
||||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
" Maintainer: Debian Vim Maintainers
|
||||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||||
" Wichert Akkerman <wakkerma@debian.org>
|
" Wichert Akkerman <wakkerma@debian.org>
|
||||||
" Last Change: 2017 Apr 23
|
" Last Change: 2018 Jan 06
|
||||||
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim
|
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
|
||||||
|
|
||||||
" Standard syntax initialization
|
" Standard syntax initialization
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
@@ -21,7 +21,7 @@ let s:binNMU='binary-only=yes'
|
|||||||
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
|
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
|
||||||
exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
|
exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
|
||||||
exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
|
exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
|
||||||
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
|
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
|
||||||
syn match debchangelogVersion contained "(.\{-})"
|
syn match debchangelogVersion contained "(.\{-})"
|
||||||
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
|
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
|
||||||
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
|
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Debian control files
|
" Language: Debian control files
|
||||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
" Maintainer: Debian Vim Maintainers
|
||||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||||
" Wichert Akkerman <wakkerma@debian.org>
|
" Wichert Akkerman <wakkerma@debian.org>
|
||||||
" Last Change: 2017 Nov 04
|
" Last Change: 2018 Jan 06
|
||||||
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debcontrol.vim
|
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcontrol.vim
|
||||||
|
|
||||||
" Standard syntax initialization
|
" Standard syntax initialization
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
@@ -52,7 +52,7 @@ let s:sections = [
|
|||||||
\, 'devel', 'doc', 'editors', 'education', 'electronics', 'embedded'
|
\, 'devel', 'doc', 'editors', 'education', 'electronics', 'embedded'
|
||||||
\, 'fonts', 'games', 'gnome', 'gnustep', 'gnu-r', 'golang', 'graphics'
|
\, 'fonts', 'games', 'gnome', 'gnustep', 'gnu-r', 'golang', 'graphics'
|
||||||
\, 'hamradio', 'haskell', 'httpd', 'interpreters', 'introspection'
|
\, 'hamradio', 'haskell', 'httpd', 'interpreters', 'introspection'
|
||||||
\, 'java', 'javascript', 'kde', 'kernel', 'libs', 'libdevel', 'lisp'
|
\, 'java\%(script\)\=', 'kde', 'kernel', 'libs', 'libdevel', 'lisp'
|
||||||
\, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net'
|
\, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net'
|
||||||
\, 'news', 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python'
|
\, 'news', 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python'
|
||||||
\, 'ruby', 'rust', 'science', 'shells', 'sound', 'text', 'tex'
|
\, 'ruby', 'rust', 'science', 'shells', 'sound', 'text', 'tex'
|
||||||
@@ -87,44 +87,29 @@ syn match debcontrolComment "^#.*$" contains=@Spell
|
|||||||
|
|
||||||
syn case ignore
|
syn case ignore
|
||||||
|
|
||||||
" List of all legal keys, in order, from deb-src-control(5)
|
" Handle all fields from deb-src-control(5)
|
||||||
" Source fields
|
|
||||||
syn match debcontrolKey contained "^\%(Source\|Maintainer\|Uploaders\|Standards-Version\|Description\|Homepage\|Bugs\|Rules-Requires-Root\): *"
|
|
||||||
syn match debcontrolKey contained "^\%(XS-\)\=Vcs-\%(Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\|Browser\): *"
|
|
||||||
syn match debcontrolKey contained "^\%(Origin\|Section\|Priority\): *"
|
|
||||||
syn match debcontrolKey contained "^Build-\%(Depends\|Conflicts\)\%(-Arch\|-Indep\)\=: *"
|
|
||||||
|
|
||||||
" Binary fields
|
|
||||||
syn match debcontrolKey contained "^\%(Package\%(-Type\)\=\|Architecture\|Build-Profiles\): *"
|
|
||||||
syn match debcontrolKey contained "^\%(\%(Build-\)\=Essential\|Multi-Arch\|Tag\): *"
|
|
||||||
syn match debcontrolKey contained "^\%(\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\): *"
|
|
||||||
syn match debcontrolKey contained "^\%(Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): *"
|
|
||||||
|
|
||||||
" User-defined fields
|
|
||||||
syn match debcontrolKey contained "^X[SBC]\{0,3\}\%(-Private\)\=-[-a-zA-Z0-9]\+: *"
|
|
||||||
|
|
||||||
syn match debcontrolDeprecatedKey contained "^\%(\%(XS-\)\=DM-Upload-Allowed\): *"
|
|
||||||
|
|
||||||
" Fields for which we do strict syntax checking
|
" Fields for which we do strict syntax checking
|
||||||
syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Architecture: *" end="$" contains=debcontrolArchitecture,debcontrolSpace oneline
|
||||||
syn region debcontrolStrictField start="^Multi-Arch" end="$" contains=debcontrolKey,debcontrolMultiArch oneline
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Multi-Arch: *" end="$" contains=debcontrolMultiArch oneline
|
||||||
syn region debcontrolStrictField start="^\%(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Package\|Source\): *" end="$" contains=debcontrolName oneline
|
||||||
syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Priority: *" end="$" contains=debcontrolPriority oneline
|
||||||
syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Section: *" end="$" contains=debcontrolSection oneline
|
||||||
syn region debcontrolStrictField start="^\%(XC-\)\=Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XC-\)\=Package-Type: *" end="$" contains=debcontrolPackageType oneline
|
||||||
syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Homepage: *" end="$" contains=debcontrolHTTPUrl oneline keepend
|
||||||
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\): *" end="$" contains=debcontrolHTTPUrl oneline keepend
|
||||||
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Svn: *" end="$" contains=debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
|
||||||
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Cvs: *" end="$" contains=debcontrolVcsCvs oneline keepend
|
||||||
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Git: *" end="$" contains=debcontrolVcsGit oneline keepend
|
||||||
syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolDeprecatedKey,debcontrolDmUpload oneline
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Rules-Requires-Root: *" end="$" contains=debcontrolR3 oneline
|
||||||
syn region debcontrolStrictField start="^Rules-Requires-Root" end="$" contains=debcontrolKey,debcontrolR3 oneline
|
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Build-\)\=Essential: *" end="$" contains=debcontrolYesNo oneline
|
||||||
syn region debcontrolStrictField start="^\%(Build-\)\=Essential" end="$" contains=debcontrolKey,debcontrolYesNo oneline
|
|
||||||
|
syn region debcontrolStrictField matchgroup=debcontrolDeprecatedKey start="^\%(XS-\)\=DM-Upload-Allowed: *" end="$" contains=debcontrolDmUpload oneline
|
||||||
|
|
||||||
" Catch-all for the other legal fields
|
" Catch-all for the other legal fields
|
||||||
syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
|
syn region debcontrolField matchgroup=debcontrolKey start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\%(-Triggers\)\=\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): " end="$" contains=debcontrolVariable,debcontrolEmail oneline
|
||||||
syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
|
syn region debcontrolMultiField matchgroup=debcontrolKey start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\): *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment
|
||||||
syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
|
syn region debcontrolMultiFieldSpell matchgroup=debcontrolKey start="^Description: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
|
||||||
|
|
||||||
" Associate our matches and regions with pretty colours
|
" Associate our matches and regions with pretty colours
|
||||||
hi def link debcontrolKey Keyword
|
hi def link debcontrolKey Keyword
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Debian sources.list
|
" Language: Debian sources.list
|
||||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
" Maintainer: Debian Vim Maintainers
|
||||||
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
|
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
|
||||||
" Last Change: 2017 Oct 28
|
" Last Change: 2018 Jan 06
|
||||||
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim
|
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
|
||||||
|
|
||||||
" Standard syntax initialization
|
" Standard syntax initialization
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: dircolors(1) input file
|
" Language: dircolors(1) input file
|
||||||
" Maintainer: Jan Larres <jan@majutsushi.net>
|
" Maintainer: Jan Larres <jan@majutsushi.net>
|
||||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||||
" Latest Revision: 2013-08-17
|
" Latest Revision: 2018-02-19
|
||||||
|
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
@@ -135,6 +135,12 @@ function! s:preview_color(linenr) abort
|
|||||||
elseif item >= 40 && item <= 47
|
elseif item >= 40 && item <= 47
|
||||||
" ANSI SGR background color
|
" ANSI SGR background color
|
||||||
let hi_str .= s:get_hi_str(item - 40, 'bg')
|
let hi_str .= s:get_hi_str(item - 40, 'bg')
|
||||||
|
elseif item >= 90 && item <= 97
|
||||||
|
" ANSI SGR+8 foreground color (xterm 16-color support)
|
||||||
|
let hi_str .= s:get_hi_str(item - 82, 'fg')
|
||||||
|
elseif item >= 100 && item <= 107
|
||||||
|
" ANSI SGR+8 background color (xterm 16-color support)
|
||||||
|
let hi_str .= s:get_hi_str(item - 92, 'bg')
|
||||||
elseif item == 38
|
elseif item == 38
|
||||||
" Foreground for terminals with 88/256 color support
|
" Foreground for terminals with 88/256 color support
|
||||||
let color = s:get_256color(colors)
|
let color = s:get_256color(colors)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: MIX (Donald Knuth's assembly language used in TAOCP)
|
" Language: MIX (Donald Knuth's assembly language used in TAOCP)
|
||||||
" Maintainer: Wu Yongwei <wuyongwei@gmail.com>
|
" Maintainer: Wu Yongwei <wuyongwei@gmail.com>
|
||||||
" Filenames: *.mixal *.mix
|
" Filenames: *.mixal *.mix
|
||||||
" Last Change: 2013 Nov 13
|
" Last Change: 2017-11-26 15:21:36 +0800
|
||||||
|
|
||||||
" Quit when a syntax file was already loaded
|
" Quit when a syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
@@ -16,7 +16,7 @@ syn case ignore
|
|||||||
|
|
||||||
" Special processing of ALF directive: implementations vary whether quotation
|
" Special processing of ALF directive: implementations vary whether quotation
|
||||||
" marks are needed
|
" marks are needed
|
||||||
syn match mixAlfParam #\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixAlfDirective,mixString nextgroup=mixEndComment contained
|
syn match mixAlfParam #\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixString nextgroup=mixEndComment contained
|
||||||
|
|
||||||
" Region for parameters
|
" Region for parameters
|
||||||
syn match mixParam #[-+*/:=0-9a-z,()"]\+# contains=mixIdentifier,mixSpecial,mixNumber,mixString,mixLabel nextgroup=mixEndComment contained
|
syn match mixParam #[-+*/:=0-9a-z,()"]\+# contains=mixIdentifier,mixSpecial,mixNumber,mixString,mixLabel nextgroup=mixEndComment contained
|
||||||
@@ -46,6 +46,7 @@ syn keyword mixDirective ALF nextgroup=mixAlfParam contained
|
|||||||
" Opcodes
|
" Opcodes
|
||||||
syn keyword mixOpcode NOP HLT NUM CHAR FLOT FIX nextgroup=mixEndComment contained
|
syn keyword mixOpcode NOP HLT NUM CHAR FLOT FIX nextgroup=mixEndComment contained
|
||||||
syn keyword mixOpcode FADD FSUB FMUL FDIV FCMP MOVE ADD SUB MUL DIV IOC IN OUT JRED JBUS JMP JSJ JOV JNOV JL JE JG JLE JNE JGE SLA SRA SLAX SRAX SLC SRC nextgroup=mixParam contained skipwhite
|
syn keyword mixOpcode FADD FSUB FMUL FDIV FCMP MOVE ADD SUB MUL DIV IOC IN OUT JRED JBUS JMP JSJ JOV JNOV JL JE JG JLE JNE JGE SLA SRA SLAX SRAX SLC SRC nextgroup=mixParam contained skipwhite
|
||||||
|
syn keyword mixOpcode SLB SRB JAE JAO JXE JXO nextgroup=mixParam contained skipwhite
|
||||||
|
|
||||||
syn match mixOpcode "LD[AX1-6]N\?\>" nextgroup=mixParam contained skipwhite
|
syn match mixOpcode "LD[AX1-6]N\?\>" nextgroup=mixParam contained skipwhite
|
||||||
syn match mixOpcode "ST[AX1-6JZ]\>" nextgroup=mixParam contained skipwhite
|
syn match mixOpcode "ST[AX1-6JZ]\>" nextgroup=mixParam contained skipwhite
|
||||||
@@ -58,7 +59,7 @@ syn match mixOpcode "J[AX1-6]N\?[NZP]\>" nextgroup=mixParam contained skipwhite
|
|||||||
" Switch back to being case sensitive
|
" Switch back to being case sensitive
|
||||||
syn case match
|
syn case match
|
||||||
|
|
||||||
" Registers (only to used in comments now)
|
" Registers (only to be used in comments now)
|
||||||
syn keyword mixRegister rA rX rI1 rI2 rI3 rI4 rI5 rI6 rJ contained
|
syn keyword mixRegister rA rX rI1 rI2 rI3 rI4 rI5 rI6 rJ contained
|
||||||
|
|
||||||
" The default highlighting
|
" The default highlighting
|
||||||
|
|||||||
@@ -1,52 +1,72 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: NSIS script, for version of NSIS 1.91 and later
|
" Language: NSIS script, for version of NSIS 3.02 and later
|
||||||
" Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt>
|
" Maintainer: Ken Takata
|
||||||
" Last Change: 2004 May 12
|
" URL: https://github.com/k-takata/vim-nsis
|
||||||
|
" Previous Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt>
|
||||||
|
" Last Change: 2018-01-26
|
||||||
|
|
||||||
" quit when a syntax file was already loaded
|
" quit when a syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
syn case ignore
|
syn case ignore
|
||||||
|
|
||||||
|
|
||||||
"COMMENTS
|
"Pseudo definitions
|
||||||
|
syn match nsisLine nextgroup=@nsisPseudoStatement skipwhite "^"
|
||||||
|
syn cluster nsisPseudoStatement contains=nsisFirstComment,nsisLocalLabel,nsisGlobalLabel
|
||||||
|
syn cluster nsisPseudoStatement add=nsisDefine,nsisPreCondit,nsisMacro,nsisInclude,nsisSystem
|
||||||
|
syn cluster nsisPseudoStatement add=nsisAttribute,nsisCompiler,nsisVersionInfo,nsisInstruction,nsisStatement
|
||||||
|
|
||||||
|
"COMMENTS (4.1)
|
||||||
syn keyword nsisTodo todo attention note fixme readme
|
syn keyword nsisTodo todo attention note fixme readme
|
||||||
syn region nsisComment start=";" end="$" contains=nsisTodo
|
syn region nsisComment start="[;#]" end="$" contains=nsisTodo,nsisLineContinuation,@Spell oneline
|
||||||
syn region nsisComment start="#" end="$" contains=nsisTodo
|
syn region nsisComment start=".\@1<=/\*" end="\*/" contains=nsisTodo,@Spell
|
||||||
|
syn region nsisFirstComment start="/\*" end="\*/" contained contains=nsisTodo,@Spell skipwhite
|
||||||
|
\ nextgroup=@nsisPseudoStatement
|
||||||
|
|
||||||
"LABELS
|
syn match nsisLineContinuation "\\$"
|
||||||
syn match nsisLocalLabel "\a\S\{-}:"
|
|
||||||
syn match nsisGlobalLabel "\.\S\{-1,}:"
|
|
||||||
|
|
||||||
"PREPROCESSOR
|
"STRINGS (4.1)
|
||||||
syn match nsisPreprocSubst "${.\{-}}"
|
syn region nsisString start=/"/ end=/"/ contains=@nsisStringItems,@Spell
|
||||||
syn match nsisDefine "!define\>"
|
syn region nsisString start=/'/ end=/'/ contains=@nsisStringItems,@Spell
|
||||||
syn match nsisDefine "!undef\>"
|
syn region nsisString start=/`/ end=/`/ contains=@nsisStringItems,@Spell
|
||||||
syn match nsisPreCondit "!ifdef\>"
|
|
||||||
syn match nsisPreCondit "!ifndef\>"
|
|
||||||
syn match nsisPreCondit "!endif\>"
|
|
||||||
syn match nsisPreCondit "!else\>"
|
|
||||||
syn match nsisMacro "!macro\>"
|
|
||||||
syn match nsisMacro "!macroend\>"
|
|
||||||
syn match nsisMacro "!insertmacro\>"
|
|
||||||
|
|
||||||
"COMPILER UTILITY
|
syn cluster nsisStringItems contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisRegistry,nsisLineContinuation
|
||||||
syn match nsisInclude "!include\>"
|
|
||||||
syn match nsisSystem "!cd\>"
|
|
||||||
syn match nsisSystem "!system\>"
|
|
||||||
syn match nsisSystem "!packhdr\>"
|
|
||||||
|
|
||||||
"VARIABLES
|
"NUMBERS (4.1)
|
||||||
|
syn match nsisNumber "\<[1-9]\d*\>"
|
||||||
|
syn match nsisNumber "\<0x\x\+\>"
|
||||||
|
syn match nsisNumber "\<0\o*\>"
|
||||||
|
|
||||||
|
"STRING REPLACEMENT (5.4, 4.9.15.2, 5.3.1)
|
||||||
|
syn region nsisPreprocSubst start="\${" end="}" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar
|
||||||
|
syn region nsisPreprocLangStr start="\$(" end=")" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar
|
||||||
|
syn region nsisPreprocEnvVar start="\$%" end="%" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar
|
||||||
|
|
||||||
|
"VARIABLES (4.2.2)
|
||||||
syn match nsisUserVar "$\d"
|
syn match nsisUserVar "$\d"
|
||||||
syn match nsisUserVar "$R\d"
|
syn match nsisUserVar "$R\d"
|
||||||
syn match nsisSysVar "$INSTDIR"
|
syn match nsisSysVar "$INSTDIR"
|
||||||
syn match nsisSysVar "$OUTDIR"
|
syn match nsisSysVar "$OUTDIR"
|
||||||
syn match nsisSysVar "$CMDLINE"
|
syn match nsisSysVar "$CMDLINE"
|
||||||
|
syn match nsisSysVar "$LANGUAGE"
|
||||||
|
"CONSTANTS (4.2.3)
|
||||||
syn match nsisSysVar "$PROGRAMFILES"
|
syn match nsisSysVar "$PROGRAMFILES"
|
||||||
|
syn match nsisSysVar "$PROGRAMFILES32"
|
||||||
|
syn match nsisSysVar "$PROGRAMFILES64"
|
||||||
|
syn match nsisSysVar "$COMMONFILES"
|
||||||
|
syn match nsisSysVar "$COMMONFILES32"
|
||||||
|
syn match nsisSysVar "$COMMONFILES64"
|
||||||
syn match nsisSysVar "$DESKTOP"
|
syn match nsisSysVar "$DESKTOP"
|
||||||
syn match nsisSysVar "$EXEDIR"
|
syn match nsisSysVar "$EXEDIR"
|
||||||
|
syn match nsisSysVar "$EXEFILE"
|
||||||
|
syn match nsisSysVar "$EXEPATH"
|
||||||
|
syn match nsisSysVar "${NSISDIR}"
|
||||||
syn match nsisSysVar "$WINDIR"
|
syn match nsisSysVar "$WINDIR"
|
||||||
syn match nsisSysVar "$SYSDIR"
|
syn match nsisSysVar "$SYSDIR"
|
||||||
syn match nsisSysVar "$TEMP"
|
syn match nsisSysVar "$TEMP"
|
||||||
@@ -54,170 +74,513 @@ syn match nsisSysVar "$STARTMENU"
|
|||||||
syn match nsisSysVar "$SMPROGRAMS"
|
syn match nsisSysVar "$SMPROGRAMS"
|
||||||
syn match nsisSysVar "$SMSTARTUP"
|
syn match nsisSysVar "$SMSTARTUP"
|
||||||
syn match nsisSysVar "$QUICKLAUNCH"
|
syn match nsisSysVar "$QUICKLAUNCH"
|
||||||
|
syn match nsisSysVar "$DOCUMENTS"
|
||||||
|
syn match nsisSysVar "$SENDTO"
|
||||||
|
syn match nsisSysVar "$RECENT"
|
||||||
|
syn match nsisSysVar "$FAVORITES"
|
||||||
|
syn match nsisSysVar "$MUSIC"
|
||||||
|
syn match nsisSysVar "$PICTURES"
|
||||||
|
syn match nsisSysVar "$VIDEOS"
|
||||||
|
syn match nsisSysVar "$NETHOOD"
|
||||||
|
syn match nsisSysVar "$FONTS"
|
||||||
|
syn match nsisSysVar "$TEMPLATES"
|
||||||
|
syn match nsisSysVar "$APPDATA"
|
||||||
|
syn match nsisSysVar "$LOCALAPPDATA"
|
||||||
|
syn match nsisSysVar "$PRINTHOOD"
|
||||||
|
syn match nsisSysVar "$INTERNET_CACHE"
|
||||||
|
syn match nsisSysVar "$COOKIES"
|
||||||
|
syn match nsisSysVar "$HISTORY"
|
||||||
|
syn match nsisSysVar "$PROFILE"
|
||||||
|
syn match nsisSysVar "$ADMINTOOLS"
|
||||||
|
syn match nsisSysVar "$RESOURCES"
|
||||||
|
syn match nsisSysVar "$RESOURCES_LOCALIZED"
|
||||||
|
syn match nsisSysVar "$CDBURN_AREA"
|
||||||
syn match nsisSysVar "$HWNDPARENT"
|
syn match nsisSysVar "$HWNDPARENT"
|
||||||
|
syn match nsisSysVar "$PLUGINSDIR"
|
||||||
syn match nsisSysVar "$\\r"
|
syn match nsisSysVar "$\\r"
|
||||||
syn match nsisSysVar "$\\n"
|
syn match nsisSysVar "$\\n"
|
||||||
|
syn match nsisSysVar "$\\t"
|
||||||
syn match nsisSysVar "$\$"
|
syn match nsisSysVar "$\$"
|
||||||
|
syn match nsisSysVar "$\\["'`]"
|
||||||
|
|
||||||
"STRINGS
|
"LABELS (4.3)
|
||||||
syn region nsisString start=/"/ skip=/'\|`/ end=/"/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry
|
syn match nsisLocalLabel contained "[^-+!$0-9;#. \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
|
||||||
syn region nsisString start=/'/ skip=/"\|`/ end=/'/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry
|
syn match nsisGlobalLabel contained "\.[^-+!$0-9;# \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
|
||||||
syn region nsisString start=/`/ skip=/"\|'/ end=/`/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry
|
|
||||||
|
|
||||||
"CONSTANTS
|
"CONSTANTS
|
||||||
syn keyword nsisBoolean true false on off
|
syn keyword nsisBoolean contained true false
|
||||||
|
syn keyword nsisOnOff contained on off
|
||||||
|
|
||||||
syn keyword nsisAttribOptions hide show nevershow auto force try ifnewer normal silent silentlog
|
syn keyword nsisRegistry contained HKCR HKLM HKCU HKU HKCC HKDD HKPD SHCTX
|
||||||
syn keyword nsisAttribOptions smooth colored SET CUR END RO none listonly textonly both current all
|
syn keyword nsisRegistry contained HKCR32 HKCR64 HKCU32 HKCU64 HKLM32 HKLM64
|
||||||
syn keyword nsisAttribOptions zlib bzip2 lzma
|
syn keyword nsisRegistry contained HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS
|
||||||
|
syn keyword nsisRegistry contained HKEY_CLASSES_ROOT32 HKEY_CLASSES_ROOT64
|
||||||
syn match nsisAttribOptions '\/NOCUSTOM'
|
syn keyword nsisRegistry contained HKEY_CURRENT_USER32 HKEY_CURRENT_USER64
|
||||||
syn match nsisAttribOptions '\/CUSTOMSTRING'
|
syn keyword nsisRegistry contained HKEY_LOCAL_MACHINE32 HKEY_LOCAL_MACHINE64
|
||||||
syn match nsisAttribOptions '\/COMPONENTSONLYONCUSTOM'
|
syn keyword nsisRegistry contained HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA
|
||||||
syn match nsisAttribOptions '\/windows'
|
syn keyword nsisRegistry contained SHELL_CONTEXT
|
||||||
syn match nsisAttribOptions '\/r'
|
|
||||||
syn match nsisAttribOptions '\/oname'
|
|
||||||
syn match nsisAttribOptions '\/REBOOTOK'
|
|
||||||
syn match nsisAttribOptions '\/SILENT'
|
|
||||||
syn match nsisAttribOptions '\/FILESONLY'
|
|
||||||
syn match nsisAttribOptions '\/SHORT'
|
|
||||||
|
|
||||||
syn keyword nsisExecShell SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED
|
|
||||||
|
|
||||||
syn keyword nsisRegistry HKCR HKLM HKCU HKU HKCC HKDD HKPD
|
|
||||||
syn keyword nsisRegistry HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS
|
|
||||||
syn keyword nsisRegistry HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA
|
|
||||||
|
|
||||||
syn keyword nsisFileAttrib NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY
|
|
||||||
syn keyword nsisFileAttrib FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN
|
|
||||||
syn keyword nsisFileAttrib FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM
|
|
||||||
syn keyword nsisFileAttrib FILE_ATTRIBUTE_TEMPORARY
|
|
||||||
|
|
||||||
syn keyword nsisMessageBox MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL
|
|
||||||
syn keyword nsisMessageBox MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP
|
|
||||||
syn keyword nsisMessageBox MB_TOPMOST MB_SETFOREGROUND MB_RIGHT
|
|
||||||
syn keyword nsisMessageBox MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4
|
|
||||||
syn keyword nsisMessageBox IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES
|
|
||||||
|
|
||||||
syn match nsisNumber "\<[^0]\d*\>"
|
|
||||||
syn match nsisNumber "\<0x\x\+\>"
|
|
||||||
syn match nsisNumber "\<0\o*\>"
|
|
||||||
|
|
||||||
|
|
||||||
"INSTALLER ATTRIBUTES - General installer configuration
|
" common options
|
||||||
syn keyword nsisAttribute OutFile Name Caption SubCaption BrandingText Icon
|
syn cluster nsisAnyOpt contains=nsisComment,nsisLineContinuation,nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisString,nsisNumber
|
||||||
syn keyword nsisAttribute WindowIcon BGGradient SilentInstall SilentUnInstall
|
syn region nsisBooleanOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBoolean
|
||||||
syn keyword nsisAttribute CRCCheck MiscButtonText InstallButtonText FileErrorText
|
syn region nsisOnOffOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisOnOff
|
||||||
|
syn region nsisLangOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLangKwd
|
||||||
|
syn match nsisLangKwd contained "/LANG\>"
|
||||||
|
syn region nsisFontOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFontKwd
|
||||||
|
syn match nsisFontKwd contained "/\%(ITALIC\|UNDERLINE\|STRIKE\)\>"
|
||||||
|
|
||||||
"INSTALLER ATTRIBUTES - Install directory configuration
|
"STATEMENTS - pages (4.5)
|
||||||
syn keyword nsisAttribute InstallDir InstallDirRegKey
|
syn keyword nsisStatement contained Page UninstPage nextgroup=nsisPageOpt skipwhite
|
||||||
|
syn region nsisPageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageKwd
|
||||||
|
syn keyword nsisPageKwd contained custom license components directory instfiles uninstConfirm
|
||||||
|
syn match nsisPageKwd contained "/ENABLECANCEL\>"
|
||||||
|
|
||||||
"INSTALLER ATTRIBUTES - License page configuration
|
syn keyword nsisStatement contained PageEx nextgroup=nsisPageExOpt skipwhite
|
||||||
syn keyword nsisAttribute LicenseText LicenseData
|
syn region nsisPageExOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageExKwd
|
||||||
|
syn match nsisPageExKwd contained "\<\%(un\.\)\?\%(custom\|license\|components\|directory\|instfiles\|uninstConfirm\)\>"
|
||||||
|
|
||||||
"INSTALLER ATTRIBUTES - Component page configuration
|
syn keyword nsisStatement contained PageExEnd PageCallbacks
|
||||||
syn keyword nsisAttribute ComponentText InstType EnabledBitmap DisabledBitmap SpaceTexts
|
|
||||||
|
|
||||||
"INSTALLER ATTRIBUTES - Directory page configuration
|
"STATEMENTS - sections (4.6.1)
|
||||||
syn keyword nsisAttribute DirShow DirText AllowRootDirInstall
|
syn keyword nsisStatement contained AddSize SectionEnd SectionGroupEnd
|
||||||
|
|
||||||
"INSTALLER ATTRIBUTES - Install page configuration
|
syn keyword nsisStatement contained Section nextgroup=nsisSectionOpt skipwhite
|
||||||
syn keyword nsisAttribute InstallColors InstProgressFlags AutoCloseWindow
|
syn region nsisSectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionKwd
|
||||||
syn keyword nsisAttribute ShowInstDetails DetailsButtonText CompletedText
|
syn match nsisSectionKwd contained "/o\>"
|
||||||
|
|
||||||
"INSTALLER ATTRIBUTES - Uninstall configuration
|
syn keyword nsisStatement contained SectionIn nextgroup=nsisSectionInOpt skipwhite
|
||||||
syn keyword nsisAttribute UninstallText UninstallIcon UninstallCaption
|
syn region nsisSectionInOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionInKwd
|
||||||
syn keyword nsisAttribute UninstallSubCaption ShowUninstDetails UninstallButtonText
|
syn keyword nsisSectionInKwd contained RO
|
||||||
|
|
||||||
"COMPILER ATTRIBUTES
|
syn keyword nsisStatement contained SectionGroup nextgroup=nsisSectionGroupOpt skipwhite
|
||||||
syn keyword nsisCompiler SetOverwrite SetCompress SetCompressor SetDatablockOptimize SetDateSave
|
syn region nsisSectionGroupOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionGroupKwd
|
||||||
|
syn match nsisSectionGroupKwd contained "/e\>"
|
||||||
|
|
||||||
|
"STATEMENTS - functions (4.7.1)
|
||||||
|
syn keyword nsisStatement contained Function FunctionEnd
|
||||||
|
|
||||||
|
|
||||||
"FUNCTIONS - general purpose
|
"STATEMENTS - LogicLib.nsh
|
||||||
syn keyword nsisInstruction SetOutPath File Exec ExecWait ExecShell
|
syn match nsisStatement "${If}"
|
||||||
syn keyword nsisInstruction Rename Delete RMDir
|
syn match nsisStatement "${IfNot}"
|
||||||
|
syn match nsisStatement "${Unless}"
|
||||||
"FUNCTIONS - registry & ini
|
syn match nsisStatement "${ElseIf}"
|
||||||
syn keyword nsisInstruction WriteRegStr WriteRegExpandStr WriteRegDWORD WriteRegBin
|
syn match nsisStatement "${ElseIfNot}"
|
||||||
syn keyword nsisInstruction WriteINIStr ReadRegStr ReadRegDWORD ReadINIStr ReadEnvStr
|
syn match nsisStatement "${ElseUnless}"
|
||||||
syn keyword nsisInstruction ExpandEnvStrings DeleteRegValue DeleteRegKey EnumRegKey
|
syn match nsisStatement "${Else}"
|
||||||
syn keyword nsisInstruction EnumRegValue DeleteINISec DeleteINIStr
|
syn match nsisStatement "${EndIf}"
|
||||||
|
syn match nsisStatement "${EndUnless}"
|
||||||
"FUNCTIONS - general purpose, advanced
|
syn match nsisStatement "${AndIf}"
|
||||||
syn keyword nsisInstruction CreateDirectory CopyFiles SetFileAttributes CreateShortCut
|
syn match nsisStatement "${AndIfNot}"
|
||||||
syn keyword nsisInstruction GetFullPathName SearchPath GetTempFileName CallInstDLL
|
syn match nsisStatement "${AndUnless}"
|
||||||
syn keyword nsisInstruction RegDLL UnRegDLL GetDLLVersion GetDLLVersionLocal
|
syn match nsisStatement "${OrIf}"
|
||||||
syn keyword nsisInstruction GetFileTime GetFileTimeLocal
|
syn match nsisStatement "${OrIfNot}"
|
||||||
|
syn match nsisStatement "${OrUnless}"
|
||||||
"FUNCTIONS - Branching, flow control, error checking, user interaction, etc instructions
|
syn match nsisStatement "${IfThen}"
|
||||||
syn keyword nsisInstruction Goto Call Return IfErrors ClearErrors SetErrors FindWindow
|
syn match nsisStatement "${IfNotThen}"
|
||||||
syn keyword nsisInstruction SendMessage IsWindow IfFileExists MessageBox StrCmp
|
syn match nsisStatement "${||\?}" nextgroup=@nsisPseudoStatement skipwhite
|
||||||
syn keyword nsisInstruction IntCmp IntCmpU Abort Quit GetFunctionAddress GetLabelAddress
|
syn match nsisStatement "${IfCmd}" nextgroup=@nsisPseudoStatement skipwhite
|
||||||
syn keyword nsisInstruction GetCurrentAddress
|
syn match nsisStatement "${Select}"
|
||||||
|
syn match nsisStatement "${Case}"
|
||||||
"FUNCTIONS - File and directory i/o instructions
|
syn match nsisStatement "${Case[2-5]}"
|
||||||
syn keyword nsisInstruction FindFirst FindNext FindClose FileOpen FileClose FileRead
|
syn match nsisStatement "${CaseElse}"
|
||||||
syn keyword nsisInstruction FileWrite FileReadByte FileWriteByte FileSeek
|
syn match nsisStatement "${Default}"
|
||||||
|
syn match nsisStatement "${EndSelect}"
|
||||||
"FUNCTIONS - Misc instructions
|
syn match nsisStatement "${Switch}"
|
||||||
syn keyword nsisInstruction SetDetailsView SetDetailsPrint SetAutoClose DetailPrint
|
syn match nsisStatement "${EndSwitch}"
|
||||||
syn keyword nsisInstruction Sleep BringToFront HideWindow SetShellVarContext
|
syn match nsisStatement "${Break}"
|
||||||
|
syn match nsisStatement "${Do}"
|
||||||
"FUNCTIONS - String manipulation support
|
syn match nsisStatement "${DoWhile}"
|
||||||
syn keyword nsisInstruction StrCpy StrLen
|
syn match nsisStatement "${DoUntil}"
|
||||||
|
syn match nsisStatement "${ExitDo}"
|
||||||
"FUNCTIONS - Stack support
|
syn match nsisStatement "${Continue}"
|
||||||
syn keyword nsisInstruction Push Pop Exch
|
syn match nsisStatement "${Loop}"
|
||||||
|
syn match nsisStatement "${LoopWhile}"
|
||||||
"FUNCTIONS - Integer manipulation support
|
syn match nsisStatement "${LoopUntil}"
|
||||||
syn keyword nsisInstruction IntOp IntFmt
|
syn match nsisStatement "${For}"
|
||||||
|
syn match nsisStatement "${ForEach}"
|
||||||
"FUNCTIONS - Rebooting support
|
syn match nsisStatement "${ExitFor}"
|
||||||
syn keyword nsisInstruction Reboot IfRebootFlag SetRebootFlag
|
syn match nsisStatement "${Next}"
|
||||||
|
"STATEMENTS - Memento.nsh
|
||||||
"FUNCTIONS - Uninstaller instructions
|
syn match nsisStatement "${MementoSection}"
|
||||||
syn keyword nsisInstruction WriteUninstaller
|
syn match nsisStatement "${MementoSectionEnd}"
|
||||||
|
|
||||||
"FUNCTIONS - Install logging instructions
|
|
||||||
syn keyword nsisInstruction LogSet LogText
|
|
||||||
|
|
||||||
"FUNCTIONS - Section management instructions
|
|
||||||
syn keyword nsisInstruction SectionSetFlags SectionGetFlags SectionSetText
|
|
||||||
syn keyword nsisInstruction SectionGetText
|
|
||||||
|
|
||||||
|
|
||||||
"SPECIAL FUNCTIONS - install
|
"USER VARIABLES (4.2.1)
|
||||||
|
syn keyword nsisInstruction contained Var nextgroup=nsisVarOpt skipwhite
|
||||||
|
syn region nsisVarOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVarKwd
|
||||||
|
syn match nsisVarKwd contained "/GLOBAL\>"
|
||||||
|
|
||||||
|
"INSTALLER ATTRIBUTES (4.8.1)
|
||||||
|
syn keyword nsisAttribute contained Caption ChangeUI CheckBitmap CompletedText ComponentText
|
||||||
|
syn keyword nsisAttribute contained DetailsButtonText DirText DirVar
|
||||||
|
syn keyword nsisAttribute contained FileErrorText Icon InstallButtonText
|
||||||
|
syn keyword nsisAttribute contained InstallDir InstProgressFlags
|
||||||
|
syn keyword nsisAttribute contained LicenseData LicenseText
|
||||||
|
syn keyword nsisAttribute contained MiscButtonText Name OutFile
|
||||||
|
syn keyword nsisAttribute contained SpaceTexts SubCaption UninstallButtonText UninstallCaption
|
||||||
|
syn keyword nsisAttribute contained UninstallIcon UninstallSubCaption UninstallText
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained AddBrandingImage nextgroup=nsisAddBrandingImageOpt skipwhite
|
||||||
|
syn region nsisAddBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddBrandingImageKwd
|
||||||
|
syn keyword nsisAddBrandingImageKwd contained left right top bottom width height
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained nextgroup=nsisBooleanOpt skipwhite
|
||||||
|
\ AllowRootDirInstall AutoCloseWindow
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained BGFont nextgroup=nsisFontOpt skipwhite
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained BGGradient nextgroup=nsisBGGradientOpt skipwhite
|
||||||
|
syn region nsisBGGradientOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBGGradientKwd
|
||||||
|
syn keyword nsisBGGradientKwd contained off
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained BrandingText nextgroup=nsisBrandingTextOpt skipwhite
|
||||||
|
syn region nsisBrandingTextOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBrandingTextKwd
|
||||||
|
syn match nsisBrandingTextKwd contained "/TRIM\%(LEFT\|RIGHT\|CENTER\)\>"
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained CRCCheck nextgroup=nsisCRCCheckOpt skipwhite
|
||||||
|
syn region nsisCRCCheckOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCRCCheckKwd
|
||||||
|
syn keyword nsisCRCCheckKwd contained on off force
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained DirVerify nextgroup=nsisDirVerifyOpt skipwhite
|
||||||
|
syn region nsisDirVerifyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDirVerifyKwd
|
||||||
|
syn keyword nsisDirVerifyKwd contained auto leave
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained InstallColors nextgroup=nsisInstallColorsOpt skipwhite
|
||||||
|
syn region nsisInstallColorsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstallColorsKwd
|
||||||
|
syn match nsisInstallColorsKwd contained "/windows\>"
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained InstallDirRegKey nextgroup=nsisRegistryOpt skipwhite
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained InstType nextgroup=nsisInstTypeOpt skipwhite
|
||||||
|
syn region nsisInstTypeOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstTypeKwd
|
||||||
|
syn match nsisInstTypeKwd contained "/\%(NOCUSTOM\|CUSTOMSTRING\|COMPONENTSONLYONCUSTOM\)\>"
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained LicenseBkColor nextgroup=nsisLicenseBkColorOpt skipwhite
|
||||||
|
syn region nsisLicenseBkColorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseBkColorKwd
|
||||||
|
syn match nsisLicenseBkColorKwd contained "/\%(gray\|windows\)\>"
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained LicenseForceSelection nextgroup=nsisLicenseForceSelectionOpt skipwhite
|
||||||
|
syn region nsisLicenseForceSelectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseForceSelectionKwd
|
||||||
|
syn keyword nsisLicenseForceSelectionKwd contained checkbox radiobuttons off
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained ManifestDPIAware nextgroup=nsisManifestDPIAwareOpt skipwhite
|
||||||
|
syn region nsisManifestDPIAwareOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestDPIAwareKwd
|
||||||
|
syn keyword nsisManifestDPIAwareKwd contained notset true false
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained ManifestSupportedOS nextgroup=nsisManifestSupportedOSOpt skipwhite
|
||||||
|
syn region nsisManifestSupportedOSOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestSupportedOSKwd
|
||||||
|
syn match nsisManifestSupportedOSKwd contained "\<\%(none\|all\|WinVista\|Win7\|Win8\|Win8\.1\|Win10\)\>"
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained RequestExecutionLevel nextgroup=nsisRequestExecutionLevelOpt skipwhite
|
||||||
|
syn region nsisRequestExecutionLevelOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRequestExecutionLevelKwd
|
||||||
|
syn keyword nsisRequestExecutionLevelKwd contained none user highest admin
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained SetFont nextgroup=nsisLangOpt skipwhite
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained nextgroup=nsisShowInstDetailsOpt skipwhite
|
||||||
|
\ ShowInstDetails ShowUninstDetails
|
||||||
|
syn region nsisShowInstDetailsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisShowInstDetailsKwd
|
||||||
|
syn keyword nsisShowInstDetailsKwd contained hide show nevershow
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained SilentInstall nextgroup=nsisSilentInstallOpt skipwhite
|
||||||
|
syn region nsisSilentInstallOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentInstallKwd
|
||||||
|
syn keyword nsisSilentInstallKwd contained normal silent silentlog
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained SilentUnInstall nextgroup=nsisSilentUnInstallOpt skipwhite
|
||||||
|
syn region nsisSilentUnInstallOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentUnInstallKwd
|
||||||
|
syn keyword nsisSilentUnInstallKwd contained normal silent
|
||||||
|
|
||||||
|
syn keyword nsisAttribute contained nextgroup=nsisOnOffOpt skipwhite
|
||||||
|
\ WindowIcon XPStyle
|
||||||
|
|
||||||
|
"COMPILER FLAGS (4.8.2)
|
||||||
|
syn keyword nsisCompiler contained nextgroup=nsisOnOffOpt skipwhite
|
||||||
|
\ AllowSkipFiles SetDatablockOptimize SetDateSave
|
||||||
|
|
||||||
|
syn keyword nsisCompiler contained FileBufSize SetCompressorDictSize
|
||||||
|
|
||||||
|
syn keyword nsisCompiler contained SetCompress nextgroup=nsisSetCompressOpt skipwhite
|
||||||
|
syn region nsisSetCompressOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressKwd
|
||||||
|
syn keyword nsisSetCompressKwd contained auto force off
|
||||||
|
|
||||||
|
syn keyword nsisCompiler contained SetCompressor nextgroup=nsisSetCompressorOpt skipwhite
|
||||||
|
syn region nsisSetCompressorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressorKwd
|
||||||
|
syn keyword nsisSetCompressorKwd contained zlib bzip2 lzma
|
||||||
|
syn match nsisSetCompressorKwd contained "/\%(SOLID\|FINAL\)"
|
||||||
|
|
||||||
|
syn keyword nsisCompiler contained SetOverwrite nextgroup=nsisSetOverwriteOpt skipwhite
|
||||||
|
syn region nsisSetOverwriteOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetOverwriteKwd
|
||||||
|
syn keyword nsisSetOverwriteKwd contained on off try ifnewer ifdiff lastused
|
||||||
|
|
||||||
|
syn keyword nsisCompiler contained Unicode nextgroup=nsisBooleanOpt skipwhite
|
||||||
|
|
||||||
|
"VERSION INFORMATION (4.8.3)
|
||||||
|
syn keyword nsisVersionInfo contained VIAddVersionKey nextgroup=nsisLangOpt skipwhite
|
||||||
|
|
||||||
|
syn keyword nsisVersionInfo contained VIProductVersion VIFileVersion
|
||||||
|
|
||||||
|
|
||||||
|
"FUNCTIONS - basic (4.9.1)
|
||||||
|
syn keyword nsisInstruction contained Delete Rename nextgroup=nsisDeleteOpt skipwhite
|
||||||
|
syn region nsisDeleteOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteKwd
|
||||||
|
syn match nsisDeleteKwd contained "/REBOOTOK\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained Exec ExecWait SetOutPath
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained ExecShell ExecShellWait nextgroup=nsisExecShellOpt skipwhite
|
||||||
|
syn region nsisExecShellOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisExecShellKwd
|
||||||
|
syn keyword nsisExecShellKwd contained SW_SHOWDEFAULT SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_HIDE
|
||||||
|
syn match nsisExecShellKwd contained "/INVOKEIDLIST\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained File nextgroup=nsisFileOpt skipwhite
|
||||||
|
syn region nsisFileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileKwd
|
||||||
|
syn match nsisFileKwd contained "/\%(nonfatal\|[arx]\|oname\)\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained ReserveFile nextgroup=nsisReserveFileOpt skipwhite
|
||||||
|
syn region nsisReserveFileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisReserveFileKwd
|
||||||
|
syn match nsisReserveFileKwd contained "/\%(nonfatal\|[rx]\|plugin\)\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained RMDir nextgroup=nsisRMDirOpt skipwhite
|
||||||
|
syn region nsisRMDirOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRMDirKwd
|
||||||
|
syn match nsisRMDirKwd contained "/\%(REBOOTOK\|r\)\>"
|
||||||
|
|
||||||
|
|
||||||
|
"FUNCTIONS - registry & ini (4.9.2)
|
||||||
|
syn keyword nsisInstruction contained DeleteINISec DeleteINIStr FlushINI ReadINIStr WriteINIStr
|
||||||
|
syn keyword nsisInstruction contained ExpandEnvStrings ReadEnvStr
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained DeleteRegKey nextgroup=nsisDeleteRegKeyOpt skipwhite
|
||||||
|
syn region nsisDeleteRegKeyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteRegKeyKwd,nsisRegistry
|
||||||
|
syn match nsisDeleteRegKeyKwd contained "/ifempty\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained nextgroup=nsisRegistryOpt skipwhite
|
||||||
|
\ DeleteRegValue EnumRegKey EnumRegValue ReadRegDWORD ReadRegStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr
|
||||||
|
syn region nsisRegistryOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained WriteRegMultiStr nextgroup=nsisWriteRegMultiStrOpt skipwhite
|
||||||
|
syn region nsisWriteRegMultiStrOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry,nsisWriteRegMultiStrKwd
|
||||||
|
syn match nsisWriteRegMultiStrKwd contained "/REGEDIT5\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained SetRegView nextgroup=nsisSetRegViewOpt skipwhite
|
||||||
|
syn region nsisSetRegViewOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetRegViewKwd
|
||||||
|
syn keyword nsisSetRegViewKwd contained default lastused
|
||||||
|
|
||||||
|
"FUNCTIONS - general purpose (4.9.3)
|
||||||
|
syn keyword nsisInstruction contained CallInstDLL CreateDirectory GetDLLVersion
|
||||||
|
syn keyword nsisInstruction contained GetDLLVersionLocal GetFileTime GetFileTimeLocal
|
||||||
|
syn keyword nsisInstruction contained GetTempFileName SearchPath RegDLL UnRegDLL
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained CopyFiles nextgroup=nsisCopyFilesOpt skipwhite
|
||||||
|
syn region nsisCopyFilesOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCopyFilesKwd
|
||||||
|
syn match nsisCopyFilesKwd contained "/\%(SILENT\|FILESONLY\)\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained CreateShortcut nextgroup=nsisCreateShortcutOpt skipwhite
|
||||||
|
syn region nsisCreateShortcutOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCreateShortcutKwd
|
||||||
|
syn match nsisCreateShortcutKwd contained "/NoWorkingDir\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained GetFullPathName nextgroup=nsisGetFullPathNameOpt skipwhite
|
||||||
|
syn region nsisGetFullPathNameOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetFullPathNameKwd
|
||||||
|
syn match nsisGetFullPathNameKwd contained "/SHORT\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained SetFileAttributes nextgroup=nsisSetFileAttributesOpt skipwhite
|
||||||
|
syn region nsisSetFileAttributesOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileAttrib
|
||||||
|
syn keyword nsisFileAttrib contained NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY
|
||||||
|
syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN
|
||||||
|
syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM
|
||||||
|
syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_TEMPORARY
|
||||||
|
|
||||||
|
"FUNCTIONS - Flow Control (4.9.4)
|
||||||
|
syn keyword nsisInstruction contained Abort Call ClearErrors GetCurrentAddress
|
||||||
|
syn keyword nsisInstruction contained GetFunctionAddress GetLabelAddress Goto
|
||||||
|
syn keyword nsisInstruction contained IfAbort IfErrors IfFileExists IfRebootFlag IfSilent
|
||||||
|
syn keyword nsisInstruction contained IntCmp IntCmpU Return Quit SetErrors StrCmp StrCmpS
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained MessageBox nextgroup=nsisMessageBoxOpt skipwhite
|
||||||
|
syn region nsisMessageBoxOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisMessageBox
|
||||||
|
syn keyword nsisMessageBox contained MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL
|
||||||
|
syn keyword nsisMessageBox contained MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP MB_USERICON
|
||||||
|
syn keyword nsisMessageBox contained MB_TOPMOST MB_SETFOREGROUND MB_RIGHT MB_RTLREADING
|
||||||
|
syn keyword nsisMessageBox contained MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4
|
||||||
|
syn keyword nsisMessageBox contained IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES
|
||||||
|
syn match nsisMessageBox contained "/SD\>"
|
||||||
|
|
||||||
|
"FUNCTIONS - File and directory i/o instructions (4.9.5)
|
||||||
|
syn keyword nsisInstruction contained FileClose FileOpen FileRead FileReadUTF16LE
|
||||||
|
syn keyword nsisInstruction contained FileReadByte FileReadWord FileSeek FileWrite
|
||||||
|
syn keyword nsisInstruction contained FileWriteByte FileWriteWord
|
||||||
|
syn keyword nsisInstruction contained FindClose FindFirst FindNext
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained FileWriteUTF16LE nextgroup=nsisFileWriteUTF16LEOpt skipwhite
|
||||||
|
syn region nsisFileWriteUTF16LEOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileWriteUTF16LEKwd
|
||||||
|
syn match nsisFileWriteUTF16LEKwd contained "/BOM\>"
|
||||||
|
|
||||||
|
"FUNCTIONS - Uninstaller instructions (4.9.6)
|
||||||
|
syn keyword nsisInstruction contained WriteUninstaller
|
||||||
|
|
||||||
|
"FUNCTIONS - Misc instructions (4.9.7)
|
||||||
|
syn keyword nsisInstruction contained GetErrorLevel GetInstDirError InitPluginsDir Nop
|
||||||
|
syn keyword nsisInstruction contained SetErrorLevel Sleep
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained SetShellVarContext nextgroup=nsisSetShellVarContextOpt skipwhite
|
||||||
|
syn region nsisSetShellVarContextOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetShellVarContextKwd
|
||||||
|
syn keyword nsisSetShellVarContextKwd contained current all
|
||||||
|
|
||||||
|
"FUNCTIONS - String manipulation support (4.9.8)
|
||||||
|
syn keyword nsisInstruction contained StrCpy StrLen
|
||||||
|
|
||||||
|
"FUNCTIONS - Stack support (4.9.9)
|
||||||
|
syn keyword nsisInstruction contained Exch Push Pop
|
||||||
|
|
||||||
|
"FUNCTIONS - Integer manipulation support (4.9.10)
|
||||||
|
syn keyword nsisInstruction contained IntOp IntFmt
|
||||||
|
|
||||||
|
"FUNCTIONS - Rebooting support (4.9.11)
|
||||||
|
syn keyword nsisInstruction contained Reboot SetRebootFlag
|
||||||
|
|
||||||
|
"FUNCTIONS - Install logging instructions (4.9.12)
|
||||||
|
syn keyword nsisInstruction contained LogSet nextgroup=nsisOnOffOpt skipwhite
|
||||||
|
syn keyword nsisInstruction contained LogText
|
||||||
|
|
||||||
|
"FUNCTIONS - Section management instructions (4.9.13)
|
||||||
|
syn keyword nsisInstruction contained SectionSetFlags SectionGetFlags SectionSetText
|
||||||
|
syn keyword nsisInstruction contained SectionGetText SectionSetInstTypes SectionGetInstTypes
|
||||||
|
syn keyword nsisInstruction contained SectionSetSize SectionGetSize SetCurInstType GetCurInstType
|
||||||
|
syn keyword nsisInstruction contained InstTypeSetText InstTypeGetText
|
||||||
|
|
||||||
|
"FUNCTIONS - User Interface Instructions (4.9.14)
|
||||||
|
syn keyword nsisInstruction contained BringToFront DetailPrint EnableWindow
|
||||||
|
syn keyword nsisInstruction contained FindWindow GetDlgItem HideWindow IsWindow
|
||||||
|
syn keyword nsisInstruction contained ShowWindow
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained CreateFont nextgroup=nsisFontOpt skipwhite
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained nextgroup=nsisBooleanOpt skipwhite
|
||||||
|
\ LockWindow SetAutoClose
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained SendMessage nextgroup=nsisSendMessageOpt skipwhite
|
||||||
|
syn region nsisSendMessageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSendMessageKwd
|
||||||
|
syn match nsisSendMessageKwd contained "/TIMEOUT\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained SetBrandingImage nextgroup=nsisSetBrandingImageOpt skipwhite
|
||||||
|
syn region nsisSetBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetBrandingImageKwd
|
||||||
|
syn match nsisSetBrandingImageKwd contained "/\%(IMGID\|RESIZETOFIT\)\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained SetDetailsView nextgroup=nsisSetDetailsViewOpt skipwhite
|
||||||
|
syn region nsisSetDetailsViewOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsViewKwd
|
||||||
|
syn keyword nsisSetDetailsViewKwd contained show hide
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained SetDetailsPrint nextgroup=nsisSetDetailsPrintOpt skipwhite
|
||||||
|
syn region nsisSetDetailsPrintOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsPrintKwd
|
||||||
|
syn keyword nsisSetDetailsPrintKwd contained none listonly textonly both lastused
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained SetCtlColors nextgroup=nsisSetCtlColorsOpt skipwhite
|
||||||
|
syn region nsisSetCtlColorsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCtlColorsKwd
|
||||||
|
syn match nsisSetCtlColorsKwd contained "/BRANDING\>"
|
||||||
|
|
||||||
|
syn keyword nsisInstruction contained SetSilent nextgroup=nsisSetSilentOpt skipwhite
|
||||||
|
syn region nsisSetSilentOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetSilentKwd
|
||||||
|
syn keyword nsisSetSilentKwd contained silent normal
|
||||||
|
|
||||||
|
|
||||||
|
"FUNCTIONS - Multiple Languages Instructions (4.9.15)
|
||||||
|
syn keyword nsisInstruction contained LoadLanguageFile LangString LicenseLangString
|
||||||
|
|
||||||
|
|
||||||
|
"SPECIAL FUNCTIONS - install (4.7.2.1)
|
||||||
|
syn match nsisCallback "\.onGUIInit"
|
||||||
syn match nsisCallback "\.onInit"
|
syn match nsisCallback "\.onInit"
|
||||||
syn match nsisCallback "\.onUserAbort"
|
|
||||||
syn match nsisCallback "\.onInstSuccess"
|
|
||||||
syn match nsisCallback "\.onInstFailed"
|
syn match nsisCallback "\.onInstFailed"
|
||||||
syn match nsisCallback "\.onVerifyInstDir"
|
syn match nsisCallback "\.onInstSuccess"
|
||||||
syn match nsisCallback "\.onNextPage"
|
syn match nsisCallback "\.onGUIEnd"
|
||||||
syn match nsisCallback "\.onPrevPage"
|
syn match nsisCallback "\.onMouseOverSection"
|
||||||
|
syn match nsisCallback "\.onRebootFailed"
|
||||||
syn match nsisCallback "\.onSelChange"
|
syn match nsisCallback "\.onSelChange"
|
||||||
|
syn match nsisCallback "\.onUserAbort"
|
||||||
|
syn match nsisCallback "\.onVerifyInstDir"
|
||||||
|
|
||||||
"SPECIAL FUNCTIONS - uninstall
|
"SPECIAL FUNCTIONS - uninstall (4.7.2.2)
|
||||||
|
syn match nsisCallback "un\.onGUIInit"
|
||||||
syn match nsisCallback "un\.onInit"
|
syn match nsisCallback "un\.onInit"
|
||||||
|
syn match nsisCallback "un\.onUninstFailed"
|
||||||
|
syn match nsisCallback "un\.onUninstSuccess"
|
||||||
|
syn match nsisCallback "un\.onGUIEnd"
|
||||||
|
syn match nsisCallback "un\.onRebootFailed"
|
||||||
|
syn match nsisCallback "un\.onSelChange"
|
||||||
syn match nsisCallback "un\.onUserAbort"
|
syn match nsisCallback "un\.onUserAbort"
|
||||||
syn match nsisCallback "un\.onInstSuccess"
|
|
||||||
syn match nsisCallback "un\.onInstFailed"
|
|
||||||
syn match nsisCallback "un\.onVerifyInstDir"
|
|
||||||
syn match nsisCallback "un\.onNextPage"
|
|
||||||
|
|
||||||
|
|
||||||
"STATEMENTS - sections
|
"COMPILER UTILITY (5.1)
|
||||||
syn keyword nsisStatement Section SectionIn SectionEnd SectionDivider
|
syn match nsisInclude contained "!include\>" nextgroup=nsisIncludeOpt skipwhite
|
||||||
syn keyword nsisStatement AddSize
|
syn region nsisIncludeOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIncludeKwd
|
||||||
|
syn match nsisIncludeKwd contained "/\%(NONFATAL\|CHARSET\)\>"
|
||||||
|
|
||||||
"STATEMENTS - functions
|
syn match nsisSystem contained "!addincludedir\>"
|
||||||
syn keyword nsisStatement Function FunctionEnd
|
|
||||||
|
|
||||||
"STATEMENTS - pages
|
syn match nsisSystem contained "!addplugindir\>" nextgroup=nsisAddplugindirOpt skipwhite
|
||||||
syn keyword nsisStatement Page UninstPage PageEx PageExEnc PageCallbacks
|
syn region nsisAddplugindirOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddplugindirKwd
|
||||||
|
syn match nsisAddplugindirKwd contained "/\%(x86-ansi\|x86-unicode\)\>"
|
||||||
|
|
||||||
|
syn match nsisSystem contained "!appendfile\>" nextgroup=nsisAppendfileOpt skipwhite
|
||||||
|
syn region nsisAppendfileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAppendfileKwd
|
||||||
|
syn match nsisAppendfileKwd contained "/\%(CHARSET\|RawNL\)\>"
|
||||||
|
|
||||||
|
syn match nsisSystem contained "!cd\>"
|
||||||
|
|
||||||
|
syn match nsisSystem contained "!delfile\>" nextgroup=nsisDelfileOpt skipwhite
|
||||||
|
syn region nsisDelfileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDelfileKwd
|
||||||
|
syn match nsisDelfileKwd contained "/nonfatal\>"
|
||||||
|
|
||||||
|
syn match nsisSystem contained "!echo\>"
|
||||||
|
syn match nsisSystem contained "!error\>"
|
||||||
|
syn match nsisSystem contained "!execute\>"
|
||||||
|
syn match nsisSystem contained "!makensis\>"
|
||||||
|
syn match nsisSystem contained "!packhdr\>"
|
||||||
|
syn match nsisSystem contained "!finalize\>"
|
||||||
|
syn match nsisSystem contained "!system\>"
|
||||||
|
syn match nsisSystem contained "!tempfile\>"
|
||||||
|
syn match nsisSystem contained "!getdllversion\>"
|
||||||
|
syn match nsisSystem contained "!warning\>"
|
||||||
|
|
||||||
|
syn match nsisSystem contained "!pragma\>" nextgroup=nsisPragmaOpt skipwhite
|
||||||
|
syn region nsisPragmaOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPragmaKwd
|
||||||
|
syn keyword nsisPragmaKwd contained enable disable default push pop
|
||||||
|
|
||||||
|
syn match nsisSystem contained "!verbose\>" nextgroup=nsisVerboseOpt skipwhite
|
||||||
|
syn region nsisVerboseOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVerboseKwd
|
||||||
|
syn keyword nsisVerboseKwd contained push pop
|
||||||
|
|
||||||
|
"PREPROCESSOR (5.4)
|
||||||
|
syn match nsisDefine contained "!define\>" nextgroup=nsisDefineOpt skipwhite
|
||||||
|
syn region nsisDefineOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDefineKwd
|
||||||
|
syn match nsisDefineKwd contained "/\%(ifndef\|redef\|date\|utcdate\|math\|file\)\>"
|
||||||
|
|
||||||
|
syn match nsisDefine contained "!undef\>"
|
||||||
|
syn match nsisPreCondit contained "!ifdef\>"
|
||||||
|
syn match nsisPreCondit contained "!ifndef\>"
|
||||||
|
|
||||||
|
syn match nsisPreCondit contained "!if\>" nextgroup=nsisIfOpt skipwhite
|
||||||
|
syn region nsisIfOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIfKwd
|
||||||
|
syn match nsisIfKwd contained "/FileExists\>"
|
||||||
|
|
||||||
|
syn match nsisPreCondit contained "!ifmacrodef\>"
|
||||||
|
syn match nsisPreCondit contained "!ifmacrondef\>"
|
||||||
|
syn match nsisPreCondit contained "!else\>"
|
||||||
|
syn match nsisPreCondit contained "!endif\>"
|
||||||
|
syn match nsisMacro contained "!insertmacro\>"
|
||||||
|
syn match nsisMacro contained "!macro\>"
|
||||||
|
syn match nsisMacro contained "!macroend\>"
|
||||||
|
syn match nsisMacro contained "!macroundef\>"
|
||||||
|
|
||||||
|
syn match nsisMacro contained "!searchparse\>" nextgroup=nsisSearchparseOpt skipwhite
|
||||||
|
syn region nsisSearchparseOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchparseKwd
|
||||||
|
syn match nsisSearchparseKwd contained "/\%(ignorecase\|noerrors\|file\)\>"
|
||||||
|
|
||||||
|
syn match nsisMacro contained "!searchreplace\>" nextgroup=nsisSearchreplaceOpt skipwhite
|
||||||
|
syn region nsisSearchreplaceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchreplaceKwd
|
||||||
|
syn match nsisSearchreplaceKwd contained "/ignorecase\>"
|
||||||
|
|
||||||
"ERROR
|
|
||||||
syn keyword nsisError UninstallExeName
|
|
||||||
|
|
||||||
|
|
||||||
" Define the default highlighting.
|
" Define the default highlighting.
|
||||||
@@ -225,15 +588,60 @@ syn keyword nsisError UninstallExeName
|
|||||||
|
|
||||||
hi def link nsisInstruction Function
|
hi def link nsisInstruction Function
|
||||||
hi def link nsisComment Comment
|
hi def link nsisComment Comment
|
||||||
|
hi def link nsisFirstComment Comment
|
||||||
hi def link nsisLocalLabel Label
|
hi def link nsisLocalLabel Label
|
||||||
hi def link nsisGlobalLabel Label
|
hi def link nsisGlobalLabel Label
|
||||||
hi def link nsisStatement Statement
|
hi def link nsisStatement Statement
|
||||||
hi def link nsisString String
|
hi def link nsisString String
|
||||||
hi def link nsisBoolean Boolean
|
hi def link nsisBoolean Boolean
|
||||||
hi def link nsisAttribOptions Constant
|
hi def link nsisOnOff Boolean
|
||||||
hi def link nsisExecShell Constant
|
hi def link nsisFontKwd Constant
|
||||||
|
hi def link nsisLangKwd Constant
|
||||||
|
hi def link nsisPageKwd Constant
|
||||||
|
hi def link nsisPageExKwd Constant
|
||||||
|
hi def link nsisSectionKwd Constant
|
||||||
|
hi def link nsisSectionInKwd Constant
|
||||||
|
hi def link nsisSectionGroupKwd Constant
|
||||||
|
hi def link nsisVarKwd Constant
|
||||||
|
hi def link nsisAddBrandingImageKwd Constant
|
||||||
|
hi def link nsisBGGradientKwd Constant
|
||||||
|
hi def link nsisBrandingTextKwd Constant
|
||||||
|
hi def link nsisCRCCheckKwd Constant
|
||||||
|
hi def link nsisDirVerifyKwd Constant
|
||||||
|
hi def link nsisInstallColorsKwd Constant
|
||||||
|
hi def link nsisInstTypeKwd Constant
|
||||||
|
hi def link nsisLicenseBkColorKwd Constant
|
||||||
|
hi def link nsisLicenseForceSelectionKwd Constant
|
||||||
|
hi def link nsisManifestDPIAwareKwd Constant
|
||||||
|
hi def link nsisManifestSupportedOSKwd Constant
|
||||||
|
hi def link nsisRequestExecutionLevelKwd Constant
|
||||||
|
hi def link nsisShowInstDetailsKwd Constant
|
||||||
|
hi def link nsisSilentInstallKwd Constant
|
||||||
|
hi def link nsisSilentUnInstallKwd Constant
|
||||||
|
hi def link nsisSetCompressKwd Constant
|
||||||
|
hi def link nsisSetCompressorKwd Constant
|
||||||
|
hi def link nsisSetOverwriteKwd Constant
|
||||||
|
hi def link nsisDeleteKwd Constant
|
||||||
|
hi def link nsisExecShellKwd Constant
|
||||||
|
hi def link nsisFileKwd Constant
|
||||||
|
hi def link nsisReserveFileKwd Constant
|
||||||
|
hi def link nsisRMDirKwd Constant
|
||||||
|
hi def link nsisDeleteRegKeyKwd Constant
|
||||||
|
hi def link nsisWriteRegMultiStrKwd Constant
|
||||||
|
hi def link nsisSetRegViewKwd Constant
|
||||||
|
hi def link nsisCopyFilesKwd Constant
|
||||||
|
hi def link nsisCreateShortcutKwd Constant
|
||||||
|
hi def link nsisGetFullPathNameKwd Constant
|
||||||
hi def link nsisFileAttrib Constant
|
hi def link nsisFileAttrib Constant
|
||||||
hi def link nsisMessageBox Constant
|
hi def link nsisMessageBox Constant
|
||||||
|
hi def link nsisFileWriteUTF16LEKwd Constant
|
||||||
|
hi def link nsisSetShellVarContextKwd Constant
|
||||||
|
hi def link nsisSendMessageKwd Constant
|
||||||
|
hi def link nsisSetBrandingImageKwd Constant
|
||||||
|
hi def link nsisSetDetailsViewKwd Constant
|
||||||
|
hi def link nsisSetDetailsPrintKwd Constant
|
||||||
|
hi def link nsisSetCtlColorsKwd Constant
|
||||||
|
hi def link nsisSetSilentKwd Constant
|
||||||
hi def link nsisRegistry Identifier
|
hi def link nsisRegistry Identifier
|
||||||
hi def link nsisNumber Number
|
hi def link nsisNumber Number
|
||||||
hi def link nsisError Error
|
hi def link nsisError Error
|
||||||
@@ -241,16 +649,32 @@ hi def link nsisUserVar Identifier
|
|||||||
hi def link nsisSysVar Identifier
|
hi def link nsisSysVar Identifier
|
||||||
hi def link nsisAttribute Type
|
hi def link nsisAttribute Type
|
||||||
hi def link nsisCompiler Type
|
hi def link nsisCompiler Type
|
||||||
|
hi def link nsisVersionInfo Type
|
||||||
hi def link nsisTodo Todo
|
hi def link nsisTodo Todo
|
||||||
hi def link nsisCallback Operator
|
hi def link nsisCallback Identifier
|
||||||
" preprocessor commands
|
" preprocessor commands
|
||||||
hi def link nsisPreprocSubst PreProc
|
hi def link nsisPreprocSubst PreProc
|
||||||
|
hi def link nsisPreprocLangStr PreProc
|
||||||
|
hi def link nsisPreprocEnvVar PreProc
|
||||||
hi def link nsisDefine Define
|
hi def link nsisDefine Define
|
||||||
hi def link nsisMacro Macro
|
hi def link nsisMacro Macro
|
||||||
hi def link nsisPreCondit PreCondit
|
hi def link nsisPreCondit PreCondit
|
||||||
hi def link nsisInclude Include
|
hi def link nsisInclude Include
|
||||||
hi def link nsisSystem PreProc
|
hi def link nsisSystem PreProc
|
||||||
|
hi def link nsisLineContinuation Special
|
||||||
|
hi def link nsisIncludeKwd Constant
|
||||||
|
hi def link nsisAddplugindirKwd Constant
|
||||||
|
hi def link nsisAppendfileKwd Constant
|
||||||
|
hi def link nsisDelfileKwd Constant
|
||||||
|
hi def link nsisPragmaKwd Constant
|
||||||
|
hi def link nsisVerboseKwd Constant
|
||||||
|
hi def link nsisDefineKwd Constant
|
||||||
|
hi def link nsisIfKwd Constant
|
||||||
|
hi def link nsisSearchparseKwd Constant
|
||||||
|
hi def link nsisSearchreplaceKwd Constant
|
||||||
|
|
||||||
|
|
||||||
let b:current_syntax = "nsis"
|
let b:current_syntax = "nsis"
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|||||||
@@ -1,59 +1,184 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Pike
|
" Language: Pike
|
||||||
" Maintainer: Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it>
|
" Maintainer: Stephen R. van den Berg <srb@cuci.nl>
|
||||||
" Last Change: 2001 May 10
|
" Maintainer of previous implementation: Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it>
|
||||||
|
" Last Change: 2018 Jan 28
|
||||||
|
" Version: 2.9
|
||||||
|
" Remark: Derived from the C-syntax; fixed several bugs in the C-syntax
|
||||||
|
" Remark: and extended it with the Pike syntax.
|
||||||
|
" Remark: Includes a highlighter for all Pike types of parenthesis errors.
|
||||||
|
" Remark: Includes a highlighter for SQL on multiline strings.
|
||||||
|
" Remark: Includes a highlighter for any embedded Autodoc format.
|
||||||
|
|
||||||
" quit when a syntax file was already loaded
|
" Quit when a (custom) syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" A bunch of useful C keywords
|
let s:cpo_save = &cpo
|
||||||
syn keyword pikeStatement goto break return continue
|
set cpo&vim
|
||||||
syn keyword pikeLabel case default
|
|
||||||
|
" For multiline strings, try formatting them as SQL
|
||||||
|
syn include @pikeSQL <sfile>:p:h/sqloracle.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
" For embedded Autodoc documentation (WIP)
|
||||||
|
syn include @pikeAutodoc <sfile>:p:h/autodoc.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
syn case match
|
||||||
|
|
||||||
|
" Supports array, multiset, mapping multi-character delimiter matching
|
||||||
|
" Supports rotating amongst several same-level preprocessor conditionals
|
||||||
|
packadd! matchit
|
||||||
|
let b:match_words = "({:}\\@1<=),(\\[:]\\@1<=),(<:>\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"
|
||||||
|
|
||||||
|
" A bunch of useful Pike keywords
|
||||||
|
syn keyword pikeDebug gauge backtrace describe_backtrace werror _Static_assert static_assert
|
||||||
|
syn keyword pikeException error catch throw
|
||||||
|
syn keyword pikeLabel case default break return continue
|
||||||
syn keyword pikeConditional if else switch
|
syn keyword pikeConditional if else switch
|
||||||
syn keyword pikeRepeat while for foreach do
|
syn keyword pikeRepeat while for foreach do
|
||||||
syn keyword pikeStatement gauge destruct lambda inherit import typeof
|
|
||||||
syn keyword pikeException catch
|
|
||||||
syn keyword pikeType inline nomask private protected public static
|
|
||||||
|
|
||||||
|
syn keyword pikePredef RegGetKeyNames RegGetValue RegGetValues
|
||||||
|
syn keyword pikePredef __automap__ __empty_program
|
||||||
|
syn keyword pikePredef __handle_sprintf_format __parse_pike_type _disable_threads
|
||||||
|
syn keyword pikePredef _do_call_outs _exit _gdb_breakpoint
|
||||||
|
syn keyword pikePredef abs access acos acosh add_constant alarm all_constants
|
||||||
|
syn keyword pikePredef array_sscanf asin asinh atan atan2 atanh atexit
|
||||||
|
syn keyword pikePredef basetype call_function call_out call_out_info cd ceil
|
||||||
|
syn keyword pikePredef combine_path combine_path_nt
|
||||||
|
syn keyword pikePredef combine_path_unix compile copy_value cos cosh cpp crypt
|
||||||
|
syn keyword pikePredef ctime decode_value delay encode_value encode_value_canonic
|
||||||
|
syn keyword pikePredef enumerate errno exece exit exp file_stat file_truncate
|
||||||
|
syn keyword pikePredef filesystem_stat find_call_out floor fork function_name
|
||||||
|
syn keyword pikePredef function_object function_program gc
|
||||||
|
syn keyword pikePredef get_active_compilation_handler get_active_error_handler
|
||||||
|
syn keyword pikePredef get_all_groups get_all_users get_dir get_groups_for_user
|
||||||
|
syn keyword pikePredef get_iterator get_profiling_info get_weak_flag getcwd
|
||||||
|
syn keyword pikePredef getgrgid getgrnam gethrdtime gethrtime gethrvtime getpid
|
||||||
|
syn keyword pikePredef getpwnam getpwuid getxattr glob gmtime has_index has_prefix
|
||||||
|
syn keyword pikePredef has_suffix has_value hash hash_7_0 hash_7_4 hash_8_0
|
||||||
|
syn keyword pikePredef hash_value kill limit listxattr load_module localtime
|
||||||
|
syn keyword pikePredef log lower_case master max min mkdir mktime mv
|
||||||
|
syn keyword pikePredef object_program pow query_num_arg random_seed
|
||||||
|
syn keyword pikePredef remove_call_out removexattr replace_master rm round
|
||||||
|
syn keyword pikePredef set_priority set_weak_flag setxattr sgn signal signame
|
||||||
|
syn keyword pikePredef signum sin sinh sleep sort sprintf sqrt sscanf strerror
|
||||||
|
syn keyword pikePredef string_filter_non_unicode string_to_unicode string_to_utf8
|
||||||
|
syn keyword pikePredef tan tanh time trace types ualarm unicode_to_string
|
||||||
|
syn keyword pikePredef upper_case utf8_to_string version
|
||||||
|
|
||||||
|
syn keyword pikePredef write lock try_lock
|
||||||
|
syn keyword pikePredef MutexKey Timestamp Date Time TimeTZ Interval Inet Range
|
||||||
|
syn keyword pikePredef Null null inf nan
|
||||||
|
|
||||||
syn keyword pikeTodo contained TODO FIXME XXX
|
syn keyword pikeTodo contained TODO FIXME XXX
|
||||||
|
|
||||||
|
" Match parengroups: allows for highlighting indices of mappings and
|
||||||
|
" highlighting semicolons that are out of place due to a paren imbalance
|
||||||
|
syn cluster pikePreShort contains=pikeDefine,pikePreProc,pikeCppOutWrapper,pikeCppInWrapper,pikePreCondit,pikePreConditMatch
|
||||||
|
syn cluster pikeExprGroup contains=pikeMappIndex,@pikeStmt,pikeNest,@pikeBadGroup,pikeSoftCast
|
||||||
|
syn match pikeWord transparent contained /[^()'"[\]{},;:]\+/ contains=ALLBUT,@pikePreProcGroup,@pikeExprGroup
|
||||||
|
syn match pikeFirstWord transparent display contained /^\s*#[^()'"[\]{},;:]\+/ contains=@pikePreShort
|
||||||
|
syn cluster pikeMappElm contains=pikeMappIndex,@pikeStmt
|
||||||
|
syn cluster pikeStmt contains=pikeFirstWord,pikeCharacter,pikeString,pikeMlString,pikeWord,pikeNest
|
||||||
|
syn cluster pikeBadGroup contains=pikeBadPClose,pikeBadAClose,pikeBadBClose,pikeBadSPClose,pikeBadSAClose,pikeBadSBClose,pikeBadSClose,pikeBadSPAClose,pikeBadSBAClose
|
||||||
|
syn match pikeBadPClose display contained "[}\]]"
|
||||||
|
syn match pikeBadAClose display contained "[)\]]"
|
||||||
|
syn match pikeBadBClose display contained "[)}]"
|
||||||
|
syn match pikeBadSPClose display contained "[;}\]]"
|
||||||
|
syn match pikeBadSAClose display contained "[;)\]]"
|
||||||
|
syn match pikeBadSPAClose display contained "[;\]]"
|
||||||
|
syn match pikeBadSBAClose display contained "[;}]"
|
||||||
|
syn match pikeBadSClose display contained "[;)}\]]"
|
||||||
|
syn region pikeNest transparent start="(\@1<!{" end="}" contains=@pikeStmt,pikeUserLabel,pikeBadAClose
|
||||||
|
syn region pikeNest transparent start="\%(\<for\%(each\)\?\s\?\)\@8<!([[{<]\@!" end=")" contains=@pikeStmt,pikeBadSPClose
|
||||||
|
syn region pikeNest transparent start="\%(\<for\%(each\)\?\s\?\)\@8<=(" end=")" contains=@pikeStmt,pikeBadPClose
|
||||||
|
syn region pikeNest transparent start="(\@1<!\[" end="]" contains=@pikeStmt,pikeBadSBClose
|
||||||
|
syn region pikeNest transparent start="(\zs\[" end="])" contains=@pikeMappElm,pikeBadSBAClose
|
||||||
|
" For some reason specifying a matchgroup on the pikeNest below makes it
|
||||||
|
" override the shorter variant; consider it a kludge, no idea why it works
|
||||||
|
syn region pikeNest transparent matchgroup=pikeSoftCast start=%(\zs\[[ \t\v\r\n.a-zA-Z0-9_():,|]\+])\@!% end=")" contains=@pikeStmt
|
||||||
|
syn region pikeNest transparent start="(\zs{" end="})" contains=@pikeStmt,pikeBadSPAClose
|
||||||
|
syn region pikeNest transparent start="(\zs<" end=">)" contains=@pikeStmt,pikeBadSPClose keepend
|
||||||
|
|
||||||
|
" It's easy to accidentally add a space after a backslash that was intended
|
||||||
|
" for line continuation. Some compilers allow it, which makes it
|
||||||
|
" unpredictable and should be avoided.
|
||||||
|
syn match pikeBadContinuation contained "\\\s\+$"
|
||||||
|
|
||||||
|
" pikeCommentGroup allows adding matches for special things in comments
|
||||||
|
syn cluster pikeCommentGroup contains=pikeTodo,pikeBadContinuation
|
||||||
|
|
||||||
" String and Character constants
|
" String and Character constants
|
||||||
" Highlight special characters (those which have a backslash) differently
|
" Highlight special characters (those which have a backslash) differently
|
||||||
syn match pikeSpecial contained "\\[0-7][0-7][0-7]\=\|\\."
|
syn match pikeSpecial display contained "\\\%(x\x*\|d\d*\|\o\+\|u\x\{4}\|U\x\{8}\|[abefnrtv]\|$\)"
|
||||||
syn region pikeString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial
|
|
||||||
syn match pikeCharacter "'[^\\]'"
|
|
||||||
syn match pikeSpecialCharacter "'\\.'"
|
|
||||||
syn match pikeSpecialCharacter "'\\[0-7][0-7]'"
|
|
||||||
syn match pikeSpecialCharacter "'\\[0-7][0-7][0-7]'"
|
|
||||||
|
|
||||||
" Compound data types
|
" ISO C11 or ISO C++ 11
|
||||||
syn region pikeCompoundType start='({' contains=pikeString,pikeCompoundType,pikeNumber,pikeFloat end='})'
|
if !exists("c_no_cformat")
|
||||||
syn region pikeCompoundType start='(\[' contains=pikeString,pikeCompoundType,pikeNumber,pikeFloat end='\])'
|
" Highlight % items in strings.
|
||||||
syn region pikeCompoundType start='(<' contains=pikeString,pikeCompoundType,pikeNumber,pikeFloat end='>)'
|
syn match pikeFormat display "%\%(\d\+\$\)\=[-+' #0*]*\%(\d*\|\*\|\*\d\+\$\)\%(\.\%(\d*\|\*\|\*\d\+\$\)\)\=\%([hlLjzt]\|ll\|hh\)\=\%([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
|
||||||
|
syn match pikeFormat display "%%" contained
|
||||||
|
syn region pikeString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,pikeFormat,@Spell keepend
|
||||||
|
syn region pikeMlString start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeFormat,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend
|
||||||
|
else
|
||||||
|
syn region pikeString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,@Spell
|
||||||
|
syn region pikeMlString transparent start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend
|
||||||
|
endif
|
||||||
|
|
||||||
"catch errors caused by wrong parenthesis
|
" Use SQL-syntax highlighting in multiline string if it starts with
|
||||||
syn region pikeParen transparent start='([^{[<(]' end=')' contains=ALLBUT,pikeParenError,pikeIncluded,pikeSpecial,pikeTodo,pikeUserLabel,pikeBitField
|
" a standard SQL keyword
|
||||||
syn match pikeParenError ")"
|
syn case ignore
|
||||||
syn match pikeInParen contained "[^(][{}][^)]"
|
" FIXME Use explicit newline match to cover up a bug in the regexp engine
|
||||||
|
" If the kludge is not used, the match will only start unless at least a space
|
||||||
|
" follows the initial doublequote on the first line (or the keyword is on
|
||||||
|
" the first line).
|
||||||
|
syn region pikeEmbeddedString contained start=+\%(#"\n\?\)\@2<=\_s*\%(SELECT\|INSERT\|UPDATE\|DELETE\|WITH\|CREATE\|DROP\|ALTER\)\>+ skip=+\\\\\|\\"+ end=+[\\#]\@1<!"+ contains=@pikeSQL,pikeBindings keepend
|
||||||
|
syn case match
|
||||||
|
|
||||||
|
syn match pikeBindings display contained ":\@1<!:\I\i*"
|
||||||
|
|
||||||
|
syn match pikeCharacter "'[^\\']'" contains=pikeDelimiterSQ
|
||||||
|
syn match pikeCharacter "'[^']*'" contains=pikeSpecial,pikeDelimiterSQ
|
||||||
|
syn match pikeSpecialError "'\\[^'\"?\\abefnrtv]'"
|
||||||
|
syn match pikeDelimiterDQ display +"+ contained
|
||||||
|
syn match pikeDelimiterSQ display +'+ contained
|
||||||
|
|
||||||
|
"when wanted, highlight trailing white space
|
||||||
|
if exists("c_space_errors")
|
||||||
|
if !exists("c_no_trail_space_error")
|
||||||
|
syn match pikeSpaceError display excludenl "\s\+$"
|
||||||
|
endif
|
||||||
|
if !exists("c_no_tab_space_error")
|
||||||
|
syn match pikeSpaceError display " \+\ze\t"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
"integer number, or floating point number without a dot and with "f".
|
"integer number, or floating point number without a dot and with "f".
|
||||||
syn case ignore
|
syn case ignore
|
||||||
syn match pikeNumber "\<\d\+\(u\=l\=\|lu\|f\)\>"
|
syn match pikeNumbers display transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctalError,pikeOctal
|
||||||
"floating point number, with dot, optional exponent
|
" Same, but without octal error (for comments)
|
||||||
syn match pikeFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
|
syn match pikeNumbersCom display contained transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctal
|
||||||
"floating point number, starting with a dot, optional exponent
|
syn match pikeNumber display contained "\<\d\+\%(u\=l\{0,2}\|ll\=u\)\>"
|
||||||
syn match pikeFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
|
|
||||||
"floating point number, without dot, with exponent
|
|
||||||
syn match pikeFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"
|
|
||||||
"hex number
|
"hex number
|
||||||
syn match pikeNumber "\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
|
syn match pikeNumber display contained "\<0x\x\+\%(u\=l\{0,2}\|ll\=u\)\>"
|
||||||
"syn match pikeIdentifier "\<[a-z_][a-z0-9_]*\>"
|
" Flag the first zero of an octal number as something special
|
||||||
syn case match
|
syn match pikeOctal display contained "\<0\o\+\%(u\=l\{0,2}\|ll\=u\)\>" contains=pikeOctalZero
|
||||||
|
syn match pikeOctalZero display contained "\<0"
|
||||||
|
"floating point number, with dot, optional exponent
|
||||||
|
syn match pikeFloat display contained "\<\d\+\%(f\|\.[0-9.]\@!\d*\%(e[-+]\=\d\+\)\=[fl]\=\)"
|
||||||
|
"floating point number, starting with a dot, optional exponent
|
||||||
|
syn match pikeFloat display contained "[0-9.]\@1<!\.\d\+\%(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||||
|
"floating point number, without dot, with exponent
|
||||||
|
syn match pikeFloat display contained "\<\d\+e[-+]\=\d\+[fl]\=\>"
|
||||||
|
|
||||||
|
"hexadecimal floating point number, two variants, with exponent
|
||||||
|
syn match pikeFloat display contained "\<0x\%(\x\+\.\?\|\x*\.\x\+\)p[-+]\=\d\+[fl]\=\>"
|
||||||
|
|
||||||
" flag an octal number with wrong digits
|
" flag an octal number with wrong digits
|
||||||
syn match pikeOctalError "\<0[0-7]*[89]"
|
syn match pikeOctalError display contained "\<0\o*[89]\d*"
|
||||||
|
syn case match
|
||||||
|
|
||||||
if exists("c_comment_strings")
|
if exists("c_comment_strings")
|
||||||
" A comment can contain pikeString, pikeCharacter and pikeNumber.
|
" A comment can contain pikeString, pikeCharacter and pikeNumber.
|
||||||
@@ -61,82 +186,201 @@ if exists("c_comment_strings")
|
|||||||
" need to use a special type of pikeString: pikeCommentString, which also ends on
|
" need to use a special type of pikeString: pikeCommentString, which also ends on
|
||||||
" "*/", and sees a "*" at the start of the line as comment again.
|
" "*/", and sees a "*" at the start of the line as comment again.
|
||||||
" Unfortunately this doesn't very well work for // type of comments :-(
|
" Unfortunately this doesn't very well work for // type of comments :-(
|
||||||
syntax match pikeCommentSkip contained "^\s*\*\($\|\s\+\)"
|
syn match pikeCommentSkip contained "^\s*\*\%($\|\s\+\)"
|
||||||
syntax region pikeCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=pikeSpecial,pikeCommentSkip
|
syn region pikeCommentString contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\ze\*/+ contains=pikeSpecial,pikeCommentSkip
|
||||||
syntax region pikeComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=pikeSpecial
|
syn region pikeComment2String contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=pikeSpecial
|
||||||
syntax region pikeComment start="/\*" end="\*/" contains=pikeTodo,pikeCommentString,pikeCharacter,pikeNumber,pikeFloat
|
syn region pikeCommentL start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeComment2String,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord
|
||||||
syntax match pikeComment "//.*" contains=pikeTodo,pikeComment2String,pikeCharacter,pikeNumber
|
if exists("c_no_comment_fold")
|
||||||
syntax match pikeComment "#\!.*" contains=pikeTodo,pikeComment2String,pikeCharacter,pikeNumber
|
" Use "extend" here to have preprocessor lines not terminate halfway a
|
||||||
|
" comment.
|
||||||
|
syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord
|
||||||
else
|
else
|
||||||
syn region pikeComment start="/\*" end="\*/" contains=pikeTodo
|
syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord
|
||||||
syn match pikeComment "//.*" contains=pikeTodo
|
|
||||||
syn match pikeComment "#!.*" contains=pikeTodo
|
|
||||||
endif
|
endif
|
||||||
syntax match pikeCommentError "\*/"
|
else
|
||||||
|
syn region pikeCommentL start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord
|
||||||
|
if exists("c_no_comment_fold")
|
||||||
|
syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord
|
||||||
|
else
|
||||||
|
syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
" keep a // comment separately, it terminates a preproc. conditional
|
||||||
|
syn match pikeCommentError display "\*/"
|
||||||
|
syn match pikeCommentStartError display "/\ze\*" contained
|
||||||
|
|
||||||
syn keyword pikeOperator sizeof
|
syn keyword pikeOperator sizeof
|
||||||
syn keyword pikeType int string void float mapping array multiset mixed
|
syn keyword pikeOperator typeof _typeof _refs
|
||||||
syn keyword pikeType program object function
|
syn keyword pikeOperator zero_type intp stringp arrayp mappingp multisetp
|
||||||
|
syn keyword pikeOperator objectp functionp programp callablep destructedp
|
||||||
|
syn keyword pikeOperator object_variablep undefinedp
|
||||||
|
syn keyword pikeOperator allocate equal
|
||||||
|
syn keyword pikeOperator aggregate aggregate_mapping aggregate_multiset
|
||||||
|
syn keyword pikeOperator map filter search replace reverse column rows
|
||||||
|
syn keyword pikeOperator indices values mkmapping mkmultiset m_delete sort
|
||||||
|
syn keyword pikeOperator m_delete destruct
|
||||||
|
syn keyword pikeOperator create _destruct _sprintf cast _encode _decode
|
||||||
|
syn keyword pikeOperator __hash _sizeof _values _indices __INIT _equal
|
||||||
|
syn keyword pikeOperator _is_type _m_delete _get_iterator _search
|
||||||
|
syn keyword pikeOperator _serialize _deserialize _sqrt _types _random
|
||||||
|
syn keyword pikeOperator _size_object
|
||||||
|
|
||||||
syn region pikePreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=pikeComment,pikeString,pikeCharacter,pikeNumber,pikeCommentError
|
syn keyword pikeType int void
|
||||||
syn region pikeIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
syn keyword pikeType float
|
||||||
syn match pikeIncluded contained "<[^>]*>"
|
syn keyword pikeType bool string array mapping multiset mixed
|
||||||
syn match pikeInclude "^\s*#\s*include\>\s*["<]" contains=pikeIncluded
|
syn keyword pikeType object function program auto
|
||||||
"syn match pikeLineSkip "\\$"
|
|
||||||
syn region pikeDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,pikePreCondit,pikeIncluded,pikeInclude,pikeDefine,pikeInParen
|
syn keyword pikeType this this_object this_program
|
||||||
syn region pikePreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,pikePreCondit,pikeIncluded,pikeInclude,pikeDefine,pikeInParen
|
syn keyword pikeType sprintf_args sprintf_format sprintf_result
|
||||||
|
syn keyword pikeType strict_sprintf_format
|
||||||
|
|
||||||
|
syn keyword pikeStructure class enum typedef inherit import
|
||||||
|
syn keyword pikeTypedef typedef
|
||||||
|
syn keyword pikeStorageClass private protected public constant final variant
|
||||||
|
syn keyword pikeStorageClass optional inline extern static __deprecated__ lambda
|
||||||
|
|
||||||
|
syn keyword pikeConstant __LINE__ __FILE__ __DIR__ __DATE__ __TIME__
|
||||||
|
syn keyword pikeConstant __AUTO_BIGNUM__ __NT__
|
||||||
|
syn keyword pikeConstant __BUILD__ __COUNTER__ _MAJOR__ __MINOR__ __VERSION__
|
||||||
|
syn keyword pikeConstant __REAL_BUILD__ _REAL_MAJOR__ __REAL_MINOR__
|
||||||
|
syn keyword pikeConstant __REAL_VERSION__ __PIKE__ UNDEFINED
|
||||||
|
|
||||||
|
" These should actually only be parsed in preprocessor conditionals
|
||||||
|
syn keyword pikeCppOperator contained defined constant efun _Pragma
|
||||||
|
|
||||||
|
syn keyword pikeBoolean true false
|
||||||
|
|
||||||
|
syn match pikeCppPrefix display "^\s*\zs#\s*[a-z]\+" contained
|
||||||
|
syn region pikePreCondit start="^\s*#\s*\%(if\%(n\?def\)\?\|el\%(se\)\?if\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix
|
||||||
|
syn match pikePreConditMatch display "^\s*\zs#\s*\%(else\|endif\)\>"
|
||||||
|
if !exists("c_no_if0")
|
||||||
|
syn cluster pikeCppOutInGroup contains=pikeCppInIf,pikeCppInElse,pikeCppInElse2,pikeCppOutIf,pikeCppOutIf2,pikeCppOutElse,pikeCppInSkip,pikeCppOutSkip
|
||||||
|
syn region pikeCppOutWrapper start="^\s*\zs#\s*if\s\+0\+\s*\%($\|//\|/\*\|&\)" end=".\@=\|$" contains=pikeCppOutIf,pikeCppOutElse,@NoSpell fold
|
||||||
|
syn region pikeCppOutIf contained start="0\+" matchgroup=pikeCppOutWrapper end="^\s*#\s*endif\>" contains=pikeCppOutIf2,pikeCppOutElse
|
||||||
|
if !exists("c_no_if0_fold")
|
||||||
|
syn region pikeCppOutIf2 contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell fold
|
||||||
|
else
|
||||||
|
syn region pikeCppOutIf2 contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell
|
||||||
|
endif
|
||||||
|
syn region pikeCppOutElse contained matchgroup=pikeCppOutWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit
|
||||||
|
syn region pikeCppInWrapper start="^\s*\zs#\s*if\s\+0*[1-9]\d*\s*\%($\|//\|/\*\||\)" end=".\@=\|$" contains=pikeCppInIf,pikeCppInElse fold
|
||||||
|
syn region pikeCppInIf contained matchgroup=pikeCppInWrapper start="\d\+" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit
|
||||||
|
if !exists("c_no_if0_fold")
|
||||||
|
syn region pikeCppInElse contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2 fold
|
||||||
|
else
|
||||||
|
syn region pikeCppInElse contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2
|
||||||
|
endif
|
||||||
|
syn region pikeCppInElse2 contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)\%([^/]\|/[^/*]\)*" end="^\ze\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip,@Spell
|
||||||
|
syn region pikeCppOutSkip contained start="^\s*#\s*if\%(n\?def\)\?\>" skip="\\$" end="^\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip
|
||||||
|
syn region pikeCppInSkip contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(if\s\+\%(\d\+\s*\%($\|//\|/\*\||\|&\)\)\@!\|ifn\?def\>\)" skip="\\$" end="^\s*#\s*endif\>" containedin=pikeCppOutElse,pikeCppInIf,pikeCppInSkip contains=TOP,pikePreProc
|
||||||
|
endif
|
||||||
|
syn region pikeIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeDelimiterDQ keepend
|
||||||
|
syn match pikeIncluded display contained "<[^>]*>"
|
||||||
|
syn match pikeInclude display "^\s*\zs#\s*include\>\s*["<]" contains=pikeIncluded
|
||||||
|
syn cluster pikePreProcGroup contains=pikeIncluded,pikeInclude,pikeEmbeddedString,pikeCppOutWrapper,pikeCppInWrapper,@pikeCppOutInGroup,pikeFormat,pikeMlString,pikeCommentStartError,@pikeBadGroup,pikeWord
|
||||||
|
syn region pikeDefine start="^\s*\zs#\s*\%(define\|undef\)\>" skip="\\$" end="$" keepend contains=@pikeStmt,@pikeBadGroup
|
||||||
|
syn region pikePreProc start="^\s*\zs#\s*\%(pragma\|charset\|pike\|require\|string\|line\|warning\|error\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix,@Spell,pikeConstant
|
||||||
|
|
||||||
|
syn match pikeAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@pikeAutodoc containedin=pikeComment,pikeCommentL
|
||||||
|
syn cluster pikeCommentGroup add=pikeAutodocReal
|
||||||
|
syn cluster pikePreProcGroup add=pikeAutodocReal
|
||||||
|
|
||||||
" Highlight User Labels
|
" Highlight User Labels
|
||||||
syn region pikeMulti transparent start='?' end=':' contains=ALLBUT,pikeIncluded,pikeSpecial,pikeTodo,pikeUserLabel,pikeBitField
|
|
||||||
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
|
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
|
||||||
syn match pikeUserLabel "^\s*\I\i*\s*:$"
|
syn match pikeUserLabel display "\%(^\|[{};]\)\zs\I\i*\s*\ze:\%([^:]\|$\)" contained contains=NONE
|
||||||
syn match pikeUserLabel ";\s*\I\i*\s*:$"ms=s+1
|
syn match pikeUserLabel display "\%(\<\%(break\|continue\)\_s\+\)\@10<=\I\i*" contained contains=NONE
|
||||||
syn match pikeUserLabel "^\s*\I\i*\s*:[^:]"me=e-1
|
syn match pikeUserLabel display "\%(\<case\)\@5<=\s\+[^<()[\]{},;:]\+\ze::\@!" contained contains=pikeDelimiterDQ,pikeDelimiterSQ
|
||||||
syn match pikeUserLabel ";\s*\I\i*\s*:[^:]"ms=s+1,me=e-1
|
|
||||||
|
|
||||||
" Avoid recognizing most bitfields as labels
|
syn match pikeMappIndex display contained "[^<()[\]{},;:]\+\ze::\@!" contains=pikeDelimiterDQ,pikeDelimiterSQ
|
||||||
syn match pikeBitField "^\s*\I\i*\s*:\s*[1-9]"me=e-1
|
syn match pikeSoftCast display contained "\[[ \t\v\r\n.a-zA-Z0-9_():,|\+]" contains=NONE
|
||||||
syn match pikeBitField ";\s*\I\i*\s*:\s*[1-9]"me=e-1
|
|
||||||
|
|
||||||
syn sync ccomment pikeComment minlines=10
|
if exists("c_minlines")
|
||||||
|
let b:c_minlines = c_minlines
|
||||||
|
else
|
||||||
|
if !exists("c_no_if0")
|
||||||
|
let b:c_minlines = 400 " #if 0 constructs can be long
|
||||||
|
else
|
||||||
|
let b:c_minlines = 200 " mostly for multiline strings
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
exec "syn sync ccomment pikeComment minlines=" . b:c_minlines
|
||||||
|
syn sync match pikeMlStringSync grouphere pikeMlString +^[^"#]\+#\"+
|
||||||
|
syn sync match pikeAutodocSync grouphere pikeCommentL "^\s*//!"
|
||||||
|
|
||||||
" Define the default highlighting.
|
" Define the default highlighting.
|
||||||
" Only when an item doesn't have highlighting yet
|
" Only used when an item doesn't have highlighting yet
|
||||||
|
hi def link pikeFormat SpecialChar
|
||||||
|
hi def link pikeMlString String
|
||||||
|
hi def link pikeCommentL Comment
|
||||||
|
hi def link pikeCommentStart Comment
|
||||||
hi def link pikeLabel Label
|
hi def link pikeLabel Label
|
||||||
hi def link pikeUserLabel Label
|
hi def link pikeUserLabel Identifier
|
||||||
hi def link pikeConditional Conditional
|
hi def link pikeConditional Conditional
|
||||||
hi def link pikeRepeat Repeat
|
hi def link pikeRepeat Repeat
|
||||||
hi def link pikeCharacter Character
|
hi def link pikeCharacter Character
|
||||||
hi def link pikeSpecialCharacter pikeSpecial
|
hi def link pikeDelimiterDQ Delimiter
|
||||||
|
hi def link pikeDelimiterSQ Delimiter
|
||||||
hi def link pikeNumber Number
|
hi def link pikeNumber Number
|
||||||
|
hi def link pikeOctal Number
|
||||||
|
hi def link pikeOctalZero PreProc " link this to Error if you want
|
||||||
hi def link pikeFloat Float
|
hi def link pikeFloat Float
|
||||||
hi def link pikeOctalError pikeError
|
hi def link pikeOctalError Error
|
||||||
hi def link pikeParenError pikeError
|
hi def link pikeCommentError Error
|
||||||
hi def link pikeInParen pikeError
|
hi def link pikeCommentStartError Error
|
||||||
hi def link pikeCommentError pikeError
|
hi def link pikeSpaceError Error
|
||||||
|
hi def link pikeSpecialError Error
|
||||||
hi def link pikeOperator Operator
|
hi def link pikeOperator Operator
|
||||||
|
hi def link pikeCppOperator Operator
|
||||||
|
hi def link pikeStructure Structure
|
||||||
|
hi def link pikeTypedef Typedef
|
||||||
|
hi def link pikeStorageClass StorageClass
|
||||||
hi def link pikeInclude Include
|
hi def link pikeInclude Include
|
||||||
|
hi def link pikeCppPrefix PreCondit
|
||||||
hi def link pikePreProc PreProc
|
hi def link pikePreProc PreProc
|
||||||
hi def link pikeDefine Macro
|
hi def link pikeDefine Macro
|
||||||
hi def link pikeIncluded pikeString
|
hi def link pikeIncluded String
|
||||||
hi def link pikeError Error
|
hi def link pikeError Error
|
||||||
|
hi def link pikeDebug Debug
|
||||||
|
hi def link pikeException Exception
|
||||||
hi def link pikeStatement Statement
|
hi def link pikeStatement Statement
|
||||||
hi def link pikePreCondit PreCondit
|
|
||||||
hi def link pikeType Type
|
hi def link pikeType Type
|
||||||
hi def link pikeCommentError pikeError
|
hi def link pikeConstant Constant
|
||||||
hi def link pikeCommentString pikeString
|
hi def link pikeBoolean Boolean
|
||||||
hi def link pikeComment2String pikeString
|
hi def link pikeCommentString String
|
||||||
hi def link pikeCommentSkip pikeComment
|
hi def link pikeComment2String String
|
||||||
|
hi def link pikeCommentSkip Comment
|
||||||
hi def link pikeString String
|
hi def link pikeString String
|
||||||
hi def link pikeComment Comment
|
hi def link pikeComment Comment
|
||||||
hi def link pikeSpecial SpecialChar
|
hi def link pikeSpecial SpecialChar
|
||||||
hi def link pikeTodo Todo
|
hi def link pikeTodo Todo
|
||||||
hi def link pikeException pikeStatement
|
hi def link pikeBadContinuation Error
|
||||||
hi def link pikeCompoundType Constant
|
|
||||||
"hi def link pikeIdentifier Identifier
|
|
||||||
|
|
||||||
|
hi def link pikeCppInWrapper PreCondit
|
||||||
|
hi def link pikeCppOutWrapper PreCondit
|
||||||
|
hi def link pikePreConditMatch PreCondit
|
||||||
|
|
||||||
|
hi def link pikeCppOutSkip Comment
|
||||||
|
hi def link pikeCppInElse2 Comment
|
||||||
|
hi def link pikeCppOutIf2 Comment
|
||||||
|
hi def link pikeCppOut Comment
|
||||||
|
|
||||||
|
hi def link pikePredef Statement
|
||||||
|
hi def link pikeBindings Identifier
|
||||||
|
hi def link pikeMappIndex Identifier
|
||||||
|
hi def link pikeSoftCast Type
|
||||||
|
hi def link pikeBadGroup Error
|
||||||
|
hi def link pikeBadPClose Error
|
||||||
|
hi def link pikeBadAClose Error
|
||||||
|
hi def link pikeBadBClose Error
|
||||||
|
hi def link pikeBadSPClose Error
|
||||||
|
hi def link pikeBadSAClose Error
|
||||||
|
hi def link pikeBadSBClose Error
|
||||||
|
hi def link pikeBadSPAClose Error
|
||||||
|
hi def link pikeBadSBAClose Error
|
||||||
|
hi def link pikeBadSClose Error
|
||||||
|
|
||||||
let b:current_syntax = "pike"
|
let b:current_syntax = "pike"
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
" vim: ts=8
|
" vim: ts=8
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: readline(3) configuration file
|
" Language: readline(3) configuration file
|
||||||
|
" Maintainer: Daniel Moch <daniel@danielmoch.com>
|
||||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||||
" Latest Revision: 2017-06-25
|
" Latest Revision: 2017-12-25
|
||||||
" readline_has_bash - if defined add support for bash specific
|
" readline_has_bash - if defined add support for bash specific
|
||||||
" settings/functions
|
" settings/functions
|
||||||
|
|
||||||
@@ -152,6 +153,9 @@ syn keyword readlineVariable contained
|
|||||||
\ skipwhite
|
\ skipwhite
|
||||||
\ comment-begin
|
\ comment-begin
|
||||||
\ isearch-terminators
|
\ isearch-terminators
|
||||||
|
\ vi-cmd-mode-string
|
||||||
|
\ vi-ins-mode-string
|
||||||
|
\ emacs-mode-string
|
||||||
|
|
||||||
syn keyword readlineVariable contained
|
syn keyword readlineVariable contained
|
||||||
\ nextgroup=readlineNumber
|
\ nextgroup=readlineNumber
|
||||||
|
|||||||
@@ -1,328 +1,464 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Scheme (R5RS + some R6RS extras)
|
" Language: Scheme (R7RS)
|
||||||
" Last Change: 2016 May 23
|
" Last Change: 2018-01-06
|
||||||
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
" Author: Evan Hanson <evhan@foldling.org>
|
||||||
" Original author: Dirk van Deun <dirk@igwe.vub.ac.be>
|
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||||
|
" Previous Author: Dirk van Deun <dirk@igwe.vub.ac.be>
|
||||||
|
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||||
|
" URL: https://foldling.org/vim/syntax/scheme.vim
|
||||||
|
|
||||||
" This script incorrectly recognizes some junk input as numerals:
|
if exists('b:current_syntax')
|
||||||
" parsing the complete system of Scheme numerals using the pattern
|
|
||||||
" language is practically impossible: I did a lax approximation.
|
|
||||||
|
|
||||||
" MzScheme extensions can be activated with setting is_mzscheme variable
|
|
||||||
|
|
||||||
" Suggestions and bug reports are solicited by the author.
|
|
||||||
|
|
||||||
" Initializing:
|
|
||||||
|
|
||||||
" quit when a syntax file was already loaded
|
|
||||||
if exists("b:current_syntax")
|
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:cpo_save = &cpo
|
let s:cpo = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
syn case ignore
|
syn match schemeParentheses "[^ '`\t\n()\[\]";]\+"
|
||||||
|
syn match schemeParentheses "[)\]]"
|
||||||
|
|
||||||
" Fascist highlighting: everything that doesn't fit the rules is an error...
|
syn match schemeIdentifier /[^ '`\t\n()\[\]"|;][^ '`\t\n()\[\]"|;]*/
|
||||||
|
|
||||||
syn match schemeError ![^ \t()\[\]";]*!
|
syn region schemeQuote matchgroup=schemeData start=/'[`']*/ end=/[ \t\n()\[\]";]/me=e-1
|
||||||
syn match schemeError ")"
|
syn region schemeQuote matchgroup=schemeData start=/'['`]*"/ skip=/\\[\\"]/ end=/"/
|
||||||
|
syn region schemeQuote matchgroup=schemeData start=/'['`]*|/ skip=/\\[\\|]/ end=/|/
|
||||||
|
syn region schemeQuote matchgroup=schemeData start=/'['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||||
|
|
||||||
" Quoted and backquoted stuff
|
syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*/ end=/[ \t\n()\[\]";]/me=e-1
|
||||||
|
syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuote,schemeQuoteForm,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||||
|
|
||||||
syn region schemeQuoted matchgroup=Delimiter start="['`]" end=![ \t()\[\]";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
syn region schemeUnquote matchgroup=schemeParentheses start=/,/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
|
||||||
|
syn region schemeUnquote matchgroup=schemeParentheses start=/,@/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
|
||||||
|
syn region schemeUnquote matchgroup=schemeParentheses start=/,(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
|
||||||
|
syn region schemeUnquote matchgroup=schemeParentheses start=/,@(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
|
||||||
|
|
||||||
syn region schemeQuoted matchgroup=Delimiter start="['`](" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
syn region schemeQuoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||||
syn region schemeQuoted matchgroup=Delimiter start="['`]#(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
syn region schemeQuasiquoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||||
|
|
||||||
syn region schemeStrucRestricted matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
syn region schemeString start=/\(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/
|
||||||
syn region schemeStrucRestricted matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
syn region schemeSymbol start=/\(\\\)\@<!|/ skip=/\\[\\|]/ end=/|/
|
||||||
|
|
||||||
" Popular Scheme extension:
|
syn match schemeNumber /\(#[dbeio]\)*[+\-]*\([0-9]\+\|inf.0\|nan.0\)\(\/\|\.\)\?[0-9+\-@\ilns]*\>/
|
||||||
" using [] as well as ()
|
syn match schemeNumber /#x[+\-]*[0-9a-fA-F]\+\>/
|
||||||
syn region schemeStrucRestricted matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
|
||||||
syn region schemeStrucRestricted matchgroup=Delimiter start="#\[" matchgroup=Delimiter end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
|
||||||
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start="," end=![ \t\[\]()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
syn match schemeBoolean /#t\(rue\)\?/
|
||||||
syn region schemeUnquote matchgroup=Delimiter start=",@" end=![ \t\[\]()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
syn match schemeBoolean /#f\(alse\)\?/
|
||||||
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start=",(" end=")" contains=ALL
|
syn match schemeCharacter /#\\.[^ `'\t\n\[\]()]*/
|
||||||
syn region schemeUnquote matchgroup=Delimiter start=",@(" end=")" contains=ALL
|
syn match schemeCharacter /#\\x[0-9a-fA-F]\+/
|
||||||
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start=",#(" end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
syn match schemeComment /;.*$/
|
||||||
syn region schemeUnquote matchgroup=Delimiter start=",@#(" end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
|
||||||
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start=",\[" end="\]" contains=ALL
|
syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment
|
||||||
syn region schemeUnquote matchgroup=Delimiter start=",@\[" end="\]" contains=ALL
|
|
||||||
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start=",#\[" end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
syn region schemeForm matchgroup=schemeParentheses start="(" end=")" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
|
||||||
syn region schemeUnquote matchgroup=Delimiter start=",@#\[" end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
syn region schemeForm matchgroup=schemeParentheses start="\[" end="\]" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
|
||||||
|
|
||||||
" R5RS Scheme Functions and Syntax:
|
syn region schemeVector matchgroup=schemeData start="#(" end=")" contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||||
|
syn region schemeVector matchgroup=schemeData start="#[fsu]\d\+(" end=")" contains=schemeNumber,schemeComment,schemeDatumComment
|
||||||
|
|
||||||
setlocal iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_
|
if exists('g:is_chicken') || exists('b:is_chicken')
|
||||||
|
syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\|import-syntax\|use\|require-extension\)\(-for-syntax\)\?\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment
|
||||||
syn keyword schemeSyntax lambda and or if cond case define let let* letrec
|
else
|
||||||
syn keyword schemeSyntax begin do delay set! else =>
|
syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\)\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment
|
||||||
syn keyword schemeSyntax quote quasiquote unquote unquote-splicing
|
|
||||||
syn keyword schemeSyntax define-syntax let-syntax letrec-syntax syntax-rules
|
|
||||||
" R6RS
|
|
||||||
syn keyword schemeSyntax define-record-type fields protocol
|
|
||||||
|
|
||||||
syn keyword schemeFunc not boolean? eq? eqv? equal? pair? cons car cdr set-car!
|
|
||||||
syn keyword schemeFunc set-cdr! caar cadr cdar cddr caaar caadr cadar caddr
|
|
||||||
syn keyword schemeFunc cdaar cdadr cddar cdddr caaaar caaadr caadar caaddr
|
|
||||||
syn keyword schemeFunc cadaar cadadr caddar cadddr cdaaar cdaadr cdadar cdaddr
|
|
||||||
syn keyword schemeFunc cddaar cddadr cdddar cddddr null? list? list length
|
|
||||||
syn keyword schemeFunc append reverse list-ref memq memv member assq assv assoc
|
|
||||||
syn keyword schemeFunc symbol? symbol->string string->symbol number? complex?
|
|
||||||
syn keyword schemeFunc real? rational? integer? exact? inexact? = < > <= >=
|
|
||||||
syn keyword schemeFunc zero? positive? negative? odd? even? max min + * - / abs
|
|
||||||
syn keyword schemeFunc quotient remainder modulo gcd lcm numerator denominator
|
|
||||||
syn keyword schemeFunc floor ceiling truncate round rationalize exp log sin cos
|
|
||||||
syn keyword schemeFunc tan asin acos atan sqrt expt make-rectangular make-polar
|
|
||||||
syn keyword schemeFunc real-part imag-part magnitude angle exact->inexact
|
|
||||||
syn keyword schemeFunc inexact->exact number->string string->number char=?
|
|
||||||
syn keyword schemeFunc char-ci=? char<? char-ci<? char>? char-ci>? char<=?
|
|
||||||
syn keyword schemeFunc char-ci<=? char>=? char-ci>=? char-alphabetic? char?
|
|
||||||
syn keyword schemeFunc char-numeric? char-whitespace? char-upper-case?
|
|
||||||
syn keyword schemeFunc char-lower-case?
|
|
||||||
syn keyword schemeFunc char->integer integer->char char-upcase char-downcase
|
|
||||||
syn keyword schemeFunc string? make-string string string-length string-ref
|
|
||||||
syn keyword schemeFunc string-set! string=? string-ci=? string<? string-ci<?
|
|
||||||
syn keyword schemeFunc string>? string-ci>? string<=? string-ci<=? string>=?
|
|
||||||
syn keyword schemeFunc string-ci>=? substring string-append vector? make-vector
|
|
||||||
syn keyword schemeFunc vector vector-length vector-ref vector-set! procedure?
|
|
||||||
syn keyword schemeFunc apply map for-each call-with-current-continuation
|
|
||||||
syn keyword schemeFunc call-with-input-file call-with-output-file input-port?
|
|
||||||
syn keyword schemeFunc output-port? current-input-port current-output-port
|
|
||||||
syn keyword schemeFunc open-input-file open-output-file close-input-port
|
|
||||||
syn keyword schemeFunc close-output-port eof-object? read read-char peek-char
|
|
||||||
syn keyword schemeFunc write display newline write-char call/cc
|
|
||||||
syn keyword schemeFunc list-tail string->list list->string string-copy
|
|
||||||
syn keyword schemeFunc string-fill! vector->list list->vector vector-fill!
|
|
||||||
syn keyword schemeFunc force with-input-from-file with-output-to-file
|
|
||||||
syn keyword schemeFunc char-ready? load transcript-on transcript-off eval
|
|
||||||
syn keyword schemeFunc dynamic-wind port? values call-with-values
|
|
||||||
syn keyword schemeFunc scheme-report-environment null-environment
|
|
||||||
syn keyword schemeFunc interaction-environment
|
|
||||||
" R6RS
|
|
||||||
syn keyword schemeFunc make-eq-hashtable make-eqv-hashtable make-hashtable
|
|
||||||
syn keyword schemeFunc hashtable? hashtable-size hashtable-ref hashtable-set!
|
|
||||||
syn keyword schemeFunc hashtable-delete! hashtable-contains? hashtable-update!
|
|
||||||
syn keyword schemeFunc hashtable-copy hashtable-clear! hashtable-keys
|
|
||||||
syn keyword schemeFunc hashtable-entries hashtable-equivalence-function hashtable-hash-function
|
|
||||||
syn keyword schemeFunc hashtable-mutable? equal-hash string-hash string-ci-hash symbol-hash
|
|
||||||
syn keyword schemeFunc find for-all exists filter partition fold-left fold-right
|
|
||||||
syn keyword schemeFunc remp remove remv remq memp assp cons*
|
|
||||||
|
|
||||||
" ... so that a single + or -, inside a quoted context, would not be
|
|
||||||
" interpreted as a number (outside such contexts, it's a schemeFunc)
|
|
||||||
|
|
||||||
syn match schemeDelimiter !\.[ \t\[\]()";]!me=e-1
|
|
||||||
syn match schemeDelimiter !\.$!
|
|
||||||
" ... and a single dot is not a number but a delimiter
|
|
||||||
|
|
||||||
" This keeps all other stuff unhighlighted, except *stuff* and <stuff>:
|
|
||||||
|
|
||||||
syn match schemeOther ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*,
|
|
||||||
syn match schemeError ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
|
|
||||||
|
|
||||||
syn match schemeOther "\.\.\."
|
|
||||||
syn match schemeError !\.\.\.[^ \t\[\]()";]\+!
|
|
||||||
" ... a special identifier
|
|
||||||
|
|
||||||
syn match schemeConstant ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*[ \t\[\]()";],me=e-1
|
|
||||||
syn match schemeConstant ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*$,
|
|
||||||
syn match schemeError ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
|
|
||||||
|
|
||||||
syn match schemeConstant ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1
|
|
||||||
syn match schemeConstant ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
|
|
||||||
syn match schemeError ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
|
|
||||||
|
|
||||||
" Non-quoted lists, and strings:
|
|
||||||
|
|
||||||
syn region schemeStruc matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALL
|
|
||||||
syn region schemeStruc matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALL
|
|
||||||
|
|
||||||
syn region schemeStruc matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=ALL
|
|
||||||
syn region schemeStruc matchgroup=Delimiter start="#\[" matchgroup=Delimiter end="\]" contains=ALL
|
|
||||||
|
|
||||||
" Simple literals:
|
|
||||||
syn region schemeString start=+\%(\\\)\@<!"+ skip=+\\[\\"]+ end=+"+ contains=@Spell
|
|
||||||
|
|
||||||
" Comments:
|
|
||||||
|
|
||||||
syn match schemeComment ";.*$" contains=@Spell
|
|
||||||
|
|
||||||
|
|
||||||
" Writing out the complete description of Scheme numerals without
|
|
||||||
" using variables is a day's work for a trained secretary...
|
|
||||||
|
|
||||||
syn match schemeOther ![+-][ \t\[\]()";]!me=e-1
|
|
||||||
syn match schemeOther ![+-]$!
|
|
||||||
"
|
|
||||||
" This is a useful lax approximation:
|
|
||||||
syn match schemeNumber "[-#+.]\=[0-9][-#+/0-9a-f@i.boxesfdl]*"
|
|
||||||
syn match schemeError ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*!
|
|
||||||
|
|
||||||
syn match schemeBoolean "#[tf]"
|
|
||||||
syn match schemeError !#[tf][^ \t\[\]()";]\+!
|
|
||||||
|
|
||||||
syn match schemeCharacter "#\\"
|
|
||||||
syn match schemeCharacter "#\\."
|
|
||||||
syn match schemeError !#\\.[^ \t\[\]()";]\+!
|
|
||||||
syn match schemeCharacter "#\\space"
|
|
||||||
syn match schemeError !#\\space[^ \t\[\]()";]\+!
|
|
||||||
syn match schemeCharacter "#\\newline"
|
|
||||||
syn match schemeError !#\\newline[^ \t\[\]()";]\+!
|
|
||||||
|
|
||||||
" R6RS
|
|
||||||
syn match schemeCharacter "#\\x[0-9a-fA-F]\+"
|
|
||||||
|
|
||||||
|
|
||||||
if exists("b:is_mzscheme") || exists("is_mzscheme")
|
|
||||||
" MzScheme extensions
|
|
||||||
" multiline comment
|
|
||||||
syn region schemeComment start="#|" end="|#" contains=@Spell
|
|
||||||
|
|
||||||
" #%xxx are the special MzScheme identifiers
|
|
||||||
syn match schemeOther "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
|
|
||||||
" anything limited by |'s is identifier
|
|
||||||
syn match schemeOther "|[^|]\+|"
|
|
||||||
|
|
||||||
syn match schemeCharacter "#\\\%(return\|tab\)"
|
|
||||||
|
|
||||||
" Modules require stmt
|
|
||||||
syn keyword schemeExtSyntax module require dynamic-require lib prefix all-except prefix-all-except rename
|
|
||||||
" modules provide stmt
|
|
||||||
syn keyword schemeExtSyntax provide struct all-from all-from-except all-defined all-defined-except
|
|
||||||
" Other from MzScheme
|
|
||||||
syn keyword schemeExtSyntax with-handlers when unless instantiate define-struct case-lambda syntax-case
|
|
||||||
syn keyword schemeExtSyntax free-identifier=? bound-identifier=? module-identifier=? syntax-object->datum
|
|
||||||
syn keyword schemeExtSyntax datum->syntax-object
|
|
||||||
syn keyword schemeExtSyntax let-values let*-values letrec-values set!-values fluid-let parameterize begin0
|
|
||||||
syn keyword schemeExtSyntax error raise opt-lambda define-values unit unit/sig define-signature
|
|
||||||
syn keyword schemeExtSyntax invoke-unit/sig define-values/invoke-unit/sig compound-unit/sig import export
|
|
||||||
syn keyword schemeExtSyntax link syntax quasisyntax unsyntax with-syntax
|
|
||||||
|
|
||||||
syn keyword schemeExtFunc format system-type current-extension-compiler current-extension-linker
|
|
||||||
syn keyword schemeExtFunc use-standard-linker use-standard-compiler
|
|
||||||
syn keyword schemeExtFunc find-executable-path append-object-suffix append-extension-suffix
|
|
||||||
syn keyword schemeExtFunc current-library-collection-paths current-extension-compiler-flags make-parameter
|
|
||||||
syn keyword schemeExtFunc current-directory build-path normalize-path current-extension-linker-flags
|
|
||||||
syn keyword schemeExtFunc file-exists? directory-exists? delete-directory/files delete-directory delete-file
|
|
||||||
syn keyword schemeExtFunc system compile-file system-library-subpath getenv putenv current-standard-link-libraries
|
|
||||||
syn keyword schemeExtFunc remove* file-size find-files fold-files directory-list shell-execute split-path
|
|
||||||
syn keyword schemeExtFunc current-error-port process/ports process printf fprintf open-input-string open-output-string
|
|
||||||
syn keyword schemeExtFunc get-output-string
|
|
||||||
" exceptions
|
|
||||||
syn keyword schemeExtFunc exn exn:application:arity exn:application:continuation exn:application:fprintf:mismatch
|
|
||||||
syn keyword schemeExtFunc exn:application:mismatch exn:application:type exn:application:mismatch exn:break exn:i/o:filesystem exn:i/o:port
|
|
||||||
syn keyword schemeExtFunc exn:i/o:port:closed exn:i/o:tcp exn:i/o:udp exn:misc exn:misc:application exn:misc:unsupported exn:module exn:read
|
|
||||||
syn keyword schemeExtFunc exn:read:non-char exn:special-comment exn:syntax exn:thread exn:user exn:variable exn:application:mismatch
|
|
||||||
syn keyword schemeExtFunc exn? exn:application:arity? exn:application:continuation? exn:application:fprintf:mismatch? exn:application:mismatch?
|
|
||||||
syn keyword schemeExtFunc exn:application:type? exn:application:mismatch? exn:break? exn:i/o:filesystem? exn:i/o:port? exn:i/o:port:closed?
|
|
||||||
syn keyword schemeExtFunc exn:i/o:tcp? exn:i/o:udp? exn:misc? exn:misc:application? exn:misc:unsupported? exn:module? exn:read? exn:read:non-char?
|
|
||||||
syn keyword schemeExtFunc exn:special-comment? exn:syntax? exn:thread? exn:user? exn:variable? exn:application:mismatch?
|
|
||||||
" Command-line parsing
|
|
||||||
syn keyword schemeExtFunc command-line current-command-line-arguments once-any help-labels multi once-each
|
|
||||||
|
|
||||||
" syntax quoting, unquoting and quasiquotation
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start="#," end=![ \t\[\]()";]!me=e-1 contains=ALL
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start="#,@" end=![ \t\[\]()";]!me=e-1 contains=ALL
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start="#,(" end=")" contains=ALL
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start="#,@(" end=")" contains=ALL
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start="#,\[" end="\]" contains=ALL
|
|
||||||
syn region schemeUnquote matchgroup=Delimiter start="#,@\[" end="\]" contains=ALL
|
|
||||||
syn region schemeQuoted matchgroup=Delimiter start="#['`]" end=![ \t()\[\]";]!me=e-1 contains=ALL
|
|
||||||
syn region schemeQuoted matchgroup=Delimiter start="#['`](" matchgroup=Delimiter end=")" contains=ALL
|
|
||||||
|
|
||||||
" Identifiers are very liberal in MzScheme/Racket
|
|
||||||
syn match schemeOther ![^()[\]{}",'`;#|\\ ]\+!
|
|
||||||
|
|
||||||
" Language setting
|
|
||||||
syn match schemeLang "#lang [-+_/A-Za-z0-9]\+\>"
|
|
||||||
|
|
||||||
" Various number forms
|
|
||||||
syn match schemeNumber "[-+]\=[0-9]\+\(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\>"
|
|
||||||
syn match schemeNumber "[-+]\=\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>"
|
|
||||||
syn match schemeNumber "[-+]\=[0-9]\+/[0-9]\+\>"
|
|
||||||
syn match schemeNumber "\([-+]\=\([0-9]\+\(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\|\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\|[0-9]\+/[0-9]\+\)\)\=[-+]\([0-9]\+\(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\|\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\|[0-9]\+/[0-9]\+\)\=i\>"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
syn match schemeImportKeyword "\(([ \t\n]*\)\@<=\(except\|only\|prefix\|rename\|srfi\)\>"
|
||||||
|
syn region schemeImportForm matchgroup=schemeParentheses start="(" end=")" contained contains=schemeIdentifier,schemeComment,schemeDatumComment,@schemeImportCluster
|
||||||
|
syn cluster schemeImportCluster contains=schemeImportForm,schemeImportKeyword
|
||||||
|
|
||||||
if exists("b:is_chicken") || exists("is_chicken")
|
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*/ end=/[ \t\n()\[\]";]/me=e-1
|
||||||
" multiline comment
|
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*"/ skip=/\\[\\"]/ end=/"/
|
||||||
syntax region schemeMultilineComment start=/#|/ end=/|#/ contains=@Spell,schemeMultilineComment
|
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*|/ skip=/\\[\\|]/ end=/|/
|
||||||
|
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*\(#\([usf]\d\+\)\?\)\?(/ end=/)/ contains=schemeDatumCommentForm
|
||||||
|
syn region schemeDatumCommentForm start="(" end=")" contained contains=schemeDatumCommentForm
|
||||||
|
|
||||||
syn match schemeOther "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
|
syn cluster schemeSyntaxCluster contains=schemeFunction,schemeKeyword,schemeSyntax,schemeExtraSyntax,schemeLibrarySyntax,schemeSyntaxSyntax
|
||||||
syn match schemeExtSyntax "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
|
|
||||||
|
|
||||||
syn keyword schemeExtSyntax unit uses declare hide foreign-declare foreign-parse foreign-parse/spec
|
syn keyword schemeLibrarySyntax define-library
|
||||||
syn keyword schemeExtSyntax foreign-lambda foreign-lambda* define-external define-macro load-library
|
syn keyword schemeLibrarySyntax export
|
||||||
syn keyword schemeExtSyntax let-values let*-values letrec-values ->string require-extension
|
syn keyword schemeLibrarySyntax include
|
||||||
syn keyword schemeExtSyntax let-optionals let-optionals* define-foreign-variable define-record
|
syn keyword schemeLibrarySyntax include-ci
|
||||||
syn keyword schemeExtSyntax pointer tag-pointer tagged-pointer? define-foreign-type
|
syn keyword schemeLibrarySyntax include-library-declarations
|
||||||
syn keyword schemeExtSyntax require require-for-syntax cond-expand and-let* receive argc+argv
|
syn keyword schemeLibrarySyntax library
|
||||||
syn keyword schemeExtSyntax fixnum? fx= fx> fx< fx>= fx<= fxmin fxmax
|
syn keyword schemeLibrarySyntax cond-expand
|
||||||
syn keyword schemeExtFunc ##core#inline ##sys#error ##sys#update-errno
|
|
||||||
|
|
||||||
" here-string
|
syn keyword schemeSyntaxSyntax define-syntax
|
||||||
syn region schemeString start=+#<<\s*\z(.*\)+ end=+^\z1$+ contains=@Spell
|
syn keyword schemeSyntaxSyntax let-syntax
|
||||||
|
syn keyword schemeSyntaxSyntax letrec-syntax
|
||||||
|
syn keyword schemeSyntaxSyntax syntax-rules
|
||||||
|
|
||||||
if filereadable(expand("<sfile>:p:h")."/cpp.vim")
|
syn keyword schemeSyntax =>
|
||||||
unlet! b:current_syntax
|
syn keyword schemeSyntax and
|
||||||
syn include @ChickenC <sfile>:p:h/cpp.vim
|
syn keyword schemeSyntax begin
|
||||||
syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-declare "+ end=+")\@=+ contains=@ChickenC
|
syn keyword schemeSyntax case
|
||||||
syn region ChickenC matchgroup=schemeComment start=+foreign-declare\s*#<<\z(.*\)$+hs=s+15 end=+^\z1$+ contains=@ChickenC
|
syn keyword schemeSyntax case-lambda
|
||||||
syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-parse "+ end=+")\@=+ contains=@ChickenC
|
syn keyword schemeSyntax cond
|
||||||
syn region ChickenC matchgroup=schemeComment start=+foreign-parse\s*#<<\z(.*\)$+hs=s+13 end=+^\z1$+ contains=@ChickenC
|
syn keyword schemeSyntax define
|
||||||
syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-parse/spec "+ end=+")\@=+ contains=@ChickenC
|
syn keyword schemeSyntax define-record-type
|
||||||
syn region ChickenC matchgroup=schemeComment start=+foreign-parse/spec\s*#<<\z(.*\)$+hs=s+18 end=+^\z1$+ contains=@ChickenC
|
syn keyword schemeSyntax define-values
|
||||||
syn region ChickenC matchgroup=schemeComment start=+#>+ end=+<#+ contains=@ChickenC
|
syn keyword schemeSyntax delay
|
||||||
syn region ChickenC matchgroup=schemeComment start=+#>?+ end=+<#+ contains=@ChickenC
|
syn keyword schemeSyntax delay-force
|
||||||
syn region ChickenC matchgroup=schemeComment start=+#>!+ end=+<#+ contains=@ChickenC
|
syn keyword schemeSyntax do
|
||||||
syn region ChickenC matchgroup=schemeComment start=+#>\$+ end=+<#+ contains=@ChickenC
|
syn keyword schemeSyntax else
|
||||||
syn region ChickenC matchgroup=schemeComment start=+#>%+ end=+<#+ contains=@ChickenC
|
syn keyword schemeSyntax guard
|
||||||
endif
|
syn keyword schemeSyntax if
|
||||||
|
syn keyword schemeSyntax lambda
|
||||||
|
syn keyword schemeSyntax let
|
||||||
|
syn keyword schemeSyntax let*
|
||||||
|
syn keyword schemeSyntax let*-values
|
||||||
|
syn keyword schemeSyntax let-values
|
||||||
|
syn keyword schemeSyntax letrec
|
||||||
|
syn keyword schemeSyntax letrec*
|
||||||
|
syn keyword schemeSyntax or
|
||||||
|
syn keyword schemeSyntax parameterize
|
||||||
|
syn keyword schemeSyntax quasiquote
|
||||||
|
syn keyword schemeSyntax quote
|
||||||
|
syn keyword schemeSyntax set!
|
||||||
|
syn keyword schemeSyntax unless
|
||||||
|
syn keyword schemeSyntax unquote
|
||||||
|
syn keyword schemeSyntax unquote-splicing
|
||||||
|
syn keyword schemeSyntax when
|
||||||
|
|
||||||
" suggested by Alex Queiroz
|
syn keyword schemeFunction *
|
||||||
syn match schemeExtSyntax "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
|
syn keyword schemeFunction +
|
||||||
syn region schemeString start=+#<#\s*\z(.*\)+ end=+^\z1$+ contains=@Spell
|
syn keyword schemeFunction -
|
||||||
endif
|
syn keyword schemeFunction /
|
||||||
|
syn keyword schemeFunction <
|
||||||
|
syn keyword schemeFunction <=
|
||||||
|
syn keyword schemeFunction =
|
||||||
|
syn keyword schemeFunction >
|
||||||
|
syn keyword schemeFunction >=
|
||||||
|
syn keyword schemeFunction abs
|
||||||
|
syn keyword schemeFunction acos
|
||||||
|
syn keyword schemeFunction acos
|
||||||
|
syn keyword schemeFunction angle
|
||||||
|
syn keyword schemeFunction append
|
||||||
|
syn keyword schemeFunction apply
|
||||||
|
syn keyword schemeFunction asin
|
||||||
|
syn keyword schemeFunction assoc
|
||||||
|
syn keyword schemeFunction assq
|
||||||
|
syn keyword schemeFunction assv
|
||||||
|
syn keyword schemeFunction atan
|
||||||
|
syn keyword schemeFunction binary-port?
|
||||||
|
syn keyword schemeFunction boolean=?
|
||||||
|
syn keyword schemeFunction boolean?
|
||||||
|
syn keyword schemeFunction bytevector
|
||||||
|
syn keyword schemeFunction bytevector-append
|
||||||
|
syn keyword schemeFunction bytevector-append
|
||||||
|
syn keyword schemeFunction bytevector-copy
|
||||||
|
syn keyword schemeFunction bytevector-copy!
|
||||||
|
syn keyword schemeFunction bytevector-length
|
||||||
|
syn keyword schemeFunction bytevector-u8-ref
|
||||||
|
syn keyword schemeFunction bytevector-u8-set!
|
||||||
|
syn keyword schemeFunction bytevector?
|
||||||
|
syn keyword schemeFunction caaaar
|
||||||
|
syn keyword schemeFunction caaadr
|
||||||
|
syn keyword schemeFunction caaar
|
||||||
|
syn keyword schemeFunction caadar
|
||||||
|
syn keyword schemeFunction caaddr
|
||||||
|
syn keyword schemeFunction caadr
|
||||||
|
syn keyword schemeFunction caar
|
||||||
|
syn keyword schemeFunction cadaar
|
||||||
|
syn keyword schemeFunction cadadr
|
||||||
|
syn keyword schemeFunction cadar
|
||||||
|
syn keyword schemeFunction caddar
|
||||||
|
syn keyword schemeFunction cadddr
|
||||||
|
syn keyword schemeFunction caddr
|
||||||
|
syn keyword schemeFunction cadr
|
||||||
|
syn keyword schemeFunction call-with-current-continuation
|
||||||
|
syn keyword schemeFunction call-with-input-file
|
||||||
|
syn keyword schemeFunction call-with-output-file
|
||||||
|
syn keyword schemeFunction call-with-port
|
||||||
|
syn keyword schemeFunction call-with-values
|
||||||
|
syn keyword schemeFunction call/cc
|
||||||
|
syn keyword schemeFunction car
|
||||||
|
syn keyword schemeFunction cdaaar
|
||||||
|
syn keyword schemeFunction cdaadr
|
||||||
|
syn keyword schemeFunction cdaar
|
||||||
|
syn keyword schemeFunction cdadar
|
||||||
|
syn keyword schemeFunction cdaddr
|
||||||
|
syn keyword schemeFunction cdadr
|
||||||
|
syn keyword schemeFunction cdar
|
||||||
|
syn keyword schemeFunction cddaar
|
||||||
|
syn keyword schemeFunction cddadr
|
||||||
|
syn keyword schemeFunction cddar
|
||||||
|
syn keyword schemeFunction cdddar
|
||||||
|
syn keyword schemeFunction cddddr
|
||||||
|
syn keyword schemeFunction cdddr
|
||||||
|
syn keyword schemeFunction cddr
|
||||||
|
syn keyword schemeFunction cdr
|
||||||
|
syn keyword schemeFunction ceiling
|
||||||
|
syn keyword schemeFunction char->integer
|
||||||
|
syn keyword schemeFunction char-alphabetic?
|
||||||
|
syn keyword schemeFunction char-ci<=?
|
||||||
|
syn keyword schemeFunction char-ci<?
|
||||||
|
syn keyword schemeFunction char-ci=?
|
||||||
|
syn keyword schemeFunction char-ci>=?
|
||||||
|
syn keyword schemeFunction char-ci>?
|
||||||
|
syn keyword schemeFunction char-downcase
|
||||||
|
syn keyword schemeFunction char-foldcase
|
||||||
|
syn keyword schemeFunction char-lower-case?
|
||||||
|
syn keyword schemeFunction char-numeric?
|
||||||
|
syn keyword schemeFunction char-ready?
|
||||||
|
syn keyword schemeFunction char-upcase
|
||||||
|
syn keyword schemeFunction char-upper-case?
|
||||||
|
syn keyword schemeFunction char-whitespace?
|
||||||
|
syn keyword schemeFunction char<=?
|
||||||
|
syn keyword schemeFunction char<?
|
||||||
|
syn keyword schemeFunction char=?
|
||||||
|
syn keyword schemeFunction char>=?
|
||||||
|
syn keyword schemeFunction char>?
|
||||||
|
syn keyword schemeFunction char?
|
||||||
|
syn keyword schemeFunction close-input-port
|
||||||
|
syn keyword schemeFunction close-output-port
|
||||||
|
syn keyword schemeFunction close-port
|
||||||
|
syn keyword schemeFunction command-line
|
||||||
|
syn keyword schemeFunction complex?
|
||||||
|
syn keyword schemeFunction cons
|
||||||
|
syn keyword schemeFunction cos
|
||||||
|
syn keyword schemeFunction current-error-port
|
||||||
|
syn keyword schemeFunction current-input-port
|
||||||
|
syn keyword schemeFunction current-jiffy
|
||||||
|
syn keyword schemeFunction current-output-port
|
||||||
|
syn keyword schemeFunction current-second
|
||||||
|
syn keyword schemeFunction delete-file
|
||||||
|
syn keyword schemeFunction denominator
|
||||||
|
syn keyword schemeFunction digit-value
|
||||||
|
syn keyword schemeFunction display
|
||||||
|
syn keyword schemeFunction dynamic-wind
|
||||||
|
syn keyword schemeFunction emergency-exit
|
||||||
|
syn keyword schemeFunction environment
|
||||||
|
syn keyword schemeFunction eof-object
|
||||||
|
syn keyword schemeFunction eof-object?
|
||||||
|
syn keyword schemeFunction eq?
|
||||||
|
syn keyword schemeFunction equal?
|
||||||
|
syn keyword schemeFunction eqv?
|
||||||
|
syn keyword schemeFunction error
|
||||||
|
syn keyword schemeFunction error-object-irritants
|
||||||
|
syn keyword schemeFunction error-object-message
|
||||||
|
syn keyword schemeFunction error-object?
|
||||||
|
syn keyword schemeFunction eval
|
||||||
|
syn keyword schemeFunction even?
|
||||||
|
syn keyword schemeFunction exact
|
||||||
|
syn keyword schemeFunction exact->inexact
|
||||||
|
syn keyword schemeFunction exact-integer-sqrt
|
||||||
|
syn keyword schemeFunction exact-integer?
|
||||||
|
syn keyword schemeFunction exact?
|
||||||
|
syn keyword schemeFunction exit
|
||||||
|
syn keyword schemeFunction exp
|
||||||
|
syn keyword schemeFunction expt
|
||||||
|
syn keyword schemeFunction features
|
||||||
|
syn keyword schemeFunction file-error?
|
||||||
|
syn keyword schemeFunction file-exists?
|
||||||
|
syn keyword schemeFunction finite?
|
||||||
|
syn keyword schemeFunction floor
|
||||||
|
syn keyword schemeFunction floor-quotient
|
||||||
|
syn keyword schemeFunction floor-remainder
|
||||||
|
syn keyword schemeFunction floor/
|
||||||
|
syn keyword schemeFunction flush-output-port
|
||||||
|
syn keyword schemeFunction for-each
|
||||||
|
syn keyword schemeFunction force
|
||||||
|
syn keyword schemeFunction gcd
|
||||||
|
syn keyword schemeFunction get-environment-variable
|
||||||
|
syn keyword schemeFunction get-environment-variables
|
||||||
|
syn keyword schemeFunction get-output-bytevector
|
||||||
|
syn keyword schemeFunction get-output-string
|
||||||
|
syn keyword schemeFunction imag-part
|
||||||
|
syn keyword schemeFunction inexact
|
||||||
|
syn keyword schemeFunction inexact->exact
|
||||||
|
syn keyword schemeFunction inexact?
|
||||||
|
syn keyword schemeFunction infinite?
|
||||||
|
syn keyword schemeFunction input-port-open?
|
||||||
|
syn keyword schemeFunction input-port?
|
||||||
|
syn keyword schemeFunction integer->char
|
||||||
|
syn keyword schemeFunction integer?
|
||||||
|
syn keyword schemeFunction interaction-environment
|
||||||
|
syn keyword schemeFunction jiffies-per-second
|
||||||
|
syn keyword schemeFunction lcm
|
||||||
|
syn keyword schemeFunction length
|
||||||
|
syn keyword schemeFunction list
|
||||||
|
syn keyword schemeFunction list->string
|
||||||
|
syn keyword schemeFunction list->vector
|
||||||
|
syn keyword schemeFunction list-copy
|
||||||
|
syn keyword schemeFunction list-ref
|
||||||
|
syn keyword schemeFunction list-set!
|
||||||
|
syn keyword schemeFunction list-tail
|
||||||
|
syn keyword schemeFunction list?
|
||||||
|
syn keyword schemeFunction load
|
||||||
|
syn keyword schemeFunction log
|
||||||
|
syn keyword schemeFunction magnitude
|
||||||
|
syn keyword schemeFunction make-bytevector
|
||||||
|
syn keyword schemeFunction make-list
|
||||||
|
syn keyword schemeFunction make-parameter
|
||||||
|
syn keyword schemeFunction make-polar
|
||||||
|
syn keyword schemeFunction make-promise
|
||||||
|
syn keyword schemeFunction make-rectangular
|
||||||
|
syn keyword schemeFunction make-string
|
||||||
|
syn keyword schemeFunction make-vector
|
||||||
|
syn keyword schemeFunction map
|
||||||
|
syn keyword schemeFunction max
|
||||||
|
syn keyword schemeFunction member
|
||||||
|
syn keyword schemeFunction memq
|
||||||
|
syn keyword schemeFunction memv
|
||||||
|
syn keyword schemeFunction min
|
||||||
|
syn keyword schemeFunction modulo
|
||||||
|
syn keyword schemeFunction nan?
|
||||||
|
syn keyword schemeFunction negative?
|
||||||
|
syn keyword schemeFunction newline
|
||||||
|
syn keyword schemeFunction not
|
||||||
|
syn keyword schemeFunction null-environment
|
||||||
|
syn keyword schemeFunction null?
|
||||||
|
syn keyword schemeFunction number->string
|
||||||
|
syn keyword schemeFunction number?
|
||||||
|
syn keyword schemeFunction numerator
|
||||||
|
syn keyword schemeFunction odd?
|
||||||
|
syn keyword schemeFunction open-binary-input-file
|
||||||
|
syn keyword schemeFunction open-binary-output-file
|
||||||
|
syn keyword schemeFunction open-input-bytevector
|
||||||
|
syn keyword schemeFunction open-input-file
|
||||||
|
syn keyword schemeFunction open-input-string
|
||||||
|
syn keyword schemeFunction open-output-bytevector
|
||||||
|
syn keyword schemeFunction open-output-file
|
||||||
|
syn keyword schemeFunction open-output-string
|
||||||
|
syn keyword schemeFunction output-port-open?
|
||||||
|
syn keyword schemeFunction output-port?
|
||||||
|
syn keyword schemeFunction pair?
|
||||||
|
syn keyword schemeFunction peek-char
|
||||||
|
syn keyword schemeFunction peek-u8
|
||||||
|
syn keyword schemeFunction port?
|
||||||
|
syn keyword schemeFunction positive?
|
||||||
|
syn keyword schemeFunction procedure?
|
||||||
|
syn keyword schemeFunction promise?
|
||||||
|
syn keyword schemeFunction quotient
|
||||||
|
syn keyword schemeFunction raise
|
||||||
|
syn keyword schemeFunction raise-continuable
|
||||||
|
syn keyword schemeFunction rational?
|
||||||
|
syn keyword schemeFunction rationalize
|
||||||
|
syn keyword schemeFunction read
|
||||||
|
syn keyword schemeFunction read-bytevector
|
||||||
|
syn keyword schemeFunction read-bytevector!
|
||||||
|
syn keyword schemeFunction read-char
|
||||||
|
syn keyword schemeFunction read-error?
|
||||||
|
syn keyword schemeFunction read-line
|
||||||
|
syn keyword schemeFunction read-string
|
||||||
|
syn keyword schemeFunction read-u8
|
||||||
|
syn keyword schemeFunction real-part
|
||||||
|
syn keyword schemeFunction real?
|
||||||
|
syn keyword schemeFunction remainder
|
||||||
|
syn keyword schemeFunction reverse
|
||||||
|
syn keyword schemeFunction round
|
||||||
|
syn keyword schemeFunction scheme-report-environment
|
||||||
|
syn keyword schemeFunction set-car!
|
||||||
|
syn keyword schemeFunction set-cdr!
|
||||||
|
syn keyword schemeFunction sin
|
||||||
|
syn keyword schemeFunction sqrt
|
||||||
|
syn keyword schemeFunction square
|
||||||
|
syn keyword schemeFunction string
|
||||||
|
syn keyword schemeFunction string->list
|
||||||
|
syn keyword schemeFunction string->number
|
||||||
|
syn keyword schemeFunction string->symbol
|
||||||
|
syn keyword schemeFunction string->utf8
|
||||||
|
syn keyword schemeFunction string->vector
|
||||||
|
syn keyword schemeFunction string-append
|
||||||
|
syn keyword schemeFunction string-ci<=?
|
||||||
|
syn keyword schemeFunction string-ci<?
|
||||||
|
syn keyword schemeFunction string-ci=?
|
||||||
|
syn keyword schemeFunction string-ci>=?
|
||||||
|
syn keyword schemeFunction string-ci>?
|
||||||
|
syn keyword schemeFunction string-copy
|
||||||
|
syn keyword schemeFunction string-copy!
|
||||||
|
syn keyword schemeFunction string-downcase
|
||||||
|
syn keyword schemeFunction string-fill!
|
||||||
|
syn keyword schemeFunction string-foldcase
|
||||||
|
syn keyword schemeFunction string-for-each
|
||||||
|
syn keyword schemeFunction string-length
|
||||||
|
syn keyword schemeFunction string-map
|
||||||
|
syn keyword schemeFunction string-ref
|
||||||
|
syn keyword schemeFunction string-set!
|
||||||
|
syn keyword schemeFunction string-upcase
|
||||||
|
syn keyword schemeFunction string<=?
|
||||||
|
syn keyword schemeFunction string<?
|
||||||
|
syn keyword schemeFunction string=?
|
||||||
|
syn keyword schemeFunction string>=?
|
||||||
|
syn keyword schemeFunction string>?
|
||||||
|
syn keyword schemeFunction string?
|
||||||
|
syn keyword schemeFunction substring
|
||||||
|
syn keyword schemeFunction symbol->string
|
||||||
|
syn keyword schemeFunction symbol=?
|
||||||
|
syn keyword schemeFunction symbol?
|
||||||
|
syn keyword schemeFunction syntax-error
|
||||||
|
syn keyword schemeFunction tan
|
||||||
|
syn keyword schemeFunction textual-port?
|
||||||
|
syn keyword schemeFunction transcript-off
|
||||||
|
syn keyword schemeFunction transcript-on
|
||||||
|
syn keyword schemeFunction truncate
|
||||||
|
syn keyword schemeFunction truncate-quotient
|
||||||
|
syn keyword schemeFunction truncate-remainder
|
||||||
|
syn keyword schemeFunction truncate/
|
||||||
|
syn keyword schemeFunction u8-ready?
|
||||||
|
syn keyword schemeFunction utf8->string
|
||||||
|
syn keyword schemeFunction values
|
||||||
|
syn keyword schemeFunction vector
|
||||||
|
syn keyword schemeFunction vector->list
|
||||||
|
syn keyword schemeFunction vector->string
|
||||||
|
syn keyword schemeFunction vector-append
|
||||||
|
syn keyword schemeFunction vector-copy
|
||||||
|
syn keyword schemeFunction vector-copy!
|
||||||
|
syn keyword schemeFunction vector-fill!
|
||||||
|
syn keyword schemeFunction vector-for-each
|
||||||
|
syn keyword schemeFunction vector-length
|
||||||
|
syn keyword schemeFunction vector-map
|
||||||
|
syn keyword schemeFunction vector-ref
|
||||||
|
syn keyword schemeFunction vector-set!
|
||||||
|
syn keyword schemeFunction vector?
|
||||||
|
syn keyword schemeFunction with-exception-handler
|
||||||
|
syn keyword schemeFunction with-input-from-file
|
||||||
|
syn keyword schemeFunction with-output-to-file
|
||||||
|
syn keyword schemeFunction write
|
||||||
|
syn keyword schemeFunction write-bytevector
|
||||||
|
syn keyword schemeFunction write-char
|
||||||
|
syn keyword schemeFunction write-shared
|
||||||
|
syn keyword schemeFunction write-simple
|
||||||
|
syn keyword schemeFunction write-string
|
||||||
|
syn keyword schemeFunction write-u8
|
||||||
|
syn keyword schemeFunction zero?
|
||||||
|
|
||||||
" Synchronization and the wrapping up...
|
|
||||||
|
|
||||||
syn sync match matchPlace grouphere NONE "^[^ \t]"
|
|
||||||
" ... i.e. synchronize on a line that starts at the left margin
|
|
||||||
|
|
||||||
" Define the default highlighting.
|
|
||||||
" Only when an item doesn't have highlighting yet
|
|
||||||
|
|
||||||
hi def link schemeSyntax Statement
|
|
||||||
hi def link schemeFunc Function
|
|
||||||
|
|
||||||
hi def link schemeString String
|
|
||||||
hi def link schemeCharacter Character
|
|
||||||
hi def link schemeNumber Number
|
|
||||||
hi def link schemeBoolean Boolean
|
hi def link schemeBoolean Boolean
|
||||||
|
hi def link schemeCharacter Character
|
||||||
hi def link schemeDelimiter Delimiter
|
|
||||||
hi def link schemeConstant Constant
|
|
||||||
|
|
||||||
hi def link schemeComment Comment
|
hi def link schemeComment Comment
|
||||||
hi def link schemeMultilineComment Comment
|
hi def link schemeConstant Constant
|
||||||
|
hi def link schemeData Delimiter
|
||||||
|
hi def link schemeDatumComment Comment
|
||||||
|
hi def link schemeDatumCommentForm Comment
|
||||||
|
hi def link schemeDelimiter Delimiter
|
||||||
hi def link schemeError Error
|
hi def link schemeError Error
|
||||||
|
hi def link schemeExtraSyntax Underlined
|
||||||
|
hi def link schemeFunction Function
|
||||||
|
hi def link schemeIdentifier Normal
|
||||||
|
hi def link schemeImport PreProc
|
||||||
|
hi def link schemeImportKeyword PreProc
|
||||||
|
hi def link schemeKeyword Type
|
||||||
|
hi def link schemeLibrarySyntax PreProc
|
||||||
|
hi def link schemeMultilineComment Comment
|
||||||
|
hi def link schemeNumber Number
|
||||||
|
hi def link schemeParentheses Normal
|
||||||
|
hi def link schemeQuasiquote Delimiter
|
||||||
|
hi def link schemeQuote Delimiter
|
||||||
|
hi def link schemeSpecialSyntax Special
|
||||||
|
hi def link schemeString String
|
||||||
|
hi def link schemeSymbol Normal
|
||||||
|
hi def link schemeSyntax Statement
|
||||||
|
hi def link schemeSyntaxSyntax PreProc
|
||||||
|
hi def link schemeTypeSyntax Type
|
||||||
|
|
||||||
hi def link schemeExtSyntax Type
|
let b:did_scheme_syntax = 1
|
||||||
hi def link schemeExtFunc PreProc
|
|
||||||
|
|
||||||
hi def link schemeLang PreProc
|
if exists('b:is_chicken') || exists('g:is_chicken')
|
||||||
|
exe 'ru! syntax/chicken.vim'
|
||||||
|
endif
|
||||||
|
|
||||||
|
unlet b:did_scheme_syntax
|
||||||
let b:current_syntax = "scheme"
|
let b:current_syntax = 'scheme'
|
||||||
|
let &cpo = s:cpo
|
||||||
let &cpo = s:cpo_save
|
unlet s:cpo
|
||||||
unlet s:cpo_save
|
|
||||||
|
|||||||
@@ -2,15 +2,16 @@
|
|||||||
" Language: SNOBOL4
|
" Language: SNOBOL4
|
||||||
" Maintainer: Rafal Sulejman <rms@poczta.onet.pl>
|
" Maintainer: Rafal Sulejman <rms@poczta.onet.pl>
|
||||||
" Site: http://rms.republika.pl/vim/syntax/snobol4.vim
|
" Site: http://rms.republika.pl/vim/syntax/snobol4.vim
|
||||||
" Last change: 2006 may 10
|
" Last change: : Thu, 25 Jan 2018 14:21:24 +0100
|
||||||
" Changes:
|
" Changes:
|
||||||
|
" - system variables updated for SNOBOL4 2.0+
|
||||||
" - strict snobol4 mode (set snobol4_strict_mode to activate)
|
" - strict snobol4 mode (set snobol4_strict_mode to activate)
|
||||||
" - incorrect HL of dots in strings corrected
|
" - incorrect HL of dots in strings corrected
|
||||||
" - incorrect HL of dot-variables in parens corrected
|
" - incorrect HL of dot-variables in parens corrected
|
||||||
" - one character labels weren't displayed correctly.
|
" - one character labels weren't displayed correctly.
|
||||||
" - nonexistent Snobol4 keywords displayed as errors.
|
" - nonexistent Snobol4 keywords displayed as errors.
|
||||||
|
|
||||||
" quit when a syntax file was already loaded
|
" Quit when a syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@@ -59,7 +60,7 @@ syn match snobol4Constant /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1
|
|||||||
syn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError
|
syn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError
|
||||||
syn match snobol4Number "\<\d*\(\.\d\d*\)*\>"
|
syn match snobol4Number "\<\d*\(\.\d\d*\)*\>"
|
||||||
syn match snobol4BogusSysVar "&\w\{1,}"
|
syn match snobol4BogusSysVar "&\w\{1,}"
|
||||||
syn match snobol4SysVar "&\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)"
|
syn match snobol4SysVar "&\<\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|digits\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)\>"
|
||||||
syn match snobol4ExtSysVar "&\(gtrace\|line\|file\|lastline\|lastfile\)"
|
syn match snobol4ExtSysVar "&\(gtrace\|line\|file\|lastline\|lastfile\)"
|
||||||
syn match snobol4Label "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*"
|
syn match snobol4Label "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*"
|
||||||
syn match snobol4Comment "\(^\|;\)\([\*\|!;#].*$\)"
|
syn match snobol4Comment "\(^\|;\)\([\*\|!;#].*$\)"
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ syn keyword vimErrSetting contained bioskey biosk conskey consk autoprint beauti
|
|||||||
|
|
||||||
" AutoCmd Events {{{2
|
" AutoCmd Events {{{2
|
||||||
syn case ignore
|
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 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 TextChangedP User VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave WinNew
|
||||||
|
|
||||||
" Highlight commonly used Groupnames {{{2
|
" 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
|
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
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
use. That means that you need to execute the commands to learn them
|
use. That means that you need to execute the commands to learn them
|
||||||
properly. If you only read the text, you will forget the commands!
|
properly. If you only read the text, you will forget the commands!
|
||||||
|
|
||||||
Now, make sure that your Shift-Lock key is NOT depressed and press
|
Now, make sure that your Caps-Lock key is NOT depressed and press
|
||||||
the j key enough times to move the cursor so that Lesson 1.1
|
the j key enough times to move the cursor so that Lesson 1.1
|
||||||
completely fills the screen.
|
completely fills the screen.
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
To znamen<EFBFBD>, <EFBFBD>e je pot<EFBFBD>eba si p<EFBFBD><EFBFBD>kazy vyzkou<EFBFBD>et pro jejich spr<EFBFBD>vn<EFBFBD>
|
To znamen<EFBFBD>, <EFBFBD>e je pot<EFBFBD>eba si p<EFBFBD><EFBFBD>kazy vyzkou<EFBFBD>et pro jejich spr<EFBFBD>vn<EFBFBD>
|
||||||
nau<EFBFBD>en<EFBFBD>. Pokud si jen <EFBFBD>te<EFBFBD> text, p<EFBFBD><EFBFBD>kazy zapomene<EFBFBD>!
|
nau<EFBFBD>en<EFBFBD>. Pokud si jen <EFBFBD>te<EFBFBD> text, p<EFBFBD><EFBFBD>kazy zapomene<EFBFBD>!
|
||||||
|
|
||||||
Nyn<EFBFBD> se p<EFBFBD>esv<EFBFBD>d<EFBFBD>te, <EFBFBD>e Shift-Lock NEN<EFBFBD> stla<EFBFBD>en<EFBFBD> a n<EFBFBD>kolikr<EFBFBD>t stiskn<EFBFBD>te
|
Nyn<EFBFBD> se p<EFBFBD>esv<EFBFBD>d<EFBFBD>te, <EFBFBD>e Caps-Lock NEN<EFBFBD> stla<EFBFBD>en<EFBFBD> a n<EFBFBD>kolikr<EFBFBD>t stiskn<EFBFBD>te
|
||||||
kl<EFBFBD>vesu j aby se kurzor posunul natolik, <EFBFBD>e lekce 1.1 zapln<EFBFBD> celou
|
kl<EFBFBD>vesu j aby se kurzor posunul natolik, <EFBFBD>e lekce 1.1 zapln<EFBFBD> celou
|
||||||
obrazovku.
|
obrazovku.
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
To znamen<65>, <20>e je pot<6F>eba si p<><70>kazy vyzkou<6F>et pro jejich spr<70>vn<76>
|
To znamen<65>, <20>e je pot<6F>eba si p<><70>kazy vyzkou<6F>et pro jejich spr<70>vn<76>
|
||||||
nau<61>en<65>. Pokud si jen <20>te<74> text, p<><70>kazy zapomene<6E>!
|
nau<61>en<65>. Pokud si jen <20>te<74> text, p<><70>kazy zapomene<6E>!
|
||||||
|
|
||||||
Nyn<79> se p<>esv<73>d<EFBFBD>te, <20>e Shift-Lock NEN<45> stla<6C>en<65> a n<>kolikr<6B>t stiskn<6B>te
|
Nyn<79> se p<>esv<73>d<EFBFBD>te, <20>e Caps-Lock NEN<45> stla<6C>en<65> a n<>kolikr<6B>t stiskn<6B>te
|
||||||
kl<6B>vesu j aby se kurzor posunul natolik, <20>e lekce 1.1 zapln<6C> celou
|
kl<6B>vesu j aby se kurzor posunul natolik, <20>e lekce 1.1 zapln<6C> celou
|
||||||
obrazovku.
|
obrazovku.
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
To znamená, že je potřeba si příkazy vyzkoušet pro jejich správné
|
To znamená, že je potřeba si příkazy vyzkoušet pro jejich správné
|
||||||
naučení. Pokud si jen čteš text, příkazy zapomeneš!
|
naučení. Pokud si jen čteš text, příkazy zapomeneš!
|
||||||
|
|
||||||
Nyní se přesvědčte, že Shift-Lock NENÍ stlačený a několikrát stiskněte
|
Nyní se přesvědčte, že Caps-Lock NENÍ stlačený a několikrát stiskněte
|
||||||
klávesu j aby se kurzor posunul natolik, že lekce 1.1 zaplní celou
|
klávesu j aby se kurzor posunul natolik, že lekce 1.1 zaplní celou
|
||||||
obrazovku.
|
obrazovku.
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||||
|
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Shift-Lock <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Caps-Lock <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> j <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> j <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1.1 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1.1 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嫜 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD> <20>ៜ<EFBFBD><E19F9C> <20>੫<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E19D9C> <20>椦 <20><>
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嫜 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD> <20>ៜ<EFBFBD><E19F9C> <20>੫<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E19D9C> <20>椦 <20><>
|
||||||
<20><>壜<EFBFBD><E5A39C>, <20><> <20><><EFBFBD> <20><><EFBFBD>ᩜ<EFBFBD><E1A99C>!
|
<20><>壜<EFBFBD><E5A39C>, <20><> <20><><EFBFBD> <20><><EFBFBD>ᩜ<EFBFBD><E1A99C>!
|
||||||
|
|
||||||
<20>騘, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嫜 櫠 <20><> <20><>㡫<EFBFBD><E3A1AB> Shift-Lock <20><><EFBFBD> <20>夘<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⤦ <20><><EFBFBD>
|
<20>騘, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嫜 櫠 <20><> <20><>㡫<EFBFBD><E3A1AB> Caps-Lock <20><><EFBFBD> <20>夘<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⤦ <20><><EFBFBD>
|
||||||
<20><><EFBFBD>㩫<EFBFBD> <20><> <20><>㡫<EFBFBD><E3A1AB> j <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㩜<EFBFBD><E3A99C> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⫩<>
|
<20><><EFBFBD>㩫<EFBFBD> <20><> <20><>㡫<EFBFBD><E3A1AB> j <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㩜<EFBFBD><E3A99C> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⫩<>
|
||||||
驫<> <20><> <20><EFBFBD><E19F9E> 1.1 <20><> <20><><EFBFBD>婜<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>椞.
|
驫<> <20><> <20><EFBFBD><E19F9E> 1.1 <20><> <20><><EFBFBD>婜<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>椞.
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
εκτελείτε τις εντολές για να τις μάθετε σωστά. Αν διαβάζετε μόνο το
|
εκτελείτε τις εντολές για να τις μάθετε σωστά. Αν διαβάζετε μόνο το
|
||||||
κείμενο, θα τις ξεχάσετε!
|
κείμενο, θα τις ξεχάσετε!
|
||||||
|
|
||||||
Τώρα, βεβαιωθείτε ότι το πλήκτρο Shift-Lock ΔΕΝ είναι πατημένο και
|
Τώρα, βεβαιωθείτε ότι το πλήκτρο Caps-Lock ΔΕΝ είναι πατημένο και
|
||||||
πατήστε το πλήκτρο j αρκετές φορές για να μετακινήσετε τον δρομέα έτσι
|
πατήστε το πλήκτρο j αρκετές φορές για να μετακινήσετε τον δρομέα έτσι
|
||||||
ώστε το Μάθημα 1.1 να γεμίσει πλήρως την οθόνη.
|
ώστε το Μάθημα 1.1 να γεμίσει πλήρως την οθόνη.
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
pou<6F><75>van<61>m. To znamen<65>, <20>e je potrebn<62> si pr<70>kazy vysk<73><6B>a<EFBFBD>, aby bolo
|
pou<6F><75>van<61>m. To znamen<65>, <20>e je potrebn<62> si pr<70>kazy vysk<73><6B>a<EFBFBD>, aby bolo
|
||||||
u<>enie spr<70>vne. Ak len <20>itas text, pr<70>kazy zabudne<6E>!
|
u<>enie spr<70>vne. Ak len <20>itas text, pr<70>kazy zabudne<6E>!
|
||||||
|
|
||||||
Presved<65> sa, <20>e Shift-Lock NIEJE stla<6C>en<65> a stla<6C>t kl<6B>vesu
|
Presved<65> sa, <20>e Caps-Lock NIEJE stla<6C>en<65> a stla<6C>t kl<6B>vesu
|
||||||
j nieko<6B>ko kr<6B>t, aby sa kurzor posunul nato<74>ko, <20>e lekcia 1.1
|
j nieko<6B>ko kr<6B>t, aby sa kurzor posunul nato<74>ko, <20>e lekcia 1.1
|
||||||
celkom zapln<6C> obrazovku.
|
celkom zapln<6C> obrazovku.
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
pou<6F><75>van<61>m. To znamen<65>, <20>e je potrebn<62> si pr<70>kazy vysk<73><6B>a<EFBFBD>, aby bolo
|
pou<6F><75>van<61>m. To znamen<65>, <20>e je potrebn<62> si pr<70>kazy vysk<73><6B>a<EFBFBD>, aby bolo
|
||||||
u<>enie spr<70>vne. Ak len <20>itas text, pr<70>kazy zabudne<6E>!
|
u<>enie spr<70>vne. Ak len <20>itas text, pr<70>kazy zabudne<6E>!
|
||||||
|
|
||||||
Presved<65> sa, <20>e Shift-Lock NIEJE stla<6C>en<65> a stla<6C>t kl<6B>vesu
|
Presved<65> sa, <20>e Caps-Lock NIEJE stla<6C>en<65> a stla<6C>t kl<6B>vesu
|
||||||
j nieko<6B>ko kr<6B>t, aby sa kurzor posunul nato<74>ko, <20>e lekcia 1.1
|
j nieko<6B>ko kr<6B>t, aby sa kurzor posunul nato<74>ko, <20>e lekcia 1.1
|
||||||
celkom zapln<6C> obrazovku.
|
celkom zapln<6C> obrazovku.
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
používaním. To znamená, že je potrebné si príkazy vyskúšať, aby bolo
|
používaním. To znamená, že je potrebné si príkazy vyskúšať, aby bolo
|
||||||
učenie správne. Ak len čitas text, príkazy zabudneš!
|
učenie správne. Ak len čitas text, príkazy zabudneš!
|
||||||
|
|
||||||
Presvedč sa, že Shift-Lock NIEJE stlačený a stlačt klávesu
|
Presvedč sa, že Caps-Lock NIEJE stlačený a stlačt klávesu
|
||||||
j niekoľko krát, aby sa kurzor posunul natoľko, že lekcia 1.1
|
j niekoľko krát, aby sa kurzor posunul natoľko, že lekcia 1.1
|
||||||
celkom zaplní obrazovku.
|
celkom zaplní obrazovku.
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
anlama gelir; komutlar<61> <20><>renmek i<>in do<64>ru bir <20>ekilde <20>al<61><6C>t<EFBFBD>rman<61>z gerekir.
|
anlama gelir; komutlar<61> <20><>renmek i<>in do<64>ru bir <20>ekilde <20>al<61><6C>t<EFBFBD>rman<61>z gerekir.
|
||||||
E<>er sadece yaz<61>lanlar<61> okursan<61>z komutlar<61> unutursunuz.
|
E<>er sadece yaz<61>lanlar<61> okursan<61>z komutlar<61> unutursunuz.
|
||||||
|
|
||||||
<20>imdi Shift-Lock tu<74>lar<61>n<EFBFBD>z<EFBFBD>n bas<61>l<EFBFBD> olmad<61><64><EFBFBD>na emin olun ve Ders 1.1'in
|
<20>imdi Caps-Lock tu<74>lar<61>n<EFBFBD>z<EFBFBD>n bas<61>l<EFBFBD> olmad<61><64><EFBFBD>na emin olun ve Ders 1.1'in
|
||||||
ekran<61> tamamen doldurmas<61> i<>in j tu<74>una yeterli miktarda bas<61>n.
|
ekran<61> tamamen doldurmas<61> i<>in j tu<74>una yeterli miktarda bas<61>n.
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Ders 1.1: <20>MLEC<45> HAREKET ETT<54>RMEK
|
Ders 1.1: <20>MLEC<45> HAREKET ETT<54>RMEK
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
anlama gelir; komutları öğrenmek için doğru bir şekilde çalıştırmanız gerekir.
|
anlama gelir; komutları öğrenmek için doğru bir şekilde çalıştırmanız gerekir.
|
||||||
Eğer sadece yazılanları okursanız komutları unutursunuz.
|
Eğer sadece yazılanları okursanız komutları unutursunuz.
|
||||||
|
|
||||||
Şimdi Shift-Lock tuşlarınızın basılı olmadığına emin olun ve Ders 1.1'in
|
Şimdi Caps-Lock tuşlarınızın basılı olmadığına emin olun ve Ders 1.1'in
|
||||||
ekranı tamamen doldurması için j tuşuna yeterli miktarda basın.
|
ekranı tamamen doldurması için j tuşuna yeterli miktarda basın.
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Ders 1.1: İMLECİ HAREKET ETTİRMEK
|
Ders 1.1: İMLECİ HAREKET ETTİRMEK
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
use. That means that you need to execute the commands to learn them
|
use. That means that you need to execute the commands to learn them
|
||||||
properly. If you only read the text, you will forget the commands!
|
properly. If you only read the text, you will forget the commands!
|
||||||
|
|
||||||
Now, make sure that your Shift-Lock key is NOT depressed and press
|
Now, make sure that your Caps-Lock key is NOT depressed and press
|
||||||
the j key enough times to move the cursor so that Lesson 1.1
|
the j key enough times to move the cursor so that Lesson 1.1
|
||||||
completely fills the screen.
|
completely fills the screen.
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@@ -289,7 +289,8 @@ MSVC_MAJOR = ($(MSVCVER) / 100 - 6)
|
|||||||
MSVCRT_VER = ($(MSVCVER) / 10 - 60)
|
MSVCRT_VER = ($(MSVCVER) / 10 - 60)
|
||||||
# Visual C++ 2017 needs special handling
|
# Visual C++ 2017 needs special handling
|
||||||
# it has an _MSC_VER of 1910->14.1, but is actually v15 with runtime v140
|
# it has an _MSC_VER of 1910->14.1, but is actually v15 with runtime v140
|
||||||
!elseif $(MSVCVER) == 1910
|
# TODO: what's the maximum value?
|
||||||
|
!elseif $(MSVCVER) >= 1910
|
||||||
MSVC_MAJOR = 15
|
MSVC_MAJOR = 15
|
||||||
MSVCRT_VER = 140
|
MSVCRT_VER = 140
|
||||||
!else
|
!else
|
||||||
@@ -1179,6 +1180,13 @@ LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
|
|||||||
!endif
|
!endif
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if $(MSVC_MAJOR) >= 11 && "$(CPU)" == "AMD64" && "$(GUI)" == "yes"
|
||||||
|
# This option is required for VC2012 or later so that 64-bit gvim can
|
||||||
|
# accept D&D from 32-bit applications. NOTE: This disables 64-bit ASLR,
|
||||||
|
# therefore the security level becomes as same as VC2010.
|
||||||
|
LINKARGS1 = $(LINKARGS1) /HIGHENTROPYVA:NO
|
||||||
|
!endif
|
||||||
|
|
||||||
all: $(VIM).exe \
|
all: $(VIM).exe \
|
||||||
vimrun.exe \
|
vimrun.exe \
|
||||||
install.exe \
|
install.exe \
|
||||||
|
|||||||
18
src/Makefile
18
src/Makefile
@@ -651,12 +651,16 @@ LINT_OPTIONS = -beprxzF
|
|||||||
|
|
||||||
# PROFILING - Uncomment the next two lines to do profiling with gcc and gprof.
|
# PROFILING - Uncomment the next two lines to do profiling with gcc and gprof.
|
||||||
# Might not work with GUI or Perl.
|
# Might not work with GUI or Perl.
|
||||||
# For unknown reasons adding "-lc" fixes a linking problem with some versions
|
|
||||||
# of GCC. That's probably a bug in the "-pg" implementation.
|
|
||||||
# After running Vim see the profile result with: gprof vim gmon.out | vim -
|
# After running Vim see the profile result with: gprof vim gmon.out | vim -
|
||||||
# Need to recompile everything after changing this: "make clean" "make".
|
# Need to recompile everything after changing this: "make clean" "make".
|
||||||
#PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
|
#PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
|
||||||
#PROFILE_LIBS = -pg
|
#PROFILE_LIBS = -pg
|
||||||
|
|
||||||
|
# GCC 5 and later need the -no-pie argument.
|
||||||
|
#PROFILE_LIBS = -pg -no-pie
|
||||||
|
|
||||||
|
# For unknown reasons adding "-lc" fixes a linking problem with some versions
|
||||||
|
# of GCC. That's probably a bug in the "-pg" implementation.
|
||||||
#PROFILE_LIBS = -pg -lc
|
#PROFILE_LIBS = -pg -lc
|
||||||
|
|
||||||
|
|
||||||
@@ -2101,10 +2105,10 @@ run_message_test: $(MESSAGE_TEST_TARGET)
|
|||||||
# These do not depend on the executable, compile it when needed.
|
# These do not depend on the executable, compile it when needed.
|
||||||
test1 \
|
test1 \
|
||||||
test_eval \
|
test_eval \
|
||||||
test3 test11 test14 test15 test17 \
|
test3 test11 test14 test17 \
|
||||||
test29 test30 test36 test37 test39 \
|
test29 test30 test37 test39 \
|
||||||
test42 test44 test48 test49 \
|
test42 test44 test48 test49 \
|
||||||
test50 test52 test59 \
|
test52 test59 \
|
||||||
test64 test69 \
|
test64 test69 \
|
||||||
test70 test72 \
|
test70 test72 \
|
||||||
test85 test86 test87 test88 \
|
test85 test86 test87 test88 \
|
||||||
@@ -2127,6 +2131,7 @@ test_arglist \
|
|||||||
test_cd \
|
test_cd \
|
||||||
test_cdo \
|
test_cdo \
|
||||||
test_changedtick \
|
test_changedtick \
|
||||||
|
test_changelist \
|
||||||
test_channel \
|
test_channel \
|
||||||
test_charsearch \
|
test_charsearch \
|
||||||
test_charsearch_utf8 \
|
test_charsearch_utf8 \
|
||||||
@@ -2147,6 +2152,7 @@ test_arglist \
|
|||||||
test_edit \
|
test_edit \
|
||||||
test_erasebackword \
|
test_erasebackword \
|
||||||
test_escaped_glob \
|
test_escaped_glob \
|
||||||
|
test_eval_stuff \
|
||||||
test_ex_undo \
|
test_ex_undo \
|
||||||
test_ex_z \
|
test_ex_z \
|
||||||
test_exec_while_if \
|
test_exec_while_if \
|
||||||
@@ -2197,6 +2203,7 @@ test_arglist \
|
|||||||
test_job_fails \
|
test_job_fails \
|
||||||
test_join \
|
test_join \
|
||||||
test_json \
|
test_json \
|
||||||
|
test_jumplist \
|
||||||
test_jumps \
|
test_jumps \
|
||||||
test_lambda \
|
test_lambda \
|
||||||
test_langmap \
|
test_langmap \
|
||||||
@@ -2878,6 +2885,7 @@ shadow: runtime pixmaps
|
|||||||
../../testdir/pyxfile \
|
../../testdir/pyxfile \
|
||||||
../../testdir/sautest \
|
../../testdir/sautest \
|
||||||
../../testdir/samples \
|
../../testdir/samples \
|
||||||
|
../../testdir/dumps \
|
||||||
../../testdir/test83-tags? \
|
../../testdir/test83-tags? \
|
||||||
../../testdir/*.ok .
|
../../testdir/*.ok .
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ You might also want to read ":help development".
|
|||||||
|
|
||||||
JUMPING AROUND
|
JUMPING AROUND
|
||||||
|
|
||||||
First of all, use ":make tags" to generate a tags file, so that you can use
|
First of all, use ":make tags" to generate a tags file, so that you can jump
|
||||||
the ":tag" command to jump around the source code.
|
around in the source code.
|
||||||
|
|
||||||
To jump to a function or variable definition, move the cursor on the name and
|
To jump to a function or variable definition, move the cursor on the name and
|
||||||
use the CTRL-] command. Use CTRL-T or CTRL-O to jump back.
|
use the CTRL-] command. Use CTRL-T or CTRL-O to jump back.
|
||||||
@@ -43,6 +43,21 @@ Most code can be found in a file with an obvious name (incomplete list):
|
|||||||
window.c handling split windows
|
window.c handling split windows
|
||||||
|
|
||||||
|
|
||||||
|
DEBUGGING
|
||||||
|
|
||||||
|
If you have a reasonable recent version of gdb, you can use the :Termdebug
|
||||||
|
command to debug Vim. See ":help :Termdebug".
|
||||||
|
|
||||||
|
When something is time critical or stepping through code is a hassle, use the
|
||||||
|
channel logging to create a time-stamped log file. Add lines to the code like
|
||||||
|
this:
|
||||||
|
ch_log(NULL, "Value is now %02x", value);
|
||||||
|
After compiling and starting Vim, do:
|
||||||
|
:call ch_logfile('debuglog', 'w')
|
||||||
|
And edit "debuglog" to see what happens. The channel functions already have
|
||||||
|
ch_log() calls, thus you always see that in the log.
|
||||||
|
|
||||||
|
|
||||||
IMPORTANT VARIABLES
|
IMPORTANT VARIABLES
|
||||||
|
|
||||||
The current mode is stored in "State". The values it can have are NORMAL,
|
The current mode is stored in "State". The values it can have are NORMAL,
|
||||||
|
|||||||
140
src/auto/configure
vendored
140
src/auto/configure
vendored
@@ -1513,7 +1513,7 @@ Optional Features:
|
|||||||
--disable-icon-cache-update update disabled
|
--disable-icon-cache-update update disabled
|
||||||
--disable-desktop-database-update update disabled
|
--disable-desktop-database-update update disabled
|
||||||
--disable-largefile omit support for large files
|
--disable-largefile omit support for large files
|
||||||
--disable-acl Don't check for ACL support.
|
--disable-acl No check for ACL support.
|
||||||
--disable-gpm Don't use gpm (Linux mouse daemon).
|
--disable-gpm Don't use gpm (Linux mouse daemon).
|
||||||
--disable-sysmouse Don't use sysmouse (mouse in *BSD console).
|
--disable-sysmouse Don't use sysmouse (mouse in *BSD console).
|
||||||
--disable-nls Don't support NLS (gettext()).
|
--disable-nls Don't support NLS (gettext()).
|
||||||
@@ -8887,8 +8887,9 @@ $as_echo "gtk test disabled" >&6; }
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test "X$PKG_CONFIG" = "X"; then
|
if test "X$PKG_CONFIG" = "X"; then
|
||||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
if test -n "$ac_tool_prefix"; then
|
||||||
set dummy pkg-config; ac_word=$2
|
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
|
||||||
|
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
$as_echo_n "checking for $ac_word... " >&6; }
|
||||||
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
||||||
@@ -8914,7 +8915,6 @@ done
|
|||||||
done
|
done
|
||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@@ -8928,6 +8928,63 @@ $as_echo "no" >&6; }
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
||||||
|
ac_pt_PKG_CONFIG=$PKG_CONFIG
|
||||||
|
# Extract the first word of "pkg-config", so it can be a program name with args.
|
||||||
|
set dummy pkg-config; ac_word=$2
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||||
|
$as_echo_n "checking for $ac_word... " >&6; }
|
||||||
|
if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
case $ac_pt_PKG_CONFIG in
|
||||||
|
[\\/]* | ?:[\\/]*)
|
||||||
|
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
test -z "$as_dir" && as_dir=.
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
|
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||||
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
||||||
|
if test -n "$ac_pt_PKG_CONFIG"; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
|
||||||
|
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$ac_pt_PKG_CONFIG" = x; then
|
||||||
|
PKG_CONFIG="no"
|
||||||
|
else
|
||||||
|
case $cross_compiling:$ac_tool_warned in
|
||||||
|
yes:)
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||||||
|
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||||||
|
ac_tool_warned=yes ;;
|
||||||
|
esac
|
||||||
|
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$PKG_CONFIG" != "xno"; then
|
if test "x$PKG_CONFIG" != "xno"; then
|
||||||
@@ -9181,8 +9238,9 @@ $as_echo "gtk test disabled" >&6; }
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test "X$PKG_CONFIG" = "X"; then
|
if test "X$PKG_CONFIG" = "X"; then
|
||||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
if test -n "$ac_tool_prefix"; then
|
||||||
set dummy pkg-config; ac_word=$2
|
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
|
||||||
|
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
$as_echo_n "checking for $ac_word... " >&6; }
|
||||||
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
||||||
@@ -9208,7 +9266,6 @@ done
|
|||||||
done
|
done
|
||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@@ -9222,6 +9279,63 @@ $as_echo "no" >&6; }
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
||||||
|
ac_pt_PKG_CONFIG=$PKG_CONFIG
|
||||||
|
# Extract the first word of "pkg-config", so it can be a program name with args.
|
||||||
|
set dummy pkg-config; ac_word=$2
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||||
|
$as_echo_n "checking for $ac_word... " >&6; }
|
||||||
|
if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
case $ac_pt_PKG_CONFIG in
|
||||||
|
[\\/]* | ?:[\\/]*)
|
||||||
|
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
test -z "$as_dir" && as_dir=.
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
|
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||||
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
||||||
|
if test -n "$ac_pt_PKG_CONFIG"; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
|
||||||
|
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$ac_pt_PKG_CONFIG" = x; then
|
||||||
|
PKG_CONFIG="no"
|
||||||
|
else
|
||||||
|
case $cross_compiling:$ac_tool_warned in
|
||||||
|
yes:)
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||||||
|
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||||||
|
ac_tool_warned=yes ;;
|
||||||
|
esac
|
||||||
|
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$PKG_CONFIG" != "xno"; then
|
if test "x$PKG_CONFIG" != "xno"; then
|
||||||
@@ -14200,6 +14314,18 @@ $as_echo "no" >&6; }
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need to force -D_FILE_OFFSET_BITS=64" >&5
|
||||||
|
$as_echo_n "checking whether we need to force -D_FILE_OFFSET_BITS=64... " >&6; }
|
||||||
|
if echo "$CFLAGS $LUA_CFLAGS $MZSCHEME_CFLAGS $PERL_CFLAGS $PYTHON_GETPATH_CFLAGS $PYTHON_CFLAGS $PYTHON3_CFLAGS $TCL_CFLAGS $RUBY_CFLAGS $GTK_CFLAGS" | grep -q D_FILE_OFFSET_BITS 2>/dev/null; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||||
|
$as_echo "yes" >&6; }
|
||||||
|
$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h
|
||||||
|
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5
|
||||||
$as_echo_n "checking linker --as-needed support... " >&6; }
|
$as_echo_n "checking linker --as-needed support... " >&6; }
|
||||||
LINK_AS_NEEDED=
|
LINK_AS_NEEDED=
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ get_beval_info(
|
|||||||
* Show a balloon with "mesg" or "list".
|
* Show a balloon with "mesg" or "list".
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
post_balloon(BalloonEval *beval UNUSED, char_u *mesg, list_T *list)
|
post_balloon(BalloonEval *beval UNUSED, char_u *mesg, list_T *list UNUSED)
|
||||||
{
|
{
|
||||||
# ifdef FEAT_BEVAL_TERM
|
# ifdef FEAT_BEVAL_TERM
|
||||||
# ifdef FEAT_GUI
|
# ifdef FEAT_GUI
|
||||||
|
|||||||
208
src/buffer.c
208
src/buffer.c
@@ -63,9 +63,7 @@ static void insert_sign(buf_T *buf, signlist_T *prev, signlist_T *next, int id,
|
|||||||
static char *msg_loclist = N_("[Location List]");
|
static char *msg_loclist = N_("[Location List]");
|
||||||
static char *msg_qflist = N_("[Quickfix List]");
|
static char *msg_qflist = N_("[Quickfix List]");
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
static char *e_auabort = N_("E855: Autocommands caused command to abort");
|
static char *e_auabort = N_("E855: Autocommands caused command to abort");
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Number of times free_buffer() was called. */
|
/* Number of times free_buffer() was called. */
|
||||||
static int buf_free_count = 0;
|
static int buf_free_count = 0;
|
||||||
@@ -116,7 +114,6 @@ read_buffer(
|
|||||||
else if (retval == OK)
|
else if (retval == OK)
|
||||||
unchanged(curbuf, FALSE);
|
unchanged(curbuf, FALSE);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (retval == OK)
|
if (retval == OK)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
@@ -126,7 +123,6 @@ read_buffer(
|
|||||||
apply_autocmds(EVENT_STDINREADPOST, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_STDINREADPOST, NULL, NULL, FALSE, curbuf);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@@ -143,9 +139,7 @@ open_buffer(
|
|||||||
int flags) /* extra flags for readfile() */
|
int flags) /* extra flags for readfile() */
|
||||||
{
|
{
|
||||||
int retval = OK;
|
int retval = OK;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
bufref_T old_curbuf;
|
bufref_T old_curbuf;
|
||||||
#endif
|
|
||||||
#ifdef FEAT_SYN_HL
|
#ifdef FEAT_SYN_HL
|
||||||
long old_tw = curbuf->b_p_tw;
|
long old_tw = curbuf->b_p_tw;
|
||||||
#endif
|
#endif
|
||||||
@@ -188,12 +182,10 @@ open_buffer(
|
|||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* The autocommands in readfile() may change the buffer, but only AFTER
|
/* The autocommands in readfile() may change the buffer, but only AFTER
|
||||||
* reading the file. */
|
* reading the file. */
|
||||||
set_bufref(&old_curbuf, curbuf);
|
set_bufref(&old_curbuf, curbuf);
|
||||||
modified_was_set = FALSE;
|
modified_was_set = FALSE;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* mark cursor position as being invalid */
|
/* mark cursor position as being invalid */
|
||||||
curwin->w_valid = 0;
|
curwin->w_valid = 0;
|
||||||
@@ -289,11 +281,9 @@ open_buffer(
|
|||||||
* the changed flag. Unless in readonly mode: "ls | gview -".
|
* the changed flag. Unless in readonly mode: "ls | gview -".
|
||||||
* When interrupted and 'cpoptions' contains 'i' set changed flag. */
|
* When interrupted and 'cpoptions' contains 'i' set changed flag. */
|
||||||
if ((got_int && vim_strchr(p_cpo, CPO_INTMOD) != NULL)
|
if ((got_int && vim_strchr(p_cpo, CPO_INTMOD) != NULL)
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
|| modified_was_set /* ":set modified" used in autocmd */
|
|| modified_was_set /* ":set modified" used in autocmd */
|
||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
|| (aborting() && vim_strchr(p_cpo, CPO_INTMOD) != NULL)
|
|| (aborting() && vim_strchr(p_cpo, CPO_INTMOD) != NULL)
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
changed();
|
changed();
|
||||||
@@ -315,7 +305,6 @@ open_buffer(
|
|||||||
foldUpdateAll(curwin);
|
foldUpdateAll(curwin);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* need to set w_topline, unless some autocommand already did that. */
|
/* need to set w_topline, unless some autocommand already did that. */
|
||||||
if (!(curwin->w_valid & VALID_TOPLINE))
|
if (!(curwin->w_valid & VALID_TOPLINE))
|
||||||
{
|
{
|
||||||
@@ -328,12 +317,10 @@ open_buffer(
|
|||||||
apply_autocmds_retval(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf, &retval);
|
apply_autocmds_retval(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf, &retval);
|
||||||
#else
|
#else
|
||||||
apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (retval == OK)
|
if (retval == OK)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/*
|
/*
|
||||||
* The autocommands may have changed the current buffer. Apply the
|
* The autocommands may have changed the current buffer. Apply the
|
||||||
* modelines to the correct buffer, if it still exists and is loaded.
|
* modelines to the correct buffer, if it still exists and is loaded.
|
||||||
@@ -344,11 +331,9 @@ open_buffer(
|
|||||||
|
|
||||||
/* Go to the buffer that was opened. */
|
/* Go to the buffer that was opened. */
|
||||||
aucmd_prepbuf(&aco, old_curbuf.br_buf);
|
aucmd_prepbuf(&aco, old_curbuf.br_buf);
|
||||||
#endif
|
|
||||||
do_modelines(0);
|
do_modelines(0);
|
||||||
curbuf->b_flags &= ~(BF_CHECK_RO | BF_NEVERLOADED);
|
curbuf->b_flags &= ~(BF_CHECK_RO | BF_NEVERLOADED);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
apply_autocmds_retval(EVENT_BUFWINENTER, NULL, NULL, FALSE, curbuf,
|
apply_autocmds_retval(EVENT_BUFWINENTER, NULL, NULL, FALSE, curbuf,
|
||||||
&retval);
|
&retval);
|
||||||
@@ -359,7 +344,6 @@ open_buffer(
|
|||||||
/* restore curwin/curbuf and a few other things */
|
/* restore curwin/curbuf and a few other things */
|
||||||
aucmd_restbuf(&aco);
|
aucmd_restbuf(&aco);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
@@ -454,14 +438,12 @@ close_buffer(
|
|||||||
int action,
|
int action,
|
||||||
int abort_if_last UNUSED)
|
int abort_if_last UNUSED)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
int is_curbuf;
|
int is_curbuf;
|
||||||
int nwindows;
|
int nwindows;
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
int is_curwin = (curwin != NULL && curwin->w_buffer == buf);
|
int is_curwin = (curwin != NULL && curwin->w_buffer == buf);
|
||||||
win_T *the_curwin = curwin;
|
win_T *the_curwin = curwin;
|
||||||
tabpage_T *the_curtab = curtab;
|
tabpage_T *the_curtab = curtab;
|
||||||
#endif
|
|
||||||
int unload_buf = (action != 0);
|
int unload_buf = (action != 0);
|
||||||
int del_buf = (action == DOBUF_DEL || action == DOBUF_WIPE);
|
int del_buf = (action == DOBUF_DEL || action == DOBUF_WIPE);
|
||||||
int wipe_buf = (action == DOBUF_WIPE);
|
int wipe_buf = (action == DOBUF_WIPE);
|
||||||
@@ -510,7 +492,6 @@ close_buffer(
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Disallow deleting the buffer when it is locked (already being closed or
|
/* Disallow deleting the buffer when it is locked (already being closed or
|
||||||
* halfway a command that relies on it). Unloading is allowed. */
|
* halfway a command that relies on it). Unloading is allowed. */
|
||||||
if (buf->b_locked > 0 && (del_buf || wipe_buf))
|
if (buf->b_locked > 0 && (del_buf || wipe_buf))
|
||||||
@@ -518,7 +499,6 @@ close_buffer(
|
|||||||
EMSG(_("E937: Attempt to delete a buffer that is in use"));
|
EMSG(_("E937: Attempt to delete a buffer that is in use"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/* check no autocommands closed the window */
|
/* check no autocommands closed the window */
|
||||||
if (win != NULL && win_valid_any_tab(win))
|
if (win != NULL && win_valid_any_tab(win))
|
||||||
@@ -534,7 +514,6 @@ close_buffer(
|
|||||||
win->w_cursor.col, TRUE);
|
win->w_cursor.col, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
|
|
||||||
/* When the buffer is no longer in a window, trigger BufWinLeave */
|
/* When the buffer is no longer in a window, trigger BufWinLeave */
|
||||||
@@ -587,7 +566,6 @@ aucmd_abort:
|
|||||||
}
|
}
|
||||||
|
|
||||||
nwindows = buf->b_nwindows;
|
nwindows = buf->b_nwindows;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* decrease the link count from windows (unless not in any window) */
|
/* decrease the link count from windows (unless not in any window) */
|
||||||
if (buf->b_nwindows > 0)
|
if (buf->b_nwindows > 0)
|
||||||
@@ -620,16 +598,13 @@ aucmd_abort:
|
|||||||
* Free all things allocated for this buffer.
|
* Free all things allocated for this buffer.
|
||||||
* Also calls the "BufDelete" autocommands when del_buf is TRUE.
|
* Also calls the "BufDelete" autocommands when del_buf is TRUE.
|
||||||
*/
|
*/
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Remember if we are closing the current buffer. Restore the number of
|
/* Remember if we are closing the current buffer. Restore the number of
|
||||||
* windows, so that autocommands in buf_freeall() don't get confused. */
|
* windows, so that autocommands in buf_freeall() don't get confused. */
|
||||||
is_curbuf = (buf == curbuf);
|
is_curbuf = (buf == curbuf);
|
||||||
buf->b_nwindows = nwindows;
|
buf->b_nwindows = nwindows;
|
||||||
#endif
|
|
||||||
|
|
||||||
buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
|
buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Autocommands may have deleted the buffer. */
|
/* Autocommands may have deleted the buffer. */
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
return;
|
return;
|
||||||
@@ -655,10 +630,6 @@ aucmd_abort:
|
|||||||
* Decrement the count for the close we do here. */
|
* Decrement the count for the close we do here. */
|
||||||
if (buf->b_nwindows > 0)
|
if (buf->b_nwindows > 0)
|
||||||
--buf->b_nwindows;
|
--buf->b_nwindows;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Change directories when the 'acd' option is set. */
|
|
||||||
DO_AUTOCHDIR
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Remove the buffer from the list.
|
* Remove the buffer from the list.
|
||||||
@@ -735,7 +706,6 @@ buf_clear_file(buf_T *buf)
|
|||||||
void
|
void
|
||||||
buf_freeall(buf_T *buf, int flags)
|
buf_freeall(buf_T *buf, int flags)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
int is_curbuf = (buf == curbuf);
|
int is_curbuf = (buf == curbuf);
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
int is_curwin = (curwin != NULL && curwin->w_buffer == buf);
|
int is_curwin = (curwin != NULL && curwin->w_buffer == buf);
|
||||||
@@ -794,7 +764,6 @@ buf_freeall(buf_T *buf, int flags)
|
|||||||
*/
|
*/
|
||||||
if (buf == curbuf && !is_curbuf)
|
if (buf == curbuf && !is_curbuf)
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
#ifdef FEAT_DIFF
|
#ifdef FEAT_DIFF
|
||||||
diff_buf_delete(buf); /* Can't use 'diff' for unloaded buffer. */
|
diff_buf_delete(buf); /* Can't use 'diff' for unloaded buffer. */
|
||||||
#endif
|
#endif
|
||||||
@@ -873,7 +842,6 @@ free_buffer(buf_T *buf)
|
|||||||
|
|
||||||
buf_hashtab_remove(buf);
|
buf_hashtab_remove(buf);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
aubuflocal_remove(buf);
|
aubuflocal_remove(buf);
|
||||||
|
|
||||||
if (autocmd_busy)
|
if (autocmd_busy)
|
||||||
@@ -884,7 +852,6 @@ free_buffer(buf_T *buf)
|
|||||||
au_pending_free_buf = buf;
|
au_pending_free_buf = buf;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
|
||||||
vim_free(buf);
|
vim_free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -947,8 +914,7 @@ free_buffer_stuff(
|
|||||||
map_clear_int(buf, MAP_ALL_MODES, TRUE, TRUE); /* clear local abbrevs */
|
map_clear_int(buf, MAP_ALL_MODES, TRUE, TRUE); /* clear local abbrevs */
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
vim_free(buf->b_start_fenc);
|
VIM_CLEAR(buf->b_start_fenc);
|
||||||
buf->b_start_fenc = NULL;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -998,7 +964,7 @@ goto_buffer(
|
|||||||
# if defined(HAS_SWAP_EXISTS_ACTION)
|
# if defined(HAS_SWAP_EXISTS_ACTION)
|
||||||
if (swap_exists_action == SEA_QUIT && *eap->cmd == 's')
|
if (swap_exists_action == SEA_QUIT && *eap->cmd == 's')
|
||||||
{
|
{
|
||||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
# if defined(FEAT_EVAL)
|
||||||
cleanup_T cs;
|
cleanup_T cs;
|
||||||
|
|
||||||
/* Reset the error/interrupt/exception state here so that
|
/* Reset the error/interrupt/exception state here so that
|
||||||
@@ -1011,7 +977,7 @@ goto_buffer(
|
|||||||
swap_exists_action = SEA_NONE;
|
swap_exists_action = SEA_NONE;
|
||||||
swap_exists_did_quit = TRUE;
|
swap_exists_did_quit = TRUE;
|
||||||
|
|
||||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
# if defined(FEAT_EVAL)
|
||||||
/* Restore the error/interrupt/exception state if not discarded by a
|
/* Restore the error/interrupt/exception state if not discarded by a
|
||||||
* new aborting error, interrupt, or uncaught exception. */
|
* new aborting error, interrupt, or uncaught exception. */
|
||||||
leave_cleanup(&cs);
|
leave_cleanup(&cs);
|
||||||
@@ -1031,7 +997,7 @@ goto_buffer(
|
|||||||
void
|
void
|
||||||
handle_swap_exists(bufref_T *old_curbuf)
|
handle_swap_exists(bufref_T *old_curbuf)
|
||||||
{
|
{
|
||||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
# if defined(FEAT_EVAL)
|
||||||
cleanup_T cs;
|
cleanup_T cs;
|
||||||
# endif
|
# endif
|
||||||
# ifdef FEAT_SYN_HL
|
# ifdef FEAT_SYN_HL
|
||||||
@@ -1041,7 +1007,7 @@ handle_swap_exists(bufref_T *old_curbuf)
|
|||||||
|
|
||||||
if (swap_exists_action == SEA_QUIT)
|
if (swap_exists_action == SEA_QUIT)
|
||||||
{
|
{
|
||||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
# if defined(FEAT_EVAL)
|
||||||
/* Reset the error/interrupt/exception state here so that
|
/* Reset the error/interrupt/exception state here so that
|
||||||
* aborting() returns FALSE when closing a buffer. */
|
* aborting() returns FALSE when closing a buffer. */
|
||||||
enter_cleanup(&cs);
|
enter_cleanup(&cs);
|
||||||
@@ -1068,7 +1034,7 @@ handle_swap_exists(bufref_T *old_curbuf)
|
|||||||
}
|
}
|
||||||
/* If "old_curbuf" is NULL we are in big trouble here... */
|
/* If "old_curbuf" is NULL we are in big trouble here... */
|
||||||
|
|
||||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
# if defined(FEAT_EVAL)
|
||||||
/* Restore the error/interrupt/exception state if not discarded by a
|
/* Restore the error/interrupt/exception state if not discarded by a
|
||||||
* new aborting error, interrupt, or uncaught exception. */
|
* new aborting error, interrupt, or uncaught exception. */
|
||||||
leave_cleanup(&cs);
|
leave_cleanup(&cs);
|
||||||
@@ -1076,7 +1042,7 @@ handle_swap_exists(bufref_T *old_curbuf)
|
|||||||
}
|
}
|
||||||
else if (swap_exists_action == SEA_RECOVER)
|
else if (swap_exists_action == SEA_RECOVER)
|
||||||
{
|
{
|
||||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
# if defined(FEAT_EVAL)
|
||||||
/* Reset the error/interrupt/exception state here so that
|
/* Reset the error/interrupt/exception state here so that
|
||||||
* aborting() returns FALSE when closing a buffer. */
|
* aborting() returns FALSE when closing a buffer. */
|
||||||
enter_cleanup(&cs);
|
enter_cleanup(&cs);
|
||||||
@@ -1089,7 +1055,7 @@ handle_swap_exists(bufref_T *old_curbuf)
|
|||||||
cmdline_row = msg_row;
|
cmdline_row = msg_row;
|
||||||
do_modelines(0);
|
do_modelines(0);
|
||||||
|
|
||||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
# if defined(FEAT_EVAL)
|
||||||
/* Restore the error/interrupt/exception state if not discarded by a
|
/* Restore the error/interrupt/exception state if not discarded by a
|
||||||
* new aborting error, interrupt, or uncaught exception. */
|
* new aborting error, interrupt, or uncaught exception. */
|
||||||
leave_cleanup(&cs);
|
leave_cleanup(&cs);
|
||||||
@@ -1408,12 +1374,10 @@ do_buffer(
|
|||||||
if ((p_confirm || cmdmod.confirm) && p_write)
|
if ((p_confirm || cmdmod.confirm) && p_write)
|
||||||
{
|
{
|
||||||
dialog_changed(buf, FALSE);
|
dialog_changed(buf, FALSE);
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
/* Autocommand deleted buffer, oops! It's not changed
|
/* Autocommand deleted buffer, oops! It's not changed
|
||||||
* now. */
|
* now. */
|
||||||
return FAIL;
|
return FAIL;
|
||||||
# endif
|
|
||||||
/* If it's still changed fail silently, the dialog already
|
/* If it's still changed fail silently, the dialog already
|
||||||
* mentioned why it fails. */
|
* mentioned why it fails. */
|
||||||
if (bufIsChanged(buf))
|
if (bufIsChanged(buf))
|
||||||
@@ -1448,9 +1412,7 @@ do_buffer(
|
|||||||
* a window with this buffer.
|
* a window with this buffer.
|
||||||
*/
|
*/
|
||||||
while (buf == curbuf
|
while (buf == curbuf
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
&& !(curwin->w_closing || curwin->w_buffer->b_locked > 0)
|
&& !(curwin->w_closing || curwin->w_buffer->b_locked > 0)
|
||||||
#endif
|
|
||||||
&& (!ONE_WINDOW || first_tabpage->tp_next != NULL))
|
&& (!ONE_WINDOW || first_tabpage->tp_next != NULL))
|
||||||
{
|
{
|
||||||
if (win_close(curwin, FALSE) == FAIL)
|
if (win_close(curwin, FALSE) == FAIL)
|
||||||
@@ -1480,15 +1442,10 @@ do_buffer(
|
|||||||
*/
|
*/
|
||||||
buf = NULL; /* selected buffer */
|
buf = NULL; /* selected buffer */
|
||||||
bp = NULL; /* used when no loaded buffer found */
|
bp = NULL; /* used when no loaded buffer found */
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (au_new_curbuf.br_buf != NULL && bufref_valid(&au_new_curbuf))
|
if (au_new_curbuf.br_buf != NULL && bufref_valid(&au_new_curbuf))
|
||||||
buf = au_new_curbuf.br_buf;
|
buf = au_new_curbuf.br_buf;
|
||||||
#ifdef FEAT_JUMPLIST
|
#ifdef FEAT_JUMPLIST
|
||||||
else
|
else if (curwin->w_jumplistlen > 0)
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
#ifdef FEAT_JUMPLIST
|
|
||||||
if (curwin->w_jumplistlen > 0)
|
|
||||||
{
|
{
|
||||||
int jumpidx;
|
int jumpidx;
|
||||||
|
|
||||||
@@ -1607,17 +1564,13 @@ do_buffer(
|
|||||||
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
|
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
|
||||||
if ((p_confirm || cmdmod.confirm) && p_write)
|
if ((p_confirm || cmdmod.confirm) && p_write)
|
||||||
{
|
{
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
|
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
# endif
|
|
||||||
dialog_changed(curbuf, FALSE);
|
dialog_changed(curbuf, FALSE);
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
/* Autocommand deleted buffer, oops! */
|
/* Autocommand deleted buffer, oops! */
|
||||||
return FAIL;
|
return FAIL;
|
||||||
# endif
|
|
||||||
}
|
}
|
||||||
if (bufIsChanged(curbuf))
|
if (bufIsChanged(curbuf))
|
||||||
#endif
|
#endif
|
||||||
@@ -1630,15 +1583,14 @@ do_buffer(
|
|||||||
/* Go to the other buffer. */
|
/* Go to the other buffer. */
|
||||||
set_curbuf(buf, action);
|
set_curbuf(buf, action);
|
||||||
|
|
||||||
#if defined(FEAT_LISTCMDS) \
|
#if defined(FEAT_LISTCMDS)
|
||||||
&& (defined(FEAT_SCROLLBIND) || defined(FEAT_CURSORBIND))
|
|
||||||
if (action == DOBUF_SPLIT)
|
if (action == DOBUF_SPLIT)
|
||||||
{
|
{
|
||||||
RESET_BINDING(curwin); /* reset 'scrollbind' and 'cursorbind' */
|
RESET_BINDING(curwin); /* reset 'scrollbind' and 'cursorbind' */
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
#if defined(FEAT_EVAL)
|
||||||
if (aborting()) /* autocmds may abort script processing */
|
if (aborting()) /* autocmds may abort script processing */
|
||||||
return FAIL;
|
return FAIL;
|
||||||
#endif
|
#endif
|
||||||
@@ -1665,7 +1617,8 @@ set_curbuf(buf_T *buf, int action)
|
|||||||
#ifdef FEAT_SYN_HL
|
#ifdef FEAT_SYN_HL
|
||||||
long old_tw = curbuf->b_p_tw;
|
long old_tw = curbuf->b_p_tw;
|
||||||
#endif
|
#endif
|
||||||
bufref_T bufref;
|
bufref_T newbufref;
|
||||||
|
bufref_T prevbufref;
|
||||||
|
|
||||||
setpcmark();
|
setpcmark();
|
||||||
if (!cmdmod.keepalt)
|
if (!cmdmod.keepalt)
|
||||||
@@ -1675,19 +1628,21 @@ set_curbuf(buf_T *buf, int action)
|
|||||||
/* Don't restart Select mode after switching to another buffer. */
|
/* Don't restart Select mode after switching to another buffer. */
|
||||||
VIsual_reselect = FALSE;
|
VIsual_reselect = FALSE;
|
||||||
|
|
||||||
/* close_windows() or apply_autocmds() may change curbuf */
|
/* close_windows() or apply_autocmds() may change curbuf and wipe out "buf"
|
||||||
|
*/
|
||||||
prevbuf = curbuf;
|
prevbuf = curbuf;
|
||||||
set_bufref(&bufref, prevbuf);
|
set_bufref(&prevbufref, prevbuf);
|
||||||
|
set_bufref(&newbufref, buf);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
/* Autocommands may delete the curren buffer and/or the buffer we wan to go
|
||||||
|
* to. In those cases don't close the buffer. */
|
||||||
if (!apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf)
|
if (!apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf)
|
||||||
|
|| (bufref_valid(&prevbufref)
|
||||||
|
&& bufref_valid(&newbufref)
|
||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
|| (bufref_valid(&bufref) && !aborting())
|
&& !aborting()
|
||||||
# else
|
|
||||||
|| bufref_valid(&bufref)
|
|
||||||
# endif
|
|
||||||
)
|
|
||||||
#endif
|
#endif
|
||||||
|
))
|
||||||
{
|
{
|
||||||
#ifdef FEAT_SYN_HL
|
#ifdef FEAT_SYN_HL
|
||||||
if (prevbuf == curwin->w_buffer)
|
if (prevbuf == curwin->w_buffer)
|
||||||
@@ -1695,10 +1650,10 @@ set_curbuf(buf_T *buf, int action)
|
|||||||
#endif
|
#endif
|
||||||
if (unload)
|
if (unload)
|
||||||
close_windows(prevbuf, FALSE);
|
close_windows(prevbuf, FALSE);
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
#if defined(FEAT_EVAL)
|
||||||
if (bufref_valid(&bufref) && !aborting())
|
if (bufref_valid(&prevbufref) && !aborting())
|
||||||
#else
|
#else
|
||||||
if (bufref_valid(&bufref))
|
if (bufref_valid(&prevbufref))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
win_T *previouswin = curwin;
|
win_T *previouswin = curwin;
|
||||||
@@ -1713,7 +1668,6 @@ set_curbuf(buf_T *buf, int action)
|
|||||||
curwin = previouswin;
|
curwin = previouswin;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* An autocommand may have deleted "buf", already entered it (e.g., when
|
/* An autocommand may have deleted "buf", already entered it (e.g., when
|
||||||
* it did ":bunload") or aborted the script processing.
|
* it did ":bunload") or aborted the script processing.
|
||||||
* If curwin->w_buffer is null, enter_buffer() will make it valid again */
|
* If curwin->w_buffer is null, enter_buffer() will make it valid again */
|
||||||
@@ -1722,7 +1676,6 @@ set_curbuf(buf_T *buf, int action)
|
|||||||
&& !aborting()
|
&& !aborting()
|
||||||
#endif
|
#endif
|
||||||
) || curwin->w_buffer == NULL)
|
) || curwin->w_buffer == NULL)
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
enter_buffer(buf);
|
enter_buffer(buf);
|
||||||
#ifdef FEAT_SYN_HL
|
#ifdef FEAT_SYN_HL
|
||||||
@@ -1772,9 +1725,7 @@ enter_buffer(buf_T *buf)
|
|||||||
curwin->w_cursor.coladd = 0;
|
curwin->w_cursor.coladd = 0;
|
||||||
#endif
|
#endif
|
||||||
curwin->w_set_curswant = TRUE;
|
curwin->w_set_curswant = TRUE;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
curwin->w_topline_was_set = FALSE;
|
curwin->w_topline_was_set = FALSE;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* mark cursor position as being invalid */
|
/* mark cursor position as being invalid */
|
||||||
curwin->w_valid = 0;
|
curwin->w_valid = 0;
|
||||||
@@ -1782,13 +1733,11 @@ enter_buffer(buf_T *buf)
|
|||||||
/* Make sure the buffer is loaded. */
|
/* Make sure the buffer is loaded. */
|
||||||
if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */
|
if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* If there is no filetype, allow for detecting one. Esp. useful for
|
/* If there is no filetype, allow for detecting one. Esp. useful for
|
||||||
* ":ball" used in a autocommand. If there already is a filetype we
|
* ":ball" used in a autocommand. If there already is a filetype we
|
||||||
* might prefer to keep it. */
|
* might prefer to keep it. */
|
||||||
if (*curbuf->b_p_ft == NUL)
|
if (*curbuf->b_p_ft == NUL)
|
||||||
did_filetype = FALSE;
|
did_filetype = FALSE;
|
||||||
#endif
|
|
||||||
|
|
||||||
open_buffer(FALSE, NULL, 0);
|
open_buffer(FALSE, NULL, 0);
|
||||||
}
|
}
|
||||||
@@ -1797,14 +1746,12 @@ enter_buffer(buf_T *buf)
|
|||||||
if (!msg_silent)
|
if (!msg_silent)
|
||||||
need_fileinfo = TRUE; /* display file info after redraw */
|
need_fileinfo = TRUE; /* display file info after redraw */
|
||||||
(void)buf_check_timestamp(curbuf, FALSE); /* check if file changed */
|
(void)buf_check_timestamp(curbuf, FALSE); /* check if file changed */
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
curwin->w_topline = 1;
|
curwin->w_topline = 1;
|
||||||
#ifdef FEAT_DIFF
|
#ifdef FEAT_DIFF
|
||||||
curwin->w_topfill = 0;
|
curwin->w_topfill = 0;
|
||||||
#endif
|
#endif
|
||||||
apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
|
||||||
apply_autocmds(EVENT_BUFWINENTER, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFWINENTER, NULL, NULL, FALSE, curbuf);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If autocommands did not change the cursor position, restore cursor lnum
|
/* If autocommands did not change the cursor position, restore cursor lnum
|
||||||
@@ -1816,10 +1763,8 @@ enter_buffer(buf_T *buf)
|
|||||||
#ifdef FEAT_TITLE
|
#ifdef FEAT_TITLE
|
||||||
maketitle();
|
maketitle();
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* when autocmds didn't change it */
|
/* when autocmds didn't change it */
|
||||||
if (curwin->w_topline == 1 && !curwin->w_topline_was_set)
|
if (curwin->w_topline == 1 && !curwin->w_topline_was_set)
|
||||||
#endif
|
|
||||||
scroll_cursor_halfway(FALSE); /* redisplay at correct position */
|
scroll_cursor_halfway(FALSE); /* redisplay at correct position */
|
||||||
|
|
||||||
#ifdef FEAT_NETBEANS_INTG
|
#ifdef FEAT_NETBEANS_INTG
|
||||||
@@ -1857,7 +1802,7 @@ do_autochdir(void)
|
|||||||
{
|
{
|
||||||
if ((starting == 0 || test_autochdir)
|
if ((starting == 0 || test_autochdir)
|
||||||
&& curbuf->b_ffname != NULL
|
&& curbuf->b_ffname != NULL
|
||||||
&& vim_chdirfile(curbuf->b_ffname) == OK)
|
&& vim_chdirfile(curbuf->b_ffname, "auto") == OK)
|
||||||
shorten_fnames(TRUE);
|
shorten_fnames(TRUE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -1874,10 +1819,10 @@ no_write_message(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
no_write_message_nobang(void)
|
no_write_message_nobang(buf_T *buf UNUSED)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_TERMINAL
|
#ifdef FEAT_TERMINAL
|
||||||
if (term_job_running(curbuf->b_term))
|
if (term_job_running(buf->b_term))
|
||||||
EMSG(_("E948: Job still running"));
|
EMSG(_("E948: Job still running"));
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@@ -1947,11 +1892,9 @@ buflist_new(
|
|||||||
|
|
||||||
if ((flags & BLN_LISTED) && !buf->b_p_bl)
|
if ((flags & BLN_LISTED) && !buf->b_p_bl)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
#endif
|
|
||||||
buf->b_p_bl = TRUE;
|
buf->b_p_bl = TRUE;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
if (!(flags & BLN_DUMMY))
|
if (!(flags & BLN_DUMMY))
|
||||||
{
|
{
|
||||||
@@ -1959,7 +1902,6 @@ buflist_new(
|
|||||||
&& !bufref_valid(&bufref))
|
&& !bufref_valid(&bufref))
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
@@ -1980,7 +1922,6 @@ buflist_new(
|
|||||||
&& (curbuf->b_ml.ml_mfp == NULL || BUFEMPTY()))
|
&& (curbuf->b_ml.ml_mfp == NULL || BUFEMPTY()))
|
||||||
{
|
{
|
||||||
buf = curbuf;
|
buf = curbuf;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* It's like this buffer is deleted. Watch out for autocommands that
|
/* It's like this buffer is deleted. Watch out for autocommands that
|
||||||
* change curbuf! If that happens, allocate a new buffer anyway. */
|
* change curbuf! If that happens, allocate a new buffer anyway. */
|
||||||
if (curbuf->b_p_bl)
|
if (curbuf->b_p_bl)
|
||||||
@@ -1991,10 +1932,7 @@ buflist_new(
|
|||||||
if (aborting()) /* autocmds may abort script processing */
|
if (aborting()) /* autocmds may abort script processing */
|
||||||
return NULL;
|
return NULL;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (buf == curbuf)
|
if (buf == curbuf)
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
/* Make sure 'bufhidden' and 'buftype' are empty */
|
/* Make sure 'bufhidden' and 'buftype' are empty */
|
||||||
clear_string_option(&buf->b_p_bh);
|
clear_string_option(&buf->b_p_bh);
|
||||||
@@ -2035,10 +1973,8 @@ buflist_new(
|
|||||||
if ((ffname != NULL && (buf->b_ffname == NULL || buf->b_sfname == NULL))
|
if ((ffname != NULL && (buf->b_ffname == NULL || buf->b_sfname == NULL))
|
||||||
|| buf->b_wininfo == NULL)
|
|| buf->b_wininfo == NULL)
|
||||||
{
|
{
|
||||||
vim_free(buf->b_ffname);
|
VIM_CLEAR(buf->b_ffname);
|
||||||
buf->b_ffname = NULL;
|
VIM_CLEAR(buf->b_sfname);
|
||||||
vim_free(buf->b_sfname);
|
|
||||||
buf->b_sfname = NULL;
|
|
||||||
if (buf != curbuf)
|
if (buf != curbuf)
|
||||||
free_buffer(buf);
|
free_buffer(buf);
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -2050,7 +1986,7 @@ buflist_new(
|
|||||||
buf_freeall(buf, 0);
|
buf_freeall(buf, 0);
|
||||||
if (buf != curbuf) /* autocommands deleted the buffer! */
|
if (buf != curbuf) /* autocommands deleted the buffer! */
|
||||||
return NULL;
|
return NULL;
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
#if defined(FEAT_EVAL)
|
||||||
if (aborting()) /* autocmds may abort script processing */
|
if (aborting()) /* autocmds may abort script processing */
|
||||||
return NULL;
|
return NULL;
|
||||||
#endif
|
#endif
|
||||||
@@ -2129,7 +2065,6 @@ buflist_new(
|
|||||||
clrallmarks(buf); /* clear marks */
|
clrallmarks(buf); /* clear marks */
|
||||||
fmarks_check_names(buf); /* check file marks for this file */
|
fmarks_check_names(buf); /* check file marks for this file */
|
||||||
buf->b_p_bl = (flags & BLN_LISTED) ? TRUE : FALSE; /* init 'buflisted' */
|
buf->b_p_bl = (flags & BLN_LISTED) ? TRUE : FALSE; /* init 'buflisted' */
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (!(flags & BLN_DUMMY))
|
if (!(flags & BLN_DUMMY))
|
||||||
{
|
{
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
@@ -2152,7 +2087,6 @@ buflist_new(
|
|||||||
return NULL;
|
return NULL;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
@@ -2207,6 +2141,7 @@ free_buf_options(
|
|||||||
clear_string_option(&buf->b_p_isk);
|
clear_string_option(&buf->b_p_isk);
|
||||||
#ifdef FEAT_KEYMAP
|
#ifdef FEAT_KEYMAP
|
||||||
clear_string_option(&buf->b_p_keymap);
|
clear_string_option(&buf->b_p_keymap);
|
||||||
|
keymap_clear(&buf->b_kmap_ga);
|
||||||
ga_clear(&buf->b_kmap_ga);
|
ga_clear(&buf->b_kmap_ga);
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_COMMENTS
|
#ifdef FEAT_COMMENTS
|
||||||
@@ -2230,9 +2165,7 @@ free_buf_options(
|
|||||||
#ifdef FEAT_SEARCHPATH
|
#ifdef FEAT_SEARCHPATH
|
||||||
clear_string_option(&buf->b_p_sua);
|
clear_string_option(&buf->b_p_sua);
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
clear_string_option(&buf->b_p_ft);
|
clear_string_option(&buf->b_p_ft);
|
||||||
#endif
|
|
||||||
#ifdef FEAT_CINDENT
|
#ifdef FEAT_CINDENT
|
||||||
clear_string_option(&buf->b_p_cink);
|
clear_string_option(&buf->b_p_cink);
|
||||||
clear_string_option(&buf->b_p_cino);
|
clear_string_option(&buf->b_p_cino);
|
||||||
@@ -2315,10 +2248,8 @@ buflist_getfile(
|
|||||||
text_locked_msg();
|
text_locked_msg();
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (curbuf_locked())
|
if (curbuf_locked())
|
||||||
return FAIL;
|
return FAIL;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* altfpos may be changed by getfile(), get it now */
|
/* altfpos may be changed by getfile(), get it now */
|
||||||
if (lnum == 0)
|
if (lnum == 0)
|
||||||
@@ -3133,10 +3064,8 @@ setfname(
|
|||||||
if (ffname == NULL || *ffname == NUL)
|
if (ffname == NULL || *ffname == NUL)
|
||||||
{
|
{
|
||||||
/* Removing the name. */
|
/* Removing the name. */
|
||||||
vim_free(buf->b_ffname);
|
VIM_CLEAR(buf->b_ffname);
|
||||||
vim_free(buf->b_sfname);
|
VIM_CLEAR(buf->b_sfname);
|
||||||
buf->b_ffname = NULL;
|
|
||||||
buf->b_sfname = NULL;
|
|
||||||
#ifdef UNIX
|
#ifdef UNIX
|
||||||
st.st_dev = (dev_T)-1;
|
st.st_dev = (dev_T)-1;
|
||||||
#endif
|
#endif
|
||||||
@@ -4258,8 +4187,7 @@ build_stl_str_hl(
|
|||||||
if (*skipdigits(str) == NUL)
|
if (*skipdigits(str) == NUL)
|
||||||
{
|
{
|
||||||
num = atoi((char *)str);
|
num = atoi((char *)str);
|
||||||
vim_free(str);
|
VIM_CLEAR(str);
|
||||||
str = NULL;
|
|
||||||
itemisflag = FALSE;
|
itemisflag = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4371,7 +4299,6 @@ build_stl_str_hl(
|
|||||||
: _("[Help]"));
|
: _("[Help]"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
case STL_FILETYPE:
|
case STL_FILETYPE:
|
||||||
if (*wp->w_buffer->b_p_ft != NUL
|
if (*wp->w_buffer->b_p_ft != NUL
|
||||||
&& STRLEN(wp->w_buffer->b_p_ft) < TMPLEN - 3)
|
&& STRLEN(wp->w_buffer->b_p_ft) < TMPLEN - 3)
|
||||||
@@ -4394,7 +4321,6 @@ build_stl_str_hl(
|
|||||||
str = tmp;
|
str = tmp;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(FEAT_QUICKFIX)
|
#if defined(FEAT_QUICKFIX)
|
||||||
case STL_PREVIEWFLAG:
|
case STL_PREVIEWFLAG:
|
||||||
@@ -5016,20 +4942,18 @@ do_arg_all(
|
|||||||
if (!buf_hide(buf) && buf->b_nwindows <= 1
|
if (!buf_hide(buf) && buf->b_nwindows <= 1
|
||||||
&& bufIsChanged(buf))
|
&& bufIsChanged(buf))
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
|
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
#endif
|
|
||||||
(void)autowrite(buf, FALSE);
|
(void)autowrite(buf, FALSE);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* check if autocommands removed the window */
|
/* check if autocommands removed the window */
|
||||||
if (!win_valid(wp) || !bufref_valid(&bufref))
|
if (!win_valid(wp) || !bufref_valid(&bufref))
|
||||||
{
|
{
|
||||||
wpnext = firstwin; /* start all over... */
|
wpnext = firstwin; /* start all over... */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
/* don't close last window */
|
/* don't close last window */
|
||||||
if (ONE_WINDOW
|
if (ONE_WINDOW
|
||||||
@@ -5038,11 +4962,10 @@ do_arg_all(
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
win_close(wp, !buf_hide(buf) && !bufIsChanged(buf));
|
win_close(wp, !buf_hide(buf) && !bufIsChanged(buf));
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* check if autocommands removed the next window */
|
/* check if autocommands removed the next window */
|
||||||
if (!win_valid(wpnext))
|
if (!win_valid(wpnext))
|
||||||
wpnext = firstwin; /* start all over... */
|
wpnext = firstwin; /* start all over... */
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5052,11 +4975,10 @@ do_arg_all(
|
|||||||
if (had_tab == 0 || tpnext == NULL)
|
if (had_tab == 0 || tpnext == NULL)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
/* check if autocommands removed the next tab page */
|
/* check if autocommands removed the next tab page */
|
||||||
if (!valid_tabpage(tpnext))
|
if (!valid_tabpage(tpnext))
|
||||||
tpnext = first_tabpage; /* start all over...*/
|
tpnext = first_tabpage; /* start all over...*/
|
||||||
# endif
|
|
||||||
goto_tabpage_tp(tpnext, TRUE, TRUE);
|
goto_tabpage_tp(tpnext, TRUE, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5067,11 +4989,9 @@ do_arg_all(
|
|||||||
if (count > opened_len || count <= 0)
|
if (count > opened_len || count <= 0)
|
||||||
count = opened_len;
|
count = opened_len;
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Don't execute Win/Buf Enter/Leave autocommands here. */
|
/* Don't execute Win/Buf Enter/Leave autocommands here. */
|
||||||
++autocmd_no_enter;
|
++autocmd_no_enter;
|
||||||
++autocmd_no_leave;
|
++autocmd_no_leave;
|
||||||
#endif
|
|
||||||
last_curwin = curwin;
|
last_curwin = curwin;
|
||||||
last_curtab = curtab;
|
last_curtab = curtab;
|
||||||
win_enter(lastwin, FALSE);
|
win_enter(lastwin, FALSE);
|
||||||
@@ -5117,10 +5037,8 @@ do_arg_all(
|
|||||||
if (split_ret == FAIL)
|
if (split_ret == FAIL)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
else /* first window: do autocmd for leaving this buffer */
|
else /* first window: do autocmd for leaving this buffer */
|
||||||
--autocmd_no_leave;
|
--autocmd_no_leave;
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* edit file "i"
|
* edit file "i"
|
||||||
@@ -5136,10 +5054,8 @@ do_arg_all(
|
|||||||
((buf_hide(curwin->w_buffer)
|
((buf_hide(curwin->w_buffer)
|
||||||
|| bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0)
|
|| bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0)
|
||||||
+ ECMD_OLDBUF, curwin);
|
+ ECMD_OLDBUF, curwin);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (use_firstwin)
|
if (use_firstwin)
|
||||||
++autocmd_no_leave;
|
++autocmd_no_leave;
|
||||||
#endif
|
|
||||||
use_firstwin = FALSE;
|
use_firstwin = FALSE;
|
||||||
}
|
}
|
||||||
ui_breakcheck();
|
ui_breakcheck();
|
||||||
@@ -5152,9 +5068,8 @@ do_arg_all(
|
|||||||
/* Remove the "lock" on the argument list. */
|
/* Remove the "lock" on the argument list. */
|
||||||
alist_unlink(alist);
|
alist_unlink(alist);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
--autocmd_no_enter;
|
--autocmd_no_enter;
|
||||||
#endif
|
|
||||||
/* restore last referenced tabpage's curwin */
|
/* restore last referenced tabpage's curwin */
|
||||||
if (last_curtab != new_curtab)
|
if (last_curtab != new_curtab)
|
||||||
{
|
{
|
||||||
@@ -5169,9 +5084,7 @@ do_arg_all(
|
|||||||
if (win_valid(new_curwin))
|
if (win_valid(new_curwin))
|
||||||
win_enter(new_curwin, FALSE);
|
win_enter(new_curwin, FALSE);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
--autocmd_no_leave;
|
--autocmd_no_leave;
|
||||||
#endif
|
|
||||||
vim_free(opened);
|
vim_free(opened);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5226,18 +5139,13 @@ ex_buffer_all(exarg_T *eap)
|
|||||||
- tabline_height()
|
- tabline_height()
|
||||||
: wp->w_width != Columns)
|
: wp->w_width != Columns)
|
||||||
|| (had_tab > 0 && wp != firstwin)) && !ONE_WINDOW
|
|| (had_tab > 0 && wp != firstwin)) && !ONE_WINDOW
|
||||||
#ifdef FEAT_AUTOCMD
|
&& !(wp->w_closing || wp->w_buffer->b_locked > 0))
|
||||||
&& !(wp->w_closing || wp->w_buffer->b_locked > 0)
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
win_close(wp, FALSE);
|
win_close(wp, FALSE);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
wpnext = firstwin; /* just in case an autocommand does
|
wpnext = firstwin; /* just in case an autocommand does
|
||||||
something strange with windows */
|
something strange with windows */
|
||||||
tpnext = first_tabpage; /* start all over...*/
|
tpnext = first_tabpage; /* start all over...*/
|
||||||
open_wins = 0;
|
open_wins = 0;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
++open_wins;
|
++open_wins;
|
||||||
@@ -5254,14 +5162,10 @@ ex_buffer_all(exarg_T *eap)
|
|||||||
* open one. Otherwise move the window to the right position.
|
* open one. Otherwise move the window to the right position.
|
||||||
* Watch out for autocommands that delete buffers or windows!
|
* Watch out for autocommands that delete buffers or windows!
|
||||||
*/
|
*/
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Don't execute Win/Buf Enter/Leave autocommands here. */
|
/* Don't execute Win/Buf Enter/Leave autocommands here. */
|
||||||
++autocmd_no_enter;
|
++autocmd_no_enter;
|
||||||
#endif
|
|
||||||
win_enter(lastwin, FALSE);
|
win_enter(lastwin, FALSE);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
++autocmd_no_leave;
|
++autocmd_no_leave;
|
||||||
#endif
|
|
||||||
for (buf = firstbuf; buf != NULL && open_wins < count; buf = buf->b_next)
|
for (buf = firstbuf; buf != NULL && open_wins < count; buf = buf->b_next)
|
||||||
{
|
{
|
||||||
/* Check if this buffer needs a window */
|
/* Check if this buffer needs a window */
|
||||||
@@ -5289,11 +5193,10 @@ ex_buffer_all(exarg_T *eap)
|
|||||||
|
|
||||||
if (wp == NULL && split_ret == OK)
|
if (wp == NULL && split_ret == OK)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
|
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
#endif
|
|
||||||
/* Split the window and put the buffer in it */
|
/* Split the window and put the buffer in it */
|
||||||
p_ea_save = p_ea;
|
p_ea_save = p_ea;
|
||||||
p_ea = TRUE; /* use space from all windows */
|
p_ea = TRUE; /* use space from all windows */
|
||||||
@@ -5308,7 +5211,6 @@ ex_buffer_all(exarg_T *eap)
|
|||||||
swap_exists_action = SEA_DIALOG;
|
swap_exists_action = SEA_DIALOG;
|
||||||
#endif
|
#endif
|
||||||
set_curbuf(buf, DOBUF_GOTO);
|
set_curbuf(buf, DOBUF_GOTO);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
{
|
{
|
||||||
/* autocommands deleted the buffer!!! */
|
/* autocommands deleted the buffer!!! */
|
||||||
@@ -5317,11 +5219,10 @@ ex_buffer_all(exarg_T *eap)
|
|||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#if defined(HAS_SWAP_EXISTS_ACTION)
|
#if defined(HAS_SWAP_EXISTS_ACTION)
|
||||||
if (swap_exists_action == SEA_QUIT)
|
if (swap_exists_action == SEA_QUIT)
|
||||||
{
|
{
|
||||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
# if defined(FEAT_EVAL)
|
||||||
cleanup_T cs;
|
cleanup_T cs;
|
||||||
|
|
||||||
/* Reset the error/interrupt/exception state here so that
|
/* Reset the error/interrupt/exception state here so that
|
||||||
@@ -5335,7 +5236,7 @@ ex_buffer_all(exarg_T *eap)
|
|||||||
swap_exists_action = SEA_NONE;
|
swap_exists_action = SEA_NONE;
|
||||||
swap_exists_did_quit = TRUE;
|
swap_exists_did_quit = TRUE;
|
||||||
|
|
||||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
# if defined(FEAT_EVAL)
|
||||||
/* Restore the error/interrupt/exception state if not
|
/* Restore the error/interrupt/exception state if not
|
||||||
* discarded by a new aborting error, interrupt, or uncaught
|
* discarded by a new aborting error, interrupt, or uncaught
|
||||||
* exception. */
|
* exception. */
|
||||||
@@ -5362,13 +5263,9 @@ ex_buffer_all(exarg_T *eap)
|
|||||||
if (had_tab > 0 && tabpage_index(NULL) <= p_tpm)
|
if (had_tab > 0 && tabpage_index(NULL) <= p_tpm)
|
||||||
cmdmod.tab = 9999;
|
cmdmod.tab = 9999;
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
--autocmd_no_enter;
|
--autocmd_no_enter;
|
||||||
#endif
|
|
||||||
win_enter(firstwin, FALSE); /* back to first window */
|
win_enter(firstwin, FALSE); /* back to first window */
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
--autocmd_no_leave;
|
--autocmd_no_leave;
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Close superfluous windows.
|
* Close superfluous windows.
|
||||||
@@ -5377,15 +5274,12 @@ ex_buffer_all(exarg_T *eap)
|
|||||||
{
|
{
|
||||||
r = (buf_hide(wp->w_buffer) || !bufIsChanged(wp->w_buffer)
|
r = (buf_hide(wp->w_buffer) || !bufIsChanged(wp->w_buffer)
|
||||||
|| autowrite(wp->w_buffer, FALSE) == OK);
|
|| autowrite(wp->w_buffer, FALSE) == OK);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (!win_valid(wp))
|
if (!win_valid(wp))
|
||||||
{
|
{
|
||||||
/* BufWrite Autocommands made the window invalid, start over */
|
/* BufWrite Autocommands made the window invalid, start over */
|
||||||
wp = lastwin;
|
wp = lastwin;
|
||||||
}
|
}
|
||||||
else
|
else if (r)
|
||||||
#endif
|
|
||||||
if (r)
|
|
||||||
{
|
{
|
||||||
win_close(wp, !buf_hide(wp->w_buffer));
|
win_close(wp, !buf_hide(wp->w_buffer));
|
||||||
--open_wins;
|
--open_wins;
|
||||||
@@ -6236,12 +6130,10 @@ set_buflisted(int on)
|
|||||||
if (on != curbuf->b_p_bl)
|
if (on != curbuf->b_p_bl)
|
||||||
{
|
{
|
||||||
curbuf->b_p_bl = on;
|
curbuf->b_p_bl = on;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (on)
|
if (on)
|
||||||
apply_autocmds(EVENT_BUFADD, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFADD, NULL, NULL, FALSE, curbuf);
|
||||||
else
|
else
|
||||||
apply_autocmds(EVENT_BUFDELETE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFDELETE, NULL, NULL, FALSE, curbuf);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6314,13 +6206,11 @@ wipe_buffer(
|
|||||||
if (buf->b_fnum == top_file_num - 1)
|
if (buf->b_fnum == top_file_num - 1)
|
||||||
--top_file_num;
|
--top_file_num;
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (!aucmd) /* Don't trigger BufDelete autocommands here. */
|
if (!aucmd) /* Don't trigger BufDelete autocommands here. */
|
||||||
block_autocmds();
|
block_autocmds();
|
||||||
#endif
|
|
||||||
close_buffer(NULL, buf, DOBUF_WIPE, FALSE);
|
close_buffer(NULL, buf, DOBUF_WIPE, FALSE);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (!aucmd)
|
if (!aucmd)
|
||||||
unblock_autocmds();
|
unblock_autocmds();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2207,14 +2207,7 @@ channel_exe_cmd(channel_T *channel, ch_part_T part, typval_T *argv)
|
|||||||
ex_redraw(&ea);
|
ex_redraw(&ea);
|
||||||
showruler(FALSE);
|
showruler(FALSE);
|
||||||
setcursor();
|
setcursor();
|
||||||
out_flush();
|
out_flush_cursor(TRUE, FALSE);
|
||||||
#ifdef FEAT_GUI
|
|
||||||
if (gui.in_use)
|
|
||||||
{
|
|
||||||
gui_update_cursor(TRUE, FALSE);
|
|
||||||
gui_mch_flush();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else if (STRCMP(cmd, "expr") == 0 || STRCMP(cmd, "call") == 0)
|
else if (STRCMP(cmd, "expr") == 0 || STRCMP(cmd, "call") == 0)
|
||||||
{
|
{
|
||||||
@@ -2985,8 +2978,7 @@ channel_clear_one(channel_T *channel, ch_part_T part)
|
|||||||
channel_clear(channel_T *channel)
|
channel_clear(channel_T *channel)
|
||||||
{
|
{
|
||||||
ch_log(channel, "Clearing channel");
|
ch_log(channel, "Clearing channel");
|
||||||
vim_free(channel->ch_hostname);
|
VIM_CLEAR(channel->ch_hostname);
|
||||||
channel->ch_hostname = NULL;
|
|
||||||
channel_clear_one(channel, PART_SOCK);
|
channel_clear_one(channel, PART_SOCK);
|
||||||
channel_clear_one(channel, PART_OUT);
|
channel_clear_one(channel, PART_OUT);
|
||||||
channel_clear_one(channel, PART_ERR);
|
channel_clear_one(channel, PART_ERR);
|
||||||
@@ -4466,7 +4458,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
return OK;
|
return OK;
|
||||||
if (tv->v_type != VAR_DICT)
|
if (tv->v_type != VAR_DICT)
|
||||||
{
|
{
|
||||||
EMSG(_(e_invarg));
|
EMSG(_(e_dictreq));
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
dict = tv->vval.v_dict;
|
dict = tv->vval.v_dict;
|
||||||
@@ -4549,7 +4541,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_io_buf[part] = get_tv_number(item);
|
opt->jo_io_buf[part] = get_tv_number(item);
|
||||||
if (opt->jo_io_buf[part] <= 0)
|
if (opt->jo_io_buf[part] <= 0)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), get_tv_string(item));
|
EMSG3(_(e_invargNval), hi->hi_key, get_tv_string(item));
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
if (buflist_findnr(opt->jo_io_buf[part]) == NULL)
|
if (buflist_findnr(opt->jo_io_buf[part]) == NULL)
|
||||||
@@ -4598,7 +4590,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
*lp = get_tv_number(item);
|
*lp = get_tv_number(item);
|
||||||
if (*lp < 0)
|
if (*lp < 0)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), get_tv_string(item));
|
EMSG3(_(e_invargNval), hi->hi_key, get_tv_string(item));
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4609,7 +4601,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_set |= JO_CHANNEL;
|
opt->jo_set |= JO_CHANNEL;
|
||||||
if (item->v_type != VAR_CHANNEL)
|
if (item->v_type != VAR_CHANNEL)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "channel");
|
EMSG2(_(e_invargval), "channel");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
opt->jo_channel = item->vval.v_channel;
|
opt->jo_channel = item->vval.v_channel;
|
||||||
@@ -4622,7 +4614,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_callback = get_callback(item, &opt->jo_partial);
|
opt->jo_callback = get_callback(item, &opt->jo_partial);
|
||||||
if (opt->jo_callback == NULL)
|
if (opt->jo_callback == NULL)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "callback");
|
EMSG2(_(e_invargval), "callback");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4634,7 +4626,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_out_cb = get_callback(item, &opt->jo_out_partial);
|
opt->jo_out_cb = get_callback(item, &opt->jo_out_partial);
|
||||||
if (opt->jo_out_cb == NULL)
|
if (opt->jo_out_cb == NULL)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "out_cb");
|
EMSG2(_(e_invargval), "out_cb");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4646,7 +4638,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_err_cb = get_callback(item, &opt->jo_err_partial);
|
opt->jo_err_cb = get_callback(item, &opt->jo_err_partial);
|
||||||
if (opt->jo_err_cb == NULL)
|
if (opt->jo_err_cb == NULL)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "err_cb");
|
EMSG2(_(e_invargval), "err_cb");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4658,7 +4650,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_close_cb = get_callback(item, &opt->jo_close_partial);
|
opt->jo_close_cb = get_callback(item, &opt->jo_close_partial);
|
||||||
if (opt->jo_close_cb == NULL)
|
if (opt->jo_close_cb == NULL)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "close_cb");
|
EMSG2(_(e_invargval), "close_cb");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4671,7 +4663,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
never = TRUE;
|
never = TRUE;
|
||||||
else if (STRCMP(val, "auto") != 0)
|
else if (STRCMP(val, "auto") != 0)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "drop");
|
EMSG3(_(e_invargNval), "drop", val);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
opt->jo_drop_never = never;
|
opt->jo_drop_never = never;
|
||||||
@@ -4684,7 +4676,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_exit_cb = get_callback(item, &opt->jo_exit_partial);
|
opt->jo_exit_cb = get_callback(item, &opt->jo_exit_partial);
|
||||||
if (opt->jo_exit_cb == NULL)
|
if (opt->jo_exit_cb == NULL)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "exit_cb");
|
EMSG2(_(e_invargval), "exit_cb");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4697,7 +4689,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_term_name = get_tv_string_chk(item);
|
opt->jo_term_name = get_tv_string_chk(item);
|
||||||
if (opt->jo_term_name == NULL)
|
if (opt->jo_term_name == NULL)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "term_name");
|
EMSG2(_(e_invargval), "term_name");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4708,7 +4700,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
val = get_tv_string(item);
|
val = get_tv_string(item);
|
||||||
if (STRCMP(val, "open") != 0 && STRCMP(val, "close") != 0)
|
if (STRCMP(val, "open") != 0 && STRCMP(val, "close") != 0)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), val);
|
EMSG3(_(e_invargNval), "term_finish", val);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
opt->jo_set2 |= JO2_TERM_FINISH;
|
opt->jo_set2 |= JO2_TERM_FINISH;
|
||||||
@@ -4732,7 +4724,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
}
|
}
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "term_opencmd");
|
EMSG2(_(e_invargval), "term_opencmd");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4746,7 +4738,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
p = opt->jo_eof_chars = get_tv_string_chk(item);
|
p = opt->jo_eof_chars = get_tv_string_chk(item);
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "term_opencmd");
|
EMSG2(_(e_invargval), "eof_chars");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4801,7 +4793,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_cwd = get_tv_string_buf_chk(item, opt->jo_cwd_buf);
|
opt->jo_cwd = get_tv_string_buf_chk(item, opt->jo_cwd_buf);
|
||||||
if (opt->jo_cwd == NULL || !mch_isdir(opt->jo_cwd))
|
if (opt->jo_cwd == NULL || !mch_isdir(opt->jo_cwd))
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "cwd");
|
EMSG2(_(e_invargval), "cwd");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
opt->jo_set |= JO2_CWD;
|
opt->jo_set |= JO2_CWD;
|
||||||
@@ -4846,7 +4838,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_part = PART_OUT;
|
opt->jo_part = PART_OUT;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), val);
|
EMSG3(_(e_invargNval), "part", val);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4866,7 +4858,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
opt->jo_soe_buf);
|
opt->jo_soe_buf);
|
||||||
if (opt->jo_stoponexit == NULL)
|
if (opt->jo_stoponexit == NULL)
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), "stoponexit");
|
EMSG2(_(e_invargval), "stoponexit");
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2634,7 +2634,7 @@ if test -z "$SKIP_GTK2"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test "X$PKG_CONFIG" = "X"; then
|
if test "X$PKG_CONFIG" = "X"; then
|
||||||
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
AC_PATH_TOOL(PKG_CONFIG, pkg-config, no)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$PKG_CONFIG" != "xno"; then
|
if test "x$PKG_CONFIG" != "xno"; then
|
||||||
@@ -2686,7 +2686,7 @@ if test -z "$SKIP_GTK3"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test "X$PKG_CONFIG" = "X"; then
|
if test "X$PKG_CONFIG" = "X"; then
|
||||||
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
AC_PATH_TOOL(PKG_CONFIG, pkg-config, no)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$PKG_CONFIG" != "xno"; then
|
if test "x$PKG_CONFIG" != "xno"; then
|
||||||
@@ -3797,7 +3797,7 @@ dnl when -lacl works, also try to use -lattr (required for Debian).
|
|||||||
dnl On Solaris, use the acl_get/set functions in libsec, if present.
|
dnl On Solaris, use the acl_get/set functions in libsec, if present.
|
||||||
AC_MSG_CHECKING(--disable-acl argument)
|
AC_MSG_CHECKING(--disable-acl argument)
|
||||||
AC_ARG_ENABLE(acl,
|
AC_ARG_ENABLE(acl,
|
||||||
[ --disable-acl Don't check for ACL support.],
|
[ --disable-acl No check for ACL support.],
|
||||||
, [enable_acl="yes"])
|
, [enable_acl="yes"])
|
||||||
if test "$enable_acl" = "yes"; then
|
if test "$enable_acl" = "yes"; then
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
@@ -4366,6 +4366,20 @@ if test "$GCC" = yes; then
|
|||||||
fi
|
fi
|
||||||
AC_SUBST(DEPEND_CFLAGS_FILTER)
|
AC_SUBST(DEPEND_CFLAGS_FILTER)
|
||||||
|
|
||||||
|
dnl On some systems AC_SYS_LARGEFILE determines that -D_FILE_OFFSET_BITS=64
|
||||||
|
dnl isn't required, but the CFLAGS for some of the libraries we're using
|
||||||
|
dnl include the define. Since the define changes the size of some datatypes
|
||||||
|
dnl (e.g. ino_t and off_t), all of Vim's modules must be compiled with a
|
||||||
|
dnl consistent value. It's therefore safest to force the use of the define
|
||||||
|
dnl if it's present in any of the *_CFLAGS variables.
|
||||||
|
AC_MSG_CHECKING(whether we need to force -D_FILE_OFFSET_BITS=64)
|
||||||
|
if echo "$CFLAGS $LUA_CFLAGS $MZSCHEME_CFLAGS $PERL_CFLAGS $PYTHON_GETPATH_CFLAGS $PYTHON_CFLAGS $PYTHON3_CFLAGS $TCL_CFLAGS $RUBY_CFLAGS $GTK_CFLAGS" | grep -q D_FILE_OFFSET_BITS 2>/dev/null; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(_FILE_OFFSET_BITS, 64)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
|
||||||
dnl link.sh tries to avoid overlinking in a hackish way.
|
dnl link.sh tries to avoid overlinking in a hackish way.
|
||||||
dnl At least GNU ld supports --as-needed which provides the same functionality
|
dnl At least GNU ld supports --as-needed which provides the same functionality
|
||||||
dnl at linker level. Let's use it.
|
dnl at linker level. Let's use it.
|
||||||
|
|||||||
@@ -118,6 +118,9 @@ static cryptmethod_T cryptmethods[CRYPT_M_COUNT] = {
|
|||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
crypt_blowfish_encode, crypt_blowfish_decode,
|
crypt_blowfish_encode, crypt_blowfish_decode,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/* NOTE: when adding a new method, use some random bytes for the magic key,
|
||||||
|
* to avoid that a text file is recognized as encrypted. */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define CRYPT_MAGIC_LEN 12 /* cannot change */
|
#define CRYPT_MAGIC_LEN 12 /* cannot change */
|
||||||
@@ -349,10 +352,7 @@ crypt_create_for_writing(
|
|||||||
|
|
||||||
state = crypt_create(method_nr, key, salt, salt_len, seed, seed_len);
|
state = crypt_create(method_nr, key, salt, salt_len, seed, seed_len);
|
||||||
if (state == NULL)
|
if (state == NULL)
|
||||||
{
|
VIM_CLEAR(*header);
|
||||||
vim_free(*header);
|
|
||||||
*header = NULL;
|
|
||||||
}
|
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
26
src/diff.c
26
src/diff.c
@@ -872,13 +872,9 @@ diff_file(
|
|||||||
(diff_flags & DIFF_ICASE) ? "-i " : "",
|
(diff_flags & DIFF_ICASE) ? "-i " : "",
|
||||||
tmp_orig, tmp_new);
|
tmp_orig, tmp_new);
|
||||||
append_redir(cmd, (int)len, p_srr, tmp_diff);
|
append_redir(cmd, (int)len, p_srr, tmp_diff);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
block_autocmds(); /* Avoid ShellCmdPost stuff */
|
block_autocmds(); /* Avoid ShellCmdPost stuff */
|
||||||
#endif
|
|
||||||
(void)call_shell(cmd, SHELL_FILTER|SHELL_SILENT|SHELL_DOOUT);
|
(void)call_shell(cmd, SHELL_FILTER|SHELL_SILENT|SHELL_DOOUT);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
unblock_autocmds();
|
unblock_autocmds();
|
||||||
#endif
|
|
||||||
vim_free(cmd);
|
vim_free(cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -984,13 +980,9 @@ ex_diffpatch(exarg_T *eap)
|
|||||||
* cooked mode to allow the user to respond to prompts. */
|
* cooked mode to allow the user to respond to prompts. */
|
||||||
vim_snprintf((char *)buf, buflen, "patch -o %s %s < %s",
|
vim_snprintf((char *)buf, buflen, "patch -o %s %s < %s",
|
||||||
tmp_new, tmp_orig, esc_name);
|
tmp_new, tmp_orig, esc_name);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
block_autocmds(); /* Avoid ShellCmdPost stuff */
|
block_autocmds(); /* Avoid ShellCmdPost stuff */
|
||||||
#endif
|
|
||||||
(void)call_shell(buf, SHELL_FILTER | SHELL_COOKED);
|
(void)call_shell(buf, SHELL_FILTER | SHELL_COOKED);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
unblock_autocmds();
|
unblock_autocmds();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef UNIX
|
#ifdef UNIX
|
||||||
@@ -1052,11 +1044,9 @@ ex_diffpatch(exarg_T *eap)
|
|||||||
eap->arg = newname;
|
eap->arg = newname;
|
||||||
ex_file(eap);
|
ex_file(eap);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Do filetype detection with the new name. */
|
/* Do filetype detection with the new name. */
|
||||||
if (au_has_group((char_u *)"filetypedetect"))
|
if (au_has_group((char_u *)"filetypedetect"))
|
||||||
do_cmdline_cmd((char_u *)":doau filetypedetect BufRead");
|
do_cmdline_cmd((char_u *)":doau filetypedetect BufRead");
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1170,16 +1160,12 @@ diff_win_options(
|
|||||||
# endif
|
# endif
|
||||||
|
|
||||||
/* Use 'scrollbind' and 'cursorbind' when available */
|
/* Use 'scrollbind' and 'cursorbind' when available */
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
if (!wp->w_p_diff)
|
if (!wp->w_p_diff)
|
||||||
wp->w_p_scb_save = wp->w_p_scb;
|
wp->w_p_scb_save = wp->w_p_scb;
|
||||||
wp->w_p_scb = TRUE;
|
wp->w_p_scb = TRUE;
|
||||||
#endif
|
|
||||||
#ifdef FEAT_CURSORBIND
|
|
||||||
if (!wp->w_p_diff)
|
if (!wp->w_p_diff)
|
||||||
wp->w_p_crb_save = wp->w_p_crb;
|
wp->w_p_crb_save = wp->w_p_crb;
|
||||||
wp->w_p_crb = TRUE;
|
wp->w_p_crb = TRUE;
|
||||||
#endif
|
|
||||||
if (!wp->w_p_diff)
|
if (!wp->w_p_diff)
|
||||||
wp->w_p_wrap_save = wp->w_p_wrap;
|
wp->w_p_wrap_save = wp->w_p_wrap;
|
||||||
wp->w_p_wrap = FALSE;
|
wp->w_p_wrap = FALSE;
|
||||||
@@ -1209,10 +1195,8 @@ diff_win_options(
|
|||||||
/* make sure topline is not halfway a fold */
|
/* make sure topline is not halfway a fold */
|
||||||
changed_window_setting_win(wp);
|
changed_window_setting_win(wp);
|
||||||
# endif
|
# endif
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
if (vim_strchr(p_sbo, 'h') == NULL)
|
if (vim_strchr(p_sbo, 'h') == NULL)
|
||||||
do_cmdline_cmd((char_u *)"set sbo+=hor");
|
do_cmdline_cmd((char_u *)"set sbo+=hor");
|
||||||
#endif
|
|
||||||
/* Save the current values, to be restored in ex_diffoff(). */
|
/* Save the current values, to be restored in ex_diffoff(). */
|
||||||
wp->w_p_diff_saved = TRUE;
|
wp->w_p_diff_saved = TRUE;
|
||||||
|
|
||||||
@@ -1231,9 +1215,7 @@ diff_win_options(
|
|||||||
ex_diffoff(exarg_T *eap)
|
ex_diffoff(exarg_T *eap)
|
||||||
{
|
{
|
||||||
win_T *wp;
|
win_T *wp;
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
int diffwin = FALSE;
|
int diffwin = FALSE;
|
||||||
#endif
|
|
||||||
|
|
||||||
FOR_ALL_WINDOWS(wp)
|
FOR_ALL_WINDOWS(wp)
|
||||||
{
|
{
|
||||||
@@ -1247,14 +1229,10 @@ ex_diffoff(exarg_T *eap)
|
|||||||
if (wp->w_p_diff_saved)
|
if (wp->w_p_diff_saved)
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
if (wp->w_p_scb)
|
if (wp->w_p_scb)
|
||||||
wp->w_p_scb = wp->w_p_scb_save;
|
wp->w_p_scb = wp->w_p_scb_save;
|
||||||
#endif
|
|
||||||
#ifdef FEAT_CURSORBIND
|
|
||||||
if (wp->w_p_crb)
|
if (wp->w_p_crb)
|
||||||
wp->w_p_crb = wp->w_p_crb_save;
|
wp->w_p_crb = wp->w_p_crb_save;
|
||||||
#endif
|
|
||||||
if (!wp->w_p_wrap)
|
if (!wp->w_p_wrap)
|
||||||
wp->w_p_wrap = wp->w_p_wrap_save;
|
wp->w_p_wrap = wp->w_p_wrap_save;
|
||||||
#ifdef FEAT_FOLDING
|
#ifdef FEAT_FOLDING
|
||||||
@@ -1286,20 +1264,16 @@ ex_diffoff(exarg_T *eap)
|
|||||||
/* Note: 'sbo' is not restored, it's a global option. */
|
/* Note: 'sbo' is not restored, it's a global option. */
|
||||||
diff_buf_adjust(wp);
|
diff_buf_adjust(wp);
|
||||||
}
|
}
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
diffwin |= wp->w_p_diff;
|
diffwin |= wp->w_p_diff;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Also remove hidden buffers from the list. */
|
/* Also remove hidden buffers from the list. */
|
||||||
if (eap->forceit)
|
if (eap->forceit)
|
||||||
diff_buf_clear();
|
diff_buf_clear();
|
||||||
|
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
/* Remove "hor" from from 'scrollopt' if there are no diff windows left. */
|
/* Remove "hor" from from 'scrollopt' if there are no diff windows left. */
|
||||||
if (!diffwin && vim_strchr(p_sbo, 'h') != NULL)
|
if (!diffwin && vim_strchr(p_sbo, 'h') != NULL)
|
||||||
do_cmdline_cmd((char_u *)"set sbo-=hor");
|
do_cmdline_cmd((char_u *)"set sbo-=hor");
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1974,6 +1974,41 @@ do_digraph(int c)
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Find a digraph for "val". If found return the string to display it.
|
||||||
|
* If not found return NULL.
|
||||||
|
*/
|
||||||
|
char_u *
|
||||||
|
get_digraph_for_char(val)
|
||||||
|
int val;
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
int use_defaults;
|
||||||
|
digr_T *dp;
|
||||||
|
static char_u r[3];
|
||||||
|
|
||||||
|
for (use_defaults = 0; use_defaults <= 1; use_defaults++)
|
||||||
|
{
|
||||||
|
if (use_defaults == 0)
|
||||||
|
dp = (digr_T *)user_digraphs.ga_data;
|
||||||
|
else
|
||||||
|
dp = digraphdefault;
|
||||||
|
for (i = 0; use_defaults ? dp->char1 != NUL
|
||||||
|
: i < user_digraphs.ga_len; ++i)
|
||||||
|
{
|
||||||
|
if (dp->result == val)
|
||||||
|
{
|
||||||
|
r[0] = dp->char1;
|
||||||
|
r[1] = dp->char2;
|
||||||
|
r[2] = NUL;
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
++dp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get a digraph. Used after typing CTRL-K on the command line or in normal
|
* Get a digraph. Used after typing CTRL-K on the command line or in normal
|
||||||
* mode.
|
* mode.
|
||||||
@@ -2452,9 +2487,8 @@ keymap_unload(void)
|
|||||||
{
|
{
|
||||||
vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s", kp[i].from);
|
vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s", kp[i].from);
|
||||||
(void)do_map(1, buf, LANGMAP, FALSE);
|
(void)do_map(1, buf, LANGMAP, FALSE);
|
||||||
vim_free(kp[i].from);
|
|
||||||
vim_free(kp[i].to);
|
|
||||||
}
|
}
|
||||||
|
keymap_clear(&curbuf->b_kmap_ga);
|
||||||
|
|
||||||
p_cpo = save_cpo;
|
p_cpo = save_cpo;
|
||||||
|
|
||||||
@@ -2463,4 +2497,16 @@ keymap_unload(void)
|
|||||||
status_redraw_curbuf();
|
status_redraw_curbuf();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
keymap_clear(garray_T *kmap)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
kmap_T *kp = (kmap_T *)kmap->ga_data;
|
||||||
|
|
||||||
|
for (i = 0; i < kmap->ga_len; ++i)
|
||||||
|
{
|
||||||
|
vim_free(kp[i].from);
|
||||||
|
vim_free(kp[i].to);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif /* FEAT_KEYMAP */
|
#endif /* FEAT_KEYMAP */
|
||||||
|
|||||||
235
src/edit.c
235
src/edit.c
@@ -19,6 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
# define CTRL_X_WANT_IDENT 0x100
|
# define CTRL_X_WANT_IDENT 0x100
|
||||||
|
|
||||||
|
# define CTRL_X_NORMAL 0 /* CTRL-N CTRL-P completion, default */
|
||||||
# define CTRL_X_NOT_DEFINED_YET 1
|
# define CTRL_X_NOT_DEFINED_YET 1
|
||||||
# define CTRL_X_SCROLL 2
|
# define CTRL_X_SCROLL 2
|
||||||
# define CTRL_X_WHOLE_LINE 3
|
# define CTRL_X_WHOLE_LINE 3
|
||||||
@@ -37,19 +38,20 @@
|
|||||||
# define CTRL_X_EVAL 16 /* for builtin function complete() */
|
# define CTRL_X_EVAL 16 /* for builtin function complete() */
|
||||||
|
|
||||||
# define CTRL_X_MSG(i) ctrl_x_msgs[(i) & ~CTRL_X_WANT_IDENT]
|
# define CTRL_X_MSG(i) ctrl_x_msgs[(i) & ~CTRL_X_WANT_IDENT]
|
||||||
#define CTRL_X_MODE_LINE_OR_EVAL(m) (m == CTRL_X_WHOLE_LINE || m == CTRL_X_EVAL)
|
# define CTRL_X_MODE_LINE_OR_EVAL(m) ((m) == CTRL_X_WHOLE_LINE || (m) == CTRL_X_EVAL)
|
||||||
|
|
||||||
|
/* Message for CTRL-X mode, index is ctrl_x_mode. */
|
||||||
static char *ctrl_x_msgs[] =
|
static char *ctrl_x_msgs[] =
|
||||||
{
|
{
|
||||||
N_(" Keyword completion (^N^P)"), /* ctrl_x_mode == 0, ^P/^N compl. */
|
N_(" Keyword completion (^N^P)"), /* CTRL_X_NORMAL, ^P/^N compl. */
|
||||||
N_(" ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"),
|
N_(" ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"),
|
||||||
NULL,
|
NULL, /* CTRL_X_SCROLL: depends on state */
|
||||||
N_(" Whole line completion (^L^N^P)"),
|
N_(" Whole line completion (^L^N^P)"),
|
||||||
N_(" File name completion (^F^N^P)"),
|
N_(" File name completion (^F^N^P)"),
|
||||||
N_(" Tag completion (^]^N^P)"),
|
N_(" Tag completion (^]^N^P)"),
|
||||||
N_(" Path pattern completion (^N^P)"),
|
N_(" Path pattern completion (^N^P)"),
|
||||||
N_(" Definition completion (^D^N^P)"),
|
N_(" Definition completion (^D^N^P)"),
|
||||||
NULL,
|
NULL, /* CTRL_X_FINISHED */
|
||||||
N_(" Dictionary completion (^K^N^P)"),
|
N_(" Dictionary completion (^K^N^P)"),
|
||||||
N_(" Thesaurus completion (^T^N^P)"),
|
N_(" Thesaurus completion (^T^N^P)"),
|
||||||
N_(" Command-line completion (^V^N^P)"),
|
N_(" Command-line completion (^V^N^P)"),
|
||||||
@@ -127,6 +129,9 @@ static int compl_restarting = FALSE; /* don't insert match */
|
|||||||
* FALSE the word to be completed must be located. */
|
* FALSE the word to be completed must be located. */
|
||||||
static int compl_started = FALSE;
|
static int compl_started = FALSE;
|
||||||
|
|
||||||
|
/* Which Ctrl-X mode are we in? */
|
||||||
|
static int ctrl_x_mode = CTRL_X_NORMAL;
|
||||||
|
|
||||||
/* Set when doing something for completion that may call edit() recursively,
|
/* Set when doing something for completion that may call edit() recursively,
|
||||||
* which is not allowed. */
|
* which is not allowed. */
|
||||||
static int compl_busy = FALSE;
|
static int compl_busy = FALSE;
|
||||||
@@ -268,7 +273,7 @@ static int ins_ctrl_ey(int tc);
|
|||||||
static void ins_try_si(int c);
|
static void ins_try_si(int c);
|
||||||
#endif
|
#endif
|
||||||
static colnr_T get_nolist_virtcol(void);
|
static colnr_T get_nolist_virtcol(void);
|
||||||
#ifdef FEAT_AUTOCMD
|
#if defined(FEAT_EVAL)
|
||||||
static char_u *do_insert_char_pre(int c);
|
static char_u *do_insert_char_pre(int c);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -383,7 +388,6 @@ edit(
|
|||||||
ins_compl_clear(); /* clear stuff for CTRL-X mode */
|
ins_compl_clear(); /* clear stuff for CTRL-X mode */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/*
|
/*
|
||||||
* Trigger InsertEnter autocommands. Do not do this for "r<CR>" or "grx".
|
* Trigger InsertEnter autocommands. Do not do this for "r<CR>" or "grx".
|
||||||
*/
|
*/
|
||||||
@@ -423,7 +427,6 @@ edit(
|
|||||||
State = save_state;
|
State = save_state;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FEAT_CONCEAL
|
#ifdef FEAT_CONCEAL
|
||||||
/* Check if the cursor line needs redrawing before changing State. If
|
/* Check if the cursor line needs redrawing before changing State. If
|
||||||
@@ -516,7 +519,7 @@ edit(
|
|||||||
*/
|
*/
|
||||||
if (curbuf->b_p_iminsert == B_IMODE_LMAP)
|
if (curbuf->b_p_iminsert == B_IMODE_LMAP)
|
||||||
State |= LANGMAP;
|
State |= LANGMAP;
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef HAVE_INPUT_METHOD
|
||||||
im_set_active(curbuf->b_p_iminsert == B_IMODE_IM);
|
im_set_active(curbuf->b_p_iminsert == B_IMODE_IM);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -761,15 +764,11 @@ edit(
|
|||||||
*/
|
*/
|
||||||
ins_redraw(TRUE);
|
ins_redraw(TRUE);
|
||||||
|
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
if (curwin->w_p_scb)
|
if (curwin->w_p_scb)
|
||||||
do_check_scrollbind(TRUE);
|
do_check_scrollbind(TRUE);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FEAT_CURSORBIND
|
|
||||||
if (curwin->w_p_crb)
|
if (curwin->w_p_crb)
|
||||||
do_check_cursorbind();
|
do_check_cursorbind();
|
||||||
#endif
|
|
||||||
update_curswant();
|
update_curswant();
|
||||||
old_topline = curwin->w_topline;
|
old_topline = curwin->w_topline;
|
||||||
#ifdef FEAT_DIFF
|
#ifdef FEAT_DIFF
|
||||||
@@ -800,10 +799,8 @@ edit(
|
|||||||
c = safe_vgetc();
|
c = safe_vgetc();
|
||||||
} while (c == K_IGNORE || c == K_NOP);
|
} while (c == K_IGNORE || c == K_NOP);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */
|
/* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */
|
||||||
did_cursorhold = TRUE;
|
did_cursorhold = TRUE;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FEAT_RIGHTLEFT
|
#ifdef FEAT_RIGHTLEFT
|
||||||
if (p_hkmap && KeyTyped)
|
if (p_hkmap && KeyTyped)
|
||||||
@@ -851,7 +848,7 @@ edit(
|
|||||||
* completion: Add to "compl_leader". */
|
* completion: Add to "compl_leader". */
|
||||||
if (ins_compl_accept_char(c))
|
if (ins_compl_accept_char(c))
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
#if defined(FEAT_EVAL)
|
||||||
/* Trigger InsertCharPre. */
|
/* Trigger InsertCharPre. */
|
||||||
char_u *str = do_insert_char_pre(c);
|
char_u *str = do_insert_char_pre(c);
|
||||||
char_u *p;
|
char_u *p;
|
||||||
@@ -1025,12 +1022,10 @@ doESCkey:
|
|||||||
|
|
||||||
if (ins_esc(&count, cmdchar, nomove))
|
if (ins_esc(&count, cmdchar, nomove))
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (cmdchar != 'r' && cmdchar != 'v')
|
if (cmdchar != 'r' && cmdchar != 'v')
|
||||||
apply_autocmds(EVENT_INSERTLEAVE, NULL, NULL,
|
apply_autocmds(EVENT_INSERTLEAVE, NULL, NULL,
|
||||||
FALSE, curbuf);
|
FALSE, curbuf);
|
||||||
did_cursorhold = FALSE;
|
did_cursorhold = FALSE;
|
||||||
#endif
|
|
||||||
return (c == Ctrl_O);
|
return (c == Ctrl_O);
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
@@ -1229,12 +1224,10 @@ doESCkey:
|
|||||||
case K_IGNORE: /* Something mapped to nothing */
|
case K_IGNORE: /* Something mapped to nothing */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
case K_CURSORHOLD: /* Didn't type something for a while. */
|
case K_CURSORHOLD: /* Didn't type something for a while. */
|
||||||
apply_autocmds(EVENT_CURSORHOLDI, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_CURSORHOLDI, NULL, NULL, FALSE, curbuf);
|
||||||
did_cursorhold = TRUE;
|
did_cursorhold = TRUE;
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FEAT_GUI_W32
|
#ifdef FEAT_GUI_W32
|
||||||
/* On Win32 ignore <M-F4>, we get it when closing the window was
|
/* On Win32 ignore <M-F4>, we get it when closing the window was
|
||||||
@@ -1449,7 +1442,8 @@ doESCkey:
|
|||||||
/* if 'complete' is empty then plain ^P is no longer special,
|
/* if 'complete' is empty then plain ^P is no longer special,
|
||||||
* but it is under other ^X modes */
|
* but it is under other ^X modes */
|
||||||
if (*curbuf->b_p_cpt == NUL
|
if (*curbuf->b_p_cpt == NUL
|
||||||
&& ctrl_x_mode != 0
|
&& (ctrl_x_mode == CTRL_X_NORMAL
|
||||||
|
|| ctrl_x_mode == CTRL_X_WHOLE_LINE)
|
||||||
&& !(compl_cont_status & CONT_LOCAL))
|
&& !(compl_cont_status & CONT_LOCAL))
|
||||||
goto normalchar;
|
goto normalchar;
|
||||||
|
|
||||||
@@ -1482,7 +1476,7 @@ normalchar:
|
|||||||
/*
|
/*
|
||||||
* Insert a normal character.
|
* Insert a normal character.
|
||||||
*/
|
*/
|
||||||
#ifdef FEAT_AUTOCMD
|
#if defined(FEAT_EVAL)
|
||||||
if (!p_paste)
|
if (!p_paste)
|
||||||
{
|
{
|
||||||
/* Trigger InsertCharPre. */
|
/* Trigger InsertCharPre. */
|
||||||
@@ -1559,16 +1553,14 @@ normalchar:
|
|||||||
break;
|
break;
|
||||||
} /* end of switch (c) */
|
} /* end of switch (c) */
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* If typed something may trigger CursorHoldI again. */
|
/* If typed something may trigger CursorHoldI again. */
|
||||||
if (c != K_CURSORHOLD
|
if (c != K_CURSORHOLD
|
||||||
#ifdef FEAT_COMPL_FUNC
|
#ifdef FEAT_COMPL_FUNC
|
||||||
/* but not in CTRL-X mode, a script can't restore the state */
|
/* but not in CTRL-X mode, a script can't restore the state */
|
||||||
&& ctrl_x_mode == 0
|
&& ctrl_x_mode == CTRL_X_NORMAL
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
did_cursorhold = FALSE;
|
did_cursorhold = FALSE;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If the cursor was moved we didn't just insert a space */
|
/* If the cursor was moved we didn't just insert a space */
|
||||||
if (arrow_used)
|
if (arrow_used)
|
||||||
@@ -1577,7 +1569,7 @@ normalchar:
|
|||||||
#ifdef FEAT_CINDENT
|
#ifdef FEAT_CINDENT
|
||||||
if (can_cindent && cindent_on()
|
if (can_cindent && cindent_on()
|
||||||
# ifdef FEAT_INS_EXPAND
|
# ifdef FEAT_INS_EXPAND
|
||||||
&& ctrl_x_mode == 0
|
&& ctrl_x_mode == CTRL_X_NORMAL
|
||||||
# endif
|
# endif
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@@ -1618,23 +1610,15 @@ ins_redraw(
|
|||||||
if (char_avail())
|
if (char_avail())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#if defined(FEAT_AUTOCMD) || defined(FEAT_CONCEAL)
|
#if defined(FEAT_CONCEAL)
|
||||||
/* Trigger CursorMoved if the cursor moved. Not when the popup menu is
|
/* Trigger CursorMoved if the cursor moved. Not when the popup menu is
|
||||||
* visible, the command might delete it. */
|
* visible, the command might delete it. */
|
||||||
if (ready && (
|
if (ready && (has_cursormovedI()
|
||||||
# ifdef FEAT_AUTOCMD
|
# if defined(FEAT_CONCEAL)
|
||||||
has_cursormovedI()
|
|| curwin->w_p_cole > 0
|
||||||
# endif
|
|
||||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_CONCEAL)
|
|
||||||
||
|
|
||||||
# endif
|
|
||||||
# ifdef FEAT_CONCEAL
|
|
||||||
curwin->w_p_cole > 0
|
|
||||||
# endif
|
# endif
|
||||||
)
|
)
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
&& !EQUAL_POS(last_cursormoved, curwin->w_cursor)
|
&& !EQUAL_POS(last_cursormoved, curwin->w_cursor)
|
||||||
# endif
|
|
||||||
# ifdef FEAT_INS_EXPAND
|
# ifdef FEAT_INS_EXPAND
|
||||||
&& !pum_visible()
|
&& !pum_visible()
|
||||||
# endif
|
# endif
|
||||||
@@ -1648,7 +1632,6 @@ ins_redraw(
|
|||||||
if (syntax_present(curwin) && must_redraw)
|
if (syntax_present(curwin) && must_redraw)
|
||||||
update_screen(0);
|
update_screen(0);
|
||||||
# endif
|
# endif
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
if (has_cursormovedI())
|
if (has_cursormovedI())
|
||||||
{
|
{
|
||||||
/* Make sure curswant is correct, an autocommand may call
|
/* Make sure curswant is correct, an autocommand may call
|
||||||
@@ -1656,36 +1639,40 @@ ins_redraw(
|
|||||||
update_curswant();
|
update_curswant();
|
||||||
apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf);
|
||||||
}
|
}
|
||||||
# endif
|
|
||||||
# ifdef FEAT_CONCEAL
|
# ifdef FEAT_CONCEAL
|
||||||
if (curwin->w_p_cole > 0)
|
if (curwin->w_p_cole > 0)
|
||||||
{
|
{
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
conceal_old_cursor_line = last_cursormoved.lnum;
|
conceal_old_cursor_line = last_cursormoved.lnum;
|
||||||
# endif
|
|
||||||
conceal_new_cursor_line = curwin->w_cursor.lnum;
|
conceal_new_cursor_line = curwin->w_cursor.lnum;
|
||||||
conceal_update_lines = TRUE;
|
conceal_update_lines = TRUE;
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
last_cursormoved = curwin->w_cursor;
|
last_cursormoved = curwin->w_cursor;
|
||||||
# endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Trigger TextChangedI if b_changedtick differs. */
|
/* Trigger TextChangedI if b_changedtick differs. */
|
||||||
if (ready && has_textchangedI()
|
if (ready && has_textchangedI()
|
||||||
&& last_changedtick != CHANGEDTICK(curbuf)
|
&& curbuf->b_last_changedtick != CHANGEDTICK(curbuf)
|
||||||
#ifdef FEAT_INS_EXPAND
|
#ifdef FEAT_INS_EXPAND
|
||||||
&& !pum_visible()
|
&& !pum_visible()
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (last_changedtick_buf == curbuf)
|
|
||||||
apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf);
|
||||||
last_changedtick_buf = curbuf;
|
curbuf->b_last_changedtick = CHANGEDTICK(curbuf);
|
||||||
last_changedtick = CHANGEDTICK(curbuf);
|
}
|
||||||
|
|
||||||
|
#ifdef FEAT_INS_EXPAND
|
||||||
|
/* Trigger TextChangedP if b_changedtick differs. When the popupmenu closes
|
||||||
|
* TextChangedI will need to trigger for backwards compatibility, thus use
|
||||||
|
* different b_last_changedtick* variables. */
|
||||||
|
if (ready && has_textchangedP()
|
||||||
|
&& curbuf->b_last_changedtick_pum != CHANGEDTICK(curbuf)
|
||||||
|
&& pum_visible())
|
||||||
|
{
|
||||||
|
apply_autocmds(EVENT_TEXTCHANGEDP, NULL, NULL, FALSE, curbuf);
|
||||||
|
curbuf->b_last_changedtick_pum = CHANGEDTICK(curbuf);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2241,6 +2228,24 @@ ins_ctrl_x(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Whether other than default completion has been selected.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
ctrl_x_mode_not_default(void)
|
||||||
|
{
|
||||||
|
return ctrl_x_mode != CTRL_X_NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Whether CTRL-X was typed without a following character.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
ctrl_x_mode_not_defined_yet(void)
|
||||||
|
{
|
||||||
|
return ctrl_x_mode == CTRL_X_NOT_DEFINED_YET;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return TRUE if the 'dict' or 'tsr' option can be used.
|
* Return TRUE if the 'dict' or 'tsr' option can be used.
|
||||||
*/
|
*/
|
||||||
@@ -2254,7 +2259,7 @@ has_compl_option(int dict_opt)
|
|||||||
)
|
)
|
||||||
: (*curbuf->b_p_tsr == NUL && *p_tsr == NUL))
|
: (*curbuf->b_p_tsr == NUL && *p_tsr == NUL))
|
||||||
{
|
{
|
||||||
ctrl_x_mode = 0;
|
ctrl_x_mode = CTRL_X_NORMAL;
|
||||||
edit_submode = NULL;
|
edit_submode = NULL;
|
||||||
msg_attr(dict_opt ? (char_u *)_("'dictionary' option is empty")
|
msg_attr(dict_opt ? (char_u *)_("'dictionary' option is empty")
|
||||||
: (char_u *)_("'thesaurus' option is empty"),
|
: (char_u *)_("'thesaurus' option is empty"),
|
||||||
@@ -2830,7 +2835,7 @@ set_completion(colnr_T startcol, list_T *list)
|
|||||||
int save_w_leftcol = curwin->w_leftcol;
|
int save_w_leftcol = curwin->w_leftcol;
|
||||||
|
|
||||||
/* If already doing completions stop it. */
|
/* If already doing completions stop it. */
|
||||||
if (ctrl_x_mode != 0)
|
if (ctrl_x_mode != CTRL_X_NORMAL)
|
||||||
ins_compl_prep(' ');
|
ins_compl_prep(' ');
|
||||||
ins_compl_clear();
|
ins_compl_clear();
|
||||||
ins_compl_free();
|
ins_compl_free();
|
||||||
@@ -2904,8 +2909,7 @@ ins_compl_del_pum(void)
|
|||||||
if (compl_match_array != NULL)
|
if (compl_match_array != NULL)
|
||||||
{
|
{
|
||||||
pum_undisplay();
|
pum_undisplay();
|
||||||
vim_free(compl_match_array);
|
VIM_CLEAR(compl_match_array);
|
||||||
compl_match_array = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3407,10 +3411,8 @@ ins_compl_free(void)
|
|||||||
compl_T *match;
|
compl_T *match;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
vim_free(compl_pattern);
|
VIM_CLEAR(compl_pattern);
|
||||||
compl_pattern = NULL;
|
VIM_CLEAR(compl_leader);
|
||||||
vim_free(compl_leader);
|
|
||||||
compl_leader = NULL;
|
|
||||||
|
|
||||||
if (compl_first_match == NULL)
|
if (compl_first_match == NULL)
|
||||||
return;
|
return;
|
||||||
@@ -3442,16 +3444,13 @@ ins_compl_clear(void)
|
|||||||
compl_cont_status = 0;
|
compl_cont_status = 0;
|
||||||
compl_started = FALSE;
|
compl_started = FALSE;
|
||||||
compl_matches = 0;
|
compl_matches = 0;
|
||||||
vim_free(compl_pattern);
|
VIM_CLEAR(compl_pattern);
|
||||||
compl_pattern = NULL;
|
VIM_CLEAR(compl_leader);
|
||||||
vim_free(compl_leader);
|
|
||||||
compl_leader = NULL;
|
|
||||||
edit_submode_extra = NULL;
|
edit_submode_extra = NULL;
|
||||||
vim_free(compl_orig_text);
|
VIM_CLEAR(compl_orig_text);
|
||||||
compl_orig_text = NULL;
|
|
||||||
compl_enter_selects = FALSE;
|
compl_enter_selects = FALSE;
|
||||||
/* clear v:completed_item */
|
/* clear v:completed_item */
|
||||||
set_vim_var_dict(VV_COMPLETED_ITEM, dict_alloc());
|
set_vim_var_dict(VV_COMPLETED_ITEM, dict_alloc_lock(VAR_FIXED));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -3553,8 +3552,7 @@ ins_compl_new_leader(void)
|
|||||||
{
|
{
|
||||||
/* Show the cursor after the match, not after the redrawn text. */
|
/* Show the cursor after the match, not after the redrawn text. */
|
||||||
setcursor();
|
setcursor();
|
||||||
out_flush();
|
out_flush_cursor(FALSE, FALSE);
|
||||||
gui_update_cursor(FALSE, FALSE);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
compl_restarting = TRUE;
|
compl_restarting = TRUE;
|
||||||
@@ -3737,7 +3735,7 @@ ins_compl_prep(int c)
|
|||||||
|
|
||||||
/* Set "compl_get_longest" when finding the first matches. */
|
/* Set "compl_get_longest" when finding the first matches. */
|
||||||
if (ctrl_x_mode == CTRL_X_NOT_DEFINED_YET
|
if (ctrl_x_mode == CTRL_X_NOT_DEFINED_YET
|
||||||
|| (ctrl_x_mode == 0 && !compl_started))
|
|| (ctrl_x_mode == CTRL_X_NORMAL && !compl_started))
|
||||||
{
|
{
|
||||||
compl_get_longest = (strstr((char *)p_cot, "longest") != NULL);
|
compl_get_longest = (strstr((char *)p_cot, "longest") != NULL);
|
||||||
compl_used_match = TRUE;
|
compl_used_match = TRUE;
|
||||||
@@ -3842,19 +3840,19 @@ ins_compl_prep(int c)
|
|||||||
else
|
else
|
||||||
compl_cont_mode = CTRL_X_NOT_DEFINED_YET;
|
compl_cont_mode = CTRL_X_NOT_DEFINED_YET;
|
||||||
}
|
}
|
||||||
ctrl_x_mode = 0;
|
ctrl_x_mode = CTRL_X_NORMAL;
|
||||||
edit_submode = NULL;
|
edit_submode = NULL;
|
||||||
showmode();
|
showmode();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ctrl_x_mode != 0)
|
else if (ctrl_x_mode != CTRL_X_NORMAL)
|
||||||
{
|
{
|
||||||
/* We're already in CTRL-X mode, do we stay in it? */
|
/* We're already in CTRL-X mode, do we stay in it? */
|
||||||
if (!vim_is_ctrl_x_key(c))
|
if (!vim_is_ctrl_x_key(c))
|
||||||
{
|
{
|
||||||
if (ctrl_x_mode == CTRL_X_SCROLL)
|
if (ctrl_x_mode == CTRL_X_SCROLL)
|
||||||
ctrl_x_mode = 0;
|
ctrl_x_mode = CTRL_X_NORMAL;
|
||||||
else
|
else
|
||||||
ctrl_x_mode = CTRL_X_FINISHED;
|
ctrl_x_mode = CTRL_X_FINISHED;
|
||||||
edit_submode = NULL;
|
edit_submode = NULL;
|
||||||
@@ -3868,8 +3866,8 @@ ins_compl_prep(int c)
|
|||||||
* 'Pattern not found') until another key is hit, then go back to
|
* 'Pattern not found') until another key is hit, then go back to
|
||||||
* showing what mode we are in. */
|
* showing what mode we are in. */
|
||||||
showmode();
|
showmode();
|
||||||
if ((ctrl_x_mode == 0 && c != Ctrl_N && c != Ctrl_P && c != Ctrl_R
|
if ((ctrl_x_mode == CTRL_X_NORMAL && c != Ctrl_N && c != Ctrl_P
|
||||||
&& !ins_compl_pum_key(c))
|
&& c != Ctrl_R && !ins_compl_pum_key(c))
|
||||||
|| ctrl_x_mode == CTRL_X_FINISHED)
|
|| ctrl_x_mode == CTRL_X_FINISHED)
|
||||||
{
|
{
|
||||||
/* Get here when we have finished typing a sequence of ^N and
|
/* Get here when we have finished typing a sequence of ^N and
|
||||||
@@ -3952,7 +3950,7 @@ ins_compl_prep(int c)
|
|||||||
compl_matches = 0;
|
compl_matches = 0;
|
||||||
if (!shortmess(SHM_COMPLETIONMENU))
|
if (!shortmess(SHM_COMPLETIONMENU))
|
||||||
msg_clr_cmdline(); /* necessary for "noshowmode" */
|
msg_clr_cmdline(); /* necessary for "noshowmode" */
|
||||||
ctrl_x_mode = 0;
|
ctrl_x_mode = CTRL_X_NORMAL;
|
||||||
compl_enter_selects = FALSE;
|
compl_enter_selects = FALSE;
|
||||||
if (edit_submode != NULL)
|
if (edit_submode != NULL)
|
||||||
{
|
{
|
||||||
@@ -3973,19 +3971,15 @@ ins_compl_prep(int c)
|
|||||||
if (want_cindent && in_cinkeys(KEY_COMPLETE, ' ', inindent(0)))
|
if (want_cindent && in_cinkeys(KEY_COMPLETE, ' ', inindent(0)))
|
||||||
do_c_expr_indent();
|
do_c_expr_indent();
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Trigger the CompleteDone event to give scripts a chance to act
|
/* Trigger the CompleteDone event to give scripts a chance to act
|
||||||
* upon the completion. */
|
* upon the completion. */
|
||||||
apply_autocmds(EVENT_COMPLETEDONE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_COMPLETEDONE, NULL, NULL, FALSE, curbuf);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
else if (ctrl_x_mode == CTRL_X_LOCAL_MSG)
|
else if (ctrl_x_mode == CTRL_X_LOCAL_MSG)
|
||||||
/* Trigger the CompleteDone event to give scripts a chance to act
|
/* Trigger the CompleteDone event to give scripts a chance to act
|
||||||
* upon the (possibly failed) completion. */
|
* upon the (possibly failed) completion. */
|
||||||
apply_autocmds(EVENT_COMPLETEDONE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_COMPLETEDONE, NULL, NULL, FALSE, curbuf);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* reset continue_* if we left expansion-mode, if we stay they'll be
|
/* reset continue_* if we left expansion-mode, if we stay they'll be
|
||||||
* (re)set properly in ins_complete() */
|
* (re)set properly in ins_complete() */
|
||||||
@@ -4219,6 +4213,8 @@ ins_compl_add_tv(typval_T *tv, int dir)
|
|||||||
(char_u *)"kind", FALSE);
|
(char_u *)"kind", FALSE);
|
||||||
cptext[CPT_INFO] = get_dict_string(tv->vval.v_dict,
|
cptext[CPT_INFO] = get_dict_string(tv->vval.v_dict,
|
||||||
(char_u *)"info", FALSE);
|
(char_u *)"info", FALSE);
|
||||||
|
cptext[CPT_USER_DATA] = get_dict_string(tv->vval.v_dict,
|
||||||
|
(char_u *)"user_data", FALSE);
|
||||||
if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL)
|
if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL)
|
||||||
icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
|
icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
|
||||||
if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
|
if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
|
||||||
@@ -4293,7 +4289,8 @@ ins_compl_get_exp(pos_T *ini)
|
|||||||
/* For ^N/^P pick a new entry from e_cpt if compl_started is off,
|
/* For ^N/^P pick a new entry from e_cpt if compl_started is off,
|
||||||
* or if found_all says this entry is done. For ^X^L only use the
|
* or if found_all says this entry is done. For ^X^L only use the
|
||||||
* entries from 'complete' that look in loaded buffers. */
|
* entries from 'complete' that look in loaded buffers. */
|
||||||
if ((ctrl_x_mode == 0 || CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode))
|
if ((ctrl_x_mode == CTRL_X_NORMAL
|
||||||
|
|| CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode))
|
||||||
&& (!compl_started || found_all))
|
&& (!compl_started || found_all))
|
||||||
{
|
{
|
||||||
found_all = FALSE;
|
found_all = FALSE;
|
||||||
@@ -4305,7 +4302,7 @@ ins_compl_get_exp(pos_T *ini)
|
|||||||
first_match_pos = *ini;
|
first_match_pos = *ini;
|
||||||
/* Move the cursor back one character so that ^N can match the
|
/* Move the cursor back one character so that ^N can match the
|
||||||
* word immediately after the cursor. */
|
* word immediately after the cursor. */
|
||||||
if (ctrl_x_mode == 0 && dec(&first_match_pos) < 0)
|
if (ctrl_x_mode == CTRL_X_NORMAL && dec(&first_match_pos) < 0)
|
||||||
{
|
{
|
||||||
/* Move the cursor to after the last character in the
|
/* Move the cursor to after the last character in the
|
||||||
* buffer, so that word at start of buffer is found
|
* buffer, so that word at start of buffer is found
|
||||||
@@ -4438,8 +4435,8 @@ ins_compl_get_exp(pos_T *ini)
|
|||||||
/* Find up to TAG_MANY matches. Avoids that an enormous number
|
/* Find up to TAG_MANY matches. Avoids that an enormous number
|
||||||
* of matches is found when compl_pattern is empty */
|
* of matches is found when compl_pattern is empty */
|
||||||
if (find_tags(compl_pattern, &num_matches, &matches,
|
if (find_tags(compl_pattern, &num_matches, &matches,
|
||||||
TAG_REGEXP | TAG_NAMES | TAG_NOIC |
|
TAG_REGEXP | TAG_NAMES | TAG_NOIC | TAG_INS_COMP
|
||||||
TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0),
|
| (ctrl_x_mode != CTRL_X_NORMAL ? TAG_VERBOSE : 0),
|
||||||
TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0)
|
TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0)
|
||||||
{
|
{
|
||||||
ins_compl_add_matches(num_matches, matches, p_ic);
|
ins_compl_add_matches(num_matches, matches, p_ic);
|
||||||
@@ -4634,8 +4631,10 @@ ins_compl_get_exp(pos_T *ini)
|
|||||||
found_new_match = OK;
|
found_new_match = OK;
|
||||||
|
|
||||||
/* break the loop for specialized modes (use 'complete' just for the
|
/* break the loop for specialized modes (use 'complete' just for the
|
||||||
* generic ctrl_x_mode == 0) or when we've found a new match */
|
* generic ctrl_x_mode == CTRL_X_NORMAL) or when we've found a new
|
||||||
if ((ctrl_x_mode != 0 && !CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode))
|
* match */
|
||||||
|
if ((ctrl_x_mode != CTRL_X_NORMAL
|
||||||
|
&& !CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode))
|
||||||
|| found_new_match != FAIL)
|
|| found_new_match != FAIL)
|
||||||
{
|
{
|
||||||
if (got_int)
|
if (got_int)
|
||||||
@@ -4644,7 +4643,8 @@ ins_compl_get_exp(pos_T *ini)
|
|||||||
if (type != -1)
|
if (type != -1)
|
||||||
ins_compl_check_keys(0, FALSE);
|
ins_compl_check_keys(0, FALSE);
|
||||||
|
|
||||||
if ((ctrl_x_mode != 0 && !CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode))
|
if ((ctrl_x_mode != CTRL_X_NORMAL
|
||||||
|
&& !CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode))
|
||||||
|| compl_interrupted)
|
|| compl_interrupted)
|
||||||
break;
|
break;
|
||||||
compl_started = TRUE;
|
compl_started = TRUE;
|
||||||
@@ -4660,13 +4660,13 @@ ins_compl_get_exp(pos_T *ini)
|
|||||||
}
|
}
|
||||||
compl_started = TRUE;
|
compl_started = TRUE;
|
||||||
|
|
||||||
if ((ctrl_x_mode == 0 || CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode))
|
if ((ctrl_x_mode == CTRL_X_NORMAL || CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode))
|
||||||
&& *e_cpt == NUL) /* Got to end of 'complete' */
|
&& *e_cpt == NUL) /* Got to end of 'complete' */
|
||||||
found_new_match = FAIL;
|
found_new_match = FAIL;
|
||||||
|
|
||||||
i = -1; /* total of matches, unknown */
|
i = -1; /* total of matches, unknown */
|
||||||
if (found_new_match == FAIL
|
if (found_new_match == FAIL || (ctrl_x_mode != CTRL_X_NORMAL
|
||||||
|| (ctrl_x_mode != 0 && !CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)))
|
&& !CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)))
|
||||||
i = ins_compl_make_cyclic();
|
i = ins_compl_make_cyclic();
|
||||||
|
|
||||||
if (compl_old_match != NULL)
|
if (compl_old_match != NULL)
|
||||||
@@ -4704,7 +4704,7 @@ ins_compl_delete(void)
|
|||||||
* flicker, thus we can't do that. */
|
* flicker, thus we can't do that. */
|
||||||
changed_cline_bef_curs();
|
changed_cline_bef_curs();
|
||||||
/* clear v:completed_item */
|
/* clear v:completed_item */
|
||||||
set_vim_var_dict(VV_COMPLETED_ITEM, dict_alloc());
|
set_vim_var_dict(VV_COMPLETED_ITEM, dict_alloc_lock(VAR_FIXED));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -4724,7 +4724,7 @@ ins_compl_insert(int in_compl_func)
|
|||||||
|
|
||||||
/* Set completed item. */
|
/* Set completed item. */
|
||||||
/* { word, abbr, menu, kind, info } */
|
/* { word, abbr, menu, kind, info } */
|
||||||
dict = dict_alloc();
|
dict = dict_alloc_lock(VAR_FIXED);
|
||||||
if (dict != NULL)
|
if (dict != NULL)
|
||||||
{
|
{
|
||||||
dict_add_nr_str(dict, "word", 0L,
|
dict_add_nr_str(dict, "word", 0L,
|
||||||
@@ -4737,6 +4737,8 @@ ins_compl_insert(int in_compl_func)
|
|||||||
EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_KIND]));
|
EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_KIND]));
|
||||||
dict_add_nr_str(dict, "info", 0L,
|
dict_add_nr_str(dict, "info", 0L,
|
||||||
EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_INFO]));
|
EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_INFO]));
|
||||||
|
dict_add_nr_str(dict, "user_data", 0L,
|
||||||
|
EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_USER_DATA]));
|
||||||
}
|
}
|
||||||
set_vim_var_dict(VV_COMPLETED_ITEM, dict);
|
set_vim_var_dict(VV_COMPLETED_ITEM, dict);
|
||||||
if (!in_compl_func)
|
if (!in_compl_func)
|
||||||
@@ -4936,8 +4938,7 @@ ins_compl_next(
|
|||||||
{
|
{
|
||||||
/* Show the cursor after the match, not after the redrawn text. */
|
/* Show the cursor after the match, not after the redrawn text. */
|
||||||
setcursor();
|
setcursor();
|
||||||
out_flush();
|
out_flush_cursor(FALSE, FALSE);
|
||||||
gui_update_cursor(FALSE, FALSE);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -5001,12 +5002,12 @@ ins_compl_next(
|
|||||||
ins_compl_check_keys(int frequency, int in_compl_func)
|
ins_compl_check_keys(int frequency, int in_compl_func)
|
||||||
{
|
{
|
||||||
static int count = 0;
|
static int count = 0;
|
||||||
|
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
/* Don't check when reading keys from a script. That would break the test
|
/* Don't check when reading keys from a script, :normal or feedkeys().
|
||||||
* scripts */
|
* That would break the test scripts. But do check for keys when called
|
||||||
if (using_script())
|
* from complete_check(). */
|
||||||
|
if (!in_compl_func && (using_script() || ex_normal_busy))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Only do this at regular intervals */
|
/* Only do this at regular intervals */
|
||||||
@@ -5168,7 +5169,8 @@ ins_complete(int c, int enable_pum)
|
|||||||
* it is a continued search
|
* it is a continued search
|
||||||
*/
|
*/
|
||||||
compl_cont_status &= ~CONT_INTRPT; /* remove INTRPT */
|
compl_cont_status &= ~CONT_INTRPT; /* remove INTRPT */
|
||||||
if (ctrl_x_mode == 0 || ctrl_x_mode == CTRL_X_PATH_PATTERNS
|
if (ctrl_x_mode == CTRL_X_NORMAL
|
||||||
|
|| ctrl_x_mode == CTRL_X_PATH_PATTERNS
|
||||||
|| ctrl_x_mode == CTRL_X_PATH_DEFINES)
|
|| ctrl_x_mode == CTRL_X_PATH_DEFINES)
|
||||||
{
|
{
|
||||||
if (compl_startpos.lnum != curwin->w_cursor.lnum)
|
if (compl_startpos.lnum != curwin->w_cursor.lnum)
|
||||||
@@ -5221,7 +5223,8 @@ ins_complete(int c, int enable_pum)
|
|||||||
if (!(compl_cont_status & CONT_ADDING)) /* normal expansion */
|
if (!(compl_cont_status & CONT_ADDING)) /* normal expansion */
|
||||||
{
|
{
|
||||||
compl_cont_mode = ctrl_x_mode;
|
compl_cont_mode = ctrl_x_mode;
|
||||||
if (ctrl_x_mode != 0) /* Remove LOCAL if ctrl_x_mode != 0 */
|
if (ctrl_x_mode != CTRL_X_NORMAL)
|
||||||
|
/* Remove LOCAL if ctrl_x_mode != CTRL_X_NORMAL */
|
||||||
compl_cont_status = 0;
|
compl_cont_status = 0;
|
||||||
compl_cont_status |= CONT_N_ADDS;
|
compl_cont_status |= CONT_N_ADDS;
|
||||||
compl_startpos = curwin->w_cursor;
|
compl_startpos = curwin->w_cursor;
|
||||||
@@ -5230,7 +5233,7 @@ ins_complete(int c, int enable_pum)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Work out completion pattern and original text -- webb */
|
/* Work out completion pattern and original text -- webb */
|
||||||
if (ctrl_x_mode == 0 || (ctrl_x_mode & CTRL_X_WANT_IDENT))
|
if (ctrl_x_mode == CTRL_X_NORMAL || (ctrl_x_mode & CTRL_X_WANT_IDENT))
|
||||||
{
|
{
|
||||||
if ((compl_cont_status & CONT_SOL)
|
if ((compl_cont_status & CONT_SOL)
|
||||||
|| ctrl_x_mode == CTRL_X_PATH_DEFINES)
|
|| ctrl_x_mode == CTRL_X_PATH_DEFINES)
|
||||||
@@ -5447,7 +5450,7 @@ ins_complete(int c, int enable_pum)
|
|||||||
return FAIL;
|
return FAIL;
|
||||||
if (col == -3)
|
if (col == -3)
|
||||||
{
|
{
|
||||||
ctrl_x_mode = 0;
|
ctrl_x_mode = CTRL_X_NORMAL;
|
||||||
edit_submode = NULL;
|
edit_submode = NULL;
|
||||||
if (!shortmess(SHM_COMPLETIONMENU))
|
if (!shortmess(SHM_COMPLETIONMENU))
|
||||||
msg_clr_cmdline();
|
msg_clr_cmdline();
|
||||||
@@ -5547,10 +5550,8 @@ ins_complete(int c, int enable_pum)
|
|||||||
if (compl_orig_text == NULL || ins_compl_add(compl_orig_text,
|
if (compl_orig_text == NULL || ins_compl_add(compl_orig_text,
|
||||||
-1, p_ic, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK)
|
-1, p_ic, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK)
|
||||||
{
|
{
|
||||||
vim_free(compl_pattern);
|
VIM_CLEAR(compl_pattern);
|
||||||
compl_pattern = NULL;
|
VIM_CLEAR(compl_orig_text);
|
||||||
vim_free(compl_orig_text);
|
|
||||||
compl_orig_text = NULL;
|
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5606,7 +5607,7 @@ ins_complete(int c, int enable_pum)
|
|||||||
* (such as M in M'exico) if not tried already. -- Acevedo */
|
* (such as M in M'exico) if not tried already. -- Acevedo */
|
||||||
if ( compl_length > 1
|
if ( compl_length > 1
|
||||||
|| (compl_cont_status & CONT_ADDING)
|
|| (compl_cont_status & CONT_ADDING)
|
||||||
|| (ctrl_x_mode != 0
|
|| (ctrl_x_mode != CTRL_X_NORMAL
|
||||||
&& ctrl_x_mode != CTRL_X_PATH_PATTERNS
|
&& ctrl_x_mode != CTRL_X_PATH_PATTERNS
|
||||||
&& ctrl_x_mode != CTRL_X_PATH_DEFINES))
|
&& ctrl_x_mode != CTRL_X_PATH_DEFINES))
|
||||||
compl_cont_status &= ~CONT_N_ADDS;
|
compl_cont_status &= ~CONT_N_ADDS;
|
||||||
@@ -6189,10 +6190,7 @@ insertchar(
|
|||||||
#ifdef FEAT_RIGHTLEFT
|
#ifdef FEAT_RIGHTLEFT
|
||||||
&& !p_ri
|
&& !p_ri
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_AUTOCMD
|
&& !has_insertcharpre())
|
||||||
&& !has_insertcharpre()
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
#define INPUT_BUFLEN 100
|
#define INPUT_BUFLEN 100
|
||||||
char_u buf[INPUT_BUFLEN + 1];
|
char_u buf[INPUT_BUFLEN + 1];
|
||||||
@@ -7179,11 +7177,9 @@ set_last_insert(int c)
|
|||||||
void
|
void
|
||||||
free_last_insert(void)
|
free_last_insert(void)
|
||||||
{
|
{
|
||||||
vim_free(last_insert);
|
VIM_CLEAR(last_insert);
|
||||||
last_insert = NULL;
|
|
||||||
# ifdef FEAT_INS_EXPAND
|
# ifdef FEAT_INS_EXPAND
|
||||||
vim_free(compl_orig_text);
|
VIM_CLEAR(compl_orig_text);
|
||||||
compl_orig_text = NULL;
|
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -7811,8 +7807,7 @@ mb_replace_pop_ins(int cc)
|
|||||||
static void
|
static void
|
||||||
replace_flush(void)
|
replace_flush(void)
|
||||||
{
|
{
|
||||||
vim_free(replace_stack);
|
VIM_CLEAR(replace_stack);
|
||||||
replace_stack = NULL;
|
|
||||||
replace_stack_len = 0;
|
replace_stack_len = 0;
|
||||||
replace_stack_nr = 0;
|
replace_stack_nr = 0;
|
||||||
}
|
}
|
||||||
@@ -8372,7 +8367,7 @@ ins_reg(void)
|
|||||||
++no_u_sync;
|
++no_u_sync;
|
||||||
if (regname == '=')
|
if (regname == '=')
|
||||||
{
|
{
|
||||||
# ifdef FEAT_MBYTE
|
# ifdef HAVE_INPUT_METHOD
|
||||||
int im_on = im_get_status();
|
int im_on = im_get_status();
|
||||||
# endif
|
# endif
|
||||||
/* Sync undo when evaluating the expression calls setline() or
|
/* Sync undo when evaluating the expression calls setline() or
|
||||||
@@ -8380,7 +8375,7 @@ ins_reg(void)
|
|||||||
u_sync_once = 2;
|
u_sync_once = 2;
|
||||||
|
|
||||||
regname = get_expr_register();
|
regname = get_expr_register();
|
||||||
# ifdef FEAT_MBYTE
|
# ifdef HAVE_INPUT_METHOD
|
||||||
/* Restore the Input Method. */
|
/* Restore the Input Method. */
|
||||||
if (im_on)
|
if (im_on)
|
||||||
im_set_active(TRUE);
|
im_set_active(TRUE);
|
||||||
@@ -8509,12 +8504,12 @@ ins_ctrl_hat(void)
|
|||||||
{
|
{
|
||||||
curbuf->b_p_iminsert = B_IMODE_LMAP;
|
curbuf->b_p_iminsert = B_IMODE_LMAP;
|
||||||
State |= LANGMAP;
|
State |= LANGMAP;
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef HAVE_INPUT_METHOD
|
||||||
im_set_active(FALSE);
|
im_set_active(FALSE);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef HAVE_INPUT_METHOD
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* There are no ":lmap" mappings, toggle IM */
|
/* There are no ":lmap" mappings, toggle IM */
|
||||||
@@ -8661,7 +8656,7 @@ ins_esc(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef HAVE_INPUT_METHOD
|
||||||
/* Disable IM to allow typing English directly for Normal mode commands.
|
/* Disable IM to allow typing English directly for Normal mode commands.
|
||||||
* When ":lmap" is enabled don't change 'iminsert' (IM can be enabled as
|
* When ":lmap" is enabled don't change 'iminsert' (IM can be enabled as
|
||||||
* well). */
|
* well). */
|
||||||
@@ -8811,7 +8806,6 @@ ins_insert(int replaceState)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
# ifdef FEAT_EVAL
|
# ifdef FEAT_EVAL
|
||||||
set_vim_var_string(VV_INSERTMODE,
|
set_vim_var_string(VV_INSERTMODE,
|
||||||
(char_u *)((State & REPLACE_FLAG) ? "i" :
|
(char_u *)((State & REPLACE_FLAG) ? "i" :
|
||||||
@@ -8821,7 +8815,6 @@ ins_insert(int replaceState)
|
|||||||
"r"), 1);
|
"r"), 1);
|
||||||
# endif
|
# endif
|
||||||
apply_autocmds(EVENT_INSERTCHANGE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_INSERTCHANGE, NULL, NULL, FALSE, curbuf);
|
||||||
#endif
|
|
||||||
if (State & REPLACE_FLAG)
|
if (State & REPLACE_FLAG)
|
||||||
State = INSERT | (State & LANGMAP);
|
State = INSERT | (State & LANGMAP);
|
||||||
else
|
else
|
||||||
@@ -10541,7 +10534,7 @@ get_nolist_virtcol(void)
|
|||||||
return curwin->w_virtcol;
|
return curwin->w_virtcol;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
#if defined(FEAT_EVAL)
|
||||||
/*
|
/*
|
||||||
* Handle the InsertCharPre autocommand.
|
* Handle the InsertCharPre autocommand.
|
||||||
* "c" is the character that was typed.
|
* "c" is the character that was typed.
|
||||||
|
|||||||
592
src/eval.c
592
src/eval.c
@@ -361,10 +361,7 @@ eval_clear(void)
|
|||||||
{
|
{
|
||||||
p = &vimvars[i];
|
p = &vimvars[i];
|
||||||
if (p->vv_di.di_tv.v_type == VAR_STRING)
|
if (p->vv_di.di_tv.v_type == VAR_STRING)
|
||||||
{
|
VIM_CLEAR(p->vv_str);
|
||||||
vim_free(p->vv_str);
|
|
||||||
p->vv_str = NULL;
|
|
||||||
}
|
|
||||||
else if (p->vv_di.di_tv.v_type == VAR_LIST)
|
else if (p->vv_di.di_tv.v_type == VAR_LIST)
|
||||||
{
|
{
|
||||||
list_unref(p->vv_list);
|
list_unref(p->vv_list);
|
||||||
@@ -569,14 +566,11 @@ var_redir_stop(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* free the collected output */
|
/* free the collected output */
|
||||||
vim_free(redir_ga.ga_data);
|
VIM_CLEAR(redir_ga.ga_data);
|
||||||
redir_ga.ga_data = NULL;
|
|
||||||
|
|
||||||
vim_free(redir_lval);
|
VIM_CLEAR(redir_lval);
|
||||||
redir_lval = NULL;
|
|
||||||
}
|
}
|
||||||
vim_free(redir_varname);
|
VIM_CLEAR(redir_varname);
|
||||||
redir_varname = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# if defined(FEAT_MBYTE) || defined(PROTO)
|
# if defined(FEAT_MBYTE) || defined(PROTO)
|
||||||
@@ -1009,10 +1003,7 @@ eval_expr(char_u *arg, char_u **nextcmd)
|
|||||||
|
|
||||||
tv = (typval_T *)alloc(sizeof(typval_T));
|
tv = (typval_T *)alloc(sizeof(typval_T));
|
||||||
if (tv != NULL && eval0(arg, tv, nextcmd, TRUE) == FAIL)
|
if (tv != NULL && eval0(arg, tv, nextcmd, TRUE) == FAIL)
|
||||||
{
|
VIM_CLEAR(tv);
|
||||||
vim_free(tv);
|
|
||||||
tv = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return tv;
|
return tv;
|
||||||
}
|
}
|
||||||
@@ -3213,8 +3204,7 @@ get_user_var_name(expand_T *xp, int idx)
|
|||||||
if (vidx < VV_LEN)
|
if (vidx < VV_LEN)
|
||||||
return cat_prefix_varname('v', (char_u *)vimvars[vidx++].vv_name);
|
return cat_prefix_varname('v', (char_u *)vimvars[vidx++].vv_name);
|
||||||
|
|
||||||
vim_free(varnamebuf);
|
VIM_CLEAR(varnamebuf);
|
||||||
varnamebuf = NULL;
|
|
||||||
varnamebuflen = 0;
|
varnamebuflen = 0;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -3246,22 +3236,6 @@ pattern_match(char_u *pat, char_u *text, int ic)
|
|||||||
return matches;
|
return matches;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* types for expressions.
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
TYPE_UNKNOWN = 0
|
|
||||||
, TYPE_EQUAL /* == */
|
|
||||||
, TYPE_NEQUAL /* != */
|
|
||||||
, TYPE_GREATER /* > */
|
|
||||||
, TYPE_GEQUAL /* >= */
|
|
||||||
, TYPE_SMALLER /* < */
|
|
||||||
, TYPE_SEQUAL /* <= */
|
|
||||||
, TYPE_MATCH /* =~ */
|
|
||||||
, TYPE_NOMATCH /* !~ */
|
|
||||||
} exptype_T;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The "evaluate" argument: When FALSE, the argument is only parsed but not
|
* The "evaluate" argument: When FALSE, the argument is only parsed but not
|
||||||
* executed. The function may return OK, but the rettv will be of type
|
* executed. The function may return OK, but the rettv will be of type
|
||||||
@@ -3541,9 +3515,6 @@ eval4(char_u **arg, typval_T *rettv, int evaluate)
|
|||||||
exptype_T type = TYPE_UNKNOWN;
|
exptype_T type = TYPE_UNKNOWN;
|
||||||
int type_is = FALSE; /* TRUE for "is" and "isnot" */
|
int type_is = FALSE; /* TRUE for "is" and "isnot" */
|
||||||
int len = 2;
|
int len = 2;
|
||||||
varnumber_T n1, n2;
|
|
||||||
char_u *s1, *s2;
|
|
||||||
char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
|
|
||||||
int ic;
|
int ic;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -3625,197 +3596,12 @@ eval4(char_u **arg, typval_T *rettv, int evaluate)
|
|||||||
clear_tv(rettv);
|
clear_tv(rettv);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (evaluate)
|
if (evaluate)
|
||||||
{
|
{
|
||||||
if (type_is && rettv->v_type != var2.v_type)
|
int ret = typval_compare(rettv, &var2, type, type_is, ic);
|
||||||
{
|
|
||||||
/* For "is" a different type always means FALSE, for "notis"
|
|
||||||
* it means TRUE. */
|
|
||||||
n1 = (type == TYPE_NEQUAL);
|
|
||||||
}
|
|
||||||
else if (rettv->v_type == VAR_LIST || var2.v_type == VAR_LIST)
|
|
||||||
{
|
|
||||||
if (type_is)
|
|
||||||
{
|
|
||||||
n1 = (rettv->v_type == var2.v_type
|
|
||||||
&& rettv->vval.v_list == var2.vval.v_list);
|
|
||||||
if (type == TYPE_NEQUAL)
|
|
||||||
n1 = !n1;
|
|
||||||
}
|
|
||||||
else if (rettv->v_type != var2.v_type
|
|
||||||
|| (type != TYPE_EQUAL && type != TYPE_NEQUAL))
|
|
||||||
{
|
|
||||||
if (rettv->v_type != var2.v_type)
|
|
||||||
EMSG(_("E691: Can only compare List with List"));
|
|
||||||
else
|
|
||||||
EMSG(_("E692: Invalid operation for List"));
|
|
||||||
clear_tv(rettv);
|
|
||||||
clear_tv(&var2);
|
clear_tv(&var2);
|
||||||
return FAIL;
|
return ret;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Compare two Lists for being equal or unequal. */
|
|
||||||
n1 = list_equal(rettv->vval.v_list, var2.vval.v_list,
|
|
||||||
ic, FALSE);
|
|
||||||
if (type == TYPE_NEQUAL)
|
|
||||||
n1 = !n1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (rettv->v_type == VAR_DICT || var2.v_type == VAR_DICT)
|
|
||||||
{
|
|
||||||
if (type_is)
|
|
||||||
{
|
|
||||||
n1 = (rettv->v_type == var2.v_type
|
|
||||||
&& rettv->vval.v_dict == var2.vval.v_dict);
|
|
||||||
if (type == TYPE_NEQUAL)
|
|
||||||
n1 = !n1;
|
|
||||||
}
|
|
||||||
else if (rettv->v_type != var2.v_type
|
|
||||||
|| (type != TYPE_EQUAL && type != TYPE_NEQUAL))
|
|
||||||
{
|
|
||||||
if (rettv->v_type != var2.v_type)
|
|
||||||
EMSG(_("E735: Can only compare Dictionary with Dictionary"));
|
|
||||||
else
|
|
||||||
EMSG(_("E736: Invalid operation for Dictionary"));
|
|
||||||
clear_tv(rettv);
|
|
||||||
clear_tv(&var2);
|
|
||||||
return FAIL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Compare two Dictionaries for being equal or unequal. */
|
|
||||||
n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict,
|
|
||||||
ic, FALSE);
|
|
||||||
if (type == TYPE_NEQUAL)
|
|
||||||
n1 = !n1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (rettv->v_type == VAR_FUNC || var2.v_type == VAR_FUNC
|
|
||||||
|| rettv->v_type == VAR_PARTIAL || var2.v_type == VAR_PARTIAL)
|
|
||||||
{
|
|
||||||
if (type != TYPE_EQUAL && type != TYPE_NEQUAL)
|
|
||||||
{
|
|
||||||
EMSG(_("E694: Invalid operation for Funcrefs"));
|
|
||||||
clear_tv(rettv);
|
|
||||||
clear_tv(&var2);
|
|
||||||
return FAIL;
|
|
||||||
}
|
|
||||||
if ((rettv->v_type == VAR_PARTIAL
|
|
||||||
&& rettv->vval.v_partial == NULL)
|
|
||||||
|| (var2.v_type == VAR_PARTIAL
|
|
||||||
&& var2.vval.v_partial == NULL))
|
|
||||||
/* when a partial is NULL assume not equal */
|
|
||||||
n1 = FALSE;
|
|
||||||
else if (type_is)
|
|
||||||
{
|
|
||||||
if (rettv->v_type == VAR_FUNC && var2.v_type == VAR_FUNC)
|
|
||||||
/* strings are considered the same if their value is
|
|
||||||
* the same */
|
|
||||||
n1 = tv_equal(rettv, &var2, ic, FALSE);
|
|
||||||
else if (rettv->v_type == VAR_PARTIAL
|
|
||||||
&& var2.v_type == VAR_PARTIAL)
|
|
||||||
n1 = (rettv->vval.v_partial == var2.vval.v_partial);
|
|
||||||
else
|
|
||||||
n1 = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
n1 = tv_equal(rettv, &var2, ic, FALSE);
|
|
||||||
if (type == TYPE_NEQUAL)
|
|
||||||
n1 = !n1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef FEAT_FLOAT
|
|
||||||
/*
|
|
||||||
* If one of the two variables is a float, compare as a float.
|
|
||||||
* When using "=~" or "!~", always compare as string.
|
|
||||||
*/
|
|
||||||
else if ((rettv->v_type == VAR_FLOAT || var2.v_type == VAR_FLOAT)
|
|
||||||
&& type != TYPE_MATCH && type != TYPE_NOMATCH)
|
|
||||||
{
|
|
||||||
float_T f1, f2;
|
|
||||||
|
|
||||||
if (rettv->v_type == VAR_FLOAT)
|
|
||||||
f1 = rettv->vval.v_float;
|
|
||||||
else
|
|
||||||
f1 = get_tv_number(rettv);
|
|
||||||
if (var2.v_type == VAR_FLOAT)
|
|
||||||
f2 = var2.vval.v_float;
|
|
||||||
else
|
|
||||||
f2 = get_tv_number(&var2);
|
|
||||||
n1 = FALSE;
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case TYPE_EQUAL: n1 = (f1 == f2); break;
|
|
||||||
case TYPE_NEQUAL: n1 = (f1 != f2); break;
|
|
||||||
case TYPE_GREATER: n1 = (f1 > f2); break;
|
|
||||||
case TYPE_GEQUAL: n1 = (f1 >= f2); break;
|
|
||||||
case TYPE_SMALLER: n1 = (f1 < f2); break;
|
|
||||||
case TYPE_SEQUAL: n1 = (f1 <= f2); break;
|
|
||||||
case TYPE_UNKNOWN:
|
|
||||||
case TYPE_MATCH:
|
|
||||||
case TYPE_NOMATCH: break; /* avoid gcc warning */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If one of the two variables is a number, compare as a number.
|
|
||||||
* When using "=~" or "!~", always compare as string.
|
|
||||||
*/
|
|
||||||
else if ((rettv->v_type == VAR_NUMBER || var2.v_type == VAR_NUMBER)
|
|
||||||
&& type != TYPE_MATCH && type != TYPE_NOMATCH)
|
|
||||||
{
|
|
||||||
n1 = get_tv_number(rettv);
|
|
||||||
n2 = get_tv_number(&var2);
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case TYPE_EQUAL: n1 = (n1 == n2); break;
|
|
||||||
case TYPE_NEQUAL: n1 = (n1 != n2); break;
|
|
||||||
case TYPE_GREATER: n1 = (n1 > n2); break;
|
|
||||||
case TYPE_GEQUAL: n1 = (n1 >= n2); break;
|
|
||||||
case TYPE_SMALLER: n1 = (n1 < n2); break;
|
|
||||||
case TYPE_SEQUAL: n1 = (n1 <= n2); break;
|
|
||||||
case TYPE_UNKNOWN:
|
|
||||||
case TYPE_MATCH:
|
|
||||||
case TYPE_NOMATCH: break; /* avoid gcc warning */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
s1 = get_tv_string_buf(rettv, buf1);
|
|
||||||
s2 = get_tv_string_buf(&var2, buf2);
|
|
||||||
if (type != TYPE_MATCH && type != TYPE_NOMATCH)
|
|
||||||
i = ic ? MB_STRICMP(s1, s2) : STRCMP(s1, s2);
|
|
||||||
else
|
|
||||||
i = 0;
|
|
||||||
n1 = FALSE;
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case TYPE_EQUAL: n1 = (i == 0); break;
|
|
||||||
case TYPE_NEQUAL: n1 = (i != 0); break;
|
|
||||||
case TYPE_GREATER: n1 = (i > 0); break;
|
|
||||||
case TYPE_GEQUAL: n1 = (i >= 0); break;
|
|
||||||
case TYPE_SMALLER: n1 = (i < 0); break;
|
|
||||||
case TYPE_SEQUAL: n1 = (i <= 0); break;
|
|
||||||
|
|
||||||
case TYPE_MATCH:
|
|
||||||
case TYPE_NOMATCH:
|
|
||||||
n1 = pattern_match(s2, s1, ic);
|
|
||||||
if (type == TYPE_NOMATCH)
|
|
||||||
n1 = !n1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TYPE_UNKNOWN: break; /* avoid gcc warning */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
clear_tv(rettv);
|
|
||||||
clear_tv(&var2);
|
|
||||||
rettv->v_type = VAR_NUMBER;
|
|
||||||
rettv->vval.v_number = n1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5339,11 +5125,9 @@ garbage_collect(int testing)
|
|||||||
FOR_ALL_TAB_WINDOWS(tp, wp)
|
FOR_ALL_TAB_WINDOWS(tp, wp)
|
||||||
abort = abort || set_ref_in_item(&wp->w_winvar.di_tv, copyID,
|
abort = abort || set_ref_in_item(&wp->w_winvar.di_tv, copyID,
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (aucmd_win != NULL)
|
if (aucmd_win != NULL)
|
||||||
abort = abort || set_ref_in_item(&aucmd_win->w_winvar.di_tv, copyID,
|
abort = abort || set_ref_in_item(&aucmd_win->w_winvar.di_tv, copyID,
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* tabpage-local variables */
|
/* tabpage-local variables */
|
||||||
FOR_ALL_TABPAGES(tp)
|
FOR_ALL_TABPAGES(tp)
|
||||||
@@ -6096,10 +5880,7 @@ get_env_tv(char_u **arg, typval_T *rettv, int evaluate)
|
|||||||
/* next try expanding things like $VIM and ${HOME} */
|
/* next try expanding things like $VIM and ${HOME} */
|
||||||
string = expand_env_save(name - 1);
|
string = expand_env_save(name - 1);
|
||||||
if (string != NULL && *string == '$')
|
if (string != NULL && *string == '$')
|
||||||
{
|
VIM_CLEAR(string);
|
||||||
vim_free(string);
|
|
||||||
string = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
name[len] = cc;
|
name[len] = cc;
|
||||||
|
|
||||||
@@ -6777,7 +6558,6 @@ v_throwpoint(char_u *oldval)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(FEAT_AUTOCMD) || defined(PROTO)
|
|
||||||
/*
|
/*
|
||||||
* Set v:cmdarg.
|
* Set v:cmdarg.
|
||||||
* If "eap" != NULL, use "eap" to generate the value and return the old value.
|
* If "eap" != NULL, use "eap" to generate the value and return the old value.
|
||||||
@@ -6849,11 +6629,10 @@ set_cmdarg(exarg_T *eap, char_u *oldarg)
|
|||||||
vimvars[VV_CMDARG].vv_str = newval;
|
vimvars[VV_CMDARG].vv_str = newval;
|
||||||
return oldval;
|
return oldval;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the value of internal variable "name".
|
* Get the value of internal variable "name".
|
||||||
* Return OK or FAIL.
|
* Return OK or FAIL. If OK is returned "rettv" must be cleared.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
get_var_tv(
|
get_var_tv(
|
||||||
@@ -7116,8 +6895,7 @@ clear_tv(typval_T *varp)
|
|||||||
func_unref(varp->vval.v_string);
|
func_unref(varp->vval.v_string);
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case VAR_STRING:
|
case VAR_STRING:
|
||||||
vim_free(varp->vval.v_string);
|
VIM_CLEAR(varp->vval.v_string);
|
||||||
varp->vval.v_string = NULL;
|
|
||||||
break;
|
break;
|
||||||
case VAR_PARTIAL:
|
case VAR_PARTIAL:
|
||||||
partial_unref(varp->vval.v_partial);
|
partial_unref(varp->vval.v_partial);
|
||||||
@@ -8433,7 +8211,7 @@ ex_execute(exarg_T *eap)
|
|||||||
win_T *
|
win_T *
|
||||||
find_win_by_nr(
|
find_win_by_nr(
|
||||||
typval_T *vp,
|
typval_T *vp,
|
||||||
tabpage_T *tp UNUSED) /* NULL for current tab page */
|
tabpage_T *tp) /* NULL for current tab page */
|
||||||
{
|
{
|
||||||
win_T *wp;
|
win_T *wp;
|
||||||
int nr;
|
int nr;
|
||||||
@@ -9051,6 +8829,75 @@ assert_equal_common(typval_T *argvars, assert_type_T atype)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
assert_equalfile(typval_T *argvars)
|
||||||
|
{
|
||||||
|
char_u buf1[NUMBUFLEN];
|
||||||
|
char_u buf2[NUMBUFLEN];
|
||||||
|
char_u *fname1 = get_tv_string_buf_chk(&argvars[0], buf1);
|
||||||
|
char_u *fname2 = get_tv_string_buf_chk(&argvars[1], buf2);
|
||||||
|
garray_T ga;
|
||||||
|
FILE *fd1;
|
||||||
|
FILE *fd2;
|
||||||
|
|
||||||
|
if (fname1 == NULL || fname2 == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
IObuff[0] = NUL;
|
||||||
|
fd1 = mch_fopen((char *)fname1, READBIN);
|
||||||
|
if (fd1 == NULL)
|
||||||
|
{
|
||||||
|
vim_snprintf((char *)IObuff, IOSIZE, (char *)e_notread, fname1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fd2 = mch_fopen((char *)fname2, READBIN);
|
||||||
|
if (fd2 == NULL)
|
||||||
|
{
|
||||||
|
fclose(fd1);
|
||||||
|
vim_snprintf((char *)IObuff, IOSIZE, (char *)e_notread, fname2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int c1, c2;
|
||||||
|
long count = 0;
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
c1 = fgetc(fd1);
|
||||||
|
c2 = fgetc(fd2);
|
||||||
|
if (c1 == EOF)
|
||||||
|
{
|
||||||
|
if (c2 != EOF)
|
||||||
|
STRCPY(IObuff, "first file is shorter");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (c2 == EOF)
|
||||||
|
{
|
||||||
|
STRCPY(IObuff, "second file is shorter");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (c1 != c2)
|
||||||
|
{
|
||||||
|
vim_snprintf((char *)IObuff, IOSIZE,
|
||||||
|
"difference at byte %ld", count);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
++count;
|
||||||
|
}
|
||||||
|
fclose(fd1);
|
||||||
|
fclose(fd2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (IObuff[0] != NUL)
|
||||||
|
{
|
||||||
|
prepare_assert_error(&ga);
|
||||||
|
ga_concat(&ga, IObuff);
|
||||||
|
assert_error(&ga);
|
||||||
|
ga_clear(&ga);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
assert_match_common(typval_T *argvars, assert_type_T atype)
|
assert_match_common(typval_T *argvars, assert_type_T atype)
|
||||||
{
|
{
|
||||||
@@ -9165,6 +9012,29 @@ assert_exception(typval_T *argvars)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
assert_beeps(typval_T *argvars)
|
||||||
|
{
|
||||||
|
char_u *cmd = get_tv_string_chk(&argvars[0]);
|
||||||
|
garray_T ga;
|
||||||
|
|
||||||
|
called_vim_beep = FALSE;
|
||||||
|
suppress_errthrow = TRUE;
|
||||||
|
emsg_silent = FALSE;
|
||||||
|
do_cmdline_cmd(cmd);
|
||||||
|
if (!called_vim_beep)
|
||||||
|
{
|
||||||
|
prepare_assert_error(&ga);
|
||||||
|
ga_concat(&ga, (char_u *)"command did not beep: ");
|
||||||
|
ga_concat(&ga, cmd);
|
||||||
|
assert_error(&ga);
|
||||||
|
ga_clear(&ga);
|
||||||
|
}
|
||||||
|
|
||||||
|
suppress_errthrow = FALSE;
|
||||||
|
emsg_on_display = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
assert_fails(typval_T *argvars)
|
assert_fails(typval_T *argvars)
|
||||||
{
|
{
|
||||||
@@ -9292,6 +9162,258 @@ fill_assert_error(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Compare "typ1" and "typ2". Put the result in "typ1".
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
typval_compare(
|
||||||
|
typval_T *typ1, /* first operand */
|
||||||
|
typval_T *typ2, /* second operand */
|
||||||
|
exptype_T type, /* operator */
|
||||||
|
int type_is, /* TRUE for "is" and "isnot" */
|
||||||
|
int ic) /* ignore case */
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
varnumber_T n1, n2;
|
||||||
|
char_u *s1, *s2;
|
||||||
|
char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
|
||||||
|
|
||||||
|
if (type_is && typ1->v_type != typ2->v_type)
|
||||||
|
{
|
||||||
|
/* For "is" a different type always means FALSE, for "notis"
|
||||||
|
* it means TRUE. */
|
||||||
|
n1 = (type == TYPE_NEQUAL);
|
||||||
|
}
|
||||||
|
else if (typ1->v_type == VAR_LIST || typ2->v_type == VAR_LIST)
|
||||||
|
{
|
||||||
|
if (type_is)
|
||||||
|
{
|
||||||
|
n1 = (typ1->v_type == typ2->v_type
|
||||||
|
&& typ1->vval.v_list == typ2->vval.v_list);
|
||||||
|
if (type == TYPE_NEQUAL)
|
||||||
|
n1 = !n1;
|
||||||
|
}
|
||||||
|
else if (typ1->v_type != typ2->v_type
|
||||||
|
|| (type != TYPE_EQUAL && type != TYPE_NEQUAL))
|
||||||
|
{
|
||||||
|
if (typ1->v_type != typ2->v_type)
|
||||||
|
EMSG(_("E691: Can only compare List with List"));
|
||||||
|
else
|
||||||
|
EMSG(_("E692: Invalid operation for List"));
|
||||||
|
clear_tv(typ1);
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Compare two Lists for being equal or unequal. */
|
||||||
|
n1 = list_equal(typ1->vval.v_list, typ2->vval.v_list,
|
||||||
|
ic, FALSE);
|
||||||
|
if (type == TYPE_NEQUAL)
|
||||||
|
n1 = !n1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (typ1->v_type == VAR_DICT || typ2->v_type == VAR_DICT)
|
||||||
|
{
|
||||||
|
if (type_is)
|
||||||
|
{
|
||||||
|
n1 = (typ1->v_type == typ2->v_type
|
||||||
|
&& typ1->vval.v_dict == typ2->vval.v_dict);
|
||||||
|
if (type == TYPE_NEQUAL)
|
||||||
|
n1 = !n1;
|
||||||
|
}
|
||||||
|
else if (typ1->v_type != typ2->v_type
|
||||||
|
|| (type != TYPE_EQUAL && type != TYPE_NEQUAL))
|
||||||
|
{
|
||||||
|
if (typ1->v_type != typ2->v_type)
|
||||||
|
EMSG(_("E735: Can only compare Dictionary with Dictionary"));
|
||||||
|
else
|
||||||
|
EMSG(_("E736: Invalid operation for Dictionary"));
|
||||||
|
clear_tv(typ1);
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Compare two Dictionaries for being equal or unequal. */
|
||||||
|
n1 = dict_equal(typ1->vval.v_dict, typ2->vval.v_dict,
|
||||||
|
ic, FALSE);
|
||||||
|
if (type == TYPE_NEQUAL)
|
||||||
|
n1 = !n1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (typ1->v_type == VAR_FUNC || typ2->v_type == VAR_FUNC
|
||||||
|
|| typ1->v_type == VAR_PARTIAL || typ2->v_type == VAR_PARTIAL)
|
||||||
|
{
|
||||||
|
if (type != TYPE_EQUAL && type != TYPE_NEQUAL)
|
||||||
|
{
|
||||||
|
EMSG(_("E694: Invalid operation for Funcrefs"));
|
||||||
|
clear_tv(typ1);
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
if ((typ1->v_type == VAR_PARTIAL
|
||||||
|
&& typ1->vval.v_partial == NULL)
|
||||||
|
|| (typ2->v_type == VAR_PARTIAL
|
||||||
|
&& typ2->vval.v_partial == NULL))
|
||||||
|
/* when a partial is NULL assume not equal */
|
||||||
|
n1 = FALSE;
|
||||||
|
else if (type_is)
|
||||||
|
{
|
||||||
|
if (typ1->v_type == VAR_FUNC && typ2->v_type == VAR_FUNC)
|
||||||
|
/* strings are considered the same if their value is
|
||||||
|
* the same */
|
||||||
|
n1 = tv_equal(typ1, typ2, ic, FALSE);
|
||||||
|
else if (typ1->v_type == VAR_PARTIAL
|
||||||
|
&& typ2->v_type == VAR_PARTIAL)
|
||||||
|
n1 = (typ1->vval.v_partial == typ2->vval.v_partial);
|
||||||
|
else
|
||||||
|
n1 = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
n1 = tv_equal(typ1, typ2, ic, FALSE);
|
||||||
|
if (type == TYPE_NEQUAL)
|
||||||
|
n1 = !n1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef FEAT_FLOAT
|
||||||
|
/*
|
||||||
|
* If one of the two variables is a float, compare as a float.
|
||||||
|
* When using "=~" or "!~", always compare as string.
|
||||||
|
*/
|
||||||
|
else if ((typ1->v_type == VAR_FLOAT || typ2->v_type == VAR_FLOAT)
|
||||||
|
&& type != TYPE_MATCH && type != TYPE_NOMATCH)
|
||||||
|
{
|
||||||
|
float_T f1, f2;
|
||||||
|
|
||||||
|
if (typ1->v_type == VAR_FLOAT)
|
||||||
|
f1 = typ1->vval.v_float;
|
||||||
|
else
|
||||||
|
f1 = get_tv_number(typ1);
|
||||||
|
if (typ2->v_type == VAR_FLOAT)
|
||||||
|
f2 = typ2->vval.v_float;
|
||||||
|
else
|
||||||
|
f2 = get_tv_number(typ2);
|
||||||
|
n1 = FALSE;
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case TYPE_EQUAL: n1 = (f1 == f2); break;
|
||||||
|
case TYPE_NEQUAL: n1 = (f1 != f2); break;
|
||||||
|
case TYPE_GREATER: n1 = (f1 > f2); break;
|
||||||
|
case TYPE_GEQUAL: n1 = (f1 >= f2); break;
|
||||||
|
case TYPE_SMALLER: n1 = (f1 < f2); break;
|
||||||
|
case TYPE_SEQUAL: n1 = (f1 <= f2); break;
|
||||||
|
case TYPE_UNKNOWN:
|
||||||
|
case TYPE_MATCH:
|
||||||
|
case TYPE_NOMATCH: break; /* avoid gcc warning */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If one of the two variables is a number, compare as a number.
|
||||||
|
* When using "=~" or "!~", always compare as string.
|
||||||
|
*/
|
||||||
|
else if ((typ1->v_type == VAR_NUMBER || typ2->v_type == VAR_NUMBER)
|
||||||
|
&& type != TYPE_MATCH && type != TYPE_NOMATCH)
|
||||||
|
{
|
||||||
|
n1 = get_tv_number(typ1);
|
||||||
|
n2 = get_tv_number(typ2);
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case TYPE_EQUAL: n1 = (n1 == n2); break;
|
||||||
|
case TYPE_NEQUAL: n1 = (n1 != n2); break;
|
||||||
|
case TYPE_GREATER: n1 = (n1 > n2); break;
|
||||||
|
case TYPE_GEQUAL: n1 = (n1 >= n2); break;
|
||||||
|
case TYPE_SMALLER: n1 = (n1 < n2); break;
|
||||||
|
case TYPE_SEQUAL: n1 = (n1 <= n2); break;
|
||||||
|
case TYPE_UNKNOWN:
|
||||||
|
case TYPE_MATCH:
|
||||||
|
case TYPE_NOMATCH: break; /* avoid gcc warning */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s1 = get_tv_string_buf(typ1, buf1);
|
||||||
|
s2 = get_tv_string_buf(typ2, buf2);
|
||||||
|
if (type != TYPE_MATCH && type != TYPE_NOMATCH)
|
||||||
|
i = ic ? MB_STRICMP(s1, s2) : STRCMP(s1, s2);
|
||||||
|
else
|
||||||
|
i = 0;
|
||||||
|
n1 = FALSE;
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case TYPE_EQUAL: n1 = (i == 0); break;
|
||||||
|
case TYPE_NEQUAL: n1 = (i != 0); break;
|
||||||
|
case TYPE_GREATER: n1 = (i > 0); break;
|
||||||
|
case TYPE_GEQUAL: n1 = (i >= 0); break;
|
||||||
|
case TYPE_SMALLER: n1 = (i < 0); break;
|
||||||
|
case TYPE_SEQUAL: n1 = (i <= 0); break;
|
||||||
|
|
||||||
|
case TYPE_MATCH:
|
||||||
|
case TYPE_NOMATCH:
|
||||||
|
n1 = pattern_match(s2, s1, ic);
|
||||||
|
if (type == TYPE_NOMATCH)
|
||||||
|
n1 = !n1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TYPE_UNKNOWN: break; /* avoid gcc warning */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
clear_tv(typ1);
|
||||||
|
typ1->v_type = VAR_NUMBER;
|
||||||
|
typ1->vval.v_number = n1;
|
||||||
|
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
char_u *
|
||||||
|
typval_tostring(arg)
|
||||||
|
typval_T *arg;
|
||||||
|
{
|
||||||
|
char_u *tofree;
|
||||||
|
char_u numbuf[NUMBUFLEN];
|
||||||
|
char_u *ret = NULL;
|
||||||
|
|
||||||
|
if (arg == NULL)
|
||||||
|
return vim_strsave((char_u *)"(does not exist)");
|
||||||
|
ret = tv2string(arg, &tofree, numbuf, 0);
|
||||||
|
/* Make a copy if we have a value but it's not in allocated memory. */
|
||||||
|
if (ret != NULL && tofree == NULL)
|
||||||
|
ret = vim_strsave(ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
var_exists(char_u *var)
|
||||||
|
{
|
||||||
|
char_u *name;
|
||||||
|
char_u *tofree;
|
||||||
|
typval_T tv;
|
||||||
|
int len = 0;
|
||||||
|
int n = FALSE;
|
||||||
|
|
||||||
|
/* get_name_len() takes care of expanding curly braces */
|
||||||
|
name = var;
|
||||||
|
len = get_name_len(&var, &tofree, TRUE, FALSE);
|
||||||
|
if (len > 0)
|
||||||
|
{
|
||||||
|
if (tofree != NULL)
|
||||||
|
name = tofree;
|
||||||
|
n = (get_var_tv(name, len, &tv, NULL, FALSE, TRUE) == OK);
|
||||||
|
if (n)
|
||||||
|
{
|
||||||
|
/* handle d.key, l[idx], f(expr) */
|
||||||
|
n = (handle_subscript(&var, &tv, TRUE, FALSE) == OK);
|
||||||
|
if (n)
|
||||||
|
clear_tv(&tv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (*var != NUL)
|
||||||
|
n = FALSE;
|
||||||
|
|
||||||
|
vim_free(tofree);
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* FEAT_EVAL */
|
#endif /* FEAT_EVAL */
|
||||||
|
|
||||||
|
|||||||
264
src/evalfunc.c
264
src/evalfunc.c
@@ -44,7 +44,9 @@ static void f_argc(typval_T *argvars, typval_T *rettv);
|
|||||||
static void f_argidx(typval_T *argvars, typval_T *rettv);
|
static void f_argidx(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_arglistid(typval_T *argvars, typval_T *rettv);
|
static void f_arglistid(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_argv(typval_T *argvars, typval_T *rettv);
|
static void f_argv(typval_T *argvars, typval_T *rettv);
|
||||||
|
static void f_assert_beeps(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_assert_equal(typval_T *argvars, typval_T *rettv);
|
static void f_assert_equal(typval_T *argvars, typval_T *rettv);
|
||||||
|
static void f_assert_equalfile(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_assert_exception(typval_T *argvars, typval_T *rettv);
|
static void f_assert_exception(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_assert_fails(typval_T *argvars, typval_T *rettv);
|
static void f_assert_fails(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_assert_false(typval_T *argvars, typval_T *rettv);
|
static void f_assert_false(typval_T *argvars, typval_T *rettv);
|
||||||
@@ -164,6 +166,7 @@ static void f_get(typval_T *argvars, typval_T *rettv);
|
|||||||
static void f_getbufinfo(typval_T *argvars, typval_T *rettv);
|
static void f_getbufinfo(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getbufline(typval_T *argvars, typval_T *rettv);
|
static void f_getbufline(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getbufvar(typval_T *argvars, typval_T *rettv);
|
static void f_getbufvar(typval_T *argvars, typval_T *rettv);
|
||||||
|
static void f_getchangelist(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getchar(typval_T *argvars, typval_T *rettv);
|
static void f_getchar(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getcharmod(typval_T *argvars, typval_T *rettv);
|
static void f_getcharmod(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getcharsearch(typval_T *argvars, typval_T *rettv);
|
static void f_getcharsearch(typval_T *argvars, typval_T *rettv);
|
||||||
@@ -180,6 +183,7 @@ static void f_getfperm(typval_T *argvars, typval_T *rettv);
|
|||||||
static void f_getfsize(typval_T *argvars, typval_T *rettv);
|
static void f_getfsize(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getftime(typval_T *argvars, typval_T *rettv);
|
static void f_getftime(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getftype(typval_T *argvars, typval_T *rettv);
|
static void f_getftype(typval_T *argvars, typval_T *rettv);
|
||||||
|
static void f_getjumplist(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getline(typval_T *argvars, typval_T *rettv);
|
static void f_getline(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getloclist(typval_T *argvars UNUSED, typval_T *rettv UNUSED);
|
static void f_getloclist(typval_T *argvars UNUSED, typval_T *rettv UNUSED);
|
||||||
static void f_getmatches(typval_T *argvars, typval_T *rettv);
|
static void f_getmatches(typval_T *argvars, typval_T *rettv);
|
||||||
@@ -193,6 +197,7 @@ static void f_gettabinfo(typval_T *argvars, typval_T *rettv);
|
|||||||
static void f_gettabvar(typval_T *argvars, typval_T *rettv);
|
static void f_gettabvar(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_gettabwinvar(typval_T *argvars, typval_T *rettv);
|
static void f_gettabwinvar(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getwininfo(typval_T *argvars, typval_T *rettv);
|
static void f_getwininfo(typval_T *argvars, typval_T *rettv);
|
||||||
|
static void f_getwinpos(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getwinposx(typval_T *argvars, typval_T *rettv);
|
static void f_getwinposx(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getwinposy(typval_T *argvars, typval_T *rettv);
|
static void f_getwinposy(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_getwinvar(typval_T *argvars, typval_T *rettv);
|
static void f_getwinvar(typval_T *argvars, typval_T *rettv);
|
||||||
@@ -482,7 +487,9 @@ static struct fst
|
|||||||
#ifdef FEAT_FLOAT
|
#ifdef FEAT_FLOAT
|
||||||
{"asin", 1, 1, f_asin}, /* WJMc */
|
{"asin", 1, 1, f_asin}, /* WJMc */
|
||||||
#endif
|
#endif
|
||||||
|
{"assert_beeps", 1, 2, f_assert_beeps},
|
||||||
{"assert_equal", 2, 3, f_assert_equal},
|
{"assert_equal", 2, 3, f_assert_equal},
|
||||||
|
{"assert_equalfile", 2, 2, f_assert_equalfile},
|
||||||
{"assert_exception", 1, 2, f_assert_exception},
|
{"assert_exception", 1, 2, f_assert_exception},
|
||||||
{"assert_fails", 1, 2, f_assert_fails},
|
{"assert_fails", 1, 2, f_assert_fails},
|
||||||
{"assert_false", 1, 2, f_assert_false},
|
{"assert_false", 1, 2, f_assert_false},
|
||||||
@@ -604,6 +611,7 @@ static struct fst
|
|||||||
{"getbufinfo", 0, 1, f_getbufinfo},
|
{"getbufinfo", 0, 1, f_getbufinfo},
|
||||||
{"getbufline", 2, 3, f_getbufline},
|
{"getbufline", 2, 3, f_getbufline},
|
||||||
{"getbufvar", 2, 3, f_getbufvar},
|
{"getbufvar", 2, 3, f_getbufvar},
|
||||||
|
{"getchangelist", 1, 1, f_getchangelist},
|
||||||
{"getchar", 0, 1, f_getchar},
|
{"getchar", 0, 1, f_getchar},
|
||||||
{"getcharmod", 0, 0, f_getcharmod},
|
{"getcharmod", 0, 0, f_getcharmod},
|
||||||
{"getcharsearch", 0, 0, f_getcharsearch},
|
{"getcharsearch", 0, 0, f_getcharsearch},
|
||||||
@@ -621,6 +629,7 @@ static struct fst
|
|||||||
{"getfsize", 1, 1, f_getfsize},
|
{"getfsize", 1, 1, f_getfsize},
|
||||||
{"getftime", 1, 1, f_getftime},
|
{"getftime", 1, 1, f_getftime},
|
||||||
{"getftype", 1, 1, f_getftype},
|
{"getftype", 1, 1, f_getftype},
|
||||||
|
{"getjumplist", 0, 2, f_getjumplist},
|
||||||
{"getline", 1, 2, f_getline},
|
{"getline", 1, 2, f_getline},
|
||||||
{"getloclist", 1, 2, f_getloclist},
|
{"getloclist", 1, 2, f_getloclist},
|
||||||
{"getmatches", 0, 0, f_getmatches},
|
{"getmatches", 0, 0, f_getmatches},
|
||||||
@@ -633,6 +642,7 @@ static struct fst
|
|||||||
{"gettabvar", 2, 3, f_gettabvar},
|
{"gettabvar", 2, 3, f_gettabvar},
|
||||||
{"gettabwinvar", 3, 4, f_gettabwinvar},
|
{"gettabwinvar", 3, 4, f_gettabwinvar},
|
||||||
{"getwininfo", 0, 1, f_getwininfo},
|
{"getwininfo", 0, 1, f_getwininfo},
|
||||||
|
{"getwinpos", 0, 1, f_getwinpos},
|
||||||
{"getwinposx", 0, 0, f_getwinposx},
|
{"getwinposx", 0, 0, f_getwinposx},
|
||||||
{"getwinposy", 0, 0, f_getwinposy},
|
{"getwinposy", 0, 0, f_getwinposy},
|
||||||
{"getwinvar", 2, 3, f_getwinvar},
|
{"getwinvar", 2, 3, f_getwinvar},
|
||||||
@@ -730,7 +740,7 @@ static struct fst
|
|||||||
{"pow", 2, 2, f_pow},
|
{"pow", 2, 2, f_pow},
|
||||||
#endif
|
#endif
|
||||||
{"prevnonblank", 1, 1, f_prevnonblank},
|
{"prevnonblank", 1, 1, f_prevnonblank},
|
||||||
{"printf", 2, 19, f_printf},
|
{"printf", 1, 19, f_printf},
|
||||||
{"pumvisible", 0, 0, f_pumvisible},
|
{"pumvisible", 0, 0, f_pumvisible},
|
||||||
#ifdef FEAT_PYTHON3
|
#ifdef FEAT_PYTHON3
|
||||||
{"py3eval", 1, 1, f_py3eval},
|
{"py3eval", 1, 1, f_py3eval},
|
||||||
@@ -841,6 +851,9 @@ static struct fst
|
|||||||
#endif
|
#endif
|
||||||
{"tempname", 0, 0, f_tempname},
|
{"tempname", 0, 0, f_tempname},
|
||||||
#ifdef FEAT_TERMINAL
|
#ifdef FEAT_TERMINAL
|
||||||
|
{"term_dumpdiff", 2, 3, f_term_dumpdiff},
|
||||||
|
{"term_dumpload", 1, 2, f_term_dumpload},
|
||||||
|
{"term_dumpwrite", 2, 3, f_term_dumpwrite},
|
||||||
{"term_getaltscreen", 1, 1, f_term_getaltscreen},
|
{"term_getaltscreen", 1, 1, f_term_getaltscreen},
|
||||||
{"term_getattr", 2, 2, f_term_getattr},
|
{"term_getattr", 2, 2, f_term_getattr},
|
||||||
{"term_getcursor", 1, 1, f_term_getcursor},
|
{"term_getcursor", 1, 1, f_term_getcursor},
|
||||||
@@ -1272,6 +1285,15 @@ f_argv(typval_T *argvars, typval_T *rettv)
|
|||||||
alist_name(&ARGLIST[idx]), -1);
|
alist_name(&ARGLIST[idx]), -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "assert_beeps(cmd [, error])" function
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
f_assert_beeps(typval_T *argvars, typval_T *rettv UNUSED)
|
||||||
|
{
|
||||||
|
assert_beeps(argvars);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "assert_equal(expected, actual[, msg])" function
|
* "assert_equal(expected, actual[, msg])" function
|
||||||
*/
|
*/
|
||||||
@@ -1281,6 +1303,15 @@ f_assert_equal(typval_T *argvars, typval_T *rettv UNUSED)
|
|||||||
assert_equal_common(argvars, ASSERT_EQUAL);
|
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)
|
||||||
|
{
|
||||||
|
assert_equalfile(argvars);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "assert_notequal(expected, actual[, msg])" function
|
* "assert_notequal(expected, actual[, msg])" function
|
||||||
*/
|
*/
|
||||||
@@ -1447,6 +1478,8 @@ f_balloon_split(typval_T *argvars, typval_T *rettv UNUSED)
|
|||||||
/* Skip the first and last item, they are always empty. */
|
/* Skip the first and last item, they are always empty. */
|
||||||
for (i = 1; i < size - 1; ++i)
|
for (i = 1; i < size - 1; ++i)
|
||||||
list_append_string(rettv->vval.v_list, array[i].pum_text, -1);
|
list_append_string(rettv->vval.v_list, array[i].pum_text, -1);
|
||||||
|
while (size > 0)
|
||||||
|
vim_free(array[--size].pum_text);
|
||||||
vim_free(array);
|
vim_free(array);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2382,7 +2415,7 @@ f_count(typval_T *argvars, typval_T *rettv)
|
|||||||
char_u *p = argvars[0].vval.v_string;
|
char_u *p = argvars[0].vval.v_string;
|
||||||
char_u *next;
|
char_u *next;
|
||||||
|
|
||||||
if (!error && expr != NULL && p != NULL)
|
if (!error && expr != NULL && *expr != NUL && p != NULL)
|
||||||
{
|
{
|
||||||
if (ic)
|
if (ic)
|
||||||
{
|
{
|
||||||
@@ -2635,9 +2668,7 @@ f_delete(typval_T *argvars, typval_T *rettv)
|
|||||||
static void
|
static void
|
||||||
f_did_filetype(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
|
f_did_filetype(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
rettv->vval.v_number = did_filetype;
|
rettv->vval.v_number = did_filetype;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2886,6 +2917,7 @@ f_execute(typval_T *argvars, typval_T *rettv)
|
|||||||
int save_emsg_silent = emsg_silent;
|
int save_emsg_silent = emsg_silent;
|
||||||
int save_emsg_noredir = emsg_noredir;
|
int save_emsg_noredir = emsg_noredir;
|
||||||
int save_redir_execute = redir_execute;
|
int save_redir_execute = redir_execute;
|
||||||
|
int save_redir_off = redir_off;
|
||||||
garray_T save_ga;
|
garray_T save_ga;
|
||||||
|
|
||||||
rettv->vval.v_string = NULL;
|
rettv->vval.v_string = NULL;
|
||||||
@@ -2928,6 +2960,7 @@ f_execute(typval_T *argvars, typval_T *rettv)
|
|||||||
save_ga = redir_execute_ga;
|
save_ga = redir_execute_ga;
|
||||||
ga_init2(&redir_execute_ga, (int)sizeof(char), 500);
|
ga_init2(&redir_execute_ga, (int)sizeof(char), 500);
|
||||||
redir_execute = TRUE;
|
redir_execute = TRUE;
|
||||||
|
redir_off = FALSE;
|
||||||
|
|
||||||
if (cmd != NULL)
|
if (cmd != NULL)
|
||||||
do_cmdline_cmd(cmd);
|
do_cmdline_cmd(cmd);
|
||||||
@@ -2958,6 +2991,7 @@ f_execute(typval_T *argvars, typval_T *rettv)
|
|||||||
redir_execute = save_redir_execute;
|
redir_execute = save_redir_execute;
|
||||||
if (redir_execute)
|
if (redir_execute)
|
||||||
redir_execute_ga = save_ga;
|
redir_execute_ga = save_ga;
|
||||||
|
redir_off = save_redir_off;
|
||||||
|
|
||||||
/* "silent reg" or "silent echo x" leaves msg_col somewhere in the
|
/* "silent reg" or "silent echo x" leaves msg_col somewhere in the
|
||||||
* line. Put it back in the first column. */
|
* line. Put it back in the first column. */
|
||||||
@@ -2984,9 +3018,7 @@ f_exepath(typval_T *argvars, typval_T *rettv)
|
|||||||
f_exists(typval_T *argvars, typval_T *rettv)
|
f_exists(typval_T *argvars, typval_T *rettv)
|
||||||
{
|
{
|
||||||
char_u *p;
|
char_u *p;
|
||||||
char_u *name;
|
|
||||||
int n = FALSE;
|
int n = FALSE;
|
||||||
int len = 0;
|
|
||||||
|
|
||||||
p = get_tv_string(&argvars[0]);
|
p = get_tv_string(&argvars[0]);
|
||||||
if (*p == '$') /* environment variable */
|
if (*p == '$') /* environment variable */
|
||||||
@@ -3019,38 +3051,14 @@ f_exists(typval_T *argvars, typval_T *rettv)
|
|||||||
}
|
}
|
||||||
else if (*p == '#')
|
else if (*p == '#')
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (p[1] == '#')
|
if (p[1] == '#')
|
||||||
n = autocmd_supported(p + 2);
|
n = autocmd_supported(p + 2);
|
||||||
else
|
else
|
||||||
n = au_exists(p + 1);
|
n = au_exists(p + 1);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else /* internal variable */
|
else /* internal variable */
|
||||||
{
|
{
|
||||||
char_u *tofree;
|
n = var_exists(p);
|
||||||
typval_T tv;
|
|
||||||
|
|
||||||
/* get_name_len() takes care of expanding curly braces */
|
|
||||||
name = p;
|
|
||||||
len = get_name_len(&p, &tofree, TRUE, FALSE);
|
|
||||||
if (len > 0)
|
|
||||||
{
|
|
||||||
if (tofree != NULL)
|
|
||||||
name = tofree;
|
|
||||||
n = (get_var_tv(name, len, &tv, NULL, FALSE, TRUE) == OK);
|
|
||||||
if (n)
|
|
||||||
{
|
|
||||||
/* handle d.key, l[idx], f(expr) */
|
|
||||||
n = (handle_subscript(&p, &tv, TRUE, FALSE) == OK);
|
|
||||||
if (n)
|
|
||||||
clear_tv(&tv);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (*p != NUL)
|
|
||||||
n = FALSE;
|
|
||||||
|
|
||||||
vim_free(tofree);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rettv->vval.v_number = n;
|
rettv->vval.v_number = n;
|
||||||
@@ -4352,6 +4360,61 @@ f_getbufvar(typval_T *argvars, typval_T *rettv)
|
|||||||
--emsg_off;
|
--emsg_off;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "getchangelist()" function
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
f_getchangelist(typval_T *argvars, typval_T *rettv)
|
||||||
|
{
|
||||||
|
#ifdef FEAT_JUMPLIST
|
||||||
|
buf_T *buf;
|
||||||
|
int i;
|
||||||
|
list_T *l;
|
||||||
|
dict_T *d;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (rettv_list_alloc(rettv) != OK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
#ifdef FEAT_JUMPLIST
|
||||||
|
(void)get_tv_number(&argvars[0]); /* issue errmsg if type error */
|
||||||
|
++emsg_off;
|
||||||
|
buf = get_buf_tv(&argvars[0], FALSE);
|
||||||
|
--emsg_off;
|
||||||
|
if (buf == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
l = list_alloc();
|
||||||
|
if (l == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (list_append_list(rettv->vval.v_list, l) == FAIL)
|
||||||
|
return;
|
||||||
|
/*
|
||||||
|
* The current window change list index tracks only the position in the
|
||||||
|
* current buffer change list. For other buffers, use the change list
|
||||||
|
* length as the current index.
|
||||||
|
*/
|
||||||
|
list_append_number(rettv->vval.v_list,
|
||||||
|
(varnumber_T)((buf == curwin->w_buffer)
|
||||||
|
? curwin->w_changelistidx : buf->b_changelistlen));
|
||||||
|
|
||||||
|
for (i = 0; i < buf->b_changelistlen; ++i)
|
||||||
|
{
|
||||||
|
if (buf->b_changelist[i].lnum == 0)
|
||||||
|
continue;
|
||||||
|
if ((d = dict_alloc()) == NULL)
|
||||||
|
return;
|
||||||
|
if (list_append_dict(l, d) == FAIL)
|
||||||
|
return;
|
||||||
|
dict_add_nr_str(d, "lnum", (long)buf->b_changelist[i].lnum, NULL);
|
||||||
|
dict_add_nr_str(d, "col", (long)buf->b_changelist[i].col, NULL);
|
||||||
|
# ifdef FEAT_VIRTUALEDIT
|
||||||
|
dict_add_nr_str(d, "coladd", (long)buf->b_changelist[i].coladd, NULL);
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* "getchar()" function
|
* "getchar()" function
|
||||||
*/
|
*/
|
||||||
@@ -4610,16 +4673,21 @@ f_getcwd(typval_T *argvars, typval_T *rettv)
|
|||||||
{
|
{
|
||||||
win_T *wp = NULL;
|
win_T *wp = NULL;
|
||||||
char_u *cwd;
|
char_u *cwd;
|
||||||
|
int global = FALSE;
|
||||||
|
|
||||||
rettv->v_type = VAR_STRING;
|
rettv->v_type = VAR_STRING;
|
||||||
rettv->vval.v_string = NULL;
|
rettv->vval.v_string = NULL;
|
||||||
|
|
||||||
|
if (argvars[0].v_type == VAR_NUMBER && argvars[0].vval.v_number == -1)
|
||||||
|
global = TRUE;
|
||||||
|
else
|
||||||
wp = find_tabwin(&argvars[0], &argvars[1]);
|
wp = find_tabwin(&argvars[0], &argvars[1]);
|
||||||
if (wp != NULL)
|
|
||||||
{
|
if (wp != NULL && wp->w_localdir != NULL)
|
||||||
if (wp->w_localdir != NULL)
|
|
||||||
rettv->vval.v_string = vim_strsave(wp->w_localdir);
|
rettv->vval.v_string = vim_strsave(wp->w_localdir);
|
||||||
else if (globaldir != NULL)
|
else if (wp != NULL || global)
|
||||||
|
{
|
||||||
|
if (globaldir != NULL)
|
||||||
rettv->vval.v_string = vim_strsave(globaldir);
|
rettv->vval.v_string = vim_strsave(globaldir);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -4830,6 +4898,60 @@ f_getftype(typval_T *argvars, typval_T *rettv)
|
|||||||
rettv->vval.v_string = type;
|
rettv->vval.v_string = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "getjumplist()" function
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
f_getjumplist(typval_T *argvars, typval_T *rettv)
|
||||||
|
{
|
||||||
|
#ifdef FEAT_JUMPLIST
|
||||||
|
win_T *wp;
|
||||||
|
int i;
|
||||||
|
list_T *l;
|
||||||
|
dict_T *d;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (rettv_list_alloc(rettv) != OK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
#ifdef FEAT_JUMPLIST
|
||||||
|
wp = find_tabwin(&argvars[0], &argvars[1]);
|
||||||
|
if (wp == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
l = list_alloc();
|
||||||
|
if (l == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (list_append_list(rettv->vval.v_list, l) == FAIL)
|
||||||
|
return;
|
||||||
|
list_append_number(rettv->vval.v_list, (varnumber_T)wp->w_jumplistidx);
|
||||||
|
|
||||||
|
cleanup_jumplist(wp, TRUE);
|
||||||
|
|
||||||
|
for (i = 0; i < wp->w_jumplistlen; ++i)
|
||||||
|
{
|
||||||
|
if (wp->w_jumplist[i].fmark.mark.lnum == 0)
|
||||||
|
continue;
|
||||||
|
if ((d = dict_alloc()) == NULL)
|
||||||
|
return;
|
||||||
|
if (list_append_dict(l, d) == FAIL)
|
||||||
|
return;
|
||||||
|
dict_add_nr_str(d, "lnum", (long)wp->w_jumplist[i].fmark.mark.lnum,
|
||||||
|
NULL);
|
||||||
|
dict_add_nr_str(d, "col", (long)wp->w_jumplist[i].fmark.mark.col,
|
||||||
|
NULL);
|
||||||
|
# ifdef FEAT_VIRTUALEDIT
|
||||||
|
dict_add_nr_str(d, "coladd", (long)wp->w_jumplist[i].fmark.mark.coladd,
|
||||||
|
NULL);
|
||||||
|
# endif
|
||||||
|
dict_add_nr_str(d, "bufnr", (long)wp->w_jumplist[i].fmark.fnum, NULL);
|
||||||
|
if (wp->w_jumplist[i].fname != NULL)
|
||||||
|
dict_add_nr_str(d, "filename", 0L, wp->w_jumplist[i].fname);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "getline(lnum, [end])" function
|
* "getline(lnum, [end])" function
|
||||||
*/
|
*/
|
||||||
@@ -5402,6 +5524,38 @@ f_win_screenpos(typval_T *argvars, typval_T *rettv)
|
|||||||
list_append_number(rettv->vval.v_list, wp == NULL ? 0 : wp->w_wincol + 1);
|
list_append_number(rettv->vval.v_list, wp == NULL ? 0 : wp->w_wincol + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "getwinpos({timeout})" function
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
f_getwinpos(typval_T *argvars UNUSED, typval_T *rettv)
|
||||||
|
{
|
||||||
|
int x = -1;
|
||||||
|
int y = -1;
|
||||||
|
|
||||||
|
if (rettv_list_alloc(rettv) == FAIL)
|
||||||
|
return;
|
||||||
|
#ifdef FEAT_GUI
|
||||||
|
if (gui.in_use)
|
||||||
|
gui_mch_get_winpos(&x, &y);
|
||||||
|
# if defined(HAVE_TGETENT) && defined(FEAT_TERMRESPONSE)
|
||||||
|
else
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#if defined(HAVE_TGETENT) && defined(FEAT_TERMRESPONSE)
|
||||||
|
{
|
||||||
|
varnumber_T timeout = 100;
|
||||||
|
|
||||||
|
if (argvars[0].v_type != VAR_UNKNOWN)
|
||||||
|
timeout = get_tv_number(&argvars[0]);
|
||||||
|
term_get_winpos(&x, &y, timeout);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
list_append_number(rettv->vval.v_list, (varnumber_T)x);
|
||||||
|
list_append_number(rettv->vval.v_list, (varnumber_T)y);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "getwinposx()" function
|
* "getwinposx()" function
|
||||||
*/
|
*/
|
||||||
@@ -5423,7 +5577,7 @@ f_getwinposx(typval_T *argvars UNUSED, typval_T *rettv)
|
|||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
|
|
||||||
if (term_get_winpos(&x, &y) == OK)
|
if (term_get_winpos(&x, &y, (varnumber_T)100) == OK)
|
||||||
rettv->vval.v_number = x;
|
rettv->vval.v_number = x;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -5450,7 +5604,7 @@ f_getwinposy(typval_T *argvars UNUSED, typval_T *rettv)
|
|||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
|
|
||||||
if (term_get_winpos(&x, &y) == OK)
|
if (term_get_winpos(&x, &y, (varnumber_T)100) == OK)
|
||||||
rettv->vval.v_number = y;
|
rettv->vval.v_number = y;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -5639,9 +5793,7 @@ f_has(typval_T *argvars, typval_T *rettv)
|
|||||||
#ifdef FEAT_ARABIC
|
#ifdef FEAT_ARABIC
|
||||||
"arabic",
|
"arabic",
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
"autocmd",
|
"autocmd",
|
||||||
#endif
|
|
||||||
#ifdef FEAT_AUTOSERVERNAME
|
#ifdef FEAT_AUTOSERVERNAME
|
||||||
"autoservername",
|
"autoservername",
|
||||||
#endif
|
#endif
|
||||||
@@ -5700,9 +5852,7 @@ f_has(typval_T *argvars, typval_T *rettv)
|
|||||||
#ifdef FEAT_CSCOPE
|
#ifdef FEAT_CSCOPE
|
||||||
"cscope",
|
"cscope",
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_CURSORBIND
|
|
||||||
"cursorbind",
|
"cursorbind",
|
||||||
#endif
|
|
||||||
#ifdef CURSOR_SHAPE
|
#ifdef CURSOR_SHAPE
|
||||||
"cursorshape",
|
"cursorshape",
|
||||||
#endif
|
#endif
|
||||||
@@ -5913,14 +6063,24 @@ f_has(typval_T *argvars, typval_T *rettv)
|
|||||||
#ifdef FEAT_PERSISTENT_UNDO
|
#ifdef FEAT_PERSISTENT_UNDO
|
||||||
"persistent_undo",
|
"persistent_undo",
|
||||||
#endif
|
#endif
|
||||||
#if defined(FEAT_PYTHON) && !defined(DYNAMIC_PYTHON)
|
#if defined(FEAT_PYTHON)
|
||||||
|
"python_compiled",
|
||||||
|
# if defined(DYNAMIC_PYTHON)
|
||||||
|
"python_dynamic",
|
||||||
|
# else
|
||||||
"python",
|
"python",
|
||||||
"pythonx",
|
"pythonx",
|
||||||
# endif
|
# endif
|
||||||
#if defined(FEAT_PYTHON3) && !defined(DYNAMIC_PYTHON3)
|
#endif
|
||||||
|
#if defined(FEAT_PYTHON3)
|
||||||
|
"python3_compiled",
|
||||||
|
# if defined(DYNAMIC_PYTHON3)
|
||||||
|
"python3_dynamic",
|
||||||
|
# else
|
||||||
"python3",
|
"python3",
|
||||||
"pythonx",
|
"pythonx",
|
||||||
# endif
|
# endif
|
||||||
|
#endif
|
||||||
#ifdef FEAT_POSTSCRIPT
|
#ifdef FEAT_POSTSCRIPT
|
||||||
"postscript",
|
"postscript",
|
||||||
#endif
|
#endif
|
||||||
@@ -5942,9 +6102,7 @@ f_has(typval_T *argvars, typval_T *rettv)
|
|||||||
#if defined(FEAT_RUBY) && !defined(DYNAMIC_RUBY)
|
#if defined(FEAT_RUBY) && !defined(DYNAMIC_RUBY)
|
||||||
"ruby",
|
"ruby",
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
"scrollbind",
|
"scrollbind",
|
||||||
#endif
|
|
||||||
#ifdef FEAT_CMDL_INFO
|
#ifdef FEAT_CMDL_INFO
|
||||||
"showcmd",
|
"showcmd",
|
||||||
"cmdline_info",
|
"cmdline_info",
|
||||||
@@ -6189,9 +6347,9 @@ f_has(typval_T *argvars, typval_T *rettv)
|
|||||||
else if (STRICMP(name, "syntax_items") == 0)
|
else if (STRICMP(name, "syntax_items") == 0)
|
||||||
n = syntax_present(curwin);
|
n = syntax_present(curwin);
|
||||||
#endif
|
#endif
|
||||||
#if defined(WIN3264)
|
#ifdef FEAT_VTP
|
||||||
else if (STRICMP(name, "win95") == 0)
|
else if (STRICMP(name, "vcon") == 0)
|
||||||
n = FALSE; /* Win9x is no more supported. */
|
n = has_vtp_working();
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_NETBEANS_INTG
|
#ifdef FEAT_NETBEANS_INTG
|
||||||
else if (STRICMP(name, "netbeans_enabled") == 0)
|
else if (STRICMP(name, "netbeans_enabled") == 0)
|
||||||
@@ -7964,7 +8122,7 @@ f_mode(typval_T *argvars, typval_T *rettv)
|
|||||||
#ifdef FEAT_INS_EXPAND
|
#ifdef FEAT_INS_EXPAND
|
||||||
if (ins_compl_active())
|
if (ins_compl_active())
|
||||||
buf[1] = 'c';
|
buf[1] = 'c';
|
||||||
else if (ctrl_x_mode == 1)
|
else if (ctrl_x_mode_not_defined_yet())
|
||||||
buf[1] = 'x';
|
buf[1] = 'x';
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -9202,10 +9360,7 @@ f_resolve(typval_T *argvars, typval_T *rettv)
|
|||||||
if (*q != NUL)
|
if (*q != NUL)
|
||||||
STRMOVE(remain, q - 1);
|
STRMOVE(remain, q - 1);
|
||||||
else
|
else
|
||||||
{
|
VIM_CLEAR(remain);
|
||||||
vim_free(remain);
|
|
||||||
remain = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the result is a relative path name, make it explicitly relative to
|
/* If the result is a relative path name, make it explicitly relative to
|
||||||
@@ -11173,7 +11328,10 @@ f_spellbadword(typval_T *argvars UNUSED, typval_T *rettv)
|
|||||||
/* Find the start and length of the badly spelled word. */
|
/* Find the start and length of the badly spelled word. */
|
||||||
len = spell_move_to(curwin, FORWARD, TRUE, TRUE, &attr);
|
len = spell_move_to(curwin, FORWARD, TRUE, TRUE, &attr);
|
||||||
if (len != 0)
|
if (len != 0)
|
||||||
|
{
|
||||||
word = ml_get_cursor();
|
word = ml_get_cursor();
|
||||||
|
curwin->w_set_curswant = TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (curwin->w_p_spell && *curbuf->b_s.b_p_spl != NUL)
|
else if (curwin->w_p_spell && *curbuf->b_s.b_p_spl != NUL)
|
||||||
{
|
{
|
||||||
|
|||||||
181
src/ex_cmds.c
181
src/ex_cmds.c
@@ -28,9 +28,7 @@ static int read_viminfo_up_to_marks(vir_T *virp, int forceit, int writing);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int check_readonly(int *forceit, buf_T *buf);
|
static int check_readonly(int *forceit, buf_T *buf);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
static void delbuf_msg(char_u *name);
|
static void delbuf_msg(char_u *name);
|
||||||
#endif
|
|
||||||
static int
|
static int
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
_RTLENTRYF
|
_RTLENTRYF
|
||||||
@@ -49,6 +47,9 @@ do_ascii(exarg_T *eap UNUSED)
|
|||||||
char buf1[20];
|
char buf1[20];
|
||||||
char buf2[20];
|
char buf2[20];
|
||||||
char_u buf3[7];
|
char_u buf3[7];
|
||||||
|
#ifdef FEAT_DIGRAPHS
|
||||||
|
char_u *dig;
|
||||||
|
#endif
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
int cc[MAX_MCO];
|
int cc[MAX_MCO];
|
||||||
int ci = 0;
|
int ci = 0;
|
||||||
@@ -94,6 +95,14 @@ do_ascii(exarg_T *eap UNUSED)
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
buf2[0] = NUL;
|
buf2[0] = NUL;
|
||||||
|
#ifdef FEAT_DIGRAPHS
|
||||||
|
dig = get_digraph_for_char(cval);
|
||||||
|
if (dig != NULL)
|
||||||
|
vim_snprintf((char *)IObuff, IOSIZE,
|
||||||
|
_("<%s>%s%s %d, Hex %02x, Oct %03o, Digr %s"),
|
||||||
|
transchar(c), buf1, buf2, cval, cval, cval, dig);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
vim_snprintf((char *)IObuff, IOSIZE,
|
vim_snprintf((char *)IObuff, IOSIZE,
|
||||||
_("<%s>%s%s %d, Hex %02x, Octal %03o"),
|
_("<%s>%s%s %d, Hex %02x, Octal %03o"),
|
||||||
transchar(c), buf1, buf2, cval, cval, cval);
|
transchar(c), buf1, buf2, cval, cval, cval);
|
||||||
@@ -121,9 +130,19 @@ do_ascii(exarg_T *eap UNUSED)
|
|||||||
)
|
)
|
||||||
IObuff[len++] = ' '; /* draw composing char on top of a space */
|
IObuff[len++] = ' '; /* draw composing char on top of a space */
|
||||||
len += (*mb_char2bytes)(c, IObuff + len);
|
len += (*mb_char2bytes)(c, IObuff + len);
|
||||||
|
#ifdef FEAT_DIGRAPHS
|
||||||
|
dig = get_digraph_for_char(c);
|
||||||
|
if (dig != NULL)
|
||||||
|
vim_snprintf((char *)IObuff + len, IOSIZE - len,
|
||||||
|
c < 0x10000 ? _("> %d, Hex %04x, Oct %o, Digr %s")
|
||||||
|
: _("> %d, Hex %08x, Oct %o, Digr %s"),
|
||||||
|
c, c, c, dig);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
vim_snprintf((char *)IObuff + len, IOSIZE - len,
|
vim_snprintf((char *)IObuff + len, IOSIZE - len,
|
||||||
c < 0x10000 ? _("> %d, Hex %04x, Octal %o")
|
c < 0x10000 ? _("> %d, Hex %04x, Octal %o")
|
||||||
: _("> %d, Hex %08x, Octal %o"), c, c, c);
|
: _("> %d, Hex %08x, Octal %o"),
|
||||||
|
c, c, c);
|
||||||
if (ci == MAX_MCO)
|
if (ci == MAX_MCO)
|
||||||
break;
|
break;
|
||||||
if (enc_utf8)
|
if (enc_utf8)
|
||||||
@@ -1127,9 +1146,7 @@ do_bang(
|
|||||||
/* Careful: This may recursively call do_bang() again! (because of
|
/* Careful: This may recursively call do_bang() again! (because of
|
||||||
* autocommands) */
|
* autocommands) */
|
||||||
do_filter(line1, line2, eap, newcmd, do_in, do_out);
|
do_filter(line1, line2, eap, newcmd, do_in, do_out);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
apply_autocmds(EVENT_SHELLFILTERPOST, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_SHELLFILTERPOST, NULL, NULL, FALSE, curbuf);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
if (free_newcmd)
|
if (free_newcmd)
|
||||||
vim_free(newcmd);
|
vim_free(newcmd);
|
||||||
@@ -1165,9 +1182,7 @@ do_filter(
|
|||||||
linenr_T read_linecount;
|
linenr_T read_linecount;
|
||||||
pos_T cursor_save;
|
pos_T cursor_save;
|
||||||
char_u *cmd_buf;
|
char_u *cmd_buf;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
buf_T *old_curbuf = curbuf;
|
buf_T *old_curbuf = curbuf;
|
||||||
#endif
|
|
||||||
int shell_flags = 0;
|
int shell_flags = 0;
|
||||||
|
|
||||||
if (*cmd == NUL) /* no filter command */
|
if (*cmd == NUL) /* no filter command */
|
||||||
@@ -1238,16 +1253,14 @@ do_filter(
|
|||||||
{
|
{
|
||||||
msg_putchar('\n'); /* keep message from buf_write() */
|
msg_putchar('\n'); /* keep message from buf_write() */
|
||||||
--no_wait_return;
|
--no_wait_return;
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
#if defined(FEAT_EVAL)
|
||||||
if (!aborting())
|
if (!aborting())
|
||||||
#endif
|
#endif
|
||||||
(void)EMSG2(_(e_notcreate), itmp); /* will call wait_return */
|
(void)EMSG2(_(e_notcreate), itmp); /* will call wait_return */
|
||||||
goto filterend;
|
goto filterend;
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (curbuf != old_curbuf)
|
if (curbuf != old_curbuf)
|
||||||
goto filterend;
|
goto filterend;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!do_out)
|
if (!do_out)
|
||||||
msg_putchar('\n');
|
msg_putchar('\n');
|
||||||
@@ -1313,7 +1326,7 @@ do_filter(
|
|||||||
if (readfile(otmp, NULL, line2, (linenr_T)0, (linenr_T)MAXLNUM,
|
if (readfile(otmp, NULL, line2, (linenr_T)0, (linenr_T)MAXLNUM,
|
||||||
eap, READ_FILTER) != OK)
|
eap, READ_FILTER) != OK)
|
||||||
{
|
{
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
#if defined(FEAT_EVAL)
|
||||||
if (!aborting())
|
if (!aborting())
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
@@ -1322,10 +1335,8 @@ do_filter(
|
|||||||
}
|
}
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (curbuf != old_curbuf)
|
if (curbuf != old_curbuf)
|
||||||
goto filterend;
|
goto filterend;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
read_linecount = curbuf->b_ml.ml_line_count - read_linecount;
|
read_linecount = curbuf->b_ml.ml_line_count - read_linecount;
|
||||||
@@ -1405,13 +1416,11 @@ error:
|
|||||||
|
|
||||||
filterend:
|
filterend:
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (curbuf != old_curbuf)
|
if (curbuf != old_curbuf)
|
||||||
{
|
{
|
||||||
--no_wait_return;
|
--no_wait_return;
|
||||||
EMSG(_("E135: *Filter* Autocommands must not change current buffer"));
|
EMSG(_("E135: *Filter* Autocommands must not change current buffer"));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if (itmp != NULL)
|
if (itmp != NULL)
|
||||||
mch_remove(itmp);
|
mch_remove(itmp);
|
||||||
if (otmp != NULL)
|
if (otmp != NULL)
|
||||||
@@ -1461,9 +1470,7 @@ do_shell(
|
|||||||
* avoid having to type return below.
|
* avoid having to type return below.
|
||||||
*/
|
*/
|
||||||
msg_putchar('\r'); /* put cursor at start of line */
|
msg_putchar('\r'); /* put cursor at start of line */
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (!autocmd_busy)
|
if (!autocmd_busy)
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
#ifdef MSWIN
|
#ifdef MSWIN
|
||||||
if (!winstart)
|
if (!winstart)
|
||||||
@@ -1476,11 +1483,7 @@ do_shell(
|
|||||||
msg_putchar('\n'); /* may shift screen one line up */
|
msg_putchar('\n'); /* may shift screen one line up */
|
||||||
|
|
||||||
/* warning message before calling the shell */
|
/* warning message before calling the shell */
|
||||||
if (p_warn
|
if (p_warn && !autocmd_busy && msg_silent == 0)
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
&& !autocmd_busy
|
|
||||||
#endif
|
|
||||||
&& msg_silent == 0)
|
|
||||||
FOR_ALL_BUFFERS(buf)
|
FOR_ALL_BUFFERS(buf)
|
||||||
if (bufIsChangedNotTerm(buf))
|
if (bufIsChangedNotTerm(buf))
|
||||||
{
|
{
|
||||||
@@ -1515,14 +1518,12 @@ do_shell(
|
|||||||
msg_col = 0;
|
msg_col = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (autocmd_busy)
|
if (autocmd_busy)
|
||||||
{
|
{
|
||||||
if (msg_silent == 0)
|
if (msg_silent == 0)
|
||||||
redraw_later_clear();
|
redraw_later_clear();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* For ":sh" there is no need to call wait_return(), just redraw.
|
* For ":sh" there is no need to call wait_return(), just redraw.
|
||||||
@@ -1591,9 +1592,7 @@ do_shell(
|
|||||||
/* display any error messages now */
|
/* display any error messages now */
|
||||||
display_errors();
|
display_errors();
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
apply_autocmds(EVENT_SHELLCMDPOST, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_SHELLCMDPOST, NULL, NULL, FALSE, curbuf);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1957,8 +1956,7 @@ write_viminfo(char_u *file, int forceit)
|
|||||||
if (!shortname && st_new.st_dev == st_old.st_dev
|
if (!shortname && st_new.st_dev == st_old.st_dev
|
||||||
&& st_new.st_ino == st_old.st_ino)
|
&& st_new.st_ino == st_old.st_ino)
|
||||||
{
|
{
|
||||||
vim_free(tempname);
|
VIM_CLEAR(tempname);
|
||||||
tempname = NULL;
|
|
||||||
shortname = TRUE;
|
shortname = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2959,7 +2957,6 @@ rename_buffer(char_u *new_fname)
|
|||||||
char_u *fname, *sfname, *xfname;
|
char_u *fname, *sfname, *xfname;
|
||||||
buf_T *buf;
|
buf_T *buf;
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
buf = curbuf;
|
buf = curbuf;
|
||||||
apply_autocmds(EVENT_BUFFILEPRE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFFILEPRE, NULL, NULL, FALSE, curbuf);
|
||||||
/* buffer changed, don't change name now */
|
/* buffer changed, don't change name now */
|
||||||
@@ -2968,7 +2965,6 @@ rename_buffer(char_u *new_fname)
|
|||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
if (aborting()) /* autocmds may abort script processing */
|
if (aborting()) /* autocmds may abort script processing */
|
||||||
return FAIL;
|
return FAIL;
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* The name of the current buffer will be changed.
|
* The name of the current buffer will be changed.
|
||||||
@@ -2997,9 +2993,8 @@ rename_buffer(char_u *new_fname)
|
|||||||
}
|
}
|
||||||
vim_free(fname);
|
vim_free(fname);
|
||||||
vim_free(sfname);
|
vim_free(sfname);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
apply_autocmds(EVENT_BUFFILEPOST, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFFILEPOST, NULL, NULL, FALSE, curbuf);
|
||||||
#endif
|
|
||||||
/* Change directories when the 'acd' option is set. */
|
/* Change directories when the 'acd' option is set. */
|
||||||
DO_AUTOCHDIR
|
DO_AUTOCHDIR
|
||||||
return OK;
|
return OK;
|
||||||
@@ -3178,7 +3173,6 @@ do_write(exarg_T *eap)
|
|||||||
{
|
{
|
||||||
if (eap->cmdidx == CMD_saveas && alt_buf != NULL)
|
if (eap->cmdidx == CMD_saveas && alt_buf != NULL)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
buf_T *was_curbuf = curbuf;
|
buf_T *was_curbuf = curbuf;
|
||||||
|
|
||||||
apply_autocmds(EVENT_BUFFILEPRE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFFILEPRE, NULL, NULL, FALSE, curbuf);
|
||||||
@@ -3193,7 +3187,6 @@ do_write(exarg_T *eap)
|
|||||||
retval = FAIL;
|
retval = FAIL;
|
||||||
goto theend;
|
goto theend;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
/* Exchange the file names for the current and the alternate
|
/* Exchange the file names for the current and the alternate
|
||||||
* buffer. This makes it look like we are now editing the buffer
|
* buffer. This makes it look like we are now editing the buffer
|
||||||
* under the new name. Must be done before buf_write(), because
|
* under the new name. Must be done before buf_write(), because
|
||||||
@@ -3209,7 +3202,7 @@ do_write(exarg_T *eap)
|
|||||||
alt_buf->b_sfname = curbuf->b_sfname;
|
alt_buf->b_sfname = curbuf->b_sfname;
|
||||||
curbuf->b_sfname = fname;
|
curbuf->b_sfname = fname;
|
||||||
buf_name_changed(curbuf);
|
buf_name_changed(curbuf);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
apply_autocmds(EVENT_BUFFILEPOST, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFFILEPOST, NULL, NULL, FALSE, curbuf);
|
||||||
apply_autocmds(EVENT_BUFFILEPOST, NULL, NULL, FALSE, alt_buf);
|
apply_autocmds(EVENT_BUFFILEPOST, NULL, NULL, FALSE, alt_buf);
|
||||||
if (!alt_buf->b_p_bl)
|
if (!alt_buf->b_p_bl)
|
||||||
@@ -3240,7 +3233,6 @@ do_write(exarg_T *eap)
|
|||||||
/* Autocommands may have changed buffer names, esp. when
|
/* Autocommands may have changed buffer names, esp. when
|
||||||
* 'autochdir' is set. */
|
* 'autochdir' is set. */
|
||||||
fname = curbuf->b_sfname;
|
fname = curbuf->b_sfname;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
name_was_missing = curbuf->b_ffname == NULL;
|
name_was_missing = curbuf->b_ffname == NULL;
|
||||||
@@ -3429,6 +3421,14 @@ do_wqall(exarg_T *eap)
|
|||||||
|
|
||||||
FOR_ALL_BUFFERS(buf)
|
FOR_ALL_BUFFERS(buf)
|
||||||
{
|
{
|
||||||
|
#ifdef FEAT_TERMINAL
|
||||||
|
if (exiting && term_job_running(buf->b_term))
|
||||||
|
{
|
||||||
|
no_write_message_nobang(buf);
|
||||||
|
++error;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
if (bufIsChanged(buf) && !bt_dontwrite(buf))
|
if (bufIsChanged(buf) && !bt_dontwrite(buf))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@@ -3461,18 +3461,14 @@ do_wqall(exarg_T *eap)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
|
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
#endif
|
|
||||||
if (buf_write_all(buf, eap->forceit) == FAIL)
|
if (buf_write_all(buf, eap->forceit) == FAIL)
|
||||||
++error;
|
++error;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* an autocommand may have deleted the buffer */
|
/* an autocommand may have deleted the buffer */
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
buf = firstbuf;
|
buf = firstbuf;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
eap->forceit = save_forceit; /* check_overwrite() may set it */
|
eap->forceit = save_forceit; /* check_overwrite() may set it */
|
||||||
}
|
}
|
||||||
@@ -3576,10 +3572,8 @@ getfile(
|
|||||||
|
|
||||||
if (text_locked())
|
if (text_locked())
|
||||||
return GETFILE_ERROR;
|
return GETFILE_ERROR;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (curbuf_locked())
|
if (curbuf_locked())
|
||||||
return GETFILE_ERROR;
|
return GETFILE_ERROR;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (fnum == 0)
|
if (fnum == 0)
|
||||||
{
|
{
|
||||||
@@ -3674,17 +3668,15 @@ do_ecmd(
|
|||||||
{
|
{
|
||||||
int other_file; /* TRUE if editing another file */
|
int other_file; /* TRUE if editing another file */
|
||||||
int oldbuf; /* TRUE if using existing buffer */
|
int oldbuf; /* TRUE if using existing buffer */
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
int auto_buf = FALSE; /* TRUE if autocommands brought us
|
int auto_buf = FALSE; /* TRUE if autocommands brought us
|
||||||
into the buffer unexpectedly */
|
into the buffer unexpectedly */
|
||||||
char_u *new_name = NULL;
|
char_u *new_name = NULL;
|
||||||
|
#if defined(FEAT_EVAL)
|
||||||
int did_set_swapcommand = FALSE;
|
int did_set_swapcommand = FALSE;
|
||||||
#endif
|
#endif
|
||||||
buf_T *buf;
|
buf_T *buf;
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
#if defined(FEAT_AUTOCMD) || defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
|
|
||||||
bufref_T old_curbuf;
|
bufref_T old_curbuf;
|
||||||
#endif
|
|
||||||
char_u *free_fname = NULL;
|
char_u *free_fname = NULL;
|
||||||
#ifdef FEAT_BROWSE
|
#ifdef FEAT_BROWSE
|
||||||
char_u *browse_file = NULL;
|
char_u *browse_file = NULL;
|
||||||
@@ -3708,9 +3700,7 @@ do_ecmd(
|
|||||||
|
|
||||||
if (eap != NULL)
|
if (eap != NULL)
|
||||||
command = eap->do_ecmd_cmd;
|
command = eap->do_ecmd_cmd;
|
||||||
#if defined(FEAT_AUTOCMD) || defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
|
|
||||||
set_bufref(&old_curbuf, curbuf);
|
set_bufref(&old_curbuf, curbuf);
|
||||||
#endif
|
|
||||||
|
|
||||||
if (fnum != 0)
|
if (fnum != 0)
|
||||||
{
|
{
|
||||||
@@ -3723,7 +3713,6 @@ do_ecmd(
|
|||||||
#ifdef FEAT_BROWSE
|
#ifdef FEAT_BROWSE
|
||||||
if (cmdmod.browse)
|
if (cmdmod.browse)
|
||||||
{
|
{
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
if (
|
if (
|
||||||
# ifdef FEAT_GUI
|
# ifdef FEAT_GUI
|
||||||
!gui.in_use &&
|
!gui.in_use &&
|
||||||
@@ -3736,7 +3725,6 @@ do_ecmd(
|
|||||||
ffname = (char_u *)".";
|
ffname = (char_u *)".";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
# endif
|
|
||||||
{
|
{
|
||||||
browse_file = do_browse(0, (char_u *)_("Edit File"), ffname,
|
browse_file = do_browse(0, (char_u *)_("Edit File"), ffname,
|
||||||
NULL, NULL, NULL, curbuf);
|
NULL, NULL, NULL, curbuf);
|
||||||
@@ -3810,7 +3798,7 @@ do_ecmd(
|
|||||||
*/
|
*/
|
||||||
reset_VIsual();
|
reset_VIsual();
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
#if defined(FEAT_EVAL)
|
||||||
if ((command != NULL || newlnum > (linenr_T)0)
|
if ((command != NULL || newlnum > (linenr_T)0)
|
||||||
&& *get_vim_var_str(VV_SWAPCOMMAND) == NUL)
|
&& *get_vim_var_str(VV_SWAPCOMMAND) == NUL)
|
||||||
{
|
{
|
||||||
@@ -3873,12 +3861,11 @@ do_ecmd(
|
|||||||
#endif
|
#endif
|
||||||
buf = buflist_new(ffname, sfname, 0L,
|
buf = buflist_new(ffname, sfname, 0L,
|
||||||
BLN_CURBUF | ((flags & ECMD_SET_HELP) ? 0 : BLN_LISTED));
|
BLN_CURBUF | ((flags & ECMD_SET_HELP) ? 0 : BLN_LISTED));
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* autocommands may change curwin and curbuf */
|
/* autocommands may change curwin and curbuf */
|
||||||
if (oldwin != NULL)
|
if (oldwin != NULL)
|
||||||
oldwin = curwin;
|
oldwin = curwin;
|
||||||
set_bufref(&old_curbuf, curbuf);
|
set_bufref(&old_curbuf, curbuf);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
if (buf == NULL)
|
if (buf == NULL)
|
||||||
goto theend;
|
goto theend;
|
||||||
@@ -3893,11 +3880,7 @@ do_ecmd(
|
|||||||
(void)buf_check_timestamp(buf, FALSE);
|
(void)buf_check_timestamp(buf, FALSE);
|
||||||
/* Check if autocommands made the buffer invalid or changed the
|
/* Check if autocommands made the buffer invalid or changed the
|
||||||
* current buffer. */
|
* current buffer. */
|
||||||
if (!bufref_valid(&bufref)
|
if (!bufref_valid(&bufref) || curbuf != old_curbuf.br_buf)
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
|| curbuf != old_curbuf.br_buf
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
goto theend;
|
goto theend;
|
||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
if (aborting()) /* autocmds may abort script processing */
|
if (aborting()) /* autocmds may abort script processing */
|
||||||
@@ -3922,7 +3905,6 @@ do_ecmd(
|
|||||||
*/
|
*/
|
||||||
if (buf != curbuf)
|
if (buf != curbuf)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/*
|
/*
|
||||||
* Be careful: The autocommands may delete any buffer and change
|
* Be careful: The autocommands may delete any buffer and change
|
||||||
* the current buffer.
|
* the current buffer.
|
||||||
@@ -3962,7 +3944,6 @@ do_ecmd(
|
|||||||
++buf->b_locked;
|
++buf->b_locked;
|
||||||
|
|
||||||
if (curbuf == old_curbuf.br_buf)
|
if (curbuf == old_curbuf.br_buf)
|
||||||
#endif
|
|
||||||
buf_copy_options(buf, BCO_ENTER);
|
buf_copy_options(buf, BCO_ENTER);
|
||||||
|
|
||||||
/* Close the link to the current buffer. This will set
|
/* Close the link to the current buffer. This will set
|
||||||
@@ -3971,7 +3952,6 @@ do_ecmd(
|
|||||||
close_buffer(oldwin, curbuf,
|
close_buffer(oldwin, curbuf,
|
||||||
(flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD, FALSE);
|
(flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD, FALSE);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
the_curwin->w_closing = FALSE;
|
the_curwin->w_closing = FALSE;
|
||||||
--buf->b_locked;
|
--buf->b_locked;
|
||||||
|
|
||||||
@@ -3993,7 +3973,6 @@ do_ecmd(
|
|||||||
if (buf == curbuf) /* already in new buffer */
|
if (buf == curbuf) /* already in new buffer */
|
||||||
auto_buf = TRUE;
|
auto_buf = TRUE;
|
||||||
else
|
else
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
#ifdef FEAT_SYN_HL
|
#ifdef FEAT_SYN_HL
|
||||||
/*
|
/*
|
||||||
@@ -4026,13 +4005,10 @@ do_ecmd(
|
|||||||
#ifdef FEAT_SPELL
|
#ifdef FEAT_SPELL
|
||||||
did_get_winopts = TRUE;
|
did_get_winopts = TRUE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
}
|
}
|
||||||
vim_free(new_name);
|
vim_free(new_name);
|
||||||
au_new_curbuf.br_buf = NULL;
|
au_new_curbuf.br_buf = NULL;
|
||||||
au_new_curbuf.br_buf_free_count = 0;
|
au_new_curbuf.br_buf_free_count = 0;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
curwin->w_pcmark.lnum = 1;
|
curwin->w_pcmark.lnum = 1;
|
||||||
@@ -4055,9 +4031,7 @@ do_ecmd(
|
|||||||
++RedrawingDisabled;
|
++RedrawingDisabled;
|
||||||
did_inc_redrawing_disabled = TRUE;
|
did_inc_redrawing_disabled = TRUE;
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
buf = curbuf;
|
buf = curbuf;
|
||||||
#endif
|
|
||||||
if ((flags & ECMD_SET_HELP) || keep_help_flag)
|
if ((flags & ECMD_SET_HELP) || keep_help_flag)
|
||||||
{
|
{
|
||||||
prepare_help_buffer();
|
prepare_help_buffer();
|
||||||
@@ -4070,7 +4044,6 @@ do_ecmd(
|
|||||||
set_buflisted(TRUE);
|
set_buflisted(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* If autocommands change buffers under our fingers, forget about
|
/* If autocommands change buffers under our fingers, forget about
|
||||||
* editing the file. */
|
* editing the file. */
|
||||||
if (buf != curbuf)
|
if (buf != curbuf)
|
||||||
@@ -4084,7 +4057,6 @@ do_ecmd(
|
|||||||
* unset. Helps for when an autocommand changes files and expects syntax
|
* unset. Helps for when an autocommand changes files and expects syntax
|
||||||
* highlighting to work in the other file. */
|
* highlighting to work in the other file. */
|
||||||
did_filetype = FALSE;
|
did_filetype = FALSE;
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* other_file oldbuf
|
* other_file oldbuf
|
||||||
@@ -4101,14 +4073,13 @@ do_ecmd(
|
|||||||
newlnum = curwin->w_cursor.lnum;
|
newlnum = curwin->w_cursor.lnum;
|
||||||
solcol = curwin->w_cursor.col;
|
solcol = curwin->w_cursor.col;
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
buf = curbuf;
|
buf = curbuf;
|
||||||
if (buf->b_fname != NULL)
|
if (buf->b_fname != NULL)
|
||||||
new_name = vim_strsave(buf->b_fname);
|
new_name = vim_strsave(buf->b_fname);
|
||||||
else
|
else
|
||||||
new_name = NULL;
|
new_name = NULL;
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
#endif
|
|
||||||
if (p_ur < 0 || curbuf->b_ml.ml_line_count <= p_ur)
|
if (p_ur < 0 || curbuf->b_ml.ml_line_count <= p_ur)
|
||||||
{
|
{
|
||||||
/* Save all the text, so that the reload can be undone.
|
/* Save all the text, so that the reload can be undone.
|
||||||
@@ -4117,9 +4088,7 @@ do_ecmd(
|
|||||||
if (u_savecommon(0, curbuf->b_ml.ml_line_count + 1, 0, TRUE)
|
if (u_savecommon(0, curbuf->b_ml.ml_line_count + 1, 0, TRUE)
|
||||||
== FAIL)
|
== FAIL)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
vim_free(new_name);
|
vim_free(new_name);
|
||||||
#endif
|
|
||||||
goto theend;
|
goto theend;
|
||||||
}
|
}
|
||||||
u_unchanged(curbuf);
|
u_unchanged(curbuf);
|
||||||
@@ -4130,7 +4099,7 @@ do_ecmd(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
buf_freeall(curbuf, 0); /* free all things for buffer */
|
buf_freeall(curbuf, 0); /* free all things for buffer */
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* If autocommands deleted the buffer we were going to re-edit, give
|
/* If autocommands deleted the buffer we were going to re-edit, give
|
||||||
* up and jump to the end. */
|
* up and jump to the end. */
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
@@ -4148,7 +4117,6 @@ do_ecmd(
|
|||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
if (aborting()) /* autocmds may abort script processing */
|
if (aborting()) /* autocmds may abort script processing */
|
||||||
goto theend;
|
goto theend;
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
buf_clear_file(curbuf);
|
buf_clear_file(curbuf);
|
||||||
curbuf->b_op_start.lnum = 0; /* clear '[ and '] marks */
|
curbuf->b_op_start.lnum = 0; /* clear '[ and '] marks */
|
||||||
@@ -4166,9 +4134,7 @@ do_ecmd(
|
|||||||
*/
|
*/
|
||||||
check_arg_idx(curwin);
|
check_arg_idx(curwin);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (!auto_buf)
|
if (!auto_buf)
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Set cursor and init window before reading the file and executing
|
* Set cursor and init window before reading the file and executing
|
||||||
@@ -4209,7 +4175,7 @@ do_ecmd(
|
|||||||
/*
|
/*
|
||||||
* Open the buffer and read the file.
|
* Open the buffer and read the file.
|
||||||
*/
|
*/
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
#if defined(FEAT_EVAL)
|
||||||
if (should_abort(open_buffer(FALSE, eap, readfile_flags)))
|
if (should_abort(open_buffer(FALSE, eap, readfile_flags)))
|
||||||
retval = FAIL;
|
retval = FAIL;
|
||||||
#else
|
#else
|
||||||
@@ -4222,7 +4188,6 @@ do_ecmd(
|
|||||||
handle_swap_exists(&old_curbuf);
|
handle_swap_exists(&old_curbuf);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Read the modelines, but only to set window-local options. Any
|
/* Read the modelines, but only to set window-local options. Any
|
||||||
@@ -4236,7 +4201,6 @@ do_ecmd(
|
|||||||
&retval);
|
&retval);
|
||||||
}
|
}
|
||||||
check_arg_idx(curwin);
|
check_arg_idx(curwin);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If autocommands change the cursor position or topline, we should
|
/* If autocommands change the cursor position or topline, we should
|
||||||
* keep it. Also when it moves within a line. */
|
* keep it. Also when it moves within a line. */
|
||||||
@@ -4314,11 +4278,7 @@ do_ecmd(
|
|||||||
* Did not read the file, need to show some info about the file.
|
* Did not read the file, need to show some info about the file.
|
||||||
* Do this after setting the cursor.
|
* Do this after setting the cursor.
|
||||||
*/
|
*/
|
||||||
if (oldbuf
|
if (oldbuf && !auto_buf)
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
&& !auto_buf
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
int msg_scroll_save = msg_scroll;
|
int msg_scroll_save = msg_scroll;
|
||||||
|
|
||||||
@@ -4358,9 +4318,7 @@ do_ecmd(
|
|||||||
if (topline == 0 && command == NULL)
|
if (topline == 0 && command == NULL)
|
||||||
p_so = 999; /* force cursor halfway the window */
|
p_so = 999; /* force cursor halfway the window */
|
||||||
update_topline();
|
update_topline();
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
curwin->w_scbind_pos = curwin->w_topline;
|
curwin->w_scbind_pos = curwin->w_topline;
|
||||||
#endif
|
|
||||||
p_so = n;
|
p_so = n;
|
||||||
redraw_curbuf_later(NOT_VALID); /* redraw this buffer later */
|
redraw_curbuf_later(NOT_VALID); /* redraw this buffer later */
|
||||||
}
|
}
|
||||||
@@ -4368,8 +4326,22 @@ do_ecmd(
|
|||||||
if (p_im)
|
if (p_im)
|
||||||
need_start_insertmode = TRUE;
|
need_start_insertmode = TRUE;
|
||||||
|
|
||||||
/* Change directories when the 'acd' option is set. */
|
#ifdef FEAT_AUTOCHDIR
|
||||||
DO_AUTOCHDIR
|
/* Change directories when the 'acd' option is set and we aren't already in
|
||||||
|
* that directory (should already be done above). Expect getcwd() to be
|
||||||
|
* faster than calling shorten_fnames() unnecessarily. */
|
||||||
|
if (p_acd && curbuf->b_ffname != NULL)
|
||||||
|
{
|
||||||
|
char_u curdir[MAXPATHL];
|
||||||
|
char_u filedir[MAXPATHL];
|
||||||
|
|
||||||
|
vim_strncpy(filedir, curbuf->b_ffname, MAXPATHL - 1);
|
||||||
|
*gettail_sep(filedir) = NUL;
|
||||||
|
if (mch_dirname(curdir, MAXPATHL) != FAIL
|
||||||
|
&& vim_fnamecmp(curdir, filedir) != 0)
|
||||||
|
do_autochdir();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(FEAT_SUN_WORKSHOP) || defined(FEAT_NETBEANS_INTG)
|
#if defined(FEAT_SUN_WORKSHOP) || defined(FEAT_NETBEANS_INTG)
|
||||||
if (curbuf->b_ffname != NULL)
|
if (curbuf->b_ffname != NULL)
|
||||||
@@ -4388,7 +4360,7 @@ do_ecmd(
|
|||||||
theend:
|
theend:
|
||||||
if (did_inc_redrawing_disabled)
|
if (did_inc_redrawing_disabled)
|
||||||
--RedrawingDisabled;
|
--RedrawingDisabled;
|
||||||
#ifdef FEAT_AUTOCMD
|
#if defined(FEAT_EVAL)
|
||||||
if (did_set_swapcommand)
|
if (did_set_swapcommand)
|
||||||
set_vim_var_string(VV_SWAPCOMMAND, NULL, -1);
|
set_vim_var_string(VV_SWAPCOMMAND, NULL, -1);
|
||||||
#endif
|
#endif
|
||||||
@@ -4399,7 +4371,6 @@ theend:
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
static void
|
static void
|
||||||
delbuf_msg(char_u *name)
|
delbuf_msg(char_u *name)
|
||||||
{
|
{
|
||||||
@@ -4409,7 +4380,6 @@ delbuf_msg(char_u *name)
|
|||||||
au_new_curbuf.br_buf = NULL;
|
au_new_curbuf.br_buf = NULL;
|
||||||
au_new_curbuf.br_buf_free_count = 0;
|
au_new_curbuf.br_buf_free_count = 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static int append_indent = 0; /* autoindent for first line */
|
static int append_indent = 0; /* autoindent for first line */
|
||||||
|
|
||||||
@@ -5114,7 +5084,7 @@ do_sub(exarg_T *eap)
|
|||||||
*/
|
*/
|
||||||
line2 = eap->line2;
|
line2 = eap->line2;
|
||||||
for (lnum = eap->line1; lnum <= line2 && !(got_quit
|
for (lnum = eap->line1; lnum <= line2 && !(got_quit
|
||||||
#if defined(FEAT_EVAL) && defined(FEAT_AUTOCMD)
|
#if defined(FEAT_EVAL)
|
||||||
|| aborting()
|
|| aborting()
|
||||||
#endif
|
#endif
|
||||||
); ++lnum)
|
); ++lnum)
|
||||||
@@ -5211,8 +5181,7 @@ do_sub(exarg_T *eap)
|
|||||||
lnum += regmatch.startpos[0].lnum;
|
lnum += regmatch.startpos[0].lnum;
|
||||||
sub_firstlnum += regmatch.startpos[0].lnum;
|
sub_firstlnum += regmatch.startpos[0].lnum;
|
||||||
nmatch -= regmatch.startpos[0].lnum;
|
nmatch -= regmatch.startpos[0].lnum;
|
||||||
vim_free(sub_firstline);
|
VIM_CLEAR(sub_firstline);
|
||||||
sub_firstline = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sub_firstline == NULL)
|
if (sub_firstline == NULL)
|
||||||
@@ -5299,10 +5268,8 @@ do_sub(exarg_T *eap)
|
|||||||
setmouse(); /* disable mouse in xterm */
|
setmouse(); /* disable mouse in xterm */
|
||||||
#endif
|
#endif
|
||||||
curwin->w_cursor.col = regmatch.startpos[0].col;
|
curwin->w_cursor.col = regmatch.startpos[0].col;
|
||||||
#ifdef FEAT_CURSORBIND
|
|
||||||
if (curwin->w_p_crb)
|
if (curwin->w_p_crb)
|
||||||
do_check_cursorbind();
|
do_check_cursorbind();
|
||||||
#endif
|
|
||||||
|
|
||||||
/* When 'cpoptions' contains "u" don't sync undo when
|
/* When 'cpoptions' contains "u" don't sync undo when
|
||||||
* asking for confirmation. */
|
* asking for confirmation. */
|
||||||
@@ -5374,10 +5341,7 @@ do_sub(exarg_T *eap)
|
|||||||
sub_firstline + copycol);
|
sub_firstline + copycol);
|
||||||
|
|
||||||
if (new_line == NULL)
|
if (new_line == NULL)
|
||||||
{
|
VIM_CLEAR(orig_line);
|
||||||
vim_free(orig_line);
|
|
||||||
orig_line = NULL;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Position the cursor relative to the
|
/* Position the cursor relative to the
|
||||||
@@ -5806,8 +5770,7 @@ skip:
|
|||||||
if (did_sub)
|
if (did_sub)
|
||||||
++sub_nlines;
|
++sub_nlines;
|
||||||
vim_free(new_start); /* for when substitute was cancelled */
|
vim_free(new_start); /* for when substitute was cancelled */
|
||||||
vim_free(sub_firstline); /* free the copy of the original line */
|
VIM_CLEAR(sub_firstline); /* free the copy of the original line */
|
||||||
sub_firstline = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
line_breakcheck();
|
line_breakcheck();
|
||||||
@@ -6833,7 +6796,6 @@ fix_help_buffer(void)
|
|||||||
char_u *rt;
|
char_u *rt;
|
||||||
int mustfree;
|
int mustfree;
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Set filetype to "help" if still needed. */
|
/* Set filetype to "help" if still needed. */
|
||||||
if (STRCMP(curbuf->b_p_ft, "help") != 0)
|
if (STRCMP(curbuf->b_p_ft, "help") != 0)
|
||||||
{
|
{
|
||||||
@@ -6841,7 +6803,6 @@ fix_help_buffer(void)
|
|||||||
set_option_value((char_u *)"ft", 0L, (char_u *)"help", OPT_LOCAL);
|
set_option_value((char_u *)"ft", 0L, (char_u *)"help", OPT_LOCAL);
|
||||||
--curbuf_lock;
|
--curbuf_lock;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FEAT_SYN_HL
|
#ifdef FEAT_SYN_HL
|
||||||
if (!syntax_present(curwin))
|
if (!syntax_present(curwin))
|
||||||
@@ -6910,7 +6871,7 @@ fix_help_buffer(void)
|
|||||||
copy_option_part(&p, NameBuff, MAXPATHL, ",");
|
copy_option_part(&p, NameBuff, MAXPATHL, ",");
|
||||||
mustfree = FALSE;
|
mustfree = FALSE;
|
||||||
rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
|
rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
|
||||||
if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
|
if (rt != NULL && fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
|
||||||
{
|
{
|
||||||
int fcount;
|
int fcount;
|
||||||
char_u **fnames;
|
char_u **fnames;
|
||||||
@@ -6961,8 +6922,7 @@ fix_help_buffer(void)
|
|||||||
&& fnamecmp(e1, fname + 4) != 0)
|
&& fnamecmp(e1, fname + 4) != 0)
|
||||||
{
|
{
|
||||||
/* Not .txt and not .abx, remove it. */
|
/* Not .txt and not .abx, remove it. */
|
||||||
vim_free(fnames[i1]);
|
VIM_CLEAR(fnames[i1]);
|
||||||
fnames[i1] = NULL;
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (e1 - f1 != e2 - f2
|
if (e1 - f1 != e2 - f2
|
||||||
@@ -6970,11 +6930,8 @@ fix_help_buffer(void)
|
|||||||
continue;
|
continue;
|
||||||
if (fnamecmp(e1, ".txt") == 0
|
if (fnamecmp(e1, ".txt") == 0
|
||||||
&& fnamecmp(e2, fname + 4) == 0)
|
&& fnamecmp(e2, fname + 4) == 0)
|
||||||
{
|
|
||||||
/* use .abx instead of .txt */
|
/* use .abx instead of .txt */
|
||||||
vim_free(fnames[i1]);
|
VIM_CLEAR(fnames[i1]);
|
||||||
fnames[i1] = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -8331,7 +8288,6 @@ ex_smile(exarg_T *eap UNUSED)
|
|||||||
msg_clr_eos();
|
msg_clr_eos();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO)
|
|
||||||
/*
|
/*
|
||||||
* ":drop"
|
* ":drop"
|
||||||
* Opens the first argument in a window. When there are two or more arguments
|
* Opens the first argument in a window. When there are two or more arguments
|
||||||
@@ -8411,7 +8367,6 @@ ex_drop(exarg_T *eap)
|
|||||||
ex_rewind(eap);
|
ex_rewind(eap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Skip over the pattern argument of ":vimgrep /pat/[g][j]".
|
* Skip over the pattern argument of ":vimgrep /pat/[g][j]".
|
||||||
|
|||||||
260
src/ex_cmds2.c
260
src/ex_cmds2.c
@@ -73,6 +73,16 @@ static void do_setdebugtracelevel(char_u *arg);
|
|||||||
static void do_checkbacktracelevel(void);
|
static void do_checkbacktracelevel(void);
|
||||||
static void do_showbacktrace(char_u *cmd);
|
static void do_showbacktrace(char_u *cmd);
|
||||||
|
|
||||||
|
static char_u *debug_oldval = NULL; /* old and newval for debug expressions */
|
||||||
|
static char_u *debug_newval = NULL;
|
||||||
|
static int debug_expr = 0; /* use debug_expr */
|
||||||
|
|
||||||
|
int
|
||||||
|
has_watchexpr(void)
|
||||||
|
{
|
||||||
|
return debug_expr;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* do_debug(): Debug mode.
|
* do_debug(): Debug mode.
|
||||||
* Repeatedly get Ex commands, until told to continue normal execution.
|
* Repeatedly get Ex commands, until told to continue normal execution.
|
||||||
@@ -135,13 +145,24 @@ do_debug(char_u *cmd)
|
|||||||
|
|
||||||
if (!debug_did_msg)
|
if (!debug_did_msg)
|
||||||
MSG(_("Entering Debug mode. Type \"cont\" to continue."));
|
MSG(_("Entering Debug mode. Type \"cont\" to continue."));
|
||||||
|
if (debug_oldval != NULL)
|
||||||
|
{
|
||||||
|
smsg((char_u *)_("Oldval = \"%s\""), debug_oldval);
|
||||||
|
vim_free(debug_oldval);
|
||||||
|
debug_oldval = NULL;
|
||||||
|
}
|
||||||
|
if (debug_newval != NULL)
|
||||||
|
{
|
||||||
|
smsg((char_u *)_("Newval = \"%s\""), debug_newval);
|
||||||
|
vim_free(debug_newval);
|
||||||
|
debug_newval = NULL;
|
||||||
|
}
|
||||||
if (sourcing_name != NULL)
|
if (sourcing_name != NULL)
|
||||||
msg(sourcing_name);
|
msg(sourcing_name);
|
||||||
if (sourcing_lnum != 0)
|
if (sourcing_lnum != 0)
|
||||||
smsg((char_u *)_("line %ld: %s"), (long)sourcing_lnum, cmd);
|
smsg((char_u *)_("line %ld: %s"), (long)sourcing_lnum, cmd);
|
||||||
else
|
else
|
||||||
smsg((char_u *)_("cmd: %s"), cmd);
|
smsg((char_u *)_("cmd: %s"), cmd);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Repeat getting a command and executing it.
|
* Repeat getting a command and executing it.
|
||||||
*/
|
*/
|
||||||
@@ -528,11 +549,15 @@ dbg_check_skipped(exarg_T *eap)
|
|||||||
struct debuggy
|
struct debuggy
|
||||||
{
|
{
|
||||||
int dbg_nr; /* breakpoint number */
|
int dbg_nr; /* breakpoint number */
|
||||||
int dbg_type; /* DBG_FUNC or DBG_FILE */
|
int dbg_type; /* DBG_FUNC, DBG_FILE or DBG_EXPR */
|
||||||
char_u *dbg_name; /* function or file name */
|
char_u *dbg_name; /* function, expression or file name */
|
||||||
regprog_T *dbg_prog; /* regexp program */
|
regprog_T *dbg_prog; /* regexp program */
|
||||||
linenr_T dbg_lnum; /* line number in function or file */
|
linenr_T dbg_lnum; /* line number in function or file */
|
||||||
int dbg_forceit; /* ! used */
|
int dbg_forceit; /* ! used */
|
||||||
|
#ifdef FEAT_EVAL
|
||||||
|
typval_T *dbg_val; /* last result of watchexpression */
|
||||||
|
#endif
|
||||||
|
int dbg_level; /* stored nested level for expr */
|
||||||
};
|
};
|
||||||
|
|
||||||
static garray_T dbg_breakp = {0, 0, sizeof(struct debuggy), 4, NULL};
|
static garray_T dbg_breakp = {0, 0, sizeof(struct debuggy), 4, NULL};
|
||||||
@@ -546,6 +571,7 @@ static garray_T prof_ga = {0, 0, sizeof(struct debuggy), 4, NULL};
|
|||||||
#endif
|
#endif
|
||||||
#define DBG_FUNC 1
|
#define DBG_FUNC 1
|
||||||
#define DBG_FILE 2
|
#define DBG_FILE 2
|
||||||
|
#define DBG_EXPR 3
|
||||||
|
|
||||||
static int dbg_parsearg(char_u *arg, garray_T *gap);
|
static int dbg_parsearg(char_u *arg, garray_T *gap);
|
||||||
static linenr_T debuggy_find(int file,char_u *fname, linenr_T after, garray_T *gap, int *fp);
|
static linenr_T debuggy_find(int file,char_u *fname, linenr_T after, garray_T *gap, int *fp);
|
||||||
@@ -589,6 +615,12 @@ dbg_parsearg(
|
|||||||
bp->dbg_type = DBG_FILE;
|
bp->dbg_type = DBG_FILE;
|
||||||
here = TRUE;
|
here = TRUE;
|
||||||
}
|
}
|
||||||
|
else if (
|
||||||
|
#ifdef FEAT_PROFILE
|
||||||
|
gap != &prof_ga &&
|
||||||
|
#endif
|
||||||
|
STRNCMP(p, "expr", 4) == 0)
|
||||||
|
bp->dbg_type = DBG_EXPR;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EMSG2(_(e_invarg2), p);
|
EMSG2(_(e_invarg2), p);
|
||||||
@@ -624,6 +656,12 @@ dbg_parsearg(
|
|||||||
bp->dbg_name = vim_strsave(p);
|
bp->dbg_name = vim_strsave(p);
|
||||||
else if (here)
|
else if (here)
|
||||||
bp->dbg_name = vim_strsave(curbuf->b_ffname);
|
bp->dbg_name = vim_strsave(curbuf->b_ffname);
|
||||||
|
else if (bp->dbg_type == DBG_EXPR)
|
||||||
|
{
|
||||||
|
bp->dbg_name = vim_strsave(p);
|
||||||
|
if (bp->dbg_name != NULL)
|
||||||
|
bp->dbg_val = eval_expr(bp->dbg_name, NULL);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Expand the file name in the same way as do_source(). This means
|
/* Expand the file name in the same way as do_source(). This means
|
||||||
@@ -671,6 +709,8 @@ ex_breakadd(exarg_T *eap)
|
|||||||
bp = &DEBUGGY(gap, gap->ga_len);
|
bp = &DEBUGGY(gap, gap->ga_len);
|
||||||
bp->dbg_forceit = eap->forceit;
|
bp->dbg_forceit = eap->forceit;
|
||||||
|
|
||||||
|
if (bp->dbg_type != DBG_EXPR)
|
||||||
|
{
|
||||||
pat = file_pat_to_reg_pat(bp->dbg_name, NULL, NULL, FALSE);
|
pat = file_pat_to_reg_pat(bp->dbg_name, NULL, NULL, FALSE);
|
||||||
if (pat != NULL)
|
if (pat != NULL)
|
||||||
{
|
{
|
||||||
@@ -693,6 +733,13 @@ ex_breakadd(exarg_T *eap)
|
|||||||
++gap->ga_len;
|
++gap->ga_len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* DBG_EXPR */
|
||||||
|
DEBUGGY(gap, gap->ga_len++).dbg_nr = ++last_breakp;
|
||||||
|
++debug_tick;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -750,7 +797,7 @@ ex_breakdel(exarg_T *eap)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* ":breakdel {func|file} [lnum] {name}" */
|
/* ":breakdel {func|file|expr} [lnum] {name}" */
|
||||||
if (dbg_parsearg(eap->arg, gap) == FAIL)
|
if (dbg_parsearg(eap->arg, gap) == FAIL)
|
||||||
return;
|
return;
|
||||||
bp = &DEBUGGY(gap, gap->ga_len);
|
bp = &DEBUGGY(gap, gap->ga_len);
|
||||||
@@ -778,6 +825,11 @@ ex_breakdel(exarg_T *eap)
|
|||||||
while (gap->ga_len > 0)
|
while (gap->ga_len > 0)
|
||||||
{
|
{
|
||||||
vim_free(DEBUGGY(gap, todel).dbg_name);
|
vim_free(DEBUGGY(gap, todel).dbg_name);
|
||||||
|
#ifdef FEAT_EVAL
|
||||||
|
if (DEBUGGY(gap, todel).dbg_type == DBG_EXPR
|
||||||
|
&& DEBUGGY(gap, todel).dbg_val != NULL)
|
||||||
|
free_tv(DEBUGGY(gap, todel).dbg_val);
|
||||||
|
#endif
|
||||||
vim_regfree(DEBUGGY(gap, todel).dbg_prog);
|
vim_regfree(DEBUGGY(gap, todel).dbg_prog);
|
||||||
--gap->ga_len;
|
--gap->ga_len;
|
||||||
if (todel < gap->ga_len)
|
if (todel < gap->ga_len)
|
||||||
@@ -814,11 +866,15 @@ ex_breaklist(exarg_T *eap UNUSED)
|
|||||||
bp = &BREAKP(i);
|
bp = &BREAKP(i);
|
||||||
if (bp->dbg_type == DBG_FILE)
|
if (bp->dbg_type == DBG_FILE)
|
||||||
home_replace(NULL, bp->dbg_name, NameBuff, MAXPATHL, TRUE);
|
home_replace(NULL, bp->dbg_name, NameBuff, MAXPATHL, TRUE);
|
||||||
|
if (bp->dbg_type != DBG_EXPR)
|
||||||
smsg((char_u *)_("%3d %s %s line %ld"),
|
smsg((char_u *)_("%3d %s %s line %ld"),
|
||||||
bp->dbg_nr,
|
bp->dbg_nr,
|
||||||
bp->dbg_type == DBG_FUNC ? "func" : "file",
|
bp->dbg_type == DBG_FUNC ? "func" : "file",
|
||||||
bp->dbg_type == DBG_FUNC ? bp->dbg_name : NameBuff,
|
bp->dbg_type == DBG_FUNC ? bp->dbg_name : NameBuff,
|
||||||
(long)bp->dbg_lnum);
|
(long)bp->dbg_lnum);
|
||||||
|
else
|
||||||
|
smsg((char_u *)_("%3d expr %s"),
|
||||||
|
bp->dbg_nr, bp->dbg_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -889,7 +945,8 @@ debuggy_find(
|
|||||||
/* Skip entries that are not useful or are for a line that is beyond
|
/* Skip entries that are not useful or are for a line that is beyond
|
||||||
* an already found breakpoint. */
|
* an already found breakpoint. */
|
||||||
bp = &DEBUGGY(gap, i);
|
bp = &DEBUGGY(gap, i);
|
||||||
if (((bp->dbg_type == DBG_FILE) == file && (
|
if (((bp->dbg_type == DBG_FILE) == file &&
|
||||||
|
bp->dbg_type != DBG_EXPR && (
|
||||||
#ifdef FEAT_PROFILE
|
#ifdef FEAT_PROFILE
|
||||||
gap == &prof_ga ||
|
gap == &prof_ga ||
|
||||||
#endif
|
#endif
|
||||||
@@ -910,6 +967,63 @@ debuggy_find(
|
|||||||
}
|
}
|
||||||
got_int |= prev_got_int;
|
got_int |= prev_got_int;
|
||||||
}
|
}
|
||||||
|
#ifdef FEAT_EVAL
|
||||||
|
else if (bp->dbg_type == DBG_EXPR)
|
||||||
|
{
|
||||||
|
typval_T *tv;
|
||||||
|
int line = FALSE;
|
||||||
|
|
||||||
|
prev_got_int = got_int;
|
||||||
|
got_int = FALSE;
|
||||||
|
|
||||||
|
tv = eval_expr(bp->dbg_name, NULL);
|
||||||
|
if (tv != NULL)
|
||||||
|
{
|
||||||
|
if (bp->dbg_val == NULL)
|
||||||
|
{
|
||||||
|
debug_oldval = typval_tostring(NULL);
|
||||||
|
bp->dbg_val = tv;
|
||||||
|
debug_newval = typval_tostring(bp->dbg_val);
|
||||||
|
line = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (typval_compare(tv, bp->dbg_val, TYPE_EQUAL,
|
||||||
|
TRUE, FALSE) == OK
|
||||||
|
&& tv->vval.v_number == FALSE)
|
||||||
|
{
|
||||||
|
typval_T *v;
|
||||||
|
|
||||||
|
line = TRUE;
|
||||||
|
debug_oldval = typval_tostring(bp->dbg_val);
|
||||||
|
/* Need to evaluate again, typval_compare() overwrites
|
||||||
|
* "tv". */
|
||||||
|
v = eval_expr(bp->dbg_name, NULL);
|
||||||
|
debug_newval = typval_tostring(v);
|
||||||
|
free_tv(bp->dbg_val);
|
||||||
|
bp->dbg_val = v;
|
||||||
|
}
|
||||||
|
free_tv(tv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (bp->dbg_val != NULL)
|
||||||
|
{
|
||||||
|
debug_oldval = typval_tostring(bp->dbg_val);
|
||||||
|
debug_newval = typval_tostring(NULL);
|
||||||
|
free_tv(bp->dbg_val);
|
||||||
|
bp->dbg_val = NULL;
|
||||||
|
line = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line)
|
||||||
|
{
|
||||||
|
lnum = after > 0 ? after : 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
got_int |= prev_got_int;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if (name != fname)
|
if (name != fname)
|
||||||
vim_free(name);
|
vim_free(name);
|
||||||
@@ -1298,7 +1412,6 @@ check_due_timer(void)
|
|||||||
if (this_due <= 1)
|
if (this_due <= 1)
|
||||||
{
|
{
|
||||||
bevalexpr_due_set = FALSE;
|
bevalexpr_due_set = FALSE;
|
||||||
|
|
||||||
if (balloonEval == NULL)
|
if (balloonEval == NULL)
|
||||||
{
|
{
|
||||||
balloonEval = (BalloonEval *)alloc(sizeof(BalloonEval));
|
balloonEval = (BalloonEval *)alloc(sizeof(BalloonEval));
|
||||||
@@ -1932,17 +2045,15 @@ autowrite_all(void)
|
|||||||
FOR_ALL_BUFFERS(buf)
|
FOR_ALL_BUFFERS(buf)
|
||||||
if (bufIsChanged(buf) && !buf->b_p_ro)
|
if (bufIsChanged(buf) && !buf->b_p_ro)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
|
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
#endif
|
|
||||||
(void)buf_write_all(buf, FALSE);
|
(void)buf_write_all(buf, FALSE);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* an autocommand may have deleted the buffer */
|
/* an autocommand may have deleted the buffer */
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
buf = firstbuf;
|
buf = firstbuf;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1954,11 +2065,9 @@ autowrite_all(void)
|
|||||||
check_changed(buf_T *buf, int flags)
|
check_changed(buf_T *buf, int flags)
|
||||||
{
|
{
|
||||||
int forceit = (flags & CCGD_FORCEIT);
|
int forceit = (flags & CCGD_FORCEIT);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
|
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
#endif
|
|
||||||
|
|
||||||
if ( !forceit
|
if ( !forceit
|
||||||
&& bufIsChanged(buf)
|
&& bufIsChanged(buf)
|
||||||
@@ -1980,24 +2089,22 @@ check_changed(buf_T *buf, int flags)
|
|||||||
# endif
|
# endif
|
||||||
))
|
))
|
||||||
++count;
|
++count;
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
/* Autocommand deleted buffer, oops! It's not changed now. */
|
/* Autocommand deleted buffer, oops! It's not changed now. */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
# endif
|
|
||||||
dialog_changed(buf, count > 1);
|
dialog_changed(buf, count > 1);
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
/* Autocommand deleted buffer, oops! It's not changed now. */
|
/* Autocommand deleted buffer, oops! It's not changed now. */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
# endif
|
|
||||||
return bufIsChanged(buf);
|
return bufIsChanged(buf);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (flags & CCGD_EXCMD)
|
if (flags & CCGD_EXCMD)
|
||||||
no_write_message();
|
no_write_message();
|
||||||
else
|
else
|
||||||
no_write_message_nobang();
|
no_write_message_nobang(curbuf);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -2084,11 +2191,9 @@ dialog_changed(
|
|||||||
)
|
)
|
||||||
&& !buf2->b_p_ro)
|
&& !buf2->b_p_ro)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
|
|
||||||
set_bufref(&bufref, buf2);
|
set_bufref(&bufref, buf2);
|
||||||
#endif
|
|
||||||
#ifdef FEAT_BROWSE
|
#ifdef FEAT_BROWSE
|
||||||
/* May get file name, when there is none */
|
/* May get file name, when there is none */
|
||||||
browse_save_fname(buf2);
|
browse_save_fname(buf2);
|
||||||
@@ -2097,11 +2202,10 @@ dialog_changed(
|
|||||||
buf2->b_fname, buf2->b_ffname, FALSE) == OK)
|
buf2->b_fname, buf2->b_ffname, FALSE) == OK)
|
||||||
/* didn't hit Cancel */
|
/* didn't hit Cancel */
|
||||||
(void)buf_write_all(buf2, FALSE);
|
(void)buf_write_all(buf2, FALSE);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* an autocommand may have deleted the buffer */
|
/* an autocommand may have deleted the buffer */
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
buf2 = firstbuf;
|
buf2 = firstbuf;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2257,19 +2361,15 @@ check_changed_any(
|
|||||||
FOR_ALL_TAB_WINDOWS(tp, wp)
|
FOR_ALL_TAB_WINDOWS(tp, wp)
|
||||||
if (wp->w_buffer == buf)
|
if (wp->w_buffer == buf)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
bufref_T bufref;
|
bufref_T bufref;
|
||||||
|
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
#endif
|
|
||||||
goto_tabpage_win(tp, wp);
|
goto_tabpage_win(tp, wp);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Paranoia: did autocms wipe out the buffer with changes? */
|
/* Paranoia: did autocms wipe out the buffer with changes? */
|
||||||
if (!bufref_valid(&bufref))
|
if (!bufref_valid(&bufref))
|
||||||
{
|
|
||||||
goto theend;
|
goto theend;
|
||||||
}
|
|
||||||
#endif
|
|
||||||
goto buf_found;
|
goto buf_found;
|
||||||
}
|
}
|
||||||
buf_found:
|
buf_found:
|
||||||
@@ -2307,20 +2407,16 @@ check_fname(void)
|
|||||||
buf_write_all(buf_T *buf, int forceit)
|
buf_write_all(buf_T *buf, int forceit)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
buf_T *old_curbuf = curbuf;
|
buf_T *old_curbuf = curbuf;
|
||||||
#endif
|
|
||||||
|
|
||||||
retval = (buf_write(buf, buf->b_ffname, buf->b_fname,
|
retval = (buf_write(buf, buf->b_ffname, buf->b_fname,
|
||||||
(linenr_T)1, buf->b_ml.ml_line_count, NULL,
|
(linenr_T)1, buf->b_ml.ml_line_count, NULL,
|
||||||
FALSE, forceit, TRUE, FALSE));
|
FALSE, forceit, TRUE, FALSE));
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (curbuf != old_curbuf)
|
if (curbuf != old_curbuf)
|
||||||
{
|
{
|
||||||
msg_source(HL_ATTR(HLF_W));
|
msg_source(HL_ATTR(HLF_W));
|
||||||
MSG(_("Warning: Entered other buffer unexpectedly (check autocommands)"));
|
MSG(_("Warning: Entered other buffer unexpectedly (check autocommands)"));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2433,7 +2529,6 @@ get_arglist_exp(
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO)
|
|
||||||
/*
|
/*
|
||||||
* Redefine the argument list.
|
* Redefine the argument list.
|
||||||
*/
|
*/
|
||||||
@@ -2442,7 +2537,6 @@ set_arglist(char_u *str)
|
|||||||
{
|
{
|
||||||
do_arglist(str, AL_SET, 0);
|
do_arglist(str, AL_SET, 0);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "what" == AL_SET: Redefine the argument list to 'str'.
|
* "what" == AL_SET: Redefine the argument list to 'str'.
|
||||||
@@ -2942,7 +3036,7 @@ ex_listdo(exarg_T *eap)
|
|||||||
tabpage_T *tp;
|
tabpage_T *tp;
|
||||||
buf_T *buf = curbuf;
|
buf_T *buf = curbuf;
|
||||||
int next_fnum = 0;
|
int next_fnum = 0;
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
|
#if defined(FEAT_SYN_HL)
|
||||||
char_u *save_ei = NULL;
|
char_u *save_ei = NULL;
|
||||||
#endif
|
#endif
|
||||||
char_u *p_shm_save;
|
char_u *p_shm_save;
|
||||||
@@ -2960,7 +3054,7 @@ ex_listdo(exarg_T *eap)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
|
#if defined(FEAT_SYN_HL)
|
||||||
if (eap->cmdidx != CMD_windo && eap->cmdidx != CMD_tabdo)
|
if (eap->cmdidx != CMD_windo && eap->cmdidx != CMD_tabdo)
|
||||||
/* Don't do syntax HL autocommands. Skipping the syntax file is a
|
/* Don't do syntax HL autocommands. Skipping the syntax file is a
|
||||||
* great speed improvement. */
|
* great speed improvement. */
|
||||||
@@ -3138,11 +3232,10 @@ ex_listdo(exarg_T *eap)
|
|||||||
if (eap->cmdidx == CMD_windo)
|
if (eap->cmdidx == CMD_windo)
|
||||||
{
|
{
|
||||||
validate_cursor(); /* cursor may have moved */
|
validate_cursor(); /* cursor may have moved */
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
/* required when 'scrollbind' has been set */
|
/* required when 'scrollbind' has been set */
|
||||||
if (curwin->w_p_scb)
|
if (curwin->w_p_scb)
|
||||||
do_check_scrollbind(TRUE);
|
do_check_scrollbind(TRUE);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eap->cmdidx == CMD_windo || eap->cmdidx == CMD_tabdo)
|
if (eap->cmdidx == CMD_windo || eap->cmdidx == CMD_tabdo)
|
||||||
@@ -3154,7 +3247,7 @@ ex_listdo(exarg_T *eap)
|
|||||||
listcmd_busy = FALSE;
|
listcmd_busy = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
|
#if defined(FEAT_SYN_HL)
|
||||||
if (save_ei != NULL)
|
if (save_ei != NULL)
|
||||||
{
|
{
|
||||||
au_event_restore(save_ei);
|
au_event_restore(save_ei);
|
||||||
@@ -3549,6 +3642,8 @@ source_in_path(char_u *path, char_u *name, int flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Expand wildcards in "pat" and invoke do_source() for each match.
|
* Expand wildcards in "pat" and invoke do_source() for each match.
|
||||||
*/
|
*/
|
||||||
@@ -3567,13 +3662,11 @@ source_all_matches(char_u *pat)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* used for "cookie" of add_pack_plugin() */
|
/*
|
||||||
static int APP_ADD_DIR;
|
* Add the package directory to 'runtimepath'.
|
||||||
static int APP_LOAD;
|
*/
|
||||||
static int APP_BOTH;
|
static int
|
||||||
|
add_pack_dir_to_rtp(char_u *fname)
|
||||||
static void
|
|
||||||
add_pack_plugin(char_u *fname, void *cookie)
|
|
||||||
{
|
{
|
||||||
char_u *p4, *p3, *p2, *p1, *p;
|
char_u *p4, *p3, *p2, *p1, *p;
|
||||||
char_u *insp;
|
char_u *insp;
|
||||||
@@ -3582,20 +3675,16 @@ add_pack_plugin(char_u *fname, void *cookie)
|
|||||||
int keep;
|
int keep;
|
||||||
size_t oldlen;
|
size_t oldlen;
|
||||||
size_t addlen;
|
size_t addlen;
|
||||||
char_u *afterdir;
|
char_u *afterdir = NULL;
|
||||||
size_t afterlen = 0;
|
size_t afterlen = 0;
|
||||||
char_u *ffname = fix_fname(fname);
|
char_u *ffname = NULL;
|
||||||
size_t fname_len;
|
size_t fname_len;
|
||||||
char_u *buf = NULL;
|
char_u *buf = NULL;
|
||||||
char_u *rtp_ffname;
|
char_u *rtp_ffname;
|
||||||
int match;
|
int match;
|
||||||
|
int retval = FAIL;
|
||||||
|
|
||||||
if (ffname == NULL)
|
p4 = p3 = p2 = p1 = get_past_head(fname);
|
||||||
return;
|
|
||||||
if (cookie != &APP_LOAD && strstr((char *)p_rtp, (char *)ffname) == NULL)
|
|
||||||
{
|
|
||||||
/* directory is not yet in 'runtimepath', add it */
|
|
||||||
p4 = p3 = p2 = p1 = get_past_head(ffname);
|
|
||||||
for (p = p1; *p; MB_PTR_ADV(p))
|
for (p = p1; *p; MB_PTR_ADV(p))
|
||||||
if (vim_ispathsep_nocolon(*p))
|
if (vim_ispathsep_nocolon(*p))
|
||||||
{
|
{
|
||||||
@@ -3607,8 +3696,12 @@ add_pack_plugin(char_u *fname, void *cookie)
|
|||||||
* p4 p3 p2 p1
|
* p4 p3 p2 p1
|
||||||
*
|
*
|
||||||
* find the part up to "pack" in 'runtimepath' */
|
* find the part up to "pack" in 'runtimepath' */
|
||||||
c = *p4;
|
c = *++p4; /* append pathsep in order to expand symlink */
|
||||||
*p4 = NUL;
|
*p4 = NUL;
|
||||||
|
ffname = fix_fname(fname);
|
||||||
|
*p4 = c;
|
||||||
|
if (ffname == NULL)
|
||||||
|
return FAIL;
|
||||||
|
|
||||||
/* Find "ffname" in "p_rtp", ignoring '/' vs '\' differences. */
|
/* Find "ffname" in "p_rtp", ignoring '/' vs '\' differences. */
|
||||||
fname_len = STRLEN(ffname);
|
fname_len = STRLEN(ffname);
|
||||||
@@ -3635,15 +3728,14 @@ add_pack_plugin(char_u *fname, void *cookie)
|
|||||||
else
|
else
|
||||||
/* append after the matching directory. */
|
/* append after the matching directory. */
|
||||||
--insp;
|
--insp;
|
||||||
*p4 = c;
|
|
||||||
|
|
||||||
/* check if rtp/pack/name/start/name/after exists */
|
/* check if rtp/pack/name/start/name/after exists */
|
||||||
afterdir = concat_fnames(ffname, (char_u *)"after", TRUE);
|
afterdir = concat_fnames(fname, (char_u *)"after", TRUE);
|
||||||
if (afterdir != NULL && mch_isdir(afterdir))
|
if (afterdir != NULL && mch_isdir(afterdir))
|
||||||
afterlen = STRLEN(afterdir) + 1; /* add one for comma */
|
afterlen = STRLEN(afterdir) + 1; /* add one for comma */
|
||||||
|
|
||||||
oldlen = STRLEN(p_rtp);
|
oldlen = STRLEN(p_rtp);
|
||||||
addlen = STRLEN(ffname) + 1; /* add one for comma */
|
addlen = STRLEN(fname) + 1; /* add one for comma */
|
||||||
new_rtp = alloc((int)(oldlen + addlen + afterlen + 1));
|
new_rtp = alloc((int)(oldlen + addlen + afterlen + 1));
|
||||||
/* add one for NUL */
|
/* add one for NUL */
|
||||||
if (new_rtp == NULL)
|
if (new_rtp == NULL)
|
||||||
@@ -3651,10 +3743,9 @@ add_pack_plugin(char_u *fname, void *cookie)
|
|||||||
keep = (int)(insp - p_rtp);
|
keep = (int)(insp - p_rtp);
|
||||||
mch_memmove(new_rtp, p_rtp, keep);
|
mch_memmove(new_rtp, p_rtp, keep);
|
||||||
new_rtp[keep] = ',';
|
new_rtp[keep] = ',';
|
||||||
mch_memmove(new_rtp + keep + 1, ffname, addlen);
|
mch_memmove(new_rtp + keep + 1, fname, addlen);
|
||||||
if (p_rtp[keep] != NUL)
|
if (p_rtp[keep] != NUL)
|
||||||
mch_memmove(new_rtp + keep + addlen, p_rtp + keep,
|
mch_memmove(new_rtp + keep + addlen, p_rtp + keep, oldlen - keep + 1);
|
||||||
oldlen - keep + 1);
|
|
||||||
if (afterlen > 0)
|
if (afterlen > 0)
|
||||||
{
|
{
|
||||||
STRCAT(new_rtp, ",");
|
STRCAT(new_rtp, ",");
|
||||||
@@ -3662,16 +3753,30 @@ add_pack_plugin(char_u *fname, void *cookie)
|
|||||||
}
|
}
|
||||||
set_option_value((char_u *)"rtp", 0L, new_rtp, 0);
|
set_option_value((char_u *)"rtp", 0L, new_rtp, 0);
|
||||||
vim_free(new_rtp);
|
vim_free(new_rtp);
|
||||||
|
retval = OK;
|
||||||
|
|
||||||
|
theend:
|
||||||
|
vim_free(buf);
|
||||||
|
vim_free(ffname);
|
||||||
vim_free(afterdir);
|
vim_free(afterdir);
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cookie != &APP_ADD_DIR)
|
/*
|
||||||
|
* Load scripts in "plugin" and "ftdetect" directories of the package.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
load_pack_plugin(char_u *fname)
|
||||||
{
|
{
|
||||||
static char *plugpat = "%s/plugin/**/*.vim";
|
static char *plugpat = "%s/plugin/**/*.vim";
|
||||||
static char *ftpat = "%s/ftdetect/*.vim";
|
static char *ftpat = "%s/ftdetect/*.vim";
|
||||||
int len;
|
int len;
|
||||||
char_u *pat;
|
char_u *ffname = fix_fname(fname);
|
||||||
|
char_u *pat = NULL;
|
||||||
|
int retval = FAIL;
|
||||||
|
|
||||||
|
if (ffname == NULL)
|
||||||
|
return FAIL;
|
||||||
len = (int)STRLEN(ffname) + (int)STRLEN(ftpat);
|
len = (int)STRLEN(ffname) + (int)STRLEN(ftpat);
|
||||||
pat = alloc(len);
|
pat = alloc(len);
|
||||||
if (pat == NULL)
|
if (pat == NULL)
|
||||||
@@ -3679,7 +3784,6 @@ add_pack_plugin(char_u *fname, void *cookie)
|
|||||||
vim_snprintf((char *)pat, len, plugpat, ffname);
|
vim_snprintf((char *)pat, len, plugpat, ffname);
|
||||||
source_all_matches(pat);
|
source_all_matches(pat);
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
{
|
{
|
||||||
char_u *cmd = vim_strsave((char_u *)"g:did_load_filetypes");
|
char_u *cmd = vim_strsave((char_u *)"g:did_load_filetypes");
|
||||||
|
|
||||||
@@ -3694,13 +3798,29 @@ add_pack_plugin(char_u *fname, void *cookie)
|
|||||||
}
|
}
|
||||||
vim_free(cmd);
|
vim_free(cmd);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
vim_free(pat);
|
vim_free(pat);
|
||||||
}
|
retval = OK;
|
||||||
|
|
||||||
theend:
|
theend:
|
||||||
vim_free(buf);
|
|
||||||
vim_free(ffname);
|
vim_free(ffname);
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* used for "cookie" of add_pack_plugin() */
|
||||||
|
static int APP_ADD_DIR;
|
||||||
|
static int APP_LOAD;
|
||||||
|
static int APP_BOTH;
|
||||||
|
|
||||||
|
static void
|
||||||
|
add_pack_plugin(char_u *fname, void *cookie)
|
||||||
|
{
|
||||||
|
if (cookie != &APP_LOAD && strstr((char *)p_rtp, (char *)fname) == NULL)
|
||||||
|
/* directory is not yet in 'runtimepath', add it */
|
||||||
|
if (add_pack_dir_to_rtp(fname) == FAIL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (cookie != &APP_ADD_DIR)
|
||||||
|
load_pack_plugin(fname);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -3773,8 +3893,9 @@ ex_packadd(exarg_T *eap)
|
|||||||
vim_free(pat);
|
vim_free(pat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(FEAT_EVAL) && defined(FEAT_AUTOCMD)
|
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||||
/*
|
/*
|
||||||
* ":options"
|
* ":options"
|
||||||
*/
|
*/
|
||||||
@@ -4170,7 +4291,6 @@ do_source(
|
|||||||
goto theend;
|
goto theend;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Apply SourceCmd autocommands, they should get the file and source it. */
|
/* Apply SourceCmd autocommands, they should get the file and source it. */
|
||||||
if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL)
|
if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL)
|
||||||
&& apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp,
|
&& apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp,
|
||||||
@@ -4186,7 +4306,6 @@ do_source(
|
|||||||
|
|
||||||
/* Apply SourcePre autocommands, they may get the file. */
|
/* Apply SourcePre autocommands, they may get the file. */
|
||||||
apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
|
apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_FOPEN_NOINH
|
#ifdef USE_FOPEN_NOINH
|
||||||
cookie.fp = fopen_noinh_readbin((char *)fname_exp);
|
cookie.fp = fopen_noinh_readbin((char *)fname_exp);
|
||||||
@@ -5462,8 +5581,7 @@ free_locales(void)
|
|||||||
{
|
{
|
||||||
for (i = 0; locales[i] != NULL; i++)
|
for (i = 0; locales[i] != NULL; i++)
|
||||||
vim_free(locales[i]);
|
vim_free(locales[i]);
|
||||||
vim_free(locales);
|
VIM_CLEAR(locales);
|
||||||
locales = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|||||||
185
src/ex_docmd.c
185
src/ex_docmd.c
@@ -81,14 +81,8 @@ static void ex_abclear(exarg_T *eap);
|
|||||||
# define ex_menu ex_ni
|
# define ex_menu ex_ni
|
||||||
# define ex_menutranslate ex_ni
|
# define ex_menutranslate ex_ni
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
static void ex_autocmd(exarg_T *eap);
|
static void ex_autocmd(exarg_T *eap);
|
||||||
static void ex_doautocmd(exarg_T *eap);
|
static void ex_doautocmd(exarg_T *eap);
|
||||||
#else
|
|
||||||
# define ex_autocmd ex_ni
|
|
||||||
# define ex_doautocmd ex_ni
|
|
||||||
# define ex_doautoall ex_ni
|
|
||||||
#endif
|
|
||||||
#ifdef FEAT_LISTCMDS
|
#ifdef FEAT_LISTCMDS
|
||||||
static void ex_bunload(exarg_T *eap);
|
static void ex_bunload(exarg_T *eap);
|
||||||
static void ex_buffer(exarg_T *eap);
|
static void ex_buffer(exarg_T *eap);
|
||||||
@@ -201,9 +195,6 @@ static void ex_wrongmodifier(exarg_T *eap);
|
|||||||
static void ex_find(exarg_T *eap);
|
static void ex_find(exarg_T *eap);
|
||||||
static void ex_open(exarg_T *eap);
|
static void ex_open(exarg_T *eap);
|
||||||
static void ex_edit(exarg_T *eap);
|
static void ex_edit(exarg_T *eap);
|
||||||
#if !defined(FEAT_GUI) && !defined(FEAT_CLIENTSERVER)
|
|
||||||
# define ex_drop ex_ni
|
|
||||||
#endif
|
|
||||||
#ifndef FEAT_GUI
|
#ifndef FEAT_GUI
|
||||||
# define ex_gui ex_nogui
|
# define ex_gui ex_nogui
|
||||||
static void ex_nogui(exarg_T *eap);
|
static void ex_nogui(exarg_T *eap);
|
||||||
@@ -213,7 +204,8 @@ static void ex_tearoff(exarg_T *eap);
|
|||||||
#else
|
#else
|
||||||
# define ex_tearoff ex_ni
|
# define ex_tearoff ex_ni
|
||||||
#endif
|
#endif
|
||||||
#if (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_GTK)) && defined(FEAT_MENU)
|
#if (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_GTK) \
|
||||||
|
|| defined(FEAT_TERM_POPUP_MENU)) && defined(FEAT_MENU)
|
||||||
static void ex_popup(exarg_T *eap);
|
static void ex_popup(exarg_T *eap);
|
||||||
#else
|
#else
|
||||||
# define ex_popup ex_ni
|
# define ex_popup ex_ni
|
||||||
@@ -237,6 +229,10 @@ static void ex_popup(exarg_T *eap);
|
|||||||
# define ex_syntax ex_ni
|
# define ex_syntax ex_ni
|
||||||
# define ex_ownsyntax ex_ni
|
# define ex_ownsyntax ex_ni
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef FEAT_EVAL
|
||||||
|
# define ex_packadd ex_ni
|
||||||
|
# define ex_packloadall ex_ni
|
||||||
|
#endif
|
||||||
#if !defined(FEAT_SYN_HL) || !defined(FEAT_PROFILE)
|
#if !defined(FEAT_SYN_HL) || !defined(FEAT_PROFILE)
|
||||||
# define ex_syntime ex_ni
|
# define ex_syntime ex_ni
|
||||||
#endif
|
#endif
|
||||||
@@ -393,13 +389,8 @@ static void ex_viminfo(exarg_T *eap);
|
|||||||
# define ex_viminfo ex_ni
|
# define ex_viminfo ex_ni
|
||||||
#endif
|
#endif
|
||||||
static void ex_behave(exarg_T *eap);
|
static void ex_behave(exarg_T *eap);
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
static void ex_filetype(exarg_T *eap);
|
static void ex_filetype(exarg_T *eap);
|
||||||
static void ex_setfiletype(exarg_T *eap);
|
static void ex_setfiletype(exarg_T *eap);
|
||||||
#else
|
|
||||||
# define ex_filetype ex_ni
|
|
||||||
# define ex_setfiletype ex_ni
|
|
||||||
#endif
|
|
||||||
#ifndef FEAT_DIFF
|
#ifndef FEAT_DIFF
|
||||||
# define ex_diffoff ex_ni
|
# define ex_diffoff ex_ni
|
||||||
# define ex_diffpatch ex_ni
|
# define ex_diffpatch ex_ni
|
||||||
@@ -410,7 +401,7 @@ static void ex_setfiletype(exarg_T *eap);
|
|||||||
#endif
|
#endif
|
||||||
static void ex_digraphs(exarg_T *eap);
|
static void ex_digraphs(exarg_T *eap);
|
||||||
static void ex_set(exarg_T *eap);
|
static void ex_set(exarg_T *eap);
|
||||||
#if !defined(FEAT_EVAL) || !defined(FEAT_AUTOCMD)
|
#if !defined(FEAT_EVAL)
|
||||||
# define ex_options ex_ni
|
# define ex_options ex_ni
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_SEARCH_EXTRA
|
#ifdef FEAT_SEARCH_EXTRA
|
||||||
@@ -868,8 +859,7 @@ do_cmdline(
|
|||||||
{
|
{
|
||||||
/* Each '|' separated command is stored separately in lines_ga, to
|
/* Each '|' separated command is stored separately in lines_ga, to
|
||||||
* be able to jump to it. Don't use next_cmdline now. */
|
* be able to jump to it. Don't use next_cmdline now. */
|
||||||
vim_free(cmdline_copy);
|
VIM_CLEAR(cmdline_copy);
|
||||||
cmdline_copy = NULL;
|
|
||||||
|
|
||||||
/* Check if a function has returned or, unless it has an unclosed
|
/* Check if a function has returned or, unless it has an unclosed
|
||||||
* try conditional, aborted. */
|
* try conditional, aborted. */
|
||||||
@@ -1084,8 +1074,7 @@ do_cmdline(
|
|||||||
|
|
||||||
if (next_cmdline == NULL)
|
if (next_cmdline == NULL)
|
||||||
{
|
{
|
||||||
vim_free(cmdline_copy);
|
VIM_CLEAR(cmdline_copy);
|
||||||
cmdline_copy = NULL;
|
|
||||||
#ifdef FEAT_CMDHIST
|
#ifdef FEAT_CMDHIST
|
||||||
/*
|
/*
|
||||||
* If the command was typed, remember it for the ':' register.
|
* If the command was typed, remember it for the ':' register.
|
||||||
@@ -1176,6 +1165,13 @@ do_cmdline(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check for the next breakpoint after a watchexpression */
|
||||||
|
if (breakpoint != NULL && has_watchexpr())
|
||||||
|
{
|
||||||
|
*breakpoint = dbg_find_breakpoint(FALSE, fname, sourcing_lnum);
|
||||||
|
*dbg_tick = debug_tick;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When not inside any ":while" loop, clear remembered lines.
|
* When not inside any ":while" loop, clear remembered lines.
|
||||||
*/
|
*/
|
||||||
@@ -1759,11 +1755,8 @@ do_one_cmd(
|
|||||||
/* avoid that a function call in 'statusline' does this */
|
/* avoid that a function call in 'statusline' does this */
|
||||||
&& !getline_equal(fgetline, cookie, get_func_line)
|
&& !getline_equal(fgetline, cookie, get_func_line)
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* avoid that an autocommand, e.g. QuitPre, does this */
|
/* avoid that an autocommand, e.g. QuitPre, does this */
|
||||||
&& !getline_equal(fgetline, cookie, getnextac)
|
&& !getline_equal(fgetline, cookie, getnextac))
|
||||||
#endif
|
|
||||||
)
|
|
||||||
--quitmore;
|
--quitmore;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1910,7 +1903,6 @@ do_one_cmd(
|
|||||||
|
|
||||||
case 'n': if (checkforcmd(&ea.cmd, "noautocmd", 3))
|
case 'n': if (checkforcmd(&ea.cmd, "noautocmd", 3))
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (cmdmod.save_ei == NULL)
|
if (cmdmod.save_ei == NULL)
|
||||||
{
|
{
|
||||||
/* Set 'eventignore' to "all". Restore the
|
/* Set 'eventignore' to "all". Restore the
|
||||||
@@ -1919,7 +1911,6 @@ do_one_cmd(
|
|||||||
set_string_option_direct((char_u *)"ei", -1,
|
set_string_option_direct((char_u *)"ei", -1,
|
||||||
(char_u *)"all", OPT_FREE, SID_NONE);
|
(char_u *)"all", OPT_FREE, SID_NONE);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!checkforcmd(&ea.cmd, "noswapfile", 3))
|
if (!checkforcmd(&ea.cmd, "noswapfile", 3))
|
||||||
@@ -2300,7 +2291,6 @@ do_one_cmd(
|
|||||||
goto doend;
|
goto doend;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* If this looks like an undefined user command and there are CmdUndefined
|
/* If this looks like an undefined user command and there are CmdUndefined
|
||||||
* autocommands defined, trigger the matching autocommands. */
|
* autocommands defined, trigger the matching autocommands. */
|
||||||
if (p != NULL && ea.cmdidx == CMD_SIZE && !ea.skip
|
if (p != NULL && ea.cmdidx == CMD_SIZE && !ea.skip
|
||||||
@@ -2317,9 +2307,12 @@ do_one_cmd(
|
|||||||
vim_free(p);
|
vim_free(p);
|
||||||
/* If the autocommands did something and didn't cause an error, try
|
/* If the autocommands did something and didn't cause an error, try
|
||||||
* finding the command again. */
|
* finding the command again. */
|
||||||
p = (ret && !aborting()) ? find_command(&ea, NULL) : ea.cmd;
|
p = (ret
|
||||||
}
|
#ifdef FEAT_EVAL
|
||||||
|
&& !aborting()
|
||||||
#endif
|
#endif
|
||||||
|
) ? find_command(&ea, NULL) : ea.cmd;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef FEAT_USR_CMDS
|
#ifdef FEAT_USR_CMDS
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
@@ -2419,7 +2412,6 @@ do_one_cmd(
|
|||||||
errormsg = (char_u *)_(get_text_locked_msg());
|
errormsg = (char_u *)_(get_text_locked_msg());
|
||||||
goto doend;
|
goto doend;
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Disallow editing another buffer when "curbuf_lock" is set.
|
/* Disallow editing another buffer when "curbuf_lock" is set.
|
||||||
* Do allow ":edit" (check for argument later).
|
* Do allow ":edit" (check for argument later).
|
||||||
* Do allow ":checktime" (it's postponed). */
|
* Do allow ":checktime" (it's postponed). */
|
||||||
@@ -2429,7 +2421,6 @@ do_one_cmd(
|
|||||||
&& !IS_USER_CMDIDX(ea.cmdidx)
|
&& !IS_USER_CMDIDX(ea.cmdidx)
|
||||||
&& curbuf_locked())
|
&& curbuf_locked())
|
||||||
goto doend;
|
goto doend;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!ni && !(ea.argt & RANGE) && ea.addr_count > 0)
|
if (!ni && !(ea.argt & RANGE) && ea.addr_count > 0)
|
||||||
{
|
{
|
||||||
@@ -2878,8 +2869,18 @@ do_one_cmd(
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* The :try command saves the emsg_silent flag, reset it here when
|
||||||
|
* ":silent! try" was used, it should only apply to :try itself. */
|
||||||
|
if (ea.cmdidx == CMD_try && did_esilent > 0)
|
||||||
|
{
|
||||||
|
emsg_silent -= did_esilent;
|
||||||
|
if (emsg_silent < 0)
|
||||||
|
emsg_silent = 0;
|
||||||
|
did_esilent = 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 7. Switch on command name.
|
* 7. Execute the command.
|
||||||
*
|
*
|
||||||
* The "ea" structure holds the arguments that can be used.
|
* The "ea" structure holds the arguments that can be used.
|
||||||
*/
|
*/
|
||||||
@@ -2959,7 +2960,7 @@ doend:
|
|||||||
|
|
||||||
if (verbose_save >= 0)
|
if (verbose_save >= 0)
|
||||||
p_verbose = verbose_save;
|
p_verbose = verbose_save;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (cmdmod.save_ei != NULL)
|
if (cmdmod.save_ei != NULL)
|
||||||
{
|
{
|
||||||
/* Restore 'eventignore' to the value before ":noautocmd". */
|
/* Restore 'eventignore' to the value before ":noautocmd". */
|
||||||
@@ -2967,7 +2968,7 @@ doend:
|
|||||||
OPT_FREE, SID_NONE);
|
OPT_FREE, SID_NONE);
|
||||||
free_string_option(cmdmod.save_ei);
|
free_string_option(cmdmod.save_ei);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if (cmdmod.filter_regmatch.regprog != NULL)
|
if (cmdmod.filter_regmatch.regprog != NULL)
|
||||||
vim_regfree(cmdmod.filter_regmatch.regprog);
|
vim_regfree(cmdmod.filter_regmatch.regprog);
|
||||||
|
|
||||||
@@ -4013,14 +4014,12 @@ set_one_cmd_context(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
case CMD_autocmd:
|
case CMD_autocmd:
|
||||||
return set_context_in_autocmd(xp, arg, FALSE);
|
return set_context_in_autocmd(xp, arg, FALSE);
|
||||||
|
|
||||||
case CMD_doautocmd:
|
case CMD_doautocmd:
|
||||||
case CMD_doautoall:
|
case CMD_doautoall:
|
||||||
return set_context_in_autocmd(xp, arg, TRUE);
|
return set_context_in_autocmd(xp, arg, TRUE);
|
||||||
#endif
|
|
||||||
case CMD_set:
|
case CMD_set:
|
||||||
set_context_in_set_cmd(xp, arg, 0);
|
set_context_in_set_cmd(xp, arg, 0);
|
||||||
break;
|
break;
|
||||||
@@ -4521,13 +4520,14 @@ get_address(
|
|||||||
if (lnum != MAXLNUM)
|
if (lnum != MAXLNUM)
|
||||||
curwin->w_cursor.lnum = lnum;
|
curwin->w_cursor.lnum = lnum;
|
||||||
/*
|
/*
|
||||||
* Start a forward search at the end of the line.
|
* Start a forward search at the end of the line (unless
|
||||||
|
* before the first line).
|
||||||
* Start a backward search at the start of the line.
|
* Start a backward search at the start of the line.
|
||||||
* This makes sure we never match in the current
|
* This makes sure we never match in the current
|
||||||
* line, and can match anywhere in the
|
* line, and can match anywhere in the
|
||||||
* next/previous line.
|
* next/previous line.
|
||||||
*/
|
*/
|
||||||
if (c == '/')
|
if (c == '/' && curwin->w_cursor.lnum > 0)
|
||||||
curwin->w_cursor.col = MAXCOL;
|
curwin->w_cursor.col = MAXCOL;
|
||||||
else
|
else
|
||||||
curwin->w_cursor.col = 0;
|
curwin->w_cursor.col = 0;
|
||||||
@@ -5487,7 +5487,6 @@ ex_abclear(exarg_T *eap)
|
|||||||
map_clear(eap->cmd, eap->arg, TRUE, TRUE);
|
map_clear(eap->cmd, eap->arg, TRUE, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(FEAT_AUTOCMD) || defined(PROTO)
|
|
||||||
static void
|
static void
|
||||||
ex_autocmd(exarg_T *eap)
|
ex_autocmd(exarg_T *eap)
|
||||||
{
|
{
|
||||||
@@ -5521,7 +5520,6 @@ ex_doautocmd(exarg_T *eap)
|
|||||||
if (call_do_modelines && did_aucmd)
|
if (call_do_modelines && did_aucmd)
|
||||||
do_modelines(0);
|
do_modelines(0);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FEAT_LISTCMDS
|
#ifdef FEAT_LISTCMDS
|
||||||
/*
|
/*
|
||||||
@@ -5801,11 +5799,9 @@ uc_add_command(
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
vim_free(cmd->uc_rep);
|
VIM_CLEAR(cmd->uc_rep);
|
||||||
cmd->uc_rep = NULL;
|
|
||||||
#if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
|
#if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
|
||||||
vim_free(cmd->uc_compl_arg);
|
VIM_CLEAR(cmd->uc_compl_arg);
|
||||||
cmd->uc_compl_arg = NULL;
|
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -7223,7 +7219,6 @@ ex_quit(exarg_T *eap)
|
|||||||
else
|
else
|
||||||
wp = curwin;
|
wp = curwin;
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Refuse to quit when locked. */
|
/* Refuse to quit when locked. */
|
||||||
if (curbuf_locked())
|
if (curbuf_locked())
|
||||||
return;
|
return;
|
||||||
@@ -7234,7 +7229,6 @@ ex_quit(exarg_T *eap)
|
|||||||
if (!win_valid(wp)
|
if (!win_valid(wp)
|
||||||
|| (wp->w_buffer->b_nwindows == 1 && wp->w_buffer->b_locked > 0))
|
|| (wp->w_buffer->b_nwindows == 1 && wp->w_buffer->b_locked > 0))
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FEAT_NETBEANS_INTG
|
#ifdef FEAT_NETBEANS_INTG
|
||||||
netbeansForcedQuit = eap->forceit;
|
netbeansForcedQuit = eap->forceit;
|
||||||
@@ -7307,13 +7301,11 @@ ex_quit_all(exarg_T *eap)
|
|||||||
text_locked_msg();
|
text_locked_msg();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
|
||||||
/* Refuse to quit when locked or when the buffer in the last window is
|
/* Refuse to quit when locked or when the buffer in the last window is
|
||||||
* being closed (can only happen in autocommands). */
|
* being closed (can only happen in autocommands). */
|
||||||
if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_locked > 0))
|
if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_locked > 0))
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
|
|
||||||
exiting = TRUE;
|
exiting = TRUE;
|
||||||
if (eap->forceit || !check_changed_any(FALSE, FALSE))
|
if (eap->forceit || !check_changed_any(FALSE, FALSE))
|
||||||
@@ -7334,11 +7326,7 @@ ex_close(exarg_T *eap)
|
|||||||
cmdwin_result = Ctrl_C;
|
cmdwin_result = Ctrl_C;
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if (!text_locked()
|
if (!text_locked() && !curbuf_locked())
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
&& !curbuf_locked()
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
if (eap->addr_count == 0)
|
if (eap->addr_count == 0)
|
||||||
ex_win_close(eap->forceit, curwin, NULL);
|
ex_win_close(eap->forceit, curwin, NULL);
|
||||||
@@ -7554,11 +7542,7 @@ ex_tabclose(exarg_T *eap)
|
|||||||
tabpage_close_other(tp, eap->forceit);
|
tabpage_close_other(tp, eap->forceit);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!text_locked()
|
else if (!text_locked() && !curbuf_locked())
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
&& !curbuf_locked()
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
tabpage_close(eap->forceit);
|
tabpage_close(eap->forceit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7651,9 +7635,7 @@ tabpage_close_other(tabpage_T *tp, int forceit)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
apply_autocmds(EVENT_TABCLOSED, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_TABCLOSED, NULL, NULL, FALSE, curbuf);
|
||||||
#endif
|
|
||||||
|
|
||||||
redraw_tabline = TRUE;
|
redraw_tabline = TRUE;
|
||||||
if (h != tabline_height())
|
if (h != tabline_height())
|
||||||
@@ -7779,13 +7761,11 @@ ex_exit(exarg_T *eap)
|
|||||||
text_locked_msg();
|
text_locked_msg();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
|
||||||
/* Refuse to quit when locked or when the buffer in the last window is
|
/* Refuse to quit when locked or when the buffer in the last window is
|
||||||
* being closed (can only happen in autocommands). */
|
* being closed (can only happen in autocommands). */
|
||||||
if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_locked > 0))
|
if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_locked > 0))
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* if more files or windows we won't exit
|
* if more files or windows we won't exit
|
||||||
@@ -7890,10 +7870,9 @@ handle_drop(
|
|||||||
/* Postpone this while editing the command line. */
|
/* Postpone this while editing the command line. */
|
||||||
if (text_locked())
|
if (text_locked())
|
||||||
return;
|
return;
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (curbuf_locked())
|
if (curbuf_locked())
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
/* When the screen is being updated we should not change buffers and
|
/* When the screen is being updated we should not change buffers and
|
||||||
* windows structures, it may cause freed memory to be used. */
|
* windows structures, it may cause freed memory to be used. */
|
||||||
if (updating_screen)
|
if (updating_screen)
|
||||||
@@ -8057,6 +8036,14 @@ alist_set(
|
|||||||
int fnum_len)
|
int fnum_len)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
static int recursive = 0;
|
||||||
|
|
||||||
|
if (recursive)
|
||||||
|
{
|
||||||
|
EMSG(_(e_au_recursive));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
++recursive;
|
||||||
|
|
||||||
alist_clear(al);
|
alist_clear(al);
|
||||||
if (ga_grow(&al->al_ga, count) == OK)
|
if (ga_grow(&al->al_ga, count) == OK)
|
||||||
@@ -8086,6 +8073,8 @@ alist_set(
|
|||||||
FreeWild(count, files);
|
FreeWild(count, files);
|
||||||
if (al == &global_alist)
|
if (al == &global_alist)
|
||||||
arg_had_last = FALSE;
|
arg_had_last = FALSE;
|
||||||
|
|
||||||
|
--recursive;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -8228,7 +8217,6 @@ ex_splitview(exarg_T *eap)
|
|||||||
&& eap->cmdidx != CMD_vnew
|
&& eap->cmdidx != CMD_vnew
|
||||||
&& eap->cmdidx != CMD_new)
|
&& eap->cmdidx != CMD_new)
|
||||||
{
|
{
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
if (
|
if (
|
||||||
# ifdef FEAT_GUI
|
# ifdef FEAT_GUI
|
||||||
!gui.in_use &&
|
!gui.in_use &&
|
||||||
@@ -8241,7 +8229,6 @@ ex_splitview(exarg_T *eap)
|
|||||||
eap->arg = (char_u *)".";
|
eap->arg = (char_u *)".";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
# endif
|
|
||||||
{
|
{
|
||||||
fname = do_browse(0, (char_u *)_("Edit File in new window"),
|
fname = do_browse(0, (char_u *)_("Edit File in new window"),
|
||||||
eap->arg, NULL, NULL, NULL, curbuf);
|
eap->arg, NULL, NULL, NULL, curbuf);
|
||||||
@@ -8277,7 +8264,6 @@ ex_splitview(exarg_T *eap)
|
|||||||
else if (win_split(eap->addr_count > 0 ? (int)eap->line2 : 0,
|
else if (win_split(eap->addr_count > 0 ? (int)eap->line2 : 0,
|
||||||
*eap->cmd == 'v' ? WSP_VERT : 0) != FAIL)
|
*eap->cmd == 'v' ? WSP_VERT : 0) != FAIL)
|
||||||
{
|
{
|
||||||
# ifdef FEAT_SCROLLBIND
|
|
||||||
/* Reset 'scrollbind' when editing another file, but keep it when
|
/* Reset 'scrollbind' when editing another file, but keep it when
|
||||||
* doing ":split" without arguments. */
|
* doing ":split" without arguments. */
|
||||||
if (*eap->arg != NUL
|
if (*eap->arg != NUL
|
||||||
@@ -8290,7 +8276,6 @@ ex_splitview(exarg_T *eap)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
do_check_scrollbind(FALSE);
|
do_check_scrollbind(FALSE);
|
||||||
# endif
|
|
||||||
do_exedit(eap, old_curwin);
|
do_exedit(eap, old_curwin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8645,12 +8630,11 @@ do_exedit(
|
|||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
/* Can't edit another file when "curbuf_lock" is set. Only ":edit"
|
/* Can't edit another file when "curbuf_lock" is set. Only ":edit"
|
||||||
* can bring us here, others are stopped earlier. */
|
* can bring us here, others are stopped earlier. */
|
||||||
if (*eap->arg != NUL && curbuf_locked())
|
if (*eap->arg != NUL && curbuf_locked())
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
n = readonlymode;
|
n = readonlymode;
|
||||||
if (eap->cmdidx == CMD_view || eap->cmdidx == CMD_sview)
|
if (eap->cmdidx == CMD_view || eap->cmdidx == CMD_sview)
|
||||||
readonlymode = TRUE;
|
readonlymode = TRUE;
|
||||||
@@ -8679,7 +8663,7 @@ do_exedit(
|
|||||||
need_hide = (curbufIsChanged() && curbuf->b_nwindows <= 1);
|
need_hide = (curbufIsChanged() && curbuf->b_nwindows <= 1);
|
||||||
if (!need_hide || buf_hide(curbuf))
|
if (!need_hide || buf_hide(curbuf))
|
||||||
{
|
{
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
#if defined(FEAT_EVAL)
|
||||||
cleanup_T cs;
|
cleanup_T cs;
|
||||||
|
|
||||||
/* Reset the error/interrupt/exception state here so that
|
/* Reset the error/interrupt/exception state here so that
|
||||||
@@ -8691,7 +8675,7 @@ do_exedit(
|
|||||||
#endif
|
#endif
|
||||||
win_close(curwin, !need_hide && !buf_hide(curbuf));
|
win_close(curwin, !need_hide && !buf_hide(curbuf));
|
||||||
|
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
#if defined(FEAT_EVAL)
|
||||||
/* Restore the error/interrupt/exception state if not
|
/* Restore the error/interrupt/exception state if not
|
||||||
* discarded by a new aborting error, interrupt, or
|
* discarded by a new aborting error, interrupt, or
|
||||||
* uncaught exception. */
|
* uncaught exception. */
|
||||||
@@ -8758,11 +8742,21 @@ ex_tearoff(exarg_T *eap)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_GTK)) && defined(FEAT_MENU)
|
#if (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_GTK) \
|
||||||
|
|| defined(FEAT_TERM_POPUP_MENU)) && defined(FEAT_MENU)
|
||||||
static void
|
static void
|
||||||
ex_popup(exarg_T *eap)
|
ex_popup(exarg_T *eap)
|
||||||
{
|
{
|
||||||
|
# if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_GTK)
|
||||||
|
if (gui.in_use)
|
||||||
gui_make_popup(eap->arg, eap->forceit);
|
gui_make_popup(eap->arg, eap->forceit);
|
||||||
|
# ifdef FEAT_TERM_POPUP_MENU
|
||||||
|
else
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifdef FEAT_TERM_POPUP_MENU
|
||||||
|
pum_make_popup(eap->arg, eap->forceit);
|
||||||
|
# endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -8783,7 +8777,6 @@ ex_swapname(exarg_T *eap UNUSED)
|
|||||||
static void
|
static void
|
||||||
ex_syncbind(exarg_T *eap UNUSED)
|
ex_syncbind(exarg_T *eap UNUSED)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_SCROLLBIND
|
|
||||||
win_T *wp;
|
win_T *wp;
|
||||||
win_T *save_curwin = curwin;
|
win_T *save_curwin = curwin;
|
||||||
buf_T *save_curbuf = curbuf;
|
buf_T *save_curbuf = curbuf;
|
||||||
@@ -8851,7 +8844,6 @@ ex_syncbind(exarg_T *eap UNUSED)
|
|||||||
ins_typebuf(ctrl_o, REMAP_NONE, 0, TRUE, FALSE);
|
ins_typebuf(ctrl_o, REMAP_NONE, 0, TRUE, FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -8904,7 +8896,7 @@ ex_read(exarg_T *eap)
|
|||||||
}
|
}
|
||||||
if (i != OK)
|
if (i != OK)
|
||||||
{
|
{
|
||||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
#if defined(FEAT_EVAL)
|
||||||
if (!aborting())
|
if (!aborting())
|
||||||
#endif
|
#endif
|
||||||
EMSG2(_(e_notopen), eap->arg);
|
EMSG2(_(e_notopen), eap->arg);
|
||||||
@@ -8939,11 +8931,8 @@ static char_u *prev_dir = NULL;
|
|||||||
void
|
void
|
||||||
free_cd_dir(void)
|
free_cd_dir(void)
|
||||||
{
|
{
|
||||||
vim_free(prev_dir);
|
VIM_CLEAR(prev_dir);
|
||||||
prev_dir = NULL;
|
VIM_CLEAR(globaldir);
|
||||||
|
|
||||||
vim_free(globaldir);
|
|
||||||
globaldir = NULL;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -8954,8 +8943,7 @@ free_cd_dir(void)
|
|||||||
void
|
void
|
||||||
post_chdir(int local)
|
post_chdir(int local)
|
||||||
{
|
{
|
||||||
vim_free(curwin->w_localdir);
|
VIM_CLEAR(curwin->w_localdir);
|
||||||
curwin->w_localdir = NULL;
|
|
||||||
if (local)
|
if (local)
|
||||||
{
|
{
|
||||||
/* If still in global directory, need to remember current
|
/* If still in global directory, need to remember current
|
||||||
@@ -8970,8 +8958,7 @@ post_chdir(int local)
|
|||||||
{
|
{
|
||||||
/* We are now in the global directory, no need to remember its
|
/* We are now in the global directory, no need to remember its
|
||||||
* name. */
|
* name. */
|
||||||
vim_free(globaldir);
|
VIM_CLEAR(globaldir);
|
||||||
globaldir = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
shorten_fnames(TRUE);
|
shorten_fnames(TRUE);
|
||||||
@@ -8995,10 +8982,8 @@ ex_cd(exarg_T *eap)
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
if (allbuf_locked())
|
if (allbuf_locked())
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged()
|
if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged()
|
||||||
&& !eap->forceit)
|
&& !eap->forceit)
|
||||||
{
|
{
|
||||||
@@ -9047,11 +9032,17 @@ ex_cd(exarg_T *eap)
|
|||||||
EMSG(_(e_failed));
|
EMSG(_(e_failed));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
post_chdir(eap->cmdidx == CMD_lcd || eap->cmdidx == CMD_lchdir);
|
int is_local_chdir = eap->cmdidx == CMD_lcd
|
||||||
|
|| eap->cmdidx == CMD_lchdir;
|
||||||
|
|
||||||
|
post_chdir(is_local_chdir);
|
||||||
|
|
||||||
/* Echo the new current directory if the command was typed. */
|
/* Echo the new current directory if the command was typed. */
|
||||||
if (KeyTyped || p_verbose >= 5)
|
if (KeyTyped || p_verbose >= 5)
|
||||||
ex_pwd(eap);
|
ex_pwd(eap);
|
||||||
|
apply_autocmds(EVENT_DIRCHANGED,
|
||||||
|
is_local_chdir ? (char_u *)"window" : (char_u *)"global",
|
||||||
|
new_dir, FALSE, curbuf);
|
||||||
}
|
}
|
||||||
vim_free(tofree);
|
vim_free(tofree);
|
||||||
}
|
}
|
||||||
@@ -9931,7 +9922,7 @@ ex_mkrc(
|
|||||||
*dirnow = NUL;
|
*dirnow = NUL;
|
||||||
if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
|
if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
|
||||||
{
|
{
|
||||||
if (vim_chdirfile(fname) == OK)
|
if (vim_chdirfile(fname, NULL) == OK)
|
||||||
shorten_fnames(TRUE);
|
shorten_fnames(TRUE);
|
||||||
}
|
}
|
||||||
else if (*dirnow != NUL
|
else if (*dirnow != NUL
|
||||||
@@ -10562,21 +10553,15 @@ find_cmdline_var(char_u *src, int *usedlen)
|
|||||||
#define SPEC_SFILE (SPEC_CFILE + 1)
|
#define SPEC_SFILE (SPEC_CFILE + 1)
|
||||||
"<slnum>", /* ":so" file line number */
|
"<slnum>", /* ":so" file line number */
|
||||||
#define SPEC_SLNUM (SPEC_SFILE + 1)
|
#define SPEC_SLNUM (SPEC_SFILE + 1)
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
"<afile>", /* autocommand file name */
|
"<afile>", /* autocommand file name */
|
||||||
#define SPEC_AFILE (SPEC_SLNUM + 1)
|
#define SPEC_AFILE (SPEC_SLNUM + 1)
|
||||||
"<abuf>", /* autocommand buffer number */
|
"<abuf>", /* autocommand buffer number */
|
||||||
#define SPEC_ABUF (SPEC_AFILE + 1)
|
#define SPEC_ABUF (SPEC_AFILE + 1)
|
||||||
"<amatch>", /* autocommand match name */
|
"<amatch>", /* autocommand match name */
|
||||||
#define SPEC_AMATCH (SPEC_ABUF + 1)
|
#define SPEC_AMATCH (SPEC_ABUF + 1)
|
||||||
#endif
|
|
||||||
#ifdef FEAT_CLIENTSERVER
|
#ifdef FEAT_CLIENTSERVER
|
||||||
"<client>"
|
"<client>"
|
||||||
# ifdef FEAT_AUTOCMD
|
|
||||||
# define SPEC_CLIENT (SPEC_AMATCH + 1)
|
# define SPEC_CLIENT (SPEC_AMATCH + 1)
|
||||||
# else
|
|
||||||
# define SPEC_CLIENT (SPEC_SLNUM + 1)
|
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -10775,7 +10760,6 @@ eval_vars(
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
case SPEC_AFILE: /* file name for autocommand */
|
case SPEC_AFILE: /* file name for autocommand */
|
||||||
result = autocmd_fname;
|
result = autocmd_fname;
|
||||||
if (result != NULL && !autocmd_fname_full)
|
if (result != NULL && !autocmd_fname_full)
|
||||||
@@ -10814,7 +10798,6 @@ eval_vars(
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endif
|
|
||||||
case SPEC_SFILE: /* file name for ":so" command */
|
case SPEC_SFILE: /* file name for ":so" command */
|
||||||
result = sourcing_name;
|
result = sourcing_name;
|
||||||
if (result == NULL)
|
if (result == NULL)
|
||||||
@@ -10950,7 +10933,6 @@ arg_all(void)
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(FEAT_AUTOCMD) || defined(PROTO)
|
|
||||||
/*
|
/*
|
||||||
* Expand the <sfile> string in "arg".
|
* Expand the <sfile> string in "arg".
|
||||||
*
|
*
|
||||||
@@ -11012,7 +10994,6 @@ expand_sfile(char_u *arg)
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FEAT_SESSION
|
#ifdef FEAT_SESSION
|
||||||
static int ses_winsizes(FILE *fd, int restore_size,
|
static int ses_winsizes(FILE *fd, int restore_size,
|
||||||
@@ -12044,7 +12025,6 @@ get_mapclear_arg(expand_T *xp UNUSED, int idx)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_AUTOCMD
|
|
||||||
static int filetype_detect = FALSE;
|
static int filetype_detect = FALSE;
|
||||||
static int filetype_plugin = FALSE;
|
static int filetype_plugin = FALSE;
|
||||||
static int filetype_indent = FALSE;
|
static int filetype_indent = FALSE;
|
||||||
@@ -12158,7 +12138,6 @@ ex_setfiletype(exarg_T *eap)
|
|||||||
did_filetype = FALSE;
|
did_filetype = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ex_digraphs(exarg_T *eap UNUSED)
|
ex_digraphs(exarg_T *eap UNUSED)
|
||||||
@@ -12182,7 +12161,7 @@ ex_set(exarg_T *eap)
|
|||||||
flags = OPT_LOCAL;
|
flags = OPT_LOCAL;
|
||||||
else if (eap->cmdidx == CMD_setglobal)
|
else if (eap->cmdidx == CMD_setglobal)
|
||||||
flags = OPT_GLOBAL;
|
flags = OPT_GLOBAL;
|
||||||
#if defined(FEAT_EVAL) && defined(FEAT_AUTOCMD) && defined(FEAT_BROWSE)
|
#if defined(FEAT_EVAL) && defined(FEAT_BROWSE)
|
||||||
if (cmdmod.browse && flags == 0)
|
if (cmdmod.browse && flags == 0)
|
||||||
ex_options(eap);
|
ex_options(eap);
|
||||||
else
|
else
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user