Compare commits

..

159 Commits

Author SHA1 Message Date
Bram Moolenaar
6cd3aeee4c updated for version 7.4.147
Problem:    Cursor moves to wrong position when using "gj" after "$" and
            virtual editing is active.
Solution:   Make "gj" behave differently when virtual editing is active.
            (Hirohito Higashi)
2014-01-14 13:18:58 +01:00
Bram Moolenaar
2cd3696c35 updated for version 7.4.146
Problem:    When starting Vim with "-u NONE" v:oldfiles is NULL.
Solution:   Set v:oldfiles to an empty list. (Yasuhiro Matsumoto)
2014-01-14 12:57:05 +01:00
Bram Moolenaar
32b9201f37 updated for version 7.4.145
Problem:    getregtype() does not return zero for unknown register.
Solution:   Adjust documention: return empty string for unknown register.
            Check the register name to be valid. (Yukihiro Nakadaira)
2014-01-14 12:33:36 +01:00
Bram Moolenaar
9d1685d1cf updated for version 7.4.144
Problem:    MingW also supports intptr_t for OPEN_OH_ARGTYPE.
Solution:   Adjust #ifdef. (Ken Takata)
2014-01-14 12:18:45 +01:00
Bram Moolenaar
e21b6b2a8d updated for version 7.4.143
Problem:    TextChangedI is not triggered.
Solution:   Reverse check for "ready". (lilydjwg)
2014-01-14 12:17:02 +01:00
Bram Moolenaar
b0d5c96133 updated for version 7.4.142
Problem:    On MS-Windows 8 IME input doen't work correctly.
Solution:   Work around the problem. (Nobuhiro Takasaki)
2014-01-12 13:24:51 +01:00
Bram Moolenaar
78cf3f0de9 updated for version 7.4.141
Problem:    Problems when building with Borland: st_mode is signed short;
            can't build with Python; temp files not ignored by Mercurial;
            building with DEBUG doesn't define _DEBUG.
Solution:   Fix the problems. (Ken Takata)
2014-01-10 18:16:07 +01:00
Bram Moolenaar
a02471e295 updated for version 7.4.140
Problem:    Crash when wiping out buffer triggers autocommand that wipes out
            only other buffer.
Solution:   Do not delete the last buffer, make it empty. (Hirohito Higashi)
2014-01-10 16:43:14 +01:00
Bram Moolenaar
bd2dc34774 updated for version 7.4.139
Problem:    Crash when using :cd in autocommand. (François Ingelrest)
Solution:   Set w_localdir to NULL after freeing it. (Dominique Pelle)
2014-01-10 15:53:13 +01:00
Bram Moolenaar
4ea924e0a5 updated for version 7.4.138
Problem:    Directory change messages are not recognized.
Solution:   Fix using a character range literally. (Lech Lorens)
2014-01-10 15:32:21 +01:00
Bram Moolenaar
3a69e1135e updated for version 7.4.137
Problem:    Cannot use IME with Windows 8 console.
Solution:   Change the user of ReadConsoleInput() and PeekConsoleInput().
            (Yasuhiro Matsumoto)
2014-01-10 13:51:42 +01:00
Bram Moolenaar
b1cb35f785 updated for version 7.4.136
Problem:    MS-Windows: When saving a file with a UNC path the file becomes
            read-only.
Solution:   Don't mix up Win32 attributes and Unix attributes. (Ken Takata)
2014-01-10 13:05:20 +01:00
Bram Moolenaar
438f67a004 Updated runtime files. 2014-01-07 06:09:28 +01:00
Bram Moolenaar
2fda301469 updated for version 7.4.135
Problem:    Missing dot in MingW test Makefile.
Solution:   Add the dot. (Michael Soyka)
2014-01-06 15:51:55 +01:00
Bram Moolenaar
5ec8305ea8 updated for version 7.4.134
Problem:    Spurious space in MingW Makefile.
Solution:   Remove the space. (Michael Soyka)
2014-01-06 15:45:10 +01:00
Bram Moolenaar
5f4c8406a2 updated for version 7.4.133
Problem:    Clang warns for using NUL.
Solution:   Change NUL to NULL. (Dominique Pelle)
2014-01-06 06:19:11 +01:00
Bram Moolenaar
3f1138e8ae updated for version 7.4.132
Problem:    Win32: flags and inherit_handles arguments mixed up.
Solution:   Swap the argument. (cs86661)
2014-01-05 13:29:26 +01:00
Bram Moolenaar
4b550b4c50 Runtime file updates. 2013-12-15 10:02:33 +01:00
Bram Moolenaar
dedd1b0aba updated for version 7.4.131
Problem:    Syncbind causes E315 errors in some situations. (Liang Li)
Solution:   Set and restore curbuf in ex_syncbind(). (Christian Brabandt)
2013-12-14 13:06:17 +01:00
Bram Moolenaar
0bd7b3f4ce updated for version 7.4.130
Problem:    Relative line numbers mix up windows when using folds.
Solution:   Use hasFoldingWin() instead of hasFolding(). (Lech Lorens)
2013-12-14 12:48:58 +01:00
Bram Moolenaar
959a143f2e updated for version 7.4.129
Problem:    getline(-1) returns zero. (mvxxc)
Solution:   Return an empty string.
2013-12-14 12:17:38 +01:00
Bram Moolenaar
207fd75cac updated for version 7.4.128
Problem:    Perl 5.18 for MSVC doesn't work.
Solution:   Add check in makefile and define __inline. (Ken Takata)
2013-12-14 11:50:35 +01:00
Bram Moolenaar
7c0daf088e updated for version 7.4.127
Problem:    Perl 5.18 on Unix doesn't work.
Solution:   Move workaround to after including vim.h. (Ken Takata)
2013-12-14 11:46:08 +01:00
Bram Moolenaar
36c85b2c46 updated for version 7.4.126
Problem:    Compiler warnings for "const" and incompatible types.
Solution:   Remove "const", add type cast. (Ken Takata)
2013-12-12 20:25:44 +01:00
Bram Moolenaar
dfb18411cf Updated runtime files. 2013-12-11 18:53:29 +01:00
Bram Moolenaar
175d0704df updated for version 7.4.125
Problem:    Win32: Dealing with messages may not work for multi-byte chars.
Solution:   Use pDispatchMessage(). (Ken Takata)
2013-12-11 18:36:33 +01:00
Bram Moolenaar
2cc8738f2f updated for version 7.4.124
Problem:    Win32: Getting host name does not use wide function.
Solution:   Use GetComputerNameW() if possible. (Ken Takata)
2013-12-11 18:21:45 +01:00
Bram Moolenaar
c8020ee825 updated for version 7.4.123
Problem:    Win32: Getting user name does not use wide function.
Solution:   Use GetUserNameW() if possible. (Ken Takata)
2013-12-11 18:18:06 +01:00
Bram Moolenaar
910cffbb5e updated for version 7.4.122
Problem:    Win32: When 'encoding' is set to "utf-8" and the active codepage
            is cp932 then ":grep" and other commands don't work for multi-byte
            characters.
