mirror of
https://github.com/zoriya/vim.git
synced 2025-12-13 18:56:16 +00:00
Compare commits
83 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
163095f088 | ||
|
|
faf29d7f91 | ||
|
|
c577d813b7 | ||
|
|
11e79bb04e | ||
|
|
0ea5070d79 | ||
|
|
710b4a1646 | ||
|
|
c4f833808a | ||
|
|
8858498516 | ||
|
|
cce1cf12eb | ||
|
|
e5ae108ab8 | ||
|
|
a34293ae0a | ||
|
|
e4f25e4a8d | ||
|
|
da5116da45 | ||
|
|
a83fe75ca7 | ||
|
|
c2226845eb | ||
|
|
a693d0584b | ||
|
|
9c4fefffb6 | ||
|
|
86f100dc09 | ||
|
|
9f5f7bf4d5 | ||
|
|
e6bf655bc4 | ||
|
|
28b238225a | ||
|
|
2e147caa14 | ||
|
|
0b2eef24bc | ||
|
|
18d90b95c4 | ||
|
|
07ecfa64a1 | ||
|
|
41cc038ff8 | ||
|
|
8eeeba8c02 | ||
|
|
1814183b86 | ||
|
|
182a17b1e8 | ||
|
|
774e5a9673 | ||
|
|
5d7be4f0fa | ||
|
|
ea20de8146 | ||
|
|
cc0750dc6e | ||
|
|
4eb6531b03 | ||
|
|
1e8e14552e | ||
|
|
24a9e348aa | ||
|
|
a1bd86e0f2 | ||
|
|
53564f7c1a | ||
|
|
5fe691240b | ||
|
|
090209bfbd | ||
|
|
6d006f9e95 | ||
|
|
f8be461d02 | ||
|
|
4670490673 | ||
|
|
a529ce068b | ||
|
|
a1fed064d1 | ||
|
|
4d785895d1 | ||
|
|
d2c061d24c | ||
|
|
6a8958db25 | ||
|
|
6f9a476b2f | ||
|
|
d6abcd154c | ||
|
|
663bb23316 | ||
|
|
c768a208ca | ||
|
|
383aa84c0d | ||
|
|
157069b04e | ||
|
|
868831f122 | ||
|
|
9049298f8d | ||
|
|
fadacf01d0 | ||
|
|
06f1ed2f78 | ||
|
|
0946326580 | ||
|
|
1ef9bbe215 | ||
|
|
5b1affefd0 | ||
|
|
fbd0b0af68 | ||
|
|
8cf91286ca | ||
|
|
3ec574f2b5 | ||
|
|
2102035488 | ||
|
|
83064068ea | ||
|
|
9a48961d8b | ||
|
|
d7383881c8 | ||
|
|
21b34b63b3 | ||
|
|
56f2db562d | ||
|
|
3a429efb62 | ||
|
|
875feea6ce | ||
|
|
60964f6874 | ||
|
|
1c13c0fe3e | ||
|
|
fa4161cb0c | ||
|
|
f84b122a99 | ||
|
|
6b1da3312e | ||
|
|
f085f4266e | ||
|
|
add8dce38d | ||
|
|
e21d69eec1 | ||
|
|
206155280d | ||
|
|
6c95fbc9ae | ||
|
|
966e58e413 |
72
Filelist
72
Filelist
@@ -85,6 +85,7 @@ SRC_ALL = \
|
|||||||
src/syntax.c \
|
src/syntax.c \
|
||||||
src/tag.c \
|
src/tag.c \
|
||||||
src/term.c \
|
src/term.c \
|
||||||
|
src/terminal.c \
|
||||||
src/term.h \
|
src/term.h \
|
||||||
src/termlib.c \
|
src/termlib.c \
|
||||||
src/ui.c \
|
src/ui.c \
|
||||||
@@ -187,6 +188,7 @@ SRC_ALL = \
|
|||||||
src/proto/syntax.pro \
|
src/proto/syntax.pro \
|
||||||
src/proto/tag.pro \
|
src/proto/tag.pro \
|
||||||
src/proto/term.pro \
|
src/proto/term.pro \
|
||||||
|
src/proto/terminal.pro \
|
||||||
src/proto/termlib.pro \
|
src/proto/termlib.pro \
|
||||||
src/proto/ui.pro \
|
src/proto/ui.pro \
|
||||||
src/proto/undo.pro \
|
src/proto/undo.pro \
|
||||||
@@ -194,6 +196,76 @@ SRC_ALL = \
|
|||||||
src/proto/version.pro \
|
src/proto/version.pro \
|
||||||
src/proto/winclip.pro \
|
src/proto/winclip.pro \
|
||||||
src/proto/window.pro \
|
src/proto/window.pro \
|
||||||
|
src/libvterm/.bzrignore \
|
||||||
|
src/libvterm/.gitignore \
|
||||||
|
src/libvterm/LICENSE \
|
||||||
|
src/libvterm/Makefile \
|
||||||
|
src/libvterm/README \
|
||||||
|
src/libvterm/tbl2inc_c.pl \
|
||||||
|
src/libvterm/vterm.pc.in \
|
||||||
|
src/libvterm/bin/unterm.c \
|
||||||
|
src/libvterm/bin/vterm-ctrl.c \
|
||||||
|
src/libvterm/bin/vterm-dump.c \
|
||||||
|
src/libvterm/doc/URLs \
|
||||||
|
src/libvterm/doc/seqs.txt \
|
||||||
|
src/libvterm/include/vterm.h \
|
||||||
|
src/libvterm/include/vterm_keycodes.h \
|
||||||
|
src/libvterm/src/encoding.c \
|
||||||
|
src/libvterm/src/encoding/DECdrawing.inc \
|
||||||
|
src/libvterm/src/encoding/DECdrawing.tbl \
|
||||||
|
src/libvterm/src/encoding/uk.inc \
|
||||||
|
src/libvterm/src/encoding/uk.tbl \
|
||||||
|
src/libvterm/src/keyboard.c \
|
||||||
|
src/libvterm/src/mouse.c \
|
||||||
|
src/libvterm/src/parser.c \
|
||||||
|
src/libvterm/src/pen.c \
|
||||||
|
src/libvterm/src/rect.h \
|
||||||
|
src/libvterm/src/screen.c \
|
||||||
|
src/libvterm/src/state.c \
|
||||||
|
src/libvterm/src/unicode.c \
|
||||||
|
src/libvterm/src/utf8.h \
|
||||||
|
src/libvterm/src/vterm.c \
|
||||||
|
src/libvterm/src/vterm_internal.h \
|
||||||
|
src/libvterm/t/02parser.test \
|
||||||
|
src/libvterm/t/03encoding_utf8.test \
|
||||||
|
src/libvterm/t/10state_putglyph.test \
|
||||||
|
src/libvterm/t/11state_movecursor.test \
|
||||||
|
src/libvterm/t/12state_scroll.test \
|
||||||
|
src/libvterm/t/13state_edit.test \
|
||||||
|
src/libvterm/t/14state_encoding.test \
|
||||||
|
src/libvterm/t/15state_mode.test \
|
||||||
|
src/libvterm/t/16state_resize.test \
|
||||||
|
src/libvterm/t/17state_mouse.test \
|
||||||
|
src/libvterm/t/18state_termprops.test \
|
||||||
|
src/libvterm/t/20state_wrapping.test \
|
||||||
|
src/libvterm/t/21state_tabstops.test \
|
||||||
|
src/libvterm/t/22state_save.test \
|
||||||
|
src/libvterm/t/25state_input.test \
|
||||||
|
src/libvterm/t/26state_query.test \
|
||||||
|
src/libvterm/t/27state_reset.test \
|
||||||
|
src/libvterm/t/28state_dbl_wh.test \
|
||||||
|
src/libvterm/t/29state_fallback.test \
|
||||||
|
src/libvterm/t/30pen.test \
|
||||||
|
src/libvterm/t/40screen_ascii.test \
|
||||||
|
src/libvterm/t/41screen_unicode.test \
|
||||||
|
src/libvterm/t/42screen_damage.test \
|
||||||
|
src/libvterm/t/43screen_resize.test \
|
||||||
|
src/libvterm/t/44screen_pen.test \
|
||||||
|
src/libvterm/t/45screen_protect.test \
|
||||||
|
src/libvterm/t/46screen_extent.test \
|
||||||
|
src/libvterm/t/47screen_dbl_wh.test \
|
||||||
|
src/libvterm/t/48screen_termprops.test \
|
||||||
|
src/libvterm/t/90vttest_01-movement-1.test \
|
||||||
|
src/libvterm/t/90vttest_01-movement-2.test \
|
||||||
|
src/libvterm/t/90vttest_01-movement-3.test \
|
||||||
|
src/libvterm/t/90vttest_01-movement-4.test \
|
||||||
|
src/libvterm/t/90vttest_02-screen-1.test \
|
||||||
|
src/libvterm/t/90vttest_02-screen-2.test \
|
||||||
|
src/libvterm/t/90vttest_02-screen-3.test \
|
||||||
|
src/libvterm/t/90vttest_02-screen-4.test \
|
||||||
|
src/libvterm/t/92lp1640917.test \
|
||||||
|
src/libvterm/t/harness.c \
|
||||||
|
src/libvterm/t/run-test.pl \
|
||||||
|
|
||||||
|
|
||||||
# source files for Unix only
|
# source files for Unix only
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ UninstPage instfiles
|
|||||||
Function .onInit
|
Function .onInit
|
||||||
MessageBox MB_YESNO|MB_ICONQUESTION \
|
MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||||
"This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer.$\n Continue?" \
|
"This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer.$\n Continue?" \
|
||||||
|
/SD IDYES \
|
||||||
IDYES NoAbort
|
IDYES NoAbort
|
||||||
Abort ; causes installer to quit.
|
Abort ; causes installer to quit.
|
||||||
NoAbort:
|
NoAbort:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" The default vimrc file.
|
" The default vimrc file.
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last change: 2017 Apr 12
|
" Last change: 2017 Jun 13
|
||||||
"
|
"
|
||||||
" This is loaded if no vimrc file was found.
|
" This is loaded if no vimrc file was found.
|
||||||
" Except when Vim is run with "-u NONE" or "-C".
|
" Except when Vim is run with "-u NONE" or "-C".
|
||||||
@@ -106,12 +106,13 @@ if has("autocmd")
|
|||||||
au!
|
au!
|
||||||
|
|
||||||
" When editing a file, always jump to the last known cursor position.
|
" When editing a file, always jump to the last known cursor position.
|
||||||
" Don't do it when the position is invalid or when inside an event handler
|
" Don't do it when the position is invalid, when inside an event handler
|
||||||
" (happens when dropping a file on gvim).
|
" (happens when dropping a file on gvim) and for a commit message (it's
|
||||||
|
" likely a different one than last time).
|
||||||
autocmd BufReadPost *
|
autocmd BufReadPost *
|
||||||
\ if line("'\"") >= 1 && line("'\"") <= line("$") |
|
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
|
||||||
\ exe "normal! g`\"" |
|
\ | exe "normal! g`\""
|
||||||
\ endif
|
\ | endif
|
||||||
|
|
||||||
augroup END
|
augroup END
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ DOCS = \
|
|||||||
tabpage.txt \
|
tabpage.txt \
|
||||||
tagsrch.txt \
|
tagsrch.txt \
|
||||||
term.txt \
|
term.txt \
|
||||||
|
terminal.txt \
|
||||||
tips.txt \
|
tips.txt \
|
||||||
todo.txt \
|
todo.txt \
|
||||||
uganda.txt \
|
uganda.txt \
|
||||||
@@ -236,6 +237,7 @@ HTMLS = \
|
|||||||
tabpage.html \
|
tabpage.html \
|
||||||
tagsrch.html \
|
tagsrch.html \
|
||||||
term.html \
|
term.html \
|
||||||
|
terminal.html \
|
||||||
tips.html \
|
tips.html \
|
||||||
todo.html \
|
todo.html \
|
||||||
uganda.html \
|
uganda.html \
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*channel.txt* For Vim version 8.0. Last change: 2016 Dec 02
|
*channel.txt* For Vim version 8.0. Last change: 2017 Jun 11
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -489,6 +489,11 @@ If you want to handle both stderr and stdout with one handler use the
|
|||||||
"callback" option: >
|
"callback" option: >
|
||||||
let job = job_start(command, {"callback": "MyHandler"})
|
let job = job_start(command, {"callback": "MyHandler"})
|
||||||
|
|
||||||
|
Depending on the system, starting a job can put Vim in the background, the
|
||||||
|
started job gets the focus. To avoid that, use the `foreground()` function.
|
||||||
|
This might not always work when called early, put in the callback handler or
|
||||||
|
use a timer to call it after the job has started.
|
||||||
|
|
||||||
You can send a message to the command with ch_evalraw(). If the channel is in
|
You can send a message to the command with ch_evalraw(). If the channel is in
|
||||||
JSON or JS mode you can use ch_evalexpr().
|
JSON or JS mode you can use ch_evalexpr().
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*eval.txt* For Vim version 8.0. Last change: 2017 Jun 04
|
*eval.txt* For Vim version 8.0. Last change: 2017 Jul 08
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -4189,14 +4189,14 @@ getchar([expr]) *getchar()*
|
|||||||
not consumed. Return zero if no character available.
|
not consumed. Return zero if no character available.
|
||||||
|
|
||||||
Without [expr] and when [expr] is 0 a whole character or
|
Without [expr] and when [expr] is 0 a whole character or
|
||||||
special key is returned. If it is an 8-bit character, the
|
special key is returned. If it is a single character, the
|
||||||
result is a number. Use nr2char() to convert it to a String.
|
result is a number. Use nr2char() to convert it to a String.
|
||||||
Otherwise a String is returned with the encoded character.
|
Otherwise a String is returned with the encoded character.
|
||||||
For a special key it's a sequence of bytes starting with 0x80
|
For a special key it's a String with a sequence of bytes
|
||||||
(decimal: 128). This is the same value as the string
|
starting with 0x80 (decimal: 128). This is the same value as
|
||||||
"\<Key>", e.g., "\<Left>". The returned value is also a
|
the String "\<Key>", e.g., "\<Left>". The returned value is
|
||||||
String when a modifier (shift, control, alt) was used that is
|
also a String when a modifier (shift, control, alt) was used
|
||||||
not included in the character.
|
that is not included in the character.
|
||||||
|
|
||||||
When [expr] is 0 and Esc is typed, there will be a short delay
|
When [expr] is 0 and Esc is typed, there will be a short delay
|
||||||
while Vim waits to see if this is the start of an escape
|
while Vim waits to see if this is the start of an escape
|
||||||
@@ -4586,18 +4586,24 @@ getqflist([{what}]) *getqflist()*
|
|||||||
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}:
|
||||||
context get the context stored with |setqflist()|
|
context get the context stored with |setqflist()|
|
||||||
|
items quickfix list entries
|
||||||
nr get information for this quickfix list; zero
|
nr get information for this quickfix list; zero
|
||||||
means the current quickfix list
|
means the current quickfix list and '$' means
|
||||||
|
the last quickfix list
|
||||||
title get the list title
|
title get the list title
|
||||||
winid get the |window-ID| (if opened)
|
winid get the |window-ID| (if opened)
|
||||||
all all of the above quickfix properties
|
all all of the above quickfix properties
|
||||||
Non-string items in {what} are ignored.
|
Non-string items in {what} are ignored.
|
||||||
If "nr" is not present then the current quickfix list is used.
|
If "nr" is not present then the current quickfix list is used.
|
||||||
|
To get the number of lists in the quickfix stack, set 'nr' to
|
||||||
|
'$' in {what}. The 'nr' value in the returned dictionary
|
||||||
|
contains the quickfix stack size.
|
||||||
In case of error processing {what}, an empty dictionary is
|
In case of error processing {what}, an empty dictionary is
|
||||||
returned.
|
returned.
|
||||||
|
|
||||||
The returned dictionary contains the following entries:
|
The returned dictionary contains the following entries:
|
||||||
context context information stored with |setqflist()|
|
context context information stored with |setqflist()|
|
||||||
|
items quickfix list entries
|
||||||
nr quickfix list number
|
nr quickfix list number
|
||||||
title quickfix list title text
|
title quickfix list title text
|
||||||
winid quickfix |window-ID| (if opened)
|
winid quickfix |window-ID| (if opened)
|
||||||
@@ -5461,7 +5467,10 @@ line({expr}) The result is a Number, which is the line number of the file
|
|||||||
< *last-position-jump*
|
< *last-position-jump*
|
||||||
This autocommand jumps to the last known position in a file
|
This autocommand jumps to the last known position in a file
|
||||||
just after opening it, if the '" mark is set: >
|
just after opening it, if the '" mark is set: >
|
||||||
:au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
|
:au BufReadPost *
|
||||||
|
\ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
|
||||||
|
\ | exe "normal! g`\""
|
||||||
|
\ | endif
|
||||||
|
|
||||||
line2byte({lnum}) *line2byte()*
|
line2byte({lnum}) *line2byte()*
|
||||||
Return the byte count from the start of the buffer for line
|
Return the byte count from the start of the buffer for line
|
||||||
@@ -6991,11 +7000,16 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()*
|
|||||||
argument is ignored. The following items can be specified in
|
argument is ignored. The following items can be specified in
|
||||||
{what}:
|
{what}:
|
||||||
context any Vim type can be stored as a context
|
context any Vim type can be stored as a context
|
||||||
nr list number in the quickfix stack
|
items list of quickfix entries. Same as the {list}
|
||||||
|
argument.
|
||||||
|
nr list number in the quickfix stack; zero
|
||||||
|
means the current quickfix list and '$' means
|
||||||
|
the last quickfix list
|
||||||
title quickfix list title text
|
title quickfix list title text
|
||||||
Unsupported keys in {what} are ignored.
|
Unsupported keys in {what} are ignored.
|
||||||
If the "nr" item is not present, then the current quickfix list
|
If the "nr" item is not present, then the current quickfix list
|
||||||
is modified.
|
is modified. When creating a new quickfix list, "nr" can be
|
||||||
|
set to a value one greater than the quickfix stack size.
|
||||||
|
|
||||||
Examples: >
|
Examples: >
|
||||||
:call setqflist([], 'r', {'title': 'My search'})
|
:call setqflist([], 'r', {'title': 'My search'})
|
||||||
@@ -7095,18 +7109,22 @@ shellescape({string} [, {special}]) *shellescape()*
|
|||||||
quotes within {string}.
|
quotes within {string}.
|
||||||
Otherwise it will enclose {string} in single quotes and
|
Otherwise it will enclose {string} in single quotes and
|
||||||
replace all "'" with "'\''".
|
replace all "'" with "'\''".
|
||||||
|
|
||||||
When the {special} argument is present and it's a non-zero
|
When the {special} argument is present and it's a non-zero
|
||||||
Number or a non-empty String (|non-zero-arg|), then special
|
Number or a non-empty String (|non-zero-arg|), then special
|
||||||
items such as "!", "%", "#" and "<cword>" will be preceded by
|
items such as "!", "%", "#" and "<cword>" will be preceded by
|
||||||
a backslash. This backslash will be removed again by the |:!|
|
a backslash. This backslash will be removed again by the |:!|
|
||||||
command.
|
command.
|
||||||
|
|
||||||
The "!" character will be escaped (again with a |non-zero-arg|
|
The "!" character will be escaped (again with a |non-zero-arg|
|
||||||
{special}) when 'shell' contains "csh" in the tail. That is
|
{special}) when 'shell' contains "csh" in the tail. That is
|
||||||
because for csh and tcsh "!" is used for history replacement
|
because for csh and tcsh "!" is used for history replacement
|
||||||
even when inside single quotes.
|
even when inside single quotes.
|
||||||
The <NL> character is also escaped. With a |non-zero-arg|
|
|
||||||
{special} and 'shell' containing "csh" in the tail it's
|
With a |non-zero-arg| {special} the <NL> character is also
|
||||||
|
escaped. When 'shell' containing "csh" in the tail it's
|
||||||
escaped a second time.
|
escaped a second time.
|
||||||
|
|
||||||
Example of use with a |:!| command: >
|
Example of use with a |:!| command: >
|
||||||
:exe '!dir ' . shellescape(expand('<cfile>'), 1)
|
:exe '!dir ' . shellescape(expand('<cfile>'), 1)
|
||||||
< This results in a directory listing for the file under the
|
< This results in a directory listing for the file under the
|
||||||
@@ -7638,17 +7656,29 @@ synIDtrans({synID}) *synIDtrans()*
|
|||||||
":highlight link" are followed.
|
":highlight link" are followed.
|
||||||
|
|
||||||
synconcealed({lnum}, {col}) *synconcealed()*
|
synconcealed({lnum}, {col}) *synconcealed()*
|
||||||
The result is a List. The first item in the list is 0 if the
|
The result is a List with currently three items:
|
||||||
character at the position {lnum} and {col} is not part of a
|
1. The first item in the list is 0 if the character at the
|
||||||
concealable region, 1 if it is. The second item in the list is
|
position {lnum} and {col} is not part of a concealable
|
||||||
a string. If the first item is 1, the second item contains the
|
region, 1 if it is.
|
||||||
text which will be displayed in place of the concealed text,
|
2. The second item in the list is a string. If the first item
|
||||||
depending on the current setting of 'conceallevel'. The third
|
is 1, the second item contains the text which will be
|
||||||
and final item in the list is a unique number representing the
|
displayed in place of the concealed text, depending on the
|
||||||
specific syntax region matched. This allows detection of the
|
current setting of 'conceallevel' and 'listchars'.
|
||||||
beginning of a new concealable region if there are two
|
3. The third and final item in the list is a number
|
||||||
consecutive regions with the same replacement character.
|
representing the specific syntax region matched in the
|
||||||
For an example use see $VIMRUNTIME/syntax/2html.vim .
|
line. When the character is not concealed the value is
|
||||||
|
zero. This allows detection of the beginning of a new
|
||||||
|
concealable region if there are two consecutive regions
|
||||||
|
with the same replacement character. For an example, if
|
||||||
|
the text is "123456" and both "23" and "45" are concealed
|
||||||
|
and replace by the character "X", then:
|
||||||
|
call returns ~
|
||||||
|
synconcealed(lnum, 1) [0, '', 0]
|
||||||
|
synconcealed(lnum, 2) [1, 'X', 1]
|
||||||
|
synconcealed(lnum, 3) [1, 'X', 1]
|
||||||
|
synconcealed(lnum, 4) [1, 'X', 2]
|
||||||
|
synconcealed(lnum, 5) [1, 'X', 2]
|
||||||
|
synconcealed(lnum, 6) [0, '', 0]
|
||||||
|
|
||||||
|
|
||||||
synstack({lnum}, {col}) *synstack()*
|
synstack({lnum}, {col}) *synstack()*
|
||||||
@@ -7913,8 +7943,19 @@ test_override({name}, {val}) *test_override()*
|
|||||||
name effect when {val} is non-zero ~
|
name effect when {val} is non-zero ~
|
||||||
redraw disable the redrawing() function
|
redraw disable the redrawing() function
|
||||||
char_avail disable the char_avail() function
|
char_avail disable the char_avail() function
|
||||||
|
starting reset the "starting" variable, see below
|
||||||
ALL clear all overrides ({val} is not used)
|
ALL clear all overrides ({val} is not used)
|
||||||
|
|
||||||
|
"starting" is to be used when a test should behave like
|
||||||
|
startup was done. Since the tests are run by sourcing a
|
||||||
|
script the "starting" variable is non-zero. This is usually a
|
||||||
|
good thing (tests run faster), but sometimes changes behavior
|
||||||
|
in a way that the test doesn't work properly.
|
||||||
|
When using: >
|
||||||
|
call test_override('starting', 1)
|
||||||
|
< The value of "starting" is saved. It is restored by: >
|
||||||
|
call test_override('starting', 0)
|
||||||
|
|
||||||
test_settime({expr}) *test_settime()*
|
test_settime({expr}) *test_settime()*
|
||||||
Set the time Vim uses internally. Currently only used for
|
Set the time Vim uses internally. Currently only used for
|
||||||
timestamps in the history, as they are used in viminfo, and
|
timestamps in the history, as they are used in viminfo, and
|
||||||
@@ -7976,6 +8017,10 @@ timer_start({time}, {callback} [, {options}])
|
|||||||
"repeat" Number of times to repeat calling the
|
"repeat" Number of times to repeat calling the
|
||||||
callback. -1 means forever. When not present
|
callback. -1 means forever. When not present
|
||||||
the callback will be called once.
|
the callback will be called once.
|
||||||
|
If the timer causes an error three times in a
|
||||||
|
row the repeat is cancelled. This avoids that
|
||||||
|
Vim becomes unusable because of all the error
|
||||||
|
messages.
|
||||||
|
|
||||||
Example: >
|
Example: >
|
||||||
func MyHandler(timer)
|
func MyHandler(timer)
|
||||||
@@ -8702,6 +8747,9 @@ See |:verbose-cmd| for more information.
|
|||||||
not used an error message is given. When [!] is used,
|
not used an error message is given. When [!] is used,
|
||||||
an existing function is silently replaced. Unless it
|
an existing function is silently replaced. Unless it
|
||||||
is currently being executed, that is an error.
|
is currently being executed, that is an error.
|
||||||
|
NOTE: Use ! wisely. If used without care it can cause
|
||||||
|
an existing function to be replaced unexpectedly,
|
||||||
|
which is hard to debug.
|
||||||
|
|
||||||
For the {arguments} see |function-argument|.
|
For the {arguments} see |function-argument|.
|
||||||
|
|
||||||
@@ -8751,18 +8799,36 @@ See |:verbose-cmd| for more information.
|
|||||||
implies that the effect of |:nohlsearch| is undone
|
implies that the effect of |:nohlsearch| is undone
|
||||||
when the function returns.
|
when the function returns.
|
||||||
|
|
||||||
*:endf* *:endfunction* *E126* *E193*
|
*:endf* *:endfunction* *E126* *E193* *W22*
|
||||||
:endf[unction] The end of a function definition. Must be on a line
|
:endf[unction] [argument]
|
||||||
by its own, without other commands.
|
The end of a function definition. Best is to put it
|
||||||
|
on a line by its own, without [argument].
|
||||||
|
|
||||||
|
[argument] can be:
|
||||||
|
| command command to execute next
|
||||||
|
\n command command to execute next
|
||||||
|
" comment always ignored
|
||||||
|
anything else ignored, warning given when
|
||||||
|
'verbose' is non-zero
|
||||||
|
The support for a following command was added in Vim
|
||||||
|
8.0.0654, before that any argument was silently
|
||||||
|
ignored.
|
||||||
|
|
||||||
|
To be able to define a function inside an `:execute`
|
||||||
|
command, use line breaks instead of |:bar|: >
|
||||||
|
:exe "func Foo()\necho 'foo'\nendfunc"
|
||||||
|
<
|
||||||
*:delf* *:delfunction* *E130* *E131* *E933*
|
*:delf* *:delfunction* *E130* *E131* *E933*
|
||||||
:delf[unction] {name} Delete function {name}.
|
:delf[unction][!] {name}
|
||||||
|
Delete function {name}.
|
||||||
{name} can also be a |Dictionary| entry that is a
|
{name} can also be a |Dictionary| entry that is a
|
||||||
|Funcref|: >
|
|Funcref|: >
|
||||||
:delfunc dict.init
|
:delfunc dict.init
|
||||||
< This will remove the "init" entry from "dict". The
|
< This will remove the "init" entry from "dict". The
|
||||||
function is deleted if there are no more references to
|
function is deleted if there are no more references to
|
||||||
it.
|
it.
|
||||||
|
With the ! there is no error if the function does not
|
||||||
|
exist.
|
||||||
*:retu* *:return* *E133*
|
*:retu* *:return* *E133*
|
||||||
:retu[rn] [expr] Return from a function. When "[expr]" is given, it is
|
:retu[rn] [expr] Return from a function. When "[expr]" is given, it is
|
||||||
evaluated and returned as the result of the function.
|
evaluated and returned as the result of the function.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*options.txt* For Vim version 8.0. Last change: 2017 Jun 04
|
*options.txt* For Vim version 8.0. Last change: 2017 Jun 18
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -3522,6 +3522,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
:s///gg subst. all subst. one
|
:s///gg subst. all subst. one
|
||||||
|
|
||||||
NOTE: This option is reset when 'compatible' is set.
|
NOTE: This option is reset when 'compatible' is set.
|
||||||
|
DEPRECATED: Setting this option may break plugins that are not aware
|
||||||
|
of this option. Also, many users get confused that adding the /g flag
|
||||||
|
has the opposite effect of that it normally does.
|
||||||
|
|
||||||
*'grepformat'* *'gfm'*
|
*'grepformat'* *'gfm'*
|
||||||
'grepformat' 'gfm' string (default "%f:%l:%m,%f:%l%m,%f %l%m")
|
'grepformat' 'gfm' string (default "%f:%l:%m,%f:%l%m,%f %l%m")
|
||||||
@@ -4037,7 +4040,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
D:DiffDelete,T:DiffText,>:SignColumn,
|
D:DiffDelete,T:DiffText,>:SignColumn,
|
||||||
B:SpellBad,P:SpellCap,R:SpellRare,
|
B:SpellBad,P:SpellCap,R:SpellRare,
|
||||||
L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel,
|
L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel,
|
||||||
x:PmenuSbar,X:PmenuThumb")
|
x:PmenuSbar,X:PmenuThumb,*:TabLine,
|
||||||
|
#:TabLineSel,_:TabLineFill,!:CursorColumn,
|
||||||
|
.:CursorLine,o:ColorColumn,q:QuickFixLine")
|
||||||
global
|
global
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
This option can be used to set highlighting mode for various
|
This option can be used to set highlighting mode for various
|
||||||
@@ -5940,10 +5945,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
{only available when compiled with the |+reltime|
|
{only available when compiled with the |+reltime|
|
||||||
feature}
|
feature}
|
||||||
The time in milliseconds for redrawing the display. This applies to
|
The time in milliseconds for redrawing the display. This applies to
|
||||||
searching for patterns for 'hlsearch' and |:match| highlighting.
|
searching for patterns for 'hlsearch', |:match| highlighting an syntax
|
||||||
|
highlighting.
|
||||||
When redrawing takes more than this many milliseconds no further
|
When redrawing takes more than this many milliseconds no further
|
||||||
matches will be highlighted. This is used to avoid that Vim hangs
|
matches will be highlighted.
|
||||||
when using a very complicated pattern.
|
For syntax highlighting the time applies per window. When over the
|
||||||
|
limit syntax highlighting is disabled until |CTRL-L| is used.
|
||||||
|
This is used to avoid that Vim hangs when using a very complicated
|
||||||
|
pattern.
|
||||||
|
|
||||||
*'regexpengine'* *'re'*
|
*'regexpengine'* *'re'*
|
||||||
'regexpengine' 're' number (default 0)
|
'regexpengine' 're' number (default 0)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*pattern.txt* For Vim version 8.0. Last change: 2017 Mar 29
|
*pattern.txt* For Vim version 8.0. Last change: 2017 Jun 05
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1076,12 +1076,16 @@ x A single character, with no special meaning, matches itself
|
|||||||
":s/[/x/" searches for "[/x" and replaces it with nothing. It does
|
":s/[/x/" searches for "[/x" and replaces it with nothing. It does
|
||||||
not search for "[" and replaces it with "x"!
|
not search for "[" and replaces it with "x"!
|
||||||
|
|
||||||
|
*E944* *E945*
|
||||||
If the sequence begins with "^", it matches any single character NOT
|
If the sequence begins with "^", it matches any single character NOT
|
||||||
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.
|
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.
|
||||||
- If two characters in the sequence are separated by '-', this is
|
- If two characters in the sequence are separated by '-', this is
|
||||||
shorthand for the full list of ASCII characters between them. E.g.,
|
shorthand for the full list of ASCII characters between them. E.g.,
|
||||||
"[0-9]" matches any decimal digit. Non-ASCII characters can be
|
"[0-9]" matches any decimal digit. If the starting character exceeds
|
||||||
used, but the character values must not be more than 256 apart.
|
the ending character, e.g. [c-a], E944 occurs. Non-ASCII characters
|
||||||
|
can be used, but the character values must not be more than 256 apart
|
||||||
|
in the old regexp engine. For example, searching by [\u3000-\u4000]
|
||||||
|
after setting re=1 emits a E945 error. Prepending \%#=2 will fix it.
|
||||||
- A character class expression is evaluated to the set of characters
|
- A character class expression is evaluated to the set of characters
|
||||||
belonging to that character class. The following character classes
|
belonging to that character class. The following character classes
|
||||||
are supported:
|
are supported:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*quickfix.txt* For Vim version 8.0. Last change: 2017 Mar 06
|
*quickfix.txt* For Vim version 8.0. Last change: 2017 Jun 13
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -472,7 +472,11 @@ keep its height, ignoring 'winheight' and 'equalalways'. You can change the
|
|||||||
height manually (e.g., by dragging the status line above it with the mouse).
|
height manually (e.g., by dragging the status line above it with the mouse).
|
||||||
|
|
||||||
In the quickfix window, each line is one error. The line number is equal to
|
In the quickfix window, each line is one error. The line number is equal to
|
||||||
the error number. You can use ":.cc" to jump to the error under the cursor.
|
the error number. The current entry is highlighted with the QuickFixLine
|
||||||
|
highlighting. You can change it to your liking, e.g.: >
|
||||||
|
:hi QuickFixLine ctermbg=Yellow guibg=Yellow
|
||||||
|
|
||||||
|
You can use ":.cc" to jump to the error under the cursor.
|
||||||
Hitting the <Enter> key or double-clicking the mouse on a line has the same
|
Hitting the <Enter> key or double-clicking the mouse on a line has the same
|
||||||
effect. The file containing the error is opened in the window above the
|
effect. The file containing the error is opened in the window above the
|
||||||
quickfix window. If there already is a window for that file, it is used
|
quickfix window. If there already is a window for that file, it is used
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*repeat.txt* For Vim version 8.0. Last change: 2017 Feb 06
|
*repeat.txt* For Vim version 8.0. Last change: 2017 Jun 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -46,7 +46,7 @@ of area is used, see |visual-repeat|.
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
2. Multiple repeats *multi-repeat*
|
2. Multiple repeats *multi-repeat*
|
||||||
|
|
||||||
*:g* *:global* *E147* *E148*
|
*:g* *:global* *E148*
|
||||||
:[range]g[lobal]/{pattern}/[cmd]
|
:[range]g[lobal]/{pattern}/[cmd]
|
||||||
Execute the Ex command [cmd] (default ":p") on the
|
Execute the Ex command [cmd] (default ":p") on the
|
||||||
lines within [range] where {pattern} matches.
|
lines within [range] where {pattern} matches.
|
||||||
@@ -79,8 +79,15 @@ The default for [range] is the whole buffer (1,$). Use "CTRL-C" to interrupt
|
|||||||
the command. If an error message is given for a line, the command for that
|
the command. If an error message is given for a line, the command for that
|
||||||
line is aborted and the global command continues with the next marked or
|
line is aborted and the global command continues with the next marked or
|
||||||
unmarked line.
|
unmarked line.
|
||||||
|
*E147*
|
||||||
|
When the command is used recursively, it only works on one line. Giving a
|
||||||
|
range is then not allowed. This is useful to find all lines that match a
|
||||||
|
pattern and do not match another pattern: >
|
||||||
|
:g/found/v/notfound/{cmd}
|
||||||
|
This first finds all lines containing "found", but only executes {cmd} when
|
||||||
|
there is no match for "notfound".
|
||||||
|
|
||||||
To repeat a non-Ex command, you can use the ":normal" command: >
|
To execute a non-Ex command, you can use the `:normal` command: >
|
||||||
:g/pat/normal {commands}
|
:g/pat/normal {commands}
|
||||||
Make sure that {commands} ends with a whole command, otherwise Vim will wait
|
Make sure that {commands} ends with a whole command, otherwise Vim will wait
|
||||||
for you to type the rest of the command for each match. The screen will not
|
for you to type the rest of the command for each match. The screen will not
|
||||||
|
|||||||
@@ -4519,6 +4519,8 @@ E940 eval.txt /*E940*
|
|||||||
E941 eval.txt /*E941*
|
E941 eval.txt /*E941*
|
||||||
E942 eval.txt /*E942*
|
E942 eval.txt /*E942*
|
||||||
E943 message.txt /*E943*
|
E943 message.txt /*E943*
|
||||||
|
E944 pattern.txt /*E944*
|
||||||
|
E945 pattern.txt /*E945*
|
||||||
E95 message.txt /*E95*
|
E95 message.txt /*E95*
|
||||||
E96 diff.txt /*E96*
|
E96 diff.txt /*E96*
|
||||||
E97 diff.txt /*E97*
|
E97 diff.txt /*E97*
|
||||||
|
|||||||
130
runtime/doc/terminal.txt
Normal file
130
runtime/doc/terminal.txt
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
*terminal.txt* For Vim version 8.0. Last change: 2017 Jul 04
|
||||||
|
|
||||||
|
|
||||||
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|
||||||
|
|
||||||
|
Terminal window support *terminal*
|
||||||
|
|
||||||
|
|
||||||
|
WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE
|
||||||
|
|
||||||
|
|
||||||
|
1. Basic use |terminal-use|
|
||||||
|
2. Remote testing |terminal-testing|
|
||||||
|
3. Debugging |terminal-debug|
|
||||||
|
|
||||||
|
{Vi does not have any of these commands}
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
1. Basic use *terminal-use*
|
||||||
|
|
||||||
|
This feature is for running a terminal emulator in a Vim window. A job can be
|
||||||
|
started connected to the terminal emulator. For example, to run a shell: >
|
||||||
|
:term bash
|
||||||
|
|
||||||
|
Or to run a debugger: >
|
||||||
|
:term gdb vim
|
||||||
|
|
||||||
|
The job runs asynchronously from Vim, the window will be updated to show
|
||||||
|
output from the job, also while editing in any other window.
|
||||||
|
|
||||||
|
When the keyboard focus is in the terminal window, typed keys will be send to
|
||||||
|
the job. This uses a pty when possible.
|
||||||
|
|
||||||
|
Navigate between windows with CTRL-W commands (and mouse).
|
||||||
|
E.g. CTRL-W CTRL-W moves focus to the next window.
|
||||||
|
|
||||||
|
Option 'termkey'
|
||||||
|
Specify key for Vim command in terminal window. local to window.
|
||||||
|
Default is CTRL-W.
|
||||||
|
|
||||||
|
Option 'termsize'
|
||||||
|
Specify terminal size. Local to window.
|
||||||
|
When empty the terminal gets the size from the window.
|
||||||
|
When set (e.g., "24x80") the terminal size is fixed. If the window is smaller
|
||||||
|
only the top-left part is displayed. (TODO: scrolling?)
|
||||||
|
|
||||||
|
Syntax ~
|
||||||
|
*:ter* *:terminal*
|
||||||
|
:terminal[!] [command] Open a new terminal window.
|
||||||
|
|
||||||
|
If [command] is provided run it as a job and connect
|
||||||
|
the input and output to the terminal.
|
||||||
|
If [command] is not given the 'shell' option is used.
|
||||||
|
|
||||||
|
A new buffer will be created, using [command] or
|
||||||
|
'shell' as the name. If a buffer by this name already
|
||||||
|
exists a number is added in parenthesis.
|
||||||
|
E.g. if "gdb" exists the second terminal buffer will
|
||||||
|
use "gdb (1)".
|
||||||
|
|
||||||
|
The window can be closed, in which case the buffer
|
||||||
|
becomes hidden. The command will not be stopped. The
|
||||||
|
`:buffer` command can be used to turn the current
|
||||||
|
window into a terminal window, using the existing
|
||||||
|
buffer. If there are unsaved changes this fails, use
|
||||||
|
! to force, as usual.
|
||||||
|
|
||||||
|
Resizing ~
|
||||||
|
|
||||||
|
The size of the terminal can be in one of three modes:
|
||||||
|
|
||||||
|
1. The 'termsize' option is empty: The terminal size follows the window size.
|
||||||
|
The minimal size is 2 screen lines with 10 cells.
|
||||||
|
|
||||||
|
2. The 'termsize' option is "rows*cols", where "rows" is the minimal number of
|
||||||
|
screen rows and "cols" is the minial number of cells.
|
||||||
|
|
||||||
|
3. The 'termsize' option is "rowsXcols" (where the x is upper or lower case).
|
||||||
|
The terminal size is fixed to the specified number of screen lines and
|
||||||
|
cells. If the window is bigger there will be unused empty space.
|
||||||
|
|
||||||
|
If the window is smaller than the terminal size, only part of the terminal can
|
||||||
|
be seen (the lower-left part).
|
||||||
|
|
||||||
|
The |term_getsize()| function can be used to get the current size of the
|
||||||
|
terminal. |term_setsize()| can be used only when in the first or second mode,
|
||||||
|
not when 'termsize' is "rowsXcols".
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
2. Remote testing *terminal-testing*
|
||||||
|
|
||||||
|
Most Vim tests execute a script inside Vim. For some tests this does not
|
||||||
|
work, running the test interferes with the code being tested. To avoid this
|
||||||
|
Vim is executed in a terminal window. The test sends keystrokes to it and
|
||||||
|
inspects the resulting screen state.
|
||||||
|
|
||||||
|
Functions ~
|
||||||
|
|
||||||
|
term_sendkeys() send keystrokes to a terminal
|
||||||
|
term_wait() wait for screen to be updated
|
||||||
|
term_scrape() inspect terminal screen
|
||||||
|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
3. Debugging *terminal-debug*
|
||||||
|
|
||||||
|
The Terminal debugging plugin can be used to debug a program with gdb and view
|
||||||
|
the source code in a Vim window. For example: >
|
||||||
|
|
||||||
|
:TermDebug vim
|
||||||
|
|
||||||
|
This opens three windows:
|
||||||
|
- A terminal window in which "gdb vim" is executed. Here you can directly
|
||||||
|
interact with gdb.
|
||||||
|
- A terminal window for the executed program. When "run" is used in gdb the
|
||||||
|
program I/O will happen in this window, so that it does not interfere with
|
||||||
|
controlling gdb.
|
||||||
|
- A normal Vim window used to show the source code. When gdb jumps to a
|
||||||
|
source file location this window will display the code, if possible. Values
|
||||||
|
of variables can be inspected, breakpoints set and cleared, etc.
|
||||||
|
|
||||||
|
This uses two terminal windows. To open the gdb window: >
|
||||||
|
:term gdb [arguments]
|
||||||
|
To open the terminal to run the tested program |term_open()| is used.
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
|
||||||
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 8.0. Last change: 2017 Jun 05
|
*todo.txt* For Vim version 8.0. Last change: 2017 Jun 13
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -113,6 +113,7 @@ With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
|||||||
(Marcin Szewczyk, 2017 Apr 26)
|
(Marcin Szewczyk, 2017 Apr 26)
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
ml_get errors with buggy script. (Dominique, 2017 Apr 30)
|
ml_get errors with buggy script. (Dominique, 2017 Apr 30)
|
||||||
|
|
||||||
@@ -144,15 +145,9 @@ Openhab syntax file (mueller, #1678)
|
|||||||
|
|
||||||
Use gvimext.dll from the nightly build? (Issue #249)
|
Use gvimext.dll from the nightly build? (Issue #249)
|
||||||
|
|
||||||
Patch to remove HAVE_GTK_MULTIHEAD-relevant code. (Kazunobu Kuriyama, 2017 May
|
|
||||||
5) Update May 11
|
|
||||||
|
|
||||||
'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,
|
'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,
|
||||||
#1736)
|
#1736)
|
||||||
|
|
||||||
Patch to pass quickfix list index to functions. (Yegappan Lakshmanan, 2017 May
|
|
||||||
31)
|
|
||||||
|
|
||||||
Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
|
Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
|
||||||
8, #1690)
|
8, #1690)
|
||||||
|
|
||||||
@@ -168,16 +163,6 @@ manager. Problem with Motif?
|
|||||||
Bogus characters inserted when triggering indent while changing text.
|
Bogus characters inserted when triggering indent while changing text.
|
||||||
(Vitor Antunes, 2016 Nov 22, #1269)
|
(Vitor Antunes, 2016 Nov 22, #1269)
|
||||||
|
|
||||||
Patch to have ":stag" respect 'switchbuf'. (Ingo Karkat, 2017 May 5, #1681)
|
|
||||||
|
|
||||||
Patch to improve building with MSVC. (Leonardo Manera, #1747)
|
|
||||||
|
|
||||||
Wrong selection of quoted text (Guraga, #1687)
|
|
||||||
Patch to fix selection of quoted text. (Christian Brabandt, 2017 May 7, #1687)
|
|
||||||
|
|
||||||
Patch to use separate error message for regex range. (Itchyny, Ken Hamada,
|
|
||||||
2017 May 16)
|
|
||||||
|
|
||||||
Segmentation fault with complete(). (Lifepillar, 2017 Apr 29, #1668)
|
Segmentation fault with complete(). (Lifepillar, 2017 Apr 29, #1668)
|
||||||
Check for "pat" to be NULL in search_for_exact_line()?
|
Check for "pat" to be NULL in search_for_exact_line()?
|
||||||
How did it get NULL? Comment by Christian, Apr 30.
|
How did it get NULL? Comment by Christian, Apr 30.
|
||||||
@@ -185,18 +170,8 @@ How did it get NULL? Comment by Christian, Apr 30.
|
|||||||
Is it possible to keep the complete menu open when calling complete()?
|
Is it possible to keep the complete menu open when calling complete()?
|
||||||
(Prabir Shrestha, 2017 May 19, #1713)
|
(Prabir Shrestha, 2017 May 19, #1713)
|
||||||
|
|
||||||
Calling may_req_ambiguous_char_width() and may_req_bg_color() only after
|
|
||||||
executing command line commands may not work properly.
|
|
||||||
(Rastislav Barlink, 2017 May 18)
|
|
||||||
Set "starting" to 0 earlier, and move the may_req calls above exe_commands()?
|
|
||||||
No, that's a problem with using "-c quit", not running Vim interactive.
|
|
||||||
|
|
||||||
Memory leak in test97? The string is actually freed. Weird.
|
Memory leak in test97? The string is actually freed. Weird.
|
||||||
|
|
||||||
Patch for shellescape(). (Christian Brabandt, 2017 Apr 20, #1590)
|
|
||||||
|
|
||||||
Patch for flickering redraw. (Hirohito Higashi, 2017 Apr 23, #1637)
|
|
||||||
|
|
||||||
New value "uselast" for 'switchbuf'. (Lemonboy, 2017 Apr 23, #1652)
|
New value "uselast" for 'switchbuf'. (Lemonboy, 2017 Apr 23, #1652)
|
||||||
|
|
||||||
Add a toolbar in the terminal. Can be global, above all windows, or specific
|
Add a toolbar in the terminal. Can be global, above all windows, or specific
|
||||||
@@ -212,18 +187,6 @@ 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().
|
||||||
|
|
||||||
Patch to support chinese wordcount in utf-8. (Rain, 2017 May 24, #1722)
|
|
||||||
Or not?
|
|
||||||
|
|
||||||
"gn" selects one character instead of the searched text. (keyboardfire, #1683)
|
|
||||||
Patch by Christian, 2017 May 7.
|
|
||||||
|
|
||||||
Wrong memory access using p_fdm, found in patch to add tests for diff mode
|
|
||||||
(#1658) (Dominique Pelle, 2017 May 6)
|
|
||||||
|
|
||||||
Patch to improve test coverage for diff mode. (Dominique Pelle, 2017 May 11,
|
|
||||||
#1685)
|
|
||||||
|
|
||||||
Add an argument to :mkvimrc (or add aother command) to skip mappings from
|
Add an argument to :mkvimrc (or add aother 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.
|
||||||
@@ -249,6 +212,7 @@ Also get E749 on exit.
|
|||||||
Another example in #1309
|
Another example in #1309
|
||||||
|
|
||||||
Patch to change all use of &sw to shiftwidth(). (Tyru, 2017 Feb 19)
|
Patch to change all use of &sw to shiftwidth(). (Tyru, 2017 Feb 19)
|
||||||
|
Takuya Fujiwara
|
||||||
Wait until maintainers integrate it.
|
Wait until maintainers integrate it.
|
||||||
|
|
||||||
When deleting a mark or register, leave a tombstone, so that it's also deleted
|
When deleting a mark or register, leave a tombstone, so that it's also deleted
|
||||||
@@ -358,6 +322,8 @@ Patch for wrong cursor position on wrapped line, involving breakindent.
|
|||||||
(Ozaki Kiichi, 2016 Nov 25)
|
(Ozaki Kiichi, 2016 Nov 25)
|
||||||
Does this also fix #1408 ?
|
Does this also fix #1408 ?
|
||||||
|
|
||||||
|
Patch to add "module" to quickfix entries. (Coot, 2017 Jun 8, #1757)
|
||||||
|
|
||||||
Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
|
Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
|
||||||
|
|
||||||
When 'completeopt' has "noselect" does not insert a newline. (Lifepillar, 2017
|
When 'completeopt' has "noselect" does not insert a newline. (Lifepillar, 2017
|
||||||
@@ -500,9 +466,6 @@ This does not work: :set cscopequickfix=a-
|
|||||||
|
|
||||||
Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806)
|
Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806)
|
||||||
|
|
||||||
Patch to add separate highlighting for quickfix current line.
|
|
||||||
(anishsane, 2016 Sep 16, #1080)
|
|
||||||
|
|
||||||
Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
|
Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
|
||||||
|
|
||||||
Patch to improve map documentation. Issue #799.
|
Patch to improve map documentation. Issue #799.
|
||||||
@@ -539,6 +502,9 @@ Because of using the initial buffer? (Dun Peal, 2016 May 12)
|
|||||||
Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)
|
Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)
|
||||||
Updated 2016 Jun 10, #858 Update 2017 Mar 28: use <buffer>
|
Updated 2016 Jun 10, #858 Update 2017 Mar 28: use <buffer>
|
||||||
|
|
||||||
|
Patch to fix that an encoding conversion failure results in a corrupted or
|
||||||
|
empty file. (Christian Brabandt, #1765, https://github.com/chrisbra/vim-mq-patches/blob/master/conversion_error)
|
||||||
|
|
||||||
Add redrawtabline command. (Naruhiko Nishino, 2016 Jun 11)
|
Add redrawtabline command. (Naruhiko Nishino, 2016 Jun 11)
|
||||||
|
|
||||||
Neovim patch for utfc_ptr2char_len() https://github.com/neovim/neovim/pull/4574
|
Neovim patch for utfc_ptr2char_len() https://github.com/neovim/neovim/pull/4574
|
||||||
@@ -1032,8 +998,6 @@ Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12)
|
|||||||
Patch to add "ntab" item in 'listchars' to repeat first character. (Nathaniel
|
Patch to add "ntab" item in 'listchars' to repeat first character. (Nathaniel
|
||||||
Braun, pragm, 2013 Oct 13) A better solution 2014 Mar 5.
|
Braun, pragm, 2013 Oct 13) A better solution 2014 Mar 5.
|
||||||
|
|
||||||
/[b-a] gives error E16, should probably be E769.
|
|
||||||
|
|
||||||
7 Windows XP: When using "ClearType" for text smoothing, a column of yellow
|
7 Windows XP: When using "ClearType" for text smoothing, a column of yellow
|
||||||
pixels remains when typing spaces in front of a "D" ('guifont' set to
|
pixels remains when typing spaces in front of a "D" ('guifont' set to
|
||||||
"lucida_console:h8").
|
"lucida_console:h8").
|
||||||
|
|||||||
@@ -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 Jun 04
|
" Last Change: 2017 Jun 22
|
||||||
|
|
||||||
" 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")
|
||||||
@@ -48,6 +48,9 @@ func! s:StarSetf(ft)
|
|||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Vim help file
|
||||||
|
au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help
|
||||||
|
|
||||||
" Abaqus or Trasys
|
" Abaqus or Trasys
|
||||||
au BufNewFile,BufRead *.inp call s:Check_inp()
|
au BufNewFile,BufRead *.inp call s:Check_inp()
|
||||||
|
|
||||||
@@ -2253,6 +2256,8 @@ func! s:FTtex()
|
|||||||
let format = tolower(matchstr(firstline, '\a\+'))
|
let format = tolower(matchstr(firstline, '\a\+'))
|
||||||
let format = substitute(format, 'pdf', '', '')
|
let format = substitute(format, 'pdf', '', '')
|
||||||
if format == 'tex'
|
if format == 'tex'
|
||||||
|
let format = 'latex'
|
||||||
|
elseif format == 'plaintex'
|
||||||
let format = 'plain'
|
let format = 'plain'
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
@@ -2784,7 +2789,13 @@ au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
|
|||||||
|
|
||||||
" Plain text files, needs to be far down to not override others. This avoids
|
" Plain text files, needs to be far down to not override others. This avoids
|
||||||
" the "conf" type being used if there is a line starting with '#'.
|
" the "conf" type being used if there is a line starting with '#'.
|
||||||
au BufNewFile,BufRead *.txt,*.text,README setf text
|
au BufNewFile,BufRead *.text,README setf text
|
||||||
|
|
||||||
|
" Help files match *.txt but should have a last line that is a modeline.
|
||||||
|
au BufNewFile,BufRead *.txt
|
||||||
|
\ if getline('$') !~ 'vim:.*ft=help'
|
||||||
|
\| setf text
|
||||||
|
\| endif
|
||||||
|
|
||||||
|
|
||||||
" Use the filetype detect plugins. They may overrule any of the previously
|
" Use the filetype detect plugins. They may overrule any of the previously
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ function s:MainBlockIndent (prev_indent, prev_lnum, blockstart, stop_at)
|
|||||||
endwhile
|
endwhile
|
||||||
endwhile
|
endwhile
|
||||||
" Fallback - just move back one
|
" Fallback - just move back one
|
||||||
return a:prev_indent - &sw
|
return a:prev_indent - shiftwidth()
|
||||||
endfunction MainBlockIndent
|
endfunction MainBlockIndent
|
||||||
|
|
||||||
" Section: s:EndBlockIndent {{{1
|
" Section: s:EndBlockIndent {{{1
|
||||||
@@ -131,7 +131,7 @@ function s:EndBlockIndent( prev_indent, prev_lnum, blockstart, blockend )
|
|||||||
endwhile
|
endwhile
|
||||||
endwhile
|
endwhile
|
||||||
" Fallback - just move back one
|
" Fallback - just move back one
|
||||||
return a:prev_indent - &sw
|
return a:prev_indent - shiftwidth()
|
||||||
endfunction EndBlockIndent
|
endfunction EndBlockIndent
|
||||||
|
|
||||||
" Section: s:StatementIndent {{{1
|
" Section: s:StatementIndent {{{1
|
||||||
@@ -213,15 +213,15 @@ function GetAdaIndent()
|
|||||||
endif
|
endif
|
||||||
" Move indent in
|
" Move indent in
|
||||||
if ! false_match
|
if ! false_match
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~ '^\s*\(case\|exception\)\>'
|
elseif line =~ '^\s*\(case\|exception\)\>'
|
||||||
" Move indent in twice (next 'when' will move back)
|
" Move indent in twice (next 'when' will move back)
|
||||||
let ind = ind + 2 * &sw
|
let ind = ind + 2 * shiftwidth()
|
||||||
elseif line =~ '^\s*end\s*record\>'
|
elseif line =~ '^\s*end\s*record\>'
|
||||||
" Move indent back to tallying 'type' preceeding the 'record'.
|
" Move indent back to tallying 'type' preceeding the 'record'.
|
||||||
" Allow indent to be equal to 'end record's.
|
" Allow indent to be equal to 'end record's.
|
||||||
let ind = s:MainBlockIndent( ind+&sw, lnum, 'type\>', '' )
|
let ind = s:MainBlockIndent( ind+shiftwidth(), lnum, 'type\>', '' )
|
||||||
elseif line =~ '\(^\s*new\>.*\)\@<!)\s*[;,]\s*$'
|
elseif line =~ '\(^\s*new\>.*\)\@<!)\s*[;,]\s*$'
|
||||||
" Revert to indent of line that started this parenthesis pair
|
" Revert to indent of line that started this parenthesis pair
|
||||||
exe lnum
|
exe lnum
|
||||||
@@ -235,10 +235,10 @@ function GetAdaIndent()
|
|||||||
exe v:lnum
|
exe v:lnum
|
||||||
elseif line =~ '[.=(]\s*$'
|
elseif line =~ '[.=(]\s*$'
|
||||||
" A statement continuation - move in one
|
" A statement continuation - move in one
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
elseif line =~ '^\s*new\>'
|
elseif line =~ '^\s*new\>'
|
||||||
" Multiple line generic instantiation ('package blah is\nnew thingy')
|
" Multiple line generic instantiation ('package blah is\nnew thingy')
|
||||||
let ind = s:StatementIndent( ind - &sw, lnum )
|
let ind = s:StatementIndent( ind - shiftwidth(), lnum )
|
||||||
elseif line =~ ';\s*$'
|
elseif line =~ ';\s*$'
|
||||||
" Statement end (but not 'end' ) - try to find current statement-start indent
|
" Statement end (but not 'end' ) - try to find current statement-start indent
|
||||||
let ind = s:StatementIndent( ind, lnum )
|
let ind = s:StatementIndent( ind, lnum )
|
||||||
@@ -256,17 +256,17 @@ function GetAdaIndent()
|
|||||||
elseif continuation && line =~ '^\s*('
|
elseif continuation && line =~ '^\s*('
|
||||||
" Don't do this if we've already indented due to the previous line
|
" Don't do this if we've already indented due to the previous line
|
||||||
if ind == initind
|
if ind == initind
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~ '^\s*\(begin\|is\)\>'
|
elseif line =~ '^\s*\(begin\|is\)\>'
|
||||||
let ind = s:MainBlockIndent( ind, lnum, '\(procedure\|function\|declare\|package\|task\)\>', 'begin\>' )
|
let ind = s:MainBlockIndent( ind, lnum, '\(procedure\|function\|declare\|package\|task\)\>', 'begin\>' )
|
||||||
elseif line =~ '^\s*record\>'
|
elseif line =~ '^\s*record\>'
|
||||||
let ind = s:MainBlockIndent( ind, lnum, 'type\>\|for\>.*\<use\>', '' ) + &sw
|
let ind = s:MainBlockIndent( ind, lnum, 'type\>\|for\>.*\<use\>', '' ) + shiftwidth()
|
||||||
elseif line =~ '^\s*\(else\|elsif\)\>'
|
elseif line =~ '^\s*\(else\|elsif\)\>'
|
||||||
let ind = s:MainBlockIndent( ind, lnum, 'if\>', '' )
|
let ind = s:MainBlockIndent( ind, lnum, 'if\>', '' )
|
||||||
elseif line =~ '^\s*when\>'
|
elseif line =~ '^\s*when\>'
|
||||||
" Align 'when' one /in/ from matching block start
|
" Align 'when' one /in/ from matching block start
|
||||||
let ind = s:MainBlockIndent( ind, lnum, '\(case\|exception\)\>', '' ) + &sw
|
let ind = s:MainBlockIndent( ind, lnum, '\(case\|exception\)\>', '' ) + shiftwidth()
|
||||||
elseif line =~ '^\s*end\>\s*\<if\>'
|
elseif line =~ '^\s*end\>\s*\<if\>'
|
||||||
" End of if statements
|
" End of if statements
|
||||||
let ind = s:EndBlockIndent( ind, lnum, 'if\>', 'end\>\s*\<if\>' )
|
let ind = s:EndBlockIndent( ind, lnum, 'if\>', 'end\>\s*\<if\>' )
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ function! GetAwkIndent()
|
|||||||
" 'pattern { action }' (simple check match on /{/ increases the indent then)
|
" 'pattern { action }' (simple check match on /{/ increases the indent then)
|
||||||
|
|
||||||
if s:Get_brace_balance( prev_data, '{', '}' ) > 0
|
if s:Get_brace_balance( prev_data, '{', '}' ) > 0
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let brace_balance = s:Get_brace_balance( prev_data, '(', ')' )
|
let brace_balance = s:Get_brace_balance( prev_data, '(', ')' )
|
||||||
@@ -99,7 +99,7 @@ function! GetAwkIndent()
|
|||||||
return s:Safe_indent( ind, s:First_word_len(prev_data), getline(v:lnum))
|
return s:Safe_indent( ind, s:First_word_len(prev_data), getline(v:lnum))
|
||||||
else
|
else
|
||||||
" if/for/while without '{'
|
" if/for/while without '{'
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -140,7 +140,7 @@ function! GetAwkIndent()
|
|||||||
|
|
||||||
" Decrease indent if this line contains a '}'.
|
" Decrease indent if this line contains a '}'.
|
||||||
if getline(v:lnum) =~ '^\s*}'
|
if getline(v:lnum) =~ '^\s*}'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ function! GetBstIndent(lnum) abort
|
|||||||
endif
|
endif
|
||||||
let fakeline = substitute(line,'^}','','').matchstr(cline,'^}')
|
let fakeline = substitute(line,'^}','','').matchstr(cline,'^}')
|
||||||
let ind = indent(lnum)
|
let ind = indent(lnum)
|
||||||
let ind = ind + &sw * s:count(line,'{')
|
let ind = ind + shiftwidth() * s:count(line,'{')
|
||||||
let ind = ind - &sw * s:count(fakeline,'}')
|
let ind = ind - shiftwidth() * s:count(fakeline,'}')
|
||||||
return ind
|
return ind
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Bazel (http://bazel.io)
|
" Language: Bazel (http://bazel.io)
|
||||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
||||||
" Last Change: 2015 Aug 11
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists('b:did_indent')
|
if exists('b:did_indent')
|
||||||
finish
|
finish
|
||||||
@@ -41,11 +41,8 @@ function GetBzlIndent(lnum) abort
|
|||||||
if exists('g:pyindent_open_paren')
|
if exists('g:pyindent_open_paren')
|
||||||
let l:pyindent_open_paren = g:pyindent_open_paren
|
let l:pyindent_open_paren = g:pyindent_open_paren
|
||||||
endif
|
endif
|
||||||
" Vim 7.3.693 and later defines a shiftwidth() function to get the effective
|
let g:pyindent_nested_paren = 'shiftwidth() * 2'
|
||||||
" shiftwidth value. Fall back to &shiftwidth if the function doesn't exist.
|
let g:pyindent_open_paren = 'shiftwidth() * 2'
|
||||||
let l:sw_expr = exists('*shiftwidth') ? 'shiftwidth()' : '&shiftwidth'
|
|
||||||
let g:pyindent_nested_paren = l:sw_expr . ' * 2'
|
|
||||||
let g:pyindent_open_paren = l:sw_expr . ' * 2'
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let l:indent = -1
|
let l:indent = -1
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ fun! CdlGetIndent(lnum)
|
|||||||
let thisline = getline(a:lnum)
|
let thisline = getline(a:lnum)
|
||||||
if match(thisline, '^\s*\(\k\+\|\[[^]]*]\)\s*\(,\|;\s*$\)') >= 0
|
if match(thisline, '^\s*\(\k\+\|\[[^]]*]\)\s*\(,\|;\s*$\)') >= 0
|
||||||
" it's an attributes line
|
" it's an attributes line
|
||||||
return &sw
|
return shiftwidth()
|
||||||
elseif match(thisline, '^\c\s*\([{}]\|\/[*/]\|dimension\|schedule\|group\|hierarchy\|class\)') >= 0
|
elseif match(thisline, '^\c\s*\([{}]\|\/[*/]\|dimension\|schedule\|group\|hierarchy\|class\)') >= 0
|
||||||
" it's a header or '{' or '}' or a comment
|
" it's a header or '{' or '}' or a comment
|
||||||
return 0
|
return 0
|
||||||
@@ -71,13 +71,13 @@ fun! CdlGetIndent(lnum)
|
|||||||
let c = line[inicio-1]
|
let c = line[inicio-1]
|
||||||
" ')' and '=' don't change indent and are useless to set 'f'
|
" ')' and '=' don't change indent and are useless to set 'f'
|
||||||
if c == '{'
|
if c == '{'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
elseif c != ')' && c != '='
|
elseif c != ')' && c != '='
|
||||||
let f = 1 " all but 'elseif' are followed by a formula
|
let f = 1 " all but 'elseif' are followed by a formula
|
||||||
if c ==? 'n' || c ==? 'e' " 'then', 'else'
|
if c ==? 'n' || c ==? 'e' " 'then', 'else'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
elseif strpart(line, inicio-6, 6) ==? 'elseif' " elseif, set f to conditional
|
elseif strpart(line, inicio-6, 6) ==? 'elseif' " elseif, set f to conditional
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
let f = 0
|
let f = 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -98,16 +98,16 @@ fun! CdlGetIndent(lnum)
|
|||||||
let ind = 0
|
let ind = 0
|
||||||
let f = 1
|
let f = 1
|
||||||
elseif c == ')' || c== ';' || strpart(line, inicio-5, 5) ==? 'endif'
|
elseif c == ')' || c== ';' || strpart(line, inicio-5, 5) ==? 'endif'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif c == '(' || c ==? 'f' " '(' or 'if'
|
elseif c == '(' || c ==? 'f' " '(' or 'if'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
else " c == '='
|
else " c == '='
|
||||||
" if it is an asignment increase indent
|
" if it is an asignment increase indent
|
||||||
if f == -1 " we don't know yet, find out
|
if f == -1 " we don't know yet, find out
|
||||||
let f = CdlAsignment(lnum, strpart(line, 0, inicio))
|
let f = CdlAsignment(lnum, strpart(line, 0, inicio))
|
||||||
end
|
end
|
||||||
if f == 1 " formula increase it
|
if f == 1 " formula increase it
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
endw
|
endw
|
||||||
@@ -115,13 +115,13 @@ fun! CdlGetIndent(lnum)
|
|||||||
" CURRENT LINE, if it starts with a closing element, decrease indent
|
" CURRENT LINE, if it starts with a closing element, decrease indent
|
||||||
" or if it starts with '=' (asignment), increase indent
|
" or if it starts with '=' (asignment), increase indent
|
||||||
if match(thisline, '^\c\s*\(else\|then\|endif\|[);]\)') >= 0
|
if match(thisline, '^\c\s*\(else\|then\|endif\|[);]\)') >= 0
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif match(thisline, '^\s*=') >= 0
|
elseif match(thisline, '^\s*=') >= 0
|
||||||
if f == -1 " we don't know yet if is an asignment, find out
|
if f == -1 " we don't know yet if is an asignment, find out
|
||||||
let f = CdlAsignment(lnum, "")
|
let f = CdlAsignment(lnum, "")
|
||||||
end
|
end
|
||||||
if f == 1 " formula increase it
|
if f == 1 " formula increase it
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -31,19 +31,19 @@ function! GetChaiScriptIndent()
|
|||||||
let flag = 0
|
let flag = 0
|
||||||
let prevline = getline(lnum)
|
let prevline = getline(lnum)
|
||||||
if prevline =~ '^.*{.*'
|
if prevline =~ '^.*{.*'
|
||||||
let ind = ind + &shiftwidth
|
let ind = ind + shiftwidth()
|
||||||
let flag = 1
|
let flag = 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a 'shiftwidth' after lines containing a { followed by a }
|
" Subtract a 'shiftwidth' after lines containing a { followed by a }
|
||||||
" to keep it balanced
|
" to keep it balanced
|
||||||
if flag == 1 && prevline =~ '.*{.*}.*'
|
if flag == 1 && prevline =~ '.*{.*}.*'
|
||||||
let ind = ind - &shiftwidth
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a 'shiftwidth' on lines ending with }
|
" Subtract a 'shiftwidth' on lines ending with }
|
||||||
if getline(v:lnum) =~ '^\s*\%(}\)'
|
if getline(v:lnum) =~ '^\s*\%(}\)'
|
||||||
let ind = ind - &shiftwidth
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ if exists("*searchpairpos")
|
|||||||
call cursor(paren)
|
call cursor(paren)
|
||||||
|
|
||||||
if s:is_method_special_case(paren)
|
if s:is_method_special_case(paren)
|
||||||
return [paren[0], paren[1] + &shiftwidth - 1]
|
return [paren[0], paren[1] + shiftwidth() - 1]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if s:is_reader_conditional_special_case(paren)
|
if s:is_reader_conditional_special_case(paren)
|
||||||
@@ -299,19 +299,19 @@ if exists("*searchpairpos")
|
|||||||
let ww = s:strip_namespace_and_macro_chars(w)
|
let ww = s:strip_namespace_and_macro_chars(w)
|
||||||
|
|
||||||
if &lispwords =~# '\V\<' . ww . '\>'
|
if &lispwords =~# '\V\<' . ww . '\>'
|
||||||
return [paren[0], paren[1] + &shiftwidth - 1]
|
return [paren[0], paren[1] + shiftwidth() - 1]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if g:clojure_fuzzy_indent
|
if g:clojure_fuzzy_indent
|
||||||
\ && !s:match_one(g:clojure_fuzzy_indent_blacklist, ww)
|
\ && !s:match_one(g:clojure_fuzzy_indent_blacklist, ww)
|
||||||
\ && s:match_one(g:clojure_fuzzy_indent_patterns, ww)
|
\ && s:match_one(g:clojure_fuzzy_indent_patterns, ww)
|
||||||
return [paren[0], paren[1] + &shiftwidth - 1]
|
return [paren[0], paren[1] + shiftwidth() - 1]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call search('\v\_s', 'cW')
|
call search('\v\_s', 'cW')
|
||||||
call search('\v\S', 'W')
|
call search('\v\S', 'W')
|
||||||
if paren[0] < line(".")
|
if paren[0] < line(".")
|
||||||
return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)]
|
return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : shiftwidth() - 1)]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call search('\v\S', 'bW')
|
call search('\v\S', 'bW')
|
||||||
|
|||||||
@@ -68,19 +68,19 @@ fun! CMakeGetIndent(lnum)
|
|||||||
let ind = ind
|
let ind = ind
|
||||||
else
|
else
|
||||||
if previous_line =~? cmake_indent_begin_regex
|
if previous_line =~? cmake_indent_begin_regex
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
if previous_line =~? cmake_indent_open_regex
|
if previous_line =~? cmake_indent_open_regex
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract
|
" Subtract
|
||||||
if this_line =~? cmake_indent_end_regex
|
if this_line =~? cmake_indent_end_regex
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
if previous_line =~? cmake_indent_close_regex
|
if previous_line =~? cmake_indent_close_regex
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -52,11 +52,11 @@ function! s:optionalblock(lnum,ind,blocks,clauses)
|
|||||||
if getline(lastclause) =~? clauses && s:stripped(lastclause) !~? '^'.begin
|
if getline(lastclause) =~? clauses && s:stripped(lastclause) !~? '^'.begin
|
||||||
let ind = indent(lastclause)
|
let ind = indent(lastclause)
|
||||||
elseif lastclause > 0
|
elseif lastclause > 0
|
||||||
let ind = indent(lastclause) + &sw
|
let ind = indent(lastclause) + shiftwidth()
|
||||||
"let ind = ind + &sw
|
"let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~? clauses && cline !~? end
|
elseif line =~? clauses && cline !~? end
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
return ind
|
return ind
|
||||||
endfunction
|
endfunction
|
||||||
@@ -98,8 +98,8 @@ function! GetCobolIndent(lnum) abort
|
|||||||
let num = matchstr(line,'^\s*\zs\d\+\>')
|
let num = matchstr(line,'^\s*\zs\d\+\>')
|
||||||
if 0+cnum == num
|
if 0+cnum == num
|
||||||
return lindent
|
return lindent
|
||||||
elseif 0+cnum > num && default < lindent + &sw
|
elseif 0+cnum > num && default < lindent + shiftwidth()
|
||||||
let default = lindent + &sw
|
let default = lindent + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif lindent < bshft && lindent >= ashft
|
elseif lindent < bshft && lindent >= ashft
|
||||||
break
|
break
|
||||||
@@ -135,13 +135,13 @@ function! GetCobolIndent(lnum) abort
|
|||||||
if line =~? '^PERFORM\>'
|
if line =~? '^PERFORM\>'
|
||||||
let perfline = substitute(line, '\c^PERFORM\s*', "", "")
|
let perfline = substitute(line, '\c^PERFORM\s*', "", "")
|
||||||
if perfline =~? '^\%(\k\+\s\+TIMES\)\=\s*$'
|
if perfline =~? '^\%(\k\+\s\+TIMES\)\=\s*$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
elseif perfline =~? '^\%(WITH\s\+TEST\|VARYING\|UNTIL\)\>.*[^.]$'
|
elseif perfline =~? '^\%(WITH\s\+TEST\|VARYING\|UNTIL\)\>.*[^.]$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
if line =~? '^\%(IF\|THEN\|ELSE\|READ\|EVALUATE\|SEARCH\|SELECT\)\>'
|
if line =~? '^\%(IF\|THEN\|ELSE\|READ\|EVALUATE\|SEARCH\|SELECT\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
let ind = s:optionalblock(a:lnum,ind,'ADD\|COMPUTE\|DIVIDE\|MULTIPLY\|SUBTRACT','ON\s\+SIZE\s\+ERROR')
|
let ind = s:optionalblock(a:lnum,ind,'ADD\|COMPUTE\|DIVIDE\|MULTIPLY\|SUBTRACT','ON\s\+SIZE\s\+ERROR')
|
||||||
let ind = s:optionalblock(a:lnum,ind,'STRING\|UNSTRING\|ACCEPT\|DISPLAY\|CALL','ON\s\+OVERFLOW\|ON\s\+EXCEPTION')
|
let ind = s:optionalblock(a:lnum,ind,'STRING\|UNSTRING\|ACCEPT\|DISPLAY\|CALL','ON\s\+OVERFLOW\|ON\s\+EXCEPTION')
|
||||||
@@ -157,10 +157,10 @@ function! GetCobolIndent(lnum) abort
|
|||||||
"&& s:stripped(lastclause) !~? '^\%(SEARCH\|EVALUATE\|READ\)\>'
|
"&& s:stripped(lastclause) !~? '^\%(SEARCH\|EVALUATE\|READ\)\>'
|
||||||
let ind = indent(lastclause)
|
let ind = indent(lastclause)
|
||||||
elseif lastclause > 0
|
elseif lastclause > 0
|
||||||
let ind = indent(lastclause) + &sw
|
let ind = indent(lastclause) + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~? '^WHEN\>'
|
elseif line =~? '^WHEN\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
"I'm not sure why I had this
|
"I'm not sure why I had this
|
||||||
"if line =~? '^ELSE\>-\@!' && line !~? '\.$'
|
"if line =~? '^ELSE\>-\@!' && line !~? '\.$'
|
||||||
@@ -168,7 +168,7 @@ function! GetCobolIndent(lnum) abort
|
|||||||
"endif
|
"endif
|
||||||
if cline =~? '^\(END\)\>-\@!'
|
if cline =~? '^\(END\)\>-\@!'
|
||||||
" On lines with just END, 'guess' a simple shift left
|
" On lines with just END, 'guess' a simple shift left
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif cline =~? '^\(END-IF\|THEN\|ELSE\)\>-\@!'
|
elseif cline =~? '^\(END-IF\|THEN\|ELSE\)\>-\@!'
|
||||||
call cursor(a:lnum,indent(a:lnum))
|
call cursor(a:lnum,indent(a:lnum))
|
||||||
let match = searchpair('\c-\@<!\<IF\>','\c-\@<!\%(THEN\|ELSE\)\>','\c-\@<!\<END-IF\>\zs','bnW',s:skip)
|
let match = searchpair('\c-\@<!\<IF\>','\c-\@<!\%(THEN\|ELSE\)\>','\c-\@<!\<END-IF\>\zs','bnW',s:skip)
|
||||||
@@ -209,7 +209,7 @@ function! GetCobolIndent(lnum) abort
|
|||||||
if match > 0
|
if match > 0
|
||||||
let ind = indent(match)
|
let ind = indent(match)
|
||||||
elseif cline =~? '^\(END-\(READ\|EVALUATE\|SEARCH\|PERFORM\)\)\>'
|
elseif cline =~? '^\(END-\(READ\|EVALUATE\|SEARCH\|PERFORM\)\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
return ind < bshft ? bshft : ind
|
return ind < bshft ? bshft : ind
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Cucumber
|
" Language: Cucumber
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2016 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
@@ -27,7 +27,7 @@ function! GetCucumberIndent()
|
|||||||
let line = getline(prevnonblank(v:lnum-1))
|
let line = getline(prevnonblank(v:lnum-1))
|
||||||
let cline = getline(v:lnum)
|
let cline = getline(v:lnum)
|
||||||
let nline = getline(nextnonblank(v:lnum+1))
|
let nline = getline(nextnonblank(v:lnum+1))
|
||||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
let sw = exists('*shiftwidth') ? shiftwidth() : shiftwidth()
|
||||||
let syn = s:syn(prevnonblank(v:lnum-1))
|
let syn = s:syn(prevnonblank(v:lnum-1))
|
||||||
let csyn = s:syn(v:lnum)
|
let csyn = s:syn(v:lnum)
|
||||||
let nsyn = s:syn(nextnonblank(v:lnum+1))
|
let nsyn = s:syn(nextnonblank(v:lnum+1))
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Dylan
|
" Language: Dylan
|
||||||
" Version: 0.01
|
" Version: 0.01
|
||||||
" Last Change: 2003 Feb 04
|
" Last Change: 2017 Jun 13
|
||||||
" Maintainer: Brent A. Fulgham <bfulgham@debian.org>
|
" Maintainer: Brent A. Fulgham <bfulgham@debian.org>
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
@@ -45,13 +45,13 @@ function DylanGetIndent()
|
|||||||
|
|
||||||
" If previous line was a 'define', indent
|
" If previous line was a 'define', indent
|
||||||
if prevline =~? '\(^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)\|\s*\S*\s*=>$\)'
|
if prevline =~? '\(^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)\|\s*\S*\s*=>$\)'
|
||||||
let chg = &sw
|
let chg = shiftwidth()
|
||||||
" local methods indent the shift-width, plus 6 for the 'local'
|
" local methods indent the shift-width, plus 6 for the 'local'
|
||||||
elseif prevline =~? '^\s*local'
|
elseif prevline =~? '^\s*local'
|
||||||
let chg = &sw + 6
|
let chg = shiftwidth() + 6
|
||||||
" If previous line was a let with no closing semicolon, indent
|
" If previous line was a let with no closing semicolon, indent
|
||||||
elseif prevline =~? '^\s*let.*[^;]\s*$'
|
elseif prevline =~? '^\s*let.*[^;]\s*$'
|
||||||
let chg = &sw
|
let chg = shiftwidth()
|
||||||
" If previous line opened a parenthesis, and did not close it, indent
|
" If previous line opened a parenthesis, and did not close it, indent
|
||||||
elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
|
elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
|
||||||
return = match( prevline, '(.*\((.*)\|[^)]\)*.*$') + 1
|
return = match( prevline, '(.*\((.*)\|[^)]\)*.*$') + 1
|
||||||
@@ -75,13 +75,13 @@ function DylanGetIndent()
|
|||||||
" line doesn't start with an indentable command:
|
" line doesn't start with an indentable command:
|
||||||
let curr_str = getline(curr_line)
|
let curr_str = getline(curr_line)
|
||||||
if curr_str =~? '^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)'
|
if curr_str =~? '^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)'
|
||||||
let chg = &sw
|
let chg = shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" If a line starts with end, un-indent (even if we just indented!)
|
" If a line starts with end, un-indent (even if we just indented!)
|
||||||
if cline =~? '^\s*\(cleanup\|end\|else\|elseif\|exception\|finally\|otherwise\)'
|
if cline =~? '^\s*\(cleanup\|end\|else\|elseif\|exception\|finally\|otherwise\)'
|
||||||
let chg = chg - &sw
|
let chg = chg - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind + chg
|
return ind + chg
|
||||||
|
|||||||
@@ -669,7 +669,7 @@ function! s:BeginningOfClauseFound(stack, token, stored_vcol)
|
|||||||
call s:Pop(a:stack)
|
call s:Pop(a:stack)
|
||||||
if empty(a:stack)
|
if empty(a:stack)
|
||||||
call s:Log(' Stack is ["when"], so LTI is in a guard -> return')
|
call s:Log(' Stack is ["when"], so LTI is in a guard -> return')
|
||||||
return [1, a:stored_vcol + &sw + 2]
|
return [1, a:stored_vcol + shiftwidth() + 2]
|
||||||
else
|
else
|
||||||
return [1, s:UnexpectedToken(a:token, a:stack)]
|
return [1, s:UnexpectedToken(a:token, a:stack)]
|
||||||
endif
|
endif
|
||||||
@@ -678,7 +678,7 @@ function! s:BeginningOfClauseFound(stack, token, stored_vcol)
|
|||||||
call s:Pop(a:stack)
|
call s:Pop(a:stack)
|
||||||
if empty(a:stack)
|
if empty(a:stack)
|
||||||
call s:Log(' Stack is ["->"], so LTI is in function body -> return')
|
call s:Log(' Stack is ["->"], so LTI is in function body -> return')
|
||||||
return [1, a:stored_vcol + &sw]
|
return [1, a:stored_vcol + shiftwidth()]
|
||||||
elseif a:stack[0] ==# ';'
|
elseif a:stack[0] ==# ';'
|
||||||
call s:Pop(a:stack)
|
call s:Pop(a:stack)
|
||||||
if empty(a:stack)
|
if empty(a:stack)
|
||||||
@@ -797,7 +797,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
|
|
||||||
elseif token ==# 'begin'
|
elseif token ==# 'begin'
|
||||||
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
||||||
\stored_vcol, 'end', &sw)
|
\stored_vcol, 'end', shiftwidth())
|
||||||
if ret | return res | endif
|
if ret | return res | endif
|
||||||
|
|
||||||
" case EXPR of BRANCHES end
|
" case EXPR of BRANCHES end
|
||||||
@@ -848,11 +848,11 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
elseif stack == ['->']
|
elseif stack == ['->']
|
||||||
call s:Log(' LTI is in a branch after ' .
|
call s:Log(' LTI is in a branch after ' .
|
||||||
\'"of/receive/after/if/catch" -> return')
|
\'"of/receive/after/if/catch" -> return')
|
||||||
return stored_vcol + &sw
|
return stored_vcol + shiftwidth()
|
||||||
elseif stack == ['when']
|
elseif stack == ['when']
|
||||||
call s:Log(' LTI is in a guard after ' .
|
call s:Log(' LTI is in a guard after ' .
|
||||||
\'"of/receive/after/if/catch" -> return')
|
\'"of/receive/after/if/catch" -> return')
|
||||||
return stored_vcol + &sw
|
return stored_vcol + shiftwidth()
|
||||||
else
|
else
|
||||||
return s:UnexpectedToken(token, stack)
|
return s:UnexpectedToken(token, stack)
|
||||||
endif
|
endif
|
||||||
@@ -888,7 +888,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
if empty(stack)
|
if empty(stack)
|
||||||
call s:Log(' LTI is in a condition; matching ' .
|
call s:Log(' LTI is in a condition; matching ' .
|
||||||
\'"case/if/try/receive" found')
|
\'"case/if/try/receive" found')
|
||||||
let stored_vcol = curr_vcol + &sw
|
let stored_vcol = curr_vcol + shiftwidth()
|
||||||
elseif stack[0] ==# 'align_to_begin_element'
|
elseif stack[0] ==# 'align_to_begin_element'
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol
|
let stored_vcol = curr_vcol
|
||||||
@@ -897,23 +897,23 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
\'"case/if/try/receive" found')
|
\'"case/if/try/receive" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol + &sw
|
let stored_vcol = curr_vcol + shiftwidth()
|
||||||
elseif stack[0] ==# '->'
|
elseif stack[0] ==# '->'
|
||||||
call s:Log(' LTI is in a branch; matching ' .
|
call s:Log(' LTI is in a branch; matching ' .
|
||||||
\'"case/if/try/receive" found')
|
\'"case/if/try/receive" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol + 2 * &sw
|
let stored_vcol = curr_vcol + 2 * shiftwidth()
|
||||||
elseif stack[0] ==# 'when'
|
elseif stack[0] ==# 'when'
|
||||||
call s:Log(' LTI is in a guard; matching ' .
|
call s:Log(' LTI is in a guard; matching ' .
|
||||||
\'"case/if/try/receive" found')
|
\'"case/if/try/receive" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol + 2 * &sw + 2
|
let stored_vcol = curr_vcol + 2 * shiftwidth() + 2
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
||||||
\stored_vcol, 'end', &sw)
|
\stored_vcol, 'end', shiftwidth())
|
||||||
if ret | return res | endif
|
if ret | return res | endif
|
||||||
|
|
||||||
elseif token ==# 'fun'
|
elseif token ==# 'fun'
|
||||||
@@ -930,7 +930,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
" stack = ['when'] => LTI is in a guard
|
" stack = ['when'] => LTI is in a guard
|
||||||
if empty(stack)
|
if empty(stack)
|
||||||
call s:Log(' LTI is in a condition; matching "fun" found')
|
call s:Log(' LTI is in a condition; matching "fun" found')
|
||||||
let stored_vcol = curr_vcol + &sw
|
let stored_vcol = curr_vcol + shiftwidth()
|
||||||
elseif len(stack) > 1 && stack[0] ==# '->' && stack[1] ==# ';'
|
elseif len(stack) > 1 && stack[0] ==# '->' && stack[1] ==# ';'
|
||||||
call s:Log(' LTI is in a condition; matching "fun" found')
|
call s:Log(' LTI is in a condition; matching "fun" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
@@ -938,15 +938,15 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
elseif stack[0] ==# '->'
|
elseif stack[0] ==# '->'
|
||||||
call s:Log(' LTI is in a branch; matching "fun" found')
|
call s:Log(' LTI is in a branch; matching "fun" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol + 2 * &sw
|
let stored_vcol = curr_vcol + 2 * shiftwidth()
|
||||||
elseif stack[0] ==# 'when'
|
elseif stack[0] ==# 'when'
|
||||||
call s:Log(' LTI is in a guard; matching "fun" found')
|
call s:Log(' LTI is in a guard; matching "fun" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol + 2 * &sw + 2
|
let stored_vcol = curr_vcol + 2 * shiftwidth() + 2
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
||||||
\stored_vcol, 'end', &sw)
|
\stored_vcol, 'end', shiftwidth())
|
||||||
if ret | return res | endif
|
if ret | return res | endif
|
||||||
else
|
else
|
||||||
" Pass: we have a function reference (e.g. "fun f/0")
|
" Pass: we have a function reference (e.g. "fun f/0")
|
||||||
@@ -1220,7 +1220,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
" when A,
|
" when A,
|
||||||
" LTI
|
" LTI
|
||||||
let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
|
let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
|
||||||
\stored_vcol, &sw)
|
\stored_vcol, shiftwidth())
|
||||||
if ret | return res | endif
|
if ret | return res | endif
|
||||||
else
|
else
|
||||||
" Example:
|
" Example:
|
||||||
@@ -1252,7 +1252,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
" If LTI is between an 'after' and the corresponding
|
" If LTI is between an 'after' and the corresponding
|
||||||
" 'end', then let's return
|
" 'end', then let's return
|
||||||
let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
|
let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
|
||||||
\stored_vcol, &sw)
|
\stored_vcol, shiftwidth())
|
||||||
if ret | return res | endif
|
if ret | return res | endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -47,11 +47,7 @@ set cpo&vim
|
|||||||
|
|
||||||
function! GetErubyIndent(...)
|
function! GetErubyIndent(...)
|
||||||
" The value of a single shift-width
|
" The value of a single shift-width
|
||||||
if exists('*shiftwidth')
|
|
||||||
let sw = shiftwidth()
|
let sw = shiftwidth()
|
||||||
else
|
|
||||||
let sw = &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
if a:0 && a:1 == '.'
|
if a:0 && a:1 == '.'
|
||||||
let v:lnum = line('.')
|
let v:lnum = line('.')
|
||||||
|
|||||||
@@ -339,7 +339,7 @@ function FalconGetIndent(...)
|
|||||||
|
|
||||||
" If the previous line ended with a block opening, add a level of indent.
|
" If the previous line ended with a block opening, add a level of indent.
|
||||||
if s:Match(lnum, s:block_regex)
|
if s:Match(lnum, s:block_regex)
|
||||||
return indent(s:GetMSL(lnum)) + &sw
|
return indent(s:GetMSL(lnum)) + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" If it contained hanging closing brackets, find the rightmost one, find its
|
" If it contained hanging closing brackets, find the rightmost one, find its
|
||||||
@@ -350,20 +350,20 @@ function FalconGetIndent(...)
|
|||||||
if opening.pos != -1
|
if opening.pos != -1
|
||||||
if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
|
if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
|
||||||
if col('.') + 1 == col('$')
|
if col('.') + 1 == col('$')
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
else
|
else
|
||||||
return virtcol('.')
|
return virtcol('.')
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let nonspace = matchend(line, '\S', opening.pos + 1) - 1
|
let nonspace = matchend(line, '\S', opening.pos + 1) - 1
|
||||||
return nonspace > 0 ? nonspace : ind + &sw
|
return nonspace > 0 ? nonspace : ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif closing.pos != -1
|
elseif closing.pos != -1
|
||||||
call cursor(lnum, closing.pos + 1)
|
call cursor(lnum, closing.pos + 1)
|
||||||
normal! %
|
normal! %
|
||||||
|
|
||||||
if s:Match(line('.'), s:falcon_indent_keywords)
|
if s:Match(line('.'), s:falcon_indent_keywords)
|
||||||
return indent('.') + &sw
|
return indent('.') + shiftwidth()
|
||||||
else
|
else
|
||||||
return indent('.')
|
return indent('.')
|
||||||
endif
|
endif
|
||||||
@@ -392,7 +392,7 @@ function FalconGetIndent(...)
|
|||||||
let col = s:Match(lnum, s:falcon_indent_keywords)
|
let col = s:Match(lnum, s:falcon_indent_keywords)
|
||||||
if col > 0
|
if col > 0
|
||||||
call cursor(lnum, col)
|
call cursor(lnum, col)
|
||||||
let ind = virtcol('.') - 1 + &sw
|
let ind = virtcol('.') - 1 + shiftwidth()
|
||||||
" TODO: make this better (we need to count them) (or, if a searchpair
|
" TODO: make this better (we need to count them) (or, if a searchpair
|
||||||
" fails, we know that something is lacking an end and thus we indent a
|
" fails, we know that something is lacking an end and thus we indent a
|
||||||
" level
|
" level
|
||||||
@@ -422,9 +422,9 @@ function FalconGetIndent(...)
|
|||||||
" TODO: this does not take into account contrived things such as
|
" TODO: this does not take into account contrived things such as
|
||||||
" module Foo; class Bar; end
|
" module Foo; class Bar; end
|
||||||
if s:Match(lnum, s:falcon_indent_keywords)
|
if s:Match(lnum, s:falcon_indent_keywords)
|
||||||
let ind = msl_ind + &sw
|
let ind = msl_ind + shiftwidth()
|
||||||
if s:Match(lnum, s:end_end_regex)
|
if s:Match(lnum, s:end_end_regex)
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
return ind
|
return ind
|
||||||
endif
|
endif
|
||||||
@@ -433,7 +433,7 @@ function FalconGetIndent(...)
|
|||||||
" closing bracket, indent one extra level.
|
" closing bracket, indent one extra level.
|
||||||
if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)')
|
if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)')
|
||||||
if lnum == p_lnum
|
if lnum == p_lnum
|
||||||
let ind = msl_ind + &sw
|
let ind = msl_ind + shiftwidth()
|
||||||
else
|
else
|
||||||
let ind = msl_ind
|
let ind = msl_ind
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: git config file
|
" Language: git config file
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2016 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
@@ -20,7 +20,7 @@ if exists("*GetGitconfigIndent")
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
function! GetGitconfigIndent()
|
function! GetGitconfigIndent()
|
||||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
let sw = shiftwidth()
|
||||||
let line = getline(prevnonblank(v:lnum-1))
|
let line = getline(prevnonblank(v:lnum-1))
|
||||||
let cline = getline(v:lnum)
|
let cline = getline(v:lnum)
|
||||||
if line =~ '\\\@<!\%(\\\\\)*\\$'
|
if line =~ '\\\@<!\%(\\\\\)*\\$'
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: gitolite configuration
|
" Language: gitolite configuration
|
||||||
" URL: https://github.com/tmatilai/gitolite.vim
|
" URL: https://github.com/tmatilai/gitolite.vim
|
||||||
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
|
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
|
||||||
" Last Change: 2011-12-24
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
@@ -27,11 +27,11 @@ function! GetGitoliteIndent()
|
|||||||
let cline = getline(v:lnum)
|
let cline = getline(v:lnum)
|
||||||
|
|
||||||
if cline =~ '^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\|-\)[ \t=]'
|
if cline =~ '^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\|-\)[ \t=]'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
elseif cline =~ '^\s*config\s'
|
elseif cline =~ '^\s*config\s'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
|
elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
elseif cline =~ '^\s*#'
|
elseif cline =~ '^\s*#'
|
||||||
return indent(prevln)
|
return indent(prevln)
|
||||||
elseif cline =~ '^\s*$'
|
elseif cline =~ '^\s*$'
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Go
|
" Language: Go
|
||||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-go)
|
" Maintainer: David Barnett (https://github.com/google/vim-ft-go)
|
||||||
" Last Change: 2014 Aug 16
|
" Last Change: 2017 Jun 13
|
||||||
"
|
"
|
||||||
" TODO:
|
" TODO:
|
||||||
" - function invocations split across lines
|
" - function invocations split across lines
|
||||||
@@ -23,18 +23,6 @@ if exists('*GoIndent')
|
|||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" The shiftwidth() function is relatively new.
|
|
||||||
" Don't require it to exist.
|
|
||||||
if exists('*shiftwidth')
|
|
||||||
function s:sw() abort
|
|
||||||
return shiftwidth()
|
|
||||||
endfunction
|
|
||||||
else
|
|
||||||
function s:sw() abort
|
|
||||||
return &shiftwidth
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! GoIndent(lnum)
|
function! GoIndent(lnum)
|
||||||
let l:prevlnum = prevnonblank(a:lnum-1)
|
let l:prevlnum = prevnonblank(a:lnum-1)
|
||||||
if l:prevlnum == 0
|
if l:prevlnum == 0
|
||||||
@@ -51,17 +39,17 @@ function! GoIndent(lnum)
|
|||||||
|
|
||||||
if l:prevl =~ '[({]\s*$'
|
if l:prevl =~ '[({]\s*$'
|
||||||
" previous line opened a block
|
" previous line opened a block
|
||||||
let l:ind += s:sw()
|
let l:ind += shiftwidth()
|
||||||
endif
|
endif
|
||||||
if l:prevl =~# '^\s*\(case .*\|default\):$'
|
if l:prevl =~# '^\s*\(case .*\|default\):$'
|
||||||
" previous line is part of a switch statement
|
" previous line is part of a switch statement
|
||||||
let l:ind += s:sw()
|
let l:ind += shiftwidth()
|
||||||
endif
|
endif
|
||||||
" TODO: handle if the previous line is a label.
|
" TODO: handle if the previous line is a label.
|
||||||
|
|
||||||
if l:thisl =~ '^\s*[)}]'
|
if l:thisl =~ '^\s*[)}]'
|
||||||
" this line closed a block
|
" this line closed a block
|
||||||
let l:ind -= s:sw()
|
let l:ind -= shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Colons are tricky.
|
" Colons are tricky.
|
||||||
@@ -69,7 +57,7 @@ function! GoIndent(lnum)
|
|||||||
" We ignore trying to deal with jump labels because (a) they're rare, and
|
" We ignore trying to deal with jump labels because (a) they're rare, and
|
||||||
" (b) they're hard to disambiguate from a composite literal key.
|
" (b) they're hard to disambiguate from a composite literal key.
|
||||||
if l:thisl =~# '^\s*\(case .*\|default\):$'
|
if l:thisl =~# '^\s*\(case .*\|default\):$'
|
||||||
let l:ind -= s:sw()
|
let l:ind -= shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return l:ind
|
return l:ind
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Haml
|
" Language: Haml
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2016 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
@@ -37,7 +37,7 @@ function! GetHamlIndent()
|
|||||||
let line = substitute(line,'^\s\+','','')
|
let line = substitute(line,'^\s\+','','')
|
||||||
let indent = indent(lnum)
|
let indent = indent(lnum)
|
||||||
let cindent = indent(v:lnum)
|
let cindent = indent(v:lnum)
|
||||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
let sw = shiftwidth()
|
||||||
if cline =~# '\v^-\s*%(elsif|else|when)>'
|
if cline =~# '\v^-\s*%(elsif|else|when)>'
|
||||||
let indent = cindent < indent ? cindent : indent - sw
|
let indent = cindent < indent ? cindent : indent - sw
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -27,13 +27,13 @@ function HamGetIndent(lnum)
|
|||||||
" Add a shiftwidth to statements following if, else, elseif,
|
" Add a shiftwidth to statements following if, else, elseif,
|
||||||
" case, select, default, do, until, while, for, start
|
" case, select, default, do, until, while, for, start
|
||||||
if prevline =~? '^\s*\<\(if\|else\%(if\)\?\|for\|repeat\|do\|while\|sub\)\>'
|
if prevline =~? '^\s*\<\(if\|else\%(if\)\?\|for\|repeat\|do\|while\|sub\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a shiftwidth from else, elseif, end(if|while|for), until
|
" Subtract a shiftwidth from else, elseif, end(if|while|for), until
|
||||||
let line = getline(v:lnum)
|
let line = getline(v:lnum)
|
||||||
if line =~? '^\s*\(else\|elseif\|loop\|until\|end\%(if\|while\|for\|sub\)\)\>'
|
if line =~? '^\s*\(else\|elseif\|loop\|until\|end\%(if\|while\|for\|sub\)\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ function GetHogIndent()
|
|||||||
" Continuation of a line that wasn't indented
|
" Continuation of a line that wasn't indented
|
||||||
let prevline = getline(prevlnum)
|
let prevline = getline(prevlnum)
|
||||||
if prevline =~ '^\k\+.*\\\s*$'
|
if prevline =~ '^\k\+.*\\\s*$'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Continuation of a line that was indented
|
" Continuation of a line that was indented
|
||||||
@@ -58,13 +58,13 @@ function GetHogIndent()
|
|||||||
" Indent the next line if previous line contained a start of a block
|
" Indent the next line if previous line contained a start of a block
|
||||||
" definition ('{' or '(').
|
" definition ('{' or '(').
|
||||||
if prevline =~ '^\k\+[^#]*{}\@!\s*$' " TODO || prevline =~ '^\k\+[^#]*()\@!\s*$'
|
if prevline =~ '^\k\+[^#]*{}\@!\s*$' " TODO || prevline =~ '^\k\+[^#]*()\@!\s*$'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Match inside of a block
|
" Match inside of a block
|
||||||
if s:IsInBlock(v:lnum)
|
if s:IsInBlock(v:lnum)
|
||||||
if prevline =~ "^\k\+.*$"
|
if prevline =~ "^\k\+.*$"
|
||||||
return &sw
|
return shiftwidth()
|
||||||
else
|
else
|
||||||
return indent(prevlnum)
|
return indent(prevlnum)
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Header: "{{{
|
" Header: "{{{
|
||||||
" Maintainer: Bram Moolenaar
|
" Maintainer: Bram Moolenaar
|
||||||
" Original Author: Andy Wokula <anwoku@yahoo.de>
|
" Original Author: Andy Wokula <anwoku@yahoo.de>
|
||||||
" Last Change: 2017 Jan 17
|
" Last Change: 2017 Jun 13
|
||||||
" Version: 1.0
|
" Version: 1.0
|
||||||
" Description: HTML indent script with cached state for faster indenting on a
|
" Description: HTML indent script with cached state for faster indenting on a
|
||||||
" range of lines.
|
" range of lines.
|
||||||
@@ -51,15 +51,6 @@ if exists("*HtmlIndent") && !exists('g:force_reload_html')
|
|||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" shiftwidth() exists since patch 7.3.694
|
|
||||||
if exists('*shiftwidth')
|
|
||||||
let s:ShiftWidth = function('shiftwidth')
|
|
||||||
else
|
|
||||||
func! s:ShiftWidth()
|
|
||||||
return &shiftwidth
|
|
||||||
endfunc
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Allow for line continuation below.
|
" Allow for line continuation below.
|
||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo-=C
|
set cpo-=C
|
||||||
@@ -123,7 +114,7 @@ func! HtmlIndent_CheckUserSettings()
|
|||||||
|
|
||||||
let indone = {"zero": 0
|
let indone = {"zero": 0
|
||||||
\,"auto": "indent(prevnonblank(v:lnum-1))"
|
\,"auto": "indent(prevnonblank(v:lnum-1))"
|
||||||
\,"inc": "b:hi_indent.blocktagind + s:ShiftWidth()"}
|
\,"inc": "b:hi_indent.blocktagind + shiftwidth()"}
|
||||||
|
|
||||||
let script1 = ''
|
let script1 = ''
|
||||||
if exists("b:html_indent_script1")
|
if exists("b:html_indent_script1")
|
||||||
@@ -358,7 +349,7 @@ func! s:CheckBlockTag(blocktag, ind)
|
|||||||
endif
|
endif
|
||||||
let b:hi_newstate.blocklnr = v:lnum
|
let b:hi_newstate.blocklnr = v:lnum
|
||||||
" save allover indent for the endtag
|
" save allover indent for the endtag
|
||||||
let b:hi_newstate.blocktagind = b:hi_indent.baseindent + (s:nextrel + s:curind) * s:ShiftWidth()
|
let b:hi_newstate.blocktagind = b:hi_indent.baseindent + (s:nextrel + s:curind) * shiftwidth()
|
||||||
if a:ind == 3
|
if a:ind == 3
|
||||||
return "SCRIPT" " all except this must be lowercase
|
return "SCRIPT" " all except this must be lowercase
|
||||||
" line is to be checked again for the type attribute
|
" line is to be checked again for the type attribute
|
||||||
@@ -480,7 +471,7 @@ func! s:FreshState(lnum)
|
|||||||
let state.blocklnr = stopline
|
let state.blocklnr = stopline
|
||||||
" check preceding tags in the line:
|
" check preceding tags in the line:
|
||||||
call s:CountITags(tagline[: stopcol-2])
|
call s:CountITags(tagline[: stopcol-2])
|
||||||
let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * s:ShiftWidth()
|
let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * shiftwidth()
|
||||||
return state
|
return state
|
||||||
elseif stopline == state.lnum
|
elseif stopline == state.lnum
|
||||||
" handle special case: previous line (= state.lnum) contains a
|
" handle special case: previous line (= state.lnum) contains a
|
||||||
@@ -490,7 +481,7 @@ func! s:FreshState(lnum)
|
|||||||
if !swendtag
|
if !swendtag
|
||||||
let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bnW")
|
let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bnW")
|
||||||
call s:CountITags(tolower(getline(bline)[: bcol-2]))
|
call s:CountITags(tolower(getline(bline)[: bcol-2]))
|
||||||
let state.baseindent = indent(bline) + (s:curind + s:nextrel) * s:ShiftWidth()
|
let state.baseindent = indent(bline) + (s:curind + s:nextrel) * shiftwidth()
|
||||||
return state
|
return state
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -511,7 +502,7 @@ func! s:FreshState(lnum)
|
|||||||
if found == 2
|
if found == 2
|
||||||
let state.baseindent = b:hi_indent.baseindent
|
let state.baseindent = b:hi_indent.baseindent
|
||||||
endif
|
endif
|
||||||
let state.blocktagind = indent(comlnum) + (s:curind + s:nextrel) * s:ShiftWidth()
|
let state.blocktagind = indent(comlnum) + (s:curind + s:nextrel) * shiftwidth()
|
||||||
return state
|
return state
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -530,7 +521,7 @@ func! s:FreshState(lnum)
|
|||||||
let text = tolower(getline(comlnum)[: comcol-2])
|
let text = tolower(getline(comlnum)[: comcol-2])
|
||||||
endif
|
endif
|
||||||
call s:CountITags(text)
|
call s:CountITags(text)
|
||||||
let state.baseindent = indent(comlnum) + (s:curind + s:nextrel) * s:ShiftWidth()
|
let state.baseindent = indent(comlnum) + (s:curind + s:nextrel) * shiftwidth()
|
||||||
" TODO check tags that follow "-->"
|
" TODO check tags that follow "-->"
|
||||||
return state
|
return state
|
||||||
endif
|
endif
|
||||||
@@ -550,9 +541,9 @@ func! s:FreshState(lnum)
|
|||||||
let text = getline(start_lnum)
|
let text = getline(start_lnum)
|
||||||
let swendtag = match(text, '^\s*</') >= 0
|
let swendtag = match(text, '^\s*</') >= 0
|
||||||
call s:CountITags(text[: col('.') - 2])
|
call s:CountITags(text[: col('.') - 2])
|
||||||
let state.baseindent += s:nextrel * s:ShiftWidth()
|
let state.baseindent += s:nextrel * shiftwidth()
|
||||||
if !swendtag
|
if !swendtag
|
||||||
let state.baseindent += s:curind * s:ShiftWidth()
|
let state.baseindent += s:curind * shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
return state
|
return state
|
||||||
@@ -565,9 +556,9 @@ func! s:FreshState(lnum)
|
|||||||
let text = getline(state.lnum)
|
let text = getline(state.lnum)
|
||||||
let swendtag = match(text, '^\s*</') >= 0
|
let swendtag = match(text, '^\s*</') >= 0
|
||||||
call s:CountITags(tolower(text))
|
call s:CountITags(tolower(text))
|
||||||
let state.baseindent = indent(state.lnum) + s:nextrel * s:ShiftWidth()
|
let state.baseindent = indent(state.lnum) + s:nextrel * shiftwidth()
|
||||||
if !swendtag
|
if !swendtag
|
||||||
let state.baseindent += s:curind * s:ShiftWidth()
|
let state.baseindent += s:curind * shiftwidth()
|
||||||
endif
|
endif
|
||||||
return state
|
return state
|
||||||
endfunc "}}}
|
endfunc "}}}
|
||||||
@@ -646,7 +637,7 @@ func! s:CSSIndent()
|
|||||||
|
|
||||||
" add indent after {
|
" add indent after {
|
||||||
let brace_counts = HtmlIndent_CountBraces(prev_lnum)
|
let brace_counts = HtmlIndent_CountBraces(prev_lnum)
|
||||||
let extra = brace_counts.c_open * s:ShiftWidth()
|
let extra = brace_counts.c_open * shiftwidth()
|
||||||
|
|
||||||
let prev_text = getline(prev_lnum)
|
let prev_text = getline(prev_lnum)
|
||||||
let below_end_brace = prev_text =~ '}\s*$'
|
let below_end_brace = prev_text =~ '}\s*$'
|
||||||
@@ -663,7 +654,7 @@ func! s:CSSIndent()
|
|||||||
" if the current line is not a comment or starts with @ (used by template
|
" if the current line is not a comment or starts with @ (used by template
|
||||||
" systems) reduce indent if previous line is a continuation line
|
" systems) reduce indent if previous line is a continuation line
|
||||||
if !prev_hasfield && !prev_special
|
if !prev_hasfield && !prev_special
|
||||||
let extra = -s:ShiftWidth()
|
let extra = -shiftwidth()
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let cur_hasfield = curtext =~ '^\s*[a-zA-Z0-9-]\+:'
|
let cur_hasfield = curtext =~ '^\s*[a-zA-Z0-9-]\+:'
|
||||||
@@ -671,14 +662,14 @@ func! s:CSSIndent()
|
|||||||
if !cur_hasfield && (prev_hasfield || prev_unfinished)
|
if !cur_hasfield && (prev_hasfield || prev_unfinished)
|
||||||
" Continuation line has extra indent if the previous line was not a
|
" Continuation line has extra indent if the previous line was not a
|
||||||
" continuation line.
|
" continuation line.
|
||||||
let extra = s:ShiftWidth()
|
let extra = shiftwidth()
|
||||||
" Align with @if
|
" Align with @if
|
||||||
if prev_text =~ '^\s*@if '
|
if prev_text =~ '^\s*@if '
|
||||||
let extra = 4
|
let extra = 4
|
||||||
endif
|
endif
|
||||||
elseif cur_hasfield && !prev_hasfield && !prev_special
|
elseif cur_hasfield && !prev_hasfield && !prev_special
|
||||||
" less indent below a continuation line
|
" less indent below a continuation line
|
||||||
let extra = -s:ShiftWidth()
|
let extra = -shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -699,10 +690,10 @@ func! s:CSSIndent()
|
|||||||
if special
|
if special
|
||||||
" do not reduce indent below @{ ... }
|
" do not reduce indent below @{ ... }
|
||||||
if extra < 0
|
if extra < 0
|
||||||
let extra += s:ShiftWidth()
|
let extra += shiftwidth()
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let extra -= (brace_counts.c_close - (prev_text =~ '^\s*}')) * s:ShiftWidth()
|
let extra -= (brace_counts.c_close - (prev_text =~ '^\s*}')) * shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -710,10 +701,10 @@ func! s:CSSIndent()
|
|||||||
if extra == 0
|
if extra == 0
|
||||||
if brace_counts.p_open > brace_counts.p_close
|
if brace_counts.p_open > brace_counts.p_close
|
||||||
" previous line has more ( than ): add a shiftwidth
|
" previous line has more ( than ): add a shiftwidth
|
||||||
let extra = s:ShiftWidth()
|
let extra = shiftwidth()
|
||||||
elseif brace_counts.p_open < brace_counts.p_close
|
elseif brace_counts.p_open < brace_counts.p_close
|
||||||
" previous line has more ) than (: subtract a shiftwidth
|
" previous line has more ) than (: subtract a shiftwidth
|
||||||
let extra = -s:ShiftWidth()
|
let extra = -shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -816,7 +807,7 @@ func! s:Alien5()
|
|||||||
let idx = match(prevtext, '^\s*\zs<!--')
|
let idx = match(prevtext, '^\s*\zs<!--')
|
||||||
if idx >= 0
|
if idx >= 0
|
||||||
" just below comment start, add a shiftwidth
|
" just below comment start, add a shiftwidth
|
||||||
return idx + s:ShiftWidth()
|
return idx + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Some files add 4 spaces just below a TODO line. It's difficult to detect
|
" Some files add 4 spaces just below a TODO line. It's difficult to detect
|
||||||
@@ -837,7 +828,7 @@ func! s:Alien6()
|
|||||||
return indent(lnum)
|
return indent(lnum)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
return b:hi_indent.baseindent + s:ShiftWidth()
|
return b:hi_indent.baseindent + shiftwidth()
|
||||||
endfunc "}}}
|
endfunc "}}}
|
||||||
|
|
||||||
" When the "lnum" line ends in ">" find the line containing the matching "<".
|
" When the "lnum" line ends in ">" find the line containing the matching "<".
|
||||||
@@ -947,7 +938,7 @@ func! HtmlIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
let curtext = tolower(getline(v:lnum))
|
let curtext = tolower(getline(v:lnum))
|
||||||
let indentunit = s:ShiftWidth()
|
let indentunit = shiftwidth()
|
||||||
|
|
||||||
let b:hi_newstate = {}
|
let b:hi_newstate = {}
|
||||||
let b:hi_newstate.lnum = v:lnum
|
let b:hi_newstate.lnum = v:lnum
|
||||||
@@ -1030,9 +1021,9 @@ func! HtmlIndent()
|
|||||||
if col('.') > 2
|
if col('.') > 2
|
||||||
let swendtag = match(text, '^\s*</') >= 0
|
let swendtag = match(text, '^\s*</') >= 0
|
||||||
call s:CountITags(text[: col('.') - 2])
|
call s:CountITags(text[: col('.') - 2])
|
||||||
let indent += s:nextrel * s:ShiftWidth()
|
let indent += s:nextrel * shiftwidth()
|
||||||
if !swendtag
|
if !swendtag
|
||||||
let indent += s:curind * s:ShiftWidth()
|
let indent += s:curind * shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" IDL (Interactive Data Language) indent file.
|
" IDL (Interactive Data Language) indent file.
|
||||||
" Language: IDL (ft=idlang)
|
" Language: IDL (ft=idlang)
|
||||||
" Last change: 2012 May 18
|
" Last change: 2017 Jun 13
|
||||||
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
@@ -34,25 +34,25 @@ function GetIdlangIndent(lnum)
|
|||||||
" Indenting of continued lines.
|
" Indenting of continued lines.
|
||||||
if getline(pnum) =~ '\$\s*\(;.*\)\=$'
|
if getline(pnum) =~ '\$\s*\(;.*\)\=$'
|
||||||
if getline(pnum2) !~ '\$\s*\(;.*\)\=$'
|
if getline(pnum2) !~ '\$\s*\(;.*\)\=$'
|
||||||
let curind = curind+&sw
|
let curind = curind+shiftwidth()
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
if getline(pnum2) =~ '\$\s*\(;.*\)\=$'
|
if getline(pnum2) =~ '\$\s*\(;.*\)\=$'
|
||||||
let curind = curind-&sw
|
let curind = curind-shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Indenting blocks of statements.
|
" Indenting blocks of statements.
|
||||||
if getline(v:lnum) =~? '^\s*\(endif\|endelse\|endwhile\|endfor\|endrep\)\>'
|
if getline(v:lnum) =~? '^\s*\(endif\|endelse\|endwhile\|endfor\|endrep\)\>'
|
||||||
if getline(pnum) =~? 'begin\>'
|
if getline(pnum) =~? 'begin\>'
|
||||||
elseif indent(v:lnum) > curind-&sw
|
elseif indent(v:lnum) > curind-shiftwidth()
|
||||||
let curind = curind-&sw
|
let curind = curind-shiftwidth()
|
||||||
else
|
else
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
elseif getline(pnum) =~? 'begin\>'
|
elseif getline(pnum) =~? 'begin\>'
|
||||||
if indent(v:lnum) < curind+&sw
|
if indent(v:lnum) < curind+shiftwidth()
|
||||||
let curind = curind+&sw
|
let curind = curind+shiftwidth()
|
||||||
else
|
else
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -50,17 +50,17 @@ fun! GetIshdIndent(lnum)
|
|||||||
|
|
||||||
" Add
|
" Add
|
||||||
if previous_line =~ '^\s*\<\(function\|begin\|switch\|case\|default\|if.\{-}then\|else\|elseif\|while\|repeat\)\>'
|
if previous_line =~ '^\s*\<\(function\|begin\|switch\|case\|default\|if.\{-}then\|else\|elseif\|while\|repeat\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract
|
" Subtract
|
||||||
if this_line =~ '^\s*\<endswitch\>'
|
if this_line =~ '^\s*\<endswitch\>'
|
||||||
let ind = ind - 2 * &sw
|
let ind = ind - 2 * shiftwidth()
|
||||||
elseif this_line =~ '^\s*\<\(begin\|end\|endif\|endwhile\|else\|elseif\|until\)\>'
|
elseif this_line =~ '^\s*\<\(begin\|end\|endif\|endwhile\|else\|elseif\|until\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif this_line =~ '^\s*\<\(case\|default\)\>'
|
elseif this_line =~ '^\s*\<\(case\|default\)\>'
|
||||||
if previous_line !~ '^\s*\<switch\>'
|
if previous_line !~ '^\s*\<switch\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -236,9 +236,10 @@ function s:OneScope(lnum)
|
|||||||
\ s:save_pos('s:previous_token') != '.'
|
\ s:save_pos('s:previous_token') != '.'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" returns braceless levels started by 'i' and above lines * &sw. 'num' is the
|
" returns braceless levels started by 'i' and above lines * shiftwidth().
|
||||||
" lineNr which encloses the entire context, 'cont' if whether line 'i' + 1 is
|
" 'num' is the lineNr which encloses the entire context, 'cont' if whether
|
||||||
" a continued expression, which could have started in a braceless context
|
" line 'i' + 1 is a continued expression, which could have started in a
|
||||||
|
" braceless context
|
||||||
function s:iscontOne(i,num,cont)
|
function s:iscontOne(i,num,cont)
|
||||||
let [l:i, l:num, bL] = [a:i, a:num + !a:num, 0]
|
let [l:i, l:num, bL] = [a:i, a:num + !a:num, 0]
|
||||||
let pind = a:num ? indent(l:num) + s:W : 0
|
let pind = a:num ? indent(l:num) + s:W : 0
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: JSON
|
" Language: JSON
|
||||||
" Mantainer: Eli Parra <eli@elzr.com> https://github.com/elzr/vim-json
|
" Mantainer: Eli Parra <eli@elzr.com> https://github.com/elzr/vim-json
|
||||||
" Last Change: 2014 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
" https://github.com/jakar/vim-json/commit/20b650e22aa750c4ab6a66aa646bdd95d7cd548a#diff-e81fc111b2052e306d126bd9989f7b7c
|
" https://github.com/jakar/vim-json/commit/20b650e22aa750c4ab6a66aa646bdd95d7cd548a#diff-e81fc111b2052e306d126bd9989f7b7c
|
||||||
" Original Author: Rogerz Zhang <rogerz.zhang at gmail.com> http://github.com/rogerz/vim-json
|
" Original Author: Rogerz Zhang <rogerz.zhang at gmail.com> http://github.com/rogerz/vim-json
|
||||||
" Acknowledgement: Based off of vim-javascript maintained by Darrick Wiebe
|
" Acknowledgement: Based off of vim-javascript maintained by Darrick Wiebe
|
||||||
@@ -141,7 +141,7 @@ function GetJSONIndent()
|
|||||||
|
|
||||||
" If the previous line ended with a block opening, add a level of indent.
|
" If the previous line ended with a block opening, add a level of indent.
|
||||||
" if s:Match(lnum, s:block_regex)
|
" if s:Match(lnum, s:block_regex)
|
||||||
" return indent(lnum) + &sw
|
" return indent(lnum) + shiftwidth()
|
||||||
" endif
|
" endif
|
||||||
|
|
||||||
" If the previous line contained an opening bracket, and we are still in it,
|
" If the previous line contained an opening bracket, and we are still in it,
|
||||||
@@ -149,7 +149,7 @@ function GetJSONIndent()
|
|||||||
if line =~ '[[({]'
|
if line =~ '[[({]'
|
||||||
let counts = s:LineHasOpeningBrackets(lnum)
|
let counts = s:LineHasOpeningBrackets(lnum)
|
||||||
if counts[0] == '1' || counts[1] == '1' || counts[2] == '1'
|
if counts[0] == '1' || counts[1] == '1' || counts[2] == '1'
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
else
|
else
|
||||||
call cursor(v:lnum, vcol)
|
call cursor(v:lnum, vcol)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Liquid
|
" Language: Liquid
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2016 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists('b:did_indent')
|
if exists('b:did_indent')
|
||||||
finish
|
finish
|
||||||
@@ -54,7 +54,7 @@ function! GetLiquidIndent(...)
|
|||||||
let line = substitute(line,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
|
let line = substitute(line,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
|
||||||
let line .= matchstr(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+')
|
let line .= matchstr(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+')
|
||||||
let cline = substitute(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
|
let cline = substitute(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
|
||||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
let sw = shiftwidth()
|
||||||
let ind += sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
|
let ind += sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
|
||||||
let ind -= sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
|
let ind -= sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
|
||||||
let ind -= sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
|
let ind -= sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
|
||||||
|
|||||||
@@ -38,24 +38,24 @@ function! GetLogtalkIndent()
|
|||||||
endif
|
endif
|
||||||
" Check for entity opening directive on previous line
|
" Check for entity opening directive on previous line
|
||||||
if pline =~ '^\s*:-\s\(object\|protocol\|category\)\ze(.*,$'
|
if pline =~ '^\s*:-\s\(object\|protocol\|category\)\ze(.*,$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
" Check for clause head on previous line
|
" Check for clause head on previous line
|
||||||
elseif pline =~ ':-\s*\(%.*\)\?$'
|
elseif pline =~ ':-\s*\(%.*\)\?$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
" Check for entity closing directive on previous line
|
" Check for entity closing directive on previous line
|
||||||
elseif pline =~ '^\s*:-\send_\(object\|protocol\|category\)\.\(%.*\)\?$'
|
elseif pline =~ '^\s*:-\send_\(object\|protocol\|category\)\.\(%.*\)\?$'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
" Check for end of clause on previous line
|
" Check for end of clause on previous line
|
||||||
elseif pline =~ '\.\s*\(%.*\)\?$'
|
elseif pline =~ '\.\s*\(%.*\)\?$'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
" Check for opening conditional on previous line
|
" Check for opening conditional on previous line
|
||||||
if pline =~ '^\s*\([(;]\|->\)' && pline !~ '\.\s*\(%.*\)\?$' && pline !~ '^.*\([)][,]\s*\(%.*\)\?$\)'
|
if pline =~ '^\s*\([(;]\|->\)' && pline !~ '\.\s*\(%.*\)\?$' && pline !~ '^.*\([)][,]\s*\(%.*\)\?$\)'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
" Check for closing an unclosed paren, or middle ; or ->
|
" Check for closing an unclosed paren, or middle ; or ->
|
||||||
if line =~ '^\s*\([);]\|->\)'
|
if line =~ '^\s*\([);]\|->\)'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
return ind
|
return ind
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: Lua script
|
" Language: Lua script
|
||||||
" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
|
" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
|
||||||
" First Author: Max Ischenko <mfi 'at' ukr.net>
|
" First Author: Max Ischenko <mfi 'at' ukr.net>
|
||||||
" Last Change: 2016 Jan 10
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
" 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")
|
||||||
@@ -48,7 +48,7 @@ function! GetLuaIndent()
|
|||||||
" Add 'shiftwidth' if what we found previously is not in a comment and
|
" Add 'shiftwidth' if what we found previously is not in a comment and
|
||||||
" an "end" or "until" is not present on the same line.
|
" an "end" or "until" is not present on the same line.
|
||||||
if synIDattr(synID(prevlnum, midx + 1, 1), "name") != "luaComment" && prevline !~ '\<end\>\|\<until\>'
|
if synIDattr(synID(prevlnum, midx + 1, 1), "name") != "luaComment" && prevline !~ '\<end\>\|\<until\>'
|
||||||
let ind = ind + &shiftwidth
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ function! GetLuaIndent()
|
|||||||
" This is the part that requires 'indentkeys'.
|
" This is the part that requires 'indentkeys'.
|
||||||
let midx = match(getline(v:lnum), '^\s*\%(end\>\|else\>\|elseif\>\|until\>\|}\)')
|
let midx = match(getline(v:lnum), '^\s*\%(end\>\|else\>\|elseif\>\|until\>\|}\)')
|
||||||
if midx != -1 && synIDattr(synID(v:lnum, midx + 1, 1), "name") != "luaComment"
|
if midx != -1 && synIDattr(synID(v:lnum, midx + 1, 1), "name") != "luaComment"
|
||||||
let ind = ind - &shiftwidth
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -44,9 +44,9 @@ function GetMatlabIndent(lnum)
|
|||||||
" See if this line does not follow the line right after an openblock
|
" See if this line does not follow the line right after an openblock
|
||||||
if getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
|
if getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
|
||||||
" See if the user has already dedented
|
" See if the user has already dedented
|
||||||
elseif indent(v:lnum) > curind - &sw
|
elseif indent(v:lnum) > curind - shiftwidth()
|
||||||
" If not, recommend one dedent
|
" If not, recommend one dedent
|
||||||
let curind = curind - &sw
|
let curind = curind - shiftwidth()
|
||||||
else
|
else
|
||||||
" Otherwise, trust the user
|
" Otherwise, trust the user
|
||||||
return -1
|
return -1
|
||||||
@@ -56,9 +56,9 @@ function GetMatlabIndent(lnum)
|
|||||||
" If the previous line opened a block
|
" If the previous line opened a block
|
||||||
elseif getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
|
elseif getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
|
||||||
" See if the user has already indented
|
" See if the user has already indented
|
||||||
if indent(v:lnum) < curind + &sw
|
if indent(v:lnum) < curind + shiftwidth()
|
||||||
"If not, recommend indent
|
"If not, recommend indent
|
||||||
let curind = curind + &sw
|
let curind = curind + shiftwidth()
|
||||||
else
|
else
|
||||||
" Otherwise, trust the user
|
" Otherwise, trust the user
|
||||||
return -1
|
return -1
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ function GetMmaIndent()
|
|||||||
" also, indent only if this line if this line isn't starting a new
|
" also, indent only if this line if this line isn't starting a new
|
||||||
" block... TODO - fix this with indentkeys?
|
" block... TODO - fix this with indentkeys?
|
||||||
if getline(v:lnum-1) =~ '\\\@<!\%(\[[^\]]*\|([^)]*\|{[^}]*\)$' && getline(v:lnum) !~ '\s\+[\[({]'
|
if getline(v:lnum-1) =~ '\\\@<!\%(\[[^\]]*\|([^)]*\|{[^}]*\)$' && getline(v:lnum) !~ '\s\+[\[({]'
|
||||||
let ind = ind+&sw
|
let ind = ind+shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" if this line had unmatched closing block,
|
" if this line had unmatched closing block,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
" Mike Leary <leary@nwlink.com>
|
" Mike Leary <leary@nwlink.com>
|
||||||
" Markus Mottl <markus.mottl@gmail.com>
|
" Markus Mottl <markus.mottl@gmail.com>
|
||||||
" URL: http://www.ocaml.info/vim/indent/ocaml.vim
|
" URL: http://www.ocaml.info/vim/indent/ocaml.vim
|
||||||
" Last Change: 2013 Jun 29
|
" Last Change: 2017 Jun 13
|
||||||
" 2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
|
" 2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
|
||||||
" 2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
|
" 2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
|
||||||
" 2013 June - commented textwidth (Marc Weber)
|
" 2013 June - commented textwidth (Marc Weber)
|
||||||
@@ -101,7 +101,7 @@ function! GetOCamlIndent()
|
|||||||
|
|
||||||
" Return double 'shiftwidth' after lines matching:
|
" Return double 'shiftwidth' after lines matching:
|
||||||
if lline =~ '^\s*|.*->\s*$'
|
if lline =~ '^\s*|.*->\s*$'
|
||||||
return ind + &sw + &sw
|
return ind + 2 * shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let line = getline(v:lnum)
|
let line = getline(v:lnum)
|
||||||
@@ -172,7 +172,7 @@ function! GetOCamlIndent()
|
|||||||
" Indent if current line begins with 'and':
|
" Indent if current line begins with 'and':
|
||||||
elseif line =~ '^\s*and\>'
|
elseif line =~ '^\s*and\>'
|
||||||
if lline !~ '^\s*\(and\|let\|type\)\>\|\<end\s*$'
|
if lline !~ '^\s*\(and\|let\|type\)\>\|\<end\s*$'
|
||||||
return ind - &sw
|
return ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Indent if current line begins with 'with':
|
" Indent if current line begins with 'with':
|
||||||
@@ -199,14 +199,14 @@ function! GetOCamlIndent()
|
|||||||
" or 'method':
|
" or 'method':
|
||||||
elseif line =~ '^\s*\(constraint\|inherit\|initializer\|method\)\>'
|
elseif line =~ '^\s*\(constraint\|inherit\|initializer\|method\)\>'
|
||||||
if lline !~ s:obj
|
if lline !~ s:obj
|
||||||
return indent(search('\<\(object\|object\s*(.*)\)\s*$', 'bW')) + &sw
|
return indent(search('\<\(object\|object\s*(.*)\)\s*$', 'bW')) + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Add a 'shiftwidth' after lines ending with:
|
" Add a 'shiftwidth' after lines ending with:
|
||||||
if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|parser\|private\|sig\|struct\|then\|try\)\|\<object\s*(.*)\)\s*$'
|
if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|parser\|private\|sig\|struct\|then\|try\)\|\<object\s*(.*)\)\s*$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
|
|
||||||
" Back to normal indent after lines ending with ';;':
|
" Back to normal indent after lines ending with ';;':
|
||||||
elseif lline =~ ';;\s*$' && lline !~ '^\s*;;'
|
elseif lline =~ ';;\s*$' && lline !~ '^\s*;;'
|
||||||
@@ -263,7 +263,7 @@ function! GetOCamlIndent()
|
|||||||
|
|
||||||
" Subtract a 'shiftwidth' after lines matching 'match ... with parser':
|
" Subtract a 'shiftwidth' after lines matching 'match ... with parser':
|
||||||
if lline =~ '\<match\>.*\<with\>\s*\<parser\s*$'
|
if lline =~ '\<match\>.*\<with\>\s*\<parser\s*$'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ function GetOccamIndent()
|
|||||||
if line =~ s:FirstLevelIndent || (line =~ s:FirstLevelNonColonEndIndent && line !~ s:ColonEnd)
|
if line =~ s:FirstLevelIndent || (line =~ s:FirstLevelNonColonEndIndent && line !~ s:ColonEnd)
|
||||||
\ || (line !~ s:ColonStart && (prevline =~ s:SecondLevelIndent
|
\ || (line !~ s:ColonStart && (prevline =~ s:SecondLevelIndent
|
||||||
\ || (prevline =~ s:SecondLevelNonColonEndIndent && prevline !~ s:ColonEnd)))
|
\ || (prevline =~ s:SecondLevelNonColonEndIndent && prevline !~ s:ColonEnd)))
|
||||||
let curindent = curindent + &shiftwidth
|
let curindent = curindent + shiftwidth()
|
||||||
|
|
||||||
" Restore magic
|
" Restore magic
|
||||||
if !save_magic|setlocal nomagic|endif
|
if !save_magic|setlocal nomagic|endif
|
||||||
@@ -153,7 +153,7 @@ function GetOccamIndent()
|
|||||||
|
|
||||||
while !found
|
while !found
|
||||||
|
|
||||||
if indent(prevlinenum) == curindent - &shiftwidth
|
if indent(prevlinenum) == curindent - shiftwidth()
|
||||||
let found = 1
|
let found = 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -171,7 +171,7 @@ function GetOccamIndent()
|
|||||||
|
|
||||||
if prevlinenum > 0
|
if prevlinenum > 0
|
||||||
if getline(prevlinenum) =~ s:SecondLevelIndent
|
if getline(prevlinenum) =~ s:SecondLevelIndent
|
||||||
let curindent = curindent + &shiftwidth
|
let curindent = curindent + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: Pascal
|
" Language: Pascal
|
||||||
" Maintainer: Neil Carter <n.carter@swansea.ac.uk>
|
" Maintainer: Neil Carter <n.carter@swansea.ac.uk>
|
||||||
" Created: 2004 Jul 13
|
" Created: 2004 Jul 13
|
||||||
" Last Change: 2011 Apr 01
|
" Last Change: 2017 Jun 13
|
||||||
"
|
"
|
||||||
" This is version 2.0, a complete rewrite.
|
" This is version 2.0, a complete rewrite.
|
||||||
"
|
"
|
||||||
@@ -102,12 +102,12 @@ function! GetPascalIndent( line_num )
|
|||||||
|
|
||||||
" If the PREVIOUS LINE ended in these items, always indent
|
" If the PREVIOUS LINE ended in these items, always indent
|
||||||
if prev_codeline =~ '\<\(type\|const\|var\)$'
|
if prev_codeline =~ '\<\(type\|const\|var\)$'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if prev_codeline =~ '\<repeat$'
|
if prev_codeline =~ '\<repeat$'
|
||||||
if this_codeline !~ '^\s*until\>'
|
if this_codeline !~ '^\s*until\>'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
else
|
else
|
||||||
return indnt
|
return indnt
|
||||||
endif
|
endif
|
||||||
@@ -115,7 +115,7 @@ function! GetPascalIndent( line_num )
|
|||||||
|
|
||||||
if prev_codeline =~ '\<\(begin\|record\)$'
|
if prev_codeline =~ '\<\(begin\|record\)$'
|
||||||
if this_codeline !~ '^\s*end\>'
|
if this_codeline !~ '^\s*end\>'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
else
|
else
|
||||||
return indnt
|
return indnt
|
||||||
endif
|
endif
|
||||||
@@ -125,10 +125,10 @@ function! GetPascalIndent( line_num )
|
|||||||
" followed by "begin"
|
" followed by "begin"
|
||||||
if prev_codeline =~ '\<\(\|else\|then\|do\)$' || prev_codeline =~ ':$'
|
if prev_codeline =~ '\<\(\|else\|then\|do\)$' || prev_codeline =~ ':$'
|
||||||
if this_codeline !~ '^\s*begin\>'
|
if this_codeline !~ '^\s*begin\>'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
else
|
else
|
||||||
" If it does start with "begin" then keep the same indent
|
" If it does start with "begin" then keep the same indent
|
||||||
"return indnt + &shiftwidth
|
"return indnt + shiftwidth()
|
||||||
return indnt
|
return indnt
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -137,7 +137,7 @@ function! GetPascalIndent( line_num )
|
|||||||
" only the line before the current one. TODO: Get it working for
|
" only the line before the current one. TODO: Get it working for
|
||||||
" parameter lists longer than two lines.
|
" parameter lists longer than two lines.
|
||||||
if prev_codeline =~ '([^)]\+$'
|
if prev_codeline =~ '([^)]\+$'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -146,7 +146,7 @@ function! GetPascalIndent( line_num )
|
|||||||
" Lines starting with "else", but not following line ending with
|
" Lines starting with "else", but not following line ending with
|
||||||
" "end".
|
" "end".
|
||||||
if this_codeline =~ '^\s*else\>' && prev_codeline !~ '\<end$'
|
if this_codeline =~ '^\s*else\>' && prev_codeline !~ '\<end$'
|
||||||
return indnt - &shiftwidth
|
return indnt - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Lines after a single-statement branch/loop.
|
" Lines after a single-statement branch/loop.
|
||||||
@@ -160,16 +160,16 @@ function! GetPascalIndent( line_num )
|
|||||||
" additional unindentation.
|
" additional unindentation.
|
||||||
if this_codeline =~ '^\s*\(end;\|except\|finally\|\)$'
|
if this_codeline =~ '^\s*\(end;\|except\|finally\|\)$'
|
||||||
" Note that we don't return from here.
|
" Note that we don't return from here.
|
||||||
return indnt - &shiftwidth - &shiftwidth
|
return indnt - 2 * shiftwidth()
|
||||||
endif
|
endif
|
||||||
return indnt - &shiftwidth
|
return indnt - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Lines starting with "until" or "end". This rule must be overridden
|
" Lines starting with "until" or "end". This rule must be overridden
|
||||||
" by the one for "end" after a single-statement branch/loop. In
|
" by the one for "end" after a single-statement branch/loop. In
|
||||||
" other words that rule should come before this one.
|
" other words that rule should come before this one.
|
||||||
if this_codeline =~ '^\s*\(end\|until\)\>'
|
if this_codeline =~ '^\s*\(end\|until\)\>'
|
||||||
return indnt - &shiftwidth
|
return indnt - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -201,7 +201,7 @@ function! GetPascalIndent( line_num )
|
|||||||
|
|
||||||
" If the PREVIOUS LINE ended in these items, always indent.
|
" If the PREVIOUS LINE ended in these items, always indent.
|
||||||
if prev_codeline =~ '^\s*\(unit\|uses\|try\|except\|finally\|private\|protected\|public\|published\)$'
|
if prev_codeline =~ '^\s*\(unit\|uses\|try\|except\|finally\|private\|protected\|public\|published\)$'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" ???? Indent "procedure" and "functions" if they appear within an
|
" ???? Indent "procedure" and "functions" if they appear within an
|
||||||
@@ -212,11 +212,11 @@ function! GetPascalIndent( line_num )
|
|||||||
" UNINDENT ONCE
|
" UNINDENT ONCE
|
||||||
|
|
||||||
if this_codeline =~ '^\s*\(except\|finally\)$'
|
if this_codeline =~ '^\s*\(except\|finally\)$'
|
||||||
return indnt - &shiftwidth
|
return indnt - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if this_codeline =~ '^\s*\(private\|protected\|public\|published\)$'
|
if this_codeline =~ '^\s*\(private\|protected\|public\|published\)$'
|
||||||
return indnt - &shiftwidth
|
return indnt - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||||
" Homepage: http://github.com/vim-perl/vim-perl
|
" Homepage: http://github.com/vim-perl/vim-perl
|
||||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||||
" Last Change: 2013-07-24
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
" Suggestions and improvements by :
|
" Suggestions and improvements by :
|
||||||
" Aaron J. Sherman (use syntax for hints)
|
" Aaron J. Sherman (use syntax for hints)
|
||||||
@@ -138,9 +138,9 @@ function! GetPerlIndent()
|
|||||||
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
||||||
let brace = strpart(line, bracepos, 1)
|
let brace = strpart(line, bracepos, 1)
|
||||||
if brace == '(' || brace == '{' || brace == '['
|
if brace == '(' || brace == '{' || brace == '['
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
else
|
else
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
let bracepos = match(line, braceclass, bracepos + 1)
|
let bracepos = match(line, braceclass, bracepos + 1)
|
||||||
@@ -152,25 +152,25 @@ function! GetPerlIndent()
|
|||||||
\ || synid == "perlMatchStartEnd"
|
\ || synid == "perlMatchStartEnd"
|
||||||
\ || synid == "perlBraces"
|
\ || synid == "perlBraces"
|
||||||
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
if line =~ '[{[(]\s*\(#[^])}]*\)\=$'
|
if line =~ '[{[(]\s*\(#[^])}]*\)\=$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
if cline =~ '^\s*[])}]'
|
if cline =~ '^\s*[])}]'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Indent lines that begin with 'or' or 'and'
|
" Indent lines that begin with 'or' or 'and'
|
||||||
if cline =~ '^\s*\(or\|and\)\>'
|
if cline =~ '^\s*\(or\|and\)\>'
|
||||||
if line !~ '^\s*\(or\|and\)\>'
|
if line !~ '^\s*\(or\|and\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~ '^\s*\(or\|and\)\>'
|
elseif line =~ '^\s*\(or\|and\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||||
" Homepage: http://github.com/vim-perl/vim-perl
|
" Homepage: http://github.com/vim-perl/vim-perl
|
||||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||||
" Last Change: 2013-07-21
|
" Last Change: 2017 Jun 13
|
||||||
" Contributors: Andy Lester <andy@petdance.com>
|
" Contributors: Andy Lester <andy@petdance.com>
|
||||||
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
|
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
|
||||||
"
|
"
|
||||||
@@ -107,19 +107,19 @@ function! GetPerl6Indent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if line =~ '[<«\[{(]\s*\(#[^)}\]»>]*\)\=$'
|
if line =~ '[<«\[{(]\s*\(#[^)}\]»>]*\)\=$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
if cline =~ '^\s*[)}\]»>]'
|
if cline =~ '^\s*[)}\]»>]'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Indent lines that begin with 'or' or 'and'
|
" Indent lines that begin with 'or' or 'and'
|
||||||
if cline =~ '^\s*\(or\|and\)\>'
|
if cline =~ '^\s*\(or\|and\)\>'
|
||||||
if line !~ '^\s*\(or\|and\)\>'
|
if line !~ '^\s*\(or\|and\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~ '^\s*\(or\|and\)\>'
|
elseif line =~ '^\s*\(or\|and\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
|
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
|
||||||
" URL: http://www.2072productions.com/vim/indent/php.vim
|
" URL: http://www.2072productions.com/vim/indent/php.vim
|
||||||
" Home: https://github.com/2072/PHP-Indenting-for-VIm
|
" Home: https://github.com/2072/PHP-Indenting-for-VIm
|
||||||
" Last Change: 2017 March 12th
|
" Last Change: 2017 Jun 13
|
||||||
" Version: 1.62
|
" Version: 1.62
|
||||||
"
|
"
|
||||||
"
|
"
|
||||||
@@ -50,25 +50,15 @@ let b:did_indent = 1
|
|||||||
|
|
||||||
let g:php_sync_method = 0
|
let g:php_sync_method = 0
|
||||||
|
|
||||||
if exists('*shiftwidth')
|
|
||||||
function! s:sw()
|
|
||||||
return shiftwidth()
|
|
||||||
endfunction
|
|
||||||
else
|
|
||||||
function! s:sw()
|
|
||||||
return &shiftwidth
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
if exists("PHP_default_indenting")
|
if exists("PHP_default_indenting")
|
||||||
let b:PHP_default_indenting = PHP_default_indenting * s:sw()
|
let b:PHP_default_indenting = PHP_default_indenting * shiftwidth()
|
||||||
else
|
else
|
||||||
let b:PHP_default_indenting = 0
|
let b:PHP_default_indenting = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists("PHP_outdentSLComments")
|
if exists("PHP_outdentSLComments")
|
||||||
let b:PHP_outdentSLComments = PHP_outdentSLComments * s:sw()
|
let b:PHP_outdentSLComments = PHP_outdentSLComments * shiftwidth()
|
||||||
else
|
else
|
||||||
let b:PHP_outdentSLComments = 0
|
let b:PHP_outdentSLComments = 0
|
||||||
endif
|
endif
|
||||||
@@ -357,7 +347,7 @@ function! FindTheSwitchIndent (lnum) " {{{
|
|||||||
let test = GetLastRealCodeLNum(a:lnum - 1)
|
let test = GetLastRealCodeLNum(a:lnum - 1)
|
||||||
|
|
||||||
if test <= 1
|
if test <= 1
|
||||||
return indent(1) - s:sw() * b:PHP_vintage_case_default_indent
|
return indent(1) - shiftwidth() * b:PHP_vintage_case_default_indent
|
||||||
end
|
end
|
||||||
|
|
||||||
while getline(test) =~ '^\s*}' && test > 1
|
while getline(test) =~ '^\s*}' && test > 1
|
||||||
@@ -371,7 +361,7 @@ function! FindTheSwitchIndent (lnum) " {{{
|
|||||||
if getline(test) =~# '^\s*switch\>'
|
if getline(test) =~# '^\s*switch\>'
|
||||||
return indent(test)
|
return indent(test)
|
||||||
elseif getline(test) =~# s:defaultORcase
|
elseif getline(test) =~# s:defaultORcase
|
||||||
return indent(test) - s:sw() * b:PHP_vintage_case_default_indent
|
return indent(test) - shiftwidth() * b:PHP_vintage_case_default_indent
|
||||||
else
|
else
|
||||||
return FindTheSwitchIndent(test)
|
return FindTheSwitchIndent(test)
|
||||||
endif
|
endif
|
||||||
@@ -444,7 +434,7 @@ function! GetPhpIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if b:PHP_default_indenting
|
if b:PHP_default_indenting
|
||||||
let b:PHP_default_indenting = g:PHP_default_indenting * s:sw()
|
let b:PHP_default_indenting = g:PHP_default_indenting * shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let cline = getline(v:lnum)
|
let cline = getline(v:lnum)
|
||||||
@@ -701,7 +691,7 @@ function! GetPhpIndent()
|
|||||||
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
|
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
|
||||||
return indent(FindTheIfOfAnElse(v:lnum, 1))
|
return indent(FindTheIfOfAnElse(v:lnum, 1))
|
||||||
elseif cline =~# s:defaultORcase
|
elseif cline =~# s:defaultORcase
|
||||||
return FindTheSwitchIndent(v:lnum) + s:sw() * b:PHP_vintage_case_default_indent
|
return FindTheSwitchIndent(v:lnum) + shiftwidth() * b:PHP_vintage_case_default_indent
|
||||||
elseif cline =~ '^\s*)\=\s*{'
|
elseif cline =~ '^\s*)\=\s*{'
|
||||||
let previous_line = last_line
|
let previous_line = last_line
|
||||||
let last_line_num = lnum
|
let last_line_num = lnum
|
||||||
@@ -713,7 +703,7 @@ function! GetPhpIndent()
|
|||||||
let ind = indent(last_line_num)
|
let ind = indent(last_line_num)
|
||||||
|
|
||||||
if b:PHP_BracesAtCodeLevel
|
if b:PHP_BracesAtCodeLevel
|
||||||
let ind = ind + s:sw()
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
@@ -724,7 +714,7 @@ function! GetPhpIndent()
|
|||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
elseif last_line =~# unstated && cline !~ '^\s*);\='.endline
|
elseif last_line =~# unstated && cline !~ '^\s*);\='.endline
|
||||||
let ind = ind + s:sw() " we indent one level further when the preceding line is not stated
|
let ind = ind + shiftwidth() " we indent one level further when the preceding line is not stated
|
||||||
return ind + addSpecial
|
return ind + addSpecial
|
||||||
|
|
||||||
elseif (ind != b:PHP_default_indenting || last_line =~ '^[)\]]' ) && last_line =~ terminated
|
elseif (ind != b:PHP_default_indenting || last_line =~ '^[)\]]' ) && last_line =~ terminated
|
||||||
@@ -823,7 +813,7 @@ function! GetPhpIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !dontIndent && (!b:PHP_BracesAtCodeLevel || last_line !~# '^\s*{')
|
if !dontIndent && (!b:PHP_BracesAtCodeLevel || last_line !~# '^\s*{')
|
||||||
let ind = ind + s:sw()
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1
|
if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1
|
||||||
@@ -841,17 +831,17 @@ function! GetPhpIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
elseif last_line =~ '^\s*'.s:blockstart
|
elseif last_line =~ '^\s*'.s:blockstart
|
||||||
let ind = ind + s:sw()
|
let ind = ind + shiftwidth()
|
||||||
|
|
||||||
|
|
||||||
elseif AntepenultimateLine =~ '{'.endline && AntepenultimateLine !~? '^\s*use\>' || AntepenultimateLine =~ terminated || AntepenultimateLine =~# s:defaultORcase
|
elseif AntepenultimateLine =~ '{'.endline && AntepenultimateLine !~? '^\s*use\>' || AntepenultimateLine =~ terminated || AntepenultimateLine =~# s:defaultORcase
|
||||||
let ind = ind + s:sw()
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if cline =~ '^\s*[)\]];\='
|
if cline =~ '^\s*[)\]];\='
|
||||||
let ind = ind - s:sw()
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let b:PHP_CurrentIndentLevel = ind
|
let b:PHP_CurrentIndentLevel = ind
|
||||||
|
|||||||
@@ -41,16 +41,16 @@ function! PostscrIndentGet(lnum)
|
|||||||
|
|
||||||
" Indent for dicts, arrays, and saves with possible trailing comment
|
" Indent for dicts, arrays, and saves with possible trailing comment
|
||||||
if pline =~ '\(begin\|<<\|g\=save\|{\|[\)\s*\(%.*\)\=$'
|
if pline =~ '\(begin\|<<\|g\=save\|{\|[\)\s*\(%.*\)\=$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Remove indent for popped dicts, and restores.
|
" Remove indent for popped dicts, and restores.
|
||||||
if pline =~ '\(end\|g\=restore\)\s*$'
|
if pline =~ '\(end\|g\=restore\)\s*$'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
|
|
||||||
" Else handle immediate dedents of dicts, restores, and arrays.
|
" Else handle immediate dedents of dicts, restores, and arrays.
|
||||||
elseif getline(a:lnum) =~ '\(end\|>>\|g\=restore\|}\|]\)'
|
elseif getline(a:lnum) =~ '\(end\|>>\|g\=restore\|}\|]\)'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
|
|
||||||
" Else handle DSC comments - always start of line.
|
" Else handle DSC comments - always start of line.
|
||||||
elseif getline(a:lnum) =~ '^\s*%%'
|
elseif getline(a:lnum) =~ '^\s*%%'
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: PoV-Ray Scene Description Language
|
" Language: PoV-Ray Scene Description Language
|
||||||
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
|
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
|
||||||
" Last Change: 2002-10-20
|
" Last Change: 2017 Jun 13
|
||||||
" URI: http://trific.ath.cx/Ftp/vim/indent/pov.vim
|
" URI: http://trific.ath.cx/Ftp/vim/indent/pov.vim
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
@@ -75,9 +75,9 @@ function GetPoVRayIndent()
|
|||||||
" opening line.
|
" opening line.
|
||||||
let cur = s:MatchCount(v:lnum, '^\s*\%(#\s*\%(end\|else\)\>\|[]})]\)')
|
let cur = s:MatchCount(v:lnum, '^\s*\%(#\s*\%(end\|else\)\>\|[]})]\)')
|
||||||
if cur > 0
|
if cur > 0
|
||||||
let final = plind + (chg - cur) * &sw
|
let final = plind + (chg - cur) * shiftwidth()
|
||||||
else
|
else
|
||||||
let final = plind + chg * &sw
|
let final = plind + chg * shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return final < 0 ? 0 : final
|
return final < 0 ? 0 : final
|
||||||
|
|||||||
@@ -41,18 +41,18 @@ function! GetPrologIndent()
|
|||||||
endif
|
endif
|
||||||
" Check for clause head on previous line
|
" Check for clause head on previous line
|
||||||
if pline =~ ':-\s*\(%.*\)\?$'
|
if pline =~ ':-\s*\(%.*\)\?$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
" Check for end of clause on previous line
|
" Check for end of clause on previous line
|
||||||
elseif pline =~ '\.\s*\(%.*\)\?$'
|
elseif pline =~ '\.\s*\(%.*\)\?$'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
" Check for opening conditional on previous line
|
" Check for opening conditional on previous line
|
||||||
if pline =~ '^\s*\([(;]\|->\)'
|
if pline =~ '^\s*\([(;]\|->\)'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
" Check for closing an unclosed paren, or middle ; or ->
|
" Check for closing an unclosed paren, or middle ; or ->
|
||||||
if line =~ '^\s*\([);]\|->\)'
|
if line =~ '^\s*\([);]\|->\)'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
return ind
|
return ind
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: RPL/2
|
" Language: RPL/2
|
||||||
" Version: 0.2
|
" Version: 0.2
|
||||||
" Last Change: 2005 Mar 28
|
" Last Change: 2017 Jun 13
|
||||||
" Maintainer: BERTRAND Jo<4A>l <rpl2@free.fr>
|
" Maintainer: BERTRAND Jo<4A>l <rpl2@free.fr>
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
@@ -32,16 +32,16 @@ function RplGetIndent(lnum)
|
|||||||
if prevstat =~? '\<\(if\|iferr\|do\|while\)\>' && prevstat =~? '\<end\>'
|
if prevstat =~? '\<\(if\|iferr\|do\|while\)\>' && prevstat =~? '\<end\>'
|
||||||
elseif prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)' && prevstat =~? '\s\+>>\($\|\s\+\)'
|
elseif prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)' && prevstat =~? '\s\+>>\($\|\s\+\)'
|
||||||
elseif prevstat =~? '\<\(if\|iferr\|then\|else\|elseif\|select\|case\|do\|until\|while\|repeat\|for\|start\|default\)\>' || prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)'
|
elseif prevstat =~? '\<\(if\|iferr\|then\|else\|elseif\|select\|case\|do\|until\|while\|repeat\|for\|start\|default\)\>' || prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a shiftwidth from then, else, elseif, end, until, repeat, next,
|
" Subtract a shiftwidth from then, else, elseif, end, until, repeat, next,
|
||||||
" step
|
" step
|
||||||
let line = getline(v:lnum)
|
let line = getline(v:lnum)
|
||||||
if line =~? '^\s*\(then\|else\|elseif\|until\|repeat\|next\|step\|default\|end\)\>'
|
if line =~? '^\s*\(then\|else\|elseif\|until\|repeat\|next\|step\|default\|end\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif line =~? '^\s*>>\($\|\s\+\)'
|
elseif line =~? '^\s*>>\($\|\s\+\)'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -404,11 +404,7 @@ function GetRubyIndent(...)
|
|||||||
" ----------
|
" ----------
|
||||||
|
|
||||||
" The value of a single shift-width
|
" The value of a single shift-width
|
||||||
if exists('*shiftwidth')
|
|
||||||
let sw = shiftwidth()
|
let sw = shiftwidth()
|
||||||
else
|
|
||||||
let sw = &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
" For the current line, use the first argument if given, else v:lnum
|
" For the current line, use the first argument if given, else v:lnum
|
||||||
let clnum = a:0 ? a:1 : v:lnum
|
let clnum = a:0 ? a:1 : v:lnum
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Rust
|
" Language: Rust
|
||||||
" Author: Chris Morgan <me@chrismorgan.info>
|
" Author: Chris Morgan <me@chrismorgan.info>
|
||||||
" Last Change: 2017 Mar 21
|
" Last Change: 2017 Jun 13
|
||||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
@@ -199,7 +199,7 @@ function GetRustIndent(lnum)
|
|||||||
" It's the closing line, dedent it
|
" It's the closing line, dedent it
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return &shiftwidth
|
return shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Sass
|
" Language: Sass
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2016 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
@@ -29,7 +29,7 @@ function! GetSassIndent()
|
|||||||
let indent = indent(lnum)
|
let indent = indent(lnum)
|
||||||
let cindent = indent(v:lnum)
|
let cindent = indent(v:lnum)
|
||||||
if line !~ s:property && line !~ s:extend && cline =~ s:property
|
if line !~ s:property && line !~ s:extend && cline =~ s:property
|
||||||
return indent + (exists('*shiftwidth') ? shiftwidth() : &sw)
|
return indent + shiftwidth()
|
||||||
else
|
else
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -46,17 +46,17 @@ function! GetSDLIndent()
|
|||||||
if (getline(lnum) =~? '^\s*\(start\|state\|system\|package\|connection\|channel\|alternative\|macro\|operator\|newtype\|select\|substructure\|decision\|generator\|refinement\|service\|method\|exceptionhandler\|asntype\|syntype\|value\|(.*):\|\(priority\s\+\)\=input\|provided\)'
|
if (getline(lnum) =~? '^\s*\(start\|state\|system\|package\|connection\|channel\|alternative\|macro\|operator\|newtype\|select\|substructure\|decision\|generator\|refinement\|service\|method\|exceptionhandler\|asntype\|syntype\|value\|(.*):\|\(priority\s\+\)\=input\|provided\)'
|
||||||
\ || getline(lnum) =~? virtuality . '\(process\|procedure\|block\|object\)')
|
\ || getline(lnum) =~? virtuality . '\(process\|procedure\|block\|object\)')
|
||||||
\ && getline(lnum) !~? 'end[[:alpha:]]\+;$'
|
\ && getline(lnum) !~? 'end[[:alpha:]]\+;$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a 'shiftwidth' after states
|
" Subtract a 'shiftwidth' after states
|
||||||
if getline(lnum) =~? '^\s*\(stop\|return\>\|nextstate\)'
|
if getline(lnum) =~? '^\s*\(stop\|return\>\|nextstate\)'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a 'shiftwidth' on on end (uncompleted line)
|
" Subtract a 'shiftwidth' on on end (uncompleted line)
|
||||||
if getline(v:lnum) =~? '^\s*end\>'
|
if getline(v:lnum) =~? '^\s*end\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Put each alternatives where the corresponding decision was
|
" Put each alternatives where the corresponding decision was
|
||||||
|
|||||||
@@ -115,9 +115,9 @@ function! GetSMLIndent()
|
|||||||
|
|
||||||
" Return double 'shiftwidth' after lines matching:
|
" Return double 'shiftwidth' after lines matching:
|
||||||
if lline =~ '^\s*|.*=>\s*$'
|
if lline =~ '^\s*|.*=>\s*$'
|
||||||
return ind + &sw + &sw
|
return ind + 2 *shiftwidth()
|
||||||
elseif lline =~ '^\s*val\>.*=\s*$'
|
elseif lline =~ '^\s*val\>.*=\s*$'
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let line = getline(v:lnum)
|
let line = getline(v:lnum)
|
||||||
@@ -157,7 +157,7 @@ function! GetSMLIndent()
|
|||||||
if lastModule == -1
|
if lastModule == -1
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return lastModule + &sw
|
return lastModule + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Indent lines starting with '|' from matching 'case', 'handle'
|
" Indent lines starting with '|' from matching 'case', 'handle'
|
||||||
@@ -172,7 +172,7 @@ function! GetSMLIndent()
|
|||||||
if switchLine =~ '\<case\>'
|
if switchLine =~ '\<case\>'
|
||||||
return col(".") + 2
|
return col(".") + 2
|
||||||
elseif switchLine =~ '\<handle\>'
|
elseif switchLine =~ '\<handle\>'
|
||||||
return switchLineIndent + &sw
|
return switchLineIndent + shiftwidth()
|
||||||
elseif switchLine =~ '\<datatype\>'
|
elseif switchLine =~ '\<datatype\>'
|
||||||
call search('=')
|
call search('=')
|
||||||
return col(".") - 1
|
return col(".") - 1
|
||||||
@@ -184,7 +184,7 @@ function! GetSMLIndent()
|
|||||||
" Indent if last line ends with 'sig', 'struct', 'let', 'then', 'else',
|
" Indent if last line ends with 'sig', 'struct', 'let', 'then', 'else',
|
||||||
" 'in'
|
" 'in'
|
||||||
elseif lline =~ '\<\(sig\|struct\|let\|in\|then\|else\)\s*$'
|
elseif lline =~ '\<\(sig\|struct\|let\|in\|then\|else\)\s*$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
|
|
||||||
" Indent if last line ends with 'of', align from 'case'
|
" Indent if last line ends with 'of', align from 'case'
|
||||||
elseif lline =~ '\<\(of\)\s*$'
|
elseif lline =~ '\<\(of\)\s*$'
|
||||||
@@ -199,14 +199,14 @@ function! GetSMLIndent()
|
|||||||
|
|
||||||
" Indent if last line starts with 'fun', 'case', 'fn'
|
" Indent if last line starts with 'fun', 'case', 'fn'
|
||||||
elseif lline =~ '^\s*\(fun\|fn\|case\)\>'
|
elseif lline =~ '^\s*\(fun\|fn\|case\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Don't indent 'let' if last line started with 'fun', 'fn'
|
" Don't indent 'let' if last line started with 'fun', 'fn'
|
||||||
if line =~ '^\s*let\>'
|
if line =~ '^\s*let\>'
|
||||||
if lline =~ '^\s*\(fun\|fn\)'
|
if lline =~ '^\s*\(fun\|fn\)'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: SQL
|
" Language: SQL
|
||||||
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||||
" Last Change: 2012 Dec 06
|
" Last Change: 2017 Jun 13
|
||||||
" Version: 3.0
|
" Version: 3.0
|
||||||
" Download: http://vim.sourceforge.net/script.php?script_id=495
|
" Download: http://vim.sourceforge.net/script.php?script_id=495
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ function! s:CheckToIgnoreRightParan( prev_lnum, num_levels )
|
|||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
" Fallback - just move back one
|
" Fallback - just move back one
|
||||||
" return a:prev_indent - &sw
|
" return a:prev_indent - shiftwidth()
|
||||||
return ignore_paran
|
return ignore_paran
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -166,7 +166,7 @@ function! s:GetStmtStarterIndent( keyword, curr_lnum )
|
|||||||
let lnum = a:curr_lnum
|
let lnum = a:curr_lnum
|
||||||
|
|
||||||
" Default - reduce indent by 1
|
" Default - reduce indent by 1
|
||||||
let ind = indent(a:curr_lnum) - &sw
|
let ind = indent(a:curr_lnum) - shiftwidth()
|
||||||
|
|
||||||
if a:keyword =~? 'end'
|
if a:keyword =~? 'end'
|
||||||
exec 'normal! ^'
|
exec 'normal! ^'
|
||||||
@@ -230,7 +230,7 @@ function! s:ModuloIndent(ind)
|
|||||||
let ind = a:ind
|
let ind = a:ind
|
||||||
|
|
||||||
if ind > 0
|
if ind > 0
|
||||||
let modulo = ind % &shiftwidth
|
let modulo = ind % shiftwidth()
|
||||||
|
|
||||||
if modulo > 0
|
if modulo > 0
|
||||||
let ind = ind - modulo
|
let ind = ind - modulo
|
||||||
@@ -291,7 +291,7 @@ function! GetSQLIndent()
|
|||||||
" where END IF, END, should decrease the indent.
|
" where END IF, END, should decrease the indent.
|
||||||
if prevline =~? s:SQLBlockStart
|
if prevline =~? s:SQLBlockStart
|
||||||
" Move indent in
|
" Move indent in
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
" echom 'prevl - SQLBlockStart - indent ' . ind . ' line: ' . prevline
|
" echom 'prevl - SQLBlockStart - indent ' . ind . ' line: ' . prevline
|
||||||
elseif prevline =~ '[()]'
|
elseif prevline =~ '[()]'
|
||||||
if prevline =~ '('
|
if prevline =~ '('
|
||||||
@@ -308,7 +308,7 @@ function! GetSQLIndent()
|
|||||||
if num_unmatched_left > 0
|
if num_unmatched_left > 0
|
||||||
" There is a open left paranethesis
|
" There is a open left paranethesis
|
||||||
" increase indent
|
" increase indent
|
||||||
let ind = ind + ( &sw * num_unmatched_left )
|
let ind = ind + ( shiftwidth() * num_unmatched_left )
|
||||||
elseif num_unmatched_right > 0
|
elseif num_unmatched_right > 0
|
||||||
" if it is an unbalanced paranethesis only unindent if
|
" if it is an unbalanced paranethesis only unindent if
|
||||||
" it was part of a command (ie create table(..) )
|
" it was part of a command (ie create table(..) )
|
||||||
@@ -323,7 +323,7 @@ function! GetSQLIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if (num_unmatched_right - ignore) > 0
|
if (num_unmatched_right - ignore) > 0
|
||||||
let ind = ind - ( &sw * (num_unmatched_right - ignore) )
|
let ind = ind - ( shiftwidth() * (num_unmatched_right - ignore) )
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
@@ -339,12 +339,12 @@ function! GetSQLIndent()
|
|||||||
if line =~? '^\s*els'
|
if line =~? '^\s*els'
|
||||||
" Any line when you type else will automatically back up one
|
" Any line when you type else will automatically back up one
|
||||||
" ident level (ie else, elseif, elsif)
|
" ident level (ie else, elseif, elsif)
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
" echom 'curr - else - indent ' . ind
|
" echom 'curr - else - indent ' . ind
|
||||||
elseif line =~? '^\s*end\>'
|
elseif line =~? '^\s*end\>'
|
||||||
let ind = s:GetStmtStarterIndent('end', v:lnum)
|
let ind = s:GetStmtStarterIndent('end', v:lnum)
|
||||||
" General case for end
|
" General case for end
|
||||||
" let ind = ind - &sw
|
" let ind = ind - shiftwidth()
|
||||||
" echom 'curr - end - indent ' . ind
|
" echom 'curr - end - indent ' . ind
|
||||||
elseif line =~? '^\s*when\>'
|
elseif line =~? '^\s*when\>'
|
||||||
let ind = s:GetStmtStarterIndent('when', v:lnum)
|
let ind = s:GetStmtStarterIndent('when', v:lnum)
|
||||||
@@ -352,7 +352,7 @@ function! GetSQLIndent()
|
|||||||
" clause, do not change the indent level, since these
|
" clause, do not change the indent level, since these
|
||||||
" statements do not have a corresponding END statement.
|
" statements do not have a corresponding END statement.
|
||||||
" if stmt_starter =~? 'case'
|
" if stmt_starter =~? 'case'
|
||||||
" let ind = ind - &sw
|
" let ind = ind - shiftwidth()
|
||||||
" endif
|
" endif
|
||||||
" elseif line =~ '^\s*)\s*;\?\s*$'
|
" elseif line =~ '^\s*)\s*;\?\s*$'
|
||||||
" elseif line =~ '^\s*)'
|
" elseif line =~ '^\s*)'
|
||||||
@@ -371,14 +371,14 @@ function! GetSQLIndent()
|
|||||||
" let num_unmatched_right = s:CountUnbalancedParan( line, ')' )
|
" let num_unmatched_right = s:CountUnbalancedParan( line, ')' )
|
||||||
" if num_unmatched_right > 0
|
" if num_unmatched_right > 0
|
||||||
" elseif strpart( line, strlen(line)-1, 1 ) =~ ')'
|
" elseif strpart( line, strlen(line)-1, 1 ) =~ ')'
|
||||||
" let ind = ind - &sw
|
" let ind = ind - shiftwidth()
|
||||||
if line =~ '^\s*)'
|
if line =~ '^\s*)'
|
||||||
" let ignore = ignore + 1
|
" let ignore = ignore + 1
|
||||||
" echom 'curr - begins ) unbalanced ignore: ' . ignore
|
" echom 'curr - begins ) unbalanced ignore: ' . ignore
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if (num_unmatched_right - ignore) > 0
|
if (num_unmatched_right - ignore) > 0
|
||||||
let ind = ind - ( &sw * (num_unmatched_right - ignore) )
|
let ind = ind - ( shiftwidth() * (num_unmatched_right - ignore) )
|
||||||
endif
|
endif
|
||||||
" endif
|
" endif
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ function SystemVerilogIndent()
|
|||||||
if exists('b:systemverilog_indent_width')
|
if exists('b:systemverilog_indent_width')
|
||||||
let offset = b:systemverilog_indent_width
|
let offset = b:systemverilog_indent_width
|
||||||
else
|
else
|
||||||
let offset = &sw
|
let offset = shiftwidth()
|
||||||
endif
|
endif
|
||||||
if exists('b:systemverilog_indent_modules')
|
if exists('b:systemverilog_indent_modules')
|
||||||
let indent_modules = offset
|
let indent_modules = offset
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Based on Tera Term Version 4.92
|
" Based on Tera Term Version 4.92
|
||||||
" Maintainer: Ken Takata
|
" Maintainer: Ken Takata
|
||||||
" URL: https://github.com/k-takata/vim-teraterm
|
" URL: https://github.com/k-takata/vim-teraterm
|
||||||
" Last Change: 2016 Aug 17
|
" Last Change: 2017 Jun 13
|
||||||
" Filenames: *.ttl
|
" Filenames: *.ttl
|
||||||
" License: VIM License
|
" License: VIM License
|
||||||
|
|
||||||
@@ -22,16 +22,6 @@ if exists("*GetTeraTermIndent")
|
|||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" The shiftwidth() function is relatively new.
|
|
||||||
" Don't require it to exist.
|
|
||||||
if exists('*shiftwidth')
|
|
||||||
let s:sw = function('shiftwidth')
|
|
||||||
else
|
|
||||||
function s:sw() abort
|
|
||||||
return &shiftwidth
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! GetTeraTermIndent(lnum)
|
function! GetTeraTermIndent(lnum)
|
||||||
let l:prevlnum = prevnonblank(a:lnum-1)
|
let l:prevlnum = prevnonblank(a:lnum-1)
|
||||||
if l:prevlnum == 0
|
if l:prevlnum == 0
|
||||||
@@ -48,15 +38,15 @@ function! GetTeraTermIndent(lnum)
|
|||||||
|
|
||||||
if l:prevl =~ '^\s*if\>.*\<then\>'
|
if l:prevl =~ '^\s*if\>.*\<then\>'
|
||||||
" previous line opened a block
|
" previous line opened a block
|
||||||
let l:ind += s:sw()
|
let l:ind += shiftwidth()
|
||||||
endif
|
endif
|
||||||
if l:prevl =~ '^\s*\%(elseif\|else\|do\|until\|while\|for\)\>'
|
if l:prevl =~ '^\s*\%(elseif\|else\|do\|until\|while\|for\)\>'
|
||||||
" previous line opened a block
|
" previous line opened a block
|
||||||
let l:ind += s:sw()
|
let l:ind += shiftwidth()
|
||||||
endif
|
endif
|
||||||
if l:thisl =~ '^\s*\%(elseif\|else\|endif\|enduntil\|endwhile\|loop\|next\)\>'
|
if l:thisl =~ '^\s*\%(elseif\|else\|endif\|enduntil\|endwhile\|loop\|next\)\>'
|
||||||
" this line closed a block
|
" this line closed a block
|
||||||
let l:ind -= s:sw()
|
let l:ind -= shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return l:ind
|
return l:ind
|
||||||
|
|||||||
@@ -215,14 +215,14 @@ function! GetTeXIndent() " {{{
|
|||||||
" ZYC modification : \end after \begin won't cause wrong indent anymore
|
" ZYC modification : \end after \begin won't cause wrong indent anymore
|
||||||
if line =~ '\\begin{.*}'
|
if line =~ '\\begin{.*}'
|
||||||
if line !~ g:tex_noindent_env
|
if line !~ g:tex_noindent_env
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
let stay = 0
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if g:tex_indent_items
|
if g:tex_indent_items
|
||||||
" Add another sw for item-environments
|
" Add another sw for item-environments
|
||||||
if line =~ g:tex_itemize_env
|
if line =~ g:tex_itemize_env
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
let stay = 0
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -241,23 +241,23 @@ function! GetTeXIndent() " {{{
|
|||||||
if g:tex_indent_items
|
if g:tex_indent_items
|
||||||
" Remove another sw for item-environments
|
" Remove another sw for item-environments
|
||||||
if cline =~ g:tex_itemize_env
|
if cline =~ g:tex_itemize_env
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
let stay = 0
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
let stay = 0
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if g:tex_indent_brace
|
if g:tex_indent_brace
|
||||||
if line =~ '[[{]$'
|
if line =~ '[[{]$'
|
||||||
let ind += &sw
|
let ind += shiftwidth()
|
||||||
let stay = 0
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if cline =~ '^\s*\\\?[\]}]' && s:CheckPairedIsLastCharacter(v:lnum, indent(v:lnum))
|
if cline =~ '^\s*\\\?[\]}]' && s:CheckPairedIsLastCharacter(v:lnum, indent(v:lnum))
|
||||||
let ind -= &sw
|
let ind -= shiftwidth()
|
||||||
let stay = 0
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -266,7 +266,7 @@ function! GetTeXIndent() " {{{
|
|||||||
let char = line[i]
|
let char = line[i]
|
||||||
if char == ']' || char == '}'
|
if char == ']' || char == '}'
|
||||||
if s:CheckPairedIsLastCharacter(lnum, i)
|
if s:CheckPairedIsLastCharacter(lnum, i)
|
||||||
let ind -= &sw
|
let ind -= shiftwidth()
|
||||||
let stay = 0
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -280,12 +280,12 @@ function! GetTeXIndent() " {{{
|
|||||||
if g:tex_indent_items
|
if g:tex_indent_items
|
||||||
" '\item' or '\bibitem' itself:
|
" '\item' or '\bibitem' itself:
|
||||||
if cline =~ g:tex_items
|
if cline =~ g:tex_items
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
let stay = 0
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
" lines following to '\item' are intented once again:
|
" lines following to '\item' are intented once again:
|
||||||
if line =~ g:tex_items
|
if line =~ g:tex_items
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
let stay = 0
|
let stay = 0
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -317,9 +317,9 @@ function! s:GetLastBeginIndentation(lnum) " {{{
|
|||||||
return indent(lnum)
|
return indent(lnum)
|
||||||
endif
|
endif
|
||||||
if line =~ g:tex_itemize_env
|
if line =~ g:tex_itemize_env
|
||||||
return indent(lnum) + 2 * &sw
|
return indent(lnum) + 2 * shiftwidth()
|
||||||
endif
|
endif
|
||||||
return indent(lnum) + &sw
|
return indent(lnum) + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
return -1
|
return -1
|
||||||
@@ -347,7 +347,7 @@ function! s:GetEndIndentation(lnum) " {{{
|
|||||||
let min_indent = min([min_indent, indent(lnum)])
|
let min_indent = min([min_indent, indent(lnum)])
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
return min_indent - &sw
|
return min_indent - shiftwidth()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Most of the code is from matchparen.vim
|
" Most of the code is from matchparen.vim
|
||||||
|
|||||||
@@ -25,11 +25,11 @@ function GetTildeIndent(lnum)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if getline(v:lnum) =~ '^\s*\~\(endif\|else\|elseif\|end\)\>'
|
if getline(v:lnum) =~ '^\s*\~\(endif\|else\|elseif\|end\)\>'
|
||||||
return indent(v:lnum) - &sw
|
return indent(v:lnum) - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if getline(plnum) =~ '^\s*\~\(if\|foreach\|foreach_row\|xml_loop\|file_loop\|file_write\|file_append\|imap_loopsections\|imap_index\|imap_list\|ldap_search\|post_loopall\|post_loop\|file_loop\|sql_loop_num\|sql_dbmsselect\|search\|sql_loop\|post\|for\|function_define\|silent\|while\|setvalbig\|mail_create\|systempipe\|mail_send\|dual\|elseif\|else\)\>'
|
if getline(plnum) =~ '^\s*\~\(if\|foreach\|foreach_row\|xml_loop\|file_loop\|file_write\|file_append\|imap_loopsections\|imap_index\|imap_list\|ldap_search\|post_loopall\|post_loop\|file_loop\|sql_loop_num\|sql_dbmsselect\|search\|sql_loop\|post\|for\|function_define\|silent\|while\|setvalbig\|mail_create\|systempipe\|mail_send\|dual\|elseif\|else\)\>'
|
||||||
return indent(plnum) + &sw
|
return indent(plnum) + shiftwidth()
|
||||||
else
|
else
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -49,26 +49,26 @@ fun! VbGetIndent(lnum)
|
|||||||
|
|
||||||
" Add
|
" Add
|
||||||
if previous_line =~? '^\s*\<\(begin\|\%(\%(private\|public\|friend\)\s\+\)\=\%(function\|sub\|property\)\|select\|case\|default\|if\|else\|elseif\|do\|for\|while\|enum\|with\)\>'
|
if previous_line =~? '^\s*\<\(begin\|\%(\%(private\|public\|friend\)\s\+\)\=\%(function\|sub\|property\)\|select\|case\|default\|if\|else\|elseif\|do\|for\|while\|enum\|with\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract
|
" Subtract
|
||||||
if this_line =~? '^\s*\<end\>\s\+\<select\>'
|
if this_line =~? '^\s*\<end\>\s\+\<select\>'
|
||||||
if previous_line !~? '^\s*\<select\>'
|
if previous_line !~? '^\s*\<select\>'
|
||||||
let ind = ind - 2 * &sw
|
let ind = ind - 2 * shiftwidth()
|
||||||
else
|
else
|
||||||
" this case is for an empty 'select' -- 'end select'
|
" this case is for an empty 'select' -- 'end select'
|
||||||
" (w/o any case statements) like:
|
" (w/o any case statements) like:
|
||||||
"
|
"
|
||||||
" select case readwrite
|
" select case readwrite
|
||||||
" end select
|
" end select
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif this_line =~? '^\s*\<\(end\|else\|elseif\|until\|loop\|next\|wend\)\>'
|
elseif this_line =~? '^\s*\<\(end\|else\|elseif\|until\|loop\|next\|wend\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif this_line =~? '^\s*\<\(case\|default\)\>'
|
elseif this_line =~? '^\s*\<\(case\|default\)\>'
|
||||||
if previous_line !~? '^\s*\<select\>'
|
if previous_line !~? '^\s*\<select\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: VHDL
|
" Language: VHDL
|
||||||
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
|
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
|
||||||
" Version: 1.60
|
" Version: 1.60
|
||||||
" Last Change: 2016 Feb 26
|
" Last Change: 2017 Jun 13
|
||||||
" URL: http://www.vim.org/scripts/script.php?script_id=1450
|
" URL: http://www.vim.org/scripts/script.php?script_id=1450
|
||||||
|
|
||||||
" only load this indent file when no other was loaded
|
" only load this indent file when no other was loaded
|
||||||
@@ -114,9 +114,9 @@ function GetVHDLindent()
|
|||||||
return ind2 + m
|
return ind2 + m
|
||||||
else
|
else
|
||||||
if g:vhdl_indent_genportmap
|
if g:vhdl_indent_genportmap
|
||||||
return ind2 + stridx(prevs_noi, '(') + &sw
|
return ind2 + stridx(prevs_noi, '(') + shiftwidth()
|
||||||
else
|
else
|
||||||
return ind2 + &sw
|
return ind2 + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -128,7 +128,7 @@ function GetVHDLindent()
|
|||||||
if g:vhdl_indent_rhsassign
|
if g:vhdl_indent_rhsassign
|
||||||
return ind2 + matchend(prevs_noi, '<=\s*\ze.')
|
return ind2 + matchend(prevs_noi, '<=\s*\ze.')
|
||||||
else
|
else
|
||||||
return ind2 + &sw
|
return ind2 + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -218,12 +218,12 @@ function GetVHDLindent()
|
|||||||
let ps = getline(pn)
|
let ps = getline(pn)
|
||||||
|
|
||||||
if (ps =~? s:NC.'\<begin\>')
|
if (ps =~? s:NC.'\<begin\>')
|
||||||
return indent(pn) - &sw
|
return indent(pn) - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
if (pn == 0)
|
if (pn == 0)
|
||||||
return ind - &sw
|
return ind - shiftwidth()
|
||||||
else
|
else
|
||||||
return indent(pn)
|
return indent(pn)
|
||||||
endif
|
endif
|
||||||
@@ -237,7 +237,7 @@ function GetVHDLindent()
|
|||||||
" keyword: "type"
|
" keyword: "type"
|
||||||
let s3 = s:NC.s:NE.'\<type\>'
|
let s3 = s:NC.s:NE.'\<type\>'
|
||||||
if curs !~? s3.'.*'.s:NC.'\<\%(record\|units\)\>.*'.s:ES && prevs =~? s3
|
if curs !~? s3.'.*'.s:NC.'\<\%(record\|units\)\>.*'.s:ES && prevs =~? s3
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
return ind
|
return ind
|
||||||
endif
|
endif
|
||||||
@@ -282,7 +282,7 @@ function GetVHDLindent()
|
|||||||
" removed: "begin", "case", "elsif", "if", "loop", "record", "units", "while"
|
" removed: "begin", "case", "elsif", "if", "loop", "record", "units", "while"
|
||||||
" where: anywhere in previous line
|
" where: anywhere in previous line
|
||||||
if prevs =~? s:NC.s:NE.'\<\%(block\|process\)\>'
|
if prevs =~? s:NC.s:NE.'\<\%(block\|process\)\>'
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" indent: +sw
|
" indent: +sw
|
||||||
@@ -290,7 +290,7 @@ function GetVHDLindent()
|
|||||||
" removed: "component", "for", "when", "with"
|
" removed: "component", "for", "when", "with"
|
||||||
" where: start of previous line
|
" where: start of previous line
|
||||||
if prevs =~? '^\s*\%(architecture\|configuration\|entity\|package\)\>'
|
if prevs =~? '^\s*\%(architecture\|configuration\|entity\|package\)\>'
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" indent: +sw
|
" indent: +sw
|
||||||
@@ -298,7 +298,7 @@ function GetVHDLindent()
|
|||||||
" removed: "generate", "is", "=>"
|
" removed: "generate", "is", "=>"
|
||||||
" where: end of previous line
|
" where: end of previous line
|
||||||
if prevs =~? s:NC.'\<select'.s:ES
|
if prevs =~? s:NC.'\<select'.s:ES
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" indent: +sw
|
" indent: +sw
|
||||||
@@ -310,7 +310,7 @@ function GetVHDLindent()
|
|||||||
" where: end of previous line
|
" where: end of previous line
|
||||||
" _note_: indent allowed to leave this filter
|
" _note_: indent allowed to leave this filter
|
||||||
if prevs =~? s:NC.'\%(\<begin\>\|'.s:NE.'\<\%(loop\|record\|units\)\>\)' || prevs =~? '^\s*\%(component\|else\|for\)\>' || prevs =~? s:NC.'\%('.s:NE.'\<generate\|\<\%(is\|then\)\|=>\)'.s:ES
|
if prevs =~? s:NC.'\%(\<begin\>\|'.s:NE.'\<\%(loop\|record\|units\)\>\)' || prevs =~? '^\s*\%(component\|else\|for\)\>' || prevs =~? s:NC.'\%('.s:NE.'\<generate\|\<\%(is\|then\)\|=>\)'.s:ES
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" ****************************************************************************************
|
" ****************************************************************************************
|
||||||
@@ -322,7 +322,7 @@ function GetVHDLindent()
|
|||||||
if prevs =~? s:NC.'\<is'.s:ES
|
if prevs =~? s:NC.'\<is'.s:ES
|
||||||
return ind
|
return ind
|
||||||
elseif prevs !~? s4
|
elseif prevs !~? s4
|
||||||
return ind - &sw
|
return ind - shiftwidth()
|
||||||
else
|
else
|
||||||
return ind2
|
return ind2
|
||||||
endif
|
endif
|
||||||
@@ -336,7 +336,7 @@ function GetVHDLindent()
|
|||||||
if prevs =~? '^\s*\%(elsif\|'.s5.'\)'
|
if prevs =~? '^\s*\%(elsif\|'.s5.'\)'
|
||||||
return ind
|
return ind
|
||||||
else
|
else
|
||||||
return ind - &sw
|
return ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -367,9 +367,9 @@ function GetVHDLindent()
|
|||||||
"where: start of previous non-comment line
|
"where: start of previous non-comment line
|
||||||
if m == 1
|
if m == 1
|
||||||
if ps =~? '^\s*end\s\+case\>'
|
if ps =~? '^\s*end\s\+case\>'
|
||||||
return indent(pn) - 2 * &sw
|
return indent(pn) - 2 * shiftwidth()
|
||||||
elseif ps =~? '^\s*when\>'
|
elseif ps =~? '^\s*when\>'
|
||||||
return indent(pn) - &sw
|
return indent(pn) - shiftwidth()
|
||||||
elseif ps =~? '^\s*case\>'
|
elseif ps =~? '^\s*case\>'
|
||||||
return indent(pn)
|
return indent(pn)
|
||||||
endif
|
endif
|
||||||
@@ -385,14 +385,14 @@ function GetVHDLindent()
|
|||||||
let pn = prevnonblank(pn - 1)
|
let pn = prevnonblank(pn - 1)
|
||||||
let ps = getline(pn)
|
let ps = getline(pn)
|
||||||
endwhile
|
endwhile
|
||||||
return ind - &sw
|
return ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" indent: -sw
|
" indent: -sw
|
||||||
" keyword: ")"
|
" keyword: ")"
|
||||||
" where: start of current line
|
" where: start of current line
|
||||||
if curs =~ '^\s*)'
|
if curs =~ '^\s*)'
|
||||||
return ind - &sw
|
return ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" indent: 0
|
" indent: 0
|
||||||
@@ -407,7 +407,7 @@ function GetVHDLindent()
|
|||||||
" where: start of current line
|
" where: start of current line
|
||||||
"if curs =~? '^\s*end\s\+\w\+\>'
|
"if curs =~? '^\s*end\s\+\w\+\>'
|
||||||
if curs =~? '^\s*end\%(\s\|;'.s:ES.'\)'
|
if curs =~? '^\s*end\%(\s\|;'.s:ES.'\)'
|
||||||
return ind - &sw
|
return ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" ****************************************************************************************
|
" ****************************************************************************************
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" Language: xml
|
" Language: xml
|
||||||
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||||
" Last Change: 2012 Jul 25
|
" Last Change: 2017 Jun 13
|
||||||
" Notes: 1) does not indent pure non-xml code (e.g. embedded scripts)
|
" Notes: 1) does not indent pure non-xml code (e.g. embedded scripts)
|
||||||
" 2) will be confused by unbalanced tags in comments
|
" 2) will be confused by unbalanced tags in comments
|
||||||
" or CDATA sections.
|
" or CDATA sections.
|
||||||
@@ -67,7 +67,7 @@ endfun
|
|||||||
fun! <SID>XmlIndentSum(lnum, style, add)
|
fun! <SID>XmlIndentSum(lnum, style, add)
|
||||||
let line = getline(a:lnum)
|
let line = getline(a:lnum)
|
||||||
if a:style == match(line, '^\s*</')
|
if a:style == match(line, '^\s*</')
|
||||||
return (&sw *
|
return (shiftwidth() *
|
||||||
\ (<SID>XmlIndentWithPattern(line, b:xml_indent_open)
|
\ (<SID>XmlIndentWithPattern(line, b:xml_indent_open)
|
||||||
\ - <SID>XmlIndentWithPattern(line, b:xml_indent_close)
|
\ - <SID>XmlIndentWithPattern(line, b:xml_indent_close)
|
||||||
\ - <SID>XmlIndentWithPattern(line, '.\{-}/>'))) + a:add
|
\ - <SID>XmlIndentWithPattern(line, '.\{-}/>'))) + a:add
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: YAML
|
" Language: YAML
|
||||||
" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
|
" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
|
||||||
" Last Change: 2015 Nov 01
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
" 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')
|
||||||
@@ -24,14 +24,6 @@ if exists('*GetYAMLIndent')
|
|||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists('*shiftwidth')
|
|
||||||
let s:shiftwidth = function('shiftwidth')
|
|
||||||
else
|
|
||||||
function s:shiftwidth()
|
|
||||||
return &shiftwidth
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
function s:FindPrevLessIndentedLine(lnum, ...)
|
function s:FindPrevLessIndentedLine(lnum, ...)
|
||||||
let prevlnum = prevnonblank(a:lnum-1)
|
let prevlnum = prevnonblank(a:lnum-1)
|
||||||
let curindent = a:0 ? a:1 : indent(a:lnum)
|
let curindent = a:0 ? a:1 : indent(a:lnum)
|
||||||
@@ -119,7 +111,7 @@ function GetYAMLIndent(lnum)
|
|||||||
"
|
"
|
||||||
" - |-
|
" - |-
|
||||||
" Block scalar without indentation indicator
|
" Block scalar without indentation indicator
|
||||||
return previndent+s:shiftwidth()
|
return previndent+shiftwidth()
|
||||||
elseif prevline =~# '\v[:-]\ [|>]%(\d+[+\-]?|[+\-]?\d+)%(\#.*|\s*)$'
|
elseif prevline =~# '\v[:-]\ [|>]%(\d+[+\-]?|[+\-]?\d+)%(\#.*|\s*)$'
|
||||||
" - |+2
|
" - |+2
|
||||||
" block scalar with indentation indicator
|
" block scalar with indentation indicator
|
||||||
@@ -155,7 +147,7 @@ function GetYAMLIndent(lnum)
|
|||||||
\ '\v)%(\s+|\s*%(\#.*)?$))*'
|
\ '\v)%(\s+|\s*%(\#.*)?$))*'
|
||||||
" Mapping with: value
|
" Mapping with: value
|
||||||
" that is multiline scalar
|
" that is multiline scalar
|
||||||
return previndent+s:shiftwidth()
|
return previndent+shiftwidth()
|
||||||
endif
|
endif
|
||||||
return previndent
|
return previndent
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
" 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 Mar 04
|
" Last change: 2017 Jun 11
|
||||||
|
|
||||||
" 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
|
||||||
" the file contents. The autocommand is in $VIMRUNTIME/filetype.vim.
|
" the file contents. The autocommand is in $VIMRUNTIME/filetype.vim.
|
||||||
|
"
|
||||||
|
" Note that the pattern matches are done with =~# to avoid the value of the
|
||||||
|
" 'ignorecase' option making a difference. Where case is to be ignored use
|
||||||
|
" =~? instead. Do not use =~ anywhere.
|
||||||
|
|
||||||
|
|
||||||
" Only do the rest when the FileType autocommand has not been triggered yet.
|
" Only do the rest when the FileType autocommand has not been triggered yet.
|
||||||
@@ -28,12 +32,12 @@ set cpo&vim
|
|||||||
|
|
||||||
let s:line1 = getline(1)
|
let s:line1 = getline(1)
|
||||||
|
|
||||||
if s:line1 =~ "^#!"
|
if s:line1 =~# "^#!"
|
||||||
" A script that starts with "#!".
|
" A script that starts with "#!".
|
||||||
|
|
||||||
" Check for a line like "#!/usr/bin/env VAR=val bash". Turn it into
|
" Check for a line like "#!/usr/bin/env VAR=val bash". Turn it into
|
||||||
" "#!/usr/bin/bash" to make matching easier.
|
" "#!/usr/bin/bash" to make matching easier.
|
||||||
if s:line1 =~ '^#!\s*\S*\<env\s'
|
if s:line1 =~# '^#!\s*\S*\<env\s'
|
||||||
let s:line1 = substitute(s:line1, '\S\+=\S\+', '', 'g')
|
let s:line1 = substitute(s:line1, '\S\+=\S\+', '', 'g')
|
||||||
let s:line1 = substitute(s:line1, '\<env\s\+', '', '')
|
let s:line1 = substitute(s:line1, '\<env\s\+', '', '')
|
||||||
endif
|
endif
|
||||||
@@ -44,11 +48,11 @@ if s:line1 =~ "^#!"
|
|||||||
" "#!/usr/bin/env perl [path/args]"
|
" "#!/usr/bin/env perl [path/args]"
|
||||||
" If there is no path use the first word: "#!perl [path/args]".
|
" If there is no path use the first word: "#!perl [path/args]".
|
||||||
" Otherwise get the last word after a slash: "#!/usr/bin/perl [path/args]".
|
" Otherwise get the last word after a slash: "#!/usr/bin/perl [path/args]".
|
||||||
if s:line1 =~ '^#!\s*\a:[/\\]'
|
if s:line1 =~# '^#!\s*\a:[/\\]'
|
||||||
let s:name = substitute(s:line1, '^#!.*[/\\]\(\i\+\).*', '\1', '')
|
let s:name = substitute(s:line1, '^#!.*[/\\]\(\i\+\).*', '\1', '')
|
||||||
elseif s:line1 =~ '^#!.*\<env\>'
|
elseif s:line1 =~# '^#!.*\<env\>'
|
||||||
let s:name = substitute(s:line1, '^#!.*\<env\>\s\+\(\i\+\).*', '\1', '')
|
let s:name = substitute(s:line1, '^#!.*\<env\>\s\+\(\i\+\).*', '\1', '')
|
||||||
elseif s:line1 =~ '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
|
elseif s:line1 =~# '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
|
||||||
let s:name = substitute(s:line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
|
let s:name = substitute(s:line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
|
||||||
else
|
else
|
||||||
let s:name = substitute(s:line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '')
|
let s:name = substitute(s:line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '')
|
||||||
@@ -56,16 +60,16 @@ if s:line1 =~ "^#!"
|
|||||||
|
|
||||||
" tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
|
" tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
|
||||||
" third line. Suggested by Steven Atkinson.
|
" third line. Suggested by Steven Atkinson.
|
||||||
if getline(3) =~ '^exec wish'
|
if getline(3) =~# '^exec wish'
|
||||||
let s:name = 'wish'
|
let s:name = 'wish'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Bourne-like shell scripts: bash bash2 ksh ksh93 sh
|
" Bourne-like shell scripts: bash bash2 ksh ksh93 sh
|
||||||
if s:name =~ '^\(bash\d*\|\|ksh\d*\|sh\)\>'
|
if s:name =~# '^\(bash\d*\|\|ksh\d*\|sh\)\>'
|
||||||
call SetFileTypeSH(s:line1) " defined in filetype.vim
|
call SetFileTypeSH(s:line1) " defined in filetype.vim
|
||||||
|
|
||||||
" csh scripts
|
" csh scripts
|
||||||
elseif s:name =~ '^csh\>'
|
elseif s:name =~# '^csh\>'
|
||||||
if exists("g:filetype_csh")
|
if exists("g:filetype_csh")
|
||||||
call SetFileTypeShell(g:filetype_csh)
|
call SetFileTypeShell(g:filetype_csh)
|
||||||
else
|
else
|
||||||
@@ -73,99 +77,99 @@ if s:line1 =~ "^#!"
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" tcsh scripts
|
" tcsh scripts
|
||||||
elseif s:name =~ '^tcsh\>'
|
elseif s:name =~# '^tcsh\>'
|
||||||
call SetFileTypeShell("tcsh")
|
call SetFileTypeShell("tcsh")
|
||||||
|
|
||||||
" Z shell scripts
|
" Z shell scripts
|
||||||
elseif s:name =~ '^zsh\>'
|
elseif s:name =~# '^zsh\>'
|
||||||
set ft=zsh
|
set ft=zsh
|
||||||
|
|
||||||
" TCL scripts
|
" TCL scripts
|
||||||
elseif s:name =~ '^\(tclsh\|wish\|expectk\|itclsh\|itkwish\)\>'
|
elseif s:name =~# '^\(tclsh\|wish\|expectk\|itclsh\|itkwish\)\>'
|
||||||
set ft=tcl
|
set ft=tcl
|
||||||
|
|
||||||
" Expect scripts
|
" Expect scripts
|
||||||
elseif s:name =~ '^expect\>'
|
elseif s:name =~# '^expect\>'
|
||||||
set ft=expect
|
set ft=expect
|
||||||
|
|
||||||
" Gnuplot scripts
|
" Gnuplot scripts
|
||||||
elseif s:name =~ '^gnuplot\>'
|
elseif s:name =~# '^gnuplot\>'
|
||||||
set ft=gnuplot
|
set ft=gnuplot
|
||||||
|
|
||||||
" Makefiles
|
" Makefiles
|
||||||
elseif s:name =~ 'make\>'
|
elseif s:name =~# 'make\>'
|
||||||
set ft=make
|
set ft=make
|
||||||
|
|
||||||
" Lua
|
" Lua
|
||||||
elseif s:name =~ 'lua'
|
elseif s:name =~# 'lua'
|
||||||
set ft=lua
|
set ft=lua
|
||||||
|
|
||||||
" Perl 6
|
" Perl 6
|
||||||
elseif s:name =~ 'perl6'
|
elseif s:name =~# 'perl6'
|
||||||
set ft=perl6
|
set ft=perl6
|
||||||
|
|
||||||
" Perl
|
" Perl
|
||||||
elseif s:name =~ 'perl'
|
elseif s:name =~# 'perl'
|
||||||
set ft=perl
|
set ft=perl
|
||||||
|
|
||||||
" PHP
|
" PHP
|
||||||
elseif s:name =~ 'php'
|
elseif s:name =~# 'php'
|
||||||
set ft=php
|
set ft=php
|
||||||
|
|
||||||
" Python
|
" Python
|
||||||
elseif s:name =~ 'python'
|
elseif s:name =~# 'python'
|
||||||
set ft=python
|
set ft=python
|
||||||
|
|
||||||
" Groovy
|
" Groovy
|
||||||
elseif s:name =~ '^groovy\>'
|
elseif s:name =~# '^groovy\>'
|
||||||
set ft=groovy
|
set ft=groovy
|
||||||
|
|
||||||
" Ruby
|
" Ruby
|
||||||
elseif s:name =~ 'ruby'
|
elseif s:name =~# 'ruby'
|
||||||
set ft=ruby
|
set ft=ruby
|
||||||
|
|
||||||
" JavaScript
|
" JavaScript
|
||||||
elseif s:name =~ 'node\(js\)\=\>' || s:name =~ 'rhino\>'
|
elseif s:name =~# 'node\(js\)\=\>' || s:name =~# 'rhino\>'
|
||||||
set ft=javascript
|
set ft=javascript
|
||||||
|
|
||||||
" BC calculator
|
" BC calculator
|
||||||
elseif s:name =~ '^bc\>'
|
elseif s:name =~# '^bc\>'
|
||||||
set ft=bc
|
set ft=bc
|
||||||
|
|
||||||
" sed
|
" sed
|
||||||
elseif s:name =~ 'sed\>'
|
elseif s:name =~# 'sed\>'
|
||||||
set ft=sed
|
set ft=sed
|
||||||
|
|
||||||
" OCaml-scripts
|
" OCaml-scripts
|
||||||
elseif s:name =~ 'ocaml'
|
elseif s:name =~# 'ocaml'
|
||||||
set ft=ocaml
|
set ft=ocaml
|
||||||
|
|
||||||
" Awk scripts
|
" Awk scripts
|
||||||
elseif s:name =~ 'awk\>'
|
elseif s:name =~# 'awk\>'
|
||||||
set ft=awk
|
set ft=awk
|
||||||
|
|
||||||
" Website MetaLanguage
|
" Website MetaLanguage
|
||||||
elseif s:name =~ 'wml'
|
elseif s:name =~# 'wml'
|
||||||
set ft=wml
|
set ft=wml
|
||||||
|
|
||||||
" Scheme scripts
|
" Scheme scripts
|
||||||
elseif s:name =~ 'scheme'
|
elseif s:name =~# 'scheme'
|
||||||
set ft=scheme
|
set ft=scheme
|
||||||
|
|
||||||
" CFEngine scripts
|
" CFEngine scripts
|
||||||
elseif s:name =~ 'cfengine'
|
elseif s:name =~# 'cfengine'
|
||||||
set ft=cfengine
|
set ft=cfengine
|
||||||
|
|
||||||
" Erlang scripts
|
" Erlang scripts
|
||||||
elseif s:name =~ 'escript'
|
elseif s:name =~# 'escript'
|
||||||
set ft=erlang
|
set ft=erlang
|
||||||
|
|
||||||
" Haskell
|
" Haskell
|
||||||
elseif s:name =~ 'haskell'
|
elseif s:name =~# 'haskell'
|
||||||
set ft=haskell
|
set ft=haskell
|
||||||
|
|
||||||
" Scala
|
" Scala
|
||||||
elseif s:name =~ 'scala\>'
|
elseif s:name =~# 'scala\>'
|
||||||
set ft=scala
|
set ft=scala
|
||||||
|
|
||||||
endif
|
endif
|
||||||
@@ -180,28 +184,28 @@ else
|
|||||||
let s:line5 = getline(5)
|
let s:line5 = getline(5)
|
||||||
|
|
||||||
" Bourne-like shell scripts: sh ksh bash bash2
|
" Bourne-like shell scripts: sh ksh bash bash2
|
||||||
if s:line1 =~ '^:$'
|
if s:line1 =~# '^:$'
|
||||||
call SetFileTypeSH(s:line1) " defined in filetype.vim
|
call SetFileTypeSH(s:line1) " defined in filetype.vim
|
||||||
|
|
||||||
" Z shell scripts
|
" Z shell scripts
|
||||||
elseif s:line1 =~ '^#compdef\>' || s:line1 =~ '^#autoload\>' ||
|
elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
|
||||||
\ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~ '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
|
\ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~# '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
|
||||||
set ft=zsh
|
set ft=zsh
|
||||||
|
|
||||||
" ELM Mail files
|
" ELM Mail files
|
||||||
elseif s:line1 =~ '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
|
elseif s:line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
|
||||||
set ft=mail
|
set ft=mail
|
||||||
|
|
||||||
" Mason
|
" Mason
|
||||||
elseif s:line1 =~ '^<[%&].*>'
|
elseif s:line1 =~# '^<[%&].*>'
|
||||||
set ft=mason
|
set ft=mason
|
||||||
|
|
||||||
" Vim scripts (must have '" vim' as the first line to trigger this)
|
" Vim scripts (must have '" vim' as the first line to trigger this)
|
||||||
elseif s:line1 =~ '^" *[vV]im$'
|
elseif s:line1 =~# '^" *[vV]im$'
|
||||||
set ft=vim
|
set ft=vim
|
||||||
|
|
||||||
" MOO
|
" MOO
|
||||||
elseif s:line1 =~ '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
|
elseif s:line1 =~# '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
|
||||||
set ft=moo
|
set ft=moo
|
||||||
|
|
||||||
" Diff file:
|
" Diff file:
|
||||||
@@ -215,29 +219,29 @@ else
|
|||||||
" - "=== ", "--- ", "+++ " (bzr diff, common case)
|
" - "=== ", "--- ", "+++ " (bzr diff, common case)
|
||||||
" - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
|
" - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
|
||||||
" - "# HG changeset patch" in first line (Mercurial export format)
|
" - "# HG changeset patch" in first line (Mercurial export format)
|
||||||
elseif s:line1 =~ '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
|
elseif s:line1 =~# '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
|
||||||
\ || (s:line1 =~ '^--- ' && s:line2 =~ '^+++ ')
|
\ || (s:line1 =~# '^--- ' && s:line2 =~# '^+++ ')
|
||||||
\ || (s:line1 =~ '^\* looking for ' && s:line2 =~ '^\* comparing to ')
|
\ || (s:line1 =~# '^\* looking for ' && s:line2 =~# '^\* comparing to ')
|
||||||
\ || (s:line1 =~ '^\*\*\* ' && s:line2 =~ '^--- ')
|
\ || (s:line1 =~# '^\*\*\* ' && s:line2 =~# '^--- ')
|
||||||
\ || (s:line1 =~ '^=== ' && ((s:line2 =~ '^=\{66\}' && s:line3 =~ '^--- ' && s:line4 =~ '^+++') || (s:line2 =~ '^--- ' && s:line3 =~ '^+++ ')))
|
\ || (s:line1 =~# '^=== ' && ((s:line2 =~# '^=\{66\}' && s:line3 =~# '^--- ' && s:line4 =~# '^+++') || (s:line2 =~# '^--- ' && s:line3 =~# '^+++ ')))
|
||||||
\ || (s:line1 =~ '^=== \(removed\|added\|renamed\|modified\)')
|
\ || (s:line1 =~# '^=== \(removed\|added\|renamed\|modified\)')
|
||||||
set ft=diff
|
set ft=diff
|
||||||
|
|
||||||
" PostScript Files (must have %!PS as the first line, like a2ps output)
|
" PostScript Files (must have %!PS as the first line, like a2ps output)
|
||||||
elseif s:line1 =~ '^%![ \t]*PS'
|
elseif s:line1 =~# '^%![ \t]*PS'
|
||||||
set ft=postscr
|
set ft=postscr
|
||||||
|
|
||||||
" M4 scripts: Guess there is a line that starts with "dnl".
|
" M4 scripts: Guess there is a line that starts with "dnl".
|
||||||
elseif s:line1 =~ '^\s*dnl\>'
|
elseif s:line1 =~# '^\s*dnl\>'
|
||||||
\ || s:line2 =~ '^\s*dnl\>'
|
\ || s:line2 =~# '^\s*dnl\>'
|
||||||
\ || s:line3 =~ '^\s*dnl\>'
|
\ || s:line3 =~# '^\s*dnl\>'
|
||||||
\ || s:line4 =~ '^\s*dnl\>'
|
\ || s:line4 =~# '^\s*dnl\>'
|
||||||
\ || s:line5 =~ '^\s*dnl\>'
|
\ || s:line5 =~# '^\s*dnl\>'
|
||||||
set ft=m4
|
set ft=m4
|
||||||
|
|
||||||
" AmigaDos scripts
|
" AmigaDos scripts
|
||||||
elseif $TERM == "amiga"
|
elseif $TERM == "amiga"
|
||||||
\ && (s:line1 =~ "^;" || s:line1 =~ '^\.[bB][rR][aA]')
|
\ && (s:line1 =~# "^;" || s:line1 =~? '^\.bra')
|
||||||
set ft=amiga
|
set ft=amiga
|
||||||
|
|
||||||
" SiCAD scripts (must have procn or procd as the first line to trigger this)
|
" SiCAD scripts (must have procn or procd as the first line to trigger this)
|
||||||
@@ -245,15 +249,15 @@ else
|
|||||||
set ft=sicad
|
set ft=sicad
|
||||||
|
|
||||||
" Purify log files start with "**** Purify"
|
" Purify log files start with "**** Purify"
|
||||||
elseif s:line1 =~ '^\*\*\*\* Purify'
|
elseif s:line1 =~# '^\*\*\*\* Purify'
|
||||||
set ft=purifylog
|
set ft=purifylog
|
||||||
|
|
||||||
" XML
|
" XML
|
||||||
elseif s:line1 =~ '<?\s*xml.*?>'
|
elseif s:line1 =~# '<?\s*xml.*?>'
|
||||||
set ft=xml
|
set ft=xml
|
||||||
|
|
||||||
" XHTML (e.g.: PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN")
|
" XHTML (e.g.: PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN")
|
||||||
elseif s:line1 =~ '\<DTD\s\+XHTML\s'
|
elseif s:line1 =~# '\<DTD\s\+XHTML\s'
|
||||||
set ft=xhtml
|
set ft=xhtml
|
||||||
|
|
||||||
" HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
|
" HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
|
||||||
@@ -262,96 +266,96 @@ else
|
|||||||
set ft=html
|
set ft=html
|
||||||
|
|
||||||
" PDF
|
" PDF
|
||||||
elseif s:line1 =~ '^%PDF-'
|
elseif s:line1 =~# '^%PDF-'
|
||||||
set ft=pdf
|
set ft=pdf
|
||||||
|
|
||||||
" XXD output
|
" XXD output
|
||||||
elseif s:line1 =~ '^\x\{7}: \x\{2} \=\x\{2} \=\x\{2} \=\x\{2} '
|
elseif s:line1 =~# '^\x\{7}: \x\{2} \=\x\{2} \=\x\{2} \=\x\{2} '
|
||||||
set ft=xxd
|
set ft=xxd
|
||||||
|
|
||||||
" RCS/CVS log output
|
" RCS/CVS log output
|
||||||
elseif s:line1 =~ '^RCS file:' || s:line2 =~ '^RCS file:'
|
elseif s:line1 =~# '^RCS file:' || s:line2 =~# '^RCS file:'
|
||||||
set ft=rcslog
|
set ft=rcslog
|
||||||
|
|
||||||
" CVS commit
|
" CVS commit
|
||||||
elseif s:line2 =~ '^CVS:' || getline("$") =~ '^CVS: '
|
elseif s:line2 =~# '^CVS:' || getline("$") =~# '^CVS: '
|
||||||
set ft=cvs
|
set ft=cvs
|
||||||
|
|
||||||
" Prescribe
|
" Prescribe
|
||||||
elseif s:line1 =~ '^!R!'
|
elseif s:line1 =~# '^!R!'
|
||||||
set ft=prescribe
|
set ft=prescribe
|
||||||
|
|
||||||
" Send-pr
|
" Send-pr
|
||||||
elseif s:line1 =~ '^SEND-PR:'
|
elseif s:line1 =~# '^SEND-PR:'
|
||||||
set ft=sendpr
|
set ft=sendpr
|
||||||
|
|
||||||
" SNNS files
|
" SNNS files
|
||||||
elseif s:line1 =~ '^SNNS network definition file'
|
elseif s:line1 =~# '^SNNS network definition file'
|
||||||
set ft=snnsnet
|
set ft=snnsnet
|
||||||
elseif s:line1 =~ '^SNNS pattern definition file'
|
elseif s:line1 =~# '^SNNS pattern definition file'
|
||||||
set ft=snnspat
|
set ft=snnspat
|
||||||
elseif s:line1 =~ '^SNNS result file'
|
elseif s:line1 =~# '^SNNS result file'
|
||||||
set ft=snnsres
|
set ft=snnsres
|
||||||
|
|
||||||
" Virata
|
" Virata
|
||||||
elseif s:line1 =~ '^%.\{-}[Vv]irata'
|
elseif s:line1 =~# '^%.\{-}[Vv]irata'
|
||||||
\ || s:line2 =~ '^%.\{-}[Vv]irata'
|
\ || s:line2 =~# '^%.\{-}[Vv]irata'
|
||||||
\ || s:line3 =~ '^%.\{-}[Vv]irata'
|
\ || s:line3 =~# '^%.\{-}[Vv]irata'
|
||||||
\ || s:line4 =~ '^%.\{-}[Vv]irata'
|
\ || s:line4 =~# '^%.\{-}[Vv]irata'
|
||||||
\ || s:line5 =~ '^%.\{-}[Vv]irata'
|
\ || s:line5 =~# '^%.\{-}[Vv]irata'
|
||||||
set ft=virata
|
set ft=virata
|
||||||
|
|
||||||
" Strace
|
" Strace
|
||||||
elseif s:line1 =~ '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~ '^__libc_start_main'
|
elseif s:line1 =~# '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
|
||||||
set ft=strace
|
set ft=strace
|
||||||
|
|
||||||
" VSE JCL
|
" VSE JCL
|
||||||
elseif s:line1 =~ '^\* $$ JOB\>' || s:line1 =~ '^// *JOB\>'
|
elseif s:line1 =~# '^\* $$ JOB\>' || s:line1 =~# '^// *JOB\>'
|
||||||
set ft=vsejcl
|
set ft=vsejcl
|
||||||
|
|
||||||
" TAK and SINDA
|
" TAK and SINDA
|
||||||
elseif s:line4 =~ 'K & K Associates' || s:line2 =~ 'TAK 2000'
|
elseif s:line4 =~# 'K & K Associates' || s:line2 =~# 'TAK 2000'
|
||||||
set ft=takout
|
set ft=takout
|
||||||
elseif s:line3 =~ 'S Y S T E M S I M P R O V E D '
|
elseif s:line3 =~# 'S Y S T E M S I M P R O V E D '
|
||||||
set ft=sindaout
|
set ft=sindaout
|
||||||
elseif getline(6) =~ 'Run Date: '
|
elseif getline(6) =~# 'Run Date: '
|
||||||
set ft=takcmp
|
set ft=takcmp
|
||||||
elseif getline(9) =~ 'Node File 1'
|
elseif getline(9) =~# 'Node File 1'
|
||||||
set ft=sindacmp
|
set ft=sindacmp
|
||||||
|
|
||||||
" DNS zone files
|
" DNS zone files
|
||||||
elseif s:line1.s:line2.s:line3.s:line4 =~ '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
|
||||||
set ft=bindzone
|
set ft=bindzone
|
||||||
|
|
||||||
" BAAN
|
" BAAN
|
||||||
elseif s:line1 =~ '|\*\{1,80}' && s:line2 =~ 'VRC '
|
elseif s:line1 =~# '|\*\{1,80}' && s:line2 =~# 'VRC '
|
||||||
\ || s:line2 =~ '|\*\{1,80}' && s:line3 =~ 'VRC '
|
\ || s:line2 =~# '|\*\{1,80}' && s:line3 =~# 'VRC '
|
||||||
set ft=baan
|
set ft=baan
|
||||||
|
|
||||||
" Valgrind
|
" Valgrind
|
||||||
elseif s:line1 =~ '^==\d\+== valgrind' || s:line3 =~ '^==\d\+== Using valgrind'
|
elseif s:line1 =~# '^==\d\+== valgrind' || s:line3 =~# '^==\d\+== Using valgrind'
|
||||||
set ft=valgrind
|
set ft=valgrind
|
||||||
|
|
||||||
" Go docs
|
" Go docs
|
||||||
elseif s:line1 =~ '^PACKAGE DOCUMENTATION$'
|
elseif s:line1 =~# '^PACKAGE DOCUMENTATION$'
|
||||||
set ft=godoc
|
set ft=godoc
|
||||||
|
|
||||||
" Renderman Interface Bytestream
|
" Renderman Interface Bytestream
|
||||||
elseif s:line1 =~ '^##RenderMan'
|
elseif s:line1 =~# '^##RenderMan'
|
||||||
set ft=rib
|
set ft=rib
|
||||||
|
|
||||||
" Scheme scripts
|
" Scheme scripts
|
||||||
elseif s:line1 =~ 'exec\s\+\S*scheme' || s:line2 =~ 'exec\s\+\S*scheme'
|
elseif s:line1 =~# 'exec\s\+\S*scheme' || s:line2 =~# 'exec\s\+\S*scheme'
|
||||||
set ft=scheme
|
set ft=scheme
|
||||||
|
|
||||||
" Git output
|
" Git output
|
||||||
elseif s:line1 =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
|
elseif s:line1 =~# '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
|
||||||
set ft=git
|
set ft=git
|
||||||
|
|
||||||
" Gprof (gnu profiler)
|
" Gprof (gnu profiler)
|
||||||
elseif s:line1 == 'Flat profile:'
|
elseif s:line1 == 'Flat profile:'
|
||||||
\ && s:line2 == ''
|
\ && s:line2 == ''
|
||||||
\ && s:line3 =~ '^Each sample counts as .* seconds.$'
|
\ && s:line3 =~# '^Each sample counts as .* seconds.$'
|
||||||
set ft=gprof
|
set ft=gprof
|
||||||
|
|
||||||
" Erlang terms
|
" Erlang terms
|
||||||
@@ -362,18 +366,18 @@ else
|
|||||||
" CVS diff
|
" CVS diff
|
||||||
else
|
else
|
||||||
let s:lnum = 1
|
let s:lnum = 1
|
||||||
while getline(s:lnum) =~ "^? " && s:lnum < line("$")
|
while getline(s:lnum) =~# "^? " && s:lnum < line("$")
|
||||||
let s:lnum += 1
|
let s:lnum += 1
|
||||||
endwhile
|
endwhile
|
||||||
if getline(s:lnum) =~ '^Index:\s\+\f\+$'
|
if getline(s:lnum) =~# '^Index:\s\+\f\+$'
|
||||||
set ft=diff
|
set ft=diff
|
||||||
|
|
||||||
" locale input files: Formal Definitions of Cultural Conventions
|
" locale input files: Formal Definitions of Cultural Conventions
|
||||||
" filename must be like en_US, fr_FR@euro or en_US.UTF-8
|
" filename must be like en_US, fr_FR@euro or en_US.UTF-8
|
||||||
elseif expand("%") =~ '\a\a_\a\a\($\|[.@]\)\|i18n$\|POSIX$\|translit_'
|
elseif expand("%") =~# '\a\a_\a\a\($\|[.@]\)\|i18n$\|POSIX$\|translit_'
|
||||||
let s:lnum = 1
|
let s:lnum = 1
|
||||||
while s:lnum < 100 && s:lnum < line("$")
|
while s:lnum < 100 && s:lnum < line("$")
|
||||||
if getline(s:lnum) =~ '^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
|
if getline(s:lnum) =~# '^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
|
||||||
setf fdcc
|
setf fdcc
|
||||||
break
|
break
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||||
" 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: 2016 Nov 12
|
" Last Change: 2017 Apr 23
|
||||||
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim
|
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim
|
||||||
|
|
||||||
" Standard syntax initialization
|
" Standard syntax initialization
|
||||||
@@ -14,14 +14,14 @@ endif
|
|||||||
" Case doesn't matter for us
|
" Case doesn't matter for us
|
||||||
syn case ignore
|
syn case ignore
|
||||||
|
|
||||||
let urgency='urgency=\(low\|medium\|high\|critical\)\( [^[:space:],][^,]*\)\='
|
let s:urgency='urgency=\(low\|medium\|high\|critical\)\( [^[:space:],][^,]*\)\='
|
||||||
let binNMU='binary-only=yes'
|
let s:binNMU='binary-only=yes'
|
||||||
|
|
||||||
" Define some common expressions we can use later on
|
" Define some common expressions we can use later on
|
||||||
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
|
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
|
||||||
exe 'syn match debchangelogFirstKV contained "; \('.urgency.'\|'.binNMU.'\)"'
|
exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
|
||||||
exe 'syn match debchangelogOtherKV contained ", \('.urgency.'\|'.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-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty)%(-%(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)%(-%(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\+\)*"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: Debian sources.list
|
" Language: Debian sources.list
|
||||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||||
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
|
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
|
||||||
" Last Change: 2016 Nov 12
|
" Last Change: 2017 Apr 22
|
||||||
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim
|
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim
|
||||||
|
|
||||||
" Standard syntax initialization
|
" Standard syntax initialization
|
||||||
@@ -25,7 +25,7 @@ let s:supported = [
|
|||||||
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
|
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
|
||||||
\ 'squeeze', 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
|
\ 'squeeze', 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
|
||||||
\
|
\
|
||||||
\ 'precise', 'trusty', 'xenial', 'yakkety', 'zesty', 'devel'
|
\ 'trusty', 'xenial', 'yakkety', 'zesty', 'artful', 'devel'
|
||||||
\ ]
|
\ ]
|
||||||
let s:unsupported = [
|
let s:unsupported = [
|
||||||
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
|
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
|
||||||
@@ -33,15 +33,15 @@ let s:unsupported = [
|
|||||||
\
|
\
|
||||||
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
|
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
|
||||||
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
|
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
|
||||||
\ 'maverick', 'natty', 'oneiric', 'quantal', 'raring', 'saucy',
|
\ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
|
||||||
\ 'utopic', 'vivid', 'wily'
|
\ 'utopic', 'vivid', 'wily'
|
||||||
\ ]
|
\ ]
|
||||||
let &cpo=s:cpo
|
let &cpo=s:cpo
|
||||||
|
|
||||||
" Match uri's
|
" Match uri's
|
||||||
syn match debsourcesUri +\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
|
syn match debsourcesUri +\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
|
||||||
exe 'syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\('. join(s:supported, '\|'). '\)\([-[:alnum:]_./]*\)+'
|
exe 'syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\<\('. join(s:supported, '\|'). '\)\>\([-[:alnum:]_./]*\)+'
|
||||||
exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\('. join(s:unsupported, '\|') .'\)\([-[:alnum:]_./]*\)+'
|
exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\<\('. join(s:unsupported, '\|') .'\)\>\([-[:alnum:]_./]*\)+'
|
||||||
|
|
||||||
" Associate our matches and regions with pretty colours
|
" Associate our matches and regions with pretty colours
|
||||||
hi def link debsourcesLine Error
|
hi def link debsourcesLine Error
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Vim help file
|
" Language: Vim help file
|
||||||
" Maintainer: Bram Moolenaar (Bram@vim.org)
|
" Maintainer: Bram Moolenaar (Bram@vim.org)
|
||||||
" Last Change: 2016 Sep 02
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
" Quit when a (custom) syntax file was already loaded
|
" Quit when a (custom) syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
@@ -54,7 +54,8 @@ else
|
|||||||
syn match helpIgnore "." contained
|
syn match helpIgnore "." contained
|
||||||
endif
|
endif
|
||||||
syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
|
syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
|
||||||
syn keyword helpWarning WARNING: Warning:
|
syn keyword helpWarning WARNING WARNING: Warning:
|
||||||
|
syn keyword helpDeprecated DEPRECATED DEPRECATED: Deprecated:
|
||||||
syn match helpSpecial "\<N\>"
|
syn match helpSpecial "\<N\>"
|
||||||
syn match helpSpecial "\<N\.$"me=e-1
|
syn match helpSpecial "\<N\.$"me=e-1
|
||||||
syn match helpSpecial "\<N\.\s"me=e-2
|
syn match helpSpecial "\<N\.\s"me=e-2
|
||||||
@@ -171,6 +172,7 @@ hi def link helpNotVi Special
|
|||||||
hi def link helpSpecial Special
|
hi def link helpSpecial Special
|
||||||
hi def link helpNote Todo
|
hi def link helpNote Todo
|
||||||
hi def link helpWarning Todo
|
hi def link helpWarning Todo
|
||||||
|
hi def link helpDeprecated Todo
|
||||||
|
|
||||||
hi def link helpComment Comment
|
hi def link helpComment Comment
|
||||||
hi def link helpConstant Constant
|
hi def link helpConstant Constant
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: php PHP 3/4/5/7
|
" Language: php PHP 3/4/5/7
|
||||||
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
|
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
|
||||||
" Last Change: Apr 28, 2017
|
" Last Change: Jun 09, 2017
|
||||||
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
|
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
|
||||||
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
|
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
|
||||||
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||||
@@ -197,7 +197,7 @@ syn keyword phpFunctions nsapi_request_headers nsapi_response_headers nsapi_vir
|
|||||||
syn keyword phpFunctions aggregate_info aggregate_methods_by_list aggregate_methods_by_regexp aggregate_methods aggregate_properties_by_list aggregate_properties_by_regexp aggregate_properties aggregate aggregation_info deaggregate contained
|
syn keyword phpFunctions aggregate_info aggregate_methods_by_list aggregate_methods_by_regexp aggregate_methods aggregate_properties_by_list aggregate_properties_by_regexp aggregate_properties aggregate aggregation_info deaggregate contained
|
||||||
syn keyword phpFunctions ocibindbyname ocicancel ocicloselob ocicollappend ocicollassign ocicollassignelem ocicollgetelem ocicollmax ocicollsize ocicolltrim ocicolumnisnull ocicolumnname ocicolumnprecision ocicolumnscale ocicolumnsize ocicolumntype ocicolumntyperaw ocicommit ocidefinebyname ocierror ociexecute ocifetch ocifetchinto ocifetchstatement ocifreecollection ocifreecursor ocifreedesc ocifreestatement ociinternaldebug ociloadlob ocilogoff ocilogon ocinewcollection ocinewcursor ocinewdescriptor ocinlogon ocinumcols ociparse ociplogon ociresult ocirollback ocirowcount ocisavelob ocisavelobfile ociserverversion ocisetprefetch ocistatementtype ociwritelobtofile ociwritetemporarylob contained
|
syn keyword phpFunctions ocibindbyname ocicancel ocicloselob ocicollappend ocicollassign ocicollassignelem ocicollgetelem ocicollmax ocicollsize ocicolltrim ocicolumnisnull ocicolumnname ocicolumnprecision ocicolumnscale ocicolumnsize ocicolumntype ocicolumntyperaw ocicommit ocidefinebyname ocierror ociexecute ocifetch ocifetchinto ocifetchstatement ocifreecollection ocifreecursor ocifreedesc ocifreestatement ociinternaldebug ociloadlob ocilogoff ocilogon ocinewcollection ocinewcursor ocinewdescriptor ocinlogon ocinumcols ociparse ociplogon ociresult ocirollback ocirowcount ocisavelob ocisavelobfile ociserverversion ocisetprefetch ocistatementtype ociwritelobtofile ociwritetemporarylob contained
|
||||||
syn keyword phpFunctions odbc_autocommit odbc_binmode odbc_close_all odbc_close odbc_columnprivileges odbc_columns odbc_commit odbc_connect odbc_cursor odbc_data_source odbc_do odbc_error odbc_errormsg odbc_exec odbc_execute odbc_fetch_array odbc_fetch_into odbc_fetch_object odbc_fetch_row odbc_field_len odbc_field_name odbc_field_num odbc_field_precision odbc_field_scale odbc_field_type odbc_foreignkeys odbc_free_result odbc_gettypeinfo odbc_longreadlen odbc_next_result odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_primarykeys odbc_procedurecolumns odbc_procedures odbc_result_all odbc_result odbc_rollback odbc_setoption odbc_specialcolumns odbc_statistics odbc_tableprivileges odbc_tables contained
|
syn keyword phpFunctions odbc_autocommit odbc_binmode odbc_close_all odbc_close odbc_columnprivileges odbc_columns odbc_commit odbc_connect odbc_cursor odbc_data_source odbc_do odbc_error odbc_errormsg odbc_exec odbc_execute odbc_fetch_array odbc_fetch_into odbc_fetch_object odbc_fetch_row odbc_field_len odbc_field_name odbc_field_num odbc_field_precision odbc_field_scale odbc_field_type odbc_foreignkeys odbc_free_result odbc_gettypeinfo odbc_longreadlen odbc_next_result odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_primarykeys odbc_procedurecolumns odbc_procedures odbc_result_all odbc_result odbc_rollback odbc_setoption odbc_specialcolumns odbc_statistics odbc_tableprivileges odbc_tables contained
|
||||||
syn keyword phpFunctions openssl_csr_export_to_file openssl_csr_export openssl_csr_new openssl_csr_sign openssl_error_string openssl_free_key openssl_get_privatekey openssl_get_publickey openssl_open openssl_pkcs7_decrypt openssl_pkcs7_encrypt openssl_pkcs7_sign openssl_pkcs7_verify openssl_pkey_export_to_file openssl_pkey_export openssl_pkey_get_private openssl_pkey_get_public openssl_pkey_new openssl_private_decrypt openssl_private_encrypt openssl_public_decrypt openssl_public_encrypt openssl_seal openssl_sign openssl_verify openssl_x509_check_private_key openssl_x509_checkpurpose openssl_x509_export_to_file openssl_x509_export openssl_x509_free openssl_x509_parse openssl_x509_read contained
|
syn keyword phpFunctions openssl_cipher_iv_length openssl_csr_export_to_file openssl_csr_export openssl_csr_get_public_key openssl_csr_get_subject openssl_csr_new openssl_csr_sign openssl_decrypt openssl_dh_compute_key openssl_digest openssl_encrypt openssl_error_string openssl_free_key openssl_get_cert_locations openssl_get_cipher_methods openssl_get_md_methods openssl_get_privatekey openssl_get_publickey openssl_open openssl_pbkdf2 openssl_pkcs12_export_to_file openssl_pkcs12_export openssl_pkcs12_read openssl_pkcs7_decrypt openssl_pkcs7_encrypt openssl_pkcs7_sign openssl_pkcs7_verify openssl_pkey_export_to_file openssl_pkey_export openssl_pkey_free openssl_pkey_get_details openssl_pkey_get_private openssl_pkey_get_public openssl_pkey_new openssl_private_decrypt openssl_private_encrypt openssl_public_decrypt openssl_public_encrypt openssl_random_pseudo_bytes openssl_seal openssl_sign openssl_spki_export_challenge openssl_spki_export openssl_spki_new openssl_spki_verify openssl_verify openssl_x509_check_private_key openssl_x509_checkpurpose openssl_x509_export_to_file openssl_x509_export openssl_x509_fingerprint openssl_x509_free openssl_x509_parse openssl_x509_read contained
|
||||||
syn keyword phpFunctions ora_bind ora_close ora_columnname ora_columnsize ora_columntype ora_commit ora_commitoff ora_commiton ora_do ora_error ora_errorcode ora_exec ora_fetch_into ora_fetch ora_getcolumn ora_logoff ora_logon ora_numcols ora_numrows ora_open ora_parse ora_plogon ora_rollback contained
|
syn keyword phpFunctions ora_bind ora_close ora_columnname ora_columnsize ora_columntype ora_commit ora_commitoff ora_commiton ora_do ora_error ora_errorcode ora_exec ora_fetch_into ora_fetch ora_getcolumn ora_logoff ora_logon ora_numcols ora_numrows ora_open ora_parse ora_plogon ora_rollback contained
|
||||||
syn keyword phpFunctions flush ob_clean ob_end_clean ob_end_flush ob_flush ob_get_clean ob_get_contents ob_get_flush ob_get_length ob_get_level ob_get_status ob_gzhandler ob_implicit_flush ob_list_handlers ob_start output_add_rewrite_var output_reset_rewrite_vars contained
|
syn keyword phpFunctions flush ob_clean ob_end_clean ob_end_flush ob_flush ob_get_clean ob_get_contents ob_get_flush ob_get_length ob_get_level ob_get_status ob_gzhandler ob_implicit_flush ob_list_handlers ob_start output_add_rewrite_var output_reset_rewrite_vars contained
|
||||||
syn keyword phpFunctions overload contained
|
syn keyword phpFunctions overload contained
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
" http://www.unicode.org/Public/5.1.0/ucd/UCD.html
|
" http://www.unicode.org/Public/5.1.0/ucd/UCD.html
|
||||||
" For the other files see the header.
|
" For the other files see the header.
|
||||||
"
|
"
|
||||||
|
" Might need to update the URL to the emoji-data.txt
|
||||||
" Usage: Vim -S <this-file>
|
" Usage: Vim -S <this-file>
|
||||||
"
|
"
|
||||||
" Author: Bram Moolenaar
|
" Author: Bram Moolenaar
|
||||||
@@ -382,8 +383,9 @@ let s:ambitable = []
|
|||||||
call BuildWidthTable('A', 'ambiguous')
|
call BuildWidthTable('A', 'ambiguous')
|
||||||
|
|
||||||
" Edit the emoji text file. Requires the netrw plugin.
|
" Edit the emoji text file. Requires the netrw plugin.
|
||||||
edit http://www.unicode.org/Public/emoji/3.0/emoji-data.txt
|
edit http://unicode.org/Public/emoji/5.0/emoji-data.txt
|
||||||
|
"edit http://www.unicode.org/Public/emoji/latest/emoji-data.txt
|
||||||
|
|
||||||
" Build the emoji table. Ver. 1.0 - 6.0
|
" Build the emoji table. Ver. 1.0 - 6.0
|
||||||
" Must come after the "ambiguous" table
|
" Must come after the "ambiguous" table
|
||||||
call BuildEmojiTable('; Emoji\s\+# [1-6]\.[0-9]', 'emoji')
|
call BuildEmojiTable('; Emoji\s\+#\s\+\d\+\.\d', 'emoji')
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
# Makefile for GvimExt, using MSVC
|
# Makefile for GvimExt, using MSVC
|
||||||
# Options:
|
# Options:
|
||||||
# DEBUG=yes Build debug version (for VC7 and maybe later)
|
# DEBUG=yes Build debug version (for VC7 and maybe later)
|
||||||
|
# CPUARG= /arch:IA32/AVX/etc, call from main makefile to set
|
||||||
|
# automatically from CPUNR
|
||||||
#
|
#
|
||||||
|
|
||||||
TARGETOS = WINNT
|
TARGETOS = WINNT
|
||||||
|
|
||||||
!ifndef APPVER
|
!ifndef APPVER
|
||||||
APPVER=5.0
|
APPVER = 5.01
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!if "$(DEBUG)" != "yes"
|
!if "$(DEBUG)" != "yes"
|
||||||
@@ -37,6 +40,9 @@ CPU = i386
|
|||||||
!include <Win32.mak>
|
!include <Win32.mak>
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
# include CPUARG
|
||||||
|
cflags = $(cflags) $(CPUARG)
|
||||||
|
|
||||||
all: gvimext.dll
|
all: gvimext.dll
|
||||||
|
|
||||||
gvimext.dll: gvimext.obj \
|
gvimext.dll: gvimext.obj \
|
||||||
|
|||||||
117
src/Make_mvc.mak
117
src/Make_mvc.mak
@@ -1,7 +1,7 @@
|
|||||||
# Makefile for Vim on Win32 (Windows XP/2003/Vista/7/8/10) and Win64,
|
# Makefile for Vim on Win32 (Windows XP/2003/Vista/7/8/10) and Win64,
|
||||||
# using the Microsoft Visual C++ compilers. Known to work with VC5, VC6 (VS98),
|
# using the Microsoft Visual C++ compilers. Known to work with VC5, VC6 (VS98),
|
||||||
# VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005), VC9 (VS2008), VC10 (VS2010),
|
# VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005), VC9 (VS2008), VC10 (VS2010),
|
||||||
# VC11 (VS2012), VC12 (VS2013) and VC14 (VS2015)
|
# VC11 (VS2012), VC12 (VS2013), VC14 (VS2015) and VC15 (VS2017)
|
||||||
#
|
#
|
||||||
# To build using other Windows compilers, see INSTALLpc.txt
|
# To build using other Windows compilers, see INSTALLpc.txt
|
||||||
#
|
#
|
||||||
@@ -108,10 +108,15 @@
|
|||||||
#
|
#
|
||||||
# Optimization: OPTIMIZE=[SPACE, SPEED, MAXSPEED] (default is MAXSPEED)
|
# Optimization: OPTIMIZE=[SPACE, SPEED, MAXSPEED] (default is MAXSPEED)
|
||||||
#
|
#
|
||||||
# Processor Version: CPUNR=[i386, i486, i586, i686, pentium4] (default is
|
# Processor Version: CPUNR=[any, i586, i686, sse, sse2, avx, avx2] (default is
|
||||||
# i386)
|
# any)
|
||||||
|
# avx is available on Visual C++ 2010 and after.
|
||||||
|
# avx2 is available on Visual C++ 2013 Update 2 and after.
|
||||||
#
|
#
|
||||||
# Version Support: WINVER=[0x0501, 0x0600] (default is 0x0501)
|
# Version Support: WINVER=[0x0501, 0x0502, 0x0600, 0x0601, 0x0602,
|
||||||
|
# 0x0603, 0x0A00] (default is 0x0501)
|
||||||
|
# Supported versions depends on your target SDK, check SDKDDKVer.h
|
||||||
|
# See https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt
|
||||||
#
|
#
|
||||||
# Debug version: DEBUG=yes
|
# Debug version: DEBUG=yes
|
||||||
# Mapfile: MAP=[no, yes or lines] (default is yes)
|
# Mapfile: MAP=[no, yes or lines] (default is yes)
|
||||||
@@ -270,11 +275,31 @@ MAKEFLAGS_GVIMEXT = DEBUG=yes
|
|||||||
!if $(MSVCVER) < 1900
|
!if $(MSVCVER) < 1900
|
||||||
MSVC_MAJOR = ($(MSVCVER) / 100 - 6)
|
MSVC_MAJOR = ($(MSVCVER) / 100 - 6)
|
||||||
MSVCRT_VER = ($(MSVCVER) / 10 - 60)
|
MSVCRT_VER = ($(MSVCVER) / 10 - 60)
|
||||||
|
# Visual C++ 2017 needs special handling
|
||||||
|
# it has an _MSC_VER of 1910->14.1, but is actually v15 with runtime v140
|
||||||
|
!elseif $(MSVCVER) == 1910
|
||||||
|
MSVC_MAJOR = 15
|
||||||
|
MSVCRT_VER = 140
|
||||||
!else
|
!else
|
||||||
MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
|
MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
|
||||||
MSVCRT_VER = ($(MSVCVER) / 10 - 50)
|
MSVCRT_VER = ($(MSVCVER) / 10 - 50)
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
# Calculate MSVC_FULL for Visual C++ 8 and up.
|
||||||
|
!if $(MSVC_MAJOR) >= 8
|
||||||
|
! if [echo MSVC_FULL=_MSC_FULL_VER> msvcfullver.c && $(CC) /EP msvcfullver.c > msvcfullver.~ 2> nul]
|
||||||
|
! message *** ERROR
|
||||||
|
! message Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH.
|
||||||
|
! message This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed.
|
||||||
|
! error Make aborted.
|
||||||
|
! else
|
||||||
|
! include msvcfullver.~
|
||||||
|
! if [del msvcfullver.c msvcfullver.~]
|
||||||
|
! endif
|
||||||
|
! endif
|
||||||
|
!endif
|
||||||
|
|
||||||
|
|
||||||
# Calculate MSVCRT_VER
|
# Calculate MSVCRT_VER
|
||||||
!if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0
|
!if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0
|
||||||
!include msvcrtver.~
|
!include msvcrtver.~
|
||||||
@@ -446,27 +471,95 @@ DEL_TREE = rmdir /s /q
|
|||||||
INTDIR=$(OBJDIR)
|
INTDIR=$(OBJDIR)
|
||||||
OUTDIR=$(OBJDIR)
|
OUTDIR=$(OBJDIR)
|
||||||
|
|
||||||
|
### Validate CPUNR
|
||||||
|
!ifndef CPUNR
|
||||||
|
# default to untargeted code
|
||||||
|
CPUNR = any
|
||||||
|
!elseif "$(CPUNR)" == "i386" || "$(CPUNR)" == "i486"
|
||||||
|
# alias i386 and i486 to i586
|
||||||
|
! message *** WARNING CPUNR=$(CPUNR) is not a valid target architecture.
|
||||||
|
! message Windows XP is the minimum target OS, with a minimum target
|
||||||
|
! message architecture of i586.
|
||||||
|
! message Retargeting to i586
|
||||||
|
CPUNR = i586
|
||||||
|
!elseif "$(CPUNR)" == "pentium4"
|
||||||
|
# alias pentium4 to sse2
|
||||||
|
! message *** WARNING CPUNR=pentium4 is deprecated in favour of sse2.
|
||||||
|
! message Retargeting to sse2.
|
||||||
|
CPUNR = sse2
|
||||||
|
!elseif "$(CPUNR)" != "any" && "$(CPUNR)" != "i586" && "$(CPUNR)" != "i686" && "$(CPUNR)" != "sse" && "$(CPUNR)" != "sse2" && "$(CPUNR)" != "avx" && "$(CPUNR)" != "avx2"
|
||||||
|
! error *** ERROR Unknown target architecture "$(CPUNR)". Make aborted.
|
||||||
|
!endif
|
||||||
|
|
||||||
# Convert processor ID to MVC-compatible number
|
# Convert processor ID to MVC-compatible number
|
||||||
!if $(MSVC_MAJOR) < 8
|
!if $(MSVC_MAJOR) < 8
|
||||||
!if "$(CPUNR)" == "i386"
|
! if "$(CPUNR)" == "i586"
|
||||||
CPUARG = /G3
|
|
||||||
!elseif "$(CPUNR)" == "i486"
|
|
||||||
CPUARG = /G4
|
|
||||||
!elseif "$(CPUNR)" == "i586"
|
|
||||||
CPUARG = /G5
|
CPUARG = /G5
|
||||||
! elseif "$(CPUNR)" == "i686"
|
! elseif "$(CPUNR)" == "i686"
|
||||||
CPUARG = /G6
|
CPUARG = /G6
|
||||||
!elseif "$(CPUNR)" == "pentium4"
|
! elseif "$(CPUNR)" == "sse"
|
||||||
|
CPUARG = /G6 /arch:SSE
|
||||||
|
! elseif "$(CPUNR)" == "sse2"
|
||||||
CPUARG = /G7 /arch:SSE2
|
CPUARG = /G7 /arch:SSE2
|
||||||
|
! elseif "$(CPUNR)" == "avx" || "$(CPUNR)" == "avx2"
|
||||||
|
! message AVX/AVX2 Instruction Sets are not supported by Visual C++ v$(MSVC_MAJOR)
|
||||||
|
! message Falling back to SSE2
|
||||||
|
CPUARG = /G7 /arch:SSE2
|
||||||
|
! elseif "$(CPUNR)" == "any"
|
||||||
|
CPUARG =
|
||||||
|
! endif
|
||||||
|
!else
|
||||||
|
# IA32/SSE/SSE2 are only supported on x86
|
||||||
|
! if "$(ASSEMBLY_ARCHITECTURE)" == "i386" && ("$(CPUNR)" == "i586" || "$(CPUNR)" == "i686" || "$(CPUNR)" == "any")
|
||||||
|
# VC<11 generates fp87 code by default
|
||||||
|
! if $(MSVC_MAJOR) < 11
|
||||||
|
CPUARG =
|
||||||
|
# VC>=11 needs explicit insturctions to generate fp87 code
|
||||||
|
! else
|
||||||
|
CPUARG = /arch:IA32
|
||||||
|
! endif
|
||||||
|
! elseif "$(ASSEMBLY_ARCHITECTURE)" == "i386" && "$(CPUNR)" == "sse"
|
||||||
|
CPUARG = /arch:SSE
|
||||||
|
! elseif "$(ASSEMBLY_ARCHITECTURE)" == "i386" && "$(CPUNR)" == "sse2"
|
||||||
|
CPUARG = /arch:SSE2
|
||||||
|
! elseif "$(CPUNR)" == "avx"
|
||||||
|
# AVX is only supported by VC 10 and up
|
||||||
|
! if $(MSVC_MAJOR) < 10
|
||||||
|
! message AVX Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)
|
||||||
|
! if "$(ASSEMBLY_ARCHITECTURE)" == "i386"
|
||||||
|
! message Falling back to SSE2
|
||||||
|
CPUARG = /arch:SSE2
|
||||||
! else
|
! else
|
||||||
CPUARG =
|
CPUARG =
|
||||||
! endif
|
! endif
|
||||||
! else
|
! else
|
||||||
# VC8/9/10 only allows specifying SSE architecture but only for 32bit
|
CPUARG = /arch:AVX
|
||||||
!if "$(ASSEMBLY_ARCHITECTURE)" == "i386" && "$(CPUNR)" == "pentium4"
|
! endif
|
||||||
|
! elseif "$(CPUNR)" == "avx2"
|
||||||
|
# AVX is only supported by VC 10 and up
|
||||||
|
! if $(MSVC_MAJOR) < 10
|
||||||
|
! message AVX2 Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)
|
||||||
|
! if "$(ASSEMBLY_ARCHITECTURE)" == "i386"
|
||||||
|
! message Falling back to SSE2
|
||||||
CPUARG = /arch:SSE2
|
CPUARG = /arch:SSE2
|
||||||
|
! else
|
||||||
|
CPUARG =
|
||||||
|
! endif
|
||||||
|
# AVX2 is only supported by VC 12U2 and up
|
||||||
|
# 180030501 is the full version number for Visual Studio 2013/VC 12 Update 2
|
||||||
|
! elseif $(MSVC_FULL) < 180030501
|
||||||
|
! message AVX2 Instruction Set is not supported by Visual C++ v$(MSVC_MAJOR)-$(MSVC_FULL)
|
||||||
|
! message Falling back to AVX
|
||||||
|
CPUARG = /arch:AVX
|
||||||
|
! else
|
||||||
|
CPUARG = /arch:AVX2
|
||||||
! endif
|
! endif
|
||||||
! endif
|
! endif
|
||||||
|
!endif
|
||||||
|
|
||||||
|
# Pass CPUARG to GVimExt, to avoid using version-dependent defaults
|
||||||
|
MAKEFLAGS_GVIMEXT = $(MAKEFLAGS_GVIMEXT) CPUARG="$(CPUARG)"
|
||||||
|
|
||||||
|
|
||||||
LIBC =
|
LIBC =
|
||||||
DEBUGINFO = /Zi
|
DEBUGINFO = /Zi
|
||||||
|
|||||||
77
src/Makefile
77
src/Makefile
@@ -482,6 +482,11 @@ CClink = $(CC)
|
|||||||
# Uncomment this when you do not want inter process communication.
|
# Uncomment this when you do not want inter process communication.
|
||||||
#CONF_OPT_CHANNEL = --disable-channel
|
#CONF_OPT_CHANNEL = --disable-channel
|
||||||
|
|
||||||
|
# TERMINAL - Terminal emulator support, :terminal command. Requires the
|
||||||
|
# channel feature.
|
||||||
|
# Uncomment this when you want terminal emulator support.
|
||||||
|
#CONF_OPT_TERMINAL = --enable-terminal
|
||||||
|
|
||||||
# MULTIBYTE - To edit multi-byte characters.
|
# MULTIBYTE - To edit multi-byte characters.
|
||||||
# Uncomment this when you want to edit a multibyte language.
|
# Uncomment this when you want to edit a multibyte language.
|
||||||
# It's automatically enabled with normal features, GTK or IME support.
|
# It's automatically enabled with normal features, GTK or IME support.
|
||||||
@@ -598,6 +603,9 @@ CClink = $(CC)
|
|||||||
|
|
||||||
# Use this with GCC to check for mistakes, unused arguments, etc.
|
# Use this with GCC to check for mistakes, unused arguments, etc.
|
||||||
#CFLAGS = -g -Wall -Wextra -Wshadow -Wmissing-prototypes -Wunreachable-code -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
|
#CFLAGS = -g -Wall -Wextra -Wshadow -Wmissing-prototypes -Wunreachable-code -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
|
||||||
|
# Add -Wpedantic to find // comments and other C99 constructs.
|
||||||
|
# Better disable Perl and Python to avoid a lot of warnings.
|
||||||
|
#CFLAGS = -g -Wall -Wextra -Wshadow -Wmissing-prototypes -Wpedantic -Wunreachable-code -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
|
||||||
#CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DU_DEBUG
|
#CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DU_DEBUG
|
||||||
#PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
|
#PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
|
||||||
#MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
|
#MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
|
||||||
@@ -1371,6 +1379,13 @@ ALL_GUI_PRO = gui.pro gui_gtk.pro gui_motif.pro gui_xmdlg.pro gui_athena.pro gu
|
|||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
TERM_DEPS = \
|
||||||
|
libvterm/include/vterm.h \
|
||||||
|
libvterm/include/vterm_keycodes.h \
|
||||||
|
libvterm/src/rect.h \
|
||||||
|
libvterm/src/utf8.h \
|
||||||
|
libvterm/src/vterm_internal.h
|
||||||
|
|
||||||
### Command to create dependencies based on #include "..."
|
### Command to create dependencies based on #include "..."
|
||||||
### prototype headers are ignored due to -DPROTO, system
|
### prototype headers are ignored due to -DPROTO, system
|
||||||
### headers #include <...> are ignored if we use the -MM option, as
|
### headers #include <...> are ignored if we use the -MM option, as
|
||||||
@@ -1560,6 +1575,7 @@ BASIC_SRC = \
|
|||||||
syntax.c \
|
syntax.c \
|
||||||
tag.c \
|
tag.c \
|
||||||
term.c \
|
term.c \
|
||||||
|
terminal.c \
|
||||||
ui.c \
|
ui.c \
|
||||||
undo.c \
|
undo.c \
|
||||||
userfunc.c \
|
userfunc.c \
|
||||||
@@ -1569,6 +1585,7 @@ BASIC_SRC = \
|
|||||||
|
|
||||||
SRC = $(BASIC_SRC) \
|
SRC = $(BASIC_SRC) \
|
||||||
$(GUI_SRC) \
|
$(GUI_SRC) \
|
||||||
|
$(TERM_SRC) \
|
||||||
$(HANGULIN_SRC) \
|
$(HANGULIN_SRC) \
|
||||||
$(LUA_SRC) \
|
$(LUA_SRC) \
|
||||||
$(MZSCHEME_SRC) \
|
$(MZSCHEME_SRC) \
|
||||||
@@ -1610,7 +1627,7 @@ ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(UNITTEST_SRC) $(EXTRA_SRC)
|
|||||||
LINT_SRC = $(BASIC_SRC) $(GUI_SRC) $(HANGULIN_SRC) \
|
LINT_SRC = $(BASIC_SRC) $(GUI_SRC) $(HANGULIN_SRC) \
|
||||||
$(PYTHON_SRC) $(PYTHON3_SRC) $(TCL_SRC) \
|
$(PYTHON_SRC) $(PYTHON3_SRC) $(TCL_SRC) \
|
||||||
$(WORKSHOP_SRC) $(WSDEBUG_SRC) \
|
$(WORKSHOP_SRC) $(WSDEBUG_SRC) \
|
||||||
$(NETBEANS_SRC) $(CHANNEL_SRC)
|
$(NETBEANS_SRC) $(CHANNEL_SRC) $(TERM_SRC)
|
||||||
#LINT_SRC = $(SRC)
|
#LINT_SRC = $(SRC)
|
||||||
#LINT_SRC = $(ALL_SRC)
|
#LINT_SRC = $(ALL_SRC)
|
||||||
#LINT_SRC = $(BASIC_SRC)
|
#LINT_SRC = $(BASIC_SRC)
|
||||||
@@ -1665,12 +1682,14 @@ OBJ_COMMON = \
|
|||||||
objects/syntax.o \
|
objects/syntax.o \
|
||||||
objects/tag.o \
|
objects/tag.o \
|
||||||
objects/term.o \
|
objects/term.o \
|
||||||
|
objects/terminal.o \
|
||||||
objects/ui.o \
|
objects/ui.o \
|
||||||
objects/undo.o \
|
objects/undo.o \
|
||||||
objects/userfunc.o \
|
objects/userfunc.o \
|
||||||
objects/version.o \
|
objects/version.o \
|
||||||
objects/window.o \
|
objects/window.o \
|
||||||
$(GUI_OBJ) \
|
$(GUI_OBJ) \
|
||||||
|
$(TERM_OBJ) \
|
||||||
$(LUA_OBJ) \
|
$(LUA_OBJ) \
|
||||||
$(MZSCHEME_OBJ) \
|
$(MZSCHEME_OBJ) \
|
||||||
$(PERL_OBJ) \
|
$(PERL_OBJ) \
|
||||||
@@ -1795,6 +1814,7 @@ PRO_AUTO = \
|
|||||||
syntax.pro \
|
syntax.pro \
|
||||||
tag.pro \
|
tag.pro \
|
||||||
term.pro \
|
term.pro \
|
||||||
|
terminal.pro \
|
||||||
termlib.pro \
|
termlib.pro \
|
||||||
ui.pro \
|
ui.pro \
|
||||||
undo.pro \
|
undo.pro \
|
||||||
@@ -1848,7 +1868,7 @@ config auto/config.mk: auto/configure config.mk.in config.h.in
|
|||||||
$(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
|
$(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
|
||||||
$(CONF_OPT_FEAT) $(CONF_TERM_LIB) \
|
$(CONF_OPT_FEAT) $(CONF_TERM_LIB) \
|
||||||
$(CONF_OPT_COMPBY) $(CONF_OPT_ACL) $(CONF_OPT_NETBEANS) \
|
$(CONF_OPT_COMPBY) $(CONF_OPT_ACL) $(CONF_OPT_NETBEANS) \
|
||||||
$(CONF_OPT_CHANNEL) \
|
$(CONF_OPT_CHANNEL) $(CONF_OPT_TERMINAL) \
|
||||||
$(CONF_ARGS) $(CONF_OPT_MZSCHEME) $(CONF_OPT_PLTHOME) \
|
$(CONF_ARGS) $(CONF_OPT_MZSCHEME) $(CONF_OPT_PLTHOME) \
|
||||||
$(CONF_OPT_LUA) $(CONF_OPT_LUA_PREFIX) \
|
$(CONF_OPT_LUA) $(CONF_OPT_LUA_PREFIX) \
|
||||||
$(CONF_OPT_SYSMOUSE); \
|
$(CONF_OPT_SYSMOUSE); \
|
||||||
@@ -2086,11 +2106,11 @@ test1 \
|
|||||||
test20 test21 test22 test23 test24 test25 test26 test27 test28 test29 \
|
test20 test21 test22 test23 test24 test25 test26 test27 test28 test29 \
|
||||||
test30 test31 test32 test33 test34 test36 test37 test38 test39 \
|
test30 test31 test32 test33 test34 test36 test37 test38 test39 \
|
||||||
test40 test41 test42 test43 test44 test45 test48 test49 \
|
test40 test41 test42 test43 test44 test45 test48 test49 \
|
||||||
test50 test51 test52 test53 test54 test55 test56 test57 test58 test59 \
|
test50 test51 test52 test53 test54 test55 test56 test57 test59 \
|
||||||
test60 test64 test66 test67 test68 test69 \
|
test60 test64 test66 test67 test68 test69 \
|
||||||
test70 test72 test73 test74 test75 test77 test78 test79 \
|
test70 test72 test73 test74 test75 test77 test78 test79 \
|
||||||
test80 test82 test83 test84 test85 test86 test87 test88 \
|
test80 test83 test84 test85 test86 test87 test88 \
|
||||||
test90 test91 test94 test95 test97 test98 test99 \
|
test91 test94 test95 test97 test98 test99 \
|
||||||
test100 test101 test103 test104 test107 test108:
|
test100 test101 test103 test104 test107 test108:
|
||||||
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
|
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
|
||||||
|
|
||||||
@@ -2207,6 +2227,7 @@ test_arglist \
|
|||||||
test_search \
|
test_search \
|
||||||
test_searchpos \
|
test_searchpos \
|
||||||
test_set \
|
test_set \
|
||||||
|
test_sha256 \
|
||||||
test_signs \
|
test_signs \
|
||||||
test_smartindent \
|
test_smartindent \
|
||||||
test_sort \
|
test_sort \
|
||||||
@@ -2233,6 +2254,7 @@ test_arglist \
|
|||||||
test_unlet \
|
test_unlet \
|
||||||
test_usercommands \
|
test_usercommands \
|
||||||
test_utf8 \
|
test_utf8 \
|
||||||
|
test_utf8_comparisons \
|
||||||
test_viminfo \
|
test_viminfo \
|
||||||
test_vimscript \
|
test_vimscript \
|
||||||
test_visual \
|
test_visual \
|
||||||
@@ -2788,7 +2810,7 @@ SHADOWDIR = shadow
|
|||||||
|
|
||||||
shadow: runtime pixmaps
|
shadow: runtime pixmaps
|
||||||
$(MKDIR_P) $(SHADOWDIR)
|
$(MKDIR_P) $(SHADOWDIR)
|
||||||
cd $(SHADOWDIR); ln -s ../*.[chm] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../vimtutor ../gvimtutor ../install-sh .
|
cd $(SHADOWDIR); ln -s ../*.[chm] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../libvterm ../vimtutor ../gvimtutor ../install-sh .
|
||||||
mkdir $(SHADOWDIR)/auto
|
mkdir $(SHADOWDIR)/auto
|
||||||
cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
|
cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
|
||||||
$(MKDIR_P) $(SHADOWDIR)/po
|
$(MKDIR_P) $(SHADOWDIR)/po
|
||||||
@@ -3226,6 +3248,9 @@ objects/tag.o: tag.c
|
|||||||
objects/term.o: term.c
|
objects/term.o: term.c
|
||||||
$(CCC) -o $@ term.c
|
$(CCC) -o $@ term.c
|
||||||
|
|
||||||
|
objects/terminal.o: terminal.c $(TERM_DEPS)
|
||||||
|
$(CCC) -o $@ terminal.c
|
||||||
|
|
||||||
objects/ui.o: ui.c
|
objects/ui.o: ui.c
|
||||||
$(CCC) -o $@ ui.c
|
$(CCC) -o $@ ui.c
|
||||||
|
|
||||||
@@ -3253,6 +3278,34 @@ objects/channel.o: channel.c
|
|||||||
Makefile:
|
Makefile:
|
||||||
@echo The name of the makefile MUST be "Makefile" (with capital M)!!!!
|
@echo The name of the makefile MUST be "Makefile" (with capital M)!!!!
|
||||||
|
|
||||||
|
CCCTERM = $(CCC) -Ilibvterm/include -DINLINE=""
|
||||||
|
objects/term_encoding.o: libvterm/src/encoding.c $(TERM_DEPS)
|
||||||
|
$(CCCTERM) -o $@ libvterm/src/encoding.c
|
||||||
|
|
||||||
|
objects/term_keyboard.o: libvterm/src/keyboard.c $(TERM_DEPS)
|
||||||
|
$(CCCTERM) -o $@ libvterm/src/keyboard.c
|
||||||
|
|
||||||
|
objects/term_mouse.o: libvterm/src/mouse.c $(TERM_DEPS)
|
||||||
|
$(CCCTERM) -o $@ libvterm/src/mouse.c
|
||||||
|
|
||||||
|
objects/term_parser.o: libvterm/src/parser.c $(TERM_DEPS)
|
||||||
|
$(CCCTERM) -o $@ libvterm/src/parser.c
|
||||||
|
|
||||||
|
objects/term_pen.o: libvterm/src/pen.c $(TERM_DEPS)
|
||||||
|
$(CCCTERM) -o $@ libvterm/src/pen.c
|
||||||
|
|
||||||
|
objects/term_screen.o: libvterm/src/screen.c $(TERM_DEPS)
|
||||||
|
$(CCCTERM) -o $@ libvterm/src/screen.c
|
||||||
|
|
||||||
|
objects/term_state.o: libvterm/src/state.c $(TERM_DEPS)
|
||||||
|
$(CCCTERM) -o $@ libvterm/src/state.c
|
||||||
|
|
||||||
|
objects/term_unicode.o: libvterm/src/unicode.c $(TERM_DEPS)
|
||||||
|
$(CCCTERM) -o $@ libvterm/src/unicode.c
|
||||||
|
|
||||||
|
objects/term_vterm.o: libvterm/src/vterm.c $(TERM_DEPS)
|
||||||
|
$(CCCTERM) -o $@ libvterm/src/vterm.c
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
### MacOS X installation
|
### MacOS X installation
|
||||||
###
|
###
|
||||||
@@ -3397,7 +3450,7 @@ objects/ex_cmds2.o: ex_cmds2.c vim.h auto/config.h feature.h os_unix.h \
|
|||||||
objects/ex_docmd.o: ex_docmd.c vim.h auto/config.h feature.h os_unix.h \
|
objects/ex_docmd.o: ex_docmd.c vim.h auto/config.h feature.h os_unix.h \
|
||||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||||
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
||||||
proto.h globals.h farsi.h arabic.h
|
proto.h globals.h farsi.h arabic.h ex_cmdidxs.h
|
||||||
objects/ex_eval.o: ex_eval.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
|
objects/ex_eval.o: ex_eval.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
|
||||||
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
||||||
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
||||||
@@ -3501,7 +3554,7 @@ objects/option.o: option.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h
|
|||||||
objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
|
objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
|
||||||
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
||||||
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
||||||
globals.h farsi.h arabic.h if_mzsch.h os_unixx.h
|
globals.h farsi.h arabic.h os_unixx.h
|
||||||
objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
|
objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
|
||||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||||
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
||||||
@@ -3550,6 +3603,10 @@ objects/term.o: term.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
|
|||||||
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
|
||||||
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
|
||||||
globals.h farsi.h arabic.h
|
globals.h farsi.h arabic.h
|
||||||
|
objects/terminal.o: terminal.c vim.h auto/config.h feature.h os_unix.h \
|
||||||
|
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||||
|
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
||||||
|
proto.h globals.h farsi.h arabic.h
|
||||||
objects/ui.o: ui.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
|
objects/ui.o: ui.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
|
||||||
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
|
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
|
||||||
proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h globals.h farsi.h \
|
proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h globals.h farsi.h \
|
||||||
@@ -3659,7 +3716,7 @@ objects/json_test.o: json_test.c main.c vim.h auto/config.h feature.h os_unix.h
|
|||||||
objects/kword_test.o: kword_test.c main.c vim.h auto/config.h feature.h os_unix.h \
|
objects/kword_test.o: kword_test.c main.c vim.h auto/config.h feature.h os_unix.h \
|
||||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||||
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
||||||
proto.h globals.h farsi.h arabic.h charset.c mbyte.c
|
proto.h globals.h farsi.h arabic.h charset.c
|
||||||
objects/memfile_test.o: memfile_test.c main.c vim.h auto/config.h feature.h \
|
objects/memfile_test.o: memfile_test.c main.c vim.h auto/config.h feature.h \
|
||||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
|
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
|
||||||
structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h \
|
structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h \
|
||||||
@@ -3679,7 +3736,7 @@ objects/if_lua.o: if_lua.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h
|
|||||||
objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
|
objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
|
||||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||||
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
||||||
proto.h globals.h farsi.h arabic.h if_mzsch.h mzscheme_base.c
|
proto.h globals.h farsi.h arabic.h if_mzsch.h
|
||||||
objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
|
objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
|
||||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
|
||||||
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
|
||||||
|
|||||||
33
src/auto/configure
vendored
33
src/auto/configure
vendored
@@ -655,6 +655,8 @@ X_PRE_LIBS
|
|||||||
X_CFLAGS
|
X_CFLAGS
|
||||||
XMKMF
|
XMKMF
|
||||||
xmkmfpath
|
xmkmfpath
|
||||||
|
TERM_OBJ
|
||||||
|
TERM_SRC
|
||||||
CHANNEL_OBJ
|
CHANNEL_OBJ
|
||||||
CHANNEL_SRC
|
CHANNEL_SRC
|
||||||
NETBEANS_OBJ
|
NETBEANS_OBJ
|
||||||
@@ -814,6 +816,7 @@ enable_cscope
|
|||||||
enable_workshop
|
enable_workshop
|
||||||
enable_netbeans
|
enable_netbeans
|
||||||
enable_channel
|
enable_channel
|
||||||
|
enable_terminal
|
||||||
enable_multibyte
|
enable_multibyte
|
||||||
enable_hangulinput
|
enable_hangulinput
|
||||||
enable_xim
|
enable_xim
|
||||||
@@ -1491,6 +1494,7 @@ Optional Features:
|
|||||||
--enable-workshop Include Sun Visual Workshop support.
|
--enable-workshop Include Sun Visual Workshop support.
|
||||||
--disable-netbeans Disable NetBeans integration support.
|
--disable-netbeans Disable NetBeans integration support.
|
||||||
--disable-channel Disable process communication support.
|
--disable-channel Disable process communication support.
|
||||||
|
--enable-terminal Disable terminal emulation support.
|
||||||
--enable-multibyte Include multibyte editing support.
|
--enable-multibyte Include multibyte editing support.
|
||||||
--enable-hangulinput Include Hangul input support.
|
--enable-hangulinput Include Hangul input support.
|
||||||
--enable-xim Include XIM input support.
|
--enable-xim Include XIM input support.
|
||||||
@@ -7464,6 +7468,35 @@ if test "$enable_channel" = "yes"; then
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-terminal argument" >&5
|
||||||
|
$as_echo_n "checking --enable-terminal argument... " >&6; }
|
||||||
|
# Check whether --enable-terminal was given.
|
||||||
|
if test "${enable_terminal+set}" = set; then :
|
||||||
|
enableval=$enable_terminal; enable_terminal="yes"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_terminal" = "yes"; then
|
||||||
|
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot use terminal emulator with tiny or small features" >&5
|
||||||
|
$as_echo "cannot use terminal emulator with tiny or small features" >&6; }
|
||||||
|
enable_terminal="no"
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||||
|
$as_echo "yes" >&6; }
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
fi
|
||||||
|
if test "$enable_terminal" = "yes"; then
|
||||||
|
$as_echo "#define FEAT_TERMINAL 1" >>confdefs.h
|
||||||
|
|
||||||
|
TERM_SRC="libvterm/src/encoding.c libvterm/src/keyboard.c libvterm/src/mouse.c libvterm/src/parser.c libvterm/src/pen.c libvterm/src/screen.c libvterm/src/state.c libvterm/src/unicode.c libvterm/src/vterm.c"
|
||||||
|
|
||||||
|
TERM_OBJ="objects/term_encoding.o objects/term_keyboard.o objects/term_mouse.o objects/term_parser.o objects/term_pen.o objects/term_screen.o objects/term_state.o objects/term_unicode.o objects/term_vterm.o"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-multibyte argument" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-multibyte argument" >&5
|
||||||
$as_echo_n "checking --enable-multibyte argument... " >&6; }
|
$as_echo_n "checking --enable-multibyte argument... " >&6; }
|
||||||
# Check whether --enable-multibyte was given.
|
# Check whether --enable-multibyte was given.
|
||||||
|
|||||||
@@ -372,7 +372,7 @@ open_buffer(
|
|||||||
set_bufref(bufref_T *bufref, buf_T *buf)
|
set_bufref(bufref_T *bufref, buf_T *buf)
|
||||||
{
|
{
|
||||||
bufref->br_buf = buf;
|
bufref->br_buf = buf;
|
||||||
bufref->br_fnum = buf->b_fnum;
|
bufref->br_fnum = buf == NULL ? 0 : buf->b_fnum;
|
||||||
bufref->br_buf_free_count = buf_free_count;
|
bufref->br_buf_free_count = buf_free_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -431,6 +431,9 @@
|
|||||||
/* Define if you want to include process communication. */
|
/* Define if you want to include process communication. */
|
||||||
#undef FEAT_JOB_CHANNEL
|
#undef FEAT_JOB_CHANNEL
|
||||||
|
|
||||||
|
/* Define if you want to include terminal emulator support. */
|
||||||
|
#undef FEAT_TERMINAL
|
||||||
|
|
||||||
/* Define default global runtime path */
|
/* Define default global runtime path */
|
||||||
#undef RUNTIME_GLOBAL
|
#undef RUNTIME_GLOBAL
|
||||||
|
|
||||||
|
|||||||
@@ -91,6 +91,8 @@ NETBEANS_SRC = @NETBEANS_SRC@
|
|||||||
NETBEANS_OBJ = @NETBEANS_OBJ@
|
NETBEANS_OBJ = @NETBEANS_OBJ@
|
||||||
CHANNEL_SRC = @CHANNEL_SRC@
|
CHANNEL_SRC = @CHANNEL_SRC@
|
||||||
CHANNEL_OBJ = @CHANNEL_OBJ@
|
CHANNEL_OBJ = @CHANNEL_OBJ@
|
||||||
|
TERM_SRC = @TERM_SRC@
|
||||||
|
TERM_OBJ = @TERM_OBJ@
|
||||||
|
|
||||||
RUBY = @vi_cv_path_ruby@
|
RUBY = @vi_cv_path_ruby@
|
||||||
RUBY_SRC = @RUBY_SRC@
|
RUBY_SRC = @RUBY_SRC@
|
||||||
|
|||||||
@@ -2028,6 +2028,28 @@ if test "$enable_channel" = "yes"; then
|
|||||||
AC_SUBST(CHANNEL_OBJ)
|
AC_SUBST(CHANNEL_OBJ)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(--enable-terminal argument)
|
||||||
|
AC_ARG_ENABLE(terminal,
|
||||||
|
[ --enable-terminal Disable terminal emulation support.],
|
||||||
|
[enable_terminal="yes"], )
|
||||||
|
if test "$enable_terminal" = "yes"; then
|
||||||
|
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
|
||||||
|
AC_MSG_RESULT([cannot use terminal emulator with tiny or small features])
|
||||||
|
enable_terminal="no"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
if test "$enable_terminal" = "yes"; then
|
||||||
|
AC_DEFINE(FEAT_TERMINAL)
|
||||||
|
TERM_SRC="libvterm/src/encoding.c libvterm/src/keyboard.c libvterm/src/mouse.c libvterm/src/parser.c libvterm/src/pen.c libvterm/src/screen.c libvterm/src/state.c libvterm/src/unicode.c libvterm/src/vterm.c"
|
||||||
|
AC_SUBST(TERM_SRC)
|
||||||
|
TERM_OBJ="objects/term_encoding.o objects/term_keyboard.o objects/term_mouse.o objects/term_parser.o objects/term_pen.o objects/term_screen.o objects/term_state.o objects/term_unicode.o objects/term_vterm.o"
|
||||||
|
AC_SUBST(TERM_OBJ)
|
||||||
|
fi
|
||||||
|
|
||||||
AC_MSG_CHECKING(--enable-multibyte argument)
|
AC_MSG_CHECKING(--enable-multibyte argument)
|
||||||
AC_ARG_ENABLE(multibyte,
|
AC_ARG_ENABLE(multibyte,
|
||||||
[ --enable-multibyte Include multibyte editing support.], ,
|
[ --enable-multibyte Include multibyte editing support.], ,
|
||||||
|
|||||||
18
src/edit.c
18
src/edit.c
@@ -4308,9 +4308,17 @@ ins_compl_get_exp(pos_T *ini)
|
|||||||
{
|
{
|
||||||
ins_buf = curbuf;
|
ins_buf = curbuf;
|
||||||
first_match_pos = *ini;
|
first_match_pos = *ini;
|
||||||
/* So that ^N can match word immediately after cursor */
|
/* Move the cursor back one character so that ^N can match the
|
||||||
if (ctrl_x_mode == 0)
|
* word immediately after the cursor. */
|
||||||
dec(&first_match_pos);
|
if (ctrl_x_mode == 0 && dec(&first_match_pos) < 0)
|
||||||
|
{
|
||||||
|
/* Move the cursor to after the last character in the
|
||||||
|
* buffer, so that word at start of buffer is found
|
||||||
|
* correctly. */
|
||||||
|
first_match_pos.lnum = ins_buf->b_ml.ml_line_count;
|
||||||
|
first_match_pos.col =
|
||||||
|
(colnr_T)STRLEN(ml_get(first_match_pos.lnum));
|
||||||
|
}
|
||||||
last_match_pos = first_match_pos;
|
last_match_pos = first_match_pos;
|
||||||
type = 0;
|
type = 0;
|
||||||
|
|
||||||
@@ -4512,7 +4520,7 @@ ins_compl_get_exp(pos_T *ini)
|
|||||||
found_new_match = searchit(NULL, ins_buf, pos,
|
found_new_match = searchit(NULL, ins_buf, pos,
|
||||||
compl_direction,
|
compl_direction,
|
||||||
compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG,
|
compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG,
|
||||||
RE_LAST, (linenr_T)0, NULL);
|
RE_LAST, (linenr_T)0, NULL, NULL);
|
||||||
--msg_silent;
|
--msg_silent;
|
||||||
if (!compl_started || set_match_pos)
|
if (!compl_started || set_match_pos)
|
||||||
{
|
{
|
||||||
@@ -7321,7 +7329,9 @@ oneleft(void)
|
|||||||
#ifdef FEAT_VIRTUALEDIT
|
#ifdef FEAT_VIRTUALEDIT
|
||||||
if (virtual_active())
|
if (virtual_active())
|
||||||
{
|
{
|
||||||
|
# ifdef FEAT_LINEBREAK
|
||||||
int width;
|
int width;
|
||||||
|
# endif
|
||||||
int v = getviscol();
|
int v = getviscol();
|
||||||
|
|
||||||
if (v == 0)
|
if (v == 0)
|
||||||
|
|||||||
@@ -3191,7 +3191,11 @@ f_feedkeys(typval_T *argvars, typval_T *rettv UNUSED)
|
|||||||
ins_typebuf(keys_esc, (remap ? REMAP_YES : REMAP_NONE),
|
ins_typebuf(keys_esc, (remap ? REMAP_YES : REMAP_NONE),
|
||||||
insert ? 0 : typebuf.tb_len, !typed, FALSE);
|
insert ? 0 : typebuf.tb_len, !typed, FALSE);
|
||||||
vim_free(keys_esc);
|
vim_free(keys_esc);
|
||||||
if (vgetc_busy)
|
if (vgetc_busy
|
||||||
|
#ifdef FEAT_TIMERS
|
||||||
|
|| timer_busy
|
||||||
|
#endif
|
||||||
|
)
|
||||||
typebuf_was_filled = TRUE;
|
typebuf_was_filled = TRUE;
|
||||||
if (execute)
|
if (execute)
|
||||||
{
|
{
|
||||||
@@ -5866,6 +5870,9 @@ f_has(typval_T *argvars, typval_T *rettv)
|
|||||||
#ifdef FEAT_TERMGUICOLORS
|
#ifdef FEAT_TERMGUICOLORS
|
||||||
"termguicolors",
|
"termguicolors",
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef FEAT_TERMINAL
|
||||||
|
"terminal",
|
||||||
|
#endif
|
||||||
#ifdef TERMINFO
|
#ifdef TERMINFO
|
||||||
"terminfo",
|
"terminfo",
|
||||||
#endif
|
#endif
|
||||||
@@ -9281,7 +9288,7 @@ search_cmn(typval_T *argvars, pos_T *match_pos, int *flagsp)
|
|||||||
|
|
||||||
pos = save_cursor = curwin->w_cursor;
|
pos = save_cursor = curwin->w_cursor;
|
||||||
subpatnum = searchit(curwin, curbuf, &pos, dir, pat, 1L,
|
subpatnum = searchit(curwin, curbuf, &pos, dir, pat, 1L,
|
||||||
options, RE_SEARCH, (linenr_T)lnum_stop, &tm);
|
options, RE_SEARCH, (linenr_T)lnum_stop, &tm, NULL);
|
||||||
if (subpatnum != FAIL)
|
if (subpatnum != FAIL)
|
||||||
{
|
{
|
||||||
if (flags & SP_SUBPAT)
|
if (flags & SP_SUBPAT)
|
||||||
@@ -9619,7 +9626,7 @@ do_searchpair(
|
|||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
n = searchit(curwin, curbuf, &pos, dir, pat, 1L,
|
n = searchit(curwin, curbuf, &pos, dir, pat, 1L,
|
||||||
options, RE_SEARCH, lnum_stop, &tm);
|
options, RE_SEARCH, lnum_stop, &tm, NULL);
|
||||||
if (n == FAIL || (firstpos.lnum != 0 && EQUAL_POS(pos, firstpos)))
|
if (n == FAIL || (firstpos.lnum != 0 && EQUAL_POS(pos, firstpos)))
|
||||||
/* didn't find it or found the first match again: FAIL */
|
/* didn't find it or found the first match again: FAIL */
|
||||||
break;
|
break;
|
||||||
@@ -10461,8 +10468,10 @@ f_sha256(typval_T *argvars, typval_T *rettv)
|
|||||||
static void
|
static void
|
||||||
f_shellescape(typval_T *argvars, typval_T *rettv)
|
f_shellescape(typval_T *argvars, typval_T *rettv)
|
||||||
{
|
{
|
||||||
|
int do_special = non_zero_arg(&argvars[1]);
|
||||||
|
|
||||||
rettv->vval.v_string = vim_strsave_shellescape(
|
rettv->vval.v_string = vim_strsave_shellescape(
|
||||||
get_tv_string(&argvars[0]), non_zero_arg(&argvars[1]), TRUE);
|
get_tv_string(&argvars[0]), do_special, do_special);
|
||||||
rettv->v_type = VAR_STRING;
|
rettv->v_type = VAR_STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11839,8 +11848,8 @@ f_synconcealed(typval_T *argvars UNUSED, typval_T *rettv)
|
|||||||
if ((syntax_flags & HL_CONCEAL) && curwin->w_p_cole < 3)
|
if ((syntax_flags & HL_CONCEAL) && curwin->w_p_cole < 3)
|
||||||
{
|
{
|
||||||
cchar = syn_get_sub_char();
|
cchar = syn_get_sub_char();
|
||||||
if (cchar == NUL && curwin->w_p_cole == 1 && lcs_conceal != NUL)
|
if (cchar == NUL && curwin->w_p_cole == 1)
|
||||||
cchar = lcs_conceal;
|
cchar = (lcs_conceal == NUL) ? ' ' : lcs_conceal;
|
||||||
if (cchar != NUL)
|
if (cchar != NUL)
|
||||||
{
|
{
|
||||||
# ifdef FEAT_MBYTE
|
# ifdef FEAT_MBYTE
|
||||||
@@ -12392,6 +12401,7 @@ f_test_override(typval_T *argvars, typval_T *rettv UNUSED)
|
|||||||
{
|
{
|
||||||
char_u *name = (char_u *)"";
|
char_u *name = (char_u *)"";
|
||||||
int val;
|
int val;
|
||||||
|
static int save_starting = -1;
|
||||||
|
|
||||||
if (argvars[0].v_type != VAR_STRING
|
if (argvars[0].v_type != VAR_STRING
|
||||||
|| (argvars[1].v_type) != VAR_NUMBER)
|
|| (argvars[1].v_type) != VAR_NUMBER)
|
||||||
@@ -12405,10 +12415,29 @@ f_test_override(typval_T *argvars, typval_T *rettv UNUSED)
|
|||||||
disable_redraw_for_testing = val;
|
disable_redraw_for_testing = val;
|
||||||
else if (STRCMP(name, (char_u *)"char_avail") == 0)
|
else if (STRCMP(name, (char_u *)"char_avail") == 0)
|
||||||
disable_char_avail_for_testing = val;
|
disable_char_avail_for_testing = val;
|
||||||
|
else if (STRCMP(name, (char_u *)"starting") == 0)
|
||||||
|
{
|
||||||
|
if (val)
|
||||||
|
{
|
||||||
|
if (save_starting < 0)
|
||||||
|
save_starting = starting;
|
||||||
|
starting = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
starting = save_starting;
|
||||||
|
save_starting = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (STRCMP(name, (char_u *)"ALL") == 0)
|
else if (STRCMP(name, (char_u *)"ALL") == 0)
|
||||||
{
|
{
|
||||||
disable_char_avail_for_testing = FALSE;
|
disable_char_avail_for_testing = FALSE;
|
||||||
disable_redraw_for_testing = FALSE;
|
disable_redraw_for_testing = FALSE;
|
||||||
|
if (save_starting >= 0)
|
||||||
|
{
|
||||||
|
starting = save_starting;
|
||||||
|
save_starting = -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
EMSG2(_(e_invarg2), name);
|
EMSG2(_(e_invarg2), name);
|
||||||
@@ -13177,7 +13206,10 @@ f_writefile(typval_T *argvars, typval_T *rettv)
|
|||||||
char_u *fname;
|
char_u *fname;
|
||||||
FILE *fd;
|
FILE *fd;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
listitem_T *li;
|
||||||
|
list_T *list;
|
||||||
|
|
||||||
|
rettv->vval.v_number = -1;
|
||||||
if (check_restricted() || check_secure())
|
if (check_restricted() || check_secure())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -13186,20 +13218,31 @@ f_writefile(typval_T *argvars, typval_T *rettv)
|
|||||||
EMSG2(_(e_listarg), "writefile()");
|
EMSG2(_(e_listarg), "writefile()");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (argvars[0].vval.v_list == NULL)
|
list = argvars[0].vval.v_list;
|
||||||
|
if (list == NULL)
|
||||||
|
return;
|
||||||
|
for (li = list->lv_first; li != NULL; li = li->li_next)
|
||||||
|
if (get_tv_string_chk(&li->li_tv) == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (argvars[2].v_type != VAR_UNKNOWN)
|
if (argvars[2].v_type != VAR_UNKNOWN)
|
||||||
{
|
{
|
||||||
if (vim_strchr(get_tv_string(&argvars[2]), 'b') != NULL)
|
char_u *arg2 = get_tv_string_chk(&argvars[2]);
|
||||||
|
|
||||||
|
if (arg2 == NULL)
|
||||||
|
return;
|
||||||
|
if (vim_strchr(arg2, 'b') != NULL)
|
||||||
binary = TRUE;
|
binary = TRUE;
|
||||||
if (vim_strchr(get_tv_string(&argvars[2]), 'a') != NULL)
|
if (vim_strchr(arg2, 'a') != NULL)
|
||||||
append = TRUE;
|
append = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fname = get_tv_string_chk(&argvars[1]);
|
||||||
|
if (fname == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
/* Always open the file in binary mode, library functions have a mind of
|
/* Always open the file in binary mode, library functions have a mind of
|
||||||
* their own about CR-LF conversion. */
|
* their own about CR-LF conversion. */
|
||||||
fname = get_tv_string(&argvars[1]);
|
|
||||||
if (*fname == NUL || (fd = mch_fopen((char *)fname,
|
if (*fname == NUL || (fd = mch_fopen((char *)fname,
|
||||||
append ? APPENDBIN : WRITEBIN)) == NULL)
|
append ? APPENDBIN : WRITEBIN)) == NULL)
|
||||||
{
|
{
|
||||||
@@ -13208,7 +13251,7 @@ f_writefile(typval_T *argvars, typval_T *rettv)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (write_list(fd, argvars[0].vval.v_list, binary) == FAIL)
|
if (write_list(fd, list, binary) == FAIL)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,12 +25,12 @@ static const unsigned short cmdidxs1[26] =
|
|||||||
/* r */ 351,
|
/* r */ 351,
|
||||||
/* s */ 370,
|
/* s */ 370,
|
||||||
/* t */ 437,
|
/* t */ 437,
|
||||||
/* u */ 472,
|
/* u */ 473,
|
||||||
/* v */ 483,
|
/* v */ 484,
|
||||||
/* w */ 501,
|
/* w */ 502,
|
||||||
/* x */ 516,
|
/* x */ 517,
|
||||||
/* y */ 525,
|
/* y */ 526,
|
||||||
/* z */ 526
|
/* z */ 527
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -60,7 +60,7 @@ static const unsigned char cmdidxs2[26][26] =
|
|||||||
/* q */ { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
/* q */ { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||||
/* r */ { 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 18, 0, 0, 0, 0 },
|
/* r */ { 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 18, 0, 0, 0, 0 },
|
||||||
/* s */ { 2, 6, 15, 0, 18, 22, 0, 24, 25, 0, 0, 28, 30, 34, 38, 40, 0, 48, 0, 49, 0, 61, 62, 0, 63, 0 },
|
/* s */ { 2, 6, 15, 0, 18, 22, 0, 24, 25, 0, 0, 28, 30, 34, 38, 40, 0, 48, 0, 49, 0, 61, 62, 0, 63, 0 },
|
||||||
/* t */ { 2, 0, 19, 0, 22, 23, 0, 24, 0, 25, 0, 26, 27, 28, 29, 30, 0, 31, 33, 0, 34, 0, 0, 0, 0, 0 },
|
/* t */ { 2, 0, 19, 0, 22, 24, 0, 25, 0, 26, 0, 27, 28, 29, 30, 31, 0, 32, 34, 0, 35, 0, 0, 0, 0, 0 },
|
||||||
/* u */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
/* u */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||||
/* v */ { 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 9, 12, 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0 },
|
/* v */ { 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 9, 12, 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0 },
|
||||||
/* w */ { 2, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 8, 0, 9, 10, 0, 12, 0, 13, 14, 0, 0, 0, 0 },
|
/* w */ { 2, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 8, 0, 9, 10, 0, 12, 0, 13, 14, 0, 0, 0, 0 },
|
||||||
@@ -69,4 +69,4 @@ static const unsigned char cmdidxs2[26][26] =
|
|||||||
/* z */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
/* z */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
static const int command_count = 539;
|
static const int command_count = 540;
|
||||||
|
|||||||
@@ -5096,7 +5096,7 @@ do_sub(exarg_T *eap)
|
|||||||
); ++lnum)
|
); ++lnum)
|
||||||
{
|
{
|
||||||
nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum,
|
nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum,
|
||||||
(colnr_T)0, NULL);
|
(colnr_T)0, NULL, NULL);
|
||||||
if (nmatch)
|
if (nmatch)
|
||||||
{
|
{
|
||||||
colnr_T copycol;
|
colnr_T copycol;
|
||||||
@@ -5695,7 +5695,7 @@ skip:
|
|||||||
|| nmatch_tl > 0
|
|| nmatch_tl > 0
|
||||||
|| (nmatch = vim_regexec_multi(®match, curwin,
|
|| (nmatch = vim_regexec_multi(®match, curwin,
|
||||||
curbuf, sub_firstlnum,
|
curbuf, sub_firstlnum,
|
||||||
matchcol, NULL)) == 0
|
matchcol, NULL, NULL)) == 0
|
||||||
|| regmatch.startpos[0].lnum > 0)
|
|| regmatch.startpos[0].lnum > 0)
|
||||||
{
|
{
|
||||||
if (new_start != NULL)
|
if (new_start != NULL)
|
||||||
@@ -5760,7 +5760,7 @@ skip:
|
|||||||
}
|
}
|
||||||
if (nmatch == -1 && !lastone)
|
if (nmatch == -1 && !lastone)
|
||||||
nmatch = vim_regexec_multi(®match, curwin, curbuf,
|
nmatch = vim_regexec_multi(®match, curwin, curbuf,
|
||||||
sub_firstlnum, matchcol, NULL);
|
sub_firstlnum, matchcol, NULL, NULL);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 5. break if there isn't another match in this line
|
* 5. break if there isn't another match in this line
|
||||||
@@ -5903,6 +5903,17 @@ do_sub_msg(
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
global_exe_one(char_u *cmd, linenr_T lnum)
|
||||||
|
{
|
||||||
|
curwin->w_cursor.lnum = lnum;
|
||||||
|
curwin->w_cursor.col = 0;
|
||||||
|
if (*cmd == NUL || *cmd == '\n')
|
||||||
|
do_cmdline((char_u *)"p", NULL, NULL, DOCMD_NOWAIT);
|
||||||
|
else
|
||||||
|
do_cmdline(cmd, NULL, NULL, DOCMD_NOWAIT);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Execute a global command of the form:
|
* Execute a global command of the form:
|
||||||
*
|
*
|
||||||
@@ -5933,9 +5944,13 @@ ex_global(exarg_T *eap)
|
|||||||
int match;
|
int match;
|
||||||
int which_pat;
|
int which_pat;
|
||||||
|
|
||||||
if (global_busy)
|
/* When nesting the command works on one line. This allows for
|
||||||
|
* ":g/found/v/notfound/command". */
|
||||||
|
if (global_busy && (eap->line1 != 1
|
||||||
|
|| eap->line2 != curbuf->b_ml.ml_line_count))
|
||||||
{
|
{
|
||||||
EMSG(_("E147: Cannot do :global recursive")); /* will increment global_busy */
|
/* will increment global_busy to break out of the loop */
|
||||||
|
EMSG(_("E147: Cannot do :global recursive with a range"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5993,6 +6008,16 @@ ex_global(exarg_T *eap)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (global_busy)
|
||||||
|
{
|
||||||
|
lnum = curwin->w_cursor.lnum;
|
||||||
|
match = vim_regexec_multi(®match, curwin, curbuf, lnum,
|
||||||
|
(colnr_T)0, NULL, NULL);
|
||||||
|
if ((type == 'g' && match) || (type == 'v' && !match))
|
||||||
|
global_exe_one(cmd, lnum);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
* pass 1: set marks for each (not) matching line
|
* pass 1: set marks for each (not) matching line
|
||||||
*/
|
*/
|
||||||
@@ -6000,7 +6025,7 @@ ex_global(exarg_T *eap)
|
|||||||
{
|
{
|
||||||
/* a match on this line? */
|
/* a match on this line? */
|
||||||
match = vim_regexec_multi(®match, curwin, curbuf, lnum,
|
match = vim_regexec_multi(®match, curwin, curbuf, lnum,
|
||||||
(colnr_T)0, NULL);
|
(colnr_T)0, NULL, NULL);
|
||||||
if ((type == 'g' && match) || (type == 'v' && !match))
|
if ((type == 'g' && match) || (type == 'v' && !match))
|
||||||
{
|
{
|
||||||
ml_setmarked(lnum);
|
ml_setmarked(lnum);
|
||||||
@@ -6033,6 +6058,8 @@ ex_global(exarg_T *eap)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ml_clearmarked(); /* clear rest of the marks */
|
ml_clearmarked(); /* clear rest of the marks */
|
||||||
|
}
|
||||||
|
|
||||||
vim_regfree(regmatch.regprog);
|
vim_regfree(regmatch.regprog);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6063,12 +6090,7 @@ global_exe(char_u *cmd)
|
|||||||
old_lcount = curbuf->b_ml.ml_line_count;
|
old_lcount = curbuf->b_ml.ml_line_count;
|
||||||
while (!got_int && (lnum = ml_firstmarked()) != 0 && global_busy == 1)
|
while (!got_int && (lnum = ml_firstmarked()) != 0 && global_busy == 1)
|
||||||
{
|
{
|
||||||
curwin->w_cursor.lnum = lnum;
|
global_exe_one(cmd, lnum);
|
||||||
curwin->w_cursor.col = 0;
|
|
||||||
if (*cmd == NUL || *cmd == '\n')
|
|
||||||
do_cmdline((char_u *)"p", NULL, NULL, DOCMD_NOWAIT);
|
|
||||||
else
|
|
||||||
do_cmdline(cmd, NULL, NULL, DOCMD_NOWAIT);
|
|
||||||
ui_breakcheck();
|
ui_breakcheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6810,8 +6832,15 @@ fix_help_buffer(void)
|
|||||||
char_u *rt;
|
char_u *rt;
|
||||||
int mustfree;
|
int mustfree;
|
||||||
|
|
||||||
/* set filetype to "help". */
|
#ifdef FEAT_AUTOCMD
|
||||||
|
/* Set filetype to "help" if still needed. */
|
||||||
|
if (STRCMP(curbuf->b_p_ft, "help") != 0)
|
||||||
|
{
|
||||||
|
++curbuf_lock;
|
||||||
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;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_SYN_HL
|
#ifdef FEAT_SYN_HL
|
||||||
if (!syntax_present(curwin))
|
if (!syntax_present(curwin))
|
||||||
@@ -8514,4 +8543,3 @@ ex_oldfiles(exarg_T *eap UNUSED)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,9 @@
|
|||||||
#define BUFUNL 0x20000L /* accepts unlisted buffer too */
|
#define BUFUNL 0x20000L /* accepts unlisted buffer too */
|
||||||
#define ARGOPT 0x40000L /* allow "++opt=val" argument */
|
#define ARGOPT 0x40000L /* allow "++opt=val" argument */
|
||||||
#define SBOXOK 0x80000L /* allowed in the sandbox */
|
#define SBOXOK 0x80000L /* allowed in the sandbox */
|
||||||
#define CMDWIN 0x100000L /* allowed in cmdline window */
|
#define CMDWIN 0x100000L /* allowed in cmdline window; when missing
|
||||||
|
* disallows editing another buffer when
|
||||||
|
* curbuf_lock is set */
|
||||||
#define MODIFY 0x200000L /* forbidden in non-'modifiable' buffer */
|
#define MODIFY 0x200000L /* forbidden in non-'modifiable' buffer */
|
||||||
#define EXFLAGS 0x400000L /* allow flags after count in argument */
|
#define EXFLAGS 0x400000L /* allow flags after count in argument */
|
||||||
#define FILES (XFILE | EXTRA) /* multiple extra files allowed */
|
#define FILES (XFILE | EXTRA) /* multiple extra files allowed */
|
||||||
@@ -426,7 +428,7 @@ EX(CMD_delcommand, "delcommand", ex_delcommand,
|
|||||||
NEEDARG|WORD1|TRLBAR|CMDWIN,
|
NEEDARG|WORD1|TRLBAR|CMDWIN,
|
||||||
ADDR_LINES),
|
ADDR_LINES),
|
||||||
EX(CMD_delfunction, "delfunction", ex_delfunction,
|
EX(CMD_delfunction, "delfunction", ex_delfunction,
|
||||||
NEEDARG|WORD1|CMDWIN,
|
BANG|NEEDARG|WORD1|CMDWIN,
|
||||||
ADDR_LINES),
|
ADDR_LINES),
|
||||||
EX(CMD_display, "display", ex_display,
|
EX(CMD_display, "display", ex_display,
|
||||||
EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN,
|
EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN,
|
||||||
@@ -1176,7 +1178,7 @@ EX(CMD_registers, "registers", ex_display,
|
|||||||
EXTRA|NOTRLCOM|TRLBAR|CMDWIN,
|
EXTRA|NOTRLCOM|TRLBAR|CMDWIN,
|
||||||
ADDR_LINES),
|
ADDR_LINES),
|
||||||
EX(CMD_resize, "resize", ex_resize,
|
EX(CMD_resize, "resize", ex_resize,
|
||||||
RANGE|NOTADR|TRLBAR|WORD1,
|
RANGE|NOTADR|TRLBAR|WORD1|CMDWIN,
|
||||||
ADDR_LINES),
|
ADDR_LINES),
|
||||||
EX(CMD_retab, "retab", ex_retab,
|
EX(CMD_retab, "retab", ex_retab,
|
||||||
TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY,
|
TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY,
|
||||||
@@ -1481,6 +1483,9 @@ EX(CMD_tclfile, "tclfile", ex_tclfile,
|
|||||||
EX(CMD_tearoff, "tearoff", ex_tearoff,
|
EX(CMD_tearoff, "tearoff", ex_tearoff,
|
||||||
NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN,
|
NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN,
|
||||||
ADDR_LINES),
|
ADDR_LINES),
|
||||||
|
EX(CMD_terminal, "terminal", ex_terminal,
|
||||||
|
RANGE|NOTADR|EXTRA|TRLBAR|CMDWIN,
|
||||||
|
ADDR_OTHER),
|
||||||
EX(CMD_tfirst, "tfirst", ex_tag,
|
EX(CMD_tfirst, "tfirst", ex_tag,
|
||||||
RANGE|NOTADR|BANG|TRLBAR|ZEROR,
|
RANGE|NOTADR|BANG|TRLBAR|ZEROR,
|
||||||
ADDR_LINES),
|
ADDR_LINES),
|
||||||
@@ -1620,7 +1625,7 @@ EX(CMD_winsize, "winsize", ex_winsize,
|
|||||||
EXTRA|NEEDARG|TRLBAR,
|
EXTRA|NEEDARG|TRLBAR,
|
||||||
ADDR_LINES),
|
ADDR_LINES),
|
||||||
EX(CMD_wincmd, "wincmd", ex_wincmd,
|
EX(CMD_wincmd, "wincmd", ex_wincmd,
|
||||||
NEEDARG|WORD1|RANGE|NOTADR,
|
NEEDARG|WORD1|RANGE|NOTADR|CMDWIN,
|
||||||
ADDR_WINDOWS),
|
ADDR_WINDOWS),
|
||||||
EX(CMD_windo, "windo", ex_listdo,
|
EX(CMD_windo, "windo", ex_listdo,
|
||||||
NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
|
NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
|
||||||
|
|||||||
@@ -1183,6 +1183,7 @@ timer_callback(timer_T *timer)
|
|||||||
/*
|
/*
|
||||||
* Call timers that are due.
|
* Call timers that are due.
|
||||||
* Return the time in msec until the next timer is due.
|
* Return the time in msec until the next timer is due.
|
||||||
|
* Returns -1 if there are no pending timers.
|
||||||
*/
|
*/
|
||||||
long
|
long
|
||||||
check_due_timer(void)
|
check_due_timer(void)
|
||||||
@@ -1196,7 +1197,13 @@ check_due_timer(void)
|
|||||||
long current_id = last_timer_id;
|
long current_id = last_timer_id;
|
||||||
# ifdef WIN3264
|
# ifdef WIN3264
|
||||||
LARGE_INTEGER fr;
|
LARGE_INTEGER fr;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* Don't run any timers while exiting or dealing with an error. */
|
||||||
|
if (exiting || aborting())
|
||||||
|
return next_due;
|
||||||
|
|
||||||
|
# ifdef WIN3264
|
||||||
QueryPerformanceFrequency(&fr);
|
QueryPerformanceFrequency(&fr);
|
||||||
# endif
|
# endif
|
||||||
profile_start(&now);
|
profile_start(&now);
|
||||||
@@ -1209,15 +1216,35 @@ check_due_timer(void)
|
|||||||
this_due = GET_TIMEDIFF(timer, now);
|
this_due = GET_TIMEDIFF(timer, now);
|
||||||
if (this_due <= 1)
|
if (this_due <= 1)
|
||||||
{
|
{
|
||||||
|
int save_timer_busy = timer_busy;
|
||||||
|
int save_vgetc_busy = vgetc_busy;
|
||||||
|
int did_emsg_save = did_emsg;
|
||||||
|
int called_emsg_save = called_emsg;
|
||||||
|
int did_throw_save = did_throw;
|
||||||
|
|
||||||
|
timer_busy = timer_busy > 0 || vgetc_busy > 0;
|
||||||
|
vgetc_busy = 0;
|
||||||
|
called_emsg = FALSE;
|
||||||
timer->tr_firing = TRUE;
|
timer->tr_firing = TRUE;
|
||||||
timer_callback(timer);
|
timer_callback(timer);
|
||||||
timer->tr_firing = FALSE;
|
timer->tr_firing = FALSE;
|
||||||
timer_next = timer->tr_next;
|
timer_next = timer->tr_next;
|
||||||
did_one = TRUE;
|
did_one = TRUE;
|
||||||
|
timer_busy = save_timer_busy;
|
||||||
|
vgetc_busy = save_vgetc_busy;
|
||||||
|
if (called_emsg)
|
||||||
|
{
|
||||||
|
++timer->tr_emsg_count;
|
||||||
|
if (!did_throw_save && current_exception != NULL)
|
||||||
|
discard_current_exception();
|
||||||
|
}
|
||||||
|
did_emsg = did_emsg_save;
|
||||||
|
called_emsg = called_emsg_save;
|
||||||
|
|
||||||
/* Only fire the timer again if it repeats and stop_timer() wasn't
|
/* Only fire the timer again if it repeats and stop_timer() wasn't
|
||||||
* called while inside the callback (tr_id == -1). */
|
* called while inside the callback (tr_id == -1). */
|
||||||
if (timer->tr_repeat != 0 && timer->tr_id != -1)
|
if (timer->tr_repeat != 0 && timer->tr_id != -1
|
||||||
|
&& timer->tr_emsg_count < 3)
|
||||||
{
|
{
|
||||||
profile_setlimit(timer->tr_interval, &timer->tr_due);
|
profile_setlimit(timer->tr_interval, &timer->tr_due);
|
||||||
this_due = GET_TIMEDIFF(timer, now);
|
this_due = GET_TIMEDIFF(timer, now);
|
||||||
@@ -3278,19 +3305,6 @@ source_callback(char_u *fname, void *cookie UNUSED)
|
|||||||
(void)do_source(fname, FALSE, DOSO_NONE);
|
(void)do_source(fname, FALSE, DOSO_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Source the file "name" from all directories in 'runtimepath'.
|
|
||||||
* "name" can contain wildcards.
|
|
||||||
* When "flags" has DIP_ALL: source all files, otherwise only the first one.
|
|
||||||
*
|
|
||||||
* return FAIL when no file could be sourced, OK otherwise.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
source_runtime(char_u *name, int flags)
|
|
||||||
{
|
|
||||||
return do_in_runtimepath(name, flags, source_callback, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Find the file "name" in all directories in "path" and invoke
|
* Find the file "name" in all directories in "path" and invoke
|
||||||
* "callback(fname, cookie)".
|
* "callback(fname, cookie)".
|
||||||
@@ -3428,18 +3442,19 @@ do_in_path(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Find "name" in 'runtimepath'. When found, invoke the callback function for
|
* Find "name" in "path". When found, invoke the callback function for
|
||||||
* it: callback(fname, "cookie")
|
* it: callback(fname, "cookie")
|
||||||
* When "flags" has DIP_ALL repeat for all matches, otherwise only the first
|
* When "flags" has DIP_ALL repeat for all matches, otherwise only the first
|
||||||
* one is used.
|
* one is used.
|
||||||
* Returns OK when at least one match found, FAIL otherwise.
|
* Returns OK when at least one match found, FAIL otherwise.
|
||||||
*
|
*
|
||||||
* If "name" is NULL calls callback for each entry in runtimepath. Cookie is
|
* If "name" is NULL calls callback for each entry in "path". Cookie is
|
||||||
* passed by reference in this case, setting it to NULL indicates that callback
|
* passed by reference in this case, setting it to NULL indicates that callback
|
||||||
* has done its job.
|
* has done its job.
|
||||||
*/
|
*/
|
||||||
int
|
static int
|
||||||
do_in_runtimepath(
|
do_in_path_and_pp(
|
||||||
|
char_u *path,
|
||||||
char_u *name,
|
char_u *name,
|
||||||
int flags,
|
int flags,
|
||||||
void (*callback)(char_u *fname, void *ck),
|
void (*callback)(char_u *fname, void *ck),
|
||||||
@@ -3452,7 +3467,7 @@ do_in_runtimepath(
|
|||||||
char *opt_dir = "pack/*/opt/*/%s";
|
char *opt_dir = "pack/*/opt/*/%s";
|
||||||
|
|
||||||
if ((flags & DIP_NORTP) == 0)
|
if ((flags & DIP_NORTP) == 0)
|
||||||
done = do_in_path(p_rtp, name, flags, callback, cookie);
|
done = do_in_path(path, name, flags, callback, cookie);
|
||||||
|
|
||||||
if ((done == FAIL || (flags & DIP_ALL)) && (flags & DIP_START))
|
if ((done == FAIL || (flags & DIP_ALL)) && (flags & DIP_START))
|
||||||
{
|
{
|
||||||
@@ -3479,6 +3494,42 @@ do_in_runtimepath(
|
|||||||
return done;
|
return done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Just like do_in_path_and_pp(), using 'runtimepath' for "path".
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
do_in_runtimepath(
|
||||||
|
char_u *name,
|
||||||
|
int flags,
|
||||||
|
void (*callback)(char_u *fname, void *ck),
|
||||||
|
void *cookie)
|
||||||
|
{
|
||||||
|
return do_in_path_and_pp(p_rtp, name, flags, callback, cookie);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Source the file "name" from all directories in 'runtimepath'.
|
||||||
|
* "name" can contain wildcards.
|
||||||
|
* When "flags" has DIP_ALL: source all files, otherwise only the first one.
|
||||||
|
*
|
||||||
|
* return FAIL when no file could be sourced, OK otherwise.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
source_runtime(char_u *name, int flags)
|
||||||
|
{
|
||||||
|
return source_in_path(p_rtp, name, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Just like source_runtime(), but use "path" instead of 'runtimepath'.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
source_in_path(char_u *path, char_u *name, int flags)
|
||||||
|
{
|
||||||
|
return do_in_path_and_pp(path, name, flags, source_callback, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Expand wildcards in "pat" and invoke do_source() for each match.
|
* Expand wildcards in "pat" and invoke do_source() for each match.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -488,6 +488,9 @@ static void ex_folddo(exarg_T *eap);
|
|||||||
#ifndef FEAT_PROFILE
|
#ifndef FEAT_PROFILE
|
||||||
# define ex_profile ex_ni
|
# define ex_profile ex_ni
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef FEAT_TERMINAL
|
||||||
|
# define ex_terminal ex_ni
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Declare cmdnames[].
|
* Declare cmdnames[].
|
||||||
@@ -2370,7 +2373,8 @@ do_one_cmd(
|
|||||||
goto doend;
|
goto doend;
|
||||||
}
|
}
|
||||||
/* Check for wrong commands. */
|
/* Check for wrong commands. */
|
||||||
if (*p == '!' && ea.cmd[1] == 0151 && ea.cmd[0] == 78)
|
if (*p == '!' && ea.cmd[1] == 0151 && ea.cmd[0] == 78
|
||||||
|
&& !IS_USER_CMDIDX(ea.cmdidx))
|
||||||
{
|
{
|
||||||
errormsg = uc_fun_cmd();
|
errormsg = uc_fun_cmd();
|
||||||
goto doend;
|
goto doend;
|
||||||
@@ -4556,7 +4560,7 @@ get_address(
|
|||||||
curwin->w_cursor.col = 0;
|
curwin->w_cursor.col = 0;
|
||||||
searchcmdlen = 0;
|
searchcmdlen = 0;
|
||||||
if (!do_search(NULL, c, cmd, 1L,
|
if (!do_search(NULL, c, cmd, 1L,
|
||||||
SEARCH_HIS | SEARCH_MSG, NULL))
|
SEARCH_HIS | SEARCH_MSG, NULL, NULL))
|
||||||
{
|
{
|
||||||
curwin->w_cursor = pos;
|
curwin->w_cursor = pos;
|
||||||
cmd = NULL;
|
cmd = NULL;
|
||||||
@@ -4613,7 +4617,7 @@ get_address(
|
|||||||
if (searchit(curwin, curbuf, &pos,
|
if (searchit(curwin, curbuf, &pos,
|
||||||
*cmd == '?' ? BACKWARD : FORWARD,
|
*cmd == '?' ? BACKWARD : FORWARD,
|
||||||
(char_u *)"", 1L, SEARCH_MSG,
|
(char_u *)"", 1L, SEARCH_MSG,
|
||||||
i, (linenr_T)0, NULL) != FAIL)
|
i, (linenr_T)0, NULL, NULL) != FAIL)
|
||||||
lnum = pos.lnum;
|
lnum = pos.lnum;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -7267,8 +7271,11 @@ ex_quit(exarg_T *eap)
|
|||||||
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() || (wp->w_buffer->b_nwindows == 1
|
if (curbuf_locked()
|
||||||
&& wp->w_buffer->b_locked > 0))
|
# ifdef FEAT_WINDOWS
|
||||||
|
|| !win_valid(wp)
|
||||||
|
# endif
|
||||||
|
|| (wp->w_buffer->b_nwindows == 1 && wp->w_buffer->b_locked > 0))
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1492,7 +1492,7 @@ getcmdline(
|
|||||||
if (c != NUL)
|
if (c != NUL)
|
||||||
{
|
{
|
||||||
if (c == firstc || vim_strchr((char_u *)(
|
if (c == firstc || vim_strchr((char_u *)(
|
||||||
p_magic ? "\\^$.*[" : "\\^$"), c)
|
p_magic ? "\\~^$.*[" : "\\^$"), c)
|
||||||
!= NULL)
|
!= NULL)
|
||||||
{
|
{
|
||||||
/* put a backslash before special
|
/* put a backslash before special
|
||||||
@@ -1693,7 +1693,7 @@ getcmdline(
|
|||||||
i = searchit(curwin, curbuf, &t,
|
i = searchit(curwin, curbuf, &t,
|
||||||
c == Ctrl_G ? FORWARD : BACKWARD,
|
c == Ctrl_G ? FORWARD : BACKWARD,
|
||||||
ccline.cmdbuff, count, search_flags,
|
ccline.cmdbuff, count, search_flags,
|
||||||
RE_SEARCH, 0, NULL);
|
RE_SEARCH, 0, NULL, NULL);
|
||||||
--emsg_off;
|
--emsg_off;
|
||||||
if (i)
|
if (i)
|
||||||
{
|
{
|
||||||
@@ -1708,6 +1708,14 @@ getcmdline(
|
|||||||
search_start = t;
|
search_start = t;
|
||||||
(void)decl(&search_start);
|
(void)decl(&search_start);
|
||||||
}
|
}
|
||||||
|
else if (c == Ctrl_G && firstc == '?')
|
||||||
|
{
|
||||||
|
/* move just after the current match, so that
|
||||||
|
* when nv_search finishes the cursor will be
|
||||||
|
* put back on the match */
|
||||||
|
search_start = t;
|
||||||
|
(void)incl(&search_start);
|
||||||
|
}
|
||||||
if (LT_POS(t, search_start) && c == Ctrl_G)
|
if (LT_POS(t, search_start) && c == Ctrl_G)
|
||||||
{
|
{
|
||||||
/* wrap around */
|
/* wrap around */
|
||||||
@@ -1903,9 +1911,9 @@ cmdline_changed:
|
|||||||
i = do_search(NULL, firstc, ccline.cmdbuff, count,
|
i = do_search(NULL, firstc, ccline.cmdbuff, count,
|
||||||
SEARCH_KEEP + SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK,
|
SEARCH_KEEP + SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK,
|
||||||
#ifdef FEAT_RELTIME
|
#ifdef FEAT_RELTIME
|
||||||
&tm
|
&tm, NULL
|
||||||
#else
|
#else
|
||||||
NULL
|
NULL, NULL
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
--emsg_off;
|
--emsg_off;
|
||||||
@@ -6878,6 +6886,8 @@ open_cmdwin(void)
|
|||||||
# ifdef FEAT_AUTOCMD
|
# ifdef FEAT_AUTOCMD
|
||||||
/* Do execute autocommands for setting the filetype (load syntax). */
|
/* Do execute autocommands for setting the filetype (load syntax). */
|
||||||
unblock_autocmds();
|
unblock_autocmds();
|
||||||
|
/* But don't allow switching to another buffer. */
|
||||||
|
++curbuf_lock;
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/* Showing the prompt may have set need_wait_return, reset it. */
|
/* Showing the prompt may have set need_wait_return, reset it. */
|
||||||
@@ -6893,6 +6903,9 @@ open_cmdwin(void)
|
|||||||
}
|
}
|
||||||
set_option_value((char_u *)"ft", 0L, (char_u *)"vim", OPT_LOCAL);
|
set_option_value((char_u *)"ft", 0L, (char_u *)"vim", OPT_LOCAL);
|
||||||
}
|
}
|
||||||
|
# ifdef FEAT_AUTOCMD
|
||||||
|
--curbuf_lock;
|
||||||
|
# endif
|
||||||
|
|
||||||
/* Reset 'textwidth' after setting 'filetype' (the Vim filetype plugin
|
/* Reset 'textwidth' after setting 'filetype' (the Vim filetype plugin
|
||||||
* sets 'textwidth' to 78). */
|
* sets 'textwidth' to 78). */
|
||||||
|
|||||||
@@ -1267,6 +1267,13 @@
|
|||||||
# undef FEAT_JOB_CHANNEL
|
# undef FEAT_JOB_CHANNEL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* +terminal ":terminal" command. Runs a terminal in a window.
|
||||||
|
*/
|
||||||
|
#if !defined(FEAT_JOB_CHANNEL) && defined(FEAT_TERMINAL)
|
||||||
|
# undef FEAT_TERMINAL
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* +signs Allow signs to be displayed to the left of text lines.
|
* +signs Allow signs to be displayed to the left of text lines.
|
||||||
* Adds the ":sign" command.
|
* Adds the ":sign" command.
|
||||||
|
|||||||
168
src/fileio.c
168
src/fileio.c
@@ -3166,6 +3166,7 @@ buf_write(
|
|||||||
int device = FALSE; /* writing to a device */
|
int device = FALSE; /* writing to a device */
|
||||||
stat_T st_old;
|
stat_T st_old;
|
||||||
int prev_got_int = got_int;
|
int prev_got_int = got_int;
|
||||||
|
int checking_conversion;
|
||||||
int file_readonly = FALSE; /* overwritten file is read-only */
|
int file_readonly = FALSE; /* overwritten file is read-only */
|
||||||
static char *err_readonly = "is read-only (cannot override: \"W\" in 'cpoptions')";
|
static char *err_readonly = "is read-only (cannot override: \"W\" in 'cpoptions')";
|
||||||
#if defined(UNIX) /*XXX fix me sometime? */
|
#if defined(UNIX) /*XXX fix me sometime? */
|
||||||
@@ -4343,13 +4344,41 @@ buf_write(
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If conversion is taking place, we may first pretend to write and check
|
||||||
|
* for conversion errors. Then loop again to write for real.
|
||||||
|
* When not doing conversion this writes for real right away.
|
||||||
|
*/
|
||||||
|
for (checking_conversion = TRUE; ; checking_conversion = FALSE)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* There is no need to check conversion when:
|
||||||
|
* - there is no conversion
|
||||||
|
* - we make a backup file, that can be restored in case of conversion
|
||||||
|
* failure.
|
||||||
|
*/
|
||||||
|
#ifdef FEAT_MBYTE
|
||||||
|
if (!converted || dobackup)
|
||||||
|
#endif
|
||||||
|
checking_conversion = FALSE;
|
||||||
|
|
||||||
|
if (checking_conversion)
|
||||||
|
{
|
||||||
|
/* Make sure we don't write anything. */
|
||||||
|
fd = -1;
|
||||||
|
write_info.bw_fd = fd;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
* Open the file "wfname" for writing.
|
* Open the file "wfname" for writing.
|
||||||
* We may try to open the file twice: If we can't write to the
|
* We may try to open the file twice: If we can't write to the file
|
||||||
* file and forceit is TRUE we delete the existing file and try to create
|
* and forceit is TRUE we delete the existing file and try to
|
||||||
* a new one. If this still fails we may have lost the original file!
|
* create a new one. If this still fails we may have lost the
|
||||||
* (this may happen when the user reached his quotum for number of files).
|
* original file! (this may happen when the user reached his
|
||||||
* Appending will fail if the file does not exist and forceit is FALSE.
|
* quotum for number of files).
|
||||||
|
* Appending will fail if the file does not exist and forceit is
|
||||||
|
* FALSE.
|
||||||
*/
|
*/
|
||||||
while ((fd = mch_open((char *)wfname, O_WRONLY | O_EXTRA | (append
|
while ((fd = mch_open((char *)wfname, O_WRONLY | O_EXTRA | (append
|
||||||
? (forceit ? (O_APPEND | O_CREAT) : O_APPEND)
|
? (forceit ? (O_APPEND | O_CREAT) : O_APPEND)
|
||||||
@@ -4357,16 +4386,17 @@ buf_write(
|
|||||||
, perm < 0 ? 0666 : (perm & 0777))) < 0)
|
, perm < 0 ? 0666 : (perm & 0777))) < 0)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* A forced write will try to create a new file if the old one is
|
* A forced write will try to create a new file if the old one
|
||||||
* still readonly. This may also happen when the directory is
|
* is still readonly. This may also happen when the directory
|
||||||
* read-only. In that case the mch_remove() will fail.
|
* is read-only. In that case the mch_remove() will fail.
|
||||||
*/
|
*/
|
||||||
if (errmsg == NULL)
|
if (errmsg == NULL)
|
||||||
{
|
{
|
||||||
#ifdef UNIX
|
#ifdef UNIX
|
||||||
stat_T st;
|
stat_T st;
|
||||||
|
|
||||||
/* Don't delete the file when it's a hard or symbolic link. */
|
/* Don't delete the file when it's a hard or symbolic link.
|
||||||
|
*/
|
||||||
if ((!newfile && st_old.st_nlink > 1)
|
if ((!newfile && st_old.st_nlink > 1)
|
||||||
|| (mch_lstat((char *)fname, &st) == 0
|
|| (mch_lstat((char *)fname, &st) == 0
|
||||||
&& (st.st_dev != st_old.st_dev
|
&& (st.st_dev != st_old.st_dev
|
||||||
@@ -4385,7 +4415,8 @@ buf_write(
|
|||||||
if (!(perm & 0200))
|
if (!(perm & 0200))
|
||||||
made_writable = TRUE;
|
made_writable = TRUE;
|
||||||
perm |= 0200;
|
perm |= 0200;
|
||||||
if (st_old.st_uid != getuid() || st_old.st_gid != getgid())
|
if (st_old.st_uid != getuid()
|
||||||
|
|| st_old.st_gid != getgid())
|
||||||
perm &= 0777;
|
perm &= 0777;
|
||||||
#endif
|
#endif
|
||||||
if (!append) /* don't remove when appending */
|
if (!append) /* don't remove when appending */
|
||||||
@@ -4400,24 +4431,26 @@ restore_backup:
|
|||||||
stat_T st;
|
stat_T st;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we failed to open the file, we don't need a backup. Throw it
|
* If we failed to open the file, we don't need a backup.
|
||||||
* away. If we moved or removed the original file try to put the
|
* Throw it away. If we moved or removed the original file
|
||||||
* backup in its place.
|
* try to put the backup in its place.
|
||||||
*/
|
*/
|
||||||
if (backup != NULL && wfname == fname)
|
if (backup != NULL && wfname == fname)
|
||||||
{
|
{
|
||||||
if (backup_copy)
|
if (backup_copy)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* There is a small chance that we removed the original,
|
* There is a small chance that we removed the
|
||||||
* try to move the copy in its place.
|
* original, try to move the copy in its place.
|
||||||
* This may not work if the vim_rename() fails.
|
* This may not work if the vim_rename() fails.
|
||||||
* In that case we leave the copy around.
|
* In that case we leave the copy around.
|
||||||
*/
|
*/
|
||||||
/* If file does not exist, put the copy in its place */
|
/* If file does not exist, put the copy in its
|
||||||
|
* place */
|
||||||
if (mch_stat((char *)fname, &st) < 0)
|
if (mch_stat((char *)fname, &st) < 0)
|
||||||
vim_rename(backup, fname);
|
vim_rename(backup, fname);
|
||||||
/* if original file does exist throw away the copy */
|
/* if original file does exist throw away the copy
|
||||||
|
*/
|
||||||
if (mch_stat((char *)fname, &st) >= 0)
|
if (mch_stat((char *)fname, &st) >= 0)
|
||||||
mch_remove(backup);
|
mch_remove(backup);
|
||||||
}
|
}
|
||||||
@@ -4428,7 +4461,8 @@ restore_backup:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if original file no longer exists give an extra warning */
|
/* if original file no longer exists give an extra warning
|
||||||
|
*/
|
||||||
if (!newfile && mch_stat((char *)fname, &st) < 0)
|
if (!newfile && mch_stat((char *)fname, &st) < 0)
|
||||||
end = 0;
|
end = 0;
|
||||||
}
|
}
|
||||||
@@ -4439,7 +4473,7 @@ restore_backup:
|
|||||||
#endif
|
#endif
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
errmsg = NULL;
|
write_info.bw_fd = fd;
|
||||||
|
|
||||||
#if defined(MACOS_CLASSIC) || defined(WIN3264)
|
#if defined(MACOS_CLASSIC) || defined(WIN3264)
|
||||||
/* TODO: Is it need for MACOS_X? (Dany) */
|
/* TODO: Is it need for MACOS_X? (Dany) */
|
||||||
@@ -4464,15 +4498,14 @@ restore_backup:
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
write_info.bw_fd = fd;
|
|
||||||
|
|
||||||
#ifdef FEAT_CRYPT
|
#ifdef FEAT_CRYPT
|
||||||
if (*buf->b_p_key != NUL && !filtering)
|
if (*buf->b_p_key != NUL && !filtering)
|
||||||
{
|
{
|
||||||
char_u *header;
|
char_u *header;
|
||||||
int header_len;
|
int header_len;
|
||||||
|
|
||||||
buf->b_cryptstate = crypt_create_for_writing(crypt_get_method_nr(buf),
|
buf->b_cryptstate = crypt_create_for_writing(
|
||||||
|
crypt_get_method_nr(buf),
|
||||||
buf->b_p_key, &header, &header_len);
|
buf->b_p_key, &header, &header_len);
|
||||||
if (buf->b_cryptstate == NULL || header == NULL)
|
if (buf->b_cryptstate == NULL || header == NULL)
|
||||||
end = 0;
|
end = 0;
|
||||||
@@ -4490,6 +4523,8 @@ restore_backup:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
errmsg = NULL;
|
||||||
|
|
||||||
write_info.bw_buf = buffer;
|
write_info.bw_buf = buffer;
|
||||||
nchars = 0;
|
nchars = 0;
|
||||||
@@ -4503,8 +4538,8 @@ restore_backup:
|
|||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
/*
|
/*
|
||||||
* The BOM is written just after the encryption magic number.
|
* The BOM is written just after the encryption magic number.
|
||||||
* Skip it when appending and the file already existed, the BOM only makes
|
* Skip it when appending and the file already existed, the BOM only
|
||||||
* sense at the start of the file.
|
* makes sense at the start of the file.
|
||||||
*/
|
*/
|
||||||
if (buf->b_p_bomb && !write_bin && (!append || perm < 0))
|
if (buf->b_p_bomb && !write_bin && (!append || perm < 0))
|
||||||
{
|
{
|
||||||
@@ -4523,8 +4558,12 @@ restore_backup:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_PERSISTENT_UNDO
|
#ifdef FEAT_PERSISTENT_UNDO
|
||||||
write_undo_file = (buf->b_p_udf && overwriting && !append
|
write_undo_file = (buf->b_p_udf
|
||||||
&& !filtering && reset_changed);
|
&& overwriting
|
||||||
|
&& !append
|
||||||
|
&& !filtering
|
||||||
|
&& reset_changed
|
||||||
|
&& !checking_conversion);
|
||||||
if (write_undo_file)
|
if (write_undo_file)
|
||||||
/* Prepare for computing the hash value of the text. */
|
/* Prepare for computing the hash value of the text. */
|
||||||
sha256_start(&sha_ctx);
|
sha256_start(&sha_ctx);
|
||||||
@@ -4546,7 +4585,8 @@ restore_backup:
|
|||||||
ptr = ml_get_buf(buf, lnum, FALSE) - 1;
|
ptr = ml_get_buf(buf, lnum, FALSE) - 1;
|
||||||
#ifdef FEAT_PERSISTENT_UNDO
|
#ifdef FEAT_PERSISTENT_UNDO
|
||||||
if (write_undo_file)
|
if (write_undo_file)
|
||||||
sha256_update(&sha_ctx, ptr + 1, (UINT32_T)(STRLEN(ptr + 1) + 1));
|
sha256_update(&sha_ctx, ptr + 1,
|
||||||
|
(UINT32_T)(STRLEN(ptr + 1) + 1));
|
||||||
#endif
|
#endif
|
||||||
while ((c = *++ptr) != NUL)
|
while ((c = *++ptr) != NUL)
|
||||||
{
|
{
|
||||||
@@ -4576,7 +4616,8 @@ restore_backup:
|
|||||||
|| (lnum == end
|
|| (lnum == end
|
||||||
&& (write_bin || !buf->b_p_fixeol)
|
&& (write_bin || !buf->b_p_fixeol)
|
||||||
&& (lnum == buf->b_no_eol_lnum
|
&& (lnum == buf->b_no_eol_lnum
|
||||||
|| (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol))))
|
|| (lnum == buf->b_ml.ml_line_count
|
||||||
|
&& !buf->b_p_eol))))
|
||||||
{
|
{
|
||||||
++lnum; /* written the line, count it */
|
++lnum; /* written the line, count it */
|
||||||
no_eol = TRUE;
|
no_eol = TRUE;
|
||||||
@@ -4623,12 +4664,12 @@ restore_backup:
|
|||||||
}
|
}
|
||||||
#ifdef VMS
|
#ifdef VMS
|
||||||
/*
|
/*
|
||||||
* On VMS there is a problem: newlines get added when writing blocks
|
* On VMS there is a problem: newlines get added when writing
|
||||||
* at a time. Fix it by writing a line at a time.
|
* blocks at a time. Fix it by writing a line at a time.
|
||||||
* This is much slower!
|
* This is much slower!
|
||||||
* Explanation: VAX/DECC RTL insists that records in some RMS
|
* Explanation: VAX/DECC RTL insists that records in some RMS
|
||||||
* structures end with a newline (carriage return) character, and if
|
* structures end with a newline (carriage return) character, and
|
||||||
* they don't it adds one.
|
* if they don't it adds one.
|
||||||
* With other RMS structures it works perfect without this fix.
|
* With other RMS structures it works perfect without this fix.
|
||||||
*/
|
*/
|
||||||
if (buf->b_fab_rfm == FAB$C_VFC
|
if (buf->b_fab_rfm == FAB$C_VFC
|
||||||
@@ -4666,15 +4707,29 @@ restore_backup:
|
|||||||
nchars += len;
|
nchars += len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Stop when writing done or an error was encountered. */
|
||||||
|
if (!checking_conversion || end == 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* If no error happened until now, writing should be ok, so loop to
|
||||||
|
* really write the buffer. */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If we started writing, finish writing. Also when an error was
|
||||||
|
* encountered. */
|
||||||
|
if (!checking_conversion)
|
||||||
|
{
|
||||||
#if defined(UNIX) && defined(HAVE_FSYNC)
|
#if defined(UNIX) && defined(HAVE_FSYNC)
|
||||||
/* On many journalling file systems there is a bug that causes both the
|
/*
|
||||||
* original and the backup file to be lost when halting the system right
|
* On many journalling file systems there is a bug that causes both the
|
||||||
* after writing the file. That's because only the meta-data is
|
* original and the backup file to be lost when halting the system
|
||||||
* journalled. Syncing the file slows down the system, but assures it has
|
* right after writing the file. That's because only the meta-data is
|
||||||
* been written to disk and we don't lose it.
|
* journalled. Syncing the file slows down the system, but assures it
|
||||||
* For a device do try the fsync() but don't complain if it does not work
|
* has been written to disk and we don't lose it.
|
||||||
* (could be a pipe).
|
* For a device do try the fsync() but don't complain if it does not
|
||||||
* If the 'fsync' option is FALSE, don't fsync(). Useful for laptops. */
|
* work (could be a pipe).
|
||||||
|
* If the 'fsync' option is FALSE, don't fsync(). Useful for laptops.
|
||||||
|
*/
|
||||||
if (p_fs && fsync(fd) != 0 && !device)
|
if (p_fs && fsync(fd) != 0 && !device)
|
||||||
{
|
{
|
||||||
errmsg = (char_u *)_("E667: Fsync failed");
|
errmsg = (char_u *)_("E667: Fsync failed");
|
||||||
@@ -4689,8 +4744,8 @@ restore_backup:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef UNIX
|
#ifdef UNIX
|
||||||
/* When creating a new file, set its owner/group to that of the original
|
/* When creating a new file, set its owner/group to that of the
|
||||||
* file. Get the new device and inode number. */
|
* original file. Get the new device and inode number. */
|
||||||
if (backup != NULL && !backup_copy)
|
if (backup != NULL && !backup_copy)
|
||||||
{
|
{
|
||||||
# ifdef HAVE_FCHOWN
|
# ifdef HAVE_FCHOWN
|
||||||
@@ -4731,9 +4786,9 @@ restore_backup:
|
|||||||
* Probably need to set the ACL before changing the user (can't set the
|
* Probably need to set the ACL before changing the user (can't set the
|
||||||
* ACL on a file the user doesn't own).
|
* ACL on a file the user doesn't own).
|
||||||
* On Solaris, with ZFS and the aclmode property set to "discard" (the
|
* On Solaris, with ZFS and the aclmode property set to "discard" (the
|
||||||
* default), chmod() discards all part of a file's ACL that don't represent
|
* default), chmod() discards all part of a file's ACL that don't
|
||||||
* the mode of the file. It's non-trivial for us to discover whether we're
|
* represent the mode of the file. It's non-trivial for us to discover
|
||||||
* in that situation, so we simply always re-set the ACL.
|
* whether we're in that situation, so we simply always re-set the ACL.
|
||||||
*/
|
*/
|
||||||
# ifndef HAVE_SOLARIS_ZFS_ACL
|
# ifndef HAVE_SOLARIS_ZFS_ACL
|
||||||
if (!backup_copy)
|
if (!backup_copy)
|
||||||
@@ -4752,13 +4807,13 @@ restore_backup:
|
|||||||
if (wfname != fname)
|
if (wfname != fname)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* The file was written to a temp file, now it needs to be converted
|
* The file was written to a temp file, now it needs to be
|
||||||
* with 'charconvert' to (overwrite) the output file.
|
* converted with 'charconvert' to (overwrite) the output file.
|
||||||
*/
|
*/
|
||||||
if (end != 0)
|
if (end != 0)
|
||||||
{
|
{
|
||||||
if (eval_charconvert(enc_utf8 ? (char_u *)"utf-8" : p_enc, fenc,
|
if (eval_charconvert(enc_utf8 ? (char_u *)"utf-8" : p_enc,
|
||||||
wfname, fname) == FAIL)
|
fenc, wfname, fname) == FAIL)
|
||||||
{
|
{
|
||||||
write_info.bw_conv_error = TRUE;
|
write_info.bw_conv_error = TRUE;
|
||||||
end = 0;
|
end = 0;
|
||||||
@@ -4768,9 +4823,13 @@ restore_backup:
|
|||||||
vim_free(wfname);
|
vim_free(wfname);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
if (end == 0)
|
if (end == 0)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* Error encountered.
|
||||||
|
*/
|
||||||
if (errmsg == NULL)
|
if (errmsg == NULL)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
@@ -5690,6 +5749,10 @@ buf_write_bytes(struct bw_info *ip)
|
|||||||
}
|
}
|
||||||
#endif /* FEAT_MBYTE */
|
#endif /* FEAT_MBYTE */
|
||||||
|
|
||||||
|
if (ip->bw_fd < 0)
|
||||||
|
/* Only checking conversion, which is OK if we get here. */
|
||||||
|
return OK;
|
||||||
|
|
||||||
#ifdef FEAT_CRYPT
|
#ifdef FEAT_CRYPT
|
||||||
if (flags & FIO_ENCRYPTED)
|
if (flags & FIO_ENCRYPTED)
|
||||||
{
|
{
|
||||||
@@ -8800,7 +8863,7 @@ do_doautocmd(
|
|||||||
/*
|
/*
|
||||||
* Loop over the events.
|
* Loop over the events.
|
||||||
*/
|
*/
|
||||||
while (*arg && !VIM_ISWHITE(*arg))
|
while (*arg && !ends_excmd(*arg) && !VIM_ISWHITE(*arg))
|
||||||
if (apply_autocmds_group(event_name2nr(arg, &arg),
|
if (apply_autocmds_group(event_name2nr(arg, &arg),
|
||||||
fname, NULL, TRUE, group, curbuf, NULL))
|
fname, NULL, TRUE, group, curbuf, NULL))
|
||||||
nothing_done = FALSE;
|
nothing_done = FALSE;
|
||||||
@@ -9322,7 +9385,8 @@ apply_autocmds_group(
|
|||||||
* Quickly return if there are no autocommands for this event or
|
* Quickly return if there are no autocommands for this event or
|
||||||
* autocommands are blocked.
|
* autocommands are blocked.
|
||||||
*/
|
*/
|
||||||
if (first_autopat[(int)event] == NULL || autocmd_blocked > 0)
|
if (event == NUM_EVENTS || first_autopat[(int)event] == NULL
|
||||||
|
|| autocmd_blocked > 0)
|
||||||
goto BYPASS_AU;
|
goto BYPASS_AU;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -9395,7 +9459,7 @@ apply_autocmds_group(
|
|||||||
{
|
{
|
||||||
if (event == EVENT_COLORSCHEME || event == EVENT_OPTIONSET)
|
if (event == EVENT_COLORSCHEME || event == EVENT_OPTIONSET)
|
||||||
autocmd_fname = NULL;
|
autocmd_fname = NULL;
|
||||||
else if (fname != NULL && *fname != NUL)
|
else if (fname != NULL && !ends_excmd(*fname))
|
||||||
autocmd_fname = fname;
|
autocmd_fname = fname;
|
||||||
else if (buf != NULL)
|
else if (buf != NULL)
|
||||||
autocmd_fname = buf->b_ffname;
|
autocmd_fname = buf->b_ffname;
|
||||||
|
|||||||
@@ -467,6 +467,11 @@ flush_buffers(int flush_typeahead)
|
|||||||
;
|
;
|
||||||
typebuf.tb_off = MAXMAPLEN;
|
typebuf.tb_off = MAXMAPLEN;
|
||||||
typebuf.tb_len = 0;
|
typebuf.tb_len = 0;
|
||||||
|
#if defined(FEAT_CLIENTSERVER) || defined(FEAT_EVAL)
|
||||||
|
/* Reset the flag that text received from a client or from feedkeys()
|
||||||
|
* was inserted in the typeahead buffer. */
|
||||||
|
typebuf_was_filled = FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else /* remove mapped characters at the start only */
|
else /* remove mapped characters at the start only */
|
||||||
{
|
{
|
||||||
@@ -2583,7 +2588,7 @@ vgetorpeek(int advance)
|
|||||||
* get a character: 3. from the user - handle <Esc> in Insert mode
|
* get a character: 3. from the user - handle <Esc> in Insert mode
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
* special case: if we get an <ESC> in insert mode and there
|
* Special case: if we get an <ESC> in insert mode and there
|
||||||
* are no more characters at once, we pretend to go out of
|
* are no more characters at once, we pretend to go out of
|
||||||
* insert mode. This prevents the one second delay after
|
* insert mode. This prevents the one second delay after
|
||||||
* typing an <ESC>. If we get something after all, we may
|
* typing an <ESC>. If we get something after all, we may
|
||||||
@@ -2617,8 +2622,8 @@ vgetorpeek(int advance)
|
|||||||
mode_deleted = TRUE;
|
mode_deleted = TRUE;
|
||||||
}
|
}
|
||||||
#ifdef FEAT_GUI
|
#ifdef FEAT_GUI
|
||||||
/* may show different cursor shape */
|
/* may show a different cursor shape */
|
||||||
if (gui.in_use)
|
if (gui.in_use && State != NORMAL && !cmd_silent)
|
||||||
{
|
{
|
||||||
int save_State;
|
int save_State;
|
||||||
|
|
||||||
|
|||||||
@@ -1659,6 +1659,7 @@ EXTERN int in_free_unref_items INIT(= FALSE);
|
|||||||
|
|
||||||
#ifdef FEAT_TIMERS
|
#ifdef FEAT_TIMERS
|
||||||
EXTERN int did_add_timer INIT(= FALSE);
|
EXTERN int did_add_timer INIT(= FALSE);
|
||||||
|
EXTERN int timer_busy INIT(= 0); /* when timer is inside vgetc() then > 0 */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
|
|||||||
@@ -5361,7 +5361,7 @@ gui_do_findrepl(
|
|||||||
searchflags += SEARCH_START;
|
searchflags += SEARCH_START;
|
||||||
i = msg_scroll;
|
i = msg_scroll;
|
||||||
(void)do_search(NULL, down ? '/' : '?', ga.ga_data, 1L,
|
(void)do_search(NULL, down ? '/' : '?', ga.ga_data, 1L,
|
||||||
searchflags, NULL);
|
searchflags, NULL, NULL);
|
||||||
msg_scroll = i; /* don't let an error message set msg_scroll */
|
msg_scroll = i; /* don't let an error message set msg_scroll */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -652,9 +652,11 @@ gui_mch_add_menu(vimmenu_T *menu, int idx)
|
|||||||
parent_widget = (parent != NULL) ? parent->submenu_id : gui.menubar;
|
parent_widget = (parent != NULL) ? parent->submenu_id : gui.menubar;
|
||||||
menu_item_new(menu, parent_widget);
|
menu_item_new(menu, parent_widget);
|
||||||
|
|
||||||
|
# if !GTK_CHECK_VERSION(3,4,0)
|
||||||
/* since the tearoff should always appear first, increment idx */
|
/* since the tearoff should always appear first, increment idx */
|
||||||
if (parent != NULL && !menu_is_popup(parent->name))
|
if (parent != NULL && !menu_is_popup(parent->name))
|
||||||
++idx;
|
++idx;
|
||||||
|
# endif
|
||||||
|
|
||||||
gtk_menu_shell_insert(GTK_MENU_SHELL(parent_widget), menu->id, idx);
|
gtk_menu_shell_insert(GTK_MENU_SHELL(parent_widget), menu->id, idx);
|
||||||
|
|
||||||
@@ -773,10 +775,12 @@ gui_mch_add_menu_item(vimmenu_T *menu, int idx)
|
|||||||
if (parent == NULL || parent->submenu_id == NULL)
|
if (parent == NULL || parent->submenu_id == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
# if !GTK_CHECK_VERSION(3,4,0)
|
||||||
/* Make place for the possible tearoff handle item. Not in the popup
|
/* Make place for the possible tearoff handle item. Not in the popup
|
||||||
* menu, it doesn't have a tearoff item. */
|
* menu, it doesn't have a tearoff item. */
|
||||||
if (!menu_is_popup(parent->name))
|
if (!menu_is_popup(parent->name))
|
||||||
++idx;
|
++idx;
|
||||||
|
# endif
|
||||||
|
|
||||||
if (menu_is_separator(menu->name))
|
if (menu_is_separator(menu->name))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -633,6 +633,30 @@ S_SvREFCNT_dec(pTHX_ SV *sv)
|
|||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
/* perl-5.26 also needs S_TOPMARK and S_POPMARK. */
|
||||||
|
# if (PERL_REVISION == 5) && (PERL_VERSION >= 26)
|
||||||
|
PERL_STATIC_INLINE I32
|
||||||
|
S_TOPMARK(pTHX)
|
||||||
|
{
|
||||||
|
DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log,
|
||||||
|
"MARK top %p %" IVdf "\n",
|
||||||
|
PL_markstack_ptr,
|
||||||
|
(IV)*PL_markstack_ptr)));
|
||||||
|
return *PL_markstack_ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
PERL_STATIC_INLINE I32
|
||||||
|
S_POPMARK(pTHX)
|
||||||
|
{
|
||||||
|
DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log,
|
||||||
|
"MARK pop %p %" IVdf "\n",
|
||||||
|
(PL_markstack_ptr-1),
|
||||||
|
(IV)*(PL_markstack_ptr-1))));
|
||||||
|
assert((PL_markstack_ptr > PL_markstack) || !"MARK underflow");
|
||||||
|
return *PL_markstack_ptr--;
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make all runtime-links of perl.
|
* Make all runtime-links of perl.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -779,6 +779,7 @@ get_exceptions(void)
|
|||||||
|
|
||||||
static int initialised = 0;
|
static int initialised = 0;
|
||||||
#define PYINITIALISED initialised
|
#define PYINITIALISED initialised
|
||||||
|
static int python_end_called = FALSE;
|
||||||
|
|
||||||
#define DESTRUCTOR_FINISH(self) self->ob_type->tp_free((PyObject*)self);
|
#define DESTRUCTOR_FINISH(self) self->ob_type->tp_free((PyObject*)self);
|
||||||
|
|
||||||
@@ -878,6 +879,7 @@ python_end(void)
|
|||||||
if (recurse != 0)
|
if (recurse != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
python_end_called = TRUE;
|
||||||
++recurse;
|
++recurse;
|
||||||
|
|
||||||
#ifdef DYNAMIC_PYTHON
|
#ifdef DYNAMIC_PYTHON
|
||||||
@@ -1040,6 +1042,8 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
|
|||||||
}
|
}
|
||||||
++recursive;
|
++recursive;
|
||||||
#endif
|
#endif
|
||||||
|
if (python_end_called)
|
||||||
|
return;
|
||||||
|
|
||||||
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
||||||
GetPort(&oldPort);
|
GetPort(&oldPort);
|
||||||
|
|||||||
@@ -733,8 +733,8 @@ get_py3_exceptions(void)
|
|||||||
#endif /* DYNAMIC_PYTHON3 */
|
#endif /* DYNAMIC_PYTHON3 */
|
||||||
|
|
||||||
static int py3initialised = 0;
|
static int py3initialised = 0;
|
||||||
|
|
||||||
#define PYINITIALISED py3initialised
|
#define PYINITIALISED py3initialised
|
||||||
|
static int python_end_called = FALSE;
|
||||||
|
|
||||||
#define DESTRUCTOR_FINISH(self) Py_TYPE(self)->tp_free((PyObject*)self)
|
#define DESTRUCTOR_FINISH(self) Py_TYPE(self)->tp_free((PyObject*)self)
|
||||||
|
|
||||||
@@ -817,6 +817,7 @@ python3_end(void)
|
|||||||
if (recurse != 0)
|
if (recurse != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
python_end_called = TRUE;
|
||||||
++recurse;
|
++recurse;
|
||||||
|
|
||||||
#ifdef DYNAMIC_PYTHON3
|
#ifdef DYNAMIC_PYTHON3
|
||||||
@@ -938,6 +939,9 @@ DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
|
|||||||
PyObject *cmdbytes;
|
PyObject *cmdbytes;
|
||||||
PyGILState_STATE pygilstate;
|
PyGILState_STATE pygilstate;
|
||||||
|
|
||||||
|
if (python_end_called)
|
||||||
|
goto theend;
|
||||||
|
|
||||||
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
#if defined(MACOS) && !defined(MACOS_X_UNIX)
|
||||||
GetPort(&oldPort);
|
GetPort(&oldPort);
|
||||||
/* Check if the Python library is available */
|
/* Check if the Python library is available */
|
||||||
|
|||||||
195
src/keymap.h
195
src/keymap.h
@@ -112,6 +112,7 @@
|
|||||||
|
|
||||||
/* Used for the sgr mouse. */
|
/* Used for the sgr mouse. */
|
||||||
#define KS_SGR_MOUSE 237
|
#define KS_SGR_MOUSE 237
|
||||||
|
#define KS_SGR_MOUSE_RELEASE 236
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Filler used after KS_SPECIAL and others
|
* Filler used after KS_SPECIAL and others
|
||||||
@@ -139,6 +140,8 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Codes for keys that do not have a termcap name.
|
* Codes for keys that do not have a termcap name.
|
||||||
|
* The numbers are fixed to make sure that recorded key sequences remain valid.
|
||||||
|
* Add new entries at the end, not halfway.
|
||||||
*
|
*
|
||||||
* K_SPECIAL KS_EXTRA KE_xxx
|
* K_SPECIAL KS_EXTRA KE_xxx
|
||||||
*/
|
*/
|
||||||
@@ -146,125 +149,126 @@ enum key_extra
|
|||||||
{
|
{
|
||||||
KE_NAME = 3 /* name of this terminal entry */
|
KE_NAME = 3 /* name of this terminal entry */
|
||||||
|
|
||||||
, KE_S_UP /* shift-up */
|
, KE_S_UP = 4 /* shift-up */
|
||||||
, KE_S_DOWN /* shift-down */
|
, KE_S_DOWN = 5 /* shift-down */
|
||||||
|
|
||||||
, KE_S_F1 /* shifted function keys */
|
, KE_S_F1 = 6 /* shifted function keys */
|
||||||
, KE_S_F2
|
, KE_S_F2 = 7
|
||||||
, KE_S_F3
|
, KE_S_F3 = 8
|
||||||
, KE_S_F4
|
, KE_S_F4 = 9
|
||||||
, KE_S_F5
|
, KE_S_F5 = 10
|
||||||
, KE_S_F6
|
, KE_S_F6 = 11
|
||||||
, KE_S_F7
|
, KE_S_F7 = 12
|
||||||
, KE_S_F8
|
, KE_S_F8 = 13
|
||||||
, KE_S_F9
|
, KE_S_F9 = 14
|
||||||
, KE_S_F10
|
, KE_S_F10 = 15
|
||||||
|
|
||||||
, KE_S_F11
|
, KE_S_F11 = 16
|
||||||
, KE_S_F12
|
, KE_S_F12 = 17
|
||||||
, KE_S_F13
|
, KE_S_F13 = 18
|
||||||
, KE_S_F14
|
, KE_S_F14 = 19
|
||||||
, KE_S_F15
|
, KE_S_F15 = 20
|
||||||
, KE_S_F16
|
, KE_S_F16 = 21
|
||||||
, KE_S_F17
|
, KE_S_F17 = 22
|
||||||
, KE_S_F18
|
, KE_S_F18 = 23
|
||||||
, KE_S_F19
|
, KE_S_F19 = 24
|
||||||
, KE_S_F20
|
, KE_S_F20 = 25
|
||||||
|
|
||||||
, KE_S_F21
|
, KE_S_F21 = 26
|
||||||
, KE_S_F22
|
, KE_S_F22 = 27
|
||||||
, KE_S_F23
|
, KE_S_F23 = 28
|
||||||
, KE_S_F24
|
, KE_S_F24 = 29
|
||||||
, KE_S_F25
|
, KE_S_F25 = 30
|
||||||
, KE_S_F26
|
, KE_S_F26 = 31
|
||||||
, KE_S_F27
|
, KE_S_F27 = 32
|
||||||
, KE_S_F28
|
, KE_S_F28 = 33
|
||||||
, KE_S_F29
|
, KE_S_F29 = 34
|
||||||
, KE_S_F30
|
, KE_S_F30 = 35
|
||||||
|
|
||||||
, KE_S_F31
|
, KE_S_F31 = 36
|
||||||
, KE_S_F32
|
, KE_S_F32 = 37
|
||||||
, KE_S_F33
|
, KE_S_F33 = 38
|
||||||
, KE_S_F34
|
, KE_S_F34 = 39
|
||||||
, KE_S_F35
|
, KE_S_F35 = 40
|
||||||
, KE_S_F36
|
, KE_S_F36 = 41
|
||||||
, KE_S_F37
|
, KE_S_F37 = 42
|
||||||
|
|
||||||
, KE_MOUSE /* mouse event start */
|
, KE_MOUSE = 43 /* mouse event start */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Symbols for pseudo keys which are translated from the real key symbols
|
* Symbols for pseudo keys which are translated from the real key symbols
|
||||||
* above.
|
* above.
|
||||||
*/
|
*/
|
||||||
, KE_LEFTMOUSE /* Left mouse button click */
|
, KE_LEFTMOUSE = 44 /* Left mouse button click */
|
||||||
, KE_LEFTDRAG /* Drag with left mouse button down */
|
, KE_LEFTDRAG = 45 /* Drag with left mouse button down */
|
||||||
, KE_LEFTRELEASE /* Left mouse button release */
|
, KE_LEFTRELEASE = 46 /* Left mouse button release */
|
||||||
, KE_MIDDLEMOUSE /* Middle mouse button click */
|
, KE_MIDDLEMOUSE = 47 /* Middle mouse button click */
|
||||||
, KE_MIDDLEDRAG /* Drag with middle mouse button down */
|
, KE_MIDDLEDRAG = 48 /* Drag with middle mouse button down */
|
||||||
, KE_MIDDLERELEASE /* Middle mouse button release */
|
, KE_MIDDLERELEASE = 49 /* Middle mouse button release */
|
||||||
, KE_RIGHTMOUSE /* Right mouse button click */
|
, KE_RIGHTMOUSE = 50 /* Right mouse button click */
|
||||||
, KE_RIGHTDRAG /* Drag with right mouse button down */
|
, KE_RIGHTDRAG = 51 /* Drag with right mouse button down */
|
||||||
, KE_RIGHTRELEASE /* Right mouse button release */
|
, KE_RIGHTRELEASE = 52 /* Right mouse button release */
|
||||||
|
|
||||||
, KE_IGNORE /* Ignored mouse drag/release */
|
, KE_IGNORE = 53 /* Ignored mouse drag/release */
|
||||||
|
|
||||||
, KE_TAB /* unshifted TAB key */
|
, KE_TAB = 54 /* unshifted TAB key */
|
||||||
, KE_S_TAB_OLD /* shifted TAB key (no longer used) */
|
, KE_S_TAB_OLD = 55 /* shifted TAB key (no longer used) */
|
||||||
|
|
||||||
, KE_XF1 /* extra vt100 function keys for xterm */
|
, KE_SNIFF_UNUSED = 56 /* obsolete */
|
||||||
, KE_XF2
|
, KE_XF1 = 57 /* extra vt100 function keys for xterm */
|
||||||
, KE_XF3
|
, KE_XF2 = 58
|
||||||
, KE_XF4
|
, KE_XF3 = 59
|
||||||
, KE_XEND /* extra (vt100) end key for xterm */
|
, KE_XF4 = 60
|
||||||
, KE_ZEND /* extra (vt100) end key for xterm */
|
, KE_XEND = 61 /* extra (vt100) end key for xterm */
|
||||||
, KE_XHOME /* extra (vt100) home key for xterm */
|
, KE_ZEND = 62 /* extra (vt100) end key for xterm */
|
||||||
, KE_ZHOME /* extra (vt100) home key for xterm */
|
, KE_XHOME = 63 /* extra (vt100) home key for xterm */
|
||||||
, KE_XUP /* extra vt100 cursor keys for xterm */
|
, KE_ZHOME = 64 /* extra (vt100) home key for xterm */
|
||||||
, KE_XDOWN
|
, KE_XUP = 65 /* extra vt100 cursor keys for xterm */
|
||||||
, KE_XLEFT
|
, KE_XDOWN = 66
|
||||||
, KE_XRIGHT
|
, KE_XLEFT = 67
|
||||||
|
, KE_XRIGHT = 68
|
||||||
|
|
||||||
, KE_LEFTMOUSE_NM /* non-mappable Left mouse button click */
|
, KE_LEFTMOUSE_NM = 69 /* non-mappable Left mouse button click */
|
||||||
, KE_LEFTRELEASE_NM /* non-mappable left mouse button release */
|
, KE_LEFTRELEASE_NM = 70 /* non-mappable left mouse button release */
|
||||||
|
|
||||||
, KE_S_XF1 /* extra vt100 shifted function keys for xterm */
|
, KE_S_XF1 = 71 /* vt100 shifted function keys for xterm */
|
||||||
, KE_S_XF2
|
, KE_S_XF2 = 72
|
||||||
, KE_S_XF3
|
, KE_S_XF3 = 73
|
||||||
, KE_S_XF4
|
, KE_S_XF4 = 74
|
||||||
|
|
||||||
/* NOTE: The scroll wheel events are inverted: i.e. UP is the same as
|
/* NOTE: The scroll wheel events are inverted: i.e. UP is the same as
|
||||||
* moving the actual scroll wheel down, LEFT is the same as moving the
|
* moving the actual scroll wheel down, LEFT is the same as moving the
|
||||||
* scroll wheel right. */
|
* scroll wheel right. */
|
||||||
, KE_MOUSEDOWN /* scroll wheel pseudo-button Down */
|
, KE_MOUSEDOWN = 75 /* scroll wheel pseudo-button Down */
|
||||||
, KE_MOUSEUP /* scroll wheel pseudo-button Up */
|
, KE_MOUSEUP = 76 /* scroll wheel pseudo-button Up */
|
||||||
, KE_MOUSELEFT /* scroll wheel pseudo-button Left */
|
, KE_MOUSELEFT = 77 /* scroll wheel pseudo-button Left */
|
||||||
, KE_MOUSERIGHT /* scroll wheel pseudo-button Right */
|
, KE_MOUSERIGHT = 78 /* scroll wheel pseudo-button Right */
|
||||||
|
|
||||||
, KE_KINS /* keypad Insert key */
|
, KE_KINS = 79 /* keypad Insert key */
|
||||||
, KE_KDEL /* keypad Delete key */
|
, KE_KDEL = 80 /* keypad Delete key */
|
||||||
|
|
||||||
, KE_CSI /* CSI typed directly */
|
, KE_CSI = 81 /* CSI typed directly */
|
||||||
, KE_SNR /* <SNR> */
|
, KE_SNR = 82 /* <SNR> */
|
||||||
, KE_PLUG /* <Plug> */
|
, KE_PLUG = 83 /* <Plug> */
|
||||||
, KE_CMDWIN /* open command-line window from Command-line Mode */
|
, KE_CMDWIN = 84 /* open command-line window from Command-line Mode */
|
||||||
|
|
||||||
, KE_C_LEFT /* control-left */
|
, KE_C_LEFT = 85 /* control-left */
|
||||||
, KE_C_RIGHT /* control-right */
|
, KE_C_RIGHT = 86 /* control-right */
|
||||||
, KE_C_HOME /* control-home */
|
, KE_C_HOME = 87 /* control-home */
|
||||||
, KE_C_END /* control-end */
|
, KE_C_END = 88 /* control-end */
|
||||||
|
|
||||||
, KE_X1MOUSE /* X1/X2 mouse-buttons */
|
, KE_X1MOUSE = 89 /* X1/X2 mouse-buttons */
|
||||||
, KE_X1DRAG
|
, KE_X1DRAG = 90
|
||||||
, KE_X1RELEASE
|
, KE_X1RELEASE = 91
|
||||||
, KE_X2MOUSE
|
, KE_X2MOUSE = 92
|
||||||
, KE_X2DRAG
|
, KE_X2DRAG = 93
|
||||||
, KE_X2RELEASE
|
, KE_X2RELEASE = 94
|
||||||
|
|
||||||
, KE_DROP /* DnD data is available */
|
, KE_DROP = 95 /* DnD data is available */
|
||||||
, KE_CURSORHOLD /* CursorHold event */
|
, KE_CURSORHOLD = 96 /* CursorHold event */
|
||||||
, KE_NOP /* doesn't do something */
|
, KE_NOP = 97 /* doesn't do something */
|
||||||
, KE_FOCUSGAINED /* focus gained */
|
, KE_FOCUSGAINED = 98 /* focus gained */
|
||||||
, KE_FOCUSLOST /* focus lost */
|
, KE_FOCUSLOST = 99 /* focus lost */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -416,6 +420,7 @@ enum key_extra
|
|||||||
#define K_PTERM_MOUSE TERMCAP2KEY(KS_PTERM_MOUSE, KE_FILLER)
|
#define K_PTERM_MOUSE TERMCAP2KEY(KS_PTERM_MOUSE, KE_FILLER)
|
||||||
#define K_URXVT_MOUSE TERMCAP2KEY(KS_URXVT_MOUSE, KE_FILLER)
|
#define K_URXVT_MOUSE TERMCAP2KEY(KS_URXVT_MOUSE, KE_FILLER)
|
||||||
#define K_SGR_MOUSE TERMCAP2KEY(KS_SGR_MOUSE, KE_FILLER)
|
#define K_SGR_MOUSE TERMCAP2KEY(KS_SGR_MOUSE, KE_FILLER)
|
||||||
|
#define K_SGR_MOUSERELEASE TERMCAP2KEY(KS_SGR_MOUSE_RELEASE, KE_FILLER)
|
||||||
|
|
||||||
#define K_SELECT TERMCAP2KEY(KS_SELECT, KE_FILLER)
|
#define K_SELECT TERMCAP2KEY(KS_SELECT, KE_FILLER)
|
||||||
#define K_TEAROFF TERMCAP2KEY(KS_TEAROFF, KE_FILLER)
|
#define K_TEAROFF TERMCAP2KEY(KS_TEAROFF, KE_FILLER)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user