mirror of
https://github.com/zoriya/vim.git
synced 2025-12-31 03:18:25 +00:00
Compare commits
163 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
063a46ba77 | ||
|
|
14177b77bf | ||
|
|
6d977d6c1c | ||
|
|
ca058dc71f | ||
|
|
6cd3aeee4c | ||
|
|
2cd3696c35 | ||
|
|
32b9201f37 | ||
|
|
9d1685d1cf | ||
|
|
e21b6b2a8d | ||
|
|
b0d5c96133 | ||
|
|
78cf3f0de9 | ||
|
|
a02471e295 | ||
|
|
bd2dc34774 | ||
|
|
4ea924e0a5 | ||
|
|
3a69e1135e | ||
|
|
b1cb35f785 | ||
|
|
438f67a004 | ||
|
|
2fda301469 | ||
|
|
5ec8305ea8 | ||
|
|
5f4c8406a2 | ||
|
|
3f1138e8ae | ||
|
|
4b550b4c50 | ||
|
|
dedd1b0aba | ||
|
|
0bd7b3f4ce | ||
|
|
959a143f2e | ||
|
|
207fd75cac | ||
|
|
7c0daf088e | ||
|
|
36c85b2c46 | ||
|
|
dfb18411cf | ||
|
|
175d0704df | ||
|
|
2cc8738f2f | ||
|
|
c8020ee825 | ||
|
|
910cffbb5e | ||
|
|
893b2d73d1 | ||
|
|
fcf94d3990 | ||
|
|
4ffa07081f | ||
|
|
1d633413e5 | ||
|
|
6b10721fa2 | ||
|
|
7ba0741451 | ||
|
|
b011af9696 | ||
|
|
5d7f9df8fa | ||
|
|
73c61633b6 | ||
|
|
b050c64186 | ||
|
|
c2401d62e0 | ||
|
|
ba2d44f338 | ||
|
|
b95186fd36 | ||
|
|
34b466edfe | ||
|
|
9fee7d4729 | ||
|
|
e88a5f3a2c | ||
|
|
dff54ac7e8 | ||
|
|
174a848b67 | ||
|
|
3678208477 | ||
|
|
c62a644eaf | ||
|
|
ace8d8ee2f | ||
|
|
438ee5bf60 | ||
|
|
272fb58236 | ||
|
|
cafaa8a950 | ||
|
|
d07c6e1e82 | ||
|
|
1e42f7ac16 | ||
|
|
ffa2220950 | ||
|
|
49b10273f0 | ||
|
|
49b6a57d19 | ||
|
|
9421bdc2cd | ||
|
|
4b60a6cdb3 | ||
|
|
2593e037c9 | ||
|
|
e874744e94 | ||
|
|
8f5610df73 | ||
|
|
0671de335f | ||
|
|
cc63c647ee | ||
|
|
efe06f4dd8 | ||
|
|
0f8de8dfb2 | ||
|
|
3f75e422be | ||
|
|
d6b8a5253b | ||
|
|
a939e43440 | ||
|
|
8e69b4a319 | ||
|
|
45d3b1454c | ||
|
|
815135e408 | ||
|
|
817a8801d7 | ||
|
|
8050efa07d | ||
|
|
e5878f4be9 | ||
|
|
03e228a623 | ||
|
|
fcea03ddd3 | ||
|
|
c1c023ecfc | ||
|
|
aa88732efd | ||
|
|
f5a2fd880a | ||
|
|
4c1e626103 | ||
|
|
84dbb62fca | ||
|
|
dce7c91de9 | ||
|
|
6bcbcc59be | ||
|
|
0958e0fbe7 | ||
|
|
f332a656c3 | ||
|
|
69c3500f96 | ||
|
|
332a2cadcd | ||
|
|
d9820538bd | ||
|
|
ba2d7ffc4b | ||
|
|
d5d015d457 | ||
|
|
18e5469b6e | ||
|
|
39766a7595 | ||
|
|
0b400087d0 | ||
|
|
9db1293317 | ||
|
|
92c2db8be6 | ||
|
|
0ffbbf9ea8 | ||
|
|
4cc95d1495 | ||
|
|
2b1b53f5d9 | ||
|
|
1180822670 | ||
|
|
b69a714bb7 | ||
|
|
2c019c8696 | ||
|
|
a951e35478 | ||
|
|
b133208080 | ||
|
|
4c7cb6b884 | ||
|
|
3eead7c227 | ||
|
|
0c6ccfdb62 | ||
|
|
35a7c681bc | ||
|
|
0b4db6b6e5 | ||
|
|
ceb84af027 | ||
|
|
8962fda1da | ||
|
|
386dcde30d | ||
|
|
7a18fdc8a4 | ||
|
|
033d8888e8 | ||
|
|
cca7413456 | ||
|
|
2ee95f7d13 | ||
|
|
134bf07ca0 | ||
|
|
f211884fa1 | ||
|
|
699c12076d | ||
|
|
18441ae2cd | ||
|
|
268b55b5fb | ||
|
|
ec11aef914 | ||
|
|
6848c8b561 | ||
|
|
baca7f705b | ||
|
|
595cad2ea1 | ||
|
|
00462ffb7d | ||
|
|
9952c102dd | ||
|
|
745c6eb29b | ||
|
|
917789fdf7 | ||
|
|
e6a2fa6573 | ||
|
|
dd40734800 | ||
|
|
95235e64d8 | ||
|
|
0300e465aa | ||
|
|
3b26239341 | ||
|
|
3b7ac49e26 | ||
|
|
7cba6c0636 | ||
|
|
bec9c20884 | ||
|
|
9be4481892 | ||
|
|
78c93e4b6a | ||
|
|
00b764aa41 | ||
|
|
f0d9e00537 | ||
|
|
966d71c852 | ||
|
|
65f04f67f1 | ||
|
|
4dee1bb0db | ||
|
|
4e4f529792 | ||
|
|
d2a203bb58 | ||
|
|
604729e75b | ||
|
|
b5ef5e1c21 | ||
|
|
195ef0ccb2 | ||
|
|
cf81aefd9c | ||
|
|
41f1205fef | ||
|
|
74cd624fde | ||
|
|
67652c2935 | ||
|
|
c56c459075 | ||
|
|
c93df6b075 | ||
|
|
ebefd997bb | ||
|
|
3f0df06c28 | ||
|
|
1cfad52a03 |
9
.gitignore
vendored
9
.gitignore
vendored
@@ -36,6 +36,15 @@ src/Obj*/pathdef.c
|
||||
gvimext.dll
|
||||
gvimext.lib
|
||||
|
||||
# Borland C++
|
||||
bcc.cfg
|
||||
*.ilc
|
||||
*.ild
|
||||
*.ilf
|
||||
*.ils
|
||||
*.map
|
||||
*.tds
|
||||
|
||||
# Mac OSX
|
||||
src/xxd/xxd.dSYM
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -36,6 +36,14 @@ Some attributes (e.g., bold) might be set in the defaults that you want
|
||||
removed in your color scheme. Use something like "gui=NONE" to remove the
|
||||
attributes.
|
||||
|
||||
In case you want to set 'background' depending on the colorscheme selected,
|
||||
this autocmd might be useful:
|
||||
autocmd SourcePre */colors/blue_sky.vim set background=dark
|
||||
Replace "blue_sky" with the name of the colorscheme.
|
||||
|
||||
In case you want to tweak a colorscheme after it was loaded, check out that
|
||||
ColorScheme autocmd event.
|
||||
|
||||
To see which highlight group is used where, find the help for
|
||||
"highlight-groups" and "group-name".
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ CompilerSet errorformat=
|
||||
\%f:%l:\ %tarning:\ %m,
|
||||
\%f:%l:\ %m,
|
||||
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
|
||||
\%D%*\\a:\ Entering\ directory\ `%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ `%f',
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ [`']%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ [`']%f',
|
||||
\%D%*\\a:\ Entering\ directory\ [`']%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ [`']%f',
|
||||
\%DMaking\ %*\\a\ in\ %f
|
||||
|
||||
if exists('g:compiler_gcc_ignore_unmatched_lines')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 7.4. Last change: 2013 Aug 04
|
||||
*autocmd.txt* For Vim version 7.4. Last change: 2013 Dec 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -304,6 +304,9 @@ Name triggered by ~
|
||||
|InsertCharPre| when a character was typed in Insert mode, before
|
||||
inserting it
|
||||
|
||||
|TextChanged| after a change was made to the text in Normal mode
|
||||
|TextChangedI| after a change was made to the text in Insert mode
|
||||
|
||||
|ColorScheme| after loading a color scheme
|
||||
|
||||
|RemoteReply| a reply from a server Vim was received
|
||||
@@ -480,6 +483,12 @@ CmdwinLeave Before leaving the command-line window.
|
||||
|cmdwin-char|
|
||||
*ColorScheme*
|
||||
ColorScheme After loading a color scheme. |:colorscheme|
|
||||
The pattern is matched against the
|
||||
colorscheme name. <afile> can be used for the
|
||||
name of the actual file where this option was
|
||||
set, and <amatch> for the new colorscheme
|
||||
name.
|
||||
|
||||
|
||||
*CompleteDone*
|
||||
CompleteDone After Insert mode completion is done. Either
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 7.4. Last change: 2013 Jul 17
|
||||
*change.txt* For Vim version 7.4. Last change: 2013 Nov 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -475,8 +475,8 @@ If the 'shiftround' option is on, the indent is rounded to a multiple of
|
||||
'shiftwidth'.
|
||||
|
||||
If the 'smartindent' option is on, or 'cindent' is on and 'cinkeys' contains
|
||||
'#', shift right does not affect lines starting with '#' (these are supposed
|
||||
to be C preprocessor lines that must stay in column 1).
|
||||
'#' with a zero value, shift right does not affect lines starting with '#'
|
||||
(these are supposed to be C preprocessor lines that must stay in column 1).
|
||||
|
||||
When the 'expandtab' option is off (this is the default) Vim uses <Tab>s as
|
||||
much as possible to make the indent. You can use ">><<" to replace an indent
|
||||
@@ -1069,6 +1069,11 @@ another register. E.g., yank the text to copy, Visually select the text to
|
||||
replace and use "0p . You can repeat this as many times as you like, the
|
||||
unnamed register will be changed each time.
|
||||
|
||||
When you use a blockwise Visual mode command and yank only a single line into
|
||||
a register, a paste on a visual selected area will paste that single line on
|
||||
each of the selected lines (thus replacing the blockwise selected region by a
|
||||
block of the pasted line).
|
||||
|
||||
*blockwise-register*
|
||||
If you use a blockwise Visual mode command to get the text into the register,
|
||||
the block of text will be inserted before ("P") or after ("p") the cursor
|
||||
@@ -1126,6 +1131,8 @@ less than one line (the small delete register is used then). An exception is
|
||||
made for the delete operator with these movement commands: |%|, |(|, |)|, |`|,
|
||||
|/|, |?|, |n|, |N|, |{| and |}|. Register "1 is always used then (this is Vi
|
||||
compatible). The "- register is used as well if the delete is within a line.
|
||||
Note that these characters may be mapped. E.g. |%| is mapped by the matchit
|
||||
plugin.
|
||||
With each successive deletion or change, Vim shifts the previous contents
|
||||
of register 1 into register 2, 2 into 3, and so forth, losing the previous
|
||||
contents of register 9.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 7.4. Last change: 2013 Mar 16
|
||||
*cmdline.txt* For Vim version 7.4. Last change: 2013 Nov 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -356,6 +356,10 @@ terminals)
|
||||
List the recent five entries from all histories: >
|
||||
:history all -5,
|
||||
|
||||
:keepp[atterns] {command} *:keepp* *:keeppatterns*
|
||||
Execute {command}, without adding anything to the search
|
||||
history
|
||||
|
||||
==============================================================================
|
||||
2. Command-line completion *cmdline-completion*
|
||||
|
||||
@@ -754,6 +758,7 @@ characters have a special meaning. These can also be used in the expression
|
||||
function expand() |expand()|.
|
||||
% Is replaced with the current file name. *:_%* *c_%*
|
||||
# Is replaced with the alternate file name. *:_#* *c_#*
|
||||
This is remembered for every window.
|
||||
#n (where n is a number) is replaced with *:_#0* *:_#n*
|
||||
the file name of buffer n. "#0" is the same as "#". *c_#n*
|
||||
## Is replaced with all names in the argument list *:_##* *c_##*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 7.4. Last change: 2013 Jul 07
|
||||
*diff.txt* For Vim version 7.4. Last change: 2013 Sep 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -123,10 +123,14 @@ Since the option values are remembered with the buffer, you can edit another
|
||||
file for a moment and come back to the same file and be in diff mode again.
|
||||
|
||||
*:diffo* *:diffoff*
|
||||
:diffo[ff] Switch off diff mode for the current window.
|
||||
:diffo[ff] Switch off diff mode for the current window. Resets related
|
||||
options also when 'diff' was not set.
|
||||
|
||||
:diffo[ff]! Switch off diff mode for the current window and in all windows
|
||||
in the current tab page where 'diff' is set.
|
||||
in the current tab page where 'diff' is set. Resetting
|
||||
related options only happens in a window that has 'diff' set,
|
||||
if the current window does not have 'diff' set then no options
|
||||
in it are changed.
|
||||
|
||||
The ":diffoff" command resets the relevant options to the values they had when
|
||||
using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*digraph.txt* For Vim version 7.4. Last change: 2011 Jan 15
|
||||
*digraph.txt* For Vim version 7.4. Last change: 2013 Dec 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -147,7 +147,7 @@ a standard meaning:
|
||||
Two 2 Hook
|
||||
Nine 9 Horn
|
||||
|
||||
Equals = Cyrillic
|
||||
Equals = Cyrillic (= used as second char)
|
||||
Asterisk * Greek
|
||||
Percent sign % Greek/Cyrillic special
|
||||
Plus + smalls: Arabic, capitals: Hebrew
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 7.4. Last change: 2013 Aug 03
|
||||
*editing.txt* For Vim version 7.4. Last change: 2013 Nov 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,6 +38,7 @@ If there already was a current file name, then that one becomes the alternate
|
||||
file name. It can be used with "#" on the command line |:_#| and you can use
|
||||
the |CTRL-^| command to toggle between the current and the alternate file.
|
||||
However, the alternate file name is not changed when |:keepalt| is used.
|
||||
An alternate file name is remembered for each window.
|
||||
|
||||
*:keepalt* *:keepa*
|
||||
:keepalt {cmd} Execute {cmd} while keeping the current alternate file
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 7.4. Last change: 2013 Aug 03
|
||||
*eval.txt* For Vim version 7.4. Last change: 2013 Dec 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -123,6 +123,7 @@ around the arguments, to invoke the function it refers to. Example: >
|
||||
:echo Fn()
|
||||
< *E704* *E705* *E707*
|
||||
A Funcref variable must start with a capital, "s:", "w:", "t:" or "b:". You
|
||||
can use "g:" but the following name must still start with a capital. You
|
||||
cannot have both a Funcref variable and a function with the same name.
|
||||
|
||||
A special case is defining a function and directly assigning its Funcref to a
|
||||
@@ -1454,6 +1455,13 @@ v:foldend Used for 'foldtext': last line of closed fold.
|
||||
v:foldstart Used for 'foldtext': first line of closed fold.
|
||||
Read-only in the |sandbox|. |fold-foldtext|
|
||||
|
||||
*v:hlsearch* *hlsearch-variable*
|
||||
v:hlsearch Variable that determines whether search highlighting is on.
|
||||
Makes sense only if 'hlsearch' is enabled which requires
|
||||
|+extra_search|. Setting this variable to zero acts the like
|
||||
|:nohlsearch| command, setting it to one acts like >
|
||||
let &hlsearch = &hlsearch
|
||||
<
|
||||
*v:insertmode* *insertmode-variable*
|
||||
v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand
|
||||
events. Values:
|
||||
@@ -1712,6 +1720,7 @@ bufnr( {expr}) Number Number of the buffer {expr}
|
||||
bufwinnr( {expr}) Number window number of buffer {expr}
|
||||
byte2line( {byte}) Number line number at byte count {byte}
|
||||
byteidx( {expr}, {nr}) Number byte index of {nr}'th char in {expr}
|
||||
byteidxcomp( {expr}, {nr}) Number byte index of {nr}'th char in {expr}
|
||||
call( {func}, {arglist} [, {dict}])
|
||||
any call {func} with arguments {arglist}
|
||||
ceil( {expr}) Float round {expr} up
|
||||
@@ -2260,7 +2269,10 @@ byteidx({expr}, {nr}) *byteidx()*
|
||||
{expr}. Use zero for the first character, it returns zero.
|
||||
This function is only useful when there are multibyte
|
||||
characters, otherwise the returned value is equal to {nr}.
|
||||
Composing characters are counted as a separate character.
|
||||
Composing characters are not counted separately, their byte
|
||||
length is added to the preceding base character. See
|
||||
|byteidxcomp()| below for counting composing characters
|
||||
separately.
|
||||
Example : >
|
||||
echo matchstr(str, ".", byteidx(str, 3))
|
||||
< will display the fourth character. Another way to do the
|
||||
@@ -2269,7 +2281,20 @@ byteidx({expr}, {nr}) *byteidx()*
|
||||
echo strpart(s, 0, byteidx(s, 1))
|
||||
< If there are less than {nr} characters -1 is returned.
|
||||
If there are exactly {nr} characters the length of the string
|
||||
is returned.
|
||||
in bytes is returned.
|
||||
|
||||
byteidxcomp({expr}, {nr}) *byteidxcomp()*
|
||||
Like byteidx(), except that a composing character is counted
|
||||
as a separate character. Example: >
|
||||
let s = 'e' . nr2char(0x301)
|
||||
echo byteidx(s, 1)
|
||||
echo byteidxcomp(s, 1)
|
||||
echo byteidxcomp(s, 2)
|
||||
< The first and third echo result in 3 ('e' plus composing
|
||||
character is 3 bytes), the second echo results in 1 ('e' is
|
||||
one byte).
|
||||
Only works different from byteidx() when 'encoding' is set to
|
||||
a Unicode encoding.
|
||||
|
||||
call({func}, {arglist} [, {dict}]) *call()* *E699*
|
||||
Call function {func} with the items in |List| {arglist} as
|
||||
@@ -3175,7 +3200,7 @@ getchar([expr]) *getchar()*
|
||||
If [expr] is 1, only check if a character is available, it is
|
||||
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
|
||||
result is a number. Use nr2char() to convert it to a String.
|
||||
Otherwise a String is returned with the encoded character.
|
||||
@@ -3185,7 +3210,7 @@ getchar([expr]) *getchar()*
|
||||
String when a modifier (shift, control, alt) was used that is
|
||||
not included in the character.
|
||||
|
||||
When {expr} is 1 only the first byte is returned. For a
|
||||
When [expr] is 1 only the first byte is returned. For a
|
||||
one-byte character it is the character itself as a number.
|
||||
Use nr2char() to convert it to a String.
|
||||
|
||||
@@ -3435,7 +3460,7 @@ getregtype([{regname}]) *getregtype()*
|
||||
"v" for |characterwise| text
|
||||
"V" for |linewise| text
|
||||
"<CTRL-V>{width}" for |blockwise-visual| text
|
||||
0 for an empty or unknown register
|
||||
"" for an empty or unknown register
|
||||
<CTRL-V> is one character with value 0x16.
|
||||
If {regname} is not specified, |v:register| is used.
|
||||
|
||||
@@ -4109,6 +4134,8 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
|
||||
(|mapmode-ic|)
|
||||
"sid" The script local ID, used for <sid> mappings
|
||||
(|<SID>|).
|
||||
"nowait" Do not wait for other, longer mappings.
|
||||
(|:map-<nowait>|).
|
||||
|
||||
The mappings local to the current buffer are checked first,
|
||||
then the global mappings.
|
||||
@@ -4210,6 +4237,9 @@ matchadd({group}, {pattern}[, {priority}[, {id}]])
|
||||
"match"). It will be highlighted with {group}. Returns an
|
||||
identification number (ID), which can be used to delete the
|
||||
match using |matchdelete()|.
|
||||
Matching is case sensitive and magic, unless case sensitivity
|
||||
or magicness are explicitly overridden in {pattern}. The
|
||||
'magic', 'smartcase' and 'ignorecase' options are not used.
|
||||
|
||||
The optional {priority} argument assigns a priority to the
|
||||
match. A match with a high priority will have its
|
||||
@@ -4419,6 +4449,9 @@ getpos({expr}) Get the position for {expr}. For possible values of {expr}
|
||||
it is the offset in screen columns from the start of the
|
||||
character. E.g., a position within a <Tab> or after the last
|
||||
character.
|
||||
Note that for '< and '> Visual mode matters: when it is "V"
|
||||
(visual line mode) the column of '< is zero and the column of
|
||||
'> is a large number.
|
||||
This can be used to save and restore the cursor position: >
|
||||
let save_cursor = getpos(".")
|
||||
MoveTheCursorAround
|
||||
@@ -5242,6 +5275,10 @@ setpos({expr}, {list})
|
||||
character. E.g., a position within a <Tab> or after the last
|
||||
character.
|
||||
|
||||
Note that for '< and '> changing the line number may result in
|
||||
the marks to be effectively be swapped, so that '< is always
|
||||
before '>.
|
||||
|
||||
Returns 0 when the position could be set, -1 otherwise.
|
||||
An error message is given if {expr} is invalid.
|
||||
|
||||
@@ -6337,6 +6374,7 @@ There are three types of features:
|
||||
< Note that it's possible for patch 147 to be omitted even though 148 is
|
||||
included.
|
||||
|
||||
acl Compiled with |ACL| support.
|
||||
all_builtin_terms Compiled with all builtin terminals enabled.
|
||||
amiga Amiga version of Vim.
|
||||
arabic Compiled with Arabic support |Arabic|.
|
||||
@@ -6503,7 +6541,9 @@ windows Compiled with support for more than one window.
|
||||
writebackup Compiled with 'writebackup' default on.
|
||||
xfontset Compiled with X fontset support |xfontset|.
|
||||
xim Compiled with X input method support |xim|.
|
||||
xpm_w32 Compiled with pixmap support for Win32.
|
||||
xpm Compiled with pixmap support.
|
||||
xpm_w32 Compiled with pixmap support for Win32. (Only for
|
||||
backward compatibility. Use "xpm" instead.)
|
||||
xsmp Compiled with X session management support.
|
||||
xsmp_interact Compiled with interactive X session management support.
|
||||
xterm_clipboard Compiled with support for xterm clipboard.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 7.4. Last change: 2013 May 25
|
||||
*filetype.txt* For Vim version 7.4. Last change: 2013 Dec 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -447,23 +447,25 @@ g:changelog_new_date_format
|
||||
%% insert a single '%' character
|
||||
%d insert the date from above
|
||||
%u insert the user from above
|
||||
%p insert result of b:changelog_entry_prefix
|
||||
%c where to position cursor when done
|
||||
The default is "%d %u\n\n\t* %c\n\n", which produces
|
||||
The default is "%d %u\n\n\t* %p%c\n\n", which produces
|
||||
something like (| is where cursor will be, unless at
|
||||
the start of the line where it denotes the beginning
|
||||
of the line) >
|
||||
|2003-01-14 Full Name <user@host>
|
||||
|
|
||||
| * |
|
||||
| * prefix|
|
||||
<
|
||||
g:changelog_new_entry_format
|
||||
The format used when creating a new entry.
|
||||
The following table describes special tokens in the
|
||||
string:
|
||||
%p insert result of b:changelog_entry_prefix
|
||||
%c where to position cursor when done
|
||||
The default is "\t*%c", which produces something
|
||||
similar to >
|
||||
| * |
|
||||
| * prefix|
|
||||
<
|
||||
g:changelog_date_entry_search
|
||||
The search pattern to use when searching for a
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*fold.txt* For Vim version 7.4. Last change: 2010 May 13
|
||||
*fold.txt* For Vim version 7.4. Last change: 2013 Dec 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -285,9 +285,10 @@ zF Create a fold for [count] lines. Works like "zf".
|
||||
*zd* *E351*
|
||||
zd Delete one fold at the cursor. When the cursor is on a folded
|
||||
line, that fold is deleted. Nested folds are moved one level
|
||||
up. In Visual mode all folds (partially) in the selected area
|
||||
are deleted. Careful: This easily deletes more folds than you
|
||||
expect and there is no undo.
|
||||
up. In Visual mode one level of all folds (partially) in the
|
||||
selected area are deleted.
|
||||
Careful: This easily deletes more folds than you expect and
|
||||
there is no undo for manual folding.
|
||||
This only works when 'foldmethod' is "manual" or "marker".
|
||||
Also see |fold-delete-marker|.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_lua.txt* For Vim version 7.4. Last change: 2012 Jun 29
|
||||
*if_lua.txt* For Vim version 7.4. Last change: 2013 Sep 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Luis Carvalho
|
||||
@@ -135,7 +135,7 @@ Vim evaluation and command execution, and others.
|
||||
<
|
||||
vim.funcref({name}) Returns a Funcref to function {name} (see
|
||||
|Funcref|). It is equivalent to Vim's
|
||||
"function".
|
||||
"function". NOT IMPLEMENTED YET
|
||||
|
||||
vim.buffer([arg]) If "arg" is a number, returns buffer with
|
||||
number "arg" in the buffer list or, if "arg"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_perl.txt* For Vim version 7.4. Last change: 2012 Oct 25
|
||||
*if_perl.txt* For Vim version 7.4. Last change: 2013 Oct 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sven Verdoolaege
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*indent.txt* For Vim version 7.4. Last change: 2013 Aug 03
|
||||
*indent.txt* For Vim version 7.4. Last change: 2013 Nov 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -545,10 +545,12 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
(default 70 lines).
|
||||
|
||||
*cino-#*
|
||||
#N When N is non-zero recognize shell/Perl comments, starting with
|
||||
'#'. Default N is zero: don't recognize '#' comments. Note
|
||||
that lines starting with # will still be seen as preprocessor
|
||||
lines.
|
||||
#N When N is non-zero recognize shell/Perl comments starting with
|
||||
'#', do not recognize preprocessor lines; allow right-shifting
|
||||
lines that start with "#".
|
||||
When N is zero (default): don't recognize '#' comments, do
|
||||
recognize preprocessor lines; right-shifting lines that start
|
||||
with "#" does not work.
|
||||
|
||||
|
||||
The defaults, spelled out in full, are:
|
||||
@@ -556,7 +558,7 @@ The defaults, spelled out in full, are:
|
||||
c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0
|
||||
|
||||
Vim puts a line in column 1 if:
|
||||
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
|
||||
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#0'.
|
||||
- It starts with a label (a keyword followed by ':', other than "case" and
|
||||
"default") and 'cinoptions' does not contain an 'L' entry with a positive
|
||||
value.
|
||||
@@ -581,8 +583,8 @@ CLOJURE *ft-clojure-indent* *clojure-indent*
|
||||
|
||||
Clojure indentation differs somewhat from traditional Lisps, due in part to
|
||||
the use of square and curly brackets, and otherwise by community convention.
|
||||
These conventions are not always universally followed, so the Clojure indent
|
||||
script offers a few configurable options, listed below.
|
||||
These conventions are not universally followed, so the Clojure indent script
|
||||
offers a few configurable options, listed below.
|
||||
|
||||
If the current vim does not include searchpairpos(), the indent script falls
|
||||
back to normal 'lisp' indenting, and the following options are ignored.
|
||||
@@ -596,7 +598,6 @@ without limits.
|
||||
" Default
|
||||
let g:clojure_maxlines = 100
|
||||
<
|
||||
|
||||
*g:clojure_fuzzy_indent*
|
||||
*g:clojure_fuzzy_indent_patterns*
|
||||
*g:clojure_fuzzy_indent_blacklist*
|
||||
@@ -650,7 +651,6 @@ default list below.
|
||||
let g:clojure_special_indent_words =
|
||||
\ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
|
||||
<
|
||||
|
||||
*g:clojure_align_multiline_strings*
|
||||
|
||||
Align subsequent lines in multiline strings to the column after the opening
|
||||
@@ -675,6 +675,28 @@ This option is off by default.
|
||||
" Default
|
||||
let g:clojure_align_multiline_strings = 0
|
||||
<
|
||||
*g:clojure_align_subforms*
|
||||
|
||||
By default, parenthesized compound forms that look like function calls and
|
||||
whose head subform is on its own line have subsequent subforms indented by
|
||||
two spaces relative to the opening paren:
|
||||
>
|
||||
(foo
|
||||
bar
|
||||
baz)
|
||||
<
|
||||
Setting this option changes this behavior so that all subforms are aligned to
|
||||
the same column:
|
||||
>
|
||||
(foo
|
||||
bar
|
||||
baz)
|
||||
<
|
||||
This option is off by default.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_align_subforms = 0
|
||||
<
|
||||
|
||||
|
||||
FORTRAN *ft-fortran-indent*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 7.4. Last change: 2013 Jul 17
|
||||
*index.txt* For Vim version 7.4. Last change: 2013 Nov 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1191,12 +1191,12 @@ tag command action ~
|
||||
|:digraphs| :dig[raphs] show or enter digraphs
|
||||
|:display| :di[splay] display registers
|
||||
|:djump| :dj[ump] jump to #define
|
||||
|:dl| :dl short for |:delete|
|
||||
|:dl| :del[ete]l short for |:delete|
|
||||
|:dl| :dl short for |:delete| with the 'l' flag
|
||||
|:dl| :del[ete]l short for |:delete| with the 'l' flag
|
||||
|:dlist| :dli[st] list #defines
|
||||
|:doautocmd| :do[autocmd] apply autocommands to current buffer
|
||||
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
|
||||
|:dp| :d[elete]p short for |:delete|
|
||||
|:dp| :d[elete]p short for |:delete| with the 'p' flag
|
||||
|:drop| :dr[op] jump to window editing file or edit file in
|
||||
current window
|
||||
|:dsearch| :ds[earch] list one #define
|
||||
@@ -1275,6 +1275,7 @@ tag command action ~
|
||||
|:keepalt| :keepa[lt] following command keeps the alternate file
|
||||
|:keepmarks| :kee[pmarks] following command keeps marks where they are
|
||||
|:keepjumps| :keepj[umps] following command keeps jumplist and marks
|
||||
|:keeppatterns| :keepp[atterns] following command keeps search pattern history
|
||||
|:lNext| :lN[ext] go to previous entry in location list
|
||||
|:lNfile| :lNf[ile] go to last entry in previous file
|
||||
|:list| :l[ist] print lines
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 7.4. Last change: 2013 Aug 03
|
||||
*map.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -380,7 +380,7 @@ it's just used here for this situation.
|
||||
The simplest way to load a set of related language mappings is by using the
|
||||
'keymap' option. See |45.5|.
|
||||
In Insert mode and in Command-line mode the mappings can be disabled with
|
||||
the CTRL-^ command |i_CTRL-^| |c_CTRL-^| These commands change the value of
|
||||
the CTRL-^ command |i_CTRL-^| |c_CTRL-^|. These commands change the value of
|
||||
the 'iminsert' option. When starting to enter a normal command line (not a
|
||||
search pattern) the mappings are disabled until a CTRL-^ is typed. The state
|
||||
last used is remembered for Insert mode and Search patterns separately. The
|
||||
@@ -1359,6 +1359,8 @@ There are some special cases as well:
|
||||
In the cases of the -count and -register attributes, if the optional argument
|
||||
is supplied, it is removed from the argument list and is available to the
|
||||
replacement text separately.
|
||||
Note that these arguments can be abbreviated, but that is a deprecated
|
||||
feature. Use the full name for new scripts.
|
||||
|
||||
Replacement text
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 7.4. Last change: 2013 Jul 09
|
||||
*options.txt* For Vim version 7.4. Last change: 2013 Dec 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -987,7 +987,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'backupdir'* *'bdir'*
|
||||
'backupdir' 'bdir' string (default for Amiga: ".,t:",
|
||||
for MS-DOS and Win32: ".,c:/tmp,c:/temp"
|
||||
for MS-DOS and Win32: ".,$TEMP,c:/tmp,c:/temp"
|
||||
for Unix: ".,~/tmp,~/")
|
||||
global
|
||||
{not in Vi}
|
||||
@@ -1884,8 +1884,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
{not in Vi}
|
||||
A sequence of single character flags. When a character is present
|
||||
this indicates vi-compatible behavior. This is used for things where
|
||||
not being vi-compatible is mostly or sometimes preferred.
|
||||
this indicates Vi-compatible behavior. This is used for things where
|
||||
not being Vi-compatible is mostly or sometimes preferred.
|
||||
'cpoptions' stands for "compatible-options".
|
||||
Commas can be added for readability.
|
||||
To avoid problems with flags that are added in the future, use the
|
||||
@@ -2477,7 +2477,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'directory'* *'dir'*
|
||||
'directory' 'dir' string (default for Amiga: ".,t:",
|
||||
for MS-DOS and Win32: ".,c:\tmp,c:\temp"
|
||||
for MS-DOS and Win32: ".,$TEMP,c:\tmp,c:\temp"
|
||||
for Unix: ".,~/tmp,/var/tmp,/tmp")
|
||||
global
|
||||
List of directory names for the swap file, separated with commas.
|
||||
@@ -6555,6 +6555,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
region by listing them: "en_us,en_ca" supports both US and Canadian
|
||||
English, but not words specific for Australia, New Zealand or Great
|
||||
Britain.
|
||||
If the name "cjk" is included East Asian characters are excluded from
|
||||
spell checking. This is useful when editing text that also has Asian
|
||||
words.
|
||||
*E757*
|
||||
As a special case the name of a .spl file can be given as-is. The
|
||||
first "_xx" in the name is removed and used as the region name
|
||||
@@ -7594,7 +7597,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'undolevels'* *'ul'*
|
||||
'undolevels' 'ul' number (default 100, 1000 for Unix, VMS,
|
||||
Win32 and OS/2)
|
||||
global
|
||||
global or local to buffer |global-local|
|
||||
{not in Vi}
|
||||
Maximum number of changes that can be undone. Since undo information
|
||||
is kept in memory, higher numbers will cause more memory to be used
|
||||
@@ -7605,8 +7608,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< But you can also get Vi compatibility by including the 'u' flag in
|
||||
'cpoptions', and still be able to use CTRL-R to repeat undo.
|
||||
Also see |undo-two-ways|.
|
||||
Set to a negative number for no undo at all: >
|
||||
set ul=-1
|
||||
Set to -1 for no undo at all. You might want to do this only for the
|
||||
current buffer: >
|
||||
setlocal ul=-1
|
||||
< This helps when you run out of memory for a single change.
|
||||
Also see |clear-undo|.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_vms.txt* For Vim version 7.4. Last change: 2011 Aug 14
|
||||
*os_vms.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL
|
||||
@@ -24,7 +24,7 @@ prompt.
|
||||
|
||||
1. Getting started *vms-started*
|
||||
|
||||
Vim (Vi IMproved) is a vi-compatible text editor that runs on nearly every
|
||||
Vim (Vi IMproved) is a Vi-compatible text editor that runs on nearly every
|
||||
operating system known to humanity. Now use Vim on OpenVMS too, in character
|
||||
or X/Motif environment. It is fully featured and absolutely compatible with
|
||||
Vim on other operating systems.
|
||||
|
||||
@@ -93,7 +93,7 @@ the default value of 'term' from the environment variable "TERM".
|
||||
$PATH *win32-PATH*
|
||||
|
||||
The directory of the Vim executable is appended to $PATH. This is mostly to
|
||||
make "!xxd' work, as it is in the Tools menu. And it also means that when
|
||||
make "!xxd" work, as it is in the Tools menu. And it also means that when
|
||||
executable() returns 1 the executable can actually be executed.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 7.4. Last change: 2013 Jul 06
|
||||
*pattern.txt* For Vim version 7.4. Last change: 2013 Nov 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
@@ -188,7 +188,7 @@ WINDOWS *vimball-windows*
|
||||
* Changed silent! to sil! (shorter)
|
||||
* Safed |'swf'| setting (during vimball extraction,
|
||||
its now turned off)
|
||||
32 : May 19, 2010 * (Christian Brabrandt) :so someplugin.vba and
|
||||
32 : May 19, 2010 * (Christian Brabandt) :so someplugin.vba and
|
||||
:so someplugin.vba.gz (and the other supported
|
||||
compression types) now works
|
||||
* (Jan Steffens) added support for xz compression
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*sign.txt* For Vim version 7.4. Last change: 2012 Jul 10
|
||||
*sign.txt* For Vim version 7.4. Last change: 2013 Nov 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
@@ -173,7 +173,7 @@ REMOVING SIGNS *:sign-unplace* *E159*
|
||||
Remove the placed sign at the cursor position.
|
||||
|
||||
|
||||
LISTING PLACED SIGNS
|
||||
LISTING PLACED SIGNS *:sign-place-list*
|
||||
|
||||
:sign place file={fname}
|
||||
List signs placed in file {fname}.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*spell.txt* For Vim version 7.4. Last change: 2013 Jul 17
|
||||
*spell.txt* For Vim version 7.4. Last change: 2013 Nov 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -269,6 +269,13 @@ In a table:
|
||||
latin1 yi transliterated Yiddish
|
||||
utf-8 yi-tr transliterated Yiddish
|
||||
|
||||
*spell-cjk*
|
||||
Chinese, Japanese and other East Asian characters are normally marked as
|
||||
errors, because spell checking of these characters is not supported. If
|
||||
'spelllang' includes "cjk", these characters are not marked as errors. This
|
||||
is useful when editing text with spell checking while some Asian words are
|
||||
present.
|
||||
|
||||
|
||||
SPELL FILES *spell-load*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 7.4. Last change: 2013 Jul 05
|
||||
*syntax.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -3156,18 +3156,16 @@ The g:vimsyn_embed option allows users to select what, if any, types of
|
||||
embedded script highlighting they wish to have. >
|
||||
|
||||
g:vimsyn_embed == 0 : don't embed any scripts
|
||||
g:vimsyn_embed =~ 'm' : embed mzscheme (but only if vim supports it)
|
||||
g:vimsyn_embed =~ 'p' : embed perl (but only if vim supports it)
|
||||
g:vimsyn_embed =~ 'P' : embed python (but only if vim supports it)
|
||||
g:vimsyn_embed =~ 'r' : embed ruby (but only if vim supports it)
|
||||
g:vimsyn_embed =~ 't' : embed tcl (but only if vim supports it)
|
||||
g:vimsyn_embed =~ 'm' : support embedded mzscheme
|
||||
g:vimsyn_embed =~ 'p' : support embedded perl
|
||||
g:vimsyn_embed =~ 'P' : support embedded python
|
||||
g:vimsyn_embed =~ 'r' : support embedded ruby
|
||||
g:vimsyn_embed =~ 't' : support embedded tcl
|
||||
<
|
||||
By default, g:vimsyn_embed is "mpPr"; ie. syntax/vim.vim will support
|
||||
highlighting mzscheme, perl, python, and ruby by default. Vim's has("tcl")
|
||||
test appears to hang vim when tcl is not truly available. Thus, by default,
|
||||
tcl is not supported for embedding (but those of you who like tcl embedded in
|
||||
their vim syntax highlighting can simply include it in the g:vimembedscript
|
||||
option).
|
||||
By default, g:vimsyn_embed is a string supporting interpreters that your vim
|
||||
itself supports. Concatenate multiple characters to support multiple types
|
||||
of embedded interpreters; ie. g:vimsyn_embed= "mp" supports embedded mzscheme
|
||||
and embedded perl.
|
||||
*g:vimsyn_folding*
|
||||
|
||||
Some folding is now supported with syntax/vim.vim: >
|
||||
|
||||
@@ -1140,6 +1140,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
+GUI_Photon various.txt /*+GUI_Photon*
|
||||
+GUI_neXtaw various.txt /*+GUI_neXtaw*
|
||||
+X11 various.txt /*+X11*
|
||||
+acl various.txt /*+acl*
|
||||
+arabic various.txt /*+arabic*
|
||||
+autocmd various.txt /*+autocmd*
|
||||
+balloon_eval various.txt /*+balloon_eval*
|
||||
@@ -1262,6 +1263,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
+writebackup various.txt /*+writebackup*
|
||||
+xfontset various.txt /*+xfontset*
|
||||
+xim various.txt /*+xim*
|
||||
+xpm various.txt /*+xpm*
|
||||
+xpm_w32 various.txt /*+xpm_w32*
|
||||
+xsmp various.txt /*+xsmp*
|
||||
+xsmp_interact various.txt /*+xsmp_interact*
|
||||
@@ -2298,6 +2300,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
:keepj motion.txt /*:keepj*
|
||||
:keepjumps motion.txt /*:keepjumps*
|
||||
:keepmarks motion.txt /*:keepmarks*
|
||||
:keepp cmdline.txt /*:keepp*
|
||||
:keeppatterns cmdline.txt /*:keeppatterns*
|
||||
:l various.txt /*:l*
|
||||
:lN quickfix.txt /*:lN*
|
||||
:lNext quickfix.txt /*:lNext*
|
||||
@@ -2738,6 +2742,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
:sign-jump sign.txt /*:sign-jump*
|
||||
:sign-list sign.txt /*:sign-list*
|
||||
:sign-place sign.txt /*:sign-place*
|
||||
:sign-place-list sign.txt /*:sign-place-list*
|
||||
:sign-undefine sign.txt /*:sign-undefine*
|
||||
:sign-unplace sign.txt /*:sign-unplace*
|
||||
:sil various.txt /*:sil*
|
||||
@@ -4900,6 +4905,7 @@ builtin_terms term.txt /*builtin_terms*
|
||||
byte-count editing.txt /*byte-count*
|
||||
byte2line() eval.txt /*byte2line()*
|
||||
byteidx() eval.txt /*byteidx()*
|
||||
byteidxcomp() eval.txt /*byteidxcomp()*
|
||||
bzip2 pi_gzip.txt /*bzip2*
|
||||
c change.txt /*c*
|
||||
c.vim syntax.txt /*c.vim*
|
||||
@@ -6358,6 +6364,7 @@ hl-WarningMsg syntax.txt /*hl-WarningMsg*
|
||||
hl-WildMenu syntax.txt /*hl-WildMenu*
|
||||
hlID() eval.txt /*hlID()*
|
||||
hlexists() eval.txt /*hlexists()*
|
||||
hlsearch-variable eval.txt /*hlsearch-variable*
|
||||
holy-grail index.txt /*holy-grail*
|
||||
home intro.txt /*home*
|
||||
home-replace editing.txt /*home-replace*
|
||||
@@ -7787,6 +7794,7 @@ spell-affix-flags spell.txt /*spell-affix-flags*
|
||||
spell-affix-mbyte spell.txt /*spell-affix-mbyte*
|
||||
spell-affix-not-supported spell.txt /*spell-affix-not-supported*
|
||||
spell-affix-vim spell.txt /*spell-affix-vim*
|
||||
spell-cjk spell.txt /*spell-cjk*
|
||||
spell-compound spell.txt /*spell-compound*
|
||||
spell-dic-format spell.txt /*spell-dic-format*
|
||||
spell-double-scoring spell.txt /*spell-double-scoring*
|
||||
@@ -8364,6 +8372,7 @@ v:folddashes eval.txt /*v:folddashes*
|
||||
v:foldend eval.txt /*v:foldend*
|
||||
v:foldlevel eval.txt /*v:foldlevel*
|
||||
v:foldstart eval.txt /*v:foldstart*
|
||||
v:hlsearch eval.txt /*v:hlsearch*
|
||||
v:insertmode eval.txt /*v:insertmode*
|
||||
v:key eval.txt /*v:key*
|
||||
v:lang eval.txt /*v:lang*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*tagsrch.txt* For Vim version 7.4. Last change: 2013 Jul 28
|
||||
*tagsrch.txt* For Vim version 7.4. Last change: 2013 Oct 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -771,11 +771,11 @@ CTRL-W i Open a new window, with the cursor on the first line
|
||||
|
||||
*:dli* *:dlist*
|
||||
:[range]dli[st][!] [/]string[/]
|
||||
Like "[D" and "]D", but search in [range] lines
|
||||
Like `[D` and `]D`, but search in [range] lines
|
||||
(default: whole file).
|
||||
See |:search-args| for [/] and [!]. {not in Vi}
|
||||
Note that ":dl" works like ":delete" with the "l"
|
||||
register.
|
||||
Note that `:dl` works like `:delete` with the "l"
|
||||
flag, not `:dlist`.
|
||||
|
||||
*[_CTRL-D*
|
||||
[ CTRL-D Jump to the first macro definition that contains the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.4. Last change: 2013 Aug 10
|
||||
*todo.txt* For Vim version 7.4. Last change: 2014 Jan 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -34,38 +34,196 @@ not be repeated below, unless there is extra information.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Article for Vim website. (Pritesh Ugrankar, 2013 Dec 13)
|
||||
|
||||
Patch for Perl 5.18. (2013 Dec 13, Ken Takata)
|
||||
|
||||
Patch 7.4.114 breaks "Entering directory" message parsing.
|
||||
patch by Lech Lorens, 2013 Dec 30.
|
||||
|
||||
Patch to possibly fix crash usng w_localdir. (Dominique Pelle, 2013 Dec 27)
|
||||
|
||||
Patch to fix crash when using :bwipeout in autocmd. (Hirohito Higashi, 2014 Jan 6)
|
||||
|
||||
Regexp problems:
|
||||
- After patch 7.4.045 pattern with \zs isn't handled correctly. (Yukihiro
|
||||
Nakadaira, 2013 Dec 23)
|
||||
- NFA regexp doesn't count tab matches correctly. (Urtica Dioica / gaultheria
|
||||
Shallon, 2013 Nov 18)
|
||||
- After patch 7.4.100 there is still a difference between NFA and old engine.
|
||||
25 a's with pattern \v^(aa+)\1+$ (Urtica Dioica, 2013 Nov 21) Also: 9 a's
|
||||
with pattern \v^(a{-2,})\1+$ (Nov 23)
|
||||
- NFA engine combining character mismatch. (glts, 2013 Aug 27)
|
||||
Remark from Dominique, Aug 27
|
||||
- Issue 164: freeze on regexp search.
|
||||
- NFA problem with non-greedy match and branches. (Ingo Karkat, 2013 Nov 29)
|
||||
- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
|
||||
2013 Dec 11)
|
||||
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin Szamotulski
|
||||
|
||||
Problem that a previous silent ":throw" causes a following try/catch not to
|
||||
work. (ZyX, 2013 Sep 28)
|
||||
|
||||
":cd C:\Windows\System32\drivers\etc*" does not work, even though the
|
||||
directory exists. (Sergio Gallelli, 2013 Dec 29)
|
||||
|
||||
Patch for problems with Borland compiler. (Ken Takata, 2013 Dec 14)
|
||||
|
||||
Patch to make getregtype() work as documented. (Yukihiro Nakadaira, 2013 Dec
|
||||
26)
|
||||
|
||||
Patch to initialize v:oldfiles. (Yasuhiro Matsumoto, 2013 Dec 15)
|
||||
|
||||
Patch to fix cursor movement. (Hirohito Higashi, 2013 Dec 21)
|
||||
|
||||
Patch to add more help tags. (glts, 2014 Jan 4)
|
||||
|
||||
Patch to avoid E685 internal error. (Yukihiro Nakadaira, 2014 Jan 1)
|
||||
Restore no_autoload?
|
||||
Alternative: Avoid no_autoload. (ZyX, 2014 Jan 6)
|
||||
|
||||
Patch to avoid that :keeppatterns s/foo/bar sets @/. (Yasuhiro Matsumoto, 2013
|
||||
Dec 17)
|
||||
|
||||
Patch for typo in makefile. ZyX, (2013 Dec 15)
|
||||
|
||||
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
|
||||
|
||||
Update for Clojure ftplugin. (Sung Pae). Await discussion about formatting in
|
||||
ftplugins.
|
||||
|
||||
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
|
||||
|
||||
Patch to add "acl" and "xpm" as a feature. (Ken Takata, 2013 Jul 8)
|
||||
Patch to support slices in Python vim.List. (ZyX, 2013 Oct 20)
|
||||
|
||||
Patch to support iterator on Python vim.options. (ZyX, 2013 Nov 2)
|
||||
|
||||
Patch to make Dictionary.update() work without arguments.
|
||||
(ZyX, 2013 Oct 19)
|
||||
|
||||
Patch to allow more types in remote_expr(). (Lech Lorens, 2014 Jan 5)
|
||||
|
||||
Patch for Cobol ftplugin. (ZyX, 2013 Oct 20)
|
||||
Await response from maintainer.
|
||||
|
||||
Include systemverilog file? Two votes yes.
|
||||
|
||||
Patch to make "J" set '[ and '] marks. (Christian Brabandt, 2013 Dec 11)
|
||||
Any compatibility problems?
|
||||
|
||||
Patch to add :S modifier for excaping the current file name.
|
||||
(ZyX, 2013 Nov 30) Update Dec 5.
|
||||
|
||||
Problem with 'spellsuggest' file, only works for some words.
|
||||
(Cesar Romani, 2013 Aug 20) Depends on file name? (Aug 24)
|
||||
Additional remark by glts: the suggested words are marked bad?
|
||||
|
||||
8 non-ASCII font names don't work. Need to convert from 'encoding' and use
|
||||
the wide functions. Patch by Ken Takata, 2013 Dec 22.
|
||||
Update 2014 Jan 6.
|
||||
|
||||
Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
|
||||
|
||||
Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
|
||||
|
||||
Add digraph for Rouble: =P. What's the Unicode?
|
||||
|
||||
Issue 174: Detect Mason files.
|
||||
|
||||
Patch to make has() check for Vim version and patch at the same time.
|
||||
(Marc Weber, 2013 Jun 7)
|
||||
|
||||
Regression on pach 7.4.034. (Ingo Karkat, 2013 Nov 20)
|
||||
|
||||
VMS: Select() doesn't work properly, typing ESC may hang Vim. Use sys$qiow
|
||||
instead. (Samuel Ferencik, 2013 Sep 28)
|
||||
|
||||
Series of patches for NL vs NUL handling. (ZyX, 2013 Nov 3, Nov 9)
|
||||
|
||||
Patch to add flag to shortmess to avoid giving completion messages.
|
||||
(Shougo Matsu, 2014 Jan 6)
|
||||
|
||||
Patch to add v:completed_item. (Shougo Matsu, 2013 Nov 29).
|
||||
|
||||
Patch to make test 100 work on MS-Windows. (Taro Muraoka, 2013 Dec 12)
|
||||
|
||||
Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14)
|
||||
|
||||
Perl: support for Activestate perl 5.18: Issue 170.
|
||||
|
||||
Several syntax file match "^\s*" which may get underlined if that's in the
|
||||
highlight group. Add a "\zs" after it?
|
||||
|
||||
Patch to fix temp directories for Windows, so that it works without tweaking.
|
||||
Issue 28.
|
||||
|
||||
Go through more coverity reports.
|
||||
|
||||
"gUgn" cannot be repeated, while "dgn" can.
|
||||
Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
|
||||
|
||||
Several Win32 functions are not using Unicode.
|
||||
Patches to fix this. (Ken Takata, 2013 Aug 9)
|
||||
Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16)
|
||||
|
||||
Patch to right-align signs. (James Kolb (email james), 2013 Sep 23)
|
||||
|
||||
Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12)
|
||||
|
||||
With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa,
|
||||
2013 Sep 5)
|
||||
|
||||
Patch to add item in 'listchars' to repeat first character. (Nathaniel Braun,
|
||||
pragm, 2013 Oct 13)
|
||||
|
||||
Undo message is not always properly displayed. Patch by Ken Takata, 2013 oct
|
||||
3. Doesn't work properly according to Yukihiro Nakadaira.
|
||||
|
||||
/[b-a] gives error E16, should probably be E769.
|
||||
|
||||
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
|
||||
"lucida_console:h8").
|
||||
Patch by Thomas Tuegel, also for GTK, 2013 Nov 24
|
||||
|
||||
:help gives example for z?, but it does not work. m? and t? do work.
|
||||
|
||||
Python: Extended funcrefs: use func_T* structure in place of char_u* function
|
||||
names.
|
||||
(ZyX, 2013 Jul 15, update Sep 22, 24, 28; Update 2013 Dec 15, 2014 Jan 6)
|
||||
Also fixes Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
|
||||
|
||||
Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4)
|
||||
With tests: Sep 5.
|
||||
|
||||
Patch to fix that on suckless Terminal mousewheel up does not work.
|
||||
(Ralph Eastwood, 2013 Nov 25)
|
||||
|
||||
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
|
||||
|
||||
Patch to make external commands work with multi-byte characters on Win32 when
|
||||
'encoding' differs from the active codepage. (Yasuhiro Matsumoto, 2013 Aug 5)
|
||||
|
||||
Checking runtime scripts: Thilo Six, 2012 Jun 6.
|
||||
|
||||
When evaluating expression in backticks, autoload doesn't work.
|
||||
(Andy Wokula, 2013 Dec 14)
|
||||
|
||||
Using <nr>ifoobar<esc> can slow down Vim. Patch by Christian Brabandt, 2013
|
||||
Dec 13.
|
||||
|
||||
Fold can't be opened after ":move". (Ein Brown)
|
||||
Patch from Christian Brabandt doesn't fix it completely.
|
||||
|
||||
Patch from Christian Brabandt to preserve upper case marks when wiping out a
|
||||
buffer. (2013 Dec 9)
|
||||
|
||||
Patch for drag&drop reordering of GUI tab pages reordering.
|
||||
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
|
||||
|
||||
":sign-jump" uses first window in buffer instead of current window.
|
||||
Patch by James McCoy, 2013 Nov 22.
|
||||
|
||||
GTK: problem with 'L' in 'guioptions' changing the window width.
|
||||
(Aaron Cornelius, 2012 Feb 6)
|
||||
|
||||
Patch to add option that tells whether small deletes go into the numbered
|
||||
registers. (Aryeh Leib Taurog, 2013 Nov 18)
|
||||
|
||||
Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
|
||||
|
||||
The BufUnload event is triggered when re-using the empty buffer.
|
||||
@@ -83,10 +241,6 @@ Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar
|
||||
Patch by Christian Brabandt, 2013 Mar 23.
|
||||
Not 100% sure this is the right solution.
|
||||
|
||||
Win32: When a directory name contains an exclamation mark, completion doesn't
|
||||
complete the contents of the directory. No escaping for the "!"? (Jan
|
||||
Stocker, 2012 Jan 5)
|
||||
|
||||
Patch to support expression argument to sort() instead of a function name.
|
||||
Yasuhiro Matsumoto, 2013 May 31.
|
||||
Or should we add a more general mechanism, like lambda functions?
|
||||
@@ -94,6 +248,19 @@ Or should we add a more general mechanism, like lambda functions?
|
||||
Problem caused by patch 7.3.638: window->open does not update window
|
||||
correctly. Issue 91.
|
||||
|
||||
Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}.
|
||||
(Christian Brabandt, 2013 Dec 9)
|
||||
|
||||
The garbage collector may use too much stack. Make set_ref_in_item()
|
||||
iterative instead of recursive. Test program by Marc Weber (2013 Dec 10)
|
||||
|
||||
Exception caused by argument of return is not caught by try/catch.
|
||||
(David Barnett, 2013 Nov 19)
|
||||
|
||||
8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
|
||||
defined.
|
||||
Issue 28.
|
||||
|
||||
Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt,
|
||||
2013 Mar 19, later message)
|
||||
|
||||
@@ -108,6 +275,8 @@ carried over when using :global. (Christian Brabandt, 2013 Jun 19)
|
||||
Bug with 'cursorline' in diff mode. Line being scrolled into view gets
|
||||
highlighted as the cursor line. (Alessandro Ivaldi, 2013 Jun 4)
|
||||
|
||||
Two highlighting bugs. (ZyX, 2013 Aug 18)
|
||||
|
||||
Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5)
|
||||
May 17: with winlist() and tabpagelist().
|
||||
May 19: with local variables.
|
||||
@@ -119,6 +288,8 @@ Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
|
||||
Patch from Christian Brabandt to make the "buffer" argument for ":sign place"
|
||||
optional. (2013 Jul 12)
|
||||
|
||||
Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2)
|
||||
|
||||
Patch to allow setting w:quickfix_title via setqflist() and setloclist()
|
||||
functions. (Christian Brabandt, 2013 May 8, update May 21)
|
||||
Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
|
||||
@@ -152,8 +323,17 @@ a reboot.
|
||||
MS-Windows: Crash opening very long file name starting with "\\".
|
||||
(Christian Brock, 2012 Jun 29)
|
||||
|
||||
Patch to have text objects defined by arbitrary single characters. (Daniel
|
||||
Thau, 2013 Nov 20)
|
||||
|
||||
Patch to select the next or previous text object if there isn't one under the
|
||||
cursor. (Daniel Thau, 2013 Nov 20)
|
||||
|
||||
patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
|
||||
|
||||
Bug caused by patch 7.3.1288? Issue 183.
|
||||
I can't reproduce it.
|
||||
|
||||
Syntax update problem in one buffer opened in two windows, bottom window is
|
||||
not correctly updated. (Paul Harris, 2012 Feb 27)
|
||||
|
||||
@@ -167,8 +347,17 @@ Patch to make confirm() display colors. (Christian Brabandt, 2012 Nov 9)
|
||||
|
||||
Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27)
|
||||
|
||||
Do we need some way (option) to show the sign column even when there are no
|
||||
signs? Patch by Christian Brabandt, 2013 Aug 22.
|
||||
|
||||
Patch to remove flicker from popup menu. (Yasuhiro Matsumoto, 2013 Aug 15)
|
||||
|
||||
Patch to use directX to draw text on Windows. Adds the 'renderoptions'
|
||||
option. (Taro Muraoka, 2013 Jan 25, update 2013 Apr 3, May 14)
|
||||
Fixes this problem:
|
||||
8 Win32: Multi-byte characters are not displayed, even though the same font
|
||||
in Notepad can display them. (Srinath Avadhanula) Try with the
|
||||
UTF-8-demo.txt page with Andale Mono.
|
||||
|
||||
Patch to add 'completeselect' option. Specifies how to select a candidate in
|
||||
insert completion. (Shougo, 2013 May 29)
|
||||
@@ -182,9 +371,6 @@ b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan
|
||||
Win32: The Python interface only works with one version of Python, selected at
|
||||
compile time. Can this be made to work with version 2.1 and 2.2 dynamically?
|
||||
|
||||
Python: Extended funcrefs: use func_T* structure in place of char_u* function
|
||||
names. (ZyX, 2013 Jul 15 and later)
|
||||
|
||||
Python: Be able to define a Python function that can be called directly from
|
||||
Vim script. Requires converting the arguments and return value, like with
|
||||
vim.bindeval().
|
||||
@@ -251,10 +437,6 @@ But use "gi" instead of "a". Or use CTRL-\ CTRL-O.
|
||||
Patch to support user name completion on MS-Windows. (Yasuhiro Matsumoto, 2012
|
||||
Aug 16)
|
||||
|
||||
Have an option for spell checking to not mark any Chinese, Japanese or other
|
||||
double-width characters as error. Or perhaps all characters above 256.
|
||||
(Bill Sun) Helps a lot for mixed Asian and latin text.
|
||||
|
||||
When there are no command line arguments ":next" and ":argu" give E163, which
|
||||
is confusing. Should say "the argument list is empty".
|
||||
|
||||
@@ -272,8 +454,13 @@ Do give the prompt? Quit with an error?
|
||||
|
||||
Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14)
|
||||
|
||||
Patch to add digraph() function. (Christian Brabandt, 2013 Aug 22, update Aug
|
||||
24)
|
||||
|
||||
Patch for input method status. (Hirohito Higashi, 2012 Apr 18)
|
||||
|
||||
Update Vim app icon (for Gnome). (Jakub Steiner, 2013 Dec 6)
|
||||
|
||||
Patch to use .png icons for the toolbar on MS-Windows. (Martin Gieseking, 2013
|
||||
Apr 18)
|
||||
|
||||
@@ -286,13 +473,12 @@ And one for gui_x11.txt.
|
||||
More recent version: https://retracile.net/wiki/VimBreakIndent
|
||||
Posted to vim-dev by Taylor Hedberg, 2011 Nov 25
|
||||
Update by Taylor Hedberg, 2013 May 30.
|
||||
Updated for Vim 7.4 by Ken Takata, 2013 Oct 5.
|
||||
|
||||
":cd" doesn't work when current directory path contains "**".
|
||||
finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10)
|
||||
Requires a rewrite of the file_file_in_path code.
|
||||
|
||||
Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
|
||||
|
||||
Should use has("browsefilter") in ftplugins. Requires patch 7.3.593.
|
||||
|
||||
Update for vim2html.pl. (Tyru, 2013 Feb 22)
|
||||
@@ -374,8 +560,6 @@ When using a Vim server, a # in the path causes an error message.
|
||||
Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben
|
||||
Fritz (2011 Oct 27).
|
||||
|
||||
Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
|
||||
|
||||
Bug: Windows 7 64 bit system freezes when 'clipboard' set to "unnamed" and
|
||||
doing ":g/test/d". Putting every delete on the clipboard? (Robert Chan, 2011
|
||||
Jun 17)
|
||||
@@ -396,7 +580,7 @@ cleared. See test64.
|
||||
Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
|
||||
|
||||
Patch to make "z=" work when 'spell' is off. Does this have nasty side
|
||||
effects? (Christian Brabandt, 2012 Aug 5)
|
||||
effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
|
||||
Would also need to do this for spellbadword() and spellsuggest().
|
||||
|
||||
Patch for variable tabstops.
|
||||
@@ -419,6 +603,8 @@ following "redir" command gives an error for not being able to access s:foo.
|
||||
When setqflist() uses a filename that triggers a BufReadCmd autocommand Vim
|
||||
doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18)
|
||||
|
||||
Behavior of i" and a" text objects isn't logical. (Ben Fritz, 2013 Nov 19)
|
||||
|
||||
7 Make "ga" show the digraph for a character, if it exists.
|
||||
Patch from Christian Brabandt, 2011 Aug 19.
|
||||
|
||||
@@ -456,6 +642,9 @@ With a filler line in diff mode, it isn't displayed in the column with line
|
||||
number, but it is in the sign column. Doesn't look right. (ZyX 2011 Jun 5)
|
||||
Patch by Christian Brabandt, 2011 Jun 5. Introduces new problems.
|
||||
|
||||
Add jump() function. (Marcin Szamotulski, 2013 Aug 29)
|
||||
Is this needed? CTRL-O and CTRL-I do the same, just more difficult to use.
|
||||
|
||||
8 Add a command to jump to the next character highlighted with "Error".
|
||||
Patch by Christian Brabandt, uses ]e [e ]t and [t. 2011 Aug 9.
|
||||
|
||||
@@ -556,7 +745,7 @@ Assume the system converts between the actual encoding of the filesystem to
|
||||
the system encoding (usually utf-8).
|
||||
|
||||
Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
|
||||
26)
|
||||
26, update 2013 Dec 14)
|
||||
|
||||
Problem producing tags file when hebrew.frx is present. It has a BOM.
|
||||
Results in E670. (Tony Mechelynck, 2010 May 2)
|
||||
@@ -573,8 +762,7 @@ setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
|
||||
|
||||
getpos()/setpos() don't include curswant. getpos() could return a fifth
|
||||
element. setpos() could accept an optional fifth element.
|
||||
Patch by Christian Brabandt, 2010 Sep 6. Check that new argument is optional
|
||||
and that it's documented.
|
||||
Patch by Christian Brabandt, 2010 Sep 6. Again 2013 Aug 22.
|
||||
|
||||
With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott,
|
||||
2010 Oct 24)
|
||||
@@ -629,10 +817,6 @@ Requires a map mode for Insert mode started from blockwise Visual mode.
|
||||
Writing nested List and Dict in viminfo gives error message and can't be read
|
||||
back. (Yukihiro Nakadaira, 2010 Nov 13)
|
||||
|
||||
Can 'undolevels' be a buffer-local option? Helps for making big changes in
|
||||
one file only, set 'ul' to -1 only for that buffer.
|
||||
Patch by Christian Brabandt, 2010 Dec 17. Needs test.
|
||||
|
||||
Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11)
|
||||
Additional info by Dominique Pelle. (also on 2010 Apr 10)
|
||||
|
||||
@@ -759,6 +943,7 @@ Setting 'tags' to "tagsdir/*" does not find "tagsdir/tags". (Steven K. Wong,
|
||||
|
||||
Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
|
||||
Added test, updates, June 23.
|
||||
Updated for 7.4: http://litcave.rudi.ir/farsi_vim.diff
|
||||
|
||||
Patch to add "focusonly" to 'scrollopt', so that scrollbind also applies in
|
||||
window that doesn't have focus. (Jonathon Mah, 2009 Jan 12)
|
||||
@@ -856,7 +1041,7 @@ Session file generates error upon loading, cause by --remote-silent-tab.
|
||||
Using ~ works OK on 'a' with composing char, but not on 0x0418 with composing
|
||||
char 0x0301. (Tony Mechelynck, 2009 Mar 4)
|
||||
|
||||
A function on a dictionary is not profiled. (Zyx, 2010 Dec 25)
|
||||
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
|
||||
|
||||
Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
|
||||
messages, even though locale is not supported. But ":lang messages
|
||||
@@ -885,7 +1070,7 @@ correct. Don't use it in the swap file.
|
||||
Completion for ":buf" doesn't work properly on Win32 when 'shellslash' is off.
|
||||
(Henrik Ohman, 2009, Jan 29)
|
||||
|
||||
shellescape() depends on 'shellshash' for quoting. That doesn't work when
|
||||
shellescape() depends on 'shellslash' for quoting. That doesn't work when
|
||||
'shellslash' is set but using cmd.exe. (Ben Fritz)
|
||||
Use a different option or let it depend on whether 'shell' looks like a
|
||||
unix-like shell?
|
||||
@@ -918,8 +1103,6 @@ Also: swap files are in ~/tmp/ One has relative file name ".mozilla/...".
|
||||
Add v:motion_force. (Kana Natsuno, 2008 Dec 6)
|
||||
Maybe call it v:motiontype.
|
||||
|
||||
Runtime files for Clojure. (Toralf Wittner, 2008 Jun 25)
|
||||
|
||||
MS-Windows: editing the first, empty buffer, 'ffs' set to "unix,dos", ":enew"
|
||||
doesn't set 'ff' to "unix". (Ben Fritz, 2008 Dec 5) Reusing the old buffer
|
||||
probably causes this.
|
||||
@@ -928,7 +1111,7 @@ probably causes this.
|
||||
2009 Jan 16)
|
||||
|
||||
Patch to support strikethrough next to bold and italic. (Christian Brabandt,
|
||||
2013 Jul 30)
|
||||
2013 Jul 30) Update from Ken Takata, 2013 Oct 12.
|
||||
|
||||
Document that default font in Athena can be set with resources:
|
||||
XtDefaultFont: "9x15"
|
||||
@@ -1301,9 +1484,15 @@ Ebersbach, 2008 Feb 1)
|
||||
|
||||
Menu item that does "xxd -r" doesn't work when 'fileencoding' is utf-16.
|
||||
Check for this and use iconv? (Edward L. Fox, 2007 Sep 12)
|
||||
Does the conversion in the other direction work when 'filenecodings' is set
|
||||
Does the conversion in the other direction work when 'fileencodings' is set
|
||||
properly?
|
||||
|
||||
Add a few features to xxd. (Vadim Vygonets, 2013 Nov 11)
|
||||
Patches: 2013 Nov 19
|
||||
1: Add -e: little endian hexdump
|
||||
2: Add -o: add offset to displayed position
|
||||
3: Change displayed file position width to 8 chars
|
||||
|
||||
Cursor displayed in the wrong position when using 'numberwidth'. (James Vega,
|
||||
2007 Jun 21)
|
||||
|
||||
@@ -1685,7 +1874,7 @@ More patches:
|
||||
- testdir/Make_dos_sh.mak for running tests with MingW. (Bill Mccarthy, 2008
|
||||
Sep 13)
|
||||
- Patch for adding "space" item in 'listchars'. (Jérémie Roquet, 2009 Oct 29,
|
||||
Docs patch Oct 30)
|
||||
Docs patch Oct 30, update David Burgin (glts) 2013 Aug 24)
|
||||
- Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520 by
|
||||
Vissale Neang. (Martin Stubenschrott) Asked Vissale to make the scripts
|
||||
more friendly for the Vim distribution.
|
||||
@@ -1715,7 +1904,7 @@ Awaiting updated patches:
|
||||
How does this work? Missing comments.
|
||||
8 Add a few more command names to the menus. Patch from Jiri Brezina
|
||||
(28 feb 2002). Will mess the translations...
|
||||
7 ATTENTION dialog choices are more logical when "Delete it' appears
|
||||
7 ATTENTION dialog choices are more logical when "Delete it" appears
|
||||
before "Quit". Patch by Robert Webb, 2004 May 3.
|
||||
- Include flipcase patch: ~/vim/patches/wall.flipcase2 ? Make it work
|
||||
for multi-byte characters.
|
||||
@@ -1864,8 +2053,6 @@ GTK+ GUI known bugs:
|
||||
Win32 GUI known bugs:
|
||||
- Win32: tearoff menu window should have a scrollbar when it's taller than
|
||||
the screen.
|
||||
8 non-ASCII font names don't work. Need to convert from 'encoding' and use
|
||||
the wide functions.
|
||||
8 On Windows 98 the unicows library is needed to support functions with UCS2
|
||||
file names. Can we load unicows.dll dynamically?
|
||||
8 The -P argument doesn't work very well with many MDI applications.
|
||||
@@ -1873,9 +2060,6 @@ Win32 GUI known bugs:
|
||||
Tutorial: http://win32assembly.online.fr/tut32.html
|
||||
8 In eval.c, io.h is included when MSWIN32 is defined. Shouldn't this be
|
||||
WIN32? Or can including io.h be moved to vim.h? (Dan Sharp)
|
||||
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
|
||||
"lucida_console:h8").
|
||||
6 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
|
||||
of ":only" is highlighted like the cursor. (Lipelis)
|
||||
8 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide
|
||||
@@ -1887,9 +2071,6 @@ Win32 GUI known bugs:
|
||||
8 Use another default for 'termencoding': the active codepage. Means that
|
||||
when 'encoding' is changed typing characters still works properly.
|
||||
Alternative: use the Unicode functions to obtain typed characters.
|
||||
8 Win32: Multi-byte characters are not displayed, even though the same font
|
||||
in Notepad can display them. (Srinath Avadhanula) Try with the
|
||||
UTF-8-demo.txt page with Andale Mono.
|
||||
7 The cursor color indicating IME mode doesn't work properly. (Shizhu Pan,
|
||||
2004 May 9)
|
||||
8 Win32: When clicking on the gvim title bar, which gives it focus, produces
|
||||
@@ -2272,8 +2453,6 @@ Macintosh:
|
||||
character. (Yasuhiro Matsumoto) It should return 1 when used on a tail
|
||||
byte, like for utf-8. Store second byte of double-byte in ScreenLines2[]
|
||||
(like for DBCS_JPNU) and put a zero in the second byte (like for UTF-8).
|
||||
8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
|
||||
defined.
|
||||
7 Inside a function with "perl <<EOF" a line with "$i++" is recognized as an
|
||||
":insert" command, causing the following "endfunction" not to be found.
|
||||
Add skipping this perl construction inside function definitions.
|
||||
@@ -2736,10 +2915,6 @@ Tab pages:
|
||||
|
||||
|
||||
Spell checking:
|
||||
- have some way not to give spelling errors for a range of characters.
|
||||
E.g. for Chinese and other languages with specific characters for which we
|
||||
don't have a spell file. Useful when there is also text in other
|
||||
languages in the file.
|
||||
- Support more regions? Caolan McNamara argues it's needed for es_XX.
|
||||
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=219777
|
||||
- Unicode defines another quote character: 0x2019. Use it as an equivalent
|
||||
@@ -3153,6 +3328,7 @@ Syntax highlighting:
|
||||
Built-in script language:
|
||||
8 Make the filename and line number available to script functions, so that
|
||||
they can give useful debugging info. The whole call stack would be ideal.
|
||||
At least use this for error messages.
|
||||
7 Execute a function with standard option values. No need to save and
|
||||
restore option values. Especially useful for new options. Problem: how
|
||||
to avoid a performance penalty (esp. for string options)?
|
||||
@@ -4655,7 +4831,7 @@ Marks:
|
||||
|
||||
Digraphs:
|
||||
7 Make "ga" show the keymap for a character, if it exists.
|
||||
Also show the code of the character after conversion to 'filenecoding'.
|
||||
Also show the code of the character after conversion to 'fileencoding'.
|
||||
- Use digraph table to tell Vim about the collating sequence of special
|
||||
characters?
|
||||
8 Add command to remove one or more (all) digraphs. (Brown)
|
||||
@@ -4852,6 +5028,7 @@ Various improvements:
|
||||
6 Add ":timer" command, to set a command to be executed at a certain
|
||||
interval, or once after some time has elapsed. (Aaron)
|
||||
Perhaps an autocommand event like CursorHold is better?
|
||||
Patch to add async functionality. (Geoff Greer, 2013 Sep 1 and later)
|
||||
8 Add ":confirm" handling in open_exfile(), for when file already exists.
|
||||
8 When quitting with changed files, make the dialog list the changed file
|
||||
and allow "write all", "discard all", "write some". The last one would
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*undo.txt* For Vim version 7.4. Last change: 2012 Mar 04
|
||||
*undo.txt* For Vim version 7.4. Last change: 2013 Sep 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -57,7 +57,7 @@ Use "u" to undo changes until the buffer becomes unchanged.
|
||||
2. Two ways of undo *undo-two-ways*
|
||||
|
||||
How undo and redo commands work depends on the 'u' flag in 'cpoptions'.
|
||||
There is the Vim way ('u' excluded) and the vi-compatible way ('u' included).
|
||||
There is the Vim way ('u' excluded) and the Vi-compatible way ('u' included).
|
||||
In the Vim way, "uu" undoes two changes. In the Vi-compatible way, "uu" does
|
||||
nothing (undoes an undo).
|
||||
|
||||
@@ -249,8 +249,9 @@ a simple scheme that maps filesystem paths directly to undo files. Vim will
|
||||
detect if an undo file is no longer synchronized with the file it was written
|
||||
for (with a hash of the file contents) and ignore it when the file was changed
|
||||
after the undo file was written, to prevent corruption. An undo file is also
|
||||
ignored if its owner differs from the owner of the edited file. Set 'verbose'
|
||||
to get a message about that when opening a file.
|
||||
ignored if its owner differs from the owner of the edited file, except when
|
||||
the owner of the undo file is the current user. Set 'verbose' to get a
|
||||
message about that when opening a file.
|
||||
|
||||
Undo files are normally saved in the same directory as the file. This can be
|
||||
changed with the 'undodir' option.
|
||||
|
||||
@@ -86,7 +86,7 @@ line, type: >
|
||||
|
||||
v4jgq
|
||||
|
||||
"v" to start Visual mode, "4j' to move to the end of the paragraph and then
|
||||
"v" to start Visual mode, "4j" to move to the end of the paragraph and then
|
||||
the "gq" operator. The result is:
|
||||
|
||||
1 2 3
|
||||
|
||||
@@ -328,8 +328,8 @@ actually use Vim to convert a file. Example: >
|
||||
*45.5* Entering language text
|
||||
|
||||
Computer keyboards don't have much more than a hundred keys. Some languages
|
||||
have thousands of characters, Unicode has ten thousands. So how do you type
|
||||
these characters?
|
||||
have thousands of characters, Unicode has over hundred thousand. So how do
|
||||
you type these characters?
|
||||
First of all, when you don't use too many of the special characters, you
|
||||
can use digraphs. This was already explained in |24.9|.
|
||||
When you use a language that uses many more characters than keys on your
|
||||
|
||||
@@ -291,6 +291,7 @@ g8 Print the hex values of the bytes used in the
|
||||
in the normal, big and huge versions of Vim.
|
||||
|
||||
*+feature-list*
|
||||
*+acl* |ACL| support included
|
||||
*+ARP* Amiga only: ARP support included
|
||||
B *+arabic* |Arabic| language support
|
||||
N *+autocmd* |:autocmd|, automatic commands
|
||||
@@ -426,6 +427,7 @@ S *+windows* more than one window
|
||||
m *+writebackup* |'writebackup'| is default on
|
||||
m *+xim* X input method |xim|
|
||||
*+xfontset* X fontset support |xfontset|
|
||||
*+xpm* pixmap support
|
||||
m *+xpm_w32* Win32 GUI only: pixmap support |w32-xpm-support|
|
||||
*+xsmp* XSMP (X session management) support
|
||||
*+xsmp_interact* interactive XSMP (X session management) support
|
||||
|
||||
@@ -2020,7 +2020,7 @@ File browser added *file-browser-5.2*
|
||||
|
||||
The Win32, Athena and Motif GUI bring up a file requester if the user asks to
|
||||
":browse" for the ":e", ":w", ":r", ":so", ":redirect" and
|
||||
":mkexrc/vimrc/vsess" commands. ::browse e /foo/bar" opens the requester in
|
||||
":mkexrc/vimrc/vsess" commands. ":browse e /foo/bar" opens the requester in
|
||||
the /foo/bar directory, so you can have nice mapping rhs's like ":browse so
|
||||
$vim/macros". If no initial dir specified for ":browse e", can be compiled to
|
||||
either begin in the current directory, or that of the current buffer. (Negri
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version7.txt* For Vim version 7.4. Last change: 2013 Aug 10
|
||||
*version7.txt* For Vim version 7.4. Last change: 2013 Nov 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2395,7 +2395,7 @@ with special attributes were redrawn. Now only do this for characters that
|
||||
actually are bold. Speeds up displaying considerably.
|
||||
|
||||
When only highlighting changes and the text is scrolled at the same time
|
||||
everything is redraw instead of using a scroll and updating the changed text.
|
||||
everything is redrawn instead of using a scroll and updating the changed text.
|
||||
E.g., when using ":match" to highlight a paren that the cursor landed on.
|
||||
Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
|
||||
redrawing.
|
||||
@@ -7188,7 +7188,7 @@ More encryption *new-more-encryption*
|
||||
---------------
|
||||
|
||||
Support for Blowfish encryption. Added the 'cryptmethod' option.
|
||||
Mostly by Moshin Ahmed.
|
||||
Mostly by Mohsin Ahmed.
|
||||
|
||||
Also encrypt the text in the swap file and the undo file.
|
||||
|
||||
@@ -10293,7 +10293,7 @@ Functions:
|
||||
Added special |expand()| argument that expands to the current line
|
||||
number.
|
||||
|
||||
Made it possible to force |char2nr()| always give unicode codepoints
|
||||
Made it possible to force |char2nr()| to always give unicode codepoints
|
||||
regardless of current encoding. (Yasuhiro Matsumoto)
|
||||
|
||||
Made it possible for functions generating file list generate |List|
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vi_diff.txt* For Vim version 7.4. Last change: 2012 Aug 08
|
||||
*vi_diff.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -150,7 +150,7 @@ Support for different systems.
|
||||
Multi level undo. |undo|
|
||||
'u' goes backward in time, 'CTRL-R' goes forward again. Set option
|
||||
'undolevels' to the number of changes to be remembered (default 1000).
|
||||
Set 'undolevels' to 0 for a vi-compatible one level undo. Set it to
|
||||
Set 'undolevels' to 0 for a Vi-compatible one level undo. Set it to
|
||||
-1 for no undo at all.
|
||||
When all changes in a buffer have been undone, the buffer is not
|
||||
considered changed anymore. You can exit it with :q, without <!>.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*visual.txt* For Vim version 7.4. Last change: 2012 Aug 15
|
||||
*visual.txt* For Vim version 7.4. Last change: 2013 Nov 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -75,7 +75,11 @@ position.
|
||||
|
||||
*V* *linewise-visual*
|
||||
[count]V Start Visual mode linewise.
|
||||
With [count] select that many lines.
|
||||
With [count] select the same number of lines as used
|
||||
for the last Visual operation, but at the current
|
||||
cursor position, multiplied by [count]. When there
|
||||
was no previous Visual operation [count] lines are
|
||||
selected.
|
||||
|
||||
*CTRL-V* *blockwise-visual*
|
||||
[count]CTRL-V Start Visual mode blockwise. Note: Under Windows
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2013 Aug 03
|
||||
" Last Change: 2014 Jan 06
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -106,6 +106,9 @@ au BufNewFile,BufRead *.run setf ampl
|
||||
" Ant
|
||||
au BufNewFile,BufRead build.xml setf ant
|
||||
|
||||
" Arduino
|
||||
au BufNewFile,BufRead *.ino,*.pde setf arduino
|
||||
|
||||
" Apache style config file
|
||||
au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
|
||||
|
||||
@@ -129,7 +132,7 @@ au BufNewFile,BufRead .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf set
|
||||
au BufNewFile,BufRead *.aml setf aml
|
||||
|
||||
" APT config file
|
||||
au BufNewFile,BufRead apt.conf setf aptconf
|
||||
au BufNewFile,BufRead apt.conf setf aptconf
|
||||
au BufNewFile,BufRead */.aptitude/config setf aptconf
|
||||
au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf
|
||||
|
||||
@@ -952,6 +955,9 @@ au BufNewFile,BufRead inittab setf inittab
|
||||
" Inno Setup
|
||||
au BufNewFile,BufRead *.iss setf iss
|
||||
|
||||
" J
|
||||
au BufNewFile,BufRead *.ijs setf j
|
||||
|
||||
" JAL
|
||||
au BufNewFile,BufRead *.jal,*.JAL setf jal
|
||||
|
||||
@@ -1169,6 +1175,9 @@ au BufNewFile,BufRead *.mp setf mp
|
||||
" MGL
|
||||
au BufNewFile,BufRead *.mgl setf mgl
|
||||
|
||||
" MIX - Knuth assembly
|
||||
au BufNewFile,BufRead *.mix,*.mixal setf mix
|
||||
|
||||
" MMIX or VMS makefile
|
||||
au BufNewFile,BufRead *.mms call s:FTmms()
|
||||
|
||||
@@ -2058,14 +2067,15 @@ au BufNewFile,BufRead */etc/sudoers,sudoers.tmp setf sudoers
|
||||
" SVG (Scalable Vector Graphics)
|
||||
au BufNewFile,BufRead *.svg setf svg
|
||||
|
||||
" If the file has an extension of 't' and is in a directory 't' then it is
|
||||
" almost certainly a Perl test file.
|
||||
" If the file has an extension of 't' and is in a directory 't' or 'xt' then
|
||||
" it is almost certainly a Perl test file.
|
||||
" If the first line starts with '#' and contains 'perl' it's probably a Perl
|
||||
" file.
|
||||
" (Slow test) If a file contains a 'use' statement then it is almost certainly
|
||||
" a Perl file.
|
||||
func! s:FTperl()
|
||||
if expand("%:e") == 't' && expand("%:p:h:t") == 't'
|
||||
let dirname = expand("%:p:h:t")
|
||||
if expand("%:e") == 't' && (dirname == 't' || dirname == 'xt')
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
@@ -2092,7 +2102,7 @@ au BufNewFile,BufRead *.tak setf tak
|
||||
|
||||
" Task
|
||||
au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata
|
||||
au BufRead,BufNewFile *.task setf taskedit
|
||||
au BufRead,BufNewFile *.task setf taskedit
|
||||
|
||||
" Tcl (JACL too)
|
||||
au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl
|
||||
@@ -2217,12 +2227,12 @@ au BufNewFile,BufRead *.uc setf uc
|
||||
au BufNewFile,BufRead */etc/updatedb.conf setf updatedb
|
||||
|
||||
" Upstart (init(8)) config files
|
||||
au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart
|
||||
au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart
|
||||
au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart
|
||||
au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart
|
||||
au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart
|
||||
au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart
|
||||
au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
|
||||
au BufNewFile,BufRead */.config/upstart/*.override setf upstart
|
||||
au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
|
||||
au BufNewFile,BufRead */.config/upstart/*.override setf upstart
|
||||
|
||||
" Vera
|
||||
au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: generic Changelog file
|
||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2012-08-23
|
||||
" Latest Revision: 2013-12-15
|
||||
" Variables:
|
||||
" g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
|
||||
" description: the timeformat used in ChangeLog entries.
|
||||
@@ -122,12 +122,12 @@ if &filetype == 'changelog'
|
||||
|
||||
" Format used for new date entries.
|
||||
if !exists('g:changelog_new_date_format')
|
||||
let g:changelog_new_date_format = "%d %u\n\n\t* %c\n\n"
|
||||
let g:changelog_new_date_format = "%d %u\n\n\t* %p%c\n\n"
|
||||
endif
|
||||
|
||||
" Format used for new entries to current date entry.
|
||||
if !exists('g:changelog_new_entry_format')
|
||||
let g:changelog_new_entry_format = "\t* %c"
|
||||
let g:changelog_new_entry_format = "\t* %p%c"
|
||||
endif
|
||||
|
||||
" Regular expression used to find a given date entry.
|
||||
@@ -143,9 +143,9 @@ if &filetype == 'changelog'
|
||||
|
||||
" Substitutes specific items in new date-entry formats and search strings.
|
||||
" Can be done with substitute of course, but unclean, and need \@! then.
|
||||
function! s:substitute_items(str, date, user)
|
||||
function! s:substitute_items(str, date, user, prefix)
|
||||
let str = a:str
|
||||
let middles = {'%': '%', 'd': a:date, 'u': a:user, 'c': '{cursor}'}
|
||||
let middles = {'%': '%', 'd': a:date, 'u': a:user, 'p': a:prefix, 'c': '{cursor}'}
|
||||
let i = stridx(str, '%')
|
||||
while i != -1
|
||||
let inc = 0
|
||||
@@ -171,7 +171,7 @@ if &filetype == 'changelog'
|
||||
endfunction
|
||||
|
||||
" Internal function to create a new entry in the ChangeLog.
|
||||
function! s:new_changelog_entry()
|
||||
function! s:new_changelog_entry(prefix)
|
||||
" Deal with 'paste' option.
|
||||
let save_paste = &paste
|
||||
let &paste = 1
|
||||
@@ -179,7 +179,7 @@ if &filetype == 'changelog'
|
||||
" Look for an entry for today by our user.
|
||||
let date = strftime(g:changelog_dateformat)
|
||||
let search = s:substitute_items(g:changelog_date_entry_search, date,
|
||||
\ s:username())
|
||||
\ s:username(), a:prefix)
|
||||
if search(search) > 0
|
||||
" Ok, now we look for the end of the date entry, and add an entry.
|
||||
call cursor(nextnonblank(line('.') + 1), 1)
|
||||
@@ -188,7 +188,7 @@ if &filetype == 'changelog'
|
||||
else
|
||||
let p = line('.')
|
||||
endif
|
||||
let ls = split(s:substitute_items(g:changelog_new_entry_format, '', ''),
|
||||
let ls = split(s:substitute_items(g:changelog_new_entry_format, '', '', a:prefix),
|
||||
\ '\n')
|
||||
call append(p, ls)
|
||||
call cursor(p + 1, 1)
|
||||
@@ -198,7 +198,7 @@ if &filetype == 'changelog'
|
||||
|
||||
" No entry today, so create a date-user header and insert an entry.
|
||||
let todays_entry = s:substitute_items(g:changelog_new_date_format,
|
||||
\ date, s:username())
|
||||
\ date, s:username(), a:prefix)
|
||||
" Make sure we have a cursor positioning.
|
||||
if stridx(todays_entry, '{cursor}') == -1
|
||||
let todays_entry = todays_entry . '{cursor}'
|
||||
@@ -206,7 +206,7 @@ if &filetype == 'changelog'
|
||||
|
||||
" Now do the work.
|
||||
call append(0, split(todays_entry, '\n'))
|
||||
|
||||
|
||||
" Remove empty lines at end of file.
|
||||
if remove_empty
|
||||
$-/^\s*$/-1,$delete
|
||||
@@ -223,8 +223,8 @@ if &filetype == 'changelog'
|
||||
endfunction
|
||||
|
||||
if exists(":NewChangelogEntry") != 2
|
||||
noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry()<CR>
|
||||
command! -nargs=0 NewChangelogEntry call s:new_changelog_entry()
|
||||
noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry('')<CR>
|
||||
command! -nargs=0 NewChangelogEntry call s:new_changelog_entry('')
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = "setl com< fo< et< ai<"
|
||||
@@ -277,10 +277,7 @@ else
|
||||
if exists('b:changelog_entry_prefix')
|
||||
let prefix = call(b:changelog_entry_prefix, [])
|
||||
else
|
||||
let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "") . ':'
|
||||
endif
|
||||
if !empty(prefix)
|
||||
let prefix = ' ' . prefix
|
||||
let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "")
|
||||
endif
|
||||
|
||||
let buf = bufnr(changelog)
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Clojure
|
||||
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||
" Language: Clojure
|
||||
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||
"
|
||||
" Maintainer: Sung Pae <self@sungpae.com>
|
||||
" URL: https://github.com/guns/vim-clojure-static
|
||||
" License: Same as Vim
|
||||
" Last Change: 30 January 2013
|
||||
" Maintainer: Sung Pae <self@sungpae.com>
|
||||
" URL: https://github.com/guns/vim-clojure-static
|
||||
" License: Same as Vim
|
||||
" Last Change: 08 September 2013
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = 'setlocal define< formatoptions< comments< commentstring<'
|
||||
let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring<'
|
||||
|
||||
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
|
||||
|
||||
" There will be false positives, but this is better than missing the whole set
|
||||
" of user-defined def* definitions.
|
||||
@@ -35,10 +36,10 @@ setlocal commentstring=;\ %s
|
||||
" 'completefunc' so that the user has some form of completion available when
|
||||
" 'omnifunc' is set and no REPL connection exists.
|
||||
for s:setting in ['omnifunc', 'completefunc']
|
||||
if exists('&' . s:setting) && empty(eval('&' . s:setting))
|
||||
execute 'setlocal ' . s:setting . '=clojurecomplete#Complete'
|
||||
let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<'
|
||||
endif
|
||||
if exists('&' . s:setting) && empty(eval('&' . s:setting))
|
||||
execute 'setlocal ' . s:setting . '=clojurecomplete#Complete'
|
||||
let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<'
|
||||
endif
|
||||
endfor
|
||||
|
||||
" Take all directories of the CLOJURE_SOURCE_DIRS environment variable
|
||||
@@ -46,34 +47,34 @@ endfor
|
||||
"
|
||||
" This is a legacy option for VimClojure users.
|
||||
if exists('$CLOJURE_SOURCE_DIRS')
|
||||
for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':')
|
||||
let s:dir = fnameescape(s:dir)
|
||||
" Whitespace escaping for Windows
|
||||
let s:dir = substitute(s:dir, '\', '\\\\', 'g')
|
||||
let s:dir = substitute(s:dir, '\ ', '\\ ', 'g')
|
||||
execute "setlocal path+=" . s:dir . "/**"
|
||||
endfor
|
||||
let b:undo_ftplugin .= ' | setlocal path<'
|
||||
for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':')
|
||||
let s:dir = fnameescape(s:dir)
|
||||
" Whitespace escaping for Windows
|
||||
let s:dir = substitute(s:dir, '\', '\\\\', 'g')
|
||||
let s:dir = substitute(s:dir, '\ ', '\\ ', 'g')
|
||||
execute "setlocal path+=" . s:dir . "/**"
|
||||
endfor
|
||||
let b:undo_ftplugin .= ' | setlocal path<'
|
||||
endif
|
||||
|
||||
" Skip brackets in ignored syntax regions when using the % command
|
||||
if exists('loaded_matchit')
|
||||
let b:match_words = &matchpairs
|
||||
let b:match_skip = 's:comment\|string\|regex\|character'
|
||||
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
|
||||
let b:match_words = &matchpairs
|
||||
let b:match_skip = 's:comment\|string\|regex\|character'
|
||||
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
|
||||
endif
|
||||
|
||||
" Win32 can filter files in the browse dialog
|
||||
if has("gui_win32") && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
|
||||
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
|
||||
\ "Java Source Files (*.java)\t*.java\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
|
||||
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
|
||||
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
|
||||
\ "Java Source Files (*.java)\t*.java\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
unlet! s:cpo_save s:setting s:dir
|
||||
|
||||
" vim:sts=4 sw=4 et:
|
||||
" vim:sts=8:sw=8:ts=8:noet
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
" Vim settings file
|
||||
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66)
|
||||
" Version: 0.48
|
||||
" Last Change: 2012 Apr. 18
|
||||
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www.unb.ca/chem/ajit/>
|
||||
" Version: 0.49
|
||||
" Last Change: 2013 Oct. 01
|
||||
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
|
||||
" Usage: Do :help fortran-plugin from Vim
|
||||
" Credits:
|
||||
" Useful suggestions were made by Stefano Zacchiroli, Hendrik Merx, and Ben
|
||||
" Fritz.
|
||||
" Useful suggestions were made by Stefano Zacchiroli, Hendrik Merx, Ben
|
||||
" Fritz, and David Barnett.
|
||||
|
||||
" Only do these settings when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -64,8 +64,8 @@ if (b:fortran_fixed_source == 1)
|
||||
" setlocal tw=73
|
||||
else
|
||||
setlocal comments=:!
|
||||
" Free format allows a textwidth of 132 for code but 80 is more usual
|
||||
setlocal tw=80
|
||||
" Free format allows a textwidth of 132
|
||||
setlocal tw=132
|
||||
endif
|
||||
|
||||
" Set commentstring for foldmethod=marker
|
||||
@@ -76,8 +76,8 @@ if !exists("fortran_have_tabs")
|
||||
setlocal expandtab
|
||||
endif
|
||||
|
||||
" Set 'formatoptions' to break comment and text lines but allow long lines
|
||||
setlocal fo+=tcql
|
||||
" Set 'formatoptions' to break text lines
|
||||
setlocal fo+=t
|
||||
|
||||
setlocal include=^\\c#\\=\\s*include\\s\\+
|
||||
setlocal suffixesadd+=.f08,.f03,.f95,.f90,.for,.f,.F,.f77,.ftn,.fpp
|
||||
@@ -114,7 +114,7 @@ if has("gui_win32") && !exists("b:browsefilter")
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = "setl fo< com< tw< cms< et< inc<"
|
||||
let b:undo_ftplugin = "setl fo< com< tw< cms< et< inc< sua<"
|
||||
\ . "| unlet! b:match_ignorecase b:match_words b:browsefilter"
|
||||
|
||||
let &cpoptions=s:cposet
|
||||
|
||||
18
runtime/ftplugin/j.vim
Normal file
18
runtime/ftplugin/j.vim
Normal file
@@ -0,0 +1,18 @@
|
||||
" Vim filetype plugin
|
||||
" Language: J
|
||||
" Maintainer: David Bürgin <676c7473@gmail.com>
|
||||
" Last Change: 2013-10-06
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal iskeyword=48-57,65-90,_,97-122
|
||||
setlocal comments=:NB.
|
||||
setlocal commentstring=NB.\ %s
|
||||
setlocal formatoptions-=t
|
||||
setlocal shiftwidth=2 softtabstop=2 expandtab
|
||||
setlocal matchpairs=(:)
|
||||
|
||||
let b:undo_ftplugin = "setl mps< et< sts< sw< fo< cms< com< isk<"
|
||||
15
runtime/ftplugin/jproperties.vim
Normal file
15
runtime/ftplugin/jproperties.vim
Normal file
@@ -0,0 +1,15 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Java properties file
|
||||
" Maintainer: David Bürgin <676c7473@gmail.com>
|
||||
" Last Change: 2013-11-19
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal formatoptions-=t
|
||||
setlocal comments=:#,:!
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl cms< com< fo<"
|
||||
@@ -4,7 +4,7 @@
|
||||
" URL: http://sites.google.com/site/khorser/opensource/vim
|
||||
" Original author: Dorai Sitaram <ds26@gte.com>
|
||||
" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
|
||||
" Last Change: Feb 12, 2013
|
||||
" Last Change: Oct 23, 2013
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -21,9 +21,6 @@ setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
|
||||
setl lisp
|
||||
setl commentstring=;%s
|
||||
|
||||
" make comments behaviour like in c.vim
|
||||
" e.g. insertion of ;;; and ;; on normal "O" or "o" when staying in comment
|
||||
setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
|
||||
setl formatoptions+=croql
|
||||
|
||||
let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lisp< commentstring<"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: python
|
||||
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Wed, 21 Apr 2004 13:13:08 CEST
|
||||
" Last Change: 2013 Nov 28
|
||||
" Last Change By Johannes: Wed, 21 Apr 2004 13:13:08 CEST
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
@@ -13,8 +14,8 @@ setlocal indentkeys-=0#
|
||||
setlocal include=\s*\\(from\\\|import\\)
|
||||
setlocal includeexpr=substitute(v:fname,'\\.','/','g')
|
||||
setlocal suffixesadd=.py
|
||||
setlocal comments-=:%
|
||||
setlocal commentstring=#%s
|
||||
setlocal comments=b:#,fb:-
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
setlocal omnifunc=pythoncomplete#Complete
|
||||
|
||||
@@ -25,24 +26,40 @@ nnoremap <silent> <buffer> [[ :call <SID>Python_jump('?^\(class\\|def\)')<cr>
|
||||
nnoremap <silent> <buffer> ]m :call <SID>Python_jump('/^\s*\(class\\|def\)')<cr>
|
||||
nnoremap <silent> <buffer> [m :call <SID>Python_jump('?^\s*\(class\\|def\)')<cr>
|
||||
|
||||
if exists('*<SID>Python_jump') | finish | endif
|
||||
if !exists('*<SID>Python_jump')
|
||||
fun! <SID>Python_jump(motion) range
|
||||
let cnt = v:count1
|
||||
let save = @/ " save last search pattern
|
||||
mark '
|
||||
while cnt > 0
|
||||
silent! exe a:motion
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
call histdel('/', -1)
|
||||
let @/ = save " restore last search pattern
|
||||
endfun
|
||||
endif
|
||||
|
||||
fun! <SID>Python_jump(motion) range
|
||||
let cnt = v:count1
|
||||
let save = @/ " save last search pattern
|
||||
mark '
|
||||
while cnt > 0
|
||||
silent! exe a:motion
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
call histdel('/', -1)
|
||||
let @/ = save " restore last search pattern
|
||||
endfun
|
||||
|
||||
if has("gui_win32") && !exists("b:browsefilter")
|
||||
if has("browsefilter") && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Python Files (*.py)\t*.py\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
" As suggested by PEP8.
|
||||
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
|
||||
|
||||
" First time: try finding "pydoc".
|
||||
if !exists('g:pydoc_executable')
|
||||
if executable('pydoc')
|
||||
let g:pydoc_executable = 1
|
||||
else
|
||||
let g:pydoc_executable = 0
|
||||
endif
|
||||
endif
|
||||
" If "pydoc" was found use it for keywordprg.
|
||||
if g:pydoc_executable
|
||||
setlocal keywordprg=pydoc
|
||||
endif
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
" URL: http://sites.google.com/site/khorser/opensource/vim
|
||||
" Original author: Dorai Sitaram <ds26@gte.com>
|
||||
" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
|
||||
" Last Change: Feb 12, 2013
|
||||
" Last Change: Oct 23, 2013
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -22,10 +22,7 @@ setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
|
||||
setl lisp
|
||||
setl commentstring=;%s
|
||||
|
||||
" make comments behaviour like in c.vim
|
||||
" e.g. insertion of ;;; and ;; on normal "O" or "o" when staying in comment
|
||||
setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
|
||||
setl formatoptions+=croql
|
||||
|
||||
" Scheme-specific settings
|
||||
if exists("b:is_mzscheme") || exists("is_mzscheme")
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
" Vim indent file
|
||||
" Language: Clojure
|
||||
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||
" URL: http://kotka.de/projects/clojure/vimclojure.html
|
||||
" Language: Clojure
|
||||
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||
" URL: http://kotka.de/projects/clojure/vimclojure.html
|
||||
"
|
||||
" Maintainer: Sung Pae <self@sungpae.com>
|
||||
" URL: https://github.com/guns/vim-clojure-static
|
||||
" License: Same as Vim
|
||||
" Last Change: 30 January 2013
|
||||
" Maintainer: Sung Pae <self@sungpae.com>
|
||||
" URL: https://github.com/guns/vim-clojure-static
|
||||
" License: Same as Vim
|
||||
" Last Change: 16 December 2013
|
||||
|
||||
" TODO: Indenting after multibyte characters is broken:
|
||||
" (let [Δ (if foo
|
||||
" bar ; Indent error
|
||||
" baz)])
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
@@ -25,290 +29,281 @@ setlocal indentkeys=!,o,O
|
||||
|
||||
if exists("*searchpairpos")
|
||||
|
||||
if !exists('g:clojure_maxlines')
|
||||
let g:clojure_maxlines = 100
|
||||
endif
|
||||
if !exists('g:clojure_maxlines')
|
||||
let g:clojure_maxlines = 100
|
||||
endif
|
||||
|
||||
if !exists('g:clojure_fuzzy_indent')
|
||||
let g:clojure_fuzzy_indent = 1
|
||||
endif
|
||||
if !exists('g:clojure_fuzzy_indent')
|
||||
let g:clojure_fuzzy_indent = 1
|
||||
endif
|
||||
|
||||
if !exists('g:clojure_fuzzy_indent_patterns')
|
||||
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
|
||||
endif
|
||||
if !exists('g:clojure_fuzzy_indent_patterns')
|
||||
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
|
||||
endif
|
||||
|
||||
if !exists('g:clojure_fuzzy_indent_blacklist')
|
||||
let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
|
||||
endif
|
||||
if !exists('g:clojure_fuzzy_indent_blacklist')
|
||||
let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
|
||||
endif
|
||||
|
||||
if !exists('g:clojure_special_indent_words')
|
||||
let g:clojure_special_indent_words = 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
|
||||
endif
|
||||
if !exists('g:clojure_special_indent_words')
|
||||
let g:clojure_special_indent_words = 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
|
||||
endif
|
||||
|
||||
if !exists('g:clojure_align_multiline_strings')
|
||||
let g:clojure_align_multiline_strings = 0
|
||||
endif
|
||||
if !exists('g:clojure_align_multiline_strings')
|
||||
let g:clojure_align_multiline_strings = 0
|
||||
endif
|
||||
|
||||
function! s:SynIdName()
|
||||
return synIDattr(synID(line("."), col("."), 0), "name")
|
||||
endfunction
|
||||
if !exists('g:clojure_align_subforms')
|
||||
let g:clojure_align_subforms = 0
|
||||
endif
|
||||
|
||||
function! s:CurrentChar()
|
||||
return getline('.')[col('.')-1]
|
||||
endfunction
|
||||
function! s:SynIdName()
|
||||
return synIDattr(synID(line("."), col("."), 0), "name")
|
||||
endfunction
|
||||
|
||||
function! s:CurrentWord()
|
||||
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
|
||||
endfunction
|
||||
function! s:CurrentChar()
|
||||
return getline('.')[col('.')-1]
|
||||
endfunction
|
||||
|
||||
function! s:IsParen()
|
||||
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
|
||||
\ s:SynIdName() !~? '\vstring|comment'
|
||||
endfunction
|
||||
function! s:CurrentWord()
|
||||
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
|
||||
endfunction
|
||||
|
||||
" Returns 1 if string matches a pattern in 'patterns', which may be a
|
||||
" list of patterns, or a comma-delimited string of implicitly anchored
|
||||
" patterns.
|
||||
function! s:MatchesOne(patterns, string)
|
||||
let list = type(a:patterns) == type([])
|
||||
\ ? a:patterns
|
||||
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
|
||||
for pat in list
|
||||
if a:string =~ pat | return 1 | endif
|
||||
endfor
|
||||
endfunction
|
||||
function! s:IsParen()
|
||||
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
|
||||
\ s:SynIdName() !~? '\vstring|regex|comment|character'
|
||||
endfunction
|
||||
|
||||
function! s:SavePosition()
|
||||
let [ _b, l, c, _o ] = getpos(".")
|
||||
let b = bufnr("%")
|
||||
return [b, l, c]
|
||||
endfunction
|
||||
" Returns 1 if string matches a pattern in 'patterns', which may be a
|
||||
" list of patterns, or a comma-delimited string of implicitly anchored
|
||||
" patterns.
|
||||
function! s:MatchesOne(patterns, string)
|
||||
let list = type(a:patterns) == type([])
|
||||
\ ? a:patterns
|
||||
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
|
||||
for pat in list
|
||||
if a:string =~ pat | return 1 | endif
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! s:RestorePosition(value)
|
||||
let [b, l, c] = a:value
|
||||
if bufnr("%") != b
|
||||
execute b "buffer!"
|
||||
endif
|
||||
call setpos(".", [0, l, c, 0])
|
||||
endfunction
|
||||
function! s:MatchPairs(open, close, stopat)
|
||||
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
|
||||
" comments.
|
||||
if a:stopat == 0
|
||||
let stopat = max([line(".") - g:clojure_maxlines, 0])
|
||||
else
|
||||
let stopat = a:stopat
|
||||
endif
|
||||
|
||||
function! s:MatchPairs(open, close, stopat)
|
||||
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
|
||||
" comments.
|
||||
if a:stopat == 0
|
||||
let stopat = max([line(".") - g:clojure_maxlines, 0])
|
||||
else
|
||||
let stopat = a:stopat
|
||||
endif
|
||||
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
|
||||
return [pos[0], virtcol(pos)]
|
||||
endfunction
|
||||
|
||||
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
|
||||
return [pos[0], virtcol(pos)]
|
||||
endfunction
|
||||
function! s:ClojureCheckForStringWorker()
|
||||
" Check whether there is the last character of the previous line is
|
||||
" highlighted as a string. If so, we check whether it's a ". In this
|
||||
" case we have to check also the previous character. The " might be the
|
||||
" closing one. In case the we are still in the string, we search for the
|
||||
" opening ". If this is not found we take the indent of the line.
|
||||
let nb = prevnonblank(v:lnum - 1)
|
||||
|
||||
function! s:ClojureCheckForStringWorker()
|
||||
" Check whether there is the last character of the previous line is
|
||||
" highlighted as a string. If so, we check whether it's a ". In this
|
||||
" case we have to check also the previous character. The " might be the
|
||||
" closing one. In case the we are still in the string, we search for the
|
||||
" opening ". If this is not found we take the indent of the line.
|
||||
let nb = prevnonblank(v:lnum - 1)
|
||||
if nb == 0
|
||||
return -1
|
||||
endif
|
||||
|
||||
if nb == 0
|
||||
return -1
|
||||
endif
|
||||
call cursor(nb, 0)
|
||||
call cursor(0, col("$") - 1)
|
||||
if s:SynIdName() !~? "string"
|
||||
return -1
|
||||
endif
|
||||
|
||||
call cursor(nb, 0)
|
||||
call cursor(0, col("$") - 1)
|
||||
if s:SynIdName() !~? "string"
|
||||
return -1
|
||||
endif
|
||||
" This will not work for a " in the first column...
|
||||
if s:CurrentChar() == '"'
|
||||
call cursor(0, col("$") - 2)
|
||||
if s:SynIdName() !~? "string"
|
||||
return -1
|
||||
endif
|
||||
if s:CurrentChar() != '\\'
|
||||
return -1
|
||||
endif
|
||||
call cursor(0, col("$") - 1)
|
||||
endif
|
||||
|
||||
" This will not work for a " in the first column...
|
||||
if s:CurrentChar() == '"'
|
||||
call cursor(0, col("$") - 2)
|
||||
if s:SynIdName() !~? "string"
|
||||
return -1
|
||||
endif
|
||||
if s:CurrentChar() != '\\'
|
||||
return -1
|
||||
endif
|
||||
call cursor(0, col("$") - 1)
|
||||
endif
|
||||
let p = searchpos('\(^\|[^\\]\)\zs"', 'bW')
|
||||
|
||||
let p = searchpos('\(^\|[^\\]\)\zs"', 'bW')
|
||||
if p != [0, 0]
|
||||
return p[1] - 1
|
||||
endif
|
||||
|
||||
if p != [0, 0]
|
||||
return p[1] - 1
|
||||
endif
|
||||
return indent(".")
|
||||
endfunction
|
||||
|
||||
return indent(".")
|
||||
endfunction
|
||||
function! s:CheckForString()
|
||||
let pos = getpos('.')
|
||||
try
|
||||
let val = s:ClojureCheckForStringWorker()
|
||||
finally
|
||||
call setpos('.', pos)
|
||||
endtry
|
||||
return val
|
||||
endfunction
|
||||
|
||||
function! s:CheckForString()
|
||||
let pos = s:SavePosition()
|
||||
try
|
||||
let val = s:ClojureCheckForStringWorker()
|
||||
finally
|
||||
call s:RestorePosition(pos)
|
||||
endtry
|
||||
return val
|
||||
endfunction
|
||||
function! s:ClojureIsMethodSpecialCaseWorker(position)
|
||||
" Find the next enclosing form.
|
||||
call search('\S', 'Wb')
|
||||
|
||||
function! s:ClojureIsMethodSpecialCaseWorker(position)
|
||||
" Find the next enclosing form.
|
||||
call search('\S', 'Wb')
|
||||
" Special case: we are at a '(('.
|
||||
if s:CurrentChar() == '('
|
||||
return 0
|
||||
endif
|
||||
call cursor(a:position)
|
||||
|
||||
" Special case: we are at a '(('.
|
||||
if s:CurrentChar() == '('
|
||||
return 0
|
||||
endif
|
||||
call cursor(a:position)
|
||||
let nextParen = s:MatchPairs('(', ')', 0)
|
||||
|
||||
let nextParen = s:MatchPairs('(', ')', 0)
|
||||
" Special case: we are now at toplevel.
|
||||
if nextParen == [0, 0]
|
||||
return 0
|
||||
endif
|
||||
call cursor(nextParen)
|
||||
|
||||
" Special case: we are now at toplevel.
|
||||
if nextParen == [0, 0]
|
||||
return 0
|
||||
endif
|
||||
call cursor(nextParen)
|
||||
call search('\S', 'W')
|
||||
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
|
||||
return 1
|
||||
endif
|
||||
|
||||
call search('\S', 'W')
|
||||
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
function! s:IsMethodSpecialCase(position)
|
||||
let pos = getpos('.')
|
||||
try
|
||||
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
|
||||
finally
|
||||
call setpos('.', pos)
|
||||
endtry
|
||||
return val
|
||||
endfunction
|
||||
|
||||
function! s:IsMethodSpecialCase(position)
|
||||
let pos = s:SavePosition()
|
||||
try
|
||||
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
|
||||
finally
|
||||
call s:RestorePosition(pos)
|
||||
endtry
|
||||
return val
|
||||
endfunction
|
||||
function! GetClojureIndent()
|
||||
" Get rid of special case.
|
||||
if line(".") == 1
|
||||
return 0
|
||||
endif
|
||||
|
||||
function! GetClojureIndent()
|
||||
" Get rid of special case.
|
||||
if line(".") == 1
|
||||
return 0
|
||||
endif
|
||||
" We have to apply some heuristics here to figure out, whether to use
|
||||
" normal lisp indenting or not.
|
||||
let i = s:CheckForString()
|
||||
if i > -1
|
||||
return i + !!g:clojure_align_multiline_strings
|
||||
endif
|
||||
|
||||
" We have to apply some heuristics here to figure out, whether to use
|
||||
" normal lisp indenting or not.
|
||||
let i = s:CheckForString()
|
||||
if i > -1
|
||||
return i + !!g:clojure_align_multiline_strings
|
||||
endif
|
||||
call cursor(0, 1)
|
||||
|
||||
call cursor(0, 1)
|
||||
" Find the next enclosing [ or {. We can limit the second search
|
||||
" to the line, where the [ was found. If no [ was there this is
|
||||
" zero and we search for an enclosing {.
|
||||
let paren = s:MatchPairs('(', ')', 0)
|
||||
let bracket = s:MatchPairs('\[', '\]', paren[0])
|
||||
let curly = s:MatchPairs('{', '}', bracket[0])
|
||||
|
||||
" Find the next enclosing [ or {. We can limit the second search
|
||||
" to the line, where the [ was found. If no [ was there this is
|
||||
" zero and we search for an enclosing {.
|
||||
let paren = s:MatchPairs('(', ')', 0)
|
||||
let bracket = s:MatchPairs('\[', '\]', paren[0])
|
||||
let curly = s:MatchPairs('{', '}', bracket[0])
|
||||
" In case the curly brace is on a line later then the [ or - in
|
||||
" case they are on the same line - in a higher column, we take the
|
||||
" curly indent.
|
||||
if curly[0] > bracket[0] || curly[1] > bracket[1]
|
||||
if curly[0] > paren[0] || curly[1] > paren[1]
|
||||
return curly[1]
|
||||
endif
|
||||
endif
|
||||
|
||||
" In case the curly brace is on a line later then the [ or - in
|
||||
" case they are on the same line - in a higher column, we take the
|
||||
" curly indent.
|
||||
if curly[0] > bracket[0] || curly[1] > bracket[1]
|
||||
if curly[0] > paren[0] || curly[1] > paren[1]
|
||||
return curly[1]
|
||||
endif
|
||||
endif
|
||||
" If the curly was not chosen, we take the bracket indent - if
|
||||
" there was one.
|
||||
if bracket[0] > paren[0] || bracket[1] > paren[1]
|
||||
return bracket[1]
|
||||
endif
|
||||
|
||||
" If the curly was not chosen, we take the bracket indent - if
|
||||
" there was one.
|
||||
if bracket[0] > paren[0] || bracket[1] > paren[1]
|
||||
return bracket[1]
|
||||
endif
|
||||
" There are neither { nor [ nor (, ie. we are at the toplevel.
|
||||
if paren == [0, 0]
|
||||
return 0
|
||||
endif
|
||||
|
||||
" There are neither { nor [ nor (, ie. we are at the toplevel.
|
||||
if paren == [0, 0]
|
||||
return 0
|
||||
endif
|
||||
" Now we have to reimplement lispindent. This is surprisingly easy, as
|
||||
" soon as one has access to syntax items.
|
||||
"
|
||||
" - Check whether we are in a special position after a word in
|
||||
" g:clojure_special_indent_words. These are special cases.
|
||||
" - Get the next keyword after the (.
|
||||
" - If its first character is also a (, we have another sexp and align
|
||||
" one column to the right of the unmatched (.
|
||||
" - In case it is in lispwords, we indent the next line to the column of
|
||||
" the ( + sw.
|
||||
" - If not, we check whether it is last word in the line. In that case
|
||||
" we again use ( + sw for indent.
|
||||
" - In any other case we use the column of the end of the word + 2.
|
||||
call cursor(paren)
|
||||
|
||||
" Now we have to reimplement lispindent. This is surprisingly easy, as
|
||||
" soon as one has access to syntax items.
|
||||
"
|
||||
" - Check whether we are in a special position after a word in
|
||||
" g:clojure_special_indent_words. These are special cases.
|
||||
" - Get the next keyword after the (.
|
||||
" - If its first character is also a (, we have another sexp and align
|
||||
" one column to the right of the unmatched (.
|
||||
" - In case it is in lispwords, we indent the next line to the column of
|
||||
" the ( + sw.
|
||||
" - If not, we check whether it is last word in the line. In that case
|
||||
" we again use ( + sw for indent.
|
||||
" - In any other case we use the column of the end of the word + 2.
|
||||
call cursor(paren)
|
||||
if s:IsMethodSpecialCase(paren)
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
|
||||
if s:IsMethodSpecialCase(paren)
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
" In case we are at the last character, we use the paren position.
|
||||
if col("$") - 1 == paren[1]
|
||||
return paren[1]
|
||||
endif
|
||||
|
||||
" In case we are at the last character, we use the paren position.
|
||||
if col("$") - 1 == paren[1]
|
||||
return paren[1]
|
||||
endif
|
||||
" In case after the paren is a whitespace, we search for the next word.
|
||||
call cursor(0, col('.') + 1)
|
||||
if s:CurrentChar() == ' '
|
||||
call search('\v\S', 'W')
|
||||
endif
|
||||
|
||||
" In case after the paren is a whitespace, we search for the next word.
|
||||
normal! l
|
||||
if s:CurrentChar() == ' '
|
||||
normal! w
|
||||
endif
|
||||
" If we moved to another line, there is no word after the (. We
|
||||
" use the ( position for indent.
|
||||
if line(".") > paren[0]
|
||||
return paren[1]
|
||||
endif
|
||||
|
||||
" If we moved to another line, there is no word after the (. We
|
||||
" use the ( position for indent.
|
||||
if line(".") > paren[0]
|
||||
return paren[1]
|
||||
endif
|
||||
" We still have to check, whether the keyword starts with a (, [ or {.
|
||||
" In that case we use the ( position for indent.
|
||||
let w = s:CurrentWord()
|
||||
if stridx('([{', w[0]) > -1
|
||||
return paren[1]
|
||||
endif
|
||||
|
||||
" We still have to check, whether the keyword starts with a (, [ or {.
|
||||
" In that case we use the ( position for indent.
|
||||
let w = s:CurrentWord()
|
||||
if stridx('([{', w[0]) > -1
|
||||
return paren[1]
|
||||
endif
|
||||
" Test words without namespace qualifiers and leading reader macro
|
||||
" metacharacters.
|
||||
"
|
||||
" e.g. clojure.core/defn and #'defn should both indent like defn.
|
||||
let ww = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
|
||||
|
||||
" Test words without namespace qualifiers and leading reader macro
|
||||
" metacharacters.
|
||||
"
|
||||
" e.g. clojure.core/defn and #'defn should both indent like defn.
|
||||
let ww = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
|
||||
if &lispwords =~ '\V\<' . ww . '\>'
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
|
||||
if &lispwords =~ '\V\<' . ww . '\>'
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
if g:clojure_fuzzy_indent
|
||||
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
|
||||
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
|
||||
if g:clojure_fuzzy_indent
|
||||
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
|
||||
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
call search('\v\_s', 'cW')
|
||||
call search('\v\S', 'W')
|
||||
if paren[0] < line(".")
|
||||
return paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)
|
||||
endif
|
||||
|
||||
normal! W
|
||||
if paren[0] < line(".")
|
||||
return paren[1] + &shiftwidth - 1
|
||||
endif
|
||||
call search('\v\S', 'bW')
|
||||
return virtcol(".") + 1
|
||||
endfunction
|
||||
|
||||
normal! ge
|
||||
return virtcol(".") + 1
|
||||
endfunction
|
||||
|
||||
setlocal indentexpr=GetClojureIndent()
|
||||
setlocal indentexpr=GetClojureIndent()
|
||||
|
||||
else
|
||||
|
||||
" In case we have searchpairpos not available we fall back to
|
||||
" normal lisp indenting.
|
||||
setlocal indentexpr=
|
||||
setlocal lisp
|
||||
let b:undo_indent .= '| setlocal lisp<'
|
||||
" In case we have searchpairpos not available we fall back to
|
||||
" normal lisp indenting.
|
||||
setlocal indentexpr=
|
||||
setlocal lisp
|
||||
let b:undo_indent .= '| setlocal lisp<'
|
||||
|
||||
endif
|
||||
|
||||
@@ -390,9 +385,8 @@ setlocal lispwords+=while
|
||||
|
||||
" Exception handling
|
||||
setlocal lispwords+=catch
|
||||
setlocal lispwords+=try " For aesthetics when enclosing single line
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet! s:save_cpo
|
||||
|
||||
" vim:sts=4 sw=4 et:
|
||||
" vim:sts=8:sw=8:ts=8:noet
|
||||
|
||||
37
runtime/indent/j.vim
Normal file
37
runtime/indent/j.vim
Normal file
@@ -0,0 +1,37 @@
|
||||
" Vim indent file
|
||||
" Language: J
|
||||
" Maintainer: David Bürgin <676c7473@gmail.com>
|
||||
" Last Change: 2013-09-21
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetJIndent()
|
||||
setlocal indentkeys-=0{,0},\:,0#
|
||||
setlocal indentkeys+=0),=case.,=catch.,=catchd.,=catcht.,=do.,=else.,=elseif.,=end.,=fcase.
|
||||
|
||||
let b:undo_indent = "setl indk< inde<"
|
||||
|
||||
if exists("*GetJIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
function GetJIndent()
|
||||
let prevlnum = prevnonblank(v:lnum-1)
|
||||
if prevlnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let indent = indent(prevlnum)
|
||||
if getline(prevlnum) =~# '^\s*\%(case\|catch[dt]\=\|do\|else\%(if\)\=\|fcase\|for\%(_\a\k*\)\=\|if\|select\|try\|whil\%(e\|st\)\)\.'
|
||||
if getline(prevlnum) !~# '\<end\.'
|
||||
let indent += &shiftwidth
|
||||
endif
|
||||
endif
|
||||
if getline(v:lnum) =~# '^\s*\%(case\|catch[dt]\=\|do\|else\%(if\)\=\|end\|fcase\)\.'
|
||||
let indent -= &shiftwidth
|
||||
endif
|
||||
return indent
|
||||
endfunction
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim indent file
|
||||
" Language: Shell Script
|
||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2010-01-06
|
||||
" Maintainer: Peter Aronoff <telemachus@arpinum.org>
|
||||
" Original Author: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2013-11-28
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -77,6 +78,8 @@ function! GetShIndent()
|
||||
let line = getline(v:lnum)
|
||||
if line =~ '^\s*\%(then\|do\|else\|elif\|fi\|done\)\>' || line =~ '^\s*}'
|
||||
let ind -= s:indent_value('default')
|
||||
elseif line =~ '^\s*esac\>' && s:is_case_empty(getline(v:lnum - 1))
|
||||
let ind -= s:indent_value('default')
|
||||
elseif line =~ '^\s*esac\>'
|
||||
let ind -= (s:is_case_label(pine, lnum) && s:is_case_ended(pine) ?
|
||||
\ 0 : s:indent_value('case-statements')) +
|
||||
@@ -154,5 +157,13 @@ function! s:is_case_ended(line)
|
||||
return s:is_case_break(a:line) || a:line =~ ';[;&]\s*\%(#.*\)\=$'
|
||||
endfunction
|
||||
|
||||
function! s:is_case_empty(line)
|
||||
if a:line =~ '^\s*$' || a:line =~ '^\s*#'
|
||||
return s:is_case_empty(getline(v:lnum - 1))
|
||||
else
|
||||
return a:line =~ '^\s*case\>'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: xa 6502 cross assembler
|
||||
" Maintainer: Clemens Kirchgatterer <clemens@thf.ath.cx>
|
||||
" Last Change: 2003 May 03
|
||||
" Maintainer: Clemens Kirchgatterer <clemens@1541.org>
|
||||
" Last Change: 2014 Jan 05
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
" Vim syntax file
|
||||
" This is a GENERATED FILE. Please always refer to source file at the URI below.
|
||||
" Language: Apache configuration (httpd.conf, srm.conf, access.conf, .htaccess)
|
||||
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
|
||||
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
|
||||
" License: This file can be redistribued and/or modified under the same terms
|
||||
" as Vim itself.
|
||||
" Last Change: 2006-12-13
|
||||
" URL: http://trific.ath.cx/Ftp/vim/syntax/apache.vim
|
||||
" Last Change: 2013-09-16
|
||||
" Notes: Last synced with apache-2.2.3, version 1.x is no longer supported
|
||||
" TODO: see particular FIXME's scattered through the file
|
||||
" make it really linewise?
|
||||
@@ -30,7 +28,10 @@ syn keyword apacheFixme FIXME TODO XXX NOT
|
||||
syn case ignore
|
||||
syn match apacheAnything "\s[^>]*" contained
|
||||
syn match apacheError "\w\+" contained
|
||||
syn region apacheString start=+"+ end=+"+ skip=+\\\\\|\\\"+
|
||||
syn region apacheString start=+"+ end=+"+ skip=+\\\\\|\\\"+ oneline
|
||||
|
||||
" Following is to prevent escaped quotes from being parsed as strings.
|
||||
syn match apacheSkipQuote +\\"+
|
||||
|
||||
" Core and mpm
|
||||
syn keyword apacheDeclaration AccessFileName AddDefaultCharset AllowOverride AuthName AuthType ContentDigest DefaultType DocumentRoot ErrorDocument ErrorLog HostNameLookups IdentityCheck Include KeepAlive KeepAliveTimeout LimitRequestBody LimitRequestFields LimitRequestFieldsize LimitRequestLine LogLevel MaxKeepAliveRequests NameVirtualHost Options Require RLimitCPU RLimitMEM RLimitNPROC Satisfy ScriptInterpreterSource ServerAdmin ServerAlias ServerName ServerPath ServerRoot ServerSignature ServerTokens TimeOut UseCanonicalName
|
||||
|
||||
61
runtime/syntax/arduino.vim
Normal file
61
runtime/syntax/arduino.vim
Normal file
@@ -0,0 +1,61 @@
|
||||
" Vim syntax file
|
||||
" Language: Arduino
|
||||
" Maintainer: Johannes Hoff <johannes@johanneshoff.com>
|
||||
" Last Change: 2011 June 3
|
||||
" License: VIM license (:help license, replace vim by arduino.vim)
|
||||
|
||||
" Syntax highlighting like in the Arduino IDE
|
||||
" Keywords extracted from <arduino>/build/shared/lib/keywords.txt (arduino
|
||||
" version 0021)
|
||||
|
||||
" Thanks to Rik, Erik Nomitch, Adam Obeng and Graeme Cross for helpful feedback!
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Read the C syntax to start with
|
||||
if version < 600
|
||||
so <sfile>:p:h/cpp.vim
|
||||
else
|
||||
runtime! syntax/cpp.vim
|
||||
endif
|
||||
|
||||
syn keyword arduinoConstant HIGH LOW INPUT OUTPUT
|
||||
syn keyword arduinoConstant DEC BIN HEX OCT BYTE
|
||||
syn keyword arduinoConstant PI HALF_PI TWO_PI
|
||||
syn keyword arduinoConstant LSBFIRST MSBFIRST
|
||||
syn keyword arduinoConstant CHANGE FALLING RISING
|
||||
syn keyword arduinoConstant SERIAL DISPLAY
|
||||
syn keyword arduinoConstant DEFAULT EXTERNAL INTERNAL INTERNAL1V1 INTERNAL2V56
|
||||
|
||||
syn keyword arduinoStdFunc abs acos asin atan atan2 ceil constrain
|
||||
syn keyword arduinoStdFunc cos degrees exp floor log
|
||||
syn keyword arduinoStdFunc map max min pow radians
|
||||
syn keyword arduinoStdFunc round sin sq sqrt tan
|
||||
syn keyword arduinoStdFunc randomSeed random
|
||||
|
||||
syn keyword arduinoFunc analogReference analogRead analogWrite
|
||||
syn keyword arduinoFunc attachInterrupt detachInterrupt interrupts noInterrupts
|
||||
syn keyword arduinoFunc lowByte highByte bitRead bitWrite bitSet bitClear
|
||||
syn keyword arduinoFunc millis micros delay delayMicroseconds
|
||||
syn keyword arduinoFunc pinMode digitalWrite digitalRead
|
||||
syn keyword arduinoFunc tone noTone pulseIn shiftOut
|
||||
|
||||
syn keyword arduinoMethod setup loop
|
||||
syn keyword arduinoMethod begin end available read flush print println write peek
|
||||
|
||||
syn keyword arduinoType boolean byte word String
|
||||
|
||||
syn keyword arduinoModule Serial Serial1 Serial2 Serial3
|
||||
|
||||
hi def link arduinoType Type
|
||||
hi def link arduinoConstant Constant
|
||||
hi def link arduinoStdFunc Function
|
||||
hi def link arduinoFunc Function
|
||||
hi def link arduinoMethod Function
|
||||
hi def link arduinoModule Identifier
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Clean
|
||||
" Author: Pieter van Engelen <pietere@sci.kun.nl>
|
||||
" Co-Author: Arthur van Leeuwen <arthurvl@sci.kun.nl>
|
||||
" Last Change: 2013 Jun 19 by Jurriën Stutterheim
|
||||
" Last Change: 2013 Oct 15 by Jurriën Stutterheim
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -31,11 +31,10 @@ syn keyword cleanIncludeKeyword contained from import as qualified
|
||||
|
||||
" To do some Denotation Highlighting
|
||||
syn keyword cleanBoolDenot True False
|
||||
syn region cleanStringDenot start=+"+ end=+"+
|
||||
syn match cleanCharDenot "'.'"
|
||||
syn match cleanCharsDenot "'[^'\\]*\(\\.[^'\\]\)*'" contained
|
||||
syn match cleanIntegerDenot "[+-~]\=\<\(\d\+\|0[0-7]\+\|0x[0-9A-Fa-f]\+\)\>"
|
||||
syn match cleanRealDenot "[+-~]\=\<\d\+\.\d+\(E[+-~]\=\d+\)\="
|
||||
syn region cleanStringDenot start=+"+ skip=+\(\(\\\\\)\+\|\\"\)+ end=+"+ display
|
||||
syn match cleanCharDenot "'\(\\\\\|\\'\|[^'\\]\)\+'" display
|
||||
syn match cleanIntegerDenot "[\~+-]\?\<\(\d\+\|0[0-7]\+\|0x[0-9A-Fa-f]\+\)\>" display
|
||||
syn match cleanRealDenot "[\~+-]\?\d\+\.\d\+\(E[\~+-]\?\d\+\)\?" display
|
||||
|
||||
" To highlight the use of lists, tuples and arrays
|
||||
syn region cleanList start="\[" end="\]" contains=ALL
|
||||
@@ -44,11 +43,13 @@ syn region cleanArray start="{:" end=":}" contains=ALL
|
||||
syn match cleanTuple "([^=]*,[^=]*)" contains=ALL
|
||||
|
||||
" To do some Comment Highlighting
|
||||
syn region cleanComment start="/\*" end="\*/" contains=cleanComment
|
||||
syn match cleanComment "//.*"
|
||||
syn region cleanComment start="/\*" end="\*/" contains=cleanComment,cleanTodo fold
|
||||
syn region cleanComment start="//.*" end="$" display contains=cleanTodo
|
||||
syn keyword cleanTodo TODO FIXME XXX contained
|
||||
|
||||
" Now for some useful type definition recognition
|
||||
syn match cleanFuncTypeDef "\([a-zA-Z].*\|(\=[-~@#$%^?!+*<>\/|&=:]\+)\=\)\s*\(infix[lr]\=\)\=\s*\d\=\s*::.*->.*" contains=cleanSpecial,cleanBasicType,cleanSpecialType,cleanKeyword
|
||||
|
||||
" Now for some useful typedefinitionrecognition
|
||||
syn match cleanFuncTypeDef "\([a-zA-Z].*\|(\=[-~@#$%^?!+*<>\/|&=:]\+)\=\)[ \t]*\(infix[lr]\=\)\=[ \t]*\d\=[ \t]*::.*->.*" contains=cleanSpecial
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
@@ -64,7 +65,6 @@ if version >= 508 || !exists("did_clean_syntax_init")
|
||||
" Comments
|
||||
HiLink cleanComment Comment
|
||||
" Constants and denotations
|
||||
HiLink cleanCharsDenot String
|
||||
HiLink cleanStringDenot String
|
||||
HiLink cleanCharDenot Character
|
||||
HiLink cleanIntegerDenot Number
|
||||
@@ -91,6 +91,7 @@ if version >= 508 || !exists("did_clean_syntax_init")
|
||||
HiLink cleanTuple Special
|
||||
" Error
|
||||
" Todo
|
||||
HiLink cleanTodo Todo
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -6,7 +6,7 @@
|
||||
" Nikolai Weibull (Add CSS2 support)
|
||||
" Maintainer: Jules Wang <w.jq0722@gmail.com>
|
||||
" URL: https://github.com/JulesWang/css.vim
|
||||
" Last Change: 2013 Jul 23
|
||||
" Last Change: 2013 Nov.27
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -37,12 +37,12 @@ syn keyword cssTagName link map menu meta noframes noscript ol optgroup
|
||||
syn keyword cssTagName option p param pre q s samp script select small
|
||||
syn keyword cssTagName span strike strong style sub sup table tbody td
|
||||
syn keyword cssTagName textarea tfoot th thead title tr tt ul u var
|
||||
syn keyword cssTagName object
|
||||
syn keyword cssTagName object svg
|
||||
|
||||
" HTML5 new tags 5*6=30
|
||||
syn keyword cssTagName article aside audio bdi canvas command
|
||||
syn keyword cssTagName datalist details embed figcaption figure footer
|
||||
syn keyword cssTagName header hgroup keygen mark meter nav
|
||||
" 34 HTML5 tags
|
||||
syn keyword cssTagName article aside audio bdi canvas command data
|
||||
syn keyword cssTagName datalist details dialog embed figcaption figure footer
|
||||
syn keyword cssTagName header hgroup keygen main mark menuitem meter nav
|
||||
syn keyword cssTagName output progress rt rp ruby section
|
||||
syn keyword cssTagName source summary time track video wbr
|
||||
|
||||
@@ -50,17 +50,16 @@ syn keyword cssTagName source summary time track video wbr
|
||||
syn keyword cssDeprecated acronym applet basefont big center dir
|
||||
syn keyword cssDeprecated font frame frameset noframes strike tt
|
||||
|
||||
"syn match cssTagName "\<table\>"
|
||||
syn match cssTagName "\*"
|
||||
|
||||
" selectors
|
||||
syn match cssSelectorOp "[,>+]"
|
||||
syn match cssSelectorOp "[,>+~]"
|
||||
syn match cssSelectorOp2 "[~|^$*]\?=" contained
|
||||
" FIXME: add HTML5 attribute
|
||||
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
|
||||
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
|
||||
|
||||
" .class and #id
|
||||
syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
|
||||
syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" contains=cssClassNameDot
|
||||
syn match cssClassNameDot contained '\.'
|
||||
|
||||
try
|
||||
syn match cssIdentifier "#[A-Za-z<>-<2D>_@][A-Za-z<>-<2D>0-9_@-]*"
|
||||
@@ -68,26 +67,60 @@ catch /^.*/
|
||||
syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
|
||||
endtry
|
||||
|
||||
syn match cssTagName "@page\>" nextgroup=cssDefinition
|
||||
" FIXME: use cssVendor here
|
||||
syn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition
|
||||
" digits
|
||||
syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
|
||||
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
|
||||
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)" contains=cssUnitDecorators
|
||||
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" contains=cssUnitDecorators
|
||||
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" contains=cssUnitDecorators
|
||||
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" contains=cssUnitDecorators
|
||||
|
||||
syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
|
||||
syn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
|
||||
"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
|
||||
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
|
||||
|
||||
syn match cssValueInteger contained "[-+]\=\d\+"
|
||||
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
|
||||
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)"
|
||||
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
|
||||
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
|
||||
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
|
||||
syn match cssIncludeKeyword /@\(-[a-z]+-\)\=\(media\|keyframes\|import\|charset\|namespace\|page\)/ contained
|
||||
" @media
|
||||
syn region cssInclude start=/@media\>/ end=/\ze{/ skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssIncludeKeyword,cssMediaComma,cssComment nextgroup=cssMediaBlock
|
||||
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained skipwhite skipnl
|
||||
syn keyword cssMediaKeyword only not and contained
|
||||
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssTagName,cssClassName,cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,cssAttributeSelector fold
|
||||
syn match cssMediaComma "," skipwhite skipnl contained
|
||||
|
||||
" Reference: http://www.w3.org/TR/css3-mediaqueries/
|
||||
syn keyword cssMediaProp contained width height orientation scan grid
|
||||
syn match cssMediaProp contained /\(\(device\)-\)\=aspect-ratio/
|
||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
|
||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
|
||||
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
|
||||
syn keyword cssMediaAttr contained portrait landscape progressive interlace
|
||||
|
||||
" @page
|
||||
" http://www.w3.org/TR/css3-page/
|
||||
syn match cssPage "@page\>[^{]*{\@=" contains=cssPagePseudo,cssIncludeKeyword nextgroup=cssPageWrap transparent skipwhite skipnl
|
||||
syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
|
||||
syn region cssPageWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssPageMargin,cssPageProp,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks
|
||||
syn match cssPageMargin /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition skipwhite skipnl
|
||||
syn keyword cssPageProp contained content size
|
||||
" http://www.w3.org/TR/CSS2/page.html#break-inside
|
||||
syn keyword cssPageProp contained orphans widows
|
||||
|
||||
" @keyframe
|
||||
" http://www.w3.org/TR/css3-animations/#keyframes
|
||||
syn match cssKeyFrame "@\(-[a-z]+-\)\=keyframes\>[^{]*{\@=" nextgroup=cssKeyFrameWrap contains=cssVendor,cssIncludeKeyword skipwhite skipnl transparent
|
||||
syn region cssKeyFrameWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector
|
||||
syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl nextgroup=cssDefinition
|
||||
|
||||
" @import
|
||||
syn region cssInclude start=/@import\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword,cssURL,cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType
|
||||
syn region cssInclude start=/@charset\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
|
||||
syn region cssInclude start=/@namespace\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
|
||||
|
||||
" @font-face
|
||||
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
|
||||
syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
|
||||
syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
|
||||
syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
|
||||
syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
|
||||
"syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
|
||||
"syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
|
||||
syn keyword cssFontDescriptorProp contained src
|
||||
syn match cssFontDescriptorProp contained "\<unicode-range\>"
|
||||
syn keyword cssFontDescriptorAttr contained all
|
||||
syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
|
||||
syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
|
||||
@@ -124,7 +157,7 @@ syn keyword cssColor contained slategray slategrey snow springgreen steelblue ta
|
||||
syn keyword cssColor contained thistle tomato turquoise violet wheat
|
||||
syn keyword cssColor contained whitesmoke yellowgreen
|
||||
|
||||
" FIXME: These are actually case-insentivie too, but (a) specs recommend using
|
||||
" FIXME: These are actually case-insensitive too, but (a) specs recommend using
|
||||
" mixed-case (b) it's hard to highlight the word `Background' correctly in
|
||||
" all situations
|
||||
syn case match
|
||||
@@ -135,50 +168,75 @@ syn match cssImportant contained "!\s*important\>"
|
||||
|
||||
syn match cssColor contained "\<transparent\>"
|
||||
syn match cssColor contained "\<white\>"
|
||||
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
|
||||
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
|
||||
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" contains=cssUnitDecorators
|
||||
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" contains=cssUnitDecorators
|
||||
|
||||
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y|\Z\)\=\|translate\(3d\|X\|Y|\Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y|\Z\)\=\|perspective\)\s*(" end=")" oneline keepend
|
||||
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline extend
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
|
||||
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y\|Z\)\=\|translate\(3d\|X\|Y\|Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y\|Z\)\=\|perspective\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
|
||||
syn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at
|
||||
syn match cssFunctionComma contained ","
|
||||
|
||||
" Prop and Attr
|
||||
" Reference: http://www.w3schools.com/cssref/default.asp
|
||||
syn keyword cssCommonAttr contained auto none inherit all
|
||||
syn keyword cssCommonAttr contained top bottom
|
||||
syn keyword cssCommonAttr contained medium normal
|
||||
" Common Prop and Attr
|
||||
syn keyword cssCommonAttr contained auto none inherit all default normal
|
||||
syn keyword cssCommonAttr contained top bottom center stretch hidden visible
|
||||
"------------------------------------------------
|
||||
" CSS Animations
|
||||
" http://www.w3.org/TR/css3-animations/
|
||||
syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\|iteration-count\)\)\=\>"
|
||||
|
||||
" animation-direction attributes
|
||||
syn keyword cssAnimationAttr contained alternate reverse
|
||||
syn match cssAnimationAttr contained "\<alternate-reverse\>"
|
||||
|
||||
syn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>"
|
||||
" animation-fill-mode attributes
|
||||
syn keyword cssAnimationAttr contained forwards backwards both
|
||||
|
||||
" animation-play-state attributes
|
||||
syn keyword cssAnimationAttr contained running paused
|
||||
"------------------------------------------------
|
||||
" CSS Backgrounds and Borders Module Level 3
|
||||
" http://www.w3.org/TR/css3-background/
|
||||
syn match cssBackgroundProp contained "\<background\(-\(attachment\|clip\|color\|image\|origin\|position\|repeat\|size\)\)\=\>"
|
||||
" background-attachment attributes
|
||||
syn keyword cssBackgroundAttr contained scroll fixed local
|
||||
|
||||
syn keyword cssAnimationAttr contained infinite alternate paused running
|
||||
" bugfix: escape linear-gradient
|
||||
syn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>"
|
||||
syn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
|
||||
" background-position attributes
|
||||
syn keyword cssBackgroundAttr contained left center right top bottom
|
||||
|
||||
syn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>"
|
||||
syn keyword cssBackgroundAttr contained center fixed over contain
|
||||
" background-repeat attributes
|
||||
syn match cssBackgroundAttr contained "\<no-repeat\>"
|
||||
syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
|
||||
syn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>"
|
||||
syn keyword cssBackgroundAttr contained space round
|
||||
|
||||
" background-size attributes
|
||||
syn keyword cssBackgroundAttr contained cover contain
|
||||
|
||||
syn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
|
||||
syn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
|
||||
syn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>"
|
||||
syn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
|
||||
syn match cssBorderOutlineProp contained "\<border-radius\>"
|
||||
syn keyword cssBorderOutlineAttr contained thin thick medium
|
||||
syn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset
|
||||
syn keyword cssBorderOutlineAttr contained hidden visible scroll collapse
|
||||
syn keyword cssBorderOutlineAttr contained stretch round
|
||||
syn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
|
||||
syn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>"
|
||||
syn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
|
||||
syn match cssBorderProp contained "\<box-decoration-break\>"
|
||||
syn match cssBorderProp contained "\<box-shadow\>"
|
||||
|
||||
" border-image attributes
|
||||
syn keyword cssBorderAttr contained stretch round space fill
|
||||
|
||||
" border-style attributes
|
||||
syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
|
||||
|
||||
" border-width attributes
|
||||
syn keyword cssBorderAttr contained thin thick medium
|
||||
|
||||
" box-decoration-break attributes
|
||||
syn keyword cssBorderAttr contained clone slice
|
||||
"------------------------------------------------
|
||||
|
||||
syn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
|
||||
syn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
|
||||
syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
|
||||
syn match cssBoxProp contained "\<rotation\(-point\)=\>"
|
||||
syn match cssBoxProp contained "\<rotation\(-point\)\=\>"
|
||||
syn keyword cssBoxAttr contained visible hidden scroll auto
|
||||
syn match cssBoxAttr contained "\<no-\(display\|content\)\>"
|
||||
|
||||
@@ -193,36 +251,70 @@ syn keyword cssDimensionProp contained width
|
||||
|
||||
" shadow and sizing are in other property groups
|
||||
syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
|
||||
syn keyword cssFlexibleBoxAttr contained start end center baseline stretch
|
||||
syn keyword cssFlexibleBoxAttr contained normal reverse
|
||||
syn keyword cssFlexibleBoxAttr contained start end baseline
|
||||
syn keyword cssFlexibleBoxAttr contained reverse
|
||||
syn keyword cssFlexibleBoxAttr contained single mulitple
|
||||
syn keyword cssFlexibleBoxAttr contained horizontal
|
||||
" bugfix: escape vertial-align
|
||||
syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>"
|
||||
syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>" "escape vertical-align
|
||||
syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
|
||||
|
||||
|
||||
syn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>"
|
||||
syn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
|
||||
syn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>"
|
||||
syn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
|
||||
" CSS Fonts Module Level 3
|
||||
" http://www.w3.org/TR/css-fonts-3/
|
||||
syn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\|language-override\|size\(-adjust\)\=\|stretch\|style\|synthesis\|variant\(-\(alternates\|caps\|east-asian\|ligatures\|numeric\|position\)\)\=\|weight\)\)\=\>"
|
||||
" font attributes
|
||||
syn keyword cssFontAttr contained icon menu caption
|
||||
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
|
||||
syn match cssFontAttr contained "\<message-box\>"
|
||||
syn match cssFontAttr contained "\<status-bar\>"
|
||||
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
|
||||
syn keyword cssFontAttr contained cursive fantasy monospace italic oblique
|
||||
syn keyword cssFontAttr contained bold bolder light lighter larger smaller
|
||||
syn keyword cssFontAttr contained icon menu caption
|
||||
syn keyword cssFontAttr contained large smaller larger narrower wider
|
||||
syn keyword cssFontAttr contained Courier Arial Georgia Times
|
||||
syn keyword cssFontAttr contained larger smaller
|
||||
syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
|
||||
|
||||
" font-family attributes
|
||||
syn match cssFontAttr contained "\<\(sans-\)\=serif\>"
|
||||
syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Unicode Verdana Webdings Wingdings York Zapf
|
||||
syn keyword cssFontAttr contained cursive fantasy monospace
|
||||
|
||||
" font-feature-settings attributes
|
||||
syn keyword cssFontAttr contained on off
|
||||
|
||||
" font-stretch attributes
|
||||
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
|
||||
|
||||
" font-style attributes
|
||||
syn keyword cssFontAttr contained italic oblique
|
||||
|
||||
" font-variant-caps attributes
|
||||
syn match cssFontAttr contained "\<\(all-\)\=\(small-\|petite-\|titling-\)caps\>"
|
||||
syn keyword cssFontAttr contained unicase
|
||||
|
||||
" font-weight attributes
|
||||
syn keyword cssFontAttr contained bold bolder lighter
|
||||
"------------------------------------------------
|
||||
|
||||
" Webkit specific property/attributes
|
||||
syn match cssFontProp contained "\<font-smooth\>"
|
||||
syn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>"
|
||||
|
||||
|
||||
syn keyword cssGeneratedContentProp contained content quotes crop
|
||||
" CSS Multi-column Layout Module
|
||||
" http://www.w3.org/TR/css3-multicol/
|
||||
syn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>"
|
||||
syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
|
||||
syn keyword cssMultiColumnProp contained columns
|
||||
syn keyword cssMultiColumnAttr contained balance medium
|
||||
syn keyword cssMultiColumnAttr contained always avoid left right page column
|
||||
syn match cssMultiColumnAttr contained "\<avoid-\(page\|column\)\>"
|
||||
|
||||
" http://www.w3.org/TR/css3-break/#page-break
|
||||
syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
|
||||
|
||||
" TODO find following items in w3c docs.
|
||||
syn keyword cssGeneratedContentProp contained quotes crop
|
||||
syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
|
||||
syn match cssGeneratedContentProp contained "\<move-to\>"
|
||||
syn match cssGeneratedContentProp contained "\<page-policy\>"
|
||||
syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
|
||||
|
||||
|
||||
syn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
|
||||
|
||||
syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
|
||||
@@ -234,26 +326,16 @@ syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic
|
||||
syn keyword cssListAttr contained disc circle square hebrew armenian georgian
|
||||
syn keyword cssListAttr contained inside outside
|
||||
|
||||
|
||||
syn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
|
||||
|
||||
syn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
|
||||
|
||||
|
||||
syn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
|
||||
|
||||
syn keyword cssPositioningProp contained bottom clear clip display float left
|
||||
syn keyword cssPositioningProp contained position right top visibility
|
||||
syn match cssPositioningProp contained "\<z-index\>"
|
||||
syn keyword cssPositioningAttr contained block inline compact
|
||||
syn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
|
||||
syn keyword cssPositioningAttr contained block compact
|
||||
syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
|
||||
syn keyword cssPositioningAttr contained left right both
|
||||
syn match cssPositioningAttr contained "\<list-item\>"
|
||||
syn match cssPositioningAttr contained "\<inline-\(block\|table\)\>"
|
||||
syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\)\)\=\>"
|
||||
syn keyword cssPositioningAttr contained static relative absolute fixed
|
||||
|
||||
syn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
|
||||
syn keyword cssPrintProp contained orphans widows
|
||||
syn keyword cssPrintAttr contained landscape portrait crop cross always avoid
|
||||
|
||||
syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
|
||||
@@ -262,18 +344,18 @@ syn keyword cssTableAttr contained fixed collapse separate show hide once always
|
||||
|
||||
syn keyword cssTextProp contained color direction
|
||||
syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
|
||||
syn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>"
|
||||
syn match cssTextProp contained "\<text-\(justify\|outline\|warp\|align-last\|size-adjust\|rendering\|stroke\|indent\)\>"
|
||||
syn match cssTextProp contained "\<word-\(break\|\wrap\)\>"
|
||||
syn match cssTextProp contained "\<white-space\>"
|
||||
syn match cssTextProp contained "\<hanging-punctuation\>"
|
||||
syn match cssTextProp contained "\<punctuation-trim\>"
|
||||
syn match cssTextAttr contained "\<line-through\>"
|
||||
syn match cssTextAttr contained "\<text-indent\>"
|
||||
syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
|
||||
syn keyword cssTextAttr contained ltr rtl embed nowrap
|
||||
syn keyword cssTextAttr contained underline overline blink sub super middle
|
||||
syn keyword cssTextAttr contained capitalize uppercase lowercase
|
||||
syn keyword cssTextAttr contained center justify baseline sub super
|
||||
syn keyword cssTextAttr contained justify baseline sub super
|
||||
syn keyword cssTextAttr contained optimizeLegibility optimizeSpeed
|
||||
syn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
|
||||
syn match cssTextAttr contained "\<\(allow\|force\)-end\>"
|
||||
syn keyword cssTextAttr contained start end adjacent
|
||||
@@ -283,22 +365,69 @@ syn keyword cssTextAttr contained clip ellipsis unrestricted suppress
|
||||
syn match cssTextAttr contained "\<break-all\>"
|
||||
syn match cssTextAttr contained "\<break-word\>"
|
||||
syn keyword cssTextAttr contained hyphenate
|
||||
|
||||
syn match cssTextAttr contained "\<bidi-override\>"
|
||||
|
||||
syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
|
||||
syn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
|
||||
syn match cssTransformProp contained "\<backface-visibility\>"
|
||||
|
||||
" CSS Transitions
|
||||
" http://www.w3.org/TR/css3-transitions/
|
||||
syn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
|
||||
|
||||
syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
|
||||
syn match cssUIProp contained "\<outline-offset\>"
|
||||
" transition-time-function attributes
|
||||
syn match cssTransitionAttr contained "\<linear\(-gradient\)\@!\>"
|
||||
syn match cssTransitionAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
|
||||
syn match cssTransitionAttr contained "\<step\(-start\|-end\)\=\>"
|
||||
"------------------------------------------------
|
||||
" CSS Basic User Interface Module Level 3 (CSS3 UI)
|
||||
" http://www.w3.org/TR/css3-ui/
|
||||
syn match cssUIProp contained "\<box-sizing\>"
|
||||
syn keyword cssUIProp contained appearance icon resize
|
||||
syn keyword cssUIAttr contained window button menu field
|
||||
syn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>"
|
||||
|
||||
syn keyword cssUIProp contained cursor
|
||||
syn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>"
|
||||
syn keyword cssUIAttr contained crosshair help move pointer alias copy
|
||||
syn keyword cssUIAttr contained progress wait text cell move
|
||||
syn match cssUIAttr contained "\<context-menu\>"
|
||||
syn match cssUIAttr contained "\<no-drop\>"
|
||||
syn match cssUIAttr contained "\<not-allowed\>"
|
||||
syn match cssUIAttr contained "\<all-scroll\>"
|
||||
syn match cssUIAttr contained "\<\(vertical-\)\=text\>"
|
||||
syn match cssUIAttr contained "\<zoom\(-in\|-out\)\=\>"
|
||||
|
||||
syn match cssUIProp contained "\<ime-mode\>"
|
||||
syn keyword cssUIAttr contained active inactive disabled
|
||||
|
||||
syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
|
||||
syn match cssUIProp contained "\<outline\(-\(width\|style\|color\|offset\)\)\=\>"
|
||||
syn keyword cssUIAttr contained invert
|
||||
|
||||
syn keyword cssUIProp contained icon resize
|
||||
syn keyword cssUIAttr contained both horizontal vertical
|
||||
|
||||
syn match cssUIProp contained "\<text-overflow\>"
|
||||
syn keyword cssUIAttr contained clip ellipsis
|
||||
|
||||
" Already highlighted Props: font content
|
||||
"------------------------------------------------
|
||||
" Webkit/iOS specific attributes
|
||||
syn match cssUIAttr contained '\(preserve-3d\)'
|
||||
" IE specific attributes
|
||||
syn match cssIEUIAttr contained '\(bicubic\)'
|
||||
|
||||
" Webkit/iOS specific properties
|
||||
syn match cssUIProp contained '\(tap-highlight-color\|user-select\|touch-callout\)'
|
||||
" IE specific properties
|
||||
syn match cssIEUIProp contained '\(interpolation-mode\|zoom\|filter\)'
|
||||
|
||||
" Webkit/Firebox specific properties/attributes
|
||||
syn keyword cssUIProp contained appearance
|
||||
syn keyword cssUIAttr contained window button field icon document menu
|
||||
|
||||
|
||||
syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
|
||||
syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>"
|
||||
syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>"
|
||||
syn keyword cssAuralProp contained volume during azimuth elevation stress richness
|
||||
syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
|
||||
syn keyword cssAuralAttr contained silent
|
||||
@@ -307,58 +436,69 @@ syn keyword cssAuralAttr contained non mix
|
||||
syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
|
||||
syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
|
||||
syn keyword cssAuralAttr contained leftwards rightwards behind
|
||||
syn keyword cssAuralAttr contained below level above higher
|
||||
syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
|
||||
syn keyword cssAuralAttr contained below level above lower higher
|
||||
syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>"
|
||||
syn keyword cssAuralAttr contained faster slower
|
||||
syn keyword cssAuralAttr contained male female child code digits continuous
|
||||
syn match cssAuralAttr contained "\<lower\>"
|
||||
|
||||
" cursor
|
||||
syn keyword cssUIProp contained cursor
|
||||
syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
|
||||
syn keyword cssUIAttr contained crosshair default help move pointer
|
||||
syn keyword cssUIAttr contained progress wait
|
||||
|
||||
" FIXME: I could not find them in reference
|
||||
syn keyword cssUIAttr contained invert maker size zoom
|
||||
syn match cssRenderAttr contained "\<run-in\>"
|
||||
syn match cssRenderAttr contained "\<text-rendering\>"
|
||||
syn match cssRenderAttr contained "\<font-smoothing\>"
|
||||
syn match cssRenderProp contained "\<marker-offset\>"
|
||||
syn match cssRenderAttr contained "\<bidi-override\>"
|
||||
" mobile text
|
||||
syn match cssMobileTextProp contained "\<text-size-adjust\>"
|
||||
|
||||
|
||||
|
||||
" FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
|
||||
syn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
|
||||
syn match cssBraces contained "[{}]"
|
||||
syn match cssError contained "{@<>"
|
||||
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition
|
||||
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks keepend fold
|
||||
syn match cssBraceError "}"
|
||||
syn match cssAttrComma ","
|
||||
|
||||
" Pseudo class
|
||||
syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape
|
||||
syn keyword cssPseudoClassId link visited active hover focus before after left right lang
|
||||
syn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
|
||||
" FIXME: handle functions.
|
||||
"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")"
|
||||
syn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>"
|
||||
syn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>"
|
||||
syn keyword cssPseudoClassId root empty target enable disabled checked not invalid
|
||||
syn match cssPseudoClassId contained "::\(-moz-\)\=selection"
|
||||
" http://www.w3.org/TR/css3-selectors/
|
||||
syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
|
||||
syn keyword cssPseudoClassId contained link visited active hover before after left right
|
||||
syn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
|
||||
syn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
|
||||
syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
|
||||
syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")"
|
||||
" ------------------------------------
|
||||
" Vendor specific properties
|
||||
syn match cssPseudoClassId contained "\<selection\>"
|
||||
syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
|
||||
syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
|
||||
|
||||
|
||||
" Comment
|
||||
syn region cssComment start="/\*" end="\*/" contains=@Spell
|
||||
syn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell
|
||||
syn region cssComment start="/\*" end="\*/" contains=@Spell fold
|
||||
|
||||
syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
|
||||
syn match cssSpecialCharQQ +\\"+ contained
|
||||
syn match cssSpecialCharQ +\\'+ contained
|
||||
syn match cssSpecialCharQQ +\\\\\|\\"+ contained
|
||||
syn match cssSpecialCharQ +\\\\\|\\'+ contained
|
||||
syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
|
||||
syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
|
||||
|
||||
" Vendor Prefix
|
||||
syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
|
||||
|
||||
" Various CSS Hack characters
|
||||
" In earlier versions of IE (6 and 7), one can prefix property names
|
||||
" with a _ or * to isolate those definitions to particular versions of IE
|
||||
" This is purely decorative and therefore we assign to the same highlight
|
||||
" group to cssVendor, for more information:
|
||||
" http://www.paulirish.com/2009/browser-specific-css-hacks/
|
||||
syn match cssHacks contained /\(_\|*\)/
|
||||
|
||||
" Misc highlight groups
|
||||
syntax match cssUnitDecorators /\(#\|-\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
|
||||
syntax match cssNoise contained /\(:\|;\|\/\)/
|
||||
|
||||
" Attr Enhance
|
||||
" Some keywords are both Prop and Attr, so we have to handle them
|
||||
syn region cssAttrRegion start=/:/ end=/;/ contained keepend contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
|
||||
|
||||
" Hack for transition
|
||||
" The 'transition' Prop has Props after ':'.
|
||||
syn region cssAttrRegion start=/transition\s*:/ end=/;/ contained keepend contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
|
||||
|
||||
|
||||
if main_syntax == "css"
|
||||
syn sync minlines=10
|
||||
@@ -377,73 +517,76 @@ if version >= 508 || !exists("did_css_syn_inits")
|
||||
|
||||
HiLink cssComment Comment
|
||||
HiLink cssVendor Comment
|
||||
HiLink cssHacks Comment
|
||||
HiLink cssTagName Statement
|
||||
HiLink cssDeprecated Error
|
||||
HiLink cssSelectorOp Special
|
||||
HiLink cssSelectorOp2 Special
|
||||
HiLink cssAttrComma Special
|
||||
|
||||
HiLink cssAnimationProp StorageClass
|
||||
HiLink cssBackgroundProp StorageClass
|
||||
HiLink cssBorderOutlineProp StorageClass
|
||||
HiLink cssBoxProp StorageClass
|
||||
HiLink cssColorProp StorageClass
|
||||
HiLink cssContentForPagedMediaProp StorageClass
|
||||
HiLink cssDimensionProp StorageClass
|
||||
HiLink cssFlexibleBoxProp StorageClass
|
||||
HiLink cssFontProp StorageClass
|
||||
HiLink cssGeneratedContentProp StorageClass
|
||||
HiLink cssGridProp StorageClass
|
||||
HiLink cssHyerlinkProp StorageClass
|
||||
HiLink cssLineboxProp StorageClass
|
||||
HiLink cssListProp StorageClass
|
||||
HiLink cssMarginProp StorageClass
|
||||
HiLink cssMarqueeProp StorageClass
|
||||
HiLink cssMultiColumnProp StorageClass
|
||||
HiLink cssPaddingProp StorageClass
|
||||
HiLink cssPagedMediaProp StorageClass
|
||||
HiLink cssPositioningProp StorageClass
|
||||
HiLink cssPrintProp StorageClass
|
||||
HiLink cssRubyProp StorageClass
|
||||
HiLink cssSpeechProp StorageClass
|
||||
HiLink cssTableProp StorageClass
|
||||
HiLink cssTextProp StorageClass
|
||||
HiLink cssTransformProp StorageClass
|
||||
HiLink cssTransitionProp StorageClass
|
||||
HiLink cssUIProp StorageClass
|
||||
HiLink cssAuralProp StorageClass
|
||||
HiLink cssRenderProp StorageClass
|
||||
HiLink cssAnimationProp cssProp
|
||||
HiLink cssBackgroundProp cssProp
|
||||
HiLink cssBorderProp cssProp
|
||||
HiLink cssBoxProp cssProp
|
||||
HiLink cssColorProp cssProp
|
||||
HiLink cssContentForPagedMediaProp cssProp
|
||||
HiLink cssDimensionProp cssProp
|
||||
HiLink cssFlexibleBoxProp cssProp
|
||||
HiLink cssFontProp cssProp
|
||||
HiLink cssGeneratedContentProp cssProp
|
||||
HiLink cssGridProp cssProp
|
||||
HiLink cssHyerlinkProp cssProp
|
||||
HiLink cssLineboxProp cssProp
|
||||
HiLink cssListProp cssProp
|
||||
HiLink cssMarqueeProp cssProp
|
||||
HiLink cssMultiColumnProp cssProp
|
||||
HiLink cssPagedMediaProp cssProp
|
||||
HiLink cssPositioningProp cssProp
|
||||
HiLink cssPrintProp cssProp
|
||||
HiLink cssRubyProp cssProp
|
||||
HiLink cssSpeechProp cssProp
|
||||
HiLink cssTableProp cssProp
|
||||
HiLink cssTextProp cssProp
|
||||
HiLink cssTransformProp cssProp
|
||||
HiLink cssTransitionProp cssProp
|
||||
HiLink cssUIProp cssProp
|
||||
HiLink cssIEUIProp cssProp
|
||||
HiLink cssAuralProp cssProp
|
||||
HiLink cssRenderProp cssProp
|
||||
HiLink cssMobileTextProp cssProp
|
||||
|
||||
HiLink cssAnimationAttr Type
|
||||
HiLink cssBackgroundAttr Type
|
||||
HiLink cssBorderOutlineAttr Type
|
||||
HiLink cssBoxAttr Type
|
||||
HiLink cssColorAttr Type
|
||||
HiLink cssContentForPagedMediaAttr Type
|
||||
HiLink cssDimensionAttr Type
|
||||
HiLink cssFlexibleBoxAttr Type
|
||||
HiLink cssFontAttr Type
|
||||
HiLink cssGeneratedContentAttr Type
|
||||
HiLink cssGridAttr Type
|
||||
HiLink cssHyerlinkAttr Type
|
||||
HiLink cssLineboxAttr Type
|
||||
HiLink cssListAttr Type
|
||||
HiLink cssMarginAttr Type
|
||||
HiLink cssMarqueeAttr Type
|
||||
HiLink cssMultiColumnAttr Type
|
||||
HiLink cssPaddingAttr Type
|
||||
HiLink cssPagedMediaAttr Type
|
||||
HiLink cssPositioningAttr Type
|
||||
HiLink cssPrintAttr Type
|
||||
HiLink cssRubyAttr Type
|
||||
HiLink cssSpeechAttr Type
|
||||
HiLink cssTableAttr Type
|
||||
HiLink cssTextAttr Type
|
||||
HiLink cssTransformAttr Type
|
||||
HiLink cssTransitionAttr Type
|
||||
HiLink cssUIAttr Type
|
||||
HiLink cssAuralAttr Type
|
||||
HiLink cssRenderAttr Type
|
||||
HiLink cssCommonAttr Type
|
||||
HiLink cssAnimationAttr cssAttr
|
||||
HiLink cssBackgroundAttr cssAttr
|
||||
HiLink cssBorderAttr cssAttr
|
||||
HiLink cssBoxAttr cssAttr
|
||||
HiLink cssContentForPagedMediaAttr cssAttr
|
||||
HiLink cssDimensionAttr cssAttr
|
||||
HiLink cssFlexibleBoxAttr cssAttr
|
||||
HiLink cssFontAttr cssAttr
|
||||
HiLink cssGeneratedContentAttr cssAttr
|
||||
HiLink cssGridAttr cssAttr
|
||||
HiLink cssHyerlinkAttr cssAttr
|
||||
HiLink cssLineboxAttr cssAttr
|
||||
HiLink cssListAttr cssAttr
|
||||
HiLink cssMarginAttr cssAttr
|
||||
HiLink cssMarqueeAttr cssAttr
|
||||
HiLink cssMultiColumnAttr cssAttr
|
||||
HiLink cssPaddingAttr cssAttr
|
||||
HiLink cssPagedMediaAttr cssAttr
|
||||
HiLink cssPositioningAttr cssAttr
|
||||
HiLink cssGradientAttr cssAttr
|
||||
HiLink cssPrintAttr cssAttr
|
||||
HiLink cssRubyAttr cssAttr
|
||||
HiLink cssSpeechAttr cssAttr
|
||||
HiLink cssTableAttr cssAttr
|
||||
HiLink cssTextAttr cssAttr
|
||||
HiLink cssTransformAttr cssAttr
|
||||
HiLink cssTransitionAttr cssAttr
|
||||
HiLink cssUIAttr cssAttr
|
||||
HiLink cssIEUIAttr cssAttr
|
||||
HiLink cssAuralAttr cssAttr
|
||||
HiLink cssRenderAttr cssAttr
|
||||
HiLink cssCommonAttr cssAttr
|
||||
|
||||
HiLink cssPseudoClassId PreProc
|
||||
HiLink cssPseudoClassLang Constant
|
||||
@@ -456,26 +599,43 @@ if version >= 508 || !exists("did_css_syn_inits")
|
||||
HiLink cssFunction Constant
|
||||
HiLink cssURL String
|
||||
HiLink cssFunctionName Function
|
||||
HiLink cssFunctionComma Function
|
||||
HiLink cssColor Constant
|
||||
HiLink cssIdentifier Function
|
||||
HiLink cssInclude Include
|
||||
HiLink cssIncludeKeyword atKeyword
|
||||
HiLink cssImportant Special
|
||||
HiLink cssBraces Function
|
||||
HiLink cssBraceError Error
|
||||
HiLink cssError Error
|
||||
HiLink cssInclude Include
|
||||
HiLink cssUnicodeEscape Special
|
||||
HiLink cssStringQQ String
|
||||
HiLink cssStringQ String
|
||||
HiLink cssMedia Special
|
||||
HiLink cssAttributeSelector String
|
||||
HiLink cssMedia atKeyword
|
||||
HiLink cssMediaType Special
|
||||
HiLink cssMediaComma Normal
|
||||
HiLink cssMediaKeyword Statement
|
||||
HiLink cssMediaProp cssProp
|
||||
HiLink cssMediaAttr cssAttr
|
||||
HiLink cssPage atKeyword
|
||||
HiLink cssPagePseudo PreProc
|
||||
HiLink cssPageMargin atKeyword
|
||||
HiLink cssPageProp cssProp
|
||||
HiLink cssKeyFrame atKeyword
|
||||
HiLink cssKeyFrameSelector Constant
|
||||
HiLink cssFontDescriptor Special
|
||||
HiLink cssFontDescriptorFunction Constant
|
||||
HiLink cssFontDescriptorProp StorageClass
|
||||
HiLink cssFontDescriptorAttr Type
|
||||
HiLink cssFontDescriptorProp cssProp
|
||||
HiLink cssFontDescriptorAttr cssAttr
|
||||
HiLink cssUnicodeRange Constant
|
||||
HiLink cssClassName Function
|
||||
HiLink cssClassNameDot Function
|
||||
HiLink cssProp StorageClass
|
||||
HiLink cssAttr Constant
|
||||
HiLink cssUnitDecorators Number
|
||||
HiLink cssNoise Noise
|
||||
HiLink atKeyword Comment
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
"
|
||||
" Language: D
|
||||
" Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
|
||||
" Last Change: 2013 May 21
|
||||
" Version: 0.25
|
||||
" Last Change: 2013 October 5
|
||||
" Version: 0.26
|
||||
"
|
||||
" Contributors:
|
||||
" - Jason Mills: original Maintainer
|
||||
@@ -158,7 +158,7 @@ syn match dStatement "\<__traits\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=
|
||||
|
||||
" Pragma Statement
|
||||
syn match dPragma "\<pragma\>"
|
||||
syn match dPragma "\<pragma\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dPragmaIdentifier
|
||||
syn match dPragma "\<pragma\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+6 contains=dPragmaIdentifier
|
||||
|
||||
" Necessary to highlight C++ in extern modifiers.
|
||||
syn match dExternIdentifier "C\(++\)\?" contained
|
||||
@@ -168,16 +168,18 @@ syn match dExternal "\<extern\>"
|
||||
syn match dExtern "\<extern\s*([_a-zA-Z][_a-zA-Z0-9\+]*\>"he=s+6 contains=dExternIdentifier
|
||||
|
||||
" Make import a region to prevent highlighting keywords
|
||||
syn region dImport start="import" end=";" contains=dExternal,@dComment
|
||||
syn region dImport start="import\_s" end=";" contains=dExternal,@dComment
|
||||
|
||||
" Make module a region to prevent highlighting keywords
|
||||
syn region dImport start="module" end=";" contains=dExternal,@dComment
|
||||
syn region dImport start="module\_s" end=";" contains=dExternal,@dComment
|
||||
|
||||
" dTokens is used by the token string highlighting
|
||||
syn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean
|
||||
syn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload
|
||||
syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement
|
||||
syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation,dEnum
|
||||
syn cluster dTokens add=dParenString,dBrackString,dAngleString,dCurlyString
|
||||
syn cluster dTokens add=dTokenString,dDelimString,dHereString
|
||||
|
||||
" Create a match for parameter lists to identify storage class
|
||||
syn region paramlist start="(" end=")" contains=@dTokens
|
||||
@@ -192,6 +194,9 @@ syn cluster dTokens add=dUserLabel,dLabel
|
||||
|
||||
" Comments
|
||||
"
|
||||
syn match dCommentError display "\*/"
|
||||
syn match dNestedCommentError display "+/"
|
||||
|
||||
syn keyword dTodo contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX
|
||||
syn match dCommentStar contained "^\s*\*[^/]"me=e-1
|
||||
syn match dCommentStar contained "^\s*\*$"
|
||||
@@ -201,15 +206,12 @@ if exists("d_comment_strings")
|
||||
syn region dBlockCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=dCommentStar,dUnicode,dEscSequence,@Spell
|
||||
syn region dNestedCommentString contained start=+"+ end=+"+ end="+"me=s-1,he=s-1 contains=dCommentPlus,dUnicode,dEscSequence,@Spell
|
||||
syn region dLineCommentString contained start=+"+ end=+$\|"+ contains=dUnicode,dEscSequence,@Spell
|
||||
syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,@Spell fold
|
||||
syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell fold
|
||||
syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell
|
||||
else
|
||||
syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,@Spell fold
|
||||
syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell fold
|
||||
syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell
|
||||
endif
|
||||
|
||||
syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,dCommentStartError,@Spell fold
|
||||
syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell fold
|
||||
syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell
|
||||
|
||||
hi link dLineCommentString dBlockCommentString
|
||||
hi link dBlockCommentString dString
|
||||
hi link dNestedCommentString dString
|
||||
@@ -249,7 +251,7 @@ syn region dRawString start=+`+ end=+`[cwd]\=+ contains=@Spell
|
||||
syn region dRawString start=+r"+ end=+"[cwd]\=+ contains=@Spell
|
||||
syn region dHexString start=+x"+ end=+"[cwd]\=+ contains=@Spell
|
||||
syn region dDelimString start=+q"\z(.\)+ end=+\z1"+ contains=@Spell
|
||||
syn region dHereString start=+q"\z(\I\i*\)\n+ end=+\n\z1"+ contains=@Spell
|
||||
syn region dHereString start=+q"\z(\I\i*\)\n+ end=+^\z1"+ contains=@Spell
|
||||
|
||||
" Nesting delimited string contents
|
||||
"
|
||||
@@ -368,6 +370,9 @@ hi def link dType Type
|
||||
hi def link dLineComment Comment
|
||||
hi def link dBlockComment Comment
|
||||
hi def link dNestedComment Comment
|
||||
hi def link dCommentError Error
|
||||
hi def link dNestedCommentError Error
|
||||
hi def link dCommentStartError Error
|
||||
hi def link dExternal Include
|
||||
hi def link dAnnotation PreProc
|
||||
hi def link dSharpBang PreProc
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Diff (context or unified)
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Translations by Jakson Alves de Aquino.
|
||||
" Last Change: 2013 Jul 24
|
||||
" Last Change: 2013 Oct 06
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -336,7 +336,7 @@ syn match diffLine "^---$"
|
||||
"Some versions of diff have lines like "#c#" and "#d#" (where # is a number)
|
||||
syn match diffLine "^\d\+\(,\d\+\)\=[cda]\d\+\>.*"
|
||||
|
||||
syn match diffFile "^diff.*"
|
||||
syn match diffFile "^diff\>.*"
|
||||
syn match diffFile "^+++ .*"
|
||||
syn match diffFile "^Index: .*"
|
||||
syn match diffFile "^==== .*"
|
||||
|
||||
@@ -1,751 +1,213 @@
|
||||
" Vim syntax file
|
||||
" Language: dircolors(1) input file
|
||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2012-04-25
|
||||
" Language: dircolors(1) input file
|
||||
" Maintainer: Jan Larres <jan@majutsushi.net>
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2013-08-17
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn keyword dircolorsTodo contained FIXME TODO XXX NOTE
|
||||
syntax keyword dircolorsTodo FIXME TODO XXX NOTE contained
|
||||
|
||||
syn region dircolorsComment start='#' end='$' contains=dircolorsTodo,@Spell
|
||||
syntax region dircolorsComment start='#' end='$' contains=dircolorsTodo,@Spell
|
||||
|
||||
syn keyword dircolorsKeyword TERM LEFT LEFTCODE RIGHT RIGHTCODE END ENDCODE
|
||||
syntax keyword dircolorsKeyword TERM LEFT LEFTCODE RIGHT RIGHTCODE END ENDCODE
|
||||
|
||||
syn keyword dircolorsKeyword NORMAL NORM FILE DIR LNK LINK SYMLINK ORPHAN
|
||||
\ RESET MULTIHARDLINK CAPABILITY SETUID SETGID
|
||||
\ STICKY STICKY_OTHER_WRITABLE OTHER_WRITABLE
|
||||
\ MISSING FIFO PIPE SOCK BLK BLOCK CHR CHAR
|
||||
\ DOOR EXEC
|
||||
\ nextgroup=@dircolorsColors skipwhite
|
||||
syntax keyword dircolorsKeyword NORMAL NORM FILE RESET DIR LNK LINK SYMLINK
|
||||
\ MULTIHARDLINK FIFO SOCK DOOR BLK CHR ORPHAN
|
||||
\ MISSING PIPE BLOCK CHR EXEC SETUID SETGID
|
||||
\ CAPABILITY STICKY_OTHER_WRITABLE
|
||||
\ OTHER_WRITABLE STICKY
|
||||
|
||||
if exists("dircolors_is_slackware")
|
||||
syn keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT
|
||||
" Slackware only, ignored by GNU dircolors.
|
||||
syntax keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT
|
||||
|
||||
syntax match dircolorsExtension '^\s*\zs[.*]\S\+'
|
||||
|
||||
syntax match dircolorsEscape '\\[abefnrtv?_\\^#]'
|
||||
syntax match dircolorsEscape '\\[0-9]\{3}'
|
||||
syntax match dircolorsEscape '\\x[0-9a-f]\{3}'
|
||||
|
||||
if !has('gui_running') && &t_Co == ''
|
||||
syntax match dircolorsNumber '\<\d\+\>'
|
||||
highlight default link dircolorsNumber Number
|
||||
endif
|
||||
|
||||
syn match dircolorsExtension '^\s*\zs[.*]\S\+'
|
||||
\ nextgroup=dircolorsColorPair skipwhite
|
||||
highlight default link dircolorsTodo Todo
|
||||
highlight default link dircolorsComment Comment
|
||||
highlight default link dircolorsKeyword Keyword
|
||||
highlight default link dircolorsExtension Identifier
|
||||
highlight default link dircolorsEscape Special
|
||||
|
||||
syn match dircolorsColorPair contained '.*$'
|
||||
\ transparent contains=@dircolorsColors
|
||||
function! s:set_guicolors() abort
|
||||
let s:guicolors = {}
|
||||
|
||||
if &t_Co == 8 || &t_Co == 16
|
||||
syn cluster dircolorsColors contains=dircolorsBold,dircolorsUnderline,
|
||||
\ dircolorsBlink,dircolorsReverse,
|
||||
\ dircolorsInvisible,dircolorsBlack,
|
||||
\ dircolorsRed,dircolorsGreen,dircolorsYellow,
|
||||
\ dircolorsBlue,dircolorsMagenta,dircolorsCyan,
|
||||
\ dircolorsWhite,dircolorsBGBlack,
|
||||
\ dircolorsBGRed,dircolorsBGGreen,
|
||||
\ dircolorsBGYellow,dircolorsBGBlue,
|
||||
\ dircolorsBGMagenta,dircolorsBGCyan,
|
||||
\ dircolorsBGWhite
|
||||
let s:guicolors[0] = "Black"
|
||||
let s:guicolors[1] = "DarkRed"
|
||||
let s:guicolors[2] = "DarkGreen"
|
||||
let s:guicolors[3] = "DarkYellow"
|
||||
let s:guicolors[4] = "DarkBlue"
|
||||
let s:guicolors[5] = "DarkMagenta"
|
||||
let s:guicolors[6] = "DarkCyan"
|
||||
let s:guicolors[7] = "Gray"
|
||||
let s:guicolors[8] = "DarkGray"
|
||||
let s:guicolors[9] = "Red"
|
||||
let s:guicolors[10] = "Green"
|
||||
let s:guicolors[11] = "Yellow"
|
||||
let s:guicolors[12] = "Blue"
|
||||
let s:guicolors[13] = "Magenta"
|
||||
let s:guicolors[14] = "Cyan"
|
||||
let s:guicolors[15] = "White"
|
||||
|
||||
syn match dircolorsBold contained '\<0\=1\>'
|
||||
syn match dircolorsUnderline contained '\<0\=4\>'
|
||||
syn match dircolorsBlink contained '\<0\=5\>'
|
||||
syn match dircolorsReverse contained '\<0\=7\>'
|
||||
syn match dircolorsInvisible contained '\<0\=8\>'
|
||||
syn match dircolorsBlack contained '\<30\>'
|
||||
syn match dircolorsRed contained '\<31\>'
|
||||
syn match dircolorsGreen contained '\<32\>'
|
||||
syn match dircolorsYellow contained '\<33\>'
|
||||
syn match dircolorsBlue contained '\<34\>'
|
||||
syn match dircolorsMagenta contained '\<35\>'
|
||||
syn match dircolorsCyan contained '\<36\>'
|
||||
syn match dircolorsWhite contained '\<37\>'
|
||||
syn match dircolorsBGBlack contained '\<40\>'
|
||||
syn match dircolorsBGRed contained '\<41\>'
|
||||
syn match dircolorsBGGreen contained '\<42\>'
|
||||
syn match dircolorsBGYellow contained '\<43\>'
|
||||
syn match dircolorsBGBlue contained '\<44\>'
|
||||
syn match dircolorsBGMagenta contained '\<45\>'
|
||||
syn match dircolorsBGCyan contained '\<46\>'
|
||||
syn match dircolorsBGWhite contained '\<47\>'
|
||||
elseif &t_Co == 256 || has("gui_running")
|
||||
syn cluster dircolorsColors contains=dircolorsColor0,
|
||||
\ dircolorsColor1,dircolorsColor2,
|
||||
\ dircolorsColor3,dircolorsColor4,
|
||||
\ dircolorsColor5,dircolorsColor6,
|
||||
\ dircolorsColor7,dircolorsColor8,
|
||||
\ dircolorsColor9,dircolorsColor10,
|
||||
\ dircolorsColor11,dircolorsColor12,
|
||||
\ dircolorsColor13,dircolorsColor14,
|
||||
\ dircolorsColor15,dircolorsColor16,
|
||||
\ dircolorsColor17,dircolorsColor18,
|
||||
\ dircolorsColor19,dircolorsColor20,
|
||||
\ dircolorsColor21,dircolorsColor22,
|
||||
\ dircolorsColor23,dircolorsColor24,
|
||||
\ dircolorsColor25,dircolorsColor26,
|
||||
\ dircolorsColor27,dircolorsColor28,
|
||||
\ dircolorsColor29,dircolorsColor30,
|
||||
\ dircolorsColor31,dircolorsColor32,
|
||||
\ dircolorsColor33,dircolorsColor34,
|
||||
\ dircolorsColor35,dircolorsColor36,
|
||||
\ dircolorsColor37,dircolorsColor38,
|
||||
\ dircolorsColor39,dircolorsColor40,
|
||||
\ dircolorsColor41,dircolorsColor42,
|
||||
\ dircolorsColor43,dircolorsColor44,
|
||||
\ dircolorsColor45,dircolorsColor46,
|
||||
\ dircolorsColor47,dircolorsColor48,
|
||||
\ dircolorsColor49,dircolorsColor50,
|
||||
\ dircolorsColor51,dircolorsColor52,
|
||||
\ dircolorsColor53,dircolorsColor54,
|
||||
\ dircolorsColor55,dircolorsColor56,
|
||||
\ dircolorsColor57,dircolorsColor58,
|
||||
\ dircolorsColor59,dircolorsColor60,
|
||||
\ dircolorsColor61,dircolorsColor62,
|
||||
\ dircolorsColor63,dircolorsColor64,
|
||||
\ dircolorsColor65,dircolorsColor66,
|
||||
\ dircolorsColor67,dircolorsColor68,
|
||||
\ dircolorsColor69,dircolorsColor70,
|
||||
\ dircolorsColor71,dircolorsColor72,
|
||||
\ dircolorsColor73,dircolorsColor74,
|
||||
\ dircolorsColor75,dircolorsColor76,
|
||||
\ dircolorsColor77,dircolorsColor78,
|
||||
\ dircolorsColor79,dircolorsColor80,
|
||||
\ dircolorsColor81,dircolorsColor82,
|
||||
\ dircolorsColor83,dircolorsColor84,
|
||||
\ dircolorsColor85,dircolorsColor86,
|
||||
\ dircolorsColor87,dircolorsColor88,
|
||||
\ dircolorsColor89,dircolorsColor90,
|
||||
\ dircolorsColor91,dircolorsColor92,
|
||||
\ dircolorsColor93,dircolorsColor94,
|
||||
\ dircolorsColor95,dircolorsColor96,
|
||||
\ dircolorsColor97,dircolorsColor98,
|
||||
\ dircolorsColor99,dircolorsColor100,
|
||||
\ dircolorsColor101,dircolorsColor102,
|
||||
\ dircolorsColor103,dircolorsColor104,
|
||||
\ dircolorsColor105,dircolorsColor106,
|
||||
\ dircolorsColor107,dircolorsColor108,
|
||||
\ dircolorsColor109,dircolorsColor110,
|
||||
\ dircolorsColor111,dircolorsColor112,
|
||||
\ dircolorsColor113,dircolorsColor114,
|
||||
\ dircolorsColor115,dircolorsColor116,
|
||||
\ dircolorsColor117,dircolorsColor118,
|
||||
\ dircolorsColor119,dircolorsColor120,
|
||||
\ dircolorsColor121,dircolorsColor122,
|
||||
\ dircolorsColor123,dircolorsColor124,
|
||||
\ dircolorsColor125,dircolorsColor126,
|
||||
\ dircolorsColor127,dircolorsColor128,
|
||||
\ dircolorsColor129,dircolorsColor130,
|
||||
\ dircolorsColor131,dircolorsColor132,
|
||||
\ dircolorsColor133,dircolorsColor134,
|
||||
\ dircolorsColor135,dircolorsColor136,
|
||||
\ dircolorsColor137,dircolorsColor138,
|
||||
\ dircolorsColor139,dircolorsColor140,
|
||||
\ dircolorsColor141,dircolorsColor142,
|
||||
\ dircolorsColor143,dircolorsColor144,
|
||||
\ dircolorsColor145,dircolorsColor146,
|
||||
\ dircolorsColor147,dircolorsColor148,
|
||||
\ dircolorsColor149,dircolorsColor150,
|
||||
\ dircolorsColor151,dircolorsColor152,
|
||||
\ dircolorsColor153,dircolorsColor154,
|
||||
\ dircolorsColor155,dircolorsColor156,
|
||||
\ dircolorsColor157,dircolorsColor158,
|
||||
\ dircolorsColor159,dircolorsColor160,
|
||||
\ dircolorsColor161,dircolorsColor162,
|
||||
\ dircolorsColor163,dircolorsColor164,
|
||||
\ dircolorsColor165,dircolorsColor166,
|
||||
\ dircolorsColor167,dircolorsColor168,
|
||||
\ dircolorsColor169,dircolorsColor170,
|
||||
\ dircolorsColor171,dircolorsColor172,
|
||||
\ dircolorsColor173,dircolorsColor174,
|
||||
\ dircolorsColor175,dircolorsColor176,
|
||||
\ dircolorsColor177,dircolorsColor178,
|
||||
\ dircolorsColor179,dircolorsColor180,
|
||||
\ dircolorsColor181,dircolorsColor182,
|
||||
\ dircolorsColor183,dircolorsColor184,
|
||||
\ dircolorsColor185,dircolorsColor186,
|
||||
\ dircolorsColor187,dircolorsColor188,
|
||||
\ dircolorsColor189,dircolorsColor190,
|
||||
\ dircolorsColor191,dircolorsColor192,
|
||||
\ dircolorsColor193,dircolorsColor194,
|
||||
\ dircolorsColor195,dircolorsColor196,
|
||||
\ dircolorsColor197,dircolorsColor198,
|
||||
\ dircolorsColor199,dircolorsColor200,
|
||||
\ dircolorsColor201,dircolorsColor202,
|
||||
\ dircolorsColor203,dircolorsColor204,
|
||||
\ dircolorsColor205,dircolorsColor206,
|
||||
\ dircolorsColor207,dircolorsColor208,
|
||||
\ dircolorsColor209,dircolorsColor210,
|
||||
\ dircolorsColor211,dircolorsColor212,
|
||||
\ dircolorsColor213,dircolorsColor214,
|
||||
\ dircolorsColor215,dircolorsColor216,
|
||||
\ dircolorsColor217,dircolorsColor218,
|
||||
\ dircolorsColor219,dircolorsColor220,
|
||||
\ dircolorsColor221,dircolorsColor222,
|
||||
\ dircolorsColor223,dircolorsColor224,
|
||||
\ dircolorsColor225,dircolorsColor226,
|
||||
\ dircolorsColor227,dircolorsColor228,
|
||||
\ dircolorsColor229,dircolorsColor230,
|
||||
\ dircolorsColor231,dircolorsColor232,
|
||||
\ dircolorsColor233,dircolorsColor234,
|
||||
\ dircolorsColor235,dircolorsColor236,
|
||||
\ dircolorsColor237,dircolorsColor238,
|
||||
\ dircolorsColor239,dircolorsColor240,
|
||||
\ dircolorsColor241,dircolorsColor242,
|
||||
\ dircolorsColor243,dircolorsColor244,
|
||||
\ dircolorsColor245,dircolorsColor246,
|
||||
\ dircolorsColor247,dircolorsColor248,
|
||||
\ dircolorsColor249,dircolorsColor250,
|
||||
\ dircolorsColor251,dircolorsColor252,
|
||||
\ dircolorsColor253,dircolorsColor254,
|
||||
\ dircolorsColor255
|
||||
let xterm_palette = ["00", "5f", "87", "af", "d7", "ff"]
|
||||
|
||||
syn match dircolorsColor0 contained '\<0\=0\>'
|
||||
syn match dircolorsColor1 contained '\<0\=1\>'
|
||||
syn match dircolorsColor2 contained '\<0\=2\>'
|
||||
syn match dircolorsColor3 contained '\<0\=3\>'
|
||||
syn match dircolorsColor4 contained '\<0\=4\>'
|
||||
syn match dircolorsColor5 contained '\<0\=5\>'
|
||||
syn match dircolorsColor6 contained '\<0\=6\>'
|
||||
syn match dircolorsColor7 contained '\<0\=7\>'
|
||||
syn match dircolorsColor8 contained '\<0\=8\>'
|
||||
syn match dircolorsColor9 contained '\<0\=9\>'
|
||||
syn match dircolorsColor10 contained '\<10\>'
|
||||
syn match dircolorsColor11 contained '\<11\>'
|
||||
syn match dircolorsColor12 contained '\<12\>'
|
||||
syn match dircolorsColor13 contained '\<13\>'
|
||||
syn match dircolorsColor14 contained '\<14\>'
|
||||
syn match dircolorsColor15 contained '\<15\>'
|
||||
syn match dircolorsColor16 contained '\<16\>'
|
||||
syn match dircolorsColor17 contained '\<17\>'
|
||||
syn match dircolorsColor18 contained '\<18\>'
|
||||
syn match dircolorsColor19 contained '\<19\>'
|
||||
syn match dircolorsColor20 contained '\<20\>'
|
||||
syn match dircolorsColor21 contained '\<21\>'
|
||||
syn match dircolorsColor22 contained '\<22\>'
|
||||
syn match dircolorsColor23 contained '\<23\>'
|
||||
syn match dircolorsColor24 contained '\<24\>'
|
||||
syn match dircolorsColor25 contained '\<25\>'
|
||||
syn match dircolorsColor26 contained '\<26\>'
|
||||
syn match dircolorsColor27 contained '\<27\>'
|
||||
syn match dircolorsColor28 contained '\<28\>'
|
||||
syn match dircolorsColor29 contained '\<29\>'
|
||||
syn match dircolorsColor30 contained '\<30\>'
|
||||
syn match dircolorsColor31 contained '\<31\>'
|
||||
syn match dircolorsColor32 contained '\<32\>'
|
||||
syn match dircolorsColor33 contained '\<33\>'
|
||||
syn match dircolorsColor34 contained '\<34\>'
|
||||
syn match dircolorsColor35 contained '\<35\>'
|
||||
syn match dircolorsColor36 contained '\<36\>'
|
||||
syn match dircolorsColor37 contained '\<37\>'
|
||||
syn match dircolorsColor38 contained '\<38\>'
|
||||
syn match dircolorsColor39 contained '\<39\>'
|
||||
syn match dircolorsColor40 contained '\<40\>'
|
||||
syn match dircolorsColor41 contained '\<41\>'
|
||||
syn match dircolorsColor42 contained '\<42\>'
|
||||
syn match dircolorsColor43 contained '\<43\>'
|
||||
syn match dircolorsColor44 contained '\<44\>'
|
||||
syn match dircolorsColor45 contained '\<45\>'
|
||||
syn match dircolorsColor46 contained '\<46\>'
|
||||
syn match dircolorsColor47 contained '\<47\>'
|
||||
syn match dircolorsColor48 contained '\<48\>'
|
||||
syn match dircolorsColor49 contained '\<49\>'
|
||||
syn match dircolorsColor50 contained '\<50\>'
|
||||
syn match dircolorsColor51 contained '\<51\>'
|
||||
syn match dircolorsColor52 contained '\<52\>'
|
||||
syn match dircolorsColor53 contained '\<53\>'
|
||||
syn match dircolorsColor54 contained '\<54\>'
|
||||
syn match dircolorsColor55 contained '\<55\>'
|
||||
syn match dircolorsColor56 contained '\<56\>'
|
||||
syn match dircolorsColor57 contained '\<57\>'
|
||||
syn match dircolorsColor58 contained '\<58\>'
|
||||
syn match dircolorsColor59 contained '\<59\>'
|
||||
syn match dircolorsColor60 contained '\<60\>'
|
||||
syn match dircolorsColor61 contained '\<61\>'
|
||||
syn match dircolorsColor62 contained '\<62\>'
|
||||
syn match dircolorsColor63 contained '\<63\>'
|
||||
syn match dircolorsColor64 contained '\<64\>'
|
||||
syn match dircolorsColor65 contained '\<65\>'
|
||||
syn match dircolorsColor66 contained '\<66\>'
|
||||
syn match dircolorsColor67 contained '\<67\>'
|
||||
syn match dircolorsColor68 contained '\<68\>'
|
||||
syn match dircolorsColor69 contained '\<69\>'
|
||||
syn match dircolorsColor70 contained '\<70\>'
|
||||
syn match dircolorsColor71 contained '\<71\>'
|
||||
syn match dircolorsColor72 contained '\<72\>'
|
||||
syn match dircolorsColor73 contained '\<73\>'
|
||||
syn match dircolorsColor74 contained '\<74\>'
|
||||
syn match dircolorsColor75 contained '\<75\>'
|
||||
syn match dircolorsColor76 contained '\<76\>'
|
||||
syn match dircolorsColor77 contained '\<77\>'
|
||||
syn match dircolorsColor78 contained '\<78\>'
|
||||
syn match dircolorsColor79 contained '\<79\>'
|
||||
syn match dircolorsColor80 contained '\<80\>'
|
||||
syn match dircolorsColor81 contained '\<81\>'
|
||||
syn match dircolorsColor82 contained '\<82\>'
|
||||
syn match dircolorsColor83 contained '\<83\>'
|
||||
syn match dircolorsColor84 contained '\<84\>'
|
||||
syn match dircolorsColor85 contained '\<85\>'
|
||||
syn match dircolorsColor86 contained '\<86\>'
|
||||
syn match dircolorsColor87 contained '\<87\>'
|
||||
syn match dircolorsColor88 contained '\<88\>'
|
||||
syn match dircolorsColor89 contained '\<89\>'
|
||||
syn match dircolorsColor90 contained '\<90\>'
|
||||
syn match dircolorsColor91 contained '\<91\>'
|
||||
syn match dircolorsColor92 contained '\<92\>'
|
||||
syn match dircolorsColor93 contained '\<93\>'
|
||||
syn match dircolorsColor94 contained '\<94\>'
|
||||
syn match dircolorsColor95 contained '\<95\>'
|
||||
syn match dircolorsColor96 contained '\<96\>'
|
||||
syn match dircolorsColor97 contained '\<97\>'
|
||||
syn match dircolorsColor98 contained '\<98\>'
|
||||
syn match dircolorsColor99 contained '\<99\>'
|
||||
syn match dircolorsColor100 contained '\<100\>'
|
||||
syn match dircolorsColor101 contained '\<101\>'
|
||||
syn match dircolorsColor102 contained '\<102\>'
|
||||
syn match dircolorsColor103 contained '\<103\>'
|
||||
syn match dircolorsColor104 contained '\<104\>'
|
||||
syn match dircolorsColor105 contained '\<105\>'
|
||||
syn match dircolorsColor106 contained '\<106\>'
|
||||
syn match dircolorsColor107 contained '\<107\>'
|
||||
syn match dircolorsColor108 contained '\<108\>'
|
||||
syn match dircolorsColor109 contained '\<109\>'
|
||||
syn match dircolorsColor110 contained '\<110\>'
|
||||
syn match dircolorsColor111 contained '\<111\>'
|
||||
syn match dircolorsColor112 contained '\<112\>'
|
||||
syn match dircolorsColor113 contained '\<113\>'
|
||||
syn match dircolorsColor114 contained '\<114\>'
|
||||
syn match dircolorsColor115 contained '\<115\>'
|
||||
syn match dircolorsColor116 contained '\<116\>'
|
||||
syn match dircolorsColor117 contained '\<117\>'
|
||||
syn match dircolorsColor118 contained '\<118\>'
|
||||
syn match dircolorsColor119 contained '\<119\>'
|
||||
syn match dircolorsColor120 contained '\<120\>'
|
||||
syn match dircolorsColor121 contained '\<121\>'
|
||||
syn match dircolorsColor122 contained '\<122\>'
|
||||
syn match dircolorsColor123 contained '\<123\>'
|
||||
syn match dircolorsColor124 contained '\<124\>'
|
||||
syn match dircolorsColor125 contained '\<125\>'
|
||||
syn match dircolorsColor126 contained '\<126\>'
|
||||
syn match dircolorsColor127 contained '\<127\>'
|
||||
syn match dircolorsColor128 contained '\<128\>'
|
||||
syn match dircolorsColor129 contained '\<129\>'
|
||||
syn match dircolorsColor130 contained '\<130\>'
|
||||
syn match dircolorsColor131 contained '\<131\>'
|
||||
syn match dircolorsColor132 contained '\<132\>'
|
||||
syn match dircolorsColor133 contained '\<133\>'
|
||||
syn match dircolorsColor134 contained '\<134\>'
|
||||
syn match dircolorsColor135 contained '\<135\>'
|
||||
syn match dircolorsColor136 contained '\<136\>'
|
||||
syn match dircolorsColor137 contained '\<137\>'
|
||||
syn match dircolorsColor138 contained '\<138\>'
|
||||
syn match dircolorsColor139 contained '\<139\>'
|
||||
syn match dircolorsColor140 contained '\<140\>'
|
||||
syn match dircolorsColor141 contained '\<141\>'
|
||||
syn match dircolorsColor142 contained '\<142\>'
|
||||
syn match dircolorsColor143 contained '\<143\>'
|
||||
syn match dircolorsColor144 contained '\<144\>'
|
||||
syn match dircolorsColor145 contained '\<145\>'
|
||||
syn match dircolorsColor146 contained '\<146\>'
|
||||
syn match dircolorsColor147 contained '\<147\>'
|
||||
syn match dircolorsColor148 contained '\<148\>'
|
||||
syn match dircolorsColor149 contained '\<149\>'
|
||||
syn match dircolorsColor150 contained '\<150\>'
|
||||
syn match dircolorsColor151 contained '\<151\>'
|
||||
syn match dircolorsColor152 contained '\<152\>'
|
||||
syn match dircolorsColor153 contained '\<153\>'
|
||||
syn match dircolorsColor154 contained '\<154\>'
|
||||
syn match dircolorsColor155 contained '\<155\>'
|
||||
syn match dircolorsColor156 contained '\<156\>'
|
||||
syn match dircolorsColor157 contained '\<157\>'
|
||||
syn match dircolorsColor158 contained '\<158\>'
|
||||
syn match dircolorsColor159 contained '\<159\>'
|
||||
syn match dircolorsColor160 contained '\<160\>'
|
||||
syn match dircolorsColor161 contained '\<161\>'
|
||||
syn match dircolorsColor162 contained '\<162\>'
|
||||
syn match dircolorsColor163 contained '\<163\>'
|
||||
syn match dircolorsColor164 contained '\<164\>'
|
||||
syn match dircolorsColor165 contained '\<165\>'
|
||||
syn match dircolorsColor166 contained '\<166\>'
|
||||
syn match dircolorsColor167 contained '\<167\>'
|
||||
syn match dircolorsColor168 contained '\<168\>'
|
||||
syn match dircolorsColor169 contained '\<169\>'
|
||||
syn match dircolorsColor170 contained '\<170\>'
|
||||
syn match dircolorsColor171 contained '\<171\>'
|
||||
syn match dircolorsColor172 contained '\<172\>'
|
||||
syn match dircolorsColor173 contained '\<173\>'
|
||||
syn match dircolorsColor174 contained '\<174\>'
|
||||
syn match dircolorsColor175 contained '\<175\>'
|
||||
syn match dircolorsColor176 contained '\<176\>'
|
||||
syn match dircolorsColor177 contained '\<177\>'
|
||||
syn match dircolorsColor178 contained '\<178\>'
|
||||
syn match dircolorsColor179 contained '\<179\>'
|
||||
syn match dircolorsColor180 contained '\<180\>'
|
||||
syn match dircolorsColor181 contained '\<181\>'
|
||||
syn match dircolorsColor182 contained '\<182\>'
|
||||
syn match dircolorsColor183 contained '\<183\>'
|
||||
syn match dircolorsColor184 contained '\<184\>'
|
||||
syn match dircolorsColor185 contained '\<185\>'
|
||||
syn match dircolorsColor186 contained '\<186\>'
|
||||
syn match dircolorsColor187 contained '\<187\>'
|
||||
syn match dircolorsColor188 contained '\<188\>'
|
||||
syn match dircolorsColor189 contained '\<189\>'
|
||||
syn match dircolorsColor190 contained '\<190\>'
|
||||
syn match dircolorsColor191 contained '\<191\>'
|
||||
syn match dircolorsColor192 contained '\<192\>'
|
||||
syn match dircolorsColor193 contained '\<193\>'
|
||||
syn match dircolorsColor194 contained '\<194\>'
|
||||
syn match dircolorsColor195 contained '\<195\>'
|
||||
syn match dircolorsColor196 contained '\<196\>'
|
||||
syn match dircolorsColor197 contained '\<197\>'
|
||||
syn match dircolorsColor198 contained '\<198\>'
|
||||
syn match dircolorsColor199 contained '\<199\>'
|
||||
syn match dircolorsColor200 contained '\<200\>'
|
||||
syn match dircolorsColor201 contained '\<201\>'
|
||||
syn match dircolorsColor202 contained '\<202\>'
|
||||
syn match dircolorsColor203 contained '\<203\>'
|
||||
syn match dircolorsColor204 contained '\<204\>'
|
||||
syn match dircolorsColor205 contained '\<205\>'
|
||||
syn match dircolorsColor206 contained '\<206\>'
|
||||
syn match dircolorsColor207 contained '\<207\>'
|
||||
syn match dircolorsColor208 contained '\<208\>'
|
||||
syn match dircolorsColor209 contained '\<209\>'
|
||||
syn match dircolorsColor210 contained '\<210\>'
|
||||
syn match dircolorsColor211 contained '\<211\>'
|
||||
syn match dircolorsColor212 contained '\<212\>'
|
||||
syn match dircolorsColor213 contained '\<213\>'
|
||||
syn match dircolorsColor214 contained '\<214\>'
|
||||
syn match dircolorsColor215 contained '\<215\>'
|
||||
syn match dircolorsColor216 contained '\<216\>'
|
||||
syn match dircolorsColor217 contained '\<217\>'
|
||||
syn match dircolorsColor218 contained '\<218\>'
|
||||
syn match dircolorsColor219 contained '\<219\>'
|
||||
syn match dircolorsColor220 contained '\<220\>'
|
||||
syn match dircolorsColor221 contained '\<221\>'
|
||||
syn match dircolorsColor222 contained '\<222\>'
|
||||
syn match dircolorsColor223 contained '\<223\>'
|
||||
syn match dircolorsColor224 contained '\<224\>'
|
||||
syn match dircolorsColor225 contained '\<225\>'
|
||||
syn match dircolorsColor226 contained '\<226\>'
|
||||
syn match dircolorsColor227 contained '\<227\>'
|
||||
syn match dircolorsColor228 contained '\<228\>'
|
||||
syn match dircolorsColor229 contained '\<229\>'
|
||||
syn match dircolorsColor230 contained '\<230\>'
|
||||
syn match dircolorsColor231 contained '\<231\>'
|
||||
syn match dircolorsColor232 contained '\<232\>'
|
||||
syn match dircolorsColor233 contained '\<233\>'
|
||||
syn match dircolorsColor234 contained '\<234\>'
|
||||
syn match dircolorsColor235 contained '\<235\>'
|
||||
syn match dircolorsColor236 contained '\<236\>'
|
||||
syn match dircolorsColor237 contained '\<237\>'
|
||||
syn match dircolorsColor238 contained '\<238\>'
|
||||
syn match dircolorsColor239 contained '\<239\>'
|
||||
syn match dircolorsColor240 contained '\<240\>'
|
||||
syn match dircolorsColor241 contained '\<241\>'
|
||||
syn match dircolorsColor242 contained '\<242\>'
|
||||
syn match dircolorsColor243 contained '\<243\>'
|
||||
syn match dircolorsColor244 contained '\<244\>'
|
||||
syn match dircolorsColor245 contained '\<245\>'
|
||||
syn match dircolorsColor246 contained '\<246\>'
|
||||
syn match dircolorsColor247 contained '\<247\>'
|
||||
syn match dircolorsColor248 contained '\<248\>'
|
||||
syn match dircolorsColor249 contained '\<249\>'
|
||||
syn match dircolorsColor250 contained '\<250\>'
|
||||
syn match dircolorsColor251 contained '\<251\>'
|
||||
syn match dircolorsColor252 contained '\<252\>'
|
||||
syn match dircolorsColor253 contained '\<253\>'
|
||||
syn match dircolorsColor254 contained '\<254\>'
|
||||
syn match dircolorsColor255 contained '\<255\>'
|
||||
else
|
||||
syn cluster dircolorsColors contains=dircolorsNumber
|
||||
syn match dircolorsNumber '\<\d\+\>'
|
||||
let cur_col = 16
|
||||
|
||||
for r in xterm_palette
|
||||
for g in xterm_palette
|
||||
for b in xterm_palette
|
||||
let s:guicolors[cur_col] = '#' . r . g . b
|
||||
let cur_col += 1
|
||||
endfor
|
||||
endfor
|
||||
endfor
|
||||
|
||||
for i in range(24)
|
||||
let g = i * 0xa + 8
|
||||
let s:guicolors[i + 232] = '#' . g . g . g
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! s:get_hi_str(color, place) abort
|
||||
if a:color >= 0 && a:color <= 255
|
||||
if has('gui_running')
|
||||
return ' gui' . a:place . '=' . s:guicolors[a:color]
|
||||
elseif a:color <= 7 || &t_Co == 256 || &t_Co == 88
|
||||
return ' cterm' . a:place . '=' . a:color
|
||||
endif
|
||||
endif
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function! s:get_256color(colors) abort
|
||||
if len(a:colors) >= 2 " May be fewer while editing
|
||||
let [_five, color] = remove(a:colors, 0, 1)
|
||||
if _five != '5' || color == ''
|
||||
return -1
|
||||
else
|
||||
return str2nr(color)
|
||||
endif
|
||||
else
|
||||
return -1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:preview_color(linenr) abort
|
||||
let line = getline(a:linenr)
|
||||
let defline = matchlist(line, '^\v([A-Z_]+|[*.]\S+)\s+([0-9;]+)')
|
||||
if empty(defline)
|
||||
return
|
||||
endif
|
||||
|
||||
let colordef = defline[2]
|
||||
|
||||
let colors = split(colordef, ';')
|
||||
|
||||
let hi_str = ''
|
||||
let hi_attrs = []
|
||||
while len(colors) > 0
|
||||
let item = str2nr(remove(colors, 0))
|
||||
if item == 1
|
||||
call add(hi_attrs, 'bold')
|
||||
elseif item == 3
|
||||
call add(hi_attrs, 'italic')
|
||||
elseif item == 4
|
||||
call add(hi_attrs, 'underline')
|
||||
elseif item == 7
|
||||
call add(hi_attrs, 'inverse')
|
||||
elseif item >= 30 && item <= 37
|
||||
" ANSI SGR foreground color
|
||||
let hi_str .= s:get_hi_str(item - 30, 'fg')
|
||||
elseif item >= 40 && item <= 47
|
||||
" ANSI SGR background color
|
||||
let hi_str .= s:get_hi_str(item - 40, 'bg')
|
||||
elseif item == 38
|
||||
" Foreground for terminals with 88/256 color support
|
||||
let color = s:get_256color(colors)
|
||||
if color == -1
|
||||
break
|
||||
endif
|
||||
let hi_str .= s:get_hi_str(color, 'fg')
|
||||
elseif item == 48
|
||||
" Background for terminals with 88/256 color support
|
||||
let color = s:get_256color(colors)
|
||||
if color == -1
|
||||
break
|
||||
endif
|
||||
let hi_str .= s:get_hi_str(color, 'bg')
|
||||
endif
|
||||
endwhile
|
||||
|
||||
if hi_str == '' && empty(hi_attrs)
|
||||
return
|
||||
endif
|
||||
|
||||
" Check whether we have already defined this color
|
||||
redir => s:currentmatch
|
||||
silent! execute 'syntax list'
|
||||
redir END
|
||||
|
||||
if s:currentmatch !~# '\/\\_s\\zs' . colordef . '\\ze\\_s\/'
|
||||
" Append the buffer number to avoid problems with other dircolors
|
||||
" buffers interfering
|
||||
let bufnr = bufnr('%')
|
||||
execute 'syntax match dircolorsColor' . b:dc_next_index . '_' . bufnr .
|
||||
\ ' "\_s\zs' . colordef . '\ze\_s"'
|
||||
let hi_attrs_str = ''
|
||||
if !empty(hi_attrs)
|
||||
if has('gui_running')
|
||||
let hi_attrs_str = ' gui=' . join(hi_attrs, ',')
|
||||
else
|
||||
let hi_attrs_str = ' cterm=' . join(hi_attrs, ',')
|
||||
endif
|
||||
endif
|
||||
execute 'highlight default dircolorsColor' . b:dc_next_index . '_' .
|
||||
\ bufnr . hi_str . hi_attrs_str
|
||||
let b:dc_next_index += 1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Avoid accumulating too many definitions while editing
|
||||
function! s:reset_colors() abort
|
||||
if b:dc_next_index > 0
|
||||
let bufnr = bufnr('%')
|
||||
for i in range(b:dc_next_index)
|
||||
execute 'syntax clear dircolorsColor' . i . '_' . bufnr
|
||||
execute 'highlight clear dircolorsColor' . i . '_' . bufnr
|
||||
endfor
|
||||
let b:dc_next_index = 0
|
||||
endif
|
||||
|
||||
for linenr in range(1, line('$'))
|
||||
call s:preview_color(linenr)
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
let b:dc_next_index = 0
|
||||
|
||||
if has('gui_running')
|
||||
call s:set_guicolors()
|
||||
endif
|
||||
|
||||
hi def link dircolorsTodo Todo
|
||||
hi def link dircolorsComment Comment
|
||||
hi def link dircolorsKeyword Keyword
|
||||
hi def link dircolorsExtension Keyword
|
||||
if has('gui_running') || &t_Co != ''
|
||||
call s:reset_colors()
|
||||
|
||||
if &t_Co == 8 || &t_Co == 16
|
||||
hi def dircolorsBold term=bold cterm=bold gui=bold
|
||||
hi def dircolorsUnderline term=underline cterm=underline gui=underline
|
||||
hi def link dircolorsBlink Normal
|
||||
hi def dircolorsReverse term=reverse cterm=reverse gui=reverse
|
||||
hi def link dircolorsInvisible Ignore
|
||||
hi def dircolorsBlack ctermfg=Black guifg=Black
|
||||
hi def dircolorsRed ctermfg=Red guifg=Red
|
||||
hi def dircolorsGreen ctermfg=Green guifg=Green
|
||||
hi def dircolorsYellow ctermfg=Yellow guifg=Yellow
|
||||
hi def dircolorsBlue ctermfg=Blue guifg=Blue
|
||||
hi def dircolorsMagenta ctermfg=Magenta guifg=Magenta
|
||||
hi def dircolorsCyan ctermfg=Cyan guifg=Cyan
|
||||
hi def dircolorsWhite ctermfg=White guifg=White
|
||||
hi def dircolorsBGBlack ctermbg=Black ctermfg=White
|
||||
\ guibg=Black guifg=White
|
||||
hi def dircolorsBGRed ctermbg=DarkRed guibg=DarkRed
|
||||
hi def dircolorsBGGreen ctermbg=DarkGreen guibg=DarkGreen
|
||||
hi def dircolorsBGYellow ctermbg=DarkYellow guibg=DarkYellow
|
||||
hi def dircolorsBGBlue ctermbg=DarkBlue guibg=DarkBlue
|
||||
hi def dircolorsBGMagenta ctermbg=DarkMagenta guibg=DarkMagenta
|
||||
hi def dircolorsBGCyan ctermbg=DarkCyan guibg=DarkCyan
|
||||
hi def dircolorsBGWhite ctermbg=White ctermfg=Black
|
||||
\ guibg=White guifg=Black
|
||||
elseif &t_Co == 256 || has("gui_running")
|
||||
hi def dircolorsColor0 ctermfg=0 guifg=Black
|
||||
hi def dircolorsColor1 ctermfg=1 guifg=DarkRed
|
||||
hi def dircolorsColor2 ctermfg=2 guifg=DarkGreen
|
||||
hi def dircolorsColor3 ctermfg=3 guifg=DarkYellow
|
||||
hi def dircolorsColor4 ctermfg=4 guifg=DarkBlue
|
||||
hi def dircolorsColor5 ctermfg=5 guifg=DarkMagenta
|
||||
hi def dircolorsColor6 ctermfg=6 guifg=DarkCyan
|
||||
hi def dircolorsColor7 ctermfg=7 guifg=Gray
|
||||
hi def dircolorsColor8 ctermfg=8 guifg=DarkGray
|
||||
hi def dircolorsColor9 ctermfg=9 guifg=Red
|
||||
hi def dircolorsColor10 ctermfg=10 guifg=Green
|
||||
hi def dircolorsColor11 ctermfg=11 guifg=Yellow
|
||||
hi def dircolorsColor12 ctermfg=12 guifg=Blue
|
||||
hi def dircolorsColor13 ctermfg=13 guifg=Magenta
|
||||
hi def dircolorsColor14 ctermfg=14 guifg=Cyan
|
||||
hi def dircolorsColor15 ctermfg=15 guifg=White
|
||||
hi def dircolorsColor16 ctermfg=16 guifg=#000000
|
||||
hi def dircolorsColor17 ctermfg=17 guifg=#00005f
|
||||
hi def dircolorsColor18 ctermfg=18 guifg=#000087
|
||||
hi def dircolorsColor19 ctermfg=19 guifg=#0000af
|
||||
hi def dircolorsColor20 ctermfg=20 guifg=#0000d7
|
||||
hi def dircolorsColor21 ctermfg=21 guifg=#0000ff
|
||||
hi def dircolorsColor22 ctermfg=22 guifg=#005f00
|
||||
hi def dircolorsColor23 ctermfg=23 guifg=#005f5f
|
||||
hi def dircolorsColor24 ctermfg=24 guifg=#005f87
|
||||
hi def dircolorsColor25 ctermfg=25 guifg=#005faf
|
||||
hi def dircolorsColor26 ctermfg=26 guifg=#005fd7
|
||||
hi def dircolorsColor27 ctermfg=27 guifg=#005fff
|
||||
hi def dircolorsColor28 ctermfg=28 guifg=#008700
|
||||
hi def dircolorsColor29 ctermfg=29 guifg=#00875f
|
||||
hi def dircolorsColor30 ctermfg=30 guifg=#008787
|
||||
hi def dircolorsColor31 ctermfg=31 guifg=#0087af
|
||||
hi def dircolorsColor32 ctermfg=32 guifg=#0087d7
|
||||
hi def dircolorsColor33 ctermfg=33 guifg=#0087ff
|
||||
hi def dircolorsColor34 ctermfg=34 guifg=#00af00
|
||||
hi def dircolorsColor35 ctermfg=35 guifg=#00af5f
|
||||
hi def dircolorsColor36 ctermfg=36 guifg=#00af87
|
||||
hi def dircolorsColor37 ctermfg=37 guifg=#00afaf
|
||||
hi def dircolorsColor38 ctermfg=38 guifg=#00afd7
|
||||
hi def dircolorsColor39 ctermfg=39 guifg=#00afff
|
||||
hi def dircolorsColor40 ctermfg=40 guifg=#00d700
|
||||
hi def dircolorsColor41 ctermfg=41 guifg=#00d75f
|
||||
hi def dircolorsColor42 ctermfg=42 guifg=#00d787
|
||||
hi def dircolorsColor43 ctermfg=43 guifg=#00d7af
|
||||
hi def dircolorsColor44 ctermfg=44 guifg=#00d7d7
|
||||
hi def dircolorsColor45 ctermfg=45 guifg=#00d7ff
|
||||
hi def dircolorsColor46 ctermfg=46 guifg=#00ff00
|
||||
hi def dircolorsColor47 ctermfg=47 guifg=#00ff5f
|
||||
hi def dircolorsColor48 ctermfg=48 guifg=#00ff87
|
||||
hi def dircolorsColor49 ctermfg=49 guifg=#00ffaf
|
||||
hi def dircolorsColor50 ctermfg=50 guifg=#00ffd7
|
||||
hi def dircolorsColor51 ctermfg=51 guifg=#00ffff
|
||||
hi def dircolorsColor52 ctermfg=52 guifg=#5f0000
|
||||
hi def dircolorsColor53 ctermfg=53 guifg=#5f005f
|
||||
hi def dircolorsColor54 ctermfg=54 guifg=#5f0087
|
||||
hi def dircolorsColor55 ctermfg=55 guifg=#5f00af
|
||||
hi def dircolorsColor56 ctermfg=56 guifg=#5f00d7
|
||||
hi def dircolorsColor57 ctermfg=57 guifg=#5f00ff
|
||||
hi def dircolorsColor58 ctermfg=58 guifg=#5f5f00
|
||||
hi def dircolorsColor59 ctermfg=59 guifg=#5f5f5f
|
||||
hi def dircolorsColor60 ctermfg=60 guifg=#5f5f87
|
||||
hi def dircolorsColor61 ctermfg=61 guifg=#5f5faf
|
||||
hi def dircolorsColor62 ctermfg=62 guifg=#5f5fd7
|
||||
hi def dircolorsColor63 ctermfg=63 guifg=#5f5fff
|
||||
hi def dircolorsColor64 ctermfg=64 guifg=#5f8700
|
||||
hi def dircolorsColor65 ctermfg=65 guifg=#5f875f
|
||||
hi def dircolorsColor66 ctermfg=66 guifg=#5f8787
|
||||
hi def dircolorsColor67 ctermfg=67 guifg=#5f87af
|
||||
hi def dircolorsColor68 ctermfg=68 guifg=#5f87d7
|
||||
hi def dircolorsColor69 ctermfg=69 guifg=#5f87ff
|
||||
hi def dircolorsColor70 ctermfg=70 guifg=#5faf00
|
||||
hi def dircolorsColor71 ctermfg=71 guifg=#5faf5f
|
||||
hi def dircolorsColor72 ctermfg=72 guifg=#5faf87
|
||||
hi def dircolorsColor73 ctermfg=73 guifg=#5fafaf
|
||||
hi def dircolorsColor74 ctermfg=74 guifg=#5fafd7
|
||||
hi def dircolorsColor75 ctermfg=75 guifg=#5fafff
|
||||
hi def dircolorsColor76 ctermfg=76 guifg=#5fd700
|
||||
hi def dircolorsColor77 ctermfg=77 guifg=#5fd75f
|
||||
hi def dircolorsColor78 ctermfg=78 guifg=#5fd787
|
||||
hi def dircolorsColor79 ctermfg=79 guifg=#5fd7af
|
||||
hi def dircolorsColor80 ctermfg=80 guifg=#5fd7d7
|
||||
hi def dircolorsColor81 ctermfg=81 guifg=#5fd7ff
|
||||
hi def dircolorsColor82 ctermfg=82 guifg=#5fff00
|
||||
hi def dircolorsColor83 ctermfg=83 guifg=#5fff5f
|
||||
hi def dircolorsColor84 ctermfg=84 guifg=#5fff87
|
||||
hi def dircolorsColor85 ctermfg=85 guifg=#5fffaf
|
||||
hi def dircolorsColor86 ctermfg=86 guifg=#5fffd7
|
||||
hi def dircolorsColor87 ctermfg=87 guifg=#5fffff
|
||||
hi def dircolorsColor88 ctermfg=88 guifg=#870000
|
||||
hi def dircolorsColor89 ctermfg=89 guifg=#87005f
|
||||
hi def dircolorsColor90 ctermfg=90 guifg=#870087
|
||||
hi def dircolorsColor91 ctermfg=91 guifg=#8700af
|
||||
hi def dircolorsColor92 ctermfg=92 guifg=#8700d7
|
||||
hi def dircolorsColor93 ctermfg=93 guifg=#8700ff
|
||||
hi def dircolorsColor94 ctermfg=94 guifg=#875f00
|
||||
hi def dircolorsColor95 ctermfg=95 guifg=#875f5f
|
||||
hi def dircolorsColor96 ctermfg=96 guifg=#875f87
|
||||
hi def dircolorsColor97 ctermfg=97 guifg=#875faf
|
||||
hi def dircolorsColor98 ctermfg=98 guifg=#875fd7
|
||||
hi def dircolorsColor99 ctermfg=99 guifg=#875fff
|
||||
hi def dircolorsColor100 ctermfg=100 guifg=#878700
|
||||
hi def dircolorsColor101 ctermfg=101 guifg=#87875f
|
||||
hi def dircolorsColor102 ctermfg=102 guifg=#878787
|
||||
hi def dircolorsColor103 ctermfg=103 guifg=#8787af
|
||||
hi def dircolorsColor104 ctermfg=104 guifg=#8787d7
|
||||
hi def dircolorsColor105 ctermfg=105 guifg=#8787ff
|
||||
hi def dircolorsColor106 ctermfg=106 guifg=#87af00
|
||||
hi def dircolorsColor107 ctermfg=107 guifg=#87af5f
|
||||
hi def dircolorsColor108 ctermfg=108 guifg=#87af87
|
||||
hi def dircolorsColor109 ctermfg=109 guifg=#87afaf
|
||||
hi def dircolorsColor110 ctermfg=110 guifg=#87afd7
|
||||
hi def dircolorsColor111 ctermfg=111 guifg=#87afff
|
||||
hi def dircolorsColor112 ctermfg=112 guifg=#87d700
|
||||
hi def dircolorsColor113 ctermfg=113 guifg=#87d75f
|
||||
hi def dircolorsColor114 ctermfg=114 guifg=#87d787
|
||||
hi def dircolorsColor115 ctermfg=115 guifg=#87d7af
|
||||
hi def dircolorsColor116 ctermfg=116 guifg=#87d7d7
|
||||
hi def dircolorsColor117 ctermfg=117 guifg=#87d7ff
|
||||
hi def dircolorsColor118 ctermfg=118 guifg=#87ff00
|
||||
hi def dircolorsColor119 ctermfg=119 guifg=#87ff5f
|
||||
hi def dircolorsColor120 ctermfg=120 guifg=#87ff87
|
||||
hi def dircolorsColor121 ctermfg=121 guifg=#87ffaf
|
||||
hi def dircolorsColor122 ctermfg=122 guifg=#87ffd7
|
||||
hi def dircolorsColor123 ctermfg=123 guifg=#87ffff
|
||||
hi def dircolorsColor124 ctermfg=124 guifg=#af0000
|
||||
hi def dircolorsColor125 ctermfg=125 guifg=#af005f
|
||||
hi def dircolorsColor126 ctermfg=126 guifg=#af0087
|
||||
hi def dircolorsColor127 ctermfg=127 guifg=#af00af
|
||||
hi def dircolorsColor128 ctermfg=128 guifg=#af00d7
|
||||
hi def dircolorsColor129 ctermfg=129 guifg=#af00ff
|
||||
hi def dircolorsColor130 ctermfg=130 guifg=#af5f00
|
||||
hi def dircolorsColor131 ctermfg=131 guifg=#af5f5f
|
||||
hi def dircolorsColor132 ctermfg=132 guifg=#af5f87
|
||||
hi def dircolorsColor133 ctermfg=133 guifg=#af5faf
|
||||
hi def dircolorsColor134 ctermfg=134 guifg=#af5fd7
|
||||
hi def dircolorsColor135 ctermfg=135 guifg=#af5fff
|
||||
hi def dircolorsColor136 ctermfg=136 guifg=#af8700
|
||||
hi def dircolorsColor137 ctermfg=137 guifg=#af875f
|
||||
hi def dircolorsColor138 ctermfg=138 guifg=#af8787
|
||||
hi def dircolorsColor139 ctermfg=139 guifg=#af87af
|
||||
hi def dircolorsColor140 ctermfg=140 guifg=#af87d7
|
||||
hi def dircolorsColor141 ctermfg=141 guifg=#af87ff
|
||||
hi def dircolorsColor142 ctermfg=142 guifg=#afaf00
|
||||
hi def dircolorsColor143 ctermfg=143 guifg=#afaf5f
|
||||
hi def dircolorsColor144 ctermfg=144 guifg=#afaf87
|
||||
hi def dircolorsColor145 ctermfg=145 guifg=#afafaf
|
||||
hi def dircolorsColor146 ctermfg=146 guifg=#afafd7
|
||||
hi def dircolorsColor147 ctermfg=147 guifg=#afafff
|
||||
hi def dircolorsColor148 ctermfg=148 guifg=#afd700
|
||||
hi def dircolorsColor149 ctermfg=149 guifg=#afd75f
|
||||
hi def dircolorsColor150 ctermfg=150 guifg=#afd787
|
||||
hi def dircolorsColor151 ctermfg=151 guifg=#afd7af
|
||||
hi def dircolorsColor152 ctermfg=152 guifg=#afd7d7
|
||||
hi def dircolorsColor153 ctermfg=153 guifg=#afd7ff
|
||||
hi def dircolorsColor154 ctermfg=154 guifg=#afff00
|
||||
hi def dircolorsColor155 ctermfg=155 guifg=#afff5f
|
||||
hi def dircolorsColor156 ctermfg=156 guifg=#afff87
|
||||
hi def dircolorsColor157 ctermfg=157 guifg=#afffaf
|
||||
hi def dircolorsColor158 ctermfg=158 guifg=#afffd7
|
||||
hi def dircolorsColor159 ctermfg=159 guifg=#afffff
|
||||
hi def dircolorsColor160 ctermfg=160 guifg=#d70000
|
||||
hi def dircolorsColor161 ctermfg=161 guifg=#d7005f
|
||||
hi def dircolorsColor162 ctermfg=162 guifg=#d70087
|
||||
hi def dircolorsColor163 ctermfg=163 guifg=#d700af
|
||||
hi def dircolorsColor164 ctermfg=164 guifg=#d700d7
|
||||
hi def dircolorsColor165 ctermfg=165 guifg=#d700ff
|
||||
hi def dircolorsColor166 ctermfg=166 guifg=#d75f00
|
||||
hi def dircolorsColor167 ctermfg=167 guifg=#d75f5f
|
||||
hi def dircolorsColor168 ctermfg=168 guifg=#d75f87
|
||||
hi def dircolorsColor169 ctermfg=169 guifg=#d75faf
|
||||
hi def dircolorsColor170 ctermfg=170 guifg=#d75fd7
|
||||
hi def dircolorsColor171 ctermfg=171 guifg=#d75fff
|
||||
hi def dircolorsColor172 ctermfg=172 guifg=#d78700
|
||||
hi def dircolorsColor173 ctermfg=173 guifg=#d7875f
|
||||
hi def dircolorsColor174 ctermfg=174 guifg=#d78787
|
||||
hi def dircolorsColor175 ctermfg=175 guifg=#d787af
|
||||
hi def dircolorsColor176 ctermfg=176 guifg=#d787d7
|
||||
hi def dircolorsColor177 ctermfg=177 guifg=#d787ff
|
||||
hi def dircolorsColor178 ctermfg=178 guifg=#d7af00
|
||||
hi def dircolorsColor179 ctermfg=179 guifg=#d7af5f
|
||||
hi def dircolorsColor180 ctermfg=180 guifg=#d7af87
|
||||
hi def dircolorsColor181 ctermfg=181 guifg=#d7afaf
|
||||
hi def dircolorsColor182 ctermfg=182 guifg=#d7afd7
|
||||
hi def dircolorsColor183 ctermfg=183 guifg=#d7afff
|
||||
hi def dircolorsColor184 ctermfg=184 guifg=#d7d700
|
||||
hi def dircolorsColor185 ctermfg=185 guifg=#d7d75f
|
||||
hi def dircolorsColor186 ctermfg=186 guifg=#d7d787
|
||||
hi def dircolorsColor187 ctermfg=187 guifg=#d7d7af
|
||||
hi def dircolorsColor188 ctermfg=188 guifg=#d7d7d7
|
||||
hi def dircolorsColor189 ctermfg=189 guifg=#d7d7ff
|
||||
hi def dircolorsColor190 ctermfg=190 guifg=#d7ff00
|
||||
hi def dircolorsColor191 ctermfg=191 guifg=#d7ff5f
|
||||
hi def dircolorsColor192 ctermfg=192 guifg=#d7ff87
|
||||
hi def dircolorsColor193 ctermfg=193 guifg=#d7ffaf
|
||||
hi def dircolorsColor194 ctermfg=194 guifg=#d7ffd7
|
||||
hi def dircolorsColor195 ctermfg=195 guifg=#d7ffff
|
||||
hi def dircolorsColor196 ctermfg=196 guifg=#ff0000
|
||||
hi def dircolorsColor197 ctermfg=197 guifg=#ff005f
|
||||
hi def dircolorsColor198 ctermfg=198 guifg=#ff0087
|
||||
hi def dircolorsColor199 ctermfg=199 guifg=#ff00af
|
||||
hi def dircolorsColor200 ctermfg=200 guifg=#ff00d7
|
||||
hi def dircolorsColor201 ctermfg=201 guifg=#ff00ff
|
||||
hi def dircolorsColor202 ctermfg=202 guifg=#ff5f00
|
||||
hi def dircolorsColor203 ctermfg=203 guifg=#ff5f5f
|
||||
hi def dircolorsColor204 ctermfg=204 guifg=#ff5f87
|
||||
hi def dircolorsColor205 ctermfg=205 guifg=#ff5faf
|
||||
hi def dircolorsColor206 ctermfg=206 guifg=#ff5fd7
|
||||
hi def dircolorsColor207 ctermfg=207 guifg=#ff5fff
|
||||
hi def dircolorsColor208 ctermfg=208 guifg=#ff8700
|
||||
hi def dircolorsColor209 ctermfg=209 guifg=#ff875f
|
||||
hi def dircolorsColor210 ctermfg=210 guifg=#ff8787
|
||||
hi def dircolorsColor211 ctermfg=211 guifg=#ff87af
|
||||
hi def dircolorsColor212 ctermfg=212 guifg=#ff87d7
|
||||
hi def dircolorsColor213 ctermfg=213 guifg=#ff87ff
|
||||
hi def dircolorsColor214 ctermfg=214 guifg=#ffaf00
|
||||
hi def dircolorsColor215 ctermfg=215 guifg=#ffaf5f
|
||||
hi def dircolorsColor216 ctermfg=216 guifg=#ffaf87
|
||||
hi def dircolorsColor217 ctermfg=217 guifg=#ffafaf
|
||||
hi def dircolorsColor218 ctermfg=218 guifg=#ffafd7
|
||||
hi def dircolorsColor219 ctermfg=219 guifg=#ffafff
|
||||
hi def dircolorsColor220 ctermfg=220 guifg=#ffd700
|
||||
hi def dircolorsColor221 ctermfg=221 guifg=#ffd75f
|
||||
hi def dircolorsColor222 ctermfg=222 guifg=#ffd787
|
||||
hi def dircolorsColor223 ctermfg=223 guifg=#ffd7af
|
||||
hi def dircolorsColor224 ctermfg=224 guifg=#ffd7d7
|
||||
hi def dircolorsColor225 ctermfg=225 guifg=#ffd7ff
|
||||
hi def dircolorsColor226 ctermfg=226 guifg=#ffff00
|
||||
hi def dircolorsColor227 ctermfg=227 guifg=#ffff5f
|
||||
hi def dircolorsColor228 ctermfg=228 guifg=#ffff87
|
||||
hi def dircolorsColor229 ctermfg=229 guifg=#ffffaf
|
||||
hi def dircolorsColor230 ctermfg=230 guifg=#ffffd7
|
||||
hi def dircolorsColor231 ctermfg=231 guifg=#ffffff
|
||||
hi def dircolorsColor232 ctermfg=232 guifg=#080808
|
||||
hi def dircolorsColor233 ctermfg=233 guifg=#121212
|
||||
hi def dircolorsColor234 ctermfg=234 guifg=#1c1c1c
|
||||
hi def dircolorsColor235 ctermfg=235 guifg=#262626
|
||||
hi def dircolorsColor236 ctermfg=236 guifg=#303030
|
||||
hi def dircolorsColor237 ctermfg=237 guifg=#3a3a3a
|
||||
hi def dircolorsColor238 ctermfg=238 guifg=#444444
|
||||
hi def dircolorsColor239 ctermfg=239 guifg=#4e4e4e
|
||||
hi def dircolorsColor240 ctermfg=240 guifg=#585858
|
||||
hi def dircolorsColor241 ctermfg=241 guifg=#626262
|
||||
hi def dircolorsColor242 ctermfg=242 guifg=#6c6c6c
|
||||
hi def dircolorsColor243 ctermfg=243 guifg=#767676
|
||||
hi def dircolorsColor244 ctermfg=244 guifg=#808080
|
||||
hi def dircolorsColor245 ctermfg=245 guifg=#8a8a8a
|
||||
hi def dircolorsColor246 ctermfg=246 guifg=#949494
|
||||
hi def dircolorsColor247 ctermfg=247 guifg=#9e9e9e
|
||||
hi def dircolorsColor248 ctermfg=248 guifg=#a8a8a8
|
||||
hi def dircolorsColor249 ctermfg=249 guifg=#b2b2b2
|
||||
hi def dircolorsColor250 ctermfg=250 guifg=#bcbcbc
|
||||
hi def dircolorsColor251 ctermfg=251 guifg=#c6c6c6
|
||||
hi def dircolorsColor252 ctermfg=252 guifg=#d0d0d0
|
||||
hi def dircolorsColor253 ctermfg=253 guifg=#dadada
|
||||
hi def dircolorsColor254 ctermfg=254 guifg=#e4e4e4
|
||||
hi def dircolorsColor255 ctermfg=255 guifg=#eeeeee
|
||||
else
|
||||
hi def link dircolorsNumber Number
|
||||
autocmd CursorMoved,CursorMovedI <buffer> call s:preview_color('.')
|
||||
autocmd CursorHold,CursorHoldI <buffer> call s:reset_colors()
|
||||
endif
|
||||
|
||||
let b:current_syntax = "dircolors"
|
||||
|
||||
@@ -1,26 +1,19 @@
|
||||
" Vim syntax file
|
||||
" Maintainer: Thilo Six
|
||||
" Contact: <vim-dev at vim dot org>
|
||||
" http://www.vim.org/maillist.php#vim-dev
|
||||
"
|
||||
" Contact: vim-foo@xk2c-foo.de
|
||||
" :3s+-foo++g
|
||||
" Description: highlight dnsmasq configuration files
|
||||
" File: runtime/syntax/dnsmasq.vim
|
||||
" Version: 2.61-1
|
||||
" Last Change: 2012 May 19
|
||||
" Version: 2.67
|
||||
" Last Change: 2013 Nov 03
|
||||
" Modeline: vim: ts=8:sw=2:sts=2:
|
||||
"
|
||||
" Credits: Igor N. Prischepoff
|
||||
" Doug Kearns
|
||||
" David Ne\v{c}as
|
||||
" Christian Brabandt
|
||||
"
|
||||
" License: VIM License
|
||||
" Vim is Charityware, see ":help Uganda"
|
||||
"
|
||||
" Options: You might want to add this to your vimrc:
|
||||
"
|
||||
" if &background == "dark"
|
||||
" " dnsmasq.vim
|
||||
" let dnsmasq_backrgound_light = 0
|
||||
" else
|
||||
" let dnsmasq_backrgound_light = 1
|
||||
@@ -28,8 +21,7 @@
|
||||
"
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
if v:version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax") || &compatible
|
||||
finish
|
||||
@@ -39,11 +31,11 @@ let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if !exists("b:dnsmasq_backrgound_light")
|
||||
if exists("dnsmasq_backrgound_light")
|
||||
let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light
|
||||
else
|
||||
let b:dnsmasq_backrgound_light = 0
|
||||
endif
|
||||
if exists("dnsmasq_backrgound_light")
|
||||
let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light
|
||||
else
|
||||
let b:dnsmasq_backrgound_light = 0
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -89,10 +81,13 @@ syn match DnsmasqKeywordSpecial ",\<ignore\>"hs=s+1 contains=DnsmasqSpecial
|
||||
syn match DnsmasqKeywordSpecial "\<id\>:"me=e-1
|
||||
|
||||
syn match DnsmasqKeyword "^\s*add-mac\>"
|
||||
syn match DnsmasqKeyword "^\s*add-subnet\>"
|
||||
syn match DnsmasqKeyword "^\s*addn-hosts\>"
|
||||
syn match DnsmasqKeyword "^\s*address\>"
|
||||
syn match DnsmasqKeyword "^\s*alias\>"
|
||||
syn match DnsmasqKeyword "^\s*all-servers\>"
|
||||
syn match DnsmasqKeyword "^\s*auth-zone\>"
|
||||
syn match DnsmasqKeyword "^\s*bind-dynamic\>"
|
||||
syn match DnsmasqKeyword "^\s*bind-interfaces\>"
|
||||
syn match DnsmasqKeyword "^\s*bogus-nxdomain\>"
|
||||
syn match DnsmasqKeyword "^\s*bogus-priv\>"
|
||||
@@ -128,6 +123,7 @@ syn match DnsmasqKeyword "^\s*dhcp-option-force\>"
|
||||
syn match DnsmasqKeyword "^\s*dhcp-optsfile\>"
|
||||
syn match DnsmasqKeyword "^\s*dhcp-proxy\>"
|
||||
syn match DnsmasqKeyword "^\s*dhcp-range\>"
|
||||
syn match DnsmasqKeyword "^\s*dhcp-relay\>"
|
||||
syn match DnsmasqKeyword "^\s*dhcp-remoteid\>"
|
||||
syn match DnsmasqKeyword "^\s*dhcp-script\>"
|
||||
syn match DnsmasqKeyword "^\s*dhcp-scriptuser\>"
|
||||
@@ -135,6 +131,7 @@ syn match DnsmasqKeyword "^\s*dhcp-sequential-ip\>"
|
||||
syn match DnsmasqKeyword "^\s*dhcp-subscrid\>"
|
||||
syn match DnsmasqKeyword "^\s*dhcp-userclass\>"
|
||||
syn match DnsmasqKeyword "^\s*dhcp-vendorclass\>"
|
||||
syn match DnsmasqKeyword "^\s*dns-rr\>"
|
||||
syn match DnsmasqKeyword "^\s*dns-forward-max\>"
|
||||
syn match DnsmasqKeyword "^\s*domain\>"
|
||||
syn match DnsmasqKeyword "^\s*domain-needed\>"
|
||||
@@ -149,6 +146,7 @@ syn match DnsmasqKeyword "^\s*group\>"
|
||||
syn match DnsmasqKeyword "^\s*host-record\>"
|
||||
syn match DnsmasqKeyword "^\s*interface\>"
|
||||
syn match DnsmasqKeyword "^\s*interface-name\>"
|
||||
syn match DnsmasqKeyword "^\s*ipset\>"
|
||||
syn match DnsmasqKeyword "^\s*keep-in-foreground\>"
|
||||
syn match DnsmasqKeyword "^\s*leasefile-ro\>"
|
||||
syn match DnsmasqKeyword "^\s*listen-address\>"
|
||||
@@ -161,6 +159,7 @@ syn match DnsmasqKeyword "^\s*log-dhcp\>"
|
||||
syn match DnsmasqKeyword "^\s*log-facility\>"
|
||||
syn match DnsmasqKeyword "^\s*log-queries\>"
|
||||
syn match DnsmasqKeyword "^\s*max-ttl\>"
|
||||
syn match DnsmasqKeyword "^\s*max-cache-ttl\>"
|
||||
syn match DnsmasqKeyword "^\s*min-port\>"
|
||||
syn match DnsmasqKeyword "^\s*mx-host\>"
|
||||
syn match DnsmasqKeyword "^\s*mx-target\>"
|
||||
@@ -180,6 +179,10 @@ syn match DnsmasqKeyword "^\s*ptr-record\>"
|
||||
syn match DnsmasqKeyword "^\s*pxe-prompt\>"
|
||||
syn match DnsmasqKeyword "^\s*pxe-service\>"
|
||||
syn match DnsmasqKeyword "^\s*query-port\>"
|
||||
syn match DnsmasqKeyword "^\s*quiet-ra\>"
|
||||
syn match DnsmasqKeyword "^\s*quiet-dhcp\>"
|
||||
syn match DnsmasqKeyword "^\s*quiet-dhcp6\>"
|
||||
syn match DnsmasqKeyword "^\s*ra-param\>"
|
||||
syn match DnsmasqKeyword "^\s*read-ethers\>"
|
||||
syn match DnsmasqKeyword "^\s*rebind-domain-ok\>"
|
||||
syn match DnsmasqKeyword "^\s*rebind-localhost-ok\>"
|
||||
@@ -189,6 +192,7 @@ syn match DnsmasqKeyword "^\s*server\>"
|
||||
syn match DnsmasqKeyword "^\s*srv-host\>"
|
||||
syn match DnsmasqKeyword "^\s*stop-dns-rebind\>"
|
||||
syn match DnsmasqKeyword "^\s*strict-order\>"
|
||||
syn match DnsmasqKeyword "^\s*synth-domain\>"
|
||||
syn match DnsmasqKeyword "^\s*tag-if\>"
|
||||
syn match DnsmasqKeyword "^\s*test\>"
|
||||
syn match DnsmasqKeyword "^\s*tftp-max\>"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: dts/dtsi (device tree files)
|
||||
" Maintainer: Daniel Mack <vim@zonque.org>
|
||||
" Last Change: 2013 Apr 05
|
||||
" Last Change: 2013 Oct 20
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -11,11 +11,12 @@ syntax region dtsComment start="/\*" end="\*/"
|
||||
syntax match dtsReference "&[[:alpha:][:digit:]_]\+"
|
||||
syntax region dtsBinaryProperty start="\[" end="\]"
|
||||
syntax match dtsStringProperty "\".*\""
|
||||
syntax match dtsKeyword "/.*/"
|
||||
syntax match dtsKeyword "/.\{-1,\}/"
|
||||
syntax match dtsLabel "^[[:space:]]*[[:alpha:][:digit:]_]\+:"
|
||||
syntax match dtsNode /[[:alpha:][:digit:]-_]\+\(@[0-9a-fA-F]\+\|\)[[:space:]]*{/he=e-1
|
||||
syntax region dtsCellProperty start="<" end=">" contains=dtsReference,dtsBinaryProperty,dtsStringProperty,dtsComment
|
||||
syntax region dtsCommentInner start="/\*" end="\*/"
|
||||
syntax match dtsCommentLine "//.*$"
|
||||
|
||||
hi def link dtsCellProperty Number
|
||||
hi def link dtsBinaryProperty Number
|
||||
@@ -26,3 +27,4 @@ hi def link dtsNode Structure
|
||||
hi def link dtsReference Macro
|
||||
hi def link dtsComment Comment
|
||||
hi def link dtsCommentInner Comment
|
||||
hi def link dtsCommentLine Comment
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim help file
|
||||
" Maintainer: Bram Moolenaar (Bram@vim.org)
|
||||
" Last Change: 2013 Jul 07
|
||||
" Last Change: 2013 Nov 17
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -44,7 +44,7 @@ syn match helpVim "Vim version [0-9.a-z]\+"
|
||||
syn match helpVim "VIM REFERENCE.*"
|
||||
syn match helpOption "'[a-z]\{2,\}'"
|
||||
syn match helpOption "'t_..'"
|
||||
syn match helpCommand "`[^` ]\+`"hs=s+1,he=e-1 contains=helpBacktick
|
||||
syn match helpCommand "`[^` \t]\+`"hs=s+1,he=e-1 contains=helpBacktick
|
||||
syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
|
||||
syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
|
||||
if has("conceal")
|
||||
@@ -153,7 +153,7 @@ syn sync minlines=40
|
||||
" Define the default highlighting.
|
||||
" Only used when an item doesn't have highlighting yet
|
||||
hi def link helpIgnore Ignore
|
||||
hi def link helpHyperTextJump Subtitle
|
||||
hi def link helpHyperTextJump Identifier
|
||||
hi def link helpBar Ignore
|
||||
hi def link helpBacktick Ignore
|
||||
hi def link helpStar Ignore
|
||||
@@ -168,7 +168,6 @@ hi def link helpOption Type
|
||||
hi def link helpNotVi Special
|
||||
hi def link helpSpecial Special
|
||||
hi def link helpNote Todo
|
||||
hi def link Subtitle Identifier
|
||||
|
||||
hi def link helpComment Comment
|
||||
hi def link helpConstant Constant
|
||||
|
||||
45
runtime/syntax/j.vim
Normal file
45
runtime/syntax/j.vim
Normal file
@@ -0,0 +1,45 @@
|
||||
" Vim syntax file
|
||||
" Language: J
|
||||
" Maintainer: David Bürgin <676c7473@gmail.com>
|
||||
" Last Change: 2013-10-06
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax case match
|
||||
syntax sync minlines=50
|
||||
|
||||
syn match jControl /\<\%(assert\|break\|case\|catch[dt]\=\|continue\|do\|else\%(if\)\=\|end\|fcase\|for\|if\|return\|select\|throw\|try\|whil\%(e\|st\)\)\./
|
||||
syn match jControl /\<\%(for\|goto\|label\)_\a\k*\./
|
||||
|
||||
syn region jString oneline start=/'/ skip=/''/ end=/'/
|
||||
|
||||
" Patterns for numbers in general, rational numbers, numbers with explicit
|
||||
" base, infinities, and numbers with extended precision.
|
||||
"
|
||||
" Matching J numbers is difficult. The regular expression used for the general
|
||||
" case roughly embodies this grammar sketch:
|
||||
"
|
||||
" EXP := /_?\d+(\.\d*)?([eE]_?\d+)?/
|
||||
" COMP := EXP | EXP (j|a[dr]) EXP
|
||||
" PIEU := COMP | COMP [px] COMP
|
||||
"
|
||||
" For the rest, a compromise between correctness and practicality was made.
|
||||
" See http://www.jsoftware.com/help/dictionary/dcons.htm for reference.
|
||||
syn match jNumber /\<_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\%(\%(j\|a[dr]\)_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\)\=\%([px]_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\%(\%(j\|a[dr]\)_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\)\=\)\=/
|
||||
syn match jNumber /\<_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=r_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=/
|
||||
syn match jNumber /\<_\=\d\+\%([eE]\d\+\)\=b_\=[0-9a-z]\+/
|
||||
syn match jNumber /\<__\=\>/
|
||||
syn match jNumber /\<_\=\d\+x\>/
|
||||
|
||||
syn match jComment /NB\..*$/ contains=jTodo,@Spell
|
||||
syn keyword jTodo TODO FIXME XXX contained
|
||||
|
||||
hi def link jControl Statement
|
||||
hi def link jString String
|
||||
hi def link jNumber Number
|
||||
hi def link jComment Comment
|
||||
hi def link jTodo Todo
|
||||
|
||||
let b:current_syntax = "j"
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Mail file
|
||||
" Previous Maintainer: Felix von Leitner <leitner@math.fu-berlin.de>
|
||||
" Maintainer: GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
|
||||
" Last Change: Thu 02 Feb 2012 08:47:04 PM EST
|
||||
" Last Change: Wed 14 Aug 2013 08:24:52 AM PDT
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -55,7 +55,7 @@ syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps,@NoSpell sta
|
||||
|
||||
" Treat verbatim Text special.
|
||||
syn region mailVerbatim contains=@NoSpell keepend start="^#v+$" end="^#v-$" fold
|
||||
syn region mailVerbatim contains=@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold
|
||||
syn region mailVerbatim contains=@mailQuoteExps,@NoSpell keepend start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold
|
||||
|
||||
" URLs start with a known protocol or www,web,w3.
|
||||
syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-z0-9/]`
|
||||
|
||||
@@ -2,14 +2,11 @@
|
||||
" Language: Microsoft Macro Assembler (80x86)
|
||||
" Orig Author: Rob Brady <robb@datatone.com>
|
||||
" Maintainer: Wu Yongwei <wuyongwei@gmail.com>
|
||||
" Last Change: $Date: 2012/02/04 12:45:39 $
|
||||
" $Revision: 1.46 $
|
||||
" Last Change: $Date: 2013/11/13 11:49:24 $
|
||||
" $Revision: 1.48 $
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
@@ -194,6 +191,10 @@ syn keyword masmRegister R8D R9D R10D R11D R12D R13D R14D R15D
|
||||
syn keyword masmRegister R8W R9W R10W R11W R12W R13W R14W R15W
|
||||
syn keyword masmRegister R8B R9B R10B R11B R12B R13B R14B R15B
|
||||
|
||||
" SSE/AVX registers
|
||||
syn match masmRegister "\(X\|Y\)MM[0-9]\>"
|
||||
syn match masmRegister "\(X\|Y\)MM1[0-5]\>"
|
||||
|
||||
" Instruction prefixes
|
||||
syn keyword masmOpcode LOCK REP REPE REPNE REPNZ REPZ
|
||||
|
||||
@@ -302,50 +303,69 @@ syn keyword masmOpcode FISTTP LDDQU ADDSUBPS ADDSUBPD
|
||||
syn keyword masmOpcode HADDPS HSUBPS HADDPD HSUBPD
|
||||
syn keyword masmOpcode MOVSHDUP MOVSLDUP MOVDDUP MONITOR MWAIT
|
||||
|
||||
" SSSE3 opcodes (Core and later)
|
||||
syn keyword masmOpcode PSIGNB PSIGNW PSIGND PABSB PABSW PABSD
|
||||
syn keyword masmOpcode PALIGNR PSHUFB PMULHRSW PMADDUBSW
|
||||
syn keyword masmOpcode PHSUBW PHSUBD PHSUBSW PHADDW PHADDD PHADDSW
|
||||
|
||||
" SSE 4.1 opcodes (Penryn and later)
|
||||
syn keyword masmOpcode MPSADBW PHMINPOSUW PMULDQ PMULLD DPPS DPPD
|
||||
syn keyword masmOpcode BLENDPS BLENDPD BLENDVPS BLENDVPD
|
||||
syn keyword masmOpcode PBLENDVB PBLENDW
|
||||
syn keyword masmOpcode PMINSB PMAXSB PMINSD PMAXSD
|
||||
syn keyword masmOpcode PMINUW PMAXUW PMINUD PMAXUD
|
||||
syn keyword masmOpcode ROUNDPS ROUNDSS ROUNDPD ROUNDSD
|
||||
syn keyword masmOpcode INSERTPS PINSRB PINSRD PINSRQ
|
||||
syn keyword masmOpcode EXTRACTPS PEXTRB PEXTRD PEXTRQ
|
||||
syn keyword masmOpcode PMOVSXBW PMOVZXBW PMOVSXBD PMOVZXBD
|
||||
syn keyword masmOpcode PMOVSXBQ PMOVZXBQ PMOVSXWD PMOVZXWD
|
||||
syn keyword masmOpcode PMOVSXWQ PMOVZXWQ PMOVSXDQ PMOVZXDQ
|
||||
syn keyword masmOpcode PTEST PCMPEQQ PACKUSDW MOVNTDQA
|
||||
|
||||
" SSE 4.2 opcodes (Nehalem and later)
|
||||
syn keyword masmOpcode PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ
|
||||
syn keyword masmOpcode CRC32 POPCNT LZCNT
|
||||
|
||||
" AES-NI (Westmere (2010) and later)
|
||||
syn keyword masmOpcode AESENC AESENCLAST AESDEC AESDECLAST
|
||||
syn keyword masmOpcode AESKEYGENASSIST AESIMC PCLMULQDQ
|
||||
|
||||
" AVX (Sandy Bridge (2011) and later)
|
||||
syn keyword masmOpcode VBROADCASTSS VBROADCASTSD VBROADCASTF128
|
||||
syn keyword masmOpcode VINSERTF128 VEXTRACTF128 VMASKMOVPS VMASKMOVPD
|
||||
syn keyword masmOpcode VPERMILPS VPERMILPD VPERM2F128
|
||||
syn keyword masmOpcode VZEROALL VZEROUPPER
|
||||
|
||||
" Other opcodes in Pentium and later processors
|
||||
syn keyword masmOpcode CMPXCHG8B CPUID UD2
|
||||
syn keyword masmOpcode RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT
|
||||
syn match masmOpcode "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"
|
||||
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_masm_syntax_inits")
|
||||
if version < 508
|
||||
let did_masm_syntax_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
" The default highlighting
|
||||
hi def link masmLabel PreProc
|
||||
hi def link masmComment Comment
|
||||
hi def link masmDirective Statement
|
||||
hi def link masmType Type
|
||||
hi def link masmOperator Type
|
||||
hi def link masmOption Special
|
||||
hi def link masmRegister Special
|
||||
hi def link masmString String
|
||||
hi def link masmText String
|
||||
hi def link masmTitle Title
|
||||
hi def link masmOpcode Statement
|
||||
hi def link masmOpFloat Statement
|
||||
|
||||
" The default methods for highlighting. Can be overridden later
|
||||
HiLink masmLabel PreProc
|
||||
HiLink masmComment Comment
|
||||
HiLink masmDirective Statement
|
||||
HiLink masmType Type
|
||||
HiLink masmOperator Type
|
||||
HiLink masmOption Special
|
||||
HiLink masmRegister Special
|
||||
HiLink masmString String
|
||||
HiLink masmText String
|
||||
HiLink masmTitle Title
|
||||
HiLink masmOpcode Statement
|
||||
HiLink masmOpFloat Statement
|
||||
hi def link masmHexadecimal Number
|
||||
hi def link masmDecimal Number
|
||||
hi def link masmOctal Number
|
||||
hi def link masmBinary Number
|
||||
hi def link masmFloatRaw Number
|
||||
hi def link masmFloat Number
|
||||
|
||||
HiLink masmHexadecimal Number
|
||||
HiLink masmDecimal Number
|
||||
HiLink masmOctal Number
|
||||
HiLink masmBinary Number
|
||||
HiLink masmFloatRaw Number
|
||||
HiLink masmFloat Number
|
||||
hi def link masmIdentifier Identifier
|
||||
|
||||
HiLink masmIdentifier Identifier
|
||||
|
||||
syntax sync minlines=50
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
syntax sync minlines=50
|
||||
|
||||
let b:current_syntax = "masm"
|
||||
|
||||
|
||||
83
runtime/syntax/mix.vim
Normal file
83
runtime/syntax/mix.vim
Normal file
@@ -0,0 +1,83 @@
|
||||
" Vim syntax file
|
||||
" Language: MIX (Donald Knuth's assembly language used in TAOCP)
|
||||
" Maintainer: Wu Yongwei <wuyongwei@gmail.com>
|
||||
" Filenames: *.mixal *.mix
|
||||
" Last Change: 2013 Nov 13
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn case ignore
|
||||
|
||||
" Special processing of ALF directive: implementations vary whether quotation
|
||||
" marks are needed
|
||||
syn match mixAlfParam #\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixAlfDirective,mixString nextgroup=mixEndComment contained
|
||||
|
||||
" Region for parameters
|
||||
syn match mixParam #[-+*/:=0-9a-z,()"]\+# contains=mixIdentifier,mixSpecial,mixNumber,mixString,mixLabel nextgroup=mixEndComment contained
|
||||
|
||||
" Comment at the line end
|
||||
syn match mixEndComment ".*" contains=mixRegister contained
|
||||
|
||||
" Identifier; must go before literals
|
||||
syn match mixIdentifier "[a-z0-9_]\+" contained
|
||||
|
||||
" Literals
|
||||
syn match mixSpecial "[-+*/:=]" contained
|
||||
syn match mixNumber "[0-9]\+\>" contained
|
||||
syn region mixString start=+"+ skip=+\\"+ end=+"+ contained
|
||||
|
||||
" Labels
|
||||
syn match mixLabel "^[a-z0-9_]\{,10\}\s\+" nextgroup=mixAlfSpecial,mixOpcode,mixDirective
|
||||
syn match mixLabel "[0-9][BF]" contained
|
||||
|
||||
" Comments
|
||||
syn match mixComment "^\*.*" contains=mixRegister
|
||||
|
||||
" Directives
|
||||
syn keyword mixDirective ORIG EQU CON END nextgroup=mixParam contained skipwhite
|
||||
syn keyword mixDirective ALF nextgroup=mixAlfParam contained
|
||||
|
||||
" Opcodes
|
||||
syn keyword mixOpcode NOP HLT NUM CHAR FLOT FIX nextgroup=mixEndComment contained
|
||||
syn keyword mixOpcode FADD FSUB FMUL FDIV FCMP MOVE ADD SUB MUL DIV IOC IN OUT JRED JBUS JMP JSJ JOV JNOV JL JE JG JLE JNE JGE SLA SRA SLAX SRAX SLC SRC nextgroup=mixParam contained skipwhite
|
||||
|
||||
syn match mixOpcode "LD[AX1-6]N\?\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "ST[AX1-6JZ]\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "EN[TN][AX1-6]\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "INC[AX1-6]\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "DEC[AX1-6]\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "CMP[AX1-6]\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "J[AX1-6]N\?[NZP]\>" nextgroup=mixParam contained skipwhite
|
||||
|
||||
" Switch back to being case sensitive
|
||||
syn case match
|
||||
|
||||
" Registers (only to used in comments now)
|
||||
syn keyword mixRegister rA rX rI1 rI2 rI3 rI4 rI5 rI6 rJ contained
|
||||
|
||||
" The default highlighting
|
||||
hi def link mixRegister Special
|
||||
hi def link mixLabel Define
|
||||
hi def link mixComment Comment
|
||||
hi def link mixEndComment Comment
|
||||
hi def link mixDirective Keyword
|
||||
hi def link mixOpcode Keyword
|
||||
|
||||
hi def link mixSpecial Special
|
||||
hi def link mixNumber Number
|
||||
hi def link mixString String
|
||||
hi def link mixAlfParam String
|
||||
hi def link mixIdentifier Identifier
|
||||
|
||||
let b:current_syntax = "mix"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: ts=8
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: php PHP 3/4/5
|
||||
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
|
||||
" Last Change: Dec 11, 2012
|
||||
" Last Change: Aug 28, 2013
|
||||
" URL: https://gitorious.org/jasonwoof/vim-syntax/blobs/master/php.vim
|
||||
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
|
||||
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
@@ -616,6 +616,11 @@ else
|
||||
exec "syn sync fromstart"
|
||||
endif
|
||||
|
||||
syntax match phpDocCustomTags "@[a-zA-Z]*\(\s\+\|\n\|\r\)" containedin=phpComment
|
||||
syntax region phpDocTags start="{@\(example\|id\|internal\|inheritdoc\|link\|source\|toc\|tutorial\)" end="}" containedin=phpComment
|
||||
syntax match phpDocTags "@\(abstract\|access\|author\|category\|copyright\|deprecated\|example\|final\|global\|ignore\|internal\|license\|link\|method\|name\|package\|param\|property\|return\|see\|since\|static\|staticvar\|subpackage\|tutorial\|uses\|var\|version\|contributor\|modified\|filename\|description\|filesource\|throws\)\(\s\+\)\?" containedin=phpComment
|
||||
syntax match phpDocTodo "@\(todo\|fixme\|xxx\)\(\s\+\)\?" containedin=phpComment
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
@@ -630,6 +635,8 @@ if version >= 508 || !exists("did_php_syn_inits")
|
||||
HiLink phpConstant Constant
|
||||
HiLink phpCoreConstant Constant
|
||||
HiLink phpComment Comment
|
||||
HiLink phpDocTags PreProc
|
||||
HiLink phpDocCustomTags Type
|
||||
HiLink phpException Exception
|
||||
HiLink phpBoolean Boolean
|
||||
HiLink phpStorageClass StorageClass
|
||||
@@ -668,6 +675,7 @@ if version >= 508 || !exists("did_php_syn_inits")
|
||||
HiLink phpInterpSimpleCurly Delimiter
|
||||
HiLink phpInterpVarname Identifier
|
||||
HiLink phpTodo Todo
|
||||
HiLink phpDocTodo Todo
|
||||
HiLink phpMemberSelector Structure
|
||||
if exists("php_oldStyle")
|
||||
hi phpIntVar guifg=Red ctermfg=DarkRed
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: reStructuredText documentation format
|
||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2013-06-03
|
||||
" Latest Revision: 2013-11-26
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -152,7 +152,7 @@ for code in g:rst_syntax_code_list
|
||||
exe 'syn region rstDirective'.code.' matchgroup=rstDirective fold '
|
||||
\.'start=#\%(sourcecode\|code\%(-block\)\=\)::\s\+'.code.'\s*$# '
|
||||
\.'skip=#^$# '
|
||||
\.'end=#^\s\@!# contains=@NoSpell,@rst'.code
|
||||
\.'end=#^\s\@!# contains=@NoSpell,@rst'.code.' keepend'
|
||||
exe 'syn cluster rstDirectives add=rstDirective'.code
|
||||
endfor
|
||||
|
||||
|
||||
@@ -2,15 +2,18 @@
|
||||
" Language: Subversion (svn) commit file
|
||||
" Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
|
||||
" URL: https://github.com/hdima/vim-scripts/blob/master/syntax/svn.vim
|
||||
" Last Change: 2012-07-21
|
||||
" Last Change: 2013-11-08
|
||||
" Filenames: svn-commit*.tmp
|
||||
" Version: 1.9
|
||||
" Version: 1.10
|
||||
|
||||
" Contributors:
|
||||
" Stefano Zacchiroli
|
||||
"
|
||||
" List of the contributors in alphabetical order:
|
||||
"
|
||||
" A. S. Budden
|
||||
" Myk Taylor
|
||||
" Ingo Karkat
|
||||
" Myk Taylor
|
||||
" Stefano Zacchiroli
|
||||
|
||||
" For version 5.x: Clear all syntax items.
|
||||
" For version 6.x: Quit when a syntax file was already loaded.
|
||||
@@ -20,14 +23,19 @@ elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn region svnText start="\%^" end="^--.*--$"me=s-1 contains=@Spell
|
||||
syn spell toplevel
|
||||
|
||||
syn region svnRegion start="^--.*--$" end="\%$" contains=ALL
|
||||
syn match svnRemoved "^D .*$" contained
|
||||
syn match svnRenamed "^R[ M][ U][ +] .*$" contained
|
||||
syn match svnAdded "^A[ M][ U][ +] .*$" contained
|
||||
syn match svnModified "^M[ M][ U] .*$" contained
|
||||
syn match svnProperty "^_M[ U] .*$" contained
|
||||
syn match svnFirstLine "\%^.*" nextgroup=svnRegion,svnBlank skipnl
|
||||
syn match svnSummary "^.\{0,50\}" contained containedin=svnFirstLine nextgroup=svnOverflow contains=@Spell
|
||||
syn match svnOverflow ".*" contained contains=@Spell
|
||||
syn match svnBlank "^.*" contained contains=@Spell
|
||||
|
||||
syn region svnRegion end="\%$" matchgroup=svnDelimiter start="^--.*--$" contains=svnRemoved,svnRenamed,svnAdded,svnModified,svnProperty,@NoSpell
|
||||
syn match svnRemoved "^D .*$" contained contains=@NoSpell
|
||||
syn match svnRenamed "^R[ M][ U][ +] .*$" contained contains=@NoSpell
|
||||
syn match svnAdded "^A[ M][ U][ +] .*$" contained contains=@NoSpell
|
||||
syn match svnModified "^M[ M][ U] .*$" contained contains=@NoSpell
|
||||
syn match svnProperty "^_M[ U] .*$" contained contains=@NoSpell
|
||||
|
||||
" Synchronization.
|
||||
syn sync clear
|
||||
@@ -44,7 +52,11 @@ if version >= 508 || !exists("did_svn_syn_inits")
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink svnSummary Keyword
|
||||
HiLink svnBlank Error
|
||||
|
||||
HiLink svnRegion Comment
|
||||
HiLink svnDelimiter NonText
|
||||
HiLink svnRemoved Constant
|
||||
HiLink svnAdded Identifier
|
||||
HiLink svnModified Special
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Innovation Data Processing upstream.log file
|
||||
" Maintainer: Rob Owens <rowens@fdrinnovation.com>
|
||||
" Latest Revision: 2013-07-26
|
||||
" Latest Revision: 2013-09-19
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -31,13 +31,14 @@ syn match upstreamlog_Profile / Profile: \zs\S\{1,8}/
|
||||
syn match upstreamlog_Profile / Profile: \zs\S\{1,8}\ze, /
|
||||
syn match upstreamlog_Profile /, profile: \zs\S\{1,8}\ze,/
|
||||
syn match upstreamlog_Profile /found Profile: \zs\S\{1,8}\ze,/
|
||||
syn match upstreamlog_Profile /Backup Profile: \zs\ze Version date/
|
||||
syn match upstreamlog_Profile /Backup Profile: \zs\S\{1,8}\ze Version date/
|
||||
syn match upstreamlog_Profile /Backup profile: \zs\S\{1,8}\ze Version date/
|
||||
syn match upstreamlog_Profile /Full of \zs\S\{1,8}\ze$/
|
||||
syn match upstreamlog_Profile /Incr. of \zs\S\{1,8}\ze$/
|
||||
syn match upstreamlog_Profile /Profile=\zs\S\{1,8}\ze,/
|
||||
" Target:
|
||||
syn region upstreamlog_Target start="Computer: \zs" end="\ze[\]\)]"
|
||||
syn region upstreamlog_Target start="Computer name \zs" end="\ze,"
|
||||
syn region upstreamlog_Target start="Computer name \zs\"" end="\"\ze"
|
||||
syn region upstreamlog_Target start="request to registered name \zs" end=" "
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Innovation Data Processing usserver.log file
|
||||
" Maintainer: Rob Owens <rowens@fdrinnovation.com>
|
||||
" Latest Revision: 2013-07-26
|
||||
" Latest Revision: 2013-09-19
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -36,13 +36,14 @@ syn match usserverlog_Profile /, profile: \zs\S\{1,8}\ze,/
|
||||
syn match usserverlog_Profile /Expecting Profile: \zs\S\{1,8}\ze,/
|
||||
syn match usserverlog_Profile /found Profile: \zs\S\{1,8}\ze,/
|
||||
syn match usserverlog_Profile /Profile \zs\S\{1,8} \zeis a member of group: /
|
||||
syn match usserverlog_Profile /Backup Profile: \zs\ze Version date/
|
||||
syn match upstreamlog_Profile /Backup Profile: \zs\S\{1,8}\ze Version date/
|
||||
syn match upstreamlog_Profile /Backup profile: \zs\S\{1,8}\ze Version date/
|
||||
syn match usserverlog_Profile /Full of \zs\S\{1,8}\ze$/
|
||||
syn match usserverlog_Profile /Incr. of \zs\S\{1,8}\ze$/
|
||||
syn match usserverlog_Profile /Profile=\zs\S\{1,8}\ze,/
|
||||
" Target:
|
||||
syn region usserverlog_Target start="Computer: \zs" end="\ze[\]\)]"
|
||||
syn region usserverlog_Target start="Computer name \zs" end="\ze,"
|
||||
syn region usserverlog_Target start="Computer name \zs\"" end="\"\ze"
|
||||
syn region usserverlog_Target start="Registration add request successful \zs" end="$"
|
||||
syn region usserverlog_Target start="request to registered name \zs" end=" "
|
||||
syn region usserverlog_Target start=", sending to \zs" end="$"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Innovation Data Processing USW2KAgt.log file
|
||||
" Maintainer: Rob Owens <rowens@fdrinnovation.com>
|
||||
" Latest Revision: 2013-07-26
|
||||
" Latest Revision: 2013-09-19
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -26,13 +26,14 @@ syn match usw2kagtlog_IPaddr / \d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/
|
||||
syn match usw2kagtlog_Profile /Profile name \zs\"\S\{1,8}\"/
|
||||
syn match usw2kagtlog_Profile / Profile: \zs\S\{1,8}/
|
||||
syn match usw2kagtlog_Profile / Profile: \zs\S\{1,8}\ze, /
|
||||
syn match usw2kagtlog_Profile /Backup Profile: \zs\ze Version date/
|
||||
syn match upstreamlog_Profile /Backup Profile: \zs\S\{1,8}\ze Version date/
|
||||
syn match upstreamlog_Profile /Backup profile: \zs\S\{1,8}\ze Version date/
|
||||
syn match usw2kagtlog_Profile /Full of \zs\S\{1,8}\ze$/
|
||||
syn match usw2kagtlog_Profile /Incr. of \zs\S\{1,8}\ze$/
|
||||
syn match usw2kagtlog_Profile /profile name "\zs\S\{1,8}\ze"/
|
||||
" Target:
|
||||
syn region usw2kagtlog_Target start="Computer: \zs" end="\ze[\]\)]"
|
||||
syn region usw2kagtlog_Target start="Computer name \zs" end="\ze,"
|
||||
syn region usw2kagtlog_Target start="Computer name \zs\"" end="\"\ze"
|
||||
" Agent Keywords:
|
||||
syn keyword usw2kagtlog_Agentword opened closed
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
" Vim syntax file
|
||||
" Language: VHDL
|
||||
" Maintainer: Czo <Olivier.Sirol@lip6.fr>
|
||||
" Maintainer: Daniel Kho <daniel.kho@tauhop.com>
|
||||
" Previous Maintainer: Czo <Olivier.Sirol@lip6.fr>
|
||||
" Credits: Stephan Hegel <stephan.hegel@snc.siemens.com.cn>
|
||||
" Last Change: 2012 Jun 01
|
||||
" (Dominique Pelle added @Spell)
|
||||
" Last Changed: 2012 Feb 03 by Thilo Six
|
||||
" $Id: vhdl.vim,v 1.1 2004/06/13 15:34:56 vimboss Exp $
|
||||
|
||||
" VHSIC Hardware Description Language
|
||||
" Very High Scale Integrated Circuit
|
||||
" VHSIC (Very High Speed Integrated Circuit) Hardware Description Language
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -22,8 +22,8 @@ set cpo&vim
|
||||
" This is not VHDL. I use the C-Preprocessor cpp to generate different binaries
|
||||
" from one VHDL source file. Unfortunately there is no preprocessor for VHDL
|
||||
" available. If you don't like this, please remove the following lines.
|
||||
syn match cDefine "^#ifdef[ ]\+[A-Za-z_]\+"
|
||||
syn match cDefine "^#endif"
|
||||
"syn match cDefine "^#ifdef[ ]\+[A-Za-z_]\+"
|
||||
"syn match cDefine "^#endif"
|
||||
|
||||
" case is not significant
|
||||
syn case ignore
|
||||
@@ -31,11 +31,14 @@ syn case ignore
|
||||
" VHDL keywords
|
||||
syn keyword vhdlStatement access after alias all assert
|
||||
syn keyword vhdlStatement architecture array attribute
|
||||
syn keyword vhdlStatement assume assume_guarantee
|
||||
syn keyword vhdlStatement begin block body buffer bus
|
||||
syn keyword vhdlStatement case component configuration constant
|
||||
syn keyword vhdlStatement disconnect downto
|
||||
syn keyword vhdlStatement context cover
|
||||
syn keyword vhdlStatement default disconnect downto
|
||||
syn keyword vhdlStatement elsif end entity exit
|
||||
syn keyword vhdlStatement file for function
|
||||
syn keyword vhdlStatement fairness force
|
||||
syn keyword vhdlStatement generate generic group guarded
|
||||
syn keyword vhdlStatement impure in inertial inout is
|
||||
syn keyword vhdlStatement label library linkage literal loop
|
||||
@@ -43,12 +46,17 @@ syn keyword vhdlStatement map
|
||||
syn keyword vhdlStatement new next null
|
||||
syn keyword vhdlStatement of on open others out
|
||||
syn keyword vhdlStatement package port postponed procedure process pure
|
||||
syn keyword vhdlStatement parameter property protected
|
||||
syn keyword vhdlStatement range record register reject report return
|
||||
syn keyword vhdlStatement release restrict restrict_guarantee
|
||||
syn keyword vhdlStatement select severity signal shared
|
||||
syn keyword vhdlStatement subtype
|
||||
syn keyword vhdlStatement sequence strong
|
||||
syn keyword vhdlStatement then to transport type
|
||||
syn keyword vhdlStatement unaffected units until use
|
||||
syn keyword vhdlStatement variable wait when while with
|
||||
syn keyword vhdlStatement variable
|
||||
syn keyword vhdlStatement vmode vprop vunit
|
||||
syn keyword vhdlStatement wait when while with
|
||||
syn keyword vhdlStatement note warning error failure
|
||||
|
||||
" Special match for "if" and "else" since "else if" shouldn't be highlighted.
|
||||
@@ -60,6 +68,7 @@ syn match vhdlNone "\<else\s\+if\>\s"
|
||||
" Predefined VHDL types
|
||||
syn keyword vhdlType bit bit_vector
|
||||
syn keyword vhdlType character boolean integer real time
|
||||
syn keyword vhdlType boolean_vector integer_vector real_vector time_vector
|
||||
syn keyword vhdlType string severity_level
|
||||
" Predefined standard ieee VHDL types
|
||||
syn keyword vhdlType positive natural signed unsigned
|
||||
@@ -67,11 +76,11 @@ syn keyword vhdlType line text
|
||||
syn keyword vhdlType std_logic std_logic_vector
|
||||
syn keyword vhdlType std_ulogic std_ulogic_vector
|
||||
" Predefined non standard VHDL types for Mentor Graphics Sys1076/QuickHDL
|
||||
syn keyword vhdlType qsim_state qsim_state_vector
|
||||
syn keyword vhdlType qsim_12state qsim_12state_vector
|
||||
syn keyword vhdlType qsim_strength
|
||||
"syn keyword vhdlType qsim_state qsim_state_vector
|
||||
"syn keyword vhdlType qsim_12state qsim_12state_vector
|
||||
"syn keyword vhdlType qsim_strength
|
||||
" Predefined non standard VHDL types for Alliance VLSI CAD
|
||||
syn keyword vhdlType mux_bit mux_vector reg_bit reg_vector wor_bit wor_vector
|
||||
"syn keyword vhdlType mux_bit mux_vector reg_bit reg_vector wor_bit wor_vector
|
||||
|
||||
" array attributes
|
||||
syn match vhdlAttribute "\'high"
|
||||
@@ -122,14 +131,14 @@ syn case match
|
||||
" Values for standard VHDL types
|
||||
syn match vhdlVector "\'[0L1HXWZU\-\?]\'"
|
||||
" Values for non standard VHDL types qsim_12state for Mentor Graphics Sys1076/QuickHDL
|
||||
syn keyword vhdlVector S0S S1S SXS S0R S1R SXR S0Z S1Z SXZ S0I S1I SXI
|
||||
"syn keyword vhdlVector S0S S1S SXS S0R S1R SXR S0Z S1Z SXZ S0I S1I SXI
|
||||
syn case ignore
|
||||
|
||||
syn match vhdlVector "B\"[01_]\+\""
|
||||
syn match vhdlVector "O\"[0-7_]\+\""
|
||||
syn match vhdlVector "X\"[0-9a-f_]\+\""
|
||||
syn match vhdlCharacter "'.'"
|
||||
syn region vhdlString start=+"+ end=+"+ contains=@Spell
|
||||
syn region vhdlString start=+"+ end=+"+
|
||||
|
||||
" floating numbers
|
||||
syn match vhdlNumber "-\=\<\d\+\.\d\+\(E[+\-]\=\d\+\)\>"
|
||||
@@ -151,9 +160,15 @@ syn match vhdlSpecial "[().,;]"
|
||||
syn match vhdlTime "\<\d\+\s\+\(\([fpnum]s\)\|\(sec\)\|\(min\)\|\(hr\)\)\>"
|
||||
syn match vhdlTime "\<\d\+\.\d\+\s\+\(\([fpnum]s\)\|\(sec\)\|\(min\)\|\(hr\)\)\>"
|
||||
|
||||
syn match vhdlComment "--.*$" contains=@Spell
|
||||
syn keyword vhdlTodo contained TODO FIXME
|
||||
|
||||
syn region vhdlComment start="/\*" end="\*/" contains=vhdlTodo,@Spell
|
||||
syn match vhdlComment "--.*" contains=vhdlTodo,@Spell
|
||||
" syn match vhdlGlobal "[\'$#~!%@?\^\[\]{}\\]"
|
||||
|
||||
"Modify the following as needed. The trade-off is performance versus functionality.
|
||||
syn sync minlines=200
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
@@ -165,19 +180,20 @@ if version >= 508 || !exists("did_vhdl_syntax_inits")
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink cDefine PreProc
|
||||
" HiLink cDefine PreProc
|
||||
HiLink vhdlSpecial Special
|
||||
HiLink vhdlStatement Statement
|
||||
HiLink vhdlCharacter String
|
||||
HiLink vhdlCharacter Character
|
||||
HiLink vhdlString String
|
||||
HiLink vhdlVector String
|
||||
HiLink vhdlBoolean String
|
||||
HiLink vhdlVector Number
|
||||
HiLink vhdlBoolean Number
|
||||
HiLink vhdlTodo Todo
|
||||
HiLink vhdlComment Comment
|
||||
HiLink vhdlNumber String
|
||||
HiLink vhdlTime String
|
||||
HiLink vhdlNumber Number
|
||||
HiLink vhdlTime Number
|
||||
HiLink vhdlType Type
|
||||
HiLink vhdlOperator Type
|
||||
HiLink vhdlGlobal Error
|
||||
HiLink vhdlOperator Special
|
||||
" HiLink vhdlGlobal Error
|
||||
HiLink vhdlAttribute Type
|
||||
|
||||
delcommand HiLink
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 7.3 script
|
||||
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Jul 05, 2013
|
||||
" Version: 7.3-26
|
||||
" Language: Vim 7.4 script
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Aug 16, 2013
|
||||
" Version: 7.4-1
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
" Quit when a syntax file was already loaded {{{2
|
||||
@@ -550,15 +550,31 @@ syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' e
|
||||
" Allows users to specify the type of embedded script highlighting
|
||||
" they want: (perl/python/ruby/tcl support)
|
||||
" g:vimsyn_embed == 0 : don't embed any scripts
|
||||
" g:vimsyn_embed ~= 'l' : embed lua (but only if vim supports it)
|
||||
" g:vimsyn_embed ~= 'm' : embed mzscheme (but only if vim supports it)
|
||||
" g:vimsyn_embed ~= 'p' : embed perl (but only if vim supports it)
|
||||
" g:vimsyn_embed ~= 'P' : embed python (but only if vim supports it)
|
||||
" g:vimsyn_embed ~= 'r' : embed ruby (but only if vim supports it)
|
||||
" g:vimsyn_embed ~= 't' : embed tcl (but only if vim supports it)
|
||||
if !exists("g:vimsyn_embed")
|
||||
let g:vimsyn_embed= "lmpPr"
|
||||
" g:vimsyn_embed ~= 'l' : embed lua
|
||||
" g:vimsyn_embed ~= 'm' : embed mzscheme
|
||||
" g:vimsyn_embed ~= 'p' : embed perl
|
||||
" g:vimsyn_embed ~= 'P' : embed python
|
||||
" g:vimsyn_embed ~= 'r' : embed ruby
|
||||
" g:vimsyn_embed ~= 't' : embed tcl
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
" apparently has("tcl") has been hanging vim on some windows systems with cygwin
|
||||
let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
|
||||
else
|
||||
let s:trytcl= 1
|
||||
endif
|
||||
if !exists("g:vimsyn_embed")
|
||||
let g:vimsyn_embed= ""
|
||||
if has("lua") |let g:vimsyn_embed= g:vimsyn_embed."l"|endif
|
||||
if has("mzscheme") |let g:vimsyn_embed= g:vimsyn_embed."m"|endif
|
||||
if has("perl") |let g:vimsyn_embed= g:vimsyn_embed."p"|endif
|
||||
if has("python") |let g:vimsyn_embed= g:vimsyn_embed."P"
|
||||
elseif has("python3")|let g:vimsyn_embed= g:vimsyn_embed."P"|endif
|
||||
if has("ruby") |let g:vimsyn_embed= g:vimsyn_embed."r"|endif
|
||||
if s:trytcl
|
||||
if has("tcl") |let g:vimsyn_embed= g:vimsyn_embed."t"|endif
|
||||
endif
|
||||
endif
|
||||
unlet s:trytcl
|
||||
|
||||
" [-- lua --] {{{3
|
||||
let s:luapath= fnameescape(expand("<sfile>:p:h")."/lua.vim")
|
||||
@@ -570,7 +586,7 @@ if !filereadable(s:luapath)
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath)
|
||||
if (g:vimsyn_embed =~ 'l') && filereadable(s:luapath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimLuaScript ".s:luapath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'l'
|
||||
@@ -597,7 +613,7 @@ if !filereadable(s:perlpath)
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath)
|
||||
if (g:vimsyn_embed =~ 'p') && filereadable(s:perlpath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimPerlScript ".s:perlpath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p'
|
||||
@@ -624,7 +640,7 @@ if !filereadable(s:rubypath)
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath)
|
||||
if (g:vimsyn_embed =~ 'r') && filereadable(s:rubypath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimRubyScript ".s:rubypath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r'
|
||||
@@ -650,7 +666,7 @@ if !filereadable(s:pythonpath)
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if g:vimsyn_embed =~ 'P' && (has("python") || has("python3")) && filereadable(s:pythonpath)
|
||||
if g:vimsyn_embed =~ 'P' && filereadable(s:pythonpath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimPythonScript ".s:pythonpath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P'
|
||||
@@ -668,43 +684,31 @@ endif
|
||||
unlet s:pythonpath
|
||||
|
||||
" [-- tcl --] {{{3
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
" apparently has("tcl") has been hanging vim on some windows systems with cygwin
|
||||
let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
|
||||
else
|
||||
let s:trytcl= 1
|
||||
endif
|
||||
if s:trytcl
|
||||
let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim")
|
||||
if !filereadable(s:tclpath)
|
||||
for s:tclpath in split(globpath(&rtp,"syntax/tcl.vim"),"\n")
|
||||
if filereadable(fnameescape(s:tclpath))
|
||||
let s:tclpath= fnameescape(s:tclpath)
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimTclScript ".s:tclpath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't'
|
||||
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
|
||||
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
|
||||
else
|
||||
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
|
||||
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
|
||||
let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim")
|
||||
if !filereadable(s:tclpath)
|
||||
for s:tclpath in split(globpath(&rtp,"syntax/tcl.vim"),"\n")
|
||||
if filereadable(fnameescape(s:tclpath))
|
||||
let s:tclpath= fnameescape(s:tclpath)
|
||||
break
|
||||
endif
|
||||
syn cluster vimFuncBodyList add=vimTclScript
|
||||
endfor
|
||||
endif
|
||||
if (g:vimsyn_embed =~ 't') && filereadable(s:tclpath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimTclScript ".s:tclpath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't'
|
||||
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
|
||||
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
|
||||
else
|
||||
syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
|
||||
syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
|
||||
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
|
||||
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
|
||||
endif
|
||||
unlet s:tclpath
|
||||
syn cluster vimFuncBodyList add=vimTclScript
|
||||
else
|
||||
syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
|
||||
syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
|
||||
endif
|
||||
unlet s:trytcl
|
||||
unlet s:tclpath
|
||||
|
||||
" [-- mzscheme --] {{{3
|
||||
let s:mzschemepath= fnameescape(expand("<sfile>:p:h")."/scheme.vim")
|
||||
|
||||
@@ -108,9 +108,10 @@ execute 'syn match yamlFlowMappingKey /'.s:ns_plain_in.'\ze\s*:/ contained '.
|
||||
syn match yamlFlowMappingMerge /<<\ze\s*:/ contained nextgroup=yamlKeyValueDelimiter
|
||||
|
||||
syn match yamlBlockCollectionItemStart '^\s*\zs-\%(\s\+-\)*\s' nextgroup=yamlBlockMappingKey,yamlBlockMappingMerge
|
||||
execute 'syn match yamlBlockMappingKey /^\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ '.
|
||||
" Use the old regexp engine, the NFA engine doesn't like all the \@ items.
|
||||
execute 'syn match yamlBlockMappingKey /\%#=1^\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ '.
|
||||
\'nextgroup=yamlKeyValueDelimiter'
|
||||
execute 'syn match yamlBlockMappingKey /\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ contained '.
|
||||
execute 'syn match yamlBlockMappingKey /\%#=1\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ contained '.
|
||||
\'nextgroup=yamlKeyValueDelimiter'
|
||||
syn match yamlBlockMappingMerge /^\s*\zs<<\ze:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter
|
||||
syn match yamlBlockMappingMerge /<<\ze\s*:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter contained
|
||||
|
||||
@@ -55,8 +55,8 @@ NOTE: The cursor keys should also work. But using hjkl you will be able to
|
||||
2. Type: :q! <ENTER>.
|
||||
This exits the editor, DISCARDING any changes you have made.
|
||||
|
||||
3. When you see the shell prompt, type the command that got you into this
|
||||
tutor. That would be: vimtutor <ENTER>
|
||||
3. Get back here by executing the command that got you into this tutor. That
|
||||
might be: vimtutor <ENTER>
|
||||
|
||||
4. If you have these steps memorized and are confident, execute steps
|
||||
1 through 3 to exit and re-enter the editor.
|
||||
|
||||
@@ -121,7 +121,7 @@ NOTA: A medida que vaya avanzando en este tutor no intente memorizar,
|
||||
h (izquierda) j (abajo) k (arriba) l (derecha)
|
||||
|
||||
2. Para acceder a Vim (desde el s<EFBFBD>mbolo del sistema %) escriba:
|
||||
vin FILENAME <INTRO>
|
||||
vim FILENAME <INTRO>
|
||||
|
||||
3. Para salir de Vim escriba: <ESC> :q! <INTRO> para eliminar todos
|
||||
los cambios.
|
||||
|
||||
@@ -638,7 +638,7 @@ NOTA: Tutti i comandi : devono essere terminati premendo <INVIO>
|
||||
NOTA: Se esci da Vim e riesegui Vim battendo vim TEST , il file aperto
|
||||
sar<61> una copia esatta di "tutor.it" al momento del salvataggio.
|
||||
|
||||
5. Ora cancella il file battendo (MR-DOS): :!del TEST
|
||||
5. Ora cancella il file battendo (MS-DOS): :!del TEST
|
||||
o (Unix): :!rm TEST
|
||||
|
||||
|
||||
|
||||
@@ -638,7 +638,7 @@ NOTA: Tutti i comandi : devono essere terminati premendo <INVIO>
|
||||
NOTA: Se esci da Vim e riesegui Vim battendo vim TEST , il file aperto
|
||||
sarà una copia esatta di "tutor.it" al momento del salvataggio.
|
||||
|
||||
5. Ora cancella il file battendo (MR-DOS): :!del TEST
|
||||
5. Ora cancella il file battendo (MS-DOS): :!del TEST
|
||||
o (Unix): :!rm TEST
|
||||
|
||||
|
||||
|
||||
1592
runtime/vimlogo.eps
1592
runtime/vimlogo.eps
File diff suppressed because it is too large
Load Diff
@@ -31,12 +31,12 @@ endif
|
||||
ifeq ($(CROSS),yes)
|
||||
DEL = rm
|
||||
ifeq ($(MINGWOLD),yes)
|
||||
CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
|
||||
CXXFLAGS := -O2 -fvtable-thunks
|
||||
else
|
||||
CXXFLAGS := -O2 -mno-cygwin
|
||||
CXXFLAGS := -O2
|
||||
endif
|
||||
else
|
||||
CXXFLAGS := -O2 -mno-cygwin
|
||||
CXXFLAGS := -O2
|
||||
ifneq (sh.exe, $(SHELL))
|
||||
DEL = rm
|
||||
else
|
||||
|
||||
@@ -419,7 +419,7 @@ CPUARG = -$(CPUNR)
|
||||
ALIGNARG = -a$(ALIGN)
|
||||
#
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
DEFINES=$(DEFINES) -DDEBUG
|
||||
DEFINES=$(DEFINES) -DDEBUG -D_DEBUG
|
||||
!endif
|
||||
#
|
||||
!if ("$(OLE)"=="yes")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# Makefile for VIM on Win32, using Cygnus gcc
|
||||
# Last updated by Dan Sharp. Last Change: 2013 Apr 22
|
||||
# Last updated by Dan Sharp. Last Change: 2013 Dec 11
|
||||
#
|
||||
# Also read INSTALLpc.txt!
|
||||
#
|
||||
@@ -155,7 +155,7 @@ endif
|
||||
ifeq (yes, $(DYNAMIC_PERL))
|
||||
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
|
||||
else
|
||||
EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
|
||||
EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -272,7 +272,7 @@ ifeq (yes, $(DYNAMIC_RUBY))
|
||||
DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
|
||||
DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER)
|
||||
else
|
||||
EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME).lib
|
||||
EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -439,8 +439,6 @@ endif
|
||||
##############################
|
||||
ifeq (yes, $(USEDLL))
|
||||
DEFINES += -D_MAX_PATH=256 -D__CYGWIN__
|
||||
else
|
||||
INCLUDES += -mno-cygwin
|
||||
endif
|
||||
|
||||
##############################
|
||||
|
||||
@@ -359,6 +359,7 @@ WINDRES_CC = $(CC)
|
||||
|
||||
CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
|
||||
WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
|
||||
EXTRA_LIBS =
|
||||
|
||||
ifdef GETTEXT
|
||||
DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
|
||||
@@ -377,9 +378,10 @@ endif
|
||||
endif
|
||||
|
||||
ifdef PERL
|
||||
CFLAGS += -I$(PERLLIBS) -DFEAT_PERL -L$(PERLLIBS)
|
||||
CFLAGS += -I$(PERLLIBS) -DFEAT_PERL
|
||||
ifeq (yes, $(DYNAMIC_PERL))
|
||||
CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
|
||||
EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -596,7 +598,7 @@ ifdef XPM
|
||||
ifeq (yes, $(GUI))
|
||||
OBJ += $(OUTDIR)/xpm_w32.o
|
||||
# You'll need libXpm.a from http://gnuwin32.sf.net
|
||||
LIB += -L $(XPM)/lib -lXpm
|
||||
LIB += -L$(XPM)/lib -lXpm
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -632,7 +634,7 @@ endif
|
||||
|
||||
ifdef PERL
|
||||
ifeq (no, $(DYNAMIC_PERL))
|
||||
LIB += -lperl$(PERL_VER)
|
||||
LIB += -L$(PERLLIBS) -lperl$(PERL_VER)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -424,6 +424,9 @@ MSVCVER = 11.0
|
||||
!if "$(_NMAKE_VER)" == "11.00.60610.1"
|
||||
MSVCVER = 11.0
|
||||
!endif
|
||||
!if "$(_NMAKE_VER)" == "12.00.21005.1"
|
||||
MSVCVER = 12.0
|
||||
!endif
|
||||
!endif
|
||||
|
||||
# Abort building VIM if version of VC is unrecognised.
|
||||
@@ -438,7 +441,7 @@ MSVCVER = 11.0
|
||||
!endif
|
||||
|
||||
# Convert processor ID to MVC-compatible number
|
||||
!if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0")
|
||||
!if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0") && ("$(MSVCVER)" != "12.0")
|
||||
!if "$(CPUNR)" == "i386"
|
||||
CPUARG = /G3
|
||||
!elseif "$(CPUNR)" == "i486"
|
||||
@@ -472,7 +475,7 @@ OPTFLAG = /O2
|
||||
OPTFLAG = /Ox
|
||||
!endif
|
||||
|
||||
!if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0")
|
||||
!if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0")
|
||||
# Use link time code generation if not worried about size
|
||||
!if "$(OPTIMIZE)" != "SPACE"
|
||||
OPTFLAG = $(OPTFLAG) /GL
|
||||
@@ -485,7 +488,7 @@ CFLAGS=$(CFLAGS) $(WP64CHECK)
|
||||
!endif
|
||||
|
||||
# Static code analysis generally available starting with VS2012
|
||||
!if ("$(ANALYZE)" == "yes") && ("$(MSVCVER)" == "11.0")
|
||||
!if ("$(ANALYZE)" == "yes") && (("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0"))
|
||||
CFLAGS=$(CFLAGS) /analyze
|
||||
!endif
|
||||
|
||||
@@ -822,7 +825,12 @@ PERL_INCDIR = $(PERL)\Lib$(PERL_ARCH)\Core
|
||||
PERL_LIB = $(PERL_INCDIR)\perl.lib
|
||||
!else
|
||||
PERL_DLL = perl$(PERL_VER).dll
|
||||
!if exist($(PERL_INCDIR)\perl$(PERL_VER).lib)
|
||||
PERL_LIB = $(PERL_INCDIR)\perl$(PERL_VER).lib
|
||||
!else
|
||||
# For ActivePerl 5.18 and later
|
||||
PERL_LIB = $(PERL_INCDIR)\libperl$(PERL_VER).a
|
||||
!endif
|
||||
!endif
|
||||
|
||||
CFLAGS = $(CFLAGS) -DFEAT_PERL
|
||||
@@ -943,7 +951,7 @@ LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \
|
||||
|
||||
# Report link time code generation progress if used.
|
||||
!ifdef NODEBUG
|
||||
!if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0")
|
||||
!if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0")
|
||||
!if "$(OPTIMIZE)" != "SPACE"
|
||||
LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
|
||||
!endif
|
||||
|
||||
@@ -1882,7 +1882,8 @@ test1 test2 test3 test4 test5 test6 test7 test8 test9 \
|
||||
test60 test61 test62 test63 test64 test65 test66 test67 test68 test69 \
|
||||
test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 \
|
||||
test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 \
|
||||
test90 test91 test92 test93 test94 test95 test96 test97 test98 test99:
|
||||
test90 test91 test92 test93 test94 test95 test96 test97 test98 test99 \
|
||||
test100 test101 test102 test103 test104 test105 test106 test107:
|
||||
cd testdir; rm $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET)
|
||||
|
||||
testclean:
|
||||
|
||||
47
src/auto/configure
vendored
47
src/auto/configure
vendored
@@ -3989,6 +3989,24 @@ if test "$GCC" = yes; then
|
||||
fi
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for recent clang version" >&5
|
||||
$as_echo_n "checking for recent clang version... " >&6; }
|
||||
CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'`
|
||||
if test x"$CLANG_VERSION_STRING" != x"" ; then
|
||||
CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*/\1/p'`
|
||||
CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*/\1/p'`
|
||||
CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\)/\1/p'`
|
||||
CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CLANG_VERSION" >&5
|
||||
$as_echo "$CLANG_VERSION" >&6; }
|
||||
if test "$CLANG_VERSION" -ge 500002075 ; then
|
||||
CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'`
|
||||
fi
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
if test "$cross_compiling" = yes; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot compile a simple program; if not cross compiling check CC and CFLAGS" >&5
|
||||
$as_echo "cannot compile a simple program; if not cross compiling check CC and CFLAGS" >&6; }
|
||||
@@ -4203,7 +4221,7 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
MACOSX=yes
|
||||
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
|
||||
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX"
|
||||
|
||||
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
|
||||
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
|
||||
@@ -4245,6 +4263,19 @@ else
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
for ac_header in AvailabilityMacros.h
|
||||
do :
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_AVAILABILITYMACROS_H 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4280,7 +4311,7 @@ fi
|
||||
|
||||
if test "$GCC" = yes -a "$local_dir" != no; then
|
||||
echo 'void f(){}' > conftest.c
|
||||
have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
|
||||
have_local_include=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
|
||||
have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
|
||||
rm -f conftest.c conftest.o
|
||||
fi
|
||||
@@ -4712,7 +4743,7 @@ $as_echo_n "checking LuaJIT version... " >&6; }
|
||||
if test "${vi_cv_version_luajit+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
vi_cv_version_luajit=`${vi_cv_path_luajit} -v | sed 's/LuaJIT \([0-9.]*\)\.[0-9] .*/\1/'`
|
||||
vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([0-9.]*\)\.[0-9]\(-[a-z0-9]*\)* .*/\1/'`
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5
|
||||
$as_echo "$vi_cv_version_luajit" >&6; }
|
||||
@@ -12659,6 +12690,8 @@ $as_echo_n "checking for NLS... " >&6; }
|
||||
if test -f po/Makefile; then
|
||||
have_gettext="no"
|
||||
if test -n "$MSGFMT"; then
|
||||
olibs=$LIBS
|
||||
LIBS=""
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <libintl.h>
|
||||
@@ -12672,10 +12705,9 @@ gettext("Test");
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works" >&5
|
||||
$as_echo "gettext() works" >&6; }; have_gettext="yes"
|
||||
$as_echo "gettext() works" >&6; }; have_gettext="yes"; LIBS=$olibs
|
||||
else
|
||||
olibs=$LIBS
|
||||
LIBS="$LIBS -lintl"
|
||||
LIBS="-lintl"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <libintl.h>
|
||||
@@ -12689,7 +12721,8 @@ gettext("Test");
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works with -lintl" >&5
|
||||
$as_echo "gettext() works with -lintl" >&6; }; have_gettext="yes"
|
||||
$as_echo "gettext() works with -lintl" >&6; }; have_gettext="yes";
|
||||
LIBS="$olibs -lintl"
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() doesn't work" >&5
|
||||
$as_echo "gettext() doesn't work" >&6; };
|
||||
|
||||
94
src/buffer.c
94
src/buffer.c
@@ -211,7 +211,12 @@ open_buffer(read_stdin, eap, flags)
|
||||
|
||||
/* if first time loading this buffer, init b_chartab[] */
|
||||
if (curbuf->b_flags & BF_NEVERLOADED)
|
||||
{
|
||||
(void)buf_init_chartab(curbuf, FALSE);
|
||||
#ifdef FEAT_CINDENT
|
||||
parse_cino(curbuf);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Set/reset the Changed flag first, autocmds may change the buffer.
|
||||
@@ -989,6 +994,50 @@ do_bufdel(command, arg, addr_count, start_bnr, end_bnr, forceit)
|
||||
#if defined(FEAT_LISTCMDS) || defined(FEAT_PYTHON) \
|
||||
|| defined(FEAT_PYTHON3) || defined(PROTO)
|
||||
|
||||
static int empty_curbuf __ARGS((int close_others, int forceit, int action));
|
||||
|
||||
/*
|
||||
* Make the current buffer empty.
|
||||
* Used when it is wiped out and it's the last buffer.
|
||||
*/
|
||||
static int
|
||||
empty_curbuf(close_others, forceit, action)
|
||||
int close_others;
|
||||
int forceit;
|
||||
int action;
|
||||
{
|
||||
int retval;
|
||||
buf_T *buf = curbuf;
|
||||
|
||||
if (action == DOBUF_UNLOAD)
|
||||
{
|
||||
EMSG(_("E90: Cannot unload last buffer"));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
if (close_others)
|
||||
{
|
||||
/* Close any other windows on this buffer, then make it empty. */
|
||||
#ifdef FEAT_WINDOWS
|
||||
close_windows(buf, TRUE);
|
||||
#endif
|
||||
}
|
||||
|
||||
setpcmark();
|
||||
retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
|
||||
forceit ? ECMD_FORCEIT : 0, curwin);
|
||||
|
||||
/*
|
||||
* do_ecmd() may create a new buffer, then we have to delete
|
||||
* the old one. But do_ecmd() may have done that already, check
|
||||
* if the buffer still exists.
|
||||
*/
|
||||
if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
|
||||
close_buffer(NULL, buf, action, FALSE);
|
||||
if (!close_others)
|
||||
need_fileinfo = FALSE;
|
||||
return retval;
|
||||
}
|
||||
/*
|
||||
* Implementation of the commands for the buffer list.
|
||||
*
|
||||
@@ -1109,7 +1158,6 @@ do_buffer(action, start, dir, count, forceit)
|
||||
if (unload)
|
||||
{
|
||||
int forward;
|
||||
int retval;
|
||||
|
||||
/* When unloading or deleting a buffer that's already unloaded and
|
||||
* unlisted: fail silently. */
|
||||
@@ -1150,30 +1198,7 @@ do_buffer(action, start, dir, count, forceit)
|
||||
if (bp->b_p_bl && bp != buf)
|
||||
break;
|
||||
if (bp == NULL && buf == curbuf)
|
||||
{
|
||||
if (action == DOBUF_UNLOAD)
|
||||
{
|
||||
EMSG(_("E90: Cannot unload last buffer"));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
/* Close any other windows on this buffer, then make it empty. */
|
||||
#ifdef FEAT_WINDOWS
|
||||
close_windows(buf, TRUE);
|
||||
#endif
|
||||
setpcmark();
|
||||
retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
|
||||
forceit ? ECMD_FORCEIT : 0, curwin);
|
||||
|
||||
/*
|
||||
* do_ecmd() may create a new buffer, then we have to delete
|
||||
* the old one. But do_ecmd() may have done that already, check
|
||||
* if the buffer still exists.
|
||||
*/
|
||||
if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
|
||||
close_buffer(NULL, buf, action, FALSE);
|
||||
return retval;
|
||||
}
|
||||
return empty_curbuf(TRUE, forceit, action);
|
||||
|
||||
#ifdef FEAT_WINDOWS
|
||||
/*
|
||||
@@ -1186,7 +1211,10 @@ do_buffer(action, start, dir, count, forceit)
|
||||
&& !(curwin->w_closing || curwin->w_buffer->b_closing)
|
||||
# endif
|
||||
&& (firstwin != lastwin || first_tabpage->tp_next != NULL))
|
||||
win_close(curwin, FALSE);
|
||||
{
|
||||
if (win_close(curwin, FALSE) == FAIL)
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -1204,7 +1232,8 @@ do_buffer(action, start, dir, count, forceit)
|
||||
|
||||
/*
|
||||
* Deleting the current buffer: Need to find another buffer to go to.
|
||||
* There must be another, otherwise it would have been handled above.
|
||||
* There should be another, otherwise it would have been handled
|
||||
* above. However, autocommands may have deleted all buffers.
|
||||
* First use au_new_curbuf, if it is valid.
|
||||
* Then prefer the buffer we most recently visited.
|
||||
* Else try to find one that is loaded, after the current buffer,
|
||||
@@ -1303,6 +1332,13 @@ do_buffer(action, start, dir, count, forceit)
|
||||
}
|
||||
}
|
||||
|
||||
if (buf == NULL)
|
||||
{
|
||||
/* Autocommands must have wiped out all other buffers. Only option
|
||||
* now is to make the current buffer empty. */
|
||||
return empty_curbuf(FALSE, forceit, action);
|
||||
}
|
||||
|
||||
/*
|
||||
* make buf current buffer
|
||||
*/
|
||||
@@ -1941,6 +1977,7 @@ free_buf_options(buf, free_p_ff)
|
||||
clear_string_option(&buf->b_p_qe);
|
||||
#endif
|
||||
buf->b_p_ar = -1;
|
||||
buf->b_p_ul = NO_LOCAL_UNDOLEVEL;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4059,7 +4096,8 @@ build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar,
|
||||
item[curitem].minwid = -syn_namen2id(t, (int)(s - t));
|
||||
curitem++;
|
||||
}
|
||||
++s;
|
||||
if (*s != NUL)
|
||||
++s;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -442,3 +442,6 @@
|
||||
|
||||
/* Define if you want Cygwin to use the WIN32 clipboard, not compatible with X11*/
|
||||
#undef FEAT_CYGWIN_WIN32_CLIPBOARD
|
||||
|
||||
/* Define if we have AvailabilityMacros.h on Mac OS X */
|
||||
#undef HAVE_AVAILABILITYMACROS_H
|
||||
|
||||
@@ -62,6 +62,29 @@ if test "$GCC" = yes; then
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl clang-500.2.75 or around has abandoned -f[no-]strength-reduce and issues a
|
||||
dnl warning when that flag is passed to. Accordingly, adjust CFLAGS based on
|
||||
dnl the version number of the clang in use.
|
||||
dnl Note that this does not work to get the version of clang 3.1 or 3.2.
|
||||
AC_MSG_CHECKING(for recent clang version)
|
||||
CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\).*$/\1/p'`
|
||||
if test x"$CLANG_VERSION_STRING" != x"" ; then
|
||||
CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*/\1/p'`
|
||||
CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*/\1/p'`
|
||||
CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)/\1/p'`
|
||||
CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION`
|
||||
AC_MSG_RESULT($CLANG_VERSION)
|
||||
dnl If you find the same issue with versions earlier than 500.2.75,
|
||||
dnl change the constant 500002075 below appropriately. To get the
|
||||
dnl integer corresponding to a version number, refer to the
|
||||
dnl definition of CLANG_VERSION above.
|
||||
if test "$CLANG_VERSION" -ge 500002075 ; then
|
||||
CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'`
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
dnl If configure thinks we are cross compiling, there might be something
|
||||
dnl wrong with the CC or CFLAGS settings, give a useful warning message
|
||||
if test "$cross_compiling" = yes; then
|
||||
@@ -181,7 +204,8 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
|
||||
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
|
||||
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
|
||||
dnl TODO: use -arch i386 on Intel machines
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
|
||||
dnl Removed -no-cpp-precomp, only for very old compilers.
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX"
|
||||
|
||||
dnl If Carbon is found, assume we don't want X11
|
||||
dnl unless it was specifically asked for (--with-x)
|
||||
@@ -205,6 +229,10 @@ else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon
|
||||
dnl so we need to include it to have access to version macros.
|
||||
AC_CHECK_HEADERS(AvailabilityMacros.h)
|
||||
|
||||
AC_SUBST(OS_EXTRA_SRC)
|
||||
AC_SUBST(OS_EXTRA_OBJ)
|
||||
|
||||
@@ -235,8 +263,8 @@ if test "$cross_compiling" = no; then
|
||||
])
|
||||
if test "$GCC" = yes -a "$local_dir" != no; then
|
||||
echo 'void f(){}' > conftest.c
|
||||
dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
|
||||
have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
|
||||
dnl Removed -no-cpp-precomp, only needed for OS X 10.2 (Ben Fowler)
|
||||
have_local_include=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
|
||||
have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
|
||||
rm -f conftest.c conftest.o
|
||||
fi
|
||||
@@ -468,7 +496,7 @@ if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
|
||||
if test "X$vi_cv_path_luajit" != "X"; then
|
||||
dnl -- find LuaJIT version
|
||||
AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit,
|
||||
[ vi_cv_version_luajit=`${vi_cv_path_luajit} -v | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]] .*/\1/'` ])
|
||||
[ vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]]\(-[[a-z0-9]]*\)* .*/\1/'` ])
|
||||
AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit,
|
||||
[ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ])
|
||||
vi_cv_path_lua="$vi_cv_path_luajit"
|
||||
@@ -3697,6 +3725,9 @@ if test "$MANDEF" = "man -s"; then
|
||||
fi
|
||||
|
||||
dnl Check if gettext() is working and if it needs -lintl
|
||||
dnl We take care to base this on an empty LIBS: on some systems libelf would be
|
||||
dnl in LIBS and implicitly take along libintl. The final LIBS would then not
|
||||
dnl contain libintl, and the link step would fail due to -Wl,--as-needed.
|
||||
AC_MSG_CHECKING(--disable-nls argument)
|
||||
AC_ARG_ENABLE(nls,
|
||||
[ --disable-nls Don't support NLS (gettext()).], ,
|
||||
@@ -3715,16 +3746,18 @@ if test "$enable_nls" = "yes"; then
|
||||
if test -f po/Makefile; then
|
||||
have_gettext="no"
|
||||
if test -n "$MSGFMT"; then
|
||||
olibs=$LIBS
|
||||
LIBS=""
|
||||
AC_TRY_LINK(
|
||||
[#include <libintl.h>],
|
||||
[gettext("Test");],
|
||||
AC_MSG_RESULT([gettext() works]); have_gettext="yes",
|
||||
olibs=$LIBS
|
||||
LIBS="$LIBS -lintl"
|
||||
AC_MSG_RESULT([gettext() works]); have_gettext="yes"; LIBS=$olibs,
|
||||
LIBS="-lintl"
|
||||
AC_TRY_LINK(
|
||||
[#include <libintl.h>],
|
||||
[gettext("Test");],
|
||||
AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
|
||||
AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes";
|
||||
LIBS="$olibs -lintl",
|
||||
AC_MSG_RESULT([gettext() doesn't work]);
|
||||
LIBS=$olibs))
|
||||
else
|
||||
|
||||
@@ -1203,7 +1203,7 @@ ex_diffoff(eap)
|
||||
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
{
|
||||
if (wp == curwin || (eap->forceit && wp->w_p_diff))
|
||||
if (eap->forceit ? wp->w_p_diff : wp == curwin)
|
||||
{
|
||||
/* Set 'diff', 'scrollbind' off and 'wrap' on. If option values
|
||||
* were saved in diff_win_options() restore them. */
|
||||
|
||||
@@ -1192,23 +1192,29 @@ install_vimrc(int idx)
|
||||
fprintf(fd, " if arg3 =~ ' ' | let arg3 = '\"' . arg3 . '\"' | endif\n");
|
||||
|
||||
/* If the path has a space: When using cmd.exe (Win NT/2000/XP) put
|
||||
* quotes around the whole command and around the diff command.
|
||||
* quotes around the diff command and rely on the default value of
|
||||
* shellxquote to solve the quoting problem for the whole command.
|
||||
*
|
||||
* Otherwise put a double quote just before the space and at the
|
||||
* end of the command. Putting quotes around the whole thing
|
||||
* doesn't work on Win 95/98/ME. This is mostly guessed! */
|
||||
fprintf(fd, " let eq = ''\n");
|
||||
fprintf(fd, " if $VIMRUNTIME =~ ' '\n");
|
||||
fprintf(fd, " if &sh =~ '\\<cmd'\n");
|
||||
fprintf(fd, " let cmd = '\"\"' . $VIMRUNTIME . '\\diff\"'\n");
|
||||
fprintf(fd, " let eq = '\"'\n");
|
||||
fprintf(fd, " if empty(&shellxquote)\n");
|
||||
fprintf(fd, " let l:shxq_sav = ''\n");
|
||||
fprintf(fd, " set shellxquote&\n");
|
||||
fprintf(fd, " endif\n");
|
||||
fprintf(fd, " let cmd = '\"' . $VIMRUNTIME . '\\diff\"'\n");
|
||||
fprintf(fd, " else\n");
|
||||
fprintf(fd, " let cmd = substitute($VIMRUNTIME, ' ', '\" ', '') . '\\diff\"'\n");
|
||||
fprintf(fd, " endif\n");
|
||||
fprintf(fd, " else\n");
|
||||
fprintf(fd, " let cmd = $VIMRUNTIME . '\\diff'\n");
|
||||
fprintf(fd, " endif\n");
|
||||
fprintf(fd, " silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq\n");
|
||||
|
||||
fprintf(fd, " silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3\n");
|
||||
fprintf(fd, " if exists('l:shxq_sav')\n");
|
||||
fprintf(fd, " let &shellxquote=l:shxq_sav\n");
|
||||
fprintf(fd, " endif\n");
|
||||
fprintf(fd, "endfunction\n");
|
||||
fprintf(fd, "\n");
|
||||
}
|
||||
@@ -1773,9 +1779,11 @@ build_shortcut(
|
||||
|
||||
/*
|
||||
* We used to use "homedir" as the working directory, but that is a bad choice
|
||||
* on multi-user systems. Not specifying a directory appears to work best.
|
||||
* on multi-user systems. However, not specifying a directory results in the
|
||||
* current directory to be c:\Windows\system32 on Windows 7. Use environment
|
||||
* variables instead.
|
||||
*/
|
||||
#define WORKDIR ""
|
||||
#define WORKDIR "%HOMEDRIVE%%HOMEPATH%"
|
||||
|
||||
/*
|
||||
* Create shortcut(s) in the Start Menu\Programs\Vim folder.
|
||||
|
||||
183
src/edit.c
183
src/edit.c
@@ -199,7 +199,7 @@ static void check_spell_redraw __ARGS((void));
|
||||
static void spell_back_to_badword __ARGS((void));
|
||||
static int spell_bad_len = 0; /* length of located bad word */
|
||||
#endif
|
||||
static void stop_insert __ARGS((pos_T *end_insert_pos, int esc));
|
||||
static void stop_insert __ARGS((pos_T *end_insert_pos, int esc, int nomove));
|
||||
static int echeck_abbr __ARGS((int));
|
||||
static int replace_pop __ARGS((void));
|
||||
static void replace_join __ARGS((int off));
|
||||
@@ -1556,87 +1556,89 @@ ins_redraw(ready)
|
||||
int conceal_update_lines = FALSE;
|
||||
#endif
|
||||
|
||||
if (!char_avail())
|
||||
{
|
||||
if (char_avail())
|
||||
return;
|
||||
|
||||
#if defined(FEAT_AUTOCMD) || defined(FEAT_CONCEAL)
|
||||
/* Trigger CursorMoved if the cursor moved. Not when the popup menu is
|
||||
* visible, the command might delete it. */
|
||||
if (ready && (
|
||||
/* Trigger CursorMoved if the cursor moved. Not when the popup menu is
|
||||
* visible, the command might delete it. */
|
||||
if (ready && (
|
||||
# ifdef FEAT_AUTOCMD
|
||||
has_cursormovedI()
|
||||
has_cursormovedI()
|
||||
# endif
|
||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_CONCEAL)
|
||||
||
|
||||
||
|
||||
# endif
|
||||
# ifdef FEAT_CONCEAL
|
||||
curwin->w_p_cole > 0
|
||||
curwin->w_p_cole > 0
|
||||
# endif
|
||||
)
|
||||
&& !equalpos(last_cursormoved, curwin->w_cursor)
|
||||
)
|
||||
&& !equalpos(last_cursormoved, curwin->w_cursor)
|
||||
# ifdef FEAT_INS_EXPAND
|
||||
&& !pum_visible()
|
||||
# endif
|
||||
)
|
||||
{
|
||||
# ifdef FEAT_SYN_HL
|
||||
/* Need to update the screen first, to make sure syntax
|
||||
* highlighting is correct after making a change (e.g., inserting
|
||||
* a "(". The autocommand may also require a redraw, so it's done
|
||||
* again below, unfortunately. */
|
||||
if (syntax_present(curwin) && must_redraw)
|
||||
update_screen(0);
|
||||
# endif
|
||||
# ifdef FEAT_AUTOCMD
|
||||
if (has_cursormovedI())
|
||||
apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf);
|
||||
# endif
|
||||
# ifdef FEAT_CONCEAL
|
||||
if (curwin->w_p_cole > 0)
|
||||
{
|
||||
conceal_old_cursor_line = last_cursormoved.lnum;
|
||||
conceal_new_cursor_line = curwin->w_cursor.lnum;
|
||||
conceal_update_lines = TRUE;
|
||||
}
|
||||
# endif
|
||||
last_cursormoved = curwin->w_cursor;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
/* Trigger TextChangedI if b_changedtick differs. */
|
||||
if (ready && has_textchangedI()
|
||||
&& last_changedtick != curbuf->b_changedtick
|
||||
# ifdef FEAT_INS_EXPAND
|
||||
&& !pum_visible()
|
||||
# endif
|
||||
)
|
||||
{
|
||||
# ifdef FEAT_SYN_HL
|
||||
/* Need to update the screen first, to make sure syntax
|
||||
* highlighting is correct after making a change (e.g., inserting
|
||||
* a "(". The autocommand may also require a redraw, so it's done
|
||||
* again below, unfortunately. */
|
||||
if (syntax_present(curwin) && must_redraw)
|
||||
update_screen(0);
|
||||
# endif
|
||||
# ifdef FEAT_AUTOCMD
|
||||
if (has_cursormovedI())
|
||||
apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf);
|
||||
# endif
|
||||
# ifdef FEAT_CONCEAL
|
||||
if (curwin->w_p_cole > 0)
|
||||
{
|
||||
conceal_old_cursor_line = last_cursormoved.lnum;
|
||||
conceal_new_cursor_line = curwin->w_cursor.lnum;
|
||||
conceal_update_lines = TRUE;
|
||||
}
|
||||
# endif
|
||||
last_cursormoved = curwin->w_cursor;
|
||||
}
|
||||
#endif
|
||||
#ifdef FEAT_AUTOCMD
|
||||
/* Trigger TextChangedI if b_changedtick differs. */
|
||||
if (!ready && has_textchangedI()
|
||||
&& last_changedtick != curbuf->b_changedtick
|
||||
# ifdef FEAT_INS_EXPAND
|
||||
&& !pum_visible()
|
||||
# endif
|
||||
)
|
||||
{
|
||||
if (last_changedtick_buf == curbuf)
|
||||
apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf);
|
||||
last_changedtick_buf = curbuf;
|
||||
last_changedtick = curbuf->b_changedtick;
|
||||
}
|
||||
#endif
|
||||
if (must_redraw)
|
||||
update_screen(0);
|
||||
else if (clear_cmdline || redraw_cmdline)
|
||||
showmode(); /* clear cmdline and show mode */
|
||||
# if defined(FEAT_CONCEAL)
|
||||
if ((conceal_update_lines
|
||||
&& (conceal_old_cursor_line != conceal_new_cursor_line
|
||||
|| conceal_cursor_line(curwin)))
|
||||
|| need_cursor_line_redraw)
|
||||
{
|
||||
if (conceal_old_cursor_line != conceal_new_cursor_line)
|
||||
update_single_line(curwin, conceal_old_cursor_line);
|
||||
update_single_line(curwin, conceal_new_cursor_line == 0
|
||||
? curwin->w_cursor.lnum : conceal_new_cursor_line);
|
||||
curwin->w_valid &= ~VALID_CROW;
|
||||
}
|
||||
# endif
|
||||
showruler(FALSE);
|
||||
setcursor();
|
||||
emsg_on_display = FALSE; /* may remove error message now */
|
||||
)
|
||||
{
|
||||
if (last_changedtick_buf == curbuf)
|
||||
apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf);
|
||||
last_changedtick_buf = curbuf;
|
||||
last_changedtick = curbuf->b_changedtick;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (must_redraw)
|
||||
update_screen(0);
|
||||
else if (clear_cmdline || redraw_cmdline)
|
||||
showmode(); /* clear cmdline and show mode */
|
||||
# if defined(FEAT_CONCEAL)
|
||||
if ((conceal_update_lines
|
||||
&& (conceal_old_cursor_line != conceal_new_cursor_line
|
||||
|| conceal_cursor_line(curwin)))
|
||||
|| need_cursor_line_redraw)
|
||||
{
|
||||
if (conceal_old_cursor_line != conceal_new_cursor_line)
|
||||
update_single_line(curwin, conceal_old_cursor_line);
|
||||
update_single_line(curwin, conceal_new_cursor_line == 0
|
||||
? curwin->w_cursor.lnum : conceal_new_cursor_line);
|
||||
curwin->w_valid &= ~VALID_CROW;
|
||||
}
|
||||
# endif
|
||||
showruler(FALSE);
|
||||
setcursor();
|
||||
emsg_on_display = FALSE; /* may remove error message now */
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3467,7 +3469,6 @@ ins_compl_new_leader()
|
||||
}
|
||||
|
||||
compl_enter_selects = !compl_used_match;
|
||||
compl_shown_match = compl_curr_match = compl_first_match;
|
||||
|
||||
/* Show the popup menu with a different set of matches. */
|
||||
ins_compl_show_pum();
|
||||
@@ -5184,9 +5185,21 @@ ins_complete(c)
|
||||
}
|
||||
else if (ctrl_x_mode == CTRL_X_FILES)
|
||||
{
|
||||
while (--startcol >= 0 && vim_isfilec(line[startcol]))
|
||||
;
|
||||
compl_col += ++startcol;
|
||||
/* Go back to just before the first filename character. */
|
||||
if (startcol > 0)
|
||||
{
|
||||
char_u *p = line + startcol;
|
||||
|
||||
mb_ptr_back(line, p);
|
||||
while (p > line && vim_isfilec(PTR2CHAR(p)))
|
||||
mb_ptr_back(line, p);
|
||||
if (p == line && vim_isfilec(PTR2CHAR(p)))
|
||||
startcol = 0;
|
||||
else
|
||||
startcol = (int)(p - line) + 1;
|
||||
}
|
||||
|
||||
compl_col += startcol;
|
||||
compl_length = (int)curs_col - startcol;
|
||||
compl_pattern = addstar(line + compl_col, compl_length,
|
||||
EXPAND_FILES);
|
||||
@@ -6687,7 +6700,7 @@ start_arrow(end_insert_pos)
|
||||
if (!arrow_used) /* something has been inserted */
|
||||
{
|
||||
AppendToRedobuff(ESC_STR);
|
||||
stop_insert(end_insert_pos, FALSE);
|
||||
stop_insert(end_insert_pos, FALSE, FALSE);
|
||||
arrow_used = TRUE; /* this means we stopped the current insert */
|
||||
}
|
||||
#ifdef FEAT_SPELL
|
||||
@@ -6776,9 +6789,10 @@ stop_arrow()
|
||||
* to another window/buffer.
|
||||
*/
|
||||
static void
|
||||
stop_insert(end_insert_pos, esc)
|
||||
stop_insert(end_insert_pos, esc, nomove)
|
||||
pos_T *end_insert_pos;
|
||||
int esc; /* called by ins_esc() */
|
||||
int nomove; /* <c-\><c-o>, don't move cursor */
|
||||
{
|
||||
int cc;
|
||||
char_u *ptr;
|
||||
@@ -6849,7 +6863,7 @@ stop_insert(end_insert_pos, esc)
|
||||
* Do this when ESC was used or moving the cursor up/down.
|
||||
* Check for the old position still being valid, just in case the text
|
||||
* got changed unexpectedly. */
|
||||
if (did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL
|
||||
if (!nomove && did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL
|
||||
&& curwin->w_cursor.lnum != end_insert_pos->lnum))
|
||||
&& end_insert_pos->lnum <= curbuf->b_ml.ml_line_count)
|
||||
{
|
||||
@@ -7845,8 +7859,7 @@ in_cinkeys(keytyped, when, line_is_empty)
|
||||
if (try_match && keytyped == ':')
|
||||
{
|
||||
p = ml_get_curline();
|
||||
if (cin_iscase(p, FALSE) || cin_isscopedecl(p)
|
||||
|| cin_islabel(30))
|
||||
if (cin_iscase(p, FALSE) || cin_isscopedecl(p) || cin_islabel())
|
||||
return TRUE;
|
||||
/* Need to get the line again after cin_islabel(). */
|
||||
p = ml_get_curline();
|
||||
@@ -7856,7 +7869,7 @@ in_cinkeys(keytyped, when, line_is_empty)
|
||||
{
|
||||
p[curwin->w_cursor.col - 1] = ' ';
|
||||
i = (cin_iscase(p, FALSE) || cin_isscopedecl(p)
|
||||
|| cin_islabel(30));
|
||||
|| cin_islabel());
|
||||
p = ml_get_curline();
|
||||
p[curwin->w_cursor.col - 1] = ':';
|
||||
if (i)
|
||||
@@ -8366,7 +8379,7 @@ ins_esc(count, cmdchar, nomove)
|
||||
disabled_redraw = TRUE;
|
||||
return FALSE; /* repeat the insert */
|
||||
}
|
||||
stop_insert(&curwin->w_cursor, TRUE);
|
||||
stop_insert(&curwin->w_cursor, TRUE, nomove);
|
||||
undisplay_dollar();
|
||||
}
|
||||
|
||||
@@ -8946,7 +8959,7 @@ ins_bs(c, mode, inserted_space_p)
|
||||
|
||||
*inserted_space_p = FALSE;
|
||||
if (p_sta && in_indent)
|
||||
ts = (int)get_sw_value();
|
||||
ts = (int)get_sw_value(curbuf);
|
||||
else
|
||||
ts = (int)get_sts_value();
|
||||
/* Compute the virtual column where we want to be. Since
|
||||
@@ -9635,7 +9648,7 @@ ins_tab()
|
||||
* When nothing special, insert TAB like a normal character
|
||||
*/
|
||||
if (!curbuf->b_p_et
|
||||
&& !(p_sta && ind && curbuf->b_p_ts != get_sw_value())
|
||||
&& !(p_sta && ind && curbuf->b_p_ts != get_sw_value(curbuf))
|
||||
&& get_sts_value() == 0)
|
||||
return TRUE;
|
||||
|
||||
@@ -9651,7 +9664,7 @@ ins_tab()
|
||||
AppendToRedobuff((char_u *)"\t");
|
||||
|
||||
if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
|
||||
temp = (int)get_sw_value();
|
||||
temp = (int)get_sw_value(curbuf);
|
||||
else if (curbuf->b_p_sts != 0) /* use 'softtabstop' when set */
|
||||
temp = (int)get_sts_value();
|
||||
else /* otherwise use 'tabstop' */
|
||||
|
||||
241
src/eval.c
241
src/eval.c
@@ -125,9 +125,6 @@ static dictitem_T globvars_var; /* variable used for g: */
|
||||
*/
|
||||
static hashtab_T compat_hashtab;
|
||||
|
||||
/* When using exists() don't auto-load a script. */
|
||||
static int no_autoload = FALSE;
|
||||
|
||||
/*
|
||||
* When recursively copying lists and dicts we need to remember which ones we
|
||||
* have done to avoid endless recursiveness. This unique ID is used for that.
|
||||
@@ -156,6 +153,11 @@ static int echo_attr = 0; /* attributes used for ":echo" */
|
||||
/* Values for trans_function_name() argument: */
|
||||
#define TFN_INT 1 /* internal function name OK */
|
||||
#define TFN_QUIET 2 /* no error messages */
|
||||
#define TFN_NO_AUTOLOAD 4 /* do not use script autoloading */
|
||||
|
||||
/* Values for get_lval() flags argument: */
|
||||
#define GLV_QUIET TFN_QUIET /* no error messages */
|
||||
#define GLV_NO_AUTOLOAD TFN_NO_AUTOLOAD /* do not use script autoloading */
|
||||
|
||||
/*
|
||||
* Structure to hold info for a user function.
|
||||
@@ -356,6 +358,7 @@ static struct vimvar
|
||||
{VV_NAME("mouse_col", VAR_NUMBER), 0},
|
||||
{VV_NAME("operator", VAR_STRING), VV_RO},
|
||||
{VV_NAME("searchforward", VAR_NUMBER), 0},
|
||||
{VV_NAME("hlsearch", VAR_NUMBER), 0},
|
||||
{VV_NAME("oldfiles", VAR_LIST), 0},
|
||||
{VV_NAME("windowid", VAR_NUMBER), VV_RO},
|
||||
};
|
||||
@@ -389,7 +392,7 @@ static void list_func_vars __ARGS((int *first));
|
||||
static char_u *list_arg_vars __ARGS((exarg_T *eap, char_u *arg, int *first));
|
||||
static char_u *ex_let_one __ARGS((char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op));
|
||||
static int check_changedtick __ARGS((char_u *arg));
|
||||
static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int quiet, int fne_flags));
|
||||
static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int flags, int fne_flags));
|
||||
static void clear_lval __ARGS((lval_T *lp));
|
||||
static void set_var_lval __ARGS((lval_T *lp, char_u *endp, typval_T *rettv, int copy, char_u *op));
|
||||
static int tv_op __ARGS((typval_T *tv1, typval_T *tv2, char_u *op));
|
||||
@@ -474,7 +477,9 @@ static void f_bufname __ARGS((typval_T *argvars, typval_T *rettv));
|
||||
static void f_bufnr __ARGS((typval_T *argvars, typval_T *rettv));
|
||||
static void f_bufwinnr __ARGS((typval_T *argvars, typval_T *rettv));
|
||||
static void f_byte2line __ARGS((typval_T *argvars, typval_T *rettv));
|
||||
static void byteidx __ARGS((typval_T *argvars, typval_T *rettv, int comp));
|
||||
static void f_byteidx __ARGS((typval_T *argvars, typval_T *rettv));
|
||||
static void f_byteidxcomp __ARGS((typval_T *argvars, typval_T *rettv));
|
||||
static void f_call __ARGS((typval_T *argvars, typval_T *rettv));
|
||||
#ifdef FEAT_FLOAT
|
||||
static void f_ceil __ARGS((typval_T *argvars, typval_T *rettv));
|
||||
@@ -767,7 +772,7 @@ static char_u *find_name_end __ARGS((char_u *arg, char_u **expr_start, char_u **
|
||||
static char_u * make_expanded_name __ARGS((char_u *in_start, char_u *expr_start, char_u *expr_end, char_u *in_end));
|
||||
static int eval_isnamec __ARGS((int c));
|
||||
static int eval_isnamec1 __ARGS((int c));
|
||||
static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, int verbose));
|
||||
static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, int verbose, int no_autoload));
|
||||
static int handle_subscript __ARGS((char_u **arg, typval_T *rettv, int evaluate, int verbose));
|
||||
static typval_T *alloc_tv __ARGS((void));
|
||||
static typval_T *alloc_string_tv __ARGS((char_u *string));
|
||||
@@ -778,8 +783,8 @@ static linenr_T get_tv_lnum_buf __ARGS((typval_T *argvars, buf_T *buf));
|
||||
static char_u *get_tv_string __ARGS((typval_T *varp));
|
||||
static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf));
|
||||
static char_u *get_tv_string_buf_chk __ARGS((typval_T *varp, char_u *buf));
|
||||
static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp));
|
||||
static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int writing));
|
||||
static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp, int no_autoload));
|
||||
static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int no_autoload));
|
||||
static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname));
|
||||
static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val));
|
||||
static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi));
|
||||
@@ -869,6 +874,7 @@ eval_init()
|
||||
hash_add(&compat_hashtab, p->vv_di.di_key);
|
||||
}
|
||||
set_vim_var_nr(VV_SEARCHFORWARD, 1L);
|
||||
set_vim_var_nr(VV_HLSEARCH, 1L);
|
||||
set_reg_var(0); /* default for v:register is not 0 but '"' */
|
||||
|
||||
#ifdef EBCDIC
|
||||
@@ -915,12 +921,13 @@ eval_clear()
|
||||
/* autoloaded script names */
|
||||
ga_clear_strings(&ga_loaded);
|
||||
|
||||
/* script-local variables */
|
||||
/* Script-local variables. First clear all the variables and in a second
|
||||
* loop free the scriptvar_T, because a variable in one script might hold
|
||||
* a reference to the whole scope of another script. */
|
||||
for (i = 1; i <= ga_scripts.ga_len; ++i)
|
||||
{
|
||||
vars_clear(&SCRIPT_VARS(i));
|
||||
for (i = 1; i <= ga_scripts.ga_len; ++i)
|
||||
vim_free(SCRIPT_SV(i));
|
||||
}
|
||||
ga_clear(&ga_scripts);
|
||||
|
||||
/* unreferenced lists and dicts */
|
||||
@@ -1054,7 +1061,7 @@ var_redir_start(name, append)
|
||||
ga_init2(&redir_ga, (int)sizeof(char), 500);
|
||||
|
||||
/* Parse the variable name (can be a dict or list entry). */
|
||||
redir_endp = get_lval(redir_varname, NULL, redir_lval, FALSE, FALSE, FALSE,
|
||||
redir_endp = get_lval(redir_varname, NULL, redir_lval, FALSE, FALSE, 0,
|
||||
FNE_CHECK_START);
|
||||
if (redir_endp == NULL || redir_lval->ll_name == NULL || *redir_endp != NUL)
|
||||
{
|
||||
@@ -1145,7 +1152,7 @@ var_redir_stop()
|
||||
/* Call get_lval() again, if it's inside a Dict or List it may
|
||||
* have changed. */
|
||||
redir_endp = get_lval(redir_varname, NULL, redir_lval,
|
||||
FALSE, FALSE, FALSE, FNE_CHECK_START);
|
||||
FALSE, FALSE, 0, FNE_CHECK_START);
|
||||
if (redir_endp != NULL && redir_lval->ll_name != NULL)
|
||||
set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)".");
|
||||
clear_lval(redir_lval);
|
||||
@@ -2234,7 +2241,7 @@ list_arg_vars(eap, arg, first)
|
||||
{
|
||||
if (tofree != NULL)
|
||||
name = tofree;
|
||||
if (get_var_tv(name, len, &tv, TRUE) == FAIL)
|
||||
if (get_var_tv(name, len, &tv, TRUE, FALSE) == FAIL)
|
||||
error = TRUE;
|
||||
else
|
||||
{
|
||||
@@ -2469,7 +2476,7 @@ ex_let_one(arg, tv, copy, endchars, op)
|
||||
{
|
||||
lval_T lv;
|
||||
|
||||
p = get_lval(arg, tv, &lv, FALSE, FALSE, FALSE, FNE_CHECK_START);
|
||||
p = get_lval(arg, tv, &lv, FALSE, FALSE, 0, FNE_CHECK_START);
|
||||
if (p != NULL && lv.ll_name != NULL)
|
||||
{
|
||||
if (endchars != NULL && vim_strchr(endchars, *skipwhite(p)) == NULL)
|
||||
@@ -2514,18 +2521,22 @@ check_changedtick(arg)
|
||||
* "unlet" is TRUE for ":unlet": slightly different behavior when something is
|
||||
* wrong; must end in space or cmd separator.
|
||||
*
|
||||
* flags:
|
||||
* GLV_QUIET: do not give error messages
|
||||
* GLV_NO_AUTOLOAD: do not use script autoloading
|
||||
*
|
||||
* Returns a pointer to just after the name, including indexes.
|
||||
* When an evaluation error occurs "lp->ll_name" is NULL;
|
||||
* Returns NULL for a parsing error. Still need to free items in "lp"!
|
||||
*/
|
||||
static char_u *
|
||||
get_lval(name, rettv, lp, unlet, skip, quiet, fne_flags)
|
||||
get_lval(name, rettv, lp, unlet, skip, flags, fne_flags)
|
||||
char_u *name;
|
||||
typval_T *rettv;
|
||||
lval_T *lp;
|
||||
int unlet;
|
||||
int skip;
|
||||
int quiet; /* don't give error messages */
|
||||
int flags; /* GLV_ values */
|
||||
int fne_flags; /* flags for find_name_end() */
|
||||
{
|
||||
char_u *p;
|
||||
@@ -2539,6 +2550,7 @@ get_lval(name, rettv, lp, unlet, skip, quiet, fne_flags)
|
||||
char_u *key = NULL;
|
||||
int len;
|
||||
hashtab_T *ht;
|
||||
int quiet = flags & GLV_QUIET;
|
||||
|
||||
/* Clear everything in "lp". */
|
||||
vim_memset(lp, 0, sizeof(lval_T));
|
||||
@@ -2586,7 +2598,7 @@ get_lval(name, rettv, lp, unlet, skip, quiet, fne_flags)
|
||||
|
||||
cc = *p;
|
||||
*p = NUL;
|
||||
v = find_var(lp->ll_name, &ht);
|
||||
v = find_var(lp->ll_name, &ht, flags & GLV_NO_AUTOLOAD);
|
||||
if (v == NULL && !quiet)
|
||||
EMSG2(_(e_undefvar), lp->ll_name);
|
||||
*p = cc;
|
||||
@@ -2899,7 +2911,7 @@ set_var_lval(lp, endp, rettv, copy, op)
|
||||
|
||||
/* handle +=, -= and .= */
|
||||
if (get_var_tv(lp->ll_name, (int)STRLEN(lp->ll_name),
|
||||
&tv, TRUE) == OK)
|
||||
&tv, TRUE, FALSE) == OK)
|
||||
{
|
||||
if (tv_op(&tv, rettv, op) == OK)
|
||||
set_var(lp->ll_name, &tv, FALSE);
|
||||
@@ -3551,7 +3563,7 @@ ex_unletlock(eap, argstart, deep)
|
||||
do
|
||||
{
|
||||
/* Parse the name and find the end. */
|
||||
name_end = get_lval(arg, NULL, &lv, TRUE, eap->skip || error, FALSE,
|
||||
name_end = get_lval(arg, NULL, &lv, TRUE, eap->skip || error, 0,
|
||||
FNE_CHECK_START);
|
||||
if (lv.ll_name == NULL)
|
||||
error = TRUE; /* error but continue parsing */
|
||||
@@ -3704,7 +3716,7 @@ do_lock_var(lp, name_end, deep, lock)
|
||||
ret = FAIL;
|
||||
else
|
||||
{
|
||||
di = find_var(lp->ll_name, NULL);
|
||||
di = find_var(lp->ll_name, NULL, TRUE);
|
||||
if (di == NULL)
|
||||
ret = FAIL;
|
||||
else
|
||||
@@ -5174,7 +5186,7 @@ eval7(arg, rettv, evaluate, want_string)
|
||||
}
|
||||
}
|
||||
else if (evaluate)
|
||||
ret = get_var_tv(s, len, rettv, TRUE);
|
||||
ret = get_var_tv(s, len, rettv, TRUE, FALSE);
|
||||
else
|
||||
ret = OK;
|
||||
}
|
||||
@@ -6413,6 +6425,16 @@ list_insert_tv(l, tv, item)
|
||||
if (ni == NULL)
|
||||
return FAIL;
|
||||
copy_tv(tv, &ni->li_tv);
|
||||
list_insert(l, ni, item);
|
||||
return OK;
|
||||
}
|
||||
|
||||
void
|
||||
list_insert(l, ni, item)
|
||||
list_T *l;
|
||||
listitem_T *ni;
|
||||
listitem_T *item;
|
||||
{
|
||||
if (item == NULL)
|
||||
/* Append new item at end of list. */
|
||||
list_append(l, ni);
|
||||
@@ -6434,7 +6456,6 @@ list_insert_tv(l, tv, item)
|
||||
item->li_prev = ni;
|
||||
++l->lv_len;
|
||||
}
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -7860,6 +7881,7 @@ static struct fst
|
||||
{"bufwinnr", 1, 1, f_bufwinnr},
|
||||
{"byte2line", 1, 1, f_byte2line},
|
||||
{"byteidx", 2, 2, f_byteidx},
|
||||
{"byteidxcomp", 2, 2, f_byteidxcomp},
|
||||
{"call", 2, 3, f_call},
|
||||
#ifdef FEAT_FLOAT
|
||||
{"ceil", 1, 1, f_ceil},
|
||||
@@ -8278,7 +8300,7 @@ deref_func_name(name, lenp)
|
||||
|
||||
cc = name[*lenp];
|
||||
name[*lenp] = NUL;
|
||||
v = find_var(name, NULL);
|
||||
v = find_var(name, NULL, FALSE);
|
||||
name[*lenp] = cc;
|
||||
if (v != NULL && v->di_tv.v_type == VAR_FUNC)
|
||||
{
|
||||
@@ -9176,13 +9198,11 @@ f_byte2line(argvars, rettv)
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* "byteidx()" function
|
||||
*/
|
||||
static void
|
||||
f_byteidx(argvars, rettv)
|
||||
byteidx(argvars, rettv, comp)
|
||||
typval_T *argvars;
|
||||
typval_T *rettv;
|
||||
int comp;
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
char_u *t;
|
||||
@@ -9202,7 +9222,10 @@ f_byteidx(argvars, rettv)
|
||||
{
|
||||
if (*t == NUL) /* EOL reached */
|
||||
return;
|
||||
t += (*mb_ptr2len)(t);
|
||||
if (enc_utf8 && comp)
|
||||
t += utf_ptr2len(t);
|
||||
else
|
||||
t += (*mb_ptr2len)(t);
|
||||
}
|
||||
rettv->vval.v_number = (varnumber_T)(t - str);
|
||||
#else
|
||||
@@ -9211,6 +9234,28 @@ f_byteidx(argvars, rettv)
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* "byteidx()" function
|
||||
*/
|
||||
static void
|
||||
f_byteidx(argvars, rettv)
|
||||
typval_T *argvars;
|
||||
typval_T *rettv;
|
||||
{
|
||||
byteidx(argvars, rettv, FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* "byteidxcomp()" function
|
||||
*/
|
||||
static void
|
||||
f_byteidxcomp(argvars, rettv)
|
||||
typval_T *argvars;
|
||||
typval_T *rettv;
|
||||
{
|
||||
byteidx(argvars, rettv, TRUE);
|
||||
}
|
||||
|
||||
int
|
||||
func_call(name, args, selfdict, rettv)
|
||||
char_u *name;
|
||||
@@ -10010,8 +10055,6 @@ f_exists(argvars, rettv)
|
||||
int n = FALSE;
|
||||
int len = 0;
|
||||
|
||||
no_autoload = TRUE;
|
||||
|
||||
p = get_tv_string(&argvars[0]);
|
||||
if (*p == '$') /* environment variable */
|
||||
{
|
||||
@@ -10062,7 +10105,7 @@ f_exists(argvars, rettv)
|
||||
{
|
||||
if (tofree != NULL)
|
||||
name = tofree;
|
||||
n = (get_var_tv(name, len, &tv, FALSE) == OK);
|
||||
n = (get_var_tv(name, len, &tv, FALSE, TRUE) == OK);
|
||||
if (n)
|
||||
{
|
||||
/* handle d.key, l[idx], f(expr) */
|
||||
@@ -10078,8 +10121,6 @@ f_exists(argvars, rettv)
|
||||
}
|
||||
|
||||
rettv->vval.v_number = n;
|
||||
|
||||
no_autoload = FALSE;
|
||||
}
|
||||
|
||||
#ifdef FEAT_FLOAT
|
||||
@@ -11090,6 +11131,8 @@ get_buffer_lines(buf, start, end, retlist, rettv)
|
||||
{
|
||||
char_u *p;
|
||||
|
||||
rettv->v_type = VAR_STRING;
|
||||
rettv->vval.v_string = NULL;
|
||||
if (retlist && rettv_list_alloc(rettv) == FAIL)
|
||||
return;
|
||||
|
||||
@@ -11102,8 +11145,6 @@ get_buffer_lines(buf, start, end, retlist, rettv)
|
||||
p = ml_get_buf(buf, start, FALSE);
|
||||
else
|
||||
p = (char_u *)"";
|
||||
|
||||
rettv->v_type = VAR_STRING;
|
||||
rettv->vval.v_string = vim_strsave(p);
|
||||
}
|
||||
else
|
||||
@@ -12135,6 +12176,9 @@ f_has(argvars, rettv)
|
||||
#ifndef CASE_INSENSITIVE_FILENAME
|
||||
"fname_case",
|
||||
#endif
|
||||
#ifdef HAVE_ACL
|
||||
"acl",
|
||||
#endif
|
||||
#ifdef FEAT_ARABIC
|
||||
"arabic",
|
||||
#endif
|
||||
@@ -12538,7 +12582,12 @@ f_has(argvars, rettv)
|
||||
"xfontset",
|
||||
#endif
|
||||
#ifdef FEAT_XPM_W32
|
||||
"xpm_w32",
|
||||
"xpm",
|
||||
"xpm_w32", /* for backward compatibility */
|
||||
#else
|
||||
# if defined(HAVE_XPM)
|
||||
"xpm",
|
||||
# endif
|
||||
#endif
|
||||
#ifdef USE_XSMP
|
||||
"xsmp",
|
||||
@@ -13045,9 +13094,18 @@ get_user_input(argvars, rettv, inputdialog)
|
||||
}
|
||||
|
||||
if (defstr != NULL)
|
||||
{
|
||||
# ifdef FEAT_EX_EXTRA
|
||||
int save_ex_normal_busy = ex_normal_busy;
|
||||
ex_normal_busy = 0;
|
||||
# endif
|
||||
rettv->vval.v_string =
|
||||
getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
|
||||
xp_type, xp_arg);
|
||||
# ifdef FEAT_EX_EXTRA
|
||||
ex_normal_busy = save_ex_normal_busy;
|
||||
# endif
|
||||
}
|
||||
if (inputdialog && rettv->vval.v_string == NULL
|
||||
&& argvars[1].v_type != VAR_UNKNOWN
|
||||
&& argvars[2].v_type != VAR_UNKNOWN)
|
||||
@@ -13298,8 +13356,8 @@ f_islocked(argvars, rettv)
|
||||
dictitem_T *di;
|
||||
|
||||
rettv->vval.v_number = -1;
|
||||
end = get_lval(get_tv_string(&argvars[0]), NULL, &lv, FALSE, FALSE, FALSE,
|
||||
FNE_CHECK_START);
|
||||
end = get_lval(get_tv_string(&argvars[0]), NULL, &lv, FALSE, FALSE,
|
||||
GLV_NO_AUTOLOAD, FNE_CHECK_START);
|
||||
if (end != NULL && lv.ll_name != NULL)
|
||||
{
|
||||
if (*end != NUL)
|
||||
@@ -13312,7 +13370,7 @@ f_islocked(argvars, rettv)
|
||||
rettv->vval.v_number = 1; /* always locked */
|
||||
else
|
||||
{
|
||||
di = find_var(lv.ll_name, NULL);
|
||||
di = find_var(lv.ll_name, NULL, TRUE);
|
||||
if (di != NULL)
|
||||
{
|
||||
/* Consider a variable locked when:
|
||||
@@ -14095,8 +14153,8 @@ f_matcharg(argvars, rettv)
|
||||
}
|
||||
else
|
||||
{
|
||||
list_append_string(rettv->vval.v_list, NUL, -1);
|
||||
list_append_string(rettv->vval.v_list, NUL, -1);
|
||||
list_append_string(rettv->vval.v_list, NULL, -1);
|
||||
list_append_string(rettv->vval.v_list, NULL, -1);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -14292,14 +14350,23 @@ f_mkdir(argvars, rettv)
|
||||
return;
|
||||
|
||||
dir = get_tv_string_buf(&argvars[0], buf);
|
||||
if (argvars[1].v_type != VAR_UNKNOWN)
|
||||
if (*dir == NUL)
|
||||
rettv->vval.v_number = FAIL;
|
||||
else
|
||||
{
|
||||
if (argvars[2].v_type != VAR_UNKNOWN)
|
||||
prot = get_tv_number_chk(&argvars[2], NULL);
|
||||
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
|
||||
mkdir_recurse(dir, prot);
|
||||
if (*gettail(dir) == NUL)
|
||||
/* remove trailing slashes */
|
||||
*gettail_sep(dir) = NUL;
|
||||
|
||||
if (argvars[1].v_type != VAR_UNKNOWN)
|
||||
{
|
||||
if (argvars[2].v_type != VAR_UNKNOWN)
|
||||
prot = get_tv_number_chk(&argvars[2], NULL);
|
||||
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
|
||||
mkdir_recurse(dir, prot);
|
||||
}
|
||||
rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
|
||||
}
|
||||
rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -16881,7 +16948,7 @@ f_shiftwidth(argvars, rettv)
|
||||
typval_T *argvars UNUSED;
|
||||
typval_T *rettv;
|
||||
{
|
||||
rettv->vval.v_number = get_sw_value();
|
||||
rettv->vval.v_number = get_sw_value(curbuf);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -19719,11 +19786,12 @@ set_cmdarg(eap, oldarg)
|
||||
* Return OK or FAIL.
|
||||
*/
|
||||
static int
|
||||
get_var_tv(name, len, rettv, verbose)
|
||||
get_var_tv(name, len, rettv, verbose, no_autoload)
|
||||
char_u *name;
|
||||
int len; /* length of "name" */
|
||||
typval_T *rettv; /* NULL when only checking existence */
|
||||
int verbose; /* may give error message */
|
||||
int no_autoload; /* do not use script autoloading */
|
||||
{
|
||||
int ret = OK;
|
||||
typval_T *tv = NULL;
|
||||
@@ -19750,7 +19818,7 @@ get_var_tv(name, len, rettv, verbose)
|
||||
*/
|
||||
else
|
||||
{
|
||||
v = find_var(name, NULL);
|
||||
v = find_var(name, NULL, no_autoload);
|
||||
if (v != NULL)
|
||||
tv = &v->di_tv;
|
||||
}
|
||||
@@ -19790,24 +19858,30 @@ handle_subscript(arg, rettv, evaluate, verbose)
|
||||
while (ret == OK
|
||||
&& (**arg == '['
|
||||
|| (**arg == '.' && rettv->v_type == VAR_DICT)
|
||||
|| (**arg == '(' && rettv->v_type == VAR_FUNC))
|
||||
|| (**arg == '(' && (!evaluate || rettv->v_type == VAR_FUNC)))
|
||||
&& !vim_iswhite(*(*arg - 1)))
|
||||
{
|
||||
if (**arg == '(')
|
||||
{
|
||||
/* need to copy the funcref so that we can clear rettv */
|
||||
functv = *rettv;
|
||||
rettv->v_type = VAR_UNKNOWN;
|
||||
if (evaluate)
|
||||
{
|
||||
functv = *rettv;
|
||||
rettv->v_type = VAR_UNKNOWN;
|
||||
|
||||
/* Invoke the function. Recursive! */
|
||||
s = functv.vval.v_string;
|
||||
/* Invoke the function. Recursive! */
|
||||
s = functv.vval.v_string;
|
||||
}
|
||||
else
|
||||
s = (char_u *)"";
|
||||
ret = get_func_tv(s, (int)STRLEN(s), rettv, arg,
|
||||
curwin->w_cursor.lnum, curwin->w_cursor.lnum,
|
||||
&len, evaluate, selfdict);
|
||||
|
||||
/* Clear the funcref afterwards, so that deleting it while
|
||||
* evaluating the arguments is possible (see test55). */
|
||||
clear_tv(&functv);
|
||||
if (evaluate)
|
||||
clear_tv(&functv);
|
||||
|
||||
/* Stop the expression evaluation when immediately aborting on
|
||||
* error, or when an interrupt occurred or an exception was thrown
|
||||
@@ -20146,9 +20220,10 @@ get_tv_string_buf_chk(varp, buf)
|
||||
* hashtab_T used.
|
||||
*/
|
||||
static dictitem_T *
|
||||
find_var(name, htp)
|
||||
find_var(name, htp, no_autoload)
|
||||
char_u *name;
|
||||
hashtab_T **htp;
|
||||
int no_autoload;
|
||||
{
|
||||
char_u *varname;
|
||||
hashtab_T *ht;
|
||||
@@ -20158,7 +20233,7 @@ find_var(name, htp)
|
||||
*htp = ht;
|
||||
if (ht == NULL)
|
||||
return NULL;
|
||||
return find_var_in_ht(ht, *name, varname, htp != NULL);
|
||||
return find_var_in_ht(ht, *name, varname, no_autoload || htp != NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -20166,11 +20241,11 @@ find_var(name, htp)
|
||||
* Returns NULL if not found.
|
||||
*/
|
||||
static dictitem_T *
|
||||
find_var_in_ht(ht, htname, varname, writing)
|
||||
find_var_in_ht(ht, htname, varname, no_autoload)
|
||||
hashtab_T *ht;
|
||||
int htname;
|
||||
char_u *varname;
|
||||
int writing;
|
||||
int no_autoload;
|
||||
{
|
||||
hashitem_T *hi;
|
||||
|
||||
@@ -20202,7 +20277,7 @@ find_var_in_ht(ht, htname, varname, writing)
|
||||
* worked find the variable again. Don't auto-load a script if it was
|
||||
* loaded already, otherwise it would be loaded every time when
|
||||
* checking if a function name is a Funcref variable. */
|
||||
if (ht == &globvarht && !writing)
|
||||
if (ht == &globvarht && !no_autoload)
|
||||
{
|
||||
/* Note: script_autoload() may make "hi" invalid. It must either
|
||||
* be obtained again or not used. */
|
||||
@@ -20282,7 +20357,7 @@ get_var_value(name)
|
||||
{
|
||||
dictitem_T *v;
|
||||
|
||||
v = find_var(name, NULL);
|
||||
v = find_var(name, NULL, FALSE);
|
||||
if (v == NULL)
|
||||
return NULL;
|
||||
return get_tv_string(&v->di_tv);
|
||||
@@ -20560,6 +20635,13 @@ set_var(name, tv, copy)
|
||||
v->di_tv.vval.v_number = get_tv_number(tv);
|
||||
if (STRCMP(varname, "searchforward") == 0)
|
||||
set_search_direction(v->di_tv.vval.v_number ? '/' : '?');
|
||||
#ifdef FEAT_SEARCH_EXTRA
|
||||
else if (STRCMP(varname, "hlsearch") == 0)
|
||||
{
|
||||
no_hlsearch = !v->di_tv.vval.v_number;
|
||||
redraw_all_later(SOME_VALID);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -21604,7 +21686,7 @@ ex_function(eap)
|
||||
*/
|
||||
if (fudi.fd_dict == NULL)
|
||||
{
|
||||
v = find_var(name, &ht);
|
||||
v = find_var(name, &ht, FALSE);
|
||||
if (v != NULL && v->di_tv.v_type == VAR_FUNC)
|
||||
{
|
||||
emsg_funcname(N_("E707: Function name conflicts with variable: %s"),
|
||||
@@ -21762,8 +21844,9 @@ ret_free:
|
||||
* Also handles a Funcref in a List or Dictionary.
|
||||
* Returns the function name in allocated memory, or NULL for failure.
|
||||
* flags:
|
||||
* TFN_INT: internal function name OK
|
||||
* TFN_QUIET: be quiet
|
||||
* TFN_INT: internal function name OK
|
||||
* TFN_QUIET: be quiet
|
||||
* TFN_NO_AUTOLOAD: do not use script autoloading
|
||||
* Advances "pp" to just after the function name (if no error).
|
||||
*/
|
||||
static char_u *
|
||||
@@ -21801,7 +21884,8 @@ trans_function_name(pp, skip, flags, fdp)
|
||||
if (lead > 2)
|
||||
start += lead;
|
||||
|
||||
end = get_lval(start, NULL, &lv, FALSE, skip, flags & TFN_QUIET,
|
||||
/* Note that TFN_ flags use the same values as GLV_ flags. */
|
||||
end = get_lval(start, NULL, &lv, FALSE, skip, flags,
|
||||
lead > 2 ? 0 : FNE_CHECK_START);
|
||||
if (end == start)
|
||||
{
|
||||
@@ -22078,7 +22162,8 @@ function_exists(name)
|
||||
char_u *p;
|
||||
int n = FALSE;
|
||||
|
||||
p = trans_function_name(&nm, FALSE, TFN_INT|TFN_QUIET, NULL);
|
||||
p = trans_function_name(&nm, FALSE, TFN_INT|TFN_QUIET|TFN_NO_AUTOLOAD,
|
||||
NULL);
|
||||
nm = skipwhite(nm);
|
||||
|
||||
/* Only accept "funcname", "funcname ", "funcname (..." and
|
||||
@@ -22325,10 +22410,6 @@ script_autoload(name, reload)
|
||||
int ret = FALSE;
|
||||
int i;
|
||||
|
||||
/* Return quickly when autoload disabled. */
|
||||
if (no_autoload)
|
||||
return FALSE;
|
||||
|
||||
/* If there is no '#' after name[0] there is no package name. */
|
||||
p = vim_strchr(name, AUTOLOAD_CHAR);
|
||||
if (p == NULL || p == name)
|
||||
@@ -24283,6 +24364,7 @@ do_string_sub(str, pat, sub, flags)
|
||||
garray_T ga;
|
||||
char_u *ret;
|
||||
char_u *save_cpo;
|
||||
int zero_width;
|
||||
|
||||
/* Make 'cpoptions' empty, so that the 'l' flag doesn't work here */
|
||||
save_cpo = p_cpo;
|
||||
@@ -24321,20 +24403,17 @@ do_string_sub(str, pat, sub, flags)
|
||||
(void)vim_regsub(®match, sub, (char_u *)ga.ga_data
|
||||
+ ga.ga_len + i, TRUE, TRUE, FALSE);
|
||||
ga.ga_len += i + sublen - 1;
|
||||
/* avoid getting stuck on a match with an empty string */
|
||||
if (tail == regmatch.endp[0])
|
||||
zero_width = (tail == regmatch.endp[0]
|
||||
|| regmatch.startp[0] == regmatch.endp[0]);
|
||||
tail = regmatch.endp[0];
|
||||
if (*tail == NUL)
|
||||
break;
|
||||
if (zero_width)
|
||||
{
|
||||
if (*tail == NUL)
|
||||
break;
|
||||
/* avoid getting stuck on a match with an empty string */
|
||||
*((char_u *)ga.ga_data + ga.ga_len) = *tail++;
|
||||
++ga.ga_len;
|
||||
}
|
||||
else
|
||||
{
|
||||
tail = regmatch.endp[0];
|
||||
if (*tail == NUL)
|
||||
break;
|
||||
}
|
||||
if (!do_all)
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3253,8 +3253,10 @@ do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin)
|
||||
if ( ((!other_file && !(flags & ECMD_OLDBUF))
|
||||
|| (curbuf->b_nwindows == 1
|
||||
&& !(flags & (ECMD_HIDE | ECMD_ADDBUF))))
|
||||
&& check_changed(curbuf, p_awa, !other_file,
|
||||
(flags & ECMD_FORCEIT), FALSE))
|
||||
&& check_changed(curbuf, (p_awa ? CCGD_AW : 0)
|
||||
| (other_file ? 0 : CCGD_MULTWIN)
|
||||
| ((flags & ECMD_FORCEIT) ? CCGD_FORCEIT : 0)
|
||||
| (eap == NULL ? 0 : CCGD_EXCMD)))
|
||||
{
|
||||
if (fnum == 0 && other_file && ffname != NULL)
|
||||
(void)setaltfname(ffname, sfname, newlnum < 0 ? 0 : newlnum);
|
||||
@@ -4740,11 +4742,17 @@ do_sub(eap)
|
||||
char_u *resp;
|
||||
colnr_T sc, ec;
|
||||
|
||||
print_line_no_prefix(lnum, FALSE, FALSE);
|
||||
print_line_no_prefix(lnum, do_number, do_list);
|
||||
|
||||
getvcol(curwin, &curwin->w_cursor, &sc, NULL, NULL);
|
||||
curwin->w_cursor.col = regmatch.endpos[0].col - 1;
|
||||
getvcol(curwin, &curwin->w_cursor, NULL, NULL, &ec);
|
||||
if (do_number || curwin->w_p_nu)
|
||||
{
|
||||
int numw = number_width(curwin) + 1;
|
||||
sc += numw;
|
||||
ec += numw;
|
||||
}
|
||||
msg_start();
|
||||
for (i = 0; i < (long)sc; ++i)
|
||||
msg_putchar(' ');
|
||||
@@ -7658,7 +7666,7 @@ ex_drop(eap)
|
||||
# ifdef FEAT_WINDOWS
|
||||
++emsg_off;
|
||||
# endif
|
||||
split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE);
|
||||
split = check_changed(curbuf, CCGD_AW | CCGD_EXCMD);
|
||||
# ifdef FEAT_WINDOWS
|
||||
--emsg_off;
|
||||
# else
|
||||
|
||||
@@ -477,6 +477,8 @@ EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier,
|
||||
NEEDARG|EXTRA|NOTRLCOM),
|
||||
EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier,
|
||||
NEEDARG|EXTRA|NOTRLCOM),
|
||||
EX(CMD_keeppatterns, "keeppatterns", ex_wrongmodifier,
|
||||
NEEDARG|EXTRA|NOTRLCOM),
|
||||
EX(CMD_keepalt, "keepalt", ex_wrongmodifier,
|
||||
NEEDARG|EXTRA|NOTRLCOM),
|
||||
EX(CMD_list, "list", ex_print,
|
||||
|
||||
@@ -1436,20 +1436,20 @@ autowrite_all()
|
||||
}
|
||||
|
||||
/*
|
||||
* return TRUE if buffer was changed and cannot be abandoned.
|
||||
* Return TRUE if buffer was changed and cannot be abandoned.
|
||||
* For flags use the CCGD_ values.
|
||||
*/
|
||||
int
|
||||
check_changed(buf, checkaw, mult_win, forceit, allbuf)
|
||||
check_changed(buf, flags)
|
||||
buf_T *buf;
|
||||
int checkaw; /* do autowrite if buffer was changed */
|
||||
int mult_win; /* check also when several wins for the buf */
|
||||
int forceit;
|
||||
int allbuf UNUSED; /* may write all buffers */
|
||||
int flags;
|
||||
{
|
||||
int forceit = (flags & CCGD_FORCEIT);
|
||||
|
||||
if ( !forceit
|
||||
&& bufIsChanged(buf)
|
||||
&& (mult_win || buf->b_nwindows <= 1)
|
||||
&& (!checkaw || autowrite(buf, forceit) == FAIL))
|
||||
&& ((flags & CCGD_MULTWIN) || buf->b_nwindows <= 1)
|
||||
&& (!(flags & CCGD_AW) || autowrite(buf, forceit) == FAIL))
|
||||
{
|
||||
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
|
||||
if ((p_confirm || cmdmod.confirm) && p_write)
|
||||
@@ -1457,7 +1457,7 @@ check_changed(buf, checkaw, mult_win, forceit, allbuf)
|
||||
buf_T *buf2;
|
||||
int count = 0;
|
||||
|
||||
if (allbuf)
|
||||
if (flags & CCGD_ALLBUF)
|
||||
for (buf2 = firstbuf; buf2 != NULL; buf2 = buf2->b_next)
|
||||
if (bufIsChanged(buf2)
|
||||
&& (buf2->b_ffname != NULL
|
||||
@@ -1480,7 +1480,10 @@ check_changed(buf, checkaw, mult_win, forceit, allbuf)
|
||||
return bufIsChanged(buf);
|
||||
}
|
||||
#endif
|
||||
EMSG(_(e_nowrtmsg));
|
||||
if (flags & CCGD_EXCMD)
|
||||
EMSG(_(e_nowrtmsg));
|
||||
else
|
||||
EMSG(_(e_nowrtmsg_nobang));
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
@@ -1690,7 +1693,9 @@ check_changed_any(hidden)
|
||||
{
|
||||
/* Try auto-writing the buffer. If this fails but the buffer no
|
||||
* longer exists it's not changed, that's OK. */
|
||||
if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
|
||||
if (check_changed(buf, (p_awa ? CCGD_AW : 0)
|
||||
| CCGD_MULTWIN
|
||||
| CCGD_ALLBUF) && buf_valid(buf))
|
||||
break; /* didn't save - still changes */
|
||||
}
|
||||
}
|
||||
@@ -2274,7 +2279,10 @@ do_argfile(eap, argn)
|
||||
vim_free(p);
|
||||
}
|
||||
if ((!P_HID(curbuf) || !other)
|
||||
&& check_changed(curbuf, TRUE, !other, eap->forceit, FALSE))
|
||||
&& check_changed(curbuf, CCGD_AW
|
||||
| (other ? 0 : CCGD_MULTWIN)
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD))
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2315,7 +2323,9 @@ ex_next(eap)
|
||||
*/
|
||||
if ( P_HID(curbuf)
|
||||
|| eap->cmdidx == CMD_snext
|
||||
|| !check_changed(curbuf, TRUE, FALSE, eap->forceit, FALSE))
|
||||
|| !check_changed(curbuf, CCGD_AW
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD))
|
||||
{
|
||||
if (*eap->arg != NUL) /* redefine file list */
|
||||
{
|
||||
@@ -2458,7 +2468,9 @@ ex_listdo(eap)
|
||||
if (eap->cmdidx == CMD_windo
|
||||
|| eap->cmdidx == CMD_tabdo
|
||||
|| P_HID(curbuf)
|
||||
|| !check_changed(curbuf, TRUE, FALSE, eap->forceit, FALSE))
|
||||
|| !check_changed(curbuf, CCGD_AW
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD))
|
||||
{
|
||||
/* start at the first argument/window/buffer */
|
||||
i = 0;
|
||||
|
||||
@@ -1843,6 +1843,11 @@ do_one_cmd(cmdlinep, sourcing,
|
||||
cmdmod.keepalt = TRUE;
|
||||
continue;
|
||||
}
|
||||
if (checkforcmd(&ea.cmd, "keeppatterns", 5))
|
||||
{
|
||||
cmdmod.keeppatterns = TRUE;
|
||||
continue;
|
||||
}
|
||||
if (!checkforcmd(&ea.cmd, "keepjumps", 5))
|
||||
break;
|
||||
cmdmod.keepjumps = TRUE;
|
||||
@@ -2584,6 +2589,7 @@ do_one_cmd(cmdlinep, sourcing,
|
||||
case CMD_keepalt:
|
||||
case CMD_keepjumps:
|
||||
case CMD_keepmarks:
|
||||
case CMD_keeppatterns:
|
||||
case CMD_leftabove:
|
||||
case CMD_let:
|
||||
case CMD_lockmarks:
|
||||
@@ -3089,6 +3095,7 @@ static struct cmdmod
|
||||
{"keepalt", 5, FALSE},
|
||||
{"keepjumps", 5, FALSE},
|
||||
{"keepmarks", 3, FALSE},
|
||||
{"keeppatterns", 5, FALSE},
|
||||
{"leftabove", 5, FALSE},
|
||||
{"lockmarks", 3, FALSE},
|
||||
{"noautocmd", 3, FALSE},
|
||||
@@ -3254,7 +3261,11 @@ set_one_cmd_context(xp, buff)
|
||||
++p;
|
||||
/* for python 3.x: ":py3*" commands completion */
|
||||
if (cmd[0] == 'p' && cmd[1] == 'y' && p == cmd + 2 && *p == '3')
|
||||
{
|
||||
++p;
|
||||
while (ASCII_ISALPHA(*p) || *p == '*')
|
||||
++p;
|
||||
}
|
||||
len = (int)(p - cmd);
|
||||
|
||||
if (len == 0)
|
||||
@@ -3597,6 +3608,7 @@ set_one_cmd_context(xp, buff)
|
||||
case CMD_keepalt:
|
||||
case CMD_keepjumps:
|
||||
case CMD_keepmarks:
|
||||
case CMD_keeppatterns:
|
||||
case CMD_leftabove:
|
||||
case CMD_lockmarks:
|
||||
case CMD_rightbelow:
|
||||
@@ -6565,7 +6577,9 @@ ex_quit(eap)
|
||||
if (check_more(FALSE, eap->forceit) == OK && only_one_window())
|
||||
exiting = TRUE;
|
||||
if ((!P_HID(curbuf)
|
||||
&& check_changed(curbuf, p_awa, FALSE, eap->forceit, FALSE))
|
||||
&& check_changed(curbuf, (p_awa ? CCGD_AW : 0)
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD))
|
||||
|| check_more(TRUE, eap->forceit) == FAIL
|
||||
|| (only_one_window() && check_changed_any(eap->forceit)))
|
||||
{
|
||||
@@ -7099,7 +7113,7 @@ handle_drop(filec, filev, split)
|
||||
if (!P_HID(curbuf) && !split)
|
||||
{
|
||||
++emsg_off;
|
||||
split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE);
|
||||
split = check_changed(curbuf, CCGD_AW);
|
||||
--emsg_off;
|
||||
}
|
||||
if (split)
|
||||
@@ -7361,7 +7375,11 @@ ex_recover(eap)
|
||||
{
|
||||
/* Set recoverymode right away to avoid the ATTENTION prompt. */
|
||||
recoverymode = TRUE;
|
||||
if (!check_changed(curbuf, p_awa, TRUE, eap->forceit, FALSE)
|
||||
if (!check_changed(curbuf, (p_awa ? CCGD_AW : 0)
|
||||
| CCGD_MULTWIN
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD)
|
||||
|
||||
&& (*eap->arg == NUL
|
||||
|| setfname(curbuf, eap->arg, NULL, TRUE) == OK))
|
||||
ml_recover();
|
||||
@@ -8036,6 +8054,8 @@ ex_syncbind(eap)
|
||||
{
|
||||
#ifdef FEAT_SCROLLBIND
|
||||
win_T *wp;
|
||||
win_T *save_curwin = curwin;
|
||||
buf_T *save_curbuf = curbuf;
|
||||
long topline;
|
||||
long y;
|
||||
linenr_T old_linenr = curwin->w_cursor.lnum;
|
||||
@@ -8067,13 +8087,13 @@ ex_syncbind(eap)
|
||||
|
||||
|
||||
/*
|
||||
* set all scrollbind windows to the same topline
|
||||
* Set all scrollbind windows to the same topline.
|
||||
*/
|
||||
wp = curwin;
|
||||
for (curwin = firstwin; curwin; curwin = curwin->w_next)
|
||||
{
|
||||
if (curwin->w_p_scb)
|
||||
{
|
||||
curbuf = curwin->w_buffer;
|
||||
y = topline - curwin->w_topline;
|
||||
if (y > 0)
|
||||
scrollup(y, TRUE);
|
||||
@@ -8087,7 +8107,8 @@ ex_syncbind(eap)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
curwin = wp;
|
||||
curwin = save_curwin;
|
||||
curbuf = save_curbuf;
|
||||
if (curwin->w_p_scb)
|
||||
{
|
||||
did_syncbind = TRUE;
|
||||
@@ -8207,6 +8228,7 @@ post_chdir(local)
|
||||
int local;
|
||||
{
|
||||
vim_free(curwin->w_localdir);
|
||||
curwin->w_localdir = NULL;
|
||||
if (local)
|
||||
{
|
||||
/* If still in global directory, need to remember current
|
||||
@@ -8223,7 +8245,6 @@ post_chdir(local)
|
||||
* name. */
|
||||
vim_free(globaldir);
|
||||
globaldir = NULL;
|
||||
curwin->w_localdir = NULL;
|
||||
}
|
||||
|
||||
shorten_fnames(TRUE);
|
||||
@@ -8556,6 +8577,11 @@ ex_operators(eap)
|
||||
beginline(BL_SOL | BL_FIX);
|
||||
}
|
||||
|
||||
#if defined(FEAT_VISUAL)
|
||||
if (VIsual_active)
|
||||
end_visual_mode();
|
||||
#endif
|
||||
|
||||
switch (eap->cmdidx)
|
||||
{
|
||||
case CMD_delete:
|
||||
@@ -11389,7 +11415,7 @@ ex_set(eap)
|
||||
ex_nohlsearch(eap)
|
||||
exarg_T *eap UNUSED;
|
||||
{
|
||||
no_hlsearch = TRUE;
|
||||
SET_NO_HLSEARCH(TRUE);
|
||||
redraw_all_later(SOME_VALID);
|
||||
}
|
||||
|
||||
|
||||
132
src/ex_eval.c
132
src/ex_eval.c
@@ -320,6 +320,17 @@ free_msglist(l)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Free global "*msg_list" and the messages it contains, then set "*msg_list"
|
||||
* to NULL.
|
||||
*/
|
||||
void
|
||||
free_global_msglist()
|
||||
{
|
||||
free_msglist(*msg_list);
|
||||
*msg_list = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Throw the message specified in the call to cause_errthrow() above as an
|
||||
* error exception. If cstack is NULL, postpone the throw until do_cmdline()
|
||||
@@ -410,66 +421,41 @@ do_intthrow(cstack)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Throw a new exception. Return FAIL when out of memory or it was tried to
|
||||
* throw an illegal user exception. "value" is the exception string for a user
|
||||
* or interrupt exception, or points to a message list in case of an error
|
||||
* exception.
|
||||
* Get an exception message that is to be stored in current_exception->value.
|
||||
*/
|
||||
static int
|
||||
throw_exception(value, type, cmdname)
|
||||
char_u *
|
||||
get_exception_string(value, type, cmdname, should_free)
|
||||
void *value;
|
||||
int type;
|
||||
char_u *cmdname;
|
||||
int *should_free;
|
||||
{
|
||||
except_T *excp;
|
||||
char_u *p, *mesg, *val;
|
||||
char_u *ret, *mesg;
|
||||
int cmdlen;
|
||||
|
||||
/*
|
||||
* Disallow faking Interrupt or error exceptions as user exceptions. They
|
||||
* would be treated differently from real interrupt or error exceptions when
|
||||
* no active try block is found, see do_cmdline().
|
||||
*/
|
||||
if (type == ET_USER)
|
||||
{
|
||||
if (STRNCMP((char_u *)value, "Vim", 3) == 0 &&
|
||||
(((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':' ||
|
||||
((char_u *)value)[3] == '('))
|
||||
{
|
||||
EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix"));
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
excp = (except_T *)alloc((unsigned)sizeof(except_T));
|
||||
if (excp == NULL)
|
||||
goto nomem;
|
||||
char_u *p, *val;
|
||||
|
||||
if (type == ET_ERROR)
|
||||
{
|
||||
/* Store the original message and prefix the exception value with
|
||||
* "Vim:" or, if a command name is given, "Vim(cmdname):". */
|
||||
excp->messages = (struct msglist *)value;
|
||||
mesg = excp->messages->throw_msg;
|
||||
*should_free = FALSE;
|
||||
mesg = ((struct msglist *)value)->throw_msg;
|
||||
if (cmdname != NULL && *cmdname != NUL)
|
||||
{
|
||||
cmdlen = (int)STRLEN(cmdname);
|
||||
excp->value = vim_strnsave((char_u *)"Vim(",
|
||||
ret = vim_strnsave((char_u *)"Vim(",
|
||||
4 + cmdlen + 2 + (int)STRLEN(mesg));
|
||||
if (excp->value == NULL)
|
||||
goto nomem;
|
||||
STRCPY(&excp->value[4], cmdname);
|
||||
STRCPY(&excp->value[4 + cmdlen], "):");
|
||||
val = excp->value + 4 + cmdlen + 2;
|
||||
if (ret == NULL)
|
||||
return ret;
|
||||
STRCPY(&ret[4], cmdname);
|
||||
STRCPY(&ret[4 + cmdlen], "):");
|
||||
val = ret + 4 + cmdlen + 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
excp->value = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
|
||||
if (excp->value == NULL)
|
||||
goto nomem;
|
||||
val = excp->value + 4;
|
||||
ret = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
|
||||
if (ret == NULL)
|
||||
return ret;
|
||||
val = ret + 4;
|
||||
}
|
||||
|
||||
/* msg_add_fname may have been used to prefix the message with a file
|
||||
@@ -506,14 +492,65 @@ throw_exception(value, type, cmdname)
|
||||
}
|
||||
}
|
||||
else
|
||||
excp->value = value;
|
||||
{
|
||||
*should_free = FALSE;
|
||||
ret = (char_u *) value;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Throw a new exception. Return FAIL when out of memory or it was tried to
|
||||
* throw an illegal user exception. "value" is the exception string for a
|
||||
* user or interrupt exception, or points to a message list in case of an
|
||||
* error exception.
|
||||
*/
|
||||
static int
|
||||
throw_exception(value, type, cmdname)
|
||||
void *value;
|
||||
int type;
|
||||
char_u *cmdname;
|
||||
{
|
||||
except_T *excp;
|
||||
int should_free;
|
||||
|
||||
/*
|
||||
* Disallow faking Interrupt or error exceptions as user exceptions. They
|
||||
* would be treated differently from real interrupt or error exceptions
|
||||
* when no active try block is found, see do_cmdline().
|
||||
*/
|
||||
if (type == ET_USER)
|
||||
{
|
||||
if (STRNCMP((char_u *)value, "Vim", 3) == 0
|
||||
&& (((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':'
|
||||
|| ((char_u *)value)[3] == '('))
|
||||
{
|
||||
EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix"));
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
excp = (except_T *)alloc((unsigned)sizeof(except_T));
|
||||
if (excp == NULL)
|
||||
goto nomem;
|
||||
|
||||
if (type == ET_ERROR)
|
||||
/* Store the original message and prefix the exception value with
|
||||
* "Vim:" or, if a command name is given, "Vim(cmdname):". */
|
||||
excp->messages = (struct msglist *)value;
|
||||
|
||||
excp->value = get_exception_string(value, type, cmdname, &should_free);
|
||||
if (excp->value == NULL && should_free)
|
||||
goto nomem;
|
||||
|
||||
excp->type = type;
|
||||
excp->throw_name = vim_strsave(sourcing_name == NULL
|
||||
? (char_u *)"" : sourcing_name);
|
||||
if (excp->throw_name == NULL)
|
||||
{
|
||||
if (type == ET_ERROR)
|
||||
if (should_free)
|
||||
vim_free(excp->value);
|
||||
goto nomem;
|
||||
}
|
||||
@@ -2033,10 +2070,7 @@ leave_cleanup(csp)
|
||||
/* If an error was about to be converted to an exception when
|
||||
* enter_cleanup() was called, free the message list. */
|
||||
if (msg_list != NULL)
|
||||
{
|
||||
free_msglist(*msg_list);
|
||||
*msg_list = NULL;
|
||||
}
|
||||
free_global_msglist();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -2280,7 +2280,7 @@ getexmodeline(promptc, cookie, indent)
|
||||
|
||||
if (c1 == Ctrl_T)
|
||||
{
|
||||
long sw = get_sw_value();
|
||||
long sw = get_sw_value(curbuf);
|
||||
|
||||
p = (char_u *)line_ga.ga_data;
|
||||
p[line_ga.ga_len] = NUL;
|
||||
@@ -2337,7 +2337,7 @@ redraw:
|
||||
p[line_ga.ga_len] = NUL;
|
||||
indent = get_indent_str(p, 8);
|
||||
--indent;
|
||||
indent -= indent % get_sw_value();
|
||||
indent -= indent % get_sw_value(curbuf);
|
||||
}
|
||||
while (get_indent_str(p, 8) > indent)
|
||||
{
|
||||
@@ -3852,9 +3852,9 @@ vim_strsave_fnameescape(fname, shell)
|
||||
char_u buf[20];
|
||||
int j = 0;
|
||||
|
||||
/* Don't escape '[' and '{' if they are in 'isfname'. */
|
||||
/* Don't escape '[', '{' and '!' if they are in 'isfname'. */
|
||||
for (p = PATH_ESC_CHARS; *p != NUL; ++p)
|
||||
if ((*p != '[' && *p != '{') || !vim_isfilec(*p))
|
||||
if ((*p != '[' && *p != '{' && *p != '!') || !vim_isfilec(*p))
|
||||
buf[j++] = *p;
|
||||
buf[j] = NUL;
|
||||
p = vim_strsave_escaped(fname, buf);
|
||||
@@ -4178,7 +4178,7 @@ expand_showtail(xp)
|
||||
/*
|
||||
* Prepare a string for expansion.
|
||||
* When expanding file names: The string will be used with expand_wildcards().
|
||||
* Copy the file name into allocated memory and add a '*' at the end.
|
||||
* Copy "fname[len]" into allocated memory and add a '*' at the end.
|
||||
* When expanding other names: The string will be used with regcomp(). Copy
|
||||
* the name into allocated memory and prepend "^".
|
||||
*/
|
||||
@@ -5498,6 +5498,9 @@ add_to_history(histype, new_entry, in_map, sep)
|
||||
if (hislen == 0) /* no history */
|
||||
return;
|
||||
|
||||
if (cmdmod.keeppatterns && histype == HIST_SEARCH)
|
||||
return;
|
||||
|
||||
/*
|
||||
* Searches inside the same mapping overwrite each other, so that only
|
||||
* the last line is kept. Be careful not to remove a line that was moved
|
||||
|
||||
36
src/fileio.c
36
src/fileio.c
@@ -428,13 +428,13 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef UNIX
|
||||
/*
|
||||
* On Unix it is possible to read a directory, so we have to
|
||||
* check for it before the mch_open().
|
||||
*/
|
||||
if (!read_stdin && !read_buffer)
|
||||
{
|
||||
#ifdef UNIX
|
||||
/*
|
||||
* On Unix it is possible to read a directory, so we have to
|
||||
* check for it before the mch_open().
|
||||
*/
|
||||
perm = mch_getperm(fname);
|
||||
if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
|
||||
# ifdef S_ISFIFO
|
||||
@@ -457,8 +457,8 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
|
||||
msg_scroll = msg_save;
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
# if defined(MSDOS) || defined(MSWIN) || defined(OS2)
|
||||
#endif
|
||||
#if defined(MSDOS) || defined(MSWIN) || defined(OS2)
|
||||
/*
|
||||
* MS-Windows allows opening a device, but we will probably get stuck
|
||||
* trying to read it.
|
||||
@@ -470,9 +470,8 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
|
||||
msg_scroll = msg_save;
|
||||
return FAIL;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Set default or forced 'fileformat' and 'binary'. */
|
||||
set_file_options(set_options, eap);
|
||||
@@ -2926,9 +2925,14 @@ check_for_cryptkey(cryptkey, ptr, sizep, filesizep, newfile, fname, did_ask)
|
||||
int *did_ask; /* flag: whether already asked for key */
|
||||
{
|
||||
int method = crypt_method_from_magic((char *)ptr, *sizep);
|
||||
int b_p_ro = curbuf->b_p_ro;
|
||||
|
||||
if (method >= 0)
|
||||
{
|
||||
/* Mark the buffer as read-only until the decryption has taken place.
|
||||
* Avoids accidentally overwriting the file with garbage. */
|
||||
curbuf->b_p_ro = TRUE;
|
||||
|
||||
set_crypt_method(curbuf, method);
|
||||
if (method > 0)
|
||||
(void)blowfish_self_test();
|
||||
@@ -2977,6 +2981,8 @@ check_for_cryptkey(cryptkey, ptr, sizep, filesizep, newfile, fname, did_ask)
|
||||
*sizep -= CRYPT_MAGIC_LEN + salt_len + seed_len;
|
||||
mch_memmove(ptr, ptr + CRYPT_MAGIC_LEN + salt_len + seed_len,
|
||||
(size_t)*sizep);
|
||||
/* Restore the read-only flag. */
|
||||
curbuf->b_p_ro = b_p_ro;
|
||||
}
|
||||
}
|
||||
/* When starting to edit a new file which does not have encryption, clear
|
||||
@@ -6700,6 +6706,9 @@ vim_rename(from, to)
|
||||
#ifdef HAVE_ACL
|
||||
mch_set_acl(to, acl);
|
||||
mch_free_acl(acl);
|
||||
#endif
|
||||
#ifdef HAVE_SELINUX
|
||||
mch_copy_sec(from, to);
|
||||
#endif
|
||||
if (errmsg != NULL)
|
||||
{
|
||||
@@ -9321,7 +9330,9 @@ apply_autocmds_group(event, fname, fname_io, force, group, buf, eap)
|
||||
*/
|
||||
if (fname_io == NULL)
|
||||
{
|
||||
if (fname != NULL && *fname != NUL)
|
||||
if (event == EVENT_COLORSCHEME)
|
||||
autocmd_fname = NULL;
|
||||
else if (fname != NULL && *fname != NUL)
|
||||
autocmd_fname = fname;
|
||||
else if (buf != NULL)
|
||||
autocmd_fname = buf->b_ffname;
|
||||
@@ -9374,14 +9385,15 @@ apply_autocmds_group(event, fname, fname_io, force, group, buf, eap)
|
||||
else
|
||||
{
|
||||
sfname = vim_strsave(fname);
|
||||
/* Don't try expanding FileType, Syntax, FuncUndefined, WindowID or
|
||||
* QuickFixCmd* */
|
||||
/* Don't try expanding FileType, Syntax, FuncUndefined, WindowID,
|
||||
* ColorScheme or QuickFixCmd* */
|
||||
if (event == EVENT_FILETYPE
|
||||
|| event == EVENT_SYNTAX
|
||||
|| event == EVENT_FUNCUNDEFINED
|
||||
|| event == EVENT_REMOTEREPLY
|
||||
|| event == EVENT_SPELLFILEMISSING
|
||||
|| event == EVENT_QUICKFIXCMDPRE
|
||||
|| event == EVENT_COLORSCHEME
|
||||
|| event == EVENT_QUICKFIXCMDPOST)
|
||||
fname = vim_strsave(fname);
|
||||
else
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user