Solution:   (Yasuhiro Matsumoto)
2013-12-11 17:58:35 +01:00
Bram Moolenaar
893b2d73d1 updated for version 7.4.121
Problem:    Completion doesn't work for ":py3d" and ":py3f". (Bohr Shaw)
Solution:   Skip over letters after ":py3".
2013-12-11 17:44:38 +01:00
Bram Moolenaar
fcf94d3990 updated for version 7.4.120
Problem:    Can't build with Perl 5.18 on Linux. (Lcd 47)
Solution:   Add #ifdef. (Ken Takata)
2013-12-11 17:20:19 +01:00
Bram Moolenaar
4ffa07081f updated for version 7.4.119
Problem:    Vim doesn't work well on OpenVMS.
Solution:   Fix various problems. (Samuel Ferencik)
2013-12-11 17:12:37 +01:00
Bram Moolenaar
1d633413e5 updated for version 7.4.118
Problem:    It's possible that redrawing the status lines causes
            win_redr_custom() to be called recursively.
Solution:   Protect against recursiveness. (Yasuhiro Matsumoto)
2013-12-11 15:52:01 +01:00
Bram Moolenaar
6b10721fa2 updated for version 7.4.117
Problem:    Can't build with Cygwin/MingW and Perl 5.18.
Solution:   Add a linker argument for the Perl library. (Cesar Romani)
            Adjust CFLAGS and LIB. (Cesar Romani)
            Move including inline.h further down. (Ken Takata)
2013-12-11 15:06:40 +01:00
Bram Moolenaar
7ba0741451 updated for version 7.4.116
Problem:    When a mapping starts with a space, the typed space does not show
            up for 'showcmd'.
Solution:   Show "<20>". (Brook Hong)
2013-12-11 14:55:01 +01:00
Bram Moolenaar
b011af9696 updated for version 7.4.115
Problem:    When using Zsh expanding ~abc doesn't work when the result
            contains a space.
Solution:   Off-by-one error in detecting the NUL. (Pavol Juhas)
2013-12-11 13:21:51 +01:00
Bram Moolenaar
5d7f9df8fa updated for version 7.4.114
Problem:    New GNU make outputs messages about changing directory in another
            format.
Solution:   Recognize the new format.
2013-12-11 12:22:58 +01:00
Bram Moolenaar
73c61633b6 updated for version 7.4.113
Problem:    MSVC static analysis gives warnings.
Solution:   Avoid the warnings and avoid possible bugs. (Ken Takata)
2013-12-07 14:48:10 +01:00
Bram Moolenaar
b050c64186 updated for version 7.4.112
Problem:    The defaults for 'directory' and 'backupdir' on MS-Windows do not
            include a directory that exists.
Solution:   Use $TEMP.
2013-12-07 14:32:09 +01:00
Bram Moolenaar
c2401d62e0 updated for version 7.4.111
Problem:    Memory leak in Python OptionsAssItem. (Ken Takata)
Solution:   Call Py_XDECREF() where needed. (ZyX)
2013-12-07 14:28:43 +01:00
Bram Moolenaar
ba2d44f338 updated for version 7.4.110
Problem:    "gUgn" cannot be repeeated. (Dimitar Dimitrov)
Solution:   Don't put "gn" in a different order in the redo buffer.  Restore
            'wrapscan' when the pattern isn't found. (Christian Wellenbrock)
2013-11-28 19:27:30 +01:00
Bram Moolenaar
b95186fd36 updated for version 7.4.109
Problem:    ColorScheme autocommand matches with the current buffer name.
Solution:   Match with the colorscheme name. (Christian Brabandt)
2013-11-28 18:53:52 +01:00
Bram Moolenaar
34b466edfe updated for version 7.4.108
Problem:    "zG" and "zW" leave temp files around on MS-Windows.
Solution:   Delete the temp files when exiting. (Ken Takata)
2013-11-28 17:41:46 +01:00
Bram Moolenaar
9fee7d4729 updated for version 7.4.107
Problem:    Python: When vim.eval() encounters a Vim error, a try/catch in the
            Python code doesn't catch it. (Yggdroot Chen)
Solution:   Throw exceptions on errors in vim.eval(). (ZyX)
2013-11-28 17:04:43 +01:00
Bram Moolenaar
e88a5f3a2c updated for version 7.4.106
Problem:    Can't build with Ruby using Cygwin.
Solution:   Fix library name in makefile. (Steve Hall)
2013-11-28 16:32:38 +01:00
Bram Moolenaar
dff54ac7e8 updated for version 7.4.105
Problem:    Completing a tag pattern may give an error for invalid pattern.
Solution:   Suppress the error, just return no matches.
2013-11-28 14:36:33 +01:00
Bram Moolenaar
174a848b67 updated for version 7.4.104
Problem:    ":help s/\_" reports an internal error. (John Beckett)
Solution:   Check for NUL and invalid character classes.
2013-11-28 14:20:17 +01:00
Bram Moolenaar
3678208477 Updated runtime files. 2013-11-28 13:53:34 +01:00
Bram Moolenaar
c62a644eaf updated for version 7.4.103
Problem:    Dos installer uses an old way to escape spaces in the diff
            command.
Solution:   Adjust the quoting to the new default shellxquote. (Ben Fritz)
2013-11-21 18:13:37 +01:00
Bram Moolenaar
ace8d8ee2f updated for version 7.4.102
Problem:    Crash when interrupting "z=".
Solution:   Add safety check for word length. (Christian Brabandt, Dominique
            Pelle)
2013-11-21 17:42:31 +01:00
Bram Moolenaar
438ee5bf60 updated for version 7.4.101
Problem:    Using \1 in pattern goes one line too far. (Bohr Shaw, John Little)
Solution:   Only advance the match end for the matched characters in the last
            line.
2013-11-21 17:13:00 +01:00
Bram Moolenaar
272fb58236 updated for version 7.4.100
Problem:    NFA regexp doesn't handle backreference correctly. (Ryuichi
            Hayashida, Urtica Dioica)
Solution:   Always add NFA_SKIP, also when it already exists at the start
            position.
2013-11-21 16:03:40 +01:00
Bram Moolenaar
cafaa8a950 updated for version 7.4.099
Problem:    Append in blockwise Visual mode with "$" is wrong.
Solution:   After "$" don't use the code that checks if the cursor was moved.
            (Hirohito Higashi, Ken Takata)
2013-11-21 14:40:04 +01:00
Bram Moolenaar
d07c6e1e82 updated for version 7.4.098
Problem:    When using ":'<,'>del" errors may be given for the visual line
            numbers being out of range.
Solution:   Reset Visual mode in ":del". (Lech Lorens)
2013-11-21 14:21:40 +01:00
Bram Moolenaar
1e42f7ac16 updated for version 7.4.097
Problem:    Unexpected behavior change related to 'virtualedit'. (Ingo Karkat)
Solution:   Update the valid cursor position. (Christian Brabandt)
2013-11-21 13:24:41 +01:00
Bram Moolenaar
ffa2220950 updated for version 7.4.096
Problem:    Can't change directory to an UNC path.
Solution:   Use win32_getattrs() in mch_getperm(). (Christian Brabandt)
2013-11-21 12:34:11 +01:00
Bram Moolenaar
49b10273f0 updated for version 7.4.095
Problem:    Regexp for LuaJIT version doesn't work on BSD.
Solution:   Use "*" instead of "\+" and "\?". (Ozaki)
2013-11-21 12:17:51 +01:00
Bram Moolenaar
49b6a57d19 updated for version 7.4.094
Problem:    Configure may not find that -lint is needed for gettext().
Solution:   Check for gettext() with empty $LIBS.  (Thomas De Schampheleire)
2013-11-17 20:32:54 +01:00
Bram Moolenaar
9421bdc2cd updated for version 7.4.093
Problem:    Configure can't use LuaJIT on ubuntu 12.04.
Solution:   Adjust the configure regexp that locates the version number.
            (Charles Strahan)
2013-11-17 20:17:12 +01:00
Bram Moolenaar
4b60a6cdb3 Update runtime files. 2013-11-14 05:48:46 +01:00
Bram Moolenaar
2593e037c9 updated for version 7.4.092
Problem:    Can't build small version.
Solution:   Add #ifdef where the b_cjk flag is used. (Ken Takata)
2013-11-14 03:54:07 +01:00
Bram Moolenaar
e874744e94 updated for version 7.4.091
Problem:    Missing semicolon.
Solution:   Add the semicolon.
2013-11-12 18:09:29 +01:00
Bram Moolenaar
8f5610df73 updated for version 7.4.090
Problem:    Win32: When a directory name contains an exclamation mark,
            completion doesn't complete the contents of the directory.
Solution:   Escape the exclamation mark. (Jan Stocker)
2013-11-12 05:28:26 +01:00
Bram Moolenaar
0671de335f updated for version 7.4.089
Problem:    When editing a file in a directory mounted through sshfs Vim
            doesn't set the security context on a renamed file.
Solution:   Add mch_copy_sec() to vim_rename(). (Peter Backes)
2013-11-12 05:12:03 +01:00
Bram Moolenaar
cc63c647ee updated for version 7.4.088
Problem:    When spell checking is enabled Asian characters are always marked
            as error.
Solution:   When 'spelllang' contains "cjk" do not mark Asian characters as
            error. (Ken Takata)
2013-11-12 04:44:01 +01:00
Bram Moolenaar
efe06f4dd8 updated for version 7.4.087
Problem:    Compiler warning on 64 bit Windows systems.
Solution:   Fix type cast. (Mike Williams)
2013-11-11 23:17:39 +01:00
Bram Moolenaar
0f8de8dfb2 updated for version 7.4.086
Problem:    Skipping over an expression when not evaluating it does not work
            properly for dict members.
Solution:   Skip over unrecognized expression. (ZyX)
2013-11-11 04:25:53 +01:00
Bram Moolenaar
3f75e422be updated for version 7.4.085
Problem:    When inserting text in Visual block mode and moving the cursor the
            wrong text gets repeated in other lines.
Solution:   Use the '[ mark to find the start of the actually inserted text.
            (Christian Brabandt)
2013-11-11 01:29:22 +01:00
Bram Moolenaar
d6b8a5253b updated for version 7.4.084
Problem:    Python: interrupt not being properly discarded. (Yggdroot Chen)
Solution:   Discard interrupt in VimTryEnd. (ZyX)
2013-11-11 01:05:48 +01:00
Bram Moolenaar
a939e43440 updated for version 7.4.083
Problem:    It's hard to avoid adding a used pattern to the search history.
Solution:   Add the ":keeppatterns" modifier. (Christian Brabandt)
2013-11-09 05:30:26 +01:00
Bram Moolenaar
8e69b4a319 Updated runtime files. 2013-11-09 03:41:58 +01:00
Bram Moolenaar
45d3b1454c updated for version 7.4.082
Problem:    Using "gf" in a changed buffer suggests adding "!", which is not
            possible. (Tim Chase)
Solution:   Pass a flag to check_changed() wether adding ! make sense.
2013-11-09 03:31:51 +01:00
Bram Moolenaar
815135e408 updated for version 7.4.081
Problem:    Wrong logic when ANALYZE is "yes".
Solution:   Use or instead of and. (KF Leong)
2013-11-09 02:32:18 +01:00
Bram Moolenaar
817a8801d7 updated for version 7.4.080
Problem:    Missing documentation for v:hlsearch.
Solution:   Include the right file in the patch.
2013-11-09 01:44:43 +01:00
Bram Moolenaar
8050efa07d updated for version 7.4.079
Problem:    A script cannot detect whether 'hlsearch' highlighting is actually
            displayed.
Solution:   Add the "v:hlsearch" variable. (ZyX)
2013-11-08 04:30:20 +01:00
Bram Moolenaar
e5878f4be9 updated for version 7.4.078
Problem:    MSVC 2013 is not supported.
Solution:   Recognize and support MSVC 2013. (Ed Brown)
2013-11-08 03:15:47 +01:00
Bram Moolenaar
03e228a623 updated for version 7.4.077
Problem:    DOS installer creates shortcut without a path, resulting in the
            current directory to be C:\Windows\system32.
Solution:   Use environment variables.
2013-11-07 04:49:27 +01:00
Bram Moolenaar
fcea03ddd3 updated for version 7.4.076
Problem:    "cgn" does not wrap around the end of the file. (Dimitrov
            Dimitrov)
Solution:   Restore 'wrapscan' earlier. (Christian Brabandt)
2013-11-07 04:46:48 +01:00
Bram Moolenaar
c1c023ecfc updated for version 7.4.075
Problem:    Locally setting 'undolevels' is not tested.
Solution:   Add a test. (Christian Brabandt)
2013-11-07 03:26:06 +01:00
Bram Moolenaar
aa88732efd updated for version 7.4.074
Problem:    When undo'ing all changes and creating a new change the undo
            structure is incorrect. (Christian Brabandt)
Solution:   When deleting the branch starting at the old header, delete the
            whole branch, not just the first entry.
2013-11-07 03:04:11 +01:00
Bram Moolenaar
f5a2fd880a updated for version 7.4.073
Problem:    Setting undolevels for one buffer changes undo in another.
Solution:   Make 'undolevels' a global-local option. (Christian Brabandt)
2013-11-06 05:26:15 +01:00
Bram Moolenaar
4c1e626103 updated for version 7.4.072
Problem:    Crash when using Insert mode completion.
Solution:   Avoid going past the end of pum_array. (idea by Fransisco Lopes)
2013-11-06 04:04:33 +01:00
Bram Moolenaar
84dbb62fca updated for version 7.4.071
Problem:    Passing limits around too often.
Solution:   Use limits from buffer.
2013-11-06 04:01:36 +01:00
Bram Moolenaar
dce7c91de9 updated for version 7.4.070
Problem:    Can't compile with tiny features. (Tony Mechelynck)
Solution:   Add #ifdef.
2013-11-05 17:40:52 +01:00
Bram Moolenaar
6bcbcc59be updated for version 7.4.069
Problem:    Cannot right shift lines starting with #.
Solution:   Allow the right shift when 'cino' contains #N with N > 0.
            (Christian Brabandt)
            Refactor parsing 'cino', store the values in the buffer.
2013-11-05 07:13:41 +01:00
Bram Moolenaar
0958e0fbe7 updated for version 7.4.068
Problem:    Cannot build Vim on Mac with non-Apple compilers.
Solution:   Remove the -no-cpp-precomp flag. (Misty De Meo)
2013-11-04 04:57:50 +01:00
Bram Moolenaar
f332a656c3 updated for version 7.4.067
Problem:    After inserting comment leader, CTRL-\ CTRL-O does move the
            cursor. (Wiktor Ruben)
Solution:   Avoid moving the cursor. (Christian Brabandt)
2013-11-04 04:20:33 +01:00
Bram Moolenaar
69c3500f96 updated for version 7.4.066
Problem:    MS-Windows: When there is a colon in the file name (sub-stream
            feature) the swap file name is wrong.
Solution:   Change the colon to "%". (Yasuhiro Matsumoto)
2013-11-04 02:54:12 +01:00
Bram Moolenaar
332a2cadcd updated for version 7.4.065
Problem:    When recording, the character typed at the hit-enter prompt is
            recorded twice. (Urtica Dioica)
Solution:   Avoid recording the character twice. (Christian Brabandt)
2013-11-04 02:01:01 +01:00
Bram Moolenaar
d9820538bd updated for version 7.4.064
Problem:    When replacing a character in Visual block mode, entering a CR
            does not cause a repeated line break.
Solution:   Recognize the situation and repeat the line break. (Christian
            Brabandt)
2013-11-04 01:41:17 +01:00
Bram Moolenaar
ba2d7ffc4b updated for version 7.4.063
Problem:    Crash when using invalid key in Python dictionary.
Solution:   Check for object to be NULL.  Add tests. (ZyX)
2013-11-04 00:34:53 +01:00
Bram Moolenaar
d5d015d457 Update runtime files. 2013-11-03 21:14:31 +01:00
Bram Moolenaar
18e5469b6e updated for version 7.4.062
Problem:    Configure check for AvailabilityMacros.h is wrong.
Solution:   Use AC_CHECK_HEADERS().
2013-11-03 20:26:31 +01:00
Bram Moolenaar
39766a7595 updated for version 7.4.061
Problem:    Availability macros configure check in wrong place.
Solution:   Also check when not using Darwin. Remove version check.
2013-11-03 00:41:00 +01:00
Bram Moolenaar
0b400087d0 updated for version 7.4.060
Problem:    Declaration has wrong return type for PyObject_SetAttrString().
Solution:   Use int instead of PyObject. (Andreas Schwab)
2013-11-03 00:28:25 +01:00
Bram Moolenaar
9db1293317 updated for version 7.4.059
Problem:    set_last_cursor() may encounter w_buffer being NULL.  (Matt
            Mkaniaris)
Solution:   Check for NULL.
2013-11-03 00:20:52 +01:00
Bram Moolenaar
92c2db8be6 updated for version 7.4.058
Problem:    Warnings on 64 bit Windows.
Solution:   Add type casts. (Mike Williams)
2013-11-02 23:59:35 +01:00
Bram Moolenaar
0ffbbf9ea8 updated for version 7.4.057
Problem:    byteidx() does not work for composing characters.
Solution:   Add byteidxcomp().
2013-11-02 23:29:26 +01:00
Bram Moolenaar
4cc95d1495 updated for version 7.4.056
Problem:    Mac: Compilation problem with OS X 10.9 Mavericks.
Solution:   Include AvailabilityMacros.h when available. (Kazunobu Kuriyama)
2013-11-02 21:49:32 +01:00
Bram Moolenaar
2b1b53f5d9 updated for version 7.4.055
Problem:    Mac: Where availability macros are defined depends on the system.
Solution:   Add a configure check. (Felix Bünemann)
2013-11-02 21:04:38 +01:00
Bram Moolenaar
1180822670 updated for version 7.4.054
Problem:    Reading past end of the 'stl' string.
Solution:   Don't increment pointer when already at the NUL. (Christian
            Brabandt)
2013-11-02 04:39:38 +01:00
Bram Moolenaar
b69a714bb7 updated for version 7.4.053
Problem:    Test75 has a wrong header. (ZyX)
Solution:   Fix the text and remove leading ".
2013-11-02 04:19:34 +01:00
Bram Moolenaar
2c019c8696 updated for version 7.4.052
Problem:    With 'fo' set to "a2" inserting a space in the first column may
            cause the cursor to jump to the previous line.
Solution:   Handle the case when there is no comment leader properly. (Tor
            Perkins)  Also fix that cursor is in the wrong place when spaces
            get replaced with a Tab.
2013-10-06 17:46:56 +02:00
Bram Moolenaar
a951e35478 updated for version 7.4.051
Problem:    Syntax highlighting a Yaml file causes a crash. (Blake Preston)
Solution:   Copy the pim structure before calling addstate() to avoid it
            becoming invalide when the state list is reallocated.
2013-10-06 15:46:11 +02:00
Bram Moolenaar
b133208080 Runtime file updates. 2013-10-06 14:22:40 +02:00
Bram Moolenaar
4c7cb6b884 updated for version 7.4.050
Problem:    "gn" selects too much for the pattern "\d" when there are two
            lines with a single digit. (Ryan Carney)
Solution:   Adjust the logic of is_one_char(). (Christian Brabandt)
2013-10-02 21:55:02 +02:00
Bram Moolenaar
3eead7c227 updated for version 7.4.049
Problem:    In Ex mode, when line numbers are enabled the substitute prompt is
            wrong.
Solution:   Adjust for the line number size. (Benoit Pierre)
2013-10-02 18:43:06 +02:00
Bram Moolenaar
0c6ccfdb62 updated for version 7.4.048
Problem:    Recent clang version complains about -fno-strength-reduce.
Solution:   Add a configure check for the clang version. (Kazunobu Kuriyama)
2013-10-02 18:23:07 +02:00
Bram Moolenaar
35a7c681bc updated for version 7.4.047
Problem:    When using input() in a function invoked by a mapping it doesn't
            work.
Solution:   Temporarily reset ex_normal_busy. (Yasuhiro Matsumoto)
2013-10-02 16:46:28 +02:00
Bram Moolenaar
0b4db6b6e5 updated for version 7.4.046
Problem:    Can't use Tcl 8.6.
Solution:   Change how Tcl_FindExecutable is called. (Jan Nijtmans)
2013-10-02 14:25:44 +02:00
Bram Moolenaar
ceb84af027 updated for version 7.4.045
Problem:    substitute() does not work properly when the pattern starts with
            "\ze".
Solution:   Detect an empty match. (Christian Brabandt)
2013-09-29 21:11:05 +02:00
Bram Moolenaar
8962fda1da updated for version 7.4.044
Problem:    Can't build with old MSVC. (Wang Shoulin)
Solution:   Define OPEN_OH_ARGTYPE instead of using intptr_t directly.
2013-09-29 19:05:21 +02:00
Bram Moolenaar
386dcde30d updated for version 7.4.043
Problem:    VMS can't handle long function names.
Solution:   Shorten may_req_ambiguous_character_width. (Samuel Ferencik)
2013-09-29 16:27:47 +02:00
Bram Moolenaar
7a18fdc8a4 updated for version 7.4.042
Problem:    When using ":setlocal" for 'spell' and 'spellang' then :spelldump
            doesn't work. (Dimitar Dimitrov)
Solution:   Copy the option variables to the new window used to show the dump.
            (Christian Brabandt)
2013-09-29 13:38:29 +02:00
Bram Moolenaar
033d8888e8 updated for version 7.4.041
Problem:    Visual selection does not remain after being copied over. (Axel
            Bender)
Solution:   Move when VIsual_active is reset. (Christian Brabandt)
2013-09-25 23:24:57 +02:00
Bram Moolenaar
cca7413456 updated for version 7.4.040
Problem:    Valgrind error on exit when a script-local variable holds a
            reference to the scope of another script.
Solution:   First clear all variables, then free the scopes. (ZyX)
2013-09-25 21:00:28 +02:00
Bram Moolenaar
2ee95f7d13 updated for version 7.4.039
Problem:    MS-Windows: MSCV10 and earlier can't handle symlinks to a
            directory properly.
Solution:   Add stat_symlink_aware() and wstat_symlink_aware(). (Ken Takata)
2013-09-25 19:13:38 +02:00
Bram Moolenaar
134bf07ca0 updated for version 7.4.038
Problem:    Using "zw" and "zg" when 'spell' is off give a confusing error
            message. (Gary Johnson)
Solution:   Ignore the error when locating the word.  Explicitly mention what
            word was added. (Christian Brabandt)
2013-09-25 18:54:24 +02:00
Bram Moolenaar
f211884fa1 updated for version 7.4.037
Problem:    Using "\ze" in a sub-pattern does not result in the end of the
            match to be set. (Axel Bender)
Solution:   Copy the end of match position when a recursive match was
            successful.
2013-09-25 18:16:38 +02:00
Bram Moolenaar
699c12076d updated for version 7.4.036
Problem:    NFA engine does not capture group correctly when using \@>. (ZyX)
Solution:   Copy submatches before doing the recursive match.
2013-09-25 16:41:54 +02:00
Bram Moolenaar
18441ae2cd Fix problem with 'iskeyword' in CSS syntax. 2013-09-24 23:30:38 +02:00
Bram Moolenaar
268b55b5fb updated for version 7.4.035
Problem:    MS-Windows: The mouse pointer flickers when going from command
            line mode to Normal mode.
Solution:   Check for WM_NCMOUSEMOVE. (Ken Takata)
2013-09-22 15:43:37 +02:00
Bram Moolenaar
ec11aef914 updated for version 7.4.034
Problem:    Using "p" in Visual block mode only changes the first line.
Solution:   Repeat the put in all text in the block. (Christian Brabandt)
2013-09-22 15:23:44 +02:00
Bram Moolenaar
6848c8b561 updated for version 7.4.033
Problem:    When the terminal has only 20 lines test 92 and 93 overwrite the
            input file.
Solution:   Explicitly write test.out. Check that the terminal is large enough
            to run the tests.  (Hirohito Higashi)
2013-09-22 15:03:38 +02:00
Bram Moolenaar
baca7f705b Update runtime files. Add support for J. 2013-09-22 14:42:24 +02:00
Bram Moolenaar
595cad2ea1 updated for version 7.4.032
Problem:    NFA engine does not match the NUL character. (Jonathon Merz)
Solution:   Ues 0x0a instead of NUL. (Christian Brabandt)
2013-09-22 13:57:24 +02:00
Bram Moolenaar
00462ffb7d updated for version 7.4.031
Problem:    ":diffoff!" resets options even when 'diff' is not set. (Charles
            Cooper)
Solution:   Only resets related options in a window where 'diff' is set.
2013-09-20 20:13:53 +02:00
Bram Moolenaar
9952c102dd updated for version 7.4.030
Problem:    The -mno-cygwin argument is no longer supported by Cygwin.
Solution:   Remove the arguments. (Steve Hall)
2013-09-19 20:49:04 +02:00
Bram Moolenaar
745c6eb29b Add files missing from 7.4.028. 2013-09-19 17:04:30 +02:00
Bram Moolenaar
917789fdf7 updated for version 7.4.029
Problem:    An error in a pattern is reported twice.
Solution:   Remove the retry with the backtracking engine, it won't work.
2013-09-19 17:04:01 +02:00
Bram Moolenaar
e6a2fa6573 updated for version 7.4.028
Problem:    Equivalence classes are not working for multi-byte characters.
Solution:   Copy the rules from the old to the new regexp engine. Add a test
            to check both engines.
2013-09-19 17:00:20 +02:00
Bram Moolenaar
dd40734800 updated for version 7.4.027
Problem:    Another valgrind error when using CTRL-X CTRL-F at the start of
            the line. (Dominique Pelle)
Solution:   Don't call mb_ptr_back() at the start of the line.  Add a test.
2013-09-08 20:00:48 +02:00
Bram Moolenaar
95235e64d8 updated for version 7.4.026
Problem:    Clang warning for int shift overflow.
Solution:   Use unsigned and cast back to int. (Dominique Pelle)
2013-09-08 16:07:07 +02:00
Bram Moolenaar
0300e465aa updated for version 7.4.025
Problem:    Reading before start of a string.
Solution:   Do not call mb_ptr_back() at start of a string. (Dominique Pelle)
2013-09-08 16:03:45 +02:00
Bram Moolenaar
3b26239341 updated for version 7.4.024
Problem:    When root edits a file the undo file is owned by root while the
            edited file may be owned by another user, which is not allowed.
            (cac2s)
Solution:   Accept an undo file owned by the current user.
2013-09-08 15:40:49 +02:00
Bram Moolenaar
3b7ac49e26 updated for version 7.4.023
Problem:    Compiler warning on 64 bit windows.
Solution:   Add type cast. (Mike Williams)
2013-09-07 16:35:42 +02:00
Bram Moolenaar
7cba6c0636 Updated runtime files. 2013-09-05 22:13:31 +02:00
Bram Moolenaar
bec9c20884 updated for version 7.4.022
Problem:    Deadlock while exiting, because of allocating memory.
Solution:   Do not use gettext() in deathtrap(). (James McCoy)
2013-09-05 21:41:39 +02:00
Bram Moolenaar
9be4481892 updated for version 7.4.021
Problem:    NFA regexp: Using \ze in one branch which doesn't match may cause
            end of another branch to be wrong. (William Fugh)
Solution:   Set end position if it wasn't set yet.
2013-09-05 21:15:44 +02:00
Bram Moolenaar
78c93e4b6a updated for version 7.4.020
Problem:    NFA engine matches too much with \@>. (John McGowan)
Solution:   When a whole pattern match is found stop searching.
2013-09-05 16:05:36 +02:00
Bram Moolenaar
00b764aa41 updated for version 7.4.019
Problem:    MS-Windows: File name completion doesn't work properly with
            Chinese characters. (Yue Wu)
Solution:   Take care of multi-byte characters when looking for the start of
            the file name. (Ken Takata)
2013-09-05 13:50:53 +02:00
Bram Moolenaar
f0d9e00537 updated for version 7.4.018
Problem:    When completing item becomes unselected. (Shougo Matsu)
Solution:   Revert patch 7.3.1269.
2013-09-05 12:49:52 +02:00
Bram Moolenaar
966d71c852 updated for version 7.4.017
Problem:    ":help !!" does not find the "!!" tag in the help file. (Ben
            Fritz)
Solution:   When reading the start of the tags file do parse lines that are
            not header lines.
2013-09-05 12:06:33 +02:00
Bram Moolenaar
65f04f67f1 updated for version 7.4.016
Problem:    MS-Windows: File name completion doesn't work properly with
            Chinese characters. (Yue Wu)
Solution:   Add fname_casew(). (Ken Takata)
2013-08-30 17:29:16 +02:00
Bram Moolenaar
4dee1bb0db updated for version 7.4.015
Problem:    MS-Windows: Detecting node type does not work for multi-byte
            characters.
Solution:   Use wide character function when needed. (Ken Takata)
2013-08-30 17:11:33 +02:00
Bram Moolenaar
4e4f529792 updated for version 7.4.014
Problem:    MS-Windows: check for writing to device does not work.
Solution:   Fix #ifdefs. (Ken Takata)
2013-08-30 17:07:01 +02:00
Bram Moolenaar
d2a203bb58 updated for version 7.4.013
Problem:    File name buffer too small for utf-8.
Solution:   Use character count instead of byte count. (Ken Takata)
2013-08-30 16:51:18 +02:00
Bram Moolenaar
604729e75b updated for version 7.4.012
Problem:    MS-Windows: resolving shortcut does not work properly with
            multi-byte characters.
Solution:   Use wide system functions. (Ken Takata)
2013-08-30 16:44:19 +02:00
Bram Moolenaar
b5ef5e1c21 updated for version 7.4.011
Problem:    Cannot find out if "acl" and "xpm" features are supported.
Solution:   Add "acl" and "xpm" to the list of features. (Ken Takata)
2013-08-30 16:35:44 +02:00
Bram Moolenaar
195ef0ccb2 updated for version 7.4.010
Problem:    Crash with invalid argument to mkdir().
Solution:   Check for empty string. (lcd47)
2013-08-30 16:00:08 +02:00
Bram Moolenaar
cf81aefd9c updated for version 7.4.009
Problem:    When a file was not decrypted (yet), writing it may destroy the
            contents.
Solution:   Mark the file as readonly until decryption was done. (Christian
            Brabandt)
2013-08-25 17:46:08 +02:00
Bram Moolenaar
41f1205fef updated for version 7.4.008
Problem:    New regexp engine can't be interrupted.
Solution:   Check for CTRL-C pressed. (Yasuhiro Matsumoto)
2013-08-25 17:01:42 +02:00
Bram Moolenaar
74cd624fde updated for version 7.4.007
Problem:    Creating a preview window on startup leaves the screen layout in a
            messed up state. (Marius Gedminas)
Solution:   Don't change firstwin. (Christian Brabandt)
2013-08-22 14:14:27 +02:00
Bram Moolenaar
67652c2935 updated for version 7.4.006
Problem:    mkdir("foo/bar/", "p") gives an error message. (David Barnett)
Solution:   Remove the trailing slash. (lcd)
2013-08-22 12:06:55 +02:00
Bram Moolenaar
c56c459075 updated for version 7.4.005
Problem:    Using "vaB" while 'virtualedit' is set selects the wrong area.
            (Dimitar Dimitrov)
Solution:   Reset coladd when finding a match.
2013-08-14 17:45:29 +02:00
Bram Moolenaar
c93df6b075 updated for version 7.4.004
Problem:    When closing a window fails ":bwipe" may hang.
Solution:   Let win_close() return FAIL and break out of the loop.
2013-08-14 17:11:20 +02:00
Bram Moolenaar
ebefd997bb updated for version 7.4.003
Problem:    Memory access error in Ruby syntax highlighting. (Christopher Chow)
Solution:   Refresh stale pointer. (James McCoy)
2013-08-14 14:18:40 +02:00
Bram Moolenaar
3f0df06c28 updated for version 7.4.002
Problem:    Pattern with two alternative look-behind matches does not match.
            (Amadeus Demarzi)
Solution:   When comparing PIMs also compare their state ID to see if they are
            different.
2013-08-14 13:34:25 +02:00
Bram Moolenaar
1cfad52a03 updated for version 7.4.001
Problem:    Character classes such as [a-z] to not react to 'ignorecase'.
            Breaks man page highlighting. (Mario Grgic)
Solution:   Add separate items for classes that react to 'ignorecase'.  Clean
            up logic handling character classes.  Add more tests.
2013-08-14 12:06:49 +02:00
197 changed files with 7519 additions and 4209 deletions

9
.gitignore vendored
View File

@@ -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

View File

@@ -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".

View File

@@ -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')

View File

@@ -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

View File

@@ -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.

View File

@@ -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_##*

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View 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.

View File

@@ -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

View File

@@ -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|.

View File

@@ -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"

View File

@@ -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

View File

@@ -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*

View File

@@ -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

View File

@@ -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

View File

@@ -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|.

View File

@@ -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.

View File

@@ -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.
==============================================================================

View File

@@ -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

View File

@@ -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

View File

@@ -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}.

View File

@@ -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*

View File

@@ -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: >

View File

@@ -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*

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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|

View File

@@ -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 <!>.

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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
View 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<"

View 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<"

View File

@@ -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<"

View File

@@ -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

View File

@@ -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")

View File

@@ -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
View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 "^==== .*"

View File

@@ -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"

View File

@@ -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\>"

View File

@@ -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

View File

@@ -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
View 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"

View File

@@ -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/]`

View File

@@ -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
View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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=" "

View File

@@ -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="$"

View File

@@ -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

View File

@@ -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

View File

@@ -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")

View File

@@ -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

View File

@@ -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.

View File

@@ -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.

View File

@@ -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

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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

View File

@@ -419,7 +419,7 @@ CPUARG = -$(CPUNR)
ALIGNARG = -a$(ALIGN)
#
!if ("$(DEBUG)"=="yes")
DEFINES=$(DEFINES) -DDEBUG
DEFINES=$(DEFINES) -DDEBUG -D_DEBUG
!endif
#
!if ("$(OLE)"=="yes")

View File

@@ -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
##############################

View File

@@ -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

View File

@@ -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

View File

@@ -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
View File

@@ -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; };

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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. */

View File

@@ -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.

View File

@@ -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' */

View File

@@ -356,6 +356,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},
};
@@ -474,7 +475,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));
@@ -869,6 +872,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 +919,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 */
@@ -7860,6 +7865,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},
@@ -9176,13 +9182,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 +9206,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 +9218,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;
@@ -11090,6 +11119,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 +11133,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 +12164,9 @@ f_has(argvars, rettv)
#ifndef CASE_INSENSITIVE_FILENAME
"fname_case",
#endif
#ifdef HAVE_ACL
"acl",
#endif
#ifdef FEAT_ARABIC
"arabic",
#endif
@@ -12538,7 +12570,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 +13082,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)
@@ -14095,8 +14141,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 +14338,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 +16936,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);
}
/*
@@ -19790,24 +19845,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
@@ -20560,6 +20621,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;
}
@@ -24283,6 +24351,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 +24390,17 @@ do_string_sub(str, pat, sub, flags)
(void)vim_regsub(&regmatch, 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;
}

View File

@@ -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

View File

@@ -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,

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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();
}
/*

View File

@@ -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

View File

@@ -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