Compare commits

...

261 Commits

Author SHA1 Message Date
Bram Moolenaar
52c0de1de1 patch 8.0.0241: fallback implementation of mch_memmove is unused
Problem:    Vim defines a mch_memmove() function but it doesn't work, thus is
            always unused.
Solution:   Remove the mch_memmove implementation. (suggested by Dominique
            Pelle)
2017-01-26 21:36:34 +01:00
Bram Moolenaar
4f7090b93d patch 8.0.0240: failure with one build on CI
Problem:    The clang build on CI fails with one configuration.
Solution:   Redo a previous patch that was accidentally reverted.
2017-01-26 21:24:02 +01:00
Bram Moolenaar
1e07633a5d patch 8.0.0239: no CI with an address sanitizer
Problem:    The address sanitizer sometimes finds errors, but it needs to be
            run manually.
Solution:   Add an environment to Travis with clang and the address sanitizer.
            (Christian Brabandt)  Also include changes only on github.
2017-01-26 20:11:12 +01:00
Bram Moolenaar
9e817c8a31 patch 8.0.0238: bracketed paste does not disable autoindent
Problem:    When using bracketed paste autoindent causes indent to be
            increased.
Solution:   Disable 'ai' and set 'paste' temporarily. (Ken Takata)
2017-01-25 21:36:17 +01:00
Bram Moolenaar
ba47b51ff8 patch 8.0.0237: when 'wildoptions' is "tagfile" completion may not work
Problem:    When setting wildoptions=tagfile the completion context is not set
            correctly. (desjardins)
Solution:   Check for EXPAND_TAGS_LISTFILES. (Christian Brabandt, closes #1399)
2017-01-24 21:18:19 +01:00
Bram Moolenaar
6a717f17ec patch 8.0.0236: gcc complains about uninitialized variable
Problem:    Gcc complains that a variable may be used uninitialized. Confusion
            between variable and label name. (John Marriott)
Solution:   Initialize it.  Rename end to end_lnum.
2017-01-24 20:47:50 +01:00
Bram Moolenaar
b031c4ea04 patch 8.0.0235: memory leak in diff mode
Problem:    Memory leak detected when running tests for diff mode.
Solution:   Free p_extra_free.
2017-01-24 20:14:48 +01:00
Bram Moolenaar
941c12da3c patch 8.0.0234: crash when using put in Visual mode
Problem:    When several lines are visually selected and one of them is short,
            using put may cause a crash. (Axel Bender)
Solution:   Check for a short line. (Christian Brabandt)
2017-01-24 19:55:43 +01:00
Bram Moolenaar
bff6ad1331 patch 8.0.0233: paste test fails in the GUI
Problem:    The paste test fails if the GUI is being used.
Solution:   Skip the test in the GUI.
2017-01-24 19:18:13 +01:00
Bram Moolenaar
48c9f3b123 patch 8.0.0232: paste does not work when 'esckeys' is off
Problem:    Pasting in Insert mode does not work when bracketed paste is used
            and 'esckeys' is off.
Solution:   When 'esckeys' is off disable bracketed paste in Insert mode.
2017-01-24 19:08:15 +01:00
Bram Moolenaar
076e502199 patch 8.0.0231: bracketed paste mode is not tested
Problem:    There are no tests for bracketed paste mode.
Solution:   Add a test.  Fix repeating with "normal .".
2017-01-24 18:58:30 +01:00
Bram Moolenaar
915350edec patch 8.0.0230: bracketed paste does not support line breaks
Problem:    When using bracketed paste line breaks are not respected.
Solution:   Turn CR characters into a line break if the text is being
            inserted. (closes #1404)
2017-01-24 17:50:52 +01:00
Bram Moolenaar
24a2d416ec patch 8.0.0229: local 'formatprg' option value leaks
Problem:    When freeing a buffer the local value of the 'formatprg' option is
            not cleared.
Solution:   Add missing change.
2017-01-24 17:48:36 +01:00
Bram Moolenaar
abbc448bc0 patch 8.0.0228: pasting in xterm on the command line has PasteStart
Problem:    When pasting test in an xterm on the command line it is surrounded
            by <PasteStart> and <PasteEnd>. (Johannes Kaltenbach)
Solution:   Add missing changes.
2017-01-24 15:57:55 +01:00
Bram Moolenaar
2aa5f696b9 patch 8.0.0227: crash with ff=dos when first line in file has no CR
Problem:    Crash when 'fileformat' is forced to "dos" and the first line in
            the file is empty and does not have a CR character.
Solution:   Don't check for CR before the start of the buffer.
2017-01-24 15:46:48 +01:00
Bram Moolenaar
1695f99d08 patch 8.0.0226: test for patch 8.0.0224 missing CR characters
Problem:    The test for patch 8.0.0224 misses the CR characters and passes
            even without the fix. (Christian Brabandt)
Solution:   Use double quotes and \<CR>.
2017-01-24 13:18:43 +01:00
Bram Moolenaar
9957a10d0f patch 8.0.0225: put in Visual block mode terminates early
Problem:    When a block is visually selected and put is used on the end of
            the selection only one line is changed.
Solution:   Check for the end properly. (Christian Brabandt, neovim issue
            5781)
2017-01-23 21:53:53 +01:00
Bram Moolenaar
7a2699e868 patch 8.0.0224: change to 'fileformats' from autocmd does not take effect
Problem:    When 'fileformats' is changed in a BufReadPre auto command, it
            does not take effect in readfile(). (Gary Johnson)
Solution:   Check the value of 'fileformats' after executing auto commands.
            (Christian Brabandt)
2017-01-23 21:31:09 +01:00
Bram Moolenaar
fffbf308dd patch 8.0.0223: Coverity warns for an uninitialized variable
Problem:    Coverity gets confused by the flags passed to find_tags() and
            warnts for an uninitialized variable.
Solution:   Disallow using cscope and help tags at the same time.
2017-01-23 20:47:12 +01:00
Bram Moolenaar
c81299684b patch 8.0.0222: blockwise put on multi-byte character misplaced
Problem:    When a multi-byte character ends in a zero byte, putting blockwise
            text puts it before the character instead of after it.
Solution:   Use int instead of char for the character under the cursor.
            (Luchr, closes #1403)  Add a test.
2017-01-22 20:04:51 +01:00
Bram Moolenaar
6a8ede99dd patch 8.0.0221: unnecessary condition on PROTO
Problem:    Checking if PROTO is defined inside a function has no effect.
Solution:   Remove the check for PROTO. (Hirohito Higashi)
2017-01-22 19:49:12 +01:00
Bram Moolenaar
15eedf1d62 patch 8.0.0220: completion of highlight names misses a few values
Problem:    Completion for :match does not show "none" and other missing
            highlight names.
Solution:   Skip over cleared entries before checking the index to be at the
            end.
2017-01-22 19:25:33 +01:00
Bram Moolenaar
7a40ea2138 patch 8.0.0219: ubsan reports errors for overflow
Problem:    Ubsan reports errors for integer overflow.
Solution:   Define macros for minimum and maximum values.  Select an
            expression based on the value. (Mike Williams)
2017-01-22 18:34:57 +01:00
Bram Moolenaar
2b2207ba69 patch 8.0.0218: no completion for :cexpr and similar commands
Problem:    No command line completion for :cexpr, :cgetexpr, :caddexpr, etc.
Solution:   Make completion work. (Yegappan Lakshmanan)  Add a test.
2017-01-22 16:46:56 +01:00
Bram Moolenaar
e2d74dbe19 patch 8.0.0217: build fails without cscope feature
Problem:    Build fails without the cscope feature.
Solution:   Add #ifdef.
2017-01-22 16:13:35 +01:00
Bram Moolenaar
e2c6037da3 patch 8.0.0216: decoding js style json may fail
Problem:    When decoding JSON with a JS style object the JSON test may use a
            NULL pointer. (Coverity)
Solution:   Check for a NULL pointer.
2017-01-22 15:56:26 +01:00
Bram Moolenaar
e362c3d2c3 patch 8.0.0215: NULL pointer use if cscope line looks like emacs tag
Problem:    When a Cscope line contains CTRL-L a NULL pointer may be used.
            (Coverity)
Solution:   Don't check for an emacs tag in a cscope line.
2017-01-22 15:40:00 +01:00
Bram Moolenaar
d7a96151e0 patch 8.0.0214: leaking memory when syntax cluster id is unknown
Problem:    Leaking memory when syntax cluster id is unknown. (Coverity)
Solution:   Free the memory.
2017-01-22 15:28:55 +01:00
Bram Moolenaar
ca24e2cfcf patch 8.0.0213: Netbeans specialKeys command does not check argument length
Problem:    The Netbeans "specialKeys" command does not check if the argument
            fits in the buffer. (Coverity)
Solution:   Add a length check.
2017-01-22 15:19:22 +01:00
Bram Moolenaar
423977d3ce patch 8.0.0212: buffer for key name may be too small
Problem:    The buffer used to store a key name theoreticaly could be too
            small. (Coverity)
Solution:   Count all possible modifier characters.  Add a check for the
            length just in case.
2017-01-22 15:05:12 +01:00
Bram Moolenaar
560379d7ae patch 8.0.0211: cannot build without the multi-byte feature
Problem:    Build fails if the multi-byte feature is disabled.
Solution:   Change #ifdef around ins_char_bytes.
2017-01-21 22:50:00 +01:00
Bram Moolenaar
ec2da36ca4 patch 8.0.0210: no support for bracketed paste
Problem:    Vim does not support bracketed paste, as implemented by xterm and
            other terminals.
Solution:   Add t_BE, t_BD, t_PS and t_PE.
2017-01-21 20:04:22 +01:00
Bram Moolenaar
41baa7983a patch 8.0.0209: cursor binding does not work with :substitute
Problem:    When using :substitute with the "c" flag and 'cursorbind' is set
            the cursor is not updated in other windows.
Solution:   Call do_check_cursorbind(). (Masanori Misono)
2017-01-21 14:45:09 +01:00
Bram Moolenaar
25b0e6b701 patch 8.0.0208: internally used commands end up in history
Problem:    Internally used commands for CTRL-Z and mouse click end up in
            history. (Matthew Malcomson)
Solution:   Use do_cmdline_cmd() instead of stuffing them in the readahead
            buffer. (James McCoy, closes #1395)
2017-01-20 21:51:53 +01:00
Bram Moolenaar
23c9e8b3bc patch 8.0.0207: leaking file descriptor when system() fails
Problem:    Leaking file descriptor when system() cannot find the buffer.
            (Coverity)
Solution:   Close the file descriptor.  (Dominique Pelle, closes #1398)
2017-01-20 19:59:54 +01:00
Bram Moolenaar
8822744b4d patch 8.0.0206: test coverage for :retab insufficient
Problem:    Test coverage for :retab insufficient.
Solution:   Add test for :retab. (Dominique Pelle, closes #1391)
2017-01-17 22:16:00 +01:00
Bram Moolenaar
5e4e1b1299 patch 8.0.0205: wrong behavior after :undojoin
Problem:    After :undojoin some commands don't work properly, such as :redo.
            (Matthew Malcomson)
Solution:   Don't set curbuf->b_u_curhead. (closes #1390)
2017-01-17 22:09:45 +01:00
Bram Moolenaar
eb46f8fa14 patch 8.0.0204: compiler warns for uninitialized variable
Problem:    Compiler warns for uninitialized variable. (Tony Mechelynck)
Solution:   When skipping set "id" to -1.
2017-01-17 19:48:53 +01:00
Bram Moolenaar
6e78e27b8a patch 8.0.0203: order of complication flags is sometimes wrong
Problem:    Order of complication flags is sometimes wrong.
Solution:   Put interface-specific flags before ALL_CFLAGS. (idea by Yousong
            Zhou, closes #1100)
2017-01-17 19:20:15 +01:00
Bram Moolenaar
4007ed4a5e patch 8.0.0202: no test for invalid syntax group name
Problem:    No test for invalid syntax group name.
Solution:   Add a test for group name error and warning.
2017-01-17 18:14:54 +01:00
Bram Moolenaar
d61e8aaae5 patch 8.0.0201: completion of highlight groups includes cleared names
Problem:    When completing a group name for a highlight or syntax command
            cleared groups are included.
Solution:   Skip groups that have been cleared.
2017-01-17 17:44:46 +01:00
Bram Moolenaar
58f60ca2fc patch 8.0.0200: some syntax arguments are not tested
Problem:    Some syntax arguments are not tested.
Solution:   Add more syntax command tests.
2017-01-17 17:19:00 +01:00
Bram Moolenaar
6d721c7e10 patch 8.0.0199: compiler warnings for libcall
Problem:    Warning for an unused parameter when the libcall feature is
            disabled.  Warning for a function type cast when compiling with
            -pedantic.
Solution:   Add UNUSED.  Use a different type cast. (Damien Molinier)
2017-01-17 16:56:28 +01:00
Bram Moolenaar
de318c5c35 patch 8.0.0198: some syntax arguments take effect even after "if 0"
Problem:    Some syntax arguments take effect even after "if 0". (Taylor
            Venable)
Solution:   Properly skip the syntax statements.  Make "syn case" and "syn
            conceal" report the current state.  Fix that "syn clear" didn't
            reset the conceal flag.  Add tests for :syntax skipping properly.
2017-01-17 16:27:10 +01:00
Bram Moolenaar
369b6f57c4 Update runtime files. 2017-01-17 12:22:32 +01:00
Bram Moolenaar
97d62d4321 patch 8.0.0197: system() test skips some parts for MS-Windows
Problem:    On MS-Windows the system() test skips a few parts.
Solution:   Swap single and double quotes for the command.
2017-01-16 22:53:57 +01:00
Bram Moolenaar
c011a3d083 patch 8.0.0196: profile test is slo and does not work on MS-Windows
Problem:    The test for :profile is slow and does not work on MS-Windows.
Solution:   Use the "-es" argument. (Dominique Pelle)  Swap single and double
            quotes for system()
2017-01-16 22:37:42 +01:00
Bram Moolenaar
a9d23c2087 patch 8.0.0195: fail to jump to static tag in current file
Problem:    Jumping to a tag that is a static item in the current file fails.
            (Kazunobu Kuriyama)
Solution:   Make sure the first byte of the tag key is not NUL. (Suggested by
            James McCoy, closes #1387)
2017-01-16 20:53:34 +01:00
Bram Moolenaar
e32bbded64 patch 8.0.0194: profile tests fails if total and self time are equal
Problem:    Profile tests fails if total and self time are equal.
Solution:   Make one time optional.
2017-01-15 21:12:48 +01:00
Bram Moolenaar
1b9750d805 patch 8.0.0193: accidentally removed #ifdef
Problem:    Accidentally removed #ifdef.
Solution:   Put it back. (Masanori Misono)
2017-01-15 20:51:37 +01:00
Bram Moolenaar
42b8d916c7 patch 8.0.0192: cannot build with tiny features
Problem:    Build fails with tiny features.
Solution:   Change #ifdef for hash_clear().  Avoid warning for unused
            argument.
2017-01-15 17:18:57 +01:00
Bram Moolenaar
4f391796b7 patch 8.0.0191: can't build with Ruby on some systems
Problem:    Some systems do not have ruby_sysinit(), causing the build to
            fail.
Solution:   Clean up how ruby_sysinit() and NtInitialize() are used. (Taro
            Muraoka)
2017-01-15 16:59:07 +01:00
Bram Moolenaar
810f9c361c patch 8.0.0190: finding duplicate tags uses a slow linear search
Problem:    Detecting duplicate tags uses a slow linear search.
Solution:   Use a much faster hash table solution. (James McCoy, closes #1046)
            But don't add hi_keylen, it makes hash tables 50% bigger.
2017-01-15 16:52:51 +01:00
Bram Moolenaar
296b1f28ca patch 8.0.0189: profile commands are not tested
Problem:    There are no tests for the :profile command.
Solution:   Add tests. (Dominique Pelle, closes #1383)
2017-01-15 15:22:33 +01:00
Bram Moolenaar
9506cad7a1 patch 8.0.0188: redrawing for 'cursorbind' is inefficient
Problem:    Using NOT_VALID for redraw_later() to update the cursor
            line/column highlighting is not efficient.
Solution:   Call validate_cursor() when 'cul' or 'cuc' is set.
2017-01-15 13:53:49 +01:00
Bram Moolenaar
fe6ce331d9 patch 8.0.0187: cant build with new Ruby version
Problem:    Building with a new Ruby version fails.
Solution:   Use ruby_sysinit() instead of NtInitialize(). (Tomas Volf,
            closes #1382)
2017-01-14 20:12:01 +01:00
Bram Moolenaar
5869cf060e patch 8.0.0186: confusing error message from assert_notequal()
Problem:    The error message from assert_notequal() is confusing.
Solution:   Only mention the expected value.
2017-01-14 20:06:14 +01:00
Bram Moolenaar
fad609d067 patch 8.0.0185: system() test fails on MS-Windows
Problem:    The system() test fails on MS-Windows.
Solution:   Skip the test on MS-Windows.
2017-01-14 19:38:36 +01:00
Bram Moolenaar
2b7bc567b9 patch 8.0.0184: when an error is caught Vim still exits with non-zero result
Problem:    When in Ex mode and an error is caught by try-catch, Vim still
            exits with a non-zero exit code.
Solution:   Don't set ex_exitval when inside a try-catch. (partly by Christian
            Brabandt)
2017-01-14 19:24:52 +01:00
Bram Moolenaar
7173b47958 patch 8.0.0183: ubsan warns for unaligned address
Problem:    Ubsan warns for using a pointer that is not aligned.
Solution:   First copy the address. (Yegappan Lakshmanan)
2017-01-14 17:04:38 +01:00
Bram Moolenaar
e47683a091 patch 8.0.0182: cursor ilne not update when 'cursorbind' is set
Problem:    When 'cursorbind' and 'cursorline' are set, but 'cursorcolumn' is
            not, then the cursor line highlighting is not updated. (Hirohito
            Higashi)
Solution:   Call redraw_later() with NOT_VALID.
2017-01-14 15:52:46 +01:00
Bram Moolenaar
519d7785f4 patch 8.0.0181: with cursorbind set cursor column highlighting is off
Problem:    When 'cursorbind' and 'cursorcolumn' are both on, the column
            highlignt in non-current windows is wrong.
Solution:   Add validate_cursor(). (Masanori Misono, closes #1372)
2017-01-14 14:54:33 +01:00
Bram Moolenaar
83381f7129 patch 8.0.0180: error E937 is used twice
Problem:    Error E937 is used both for duplicate key in JSON and for trying
            to delete a buffer that is in use.
Solution:   Rename the JSON error to E938. (Norio Takagi, closes #1376)
2017-01-14 14:36:08 +01:00
Bram Moolenaar
9be7c04e6c patch 8.0.0179: cannot have a local value for 'formatprg'
Problem:    'formatprg' is a global option but the value may depend on the
            type of buffer. (Sung Pae)
Solution:   Make 'formatprg' global-local. (closes #1380)
2017-01-14 14:28:30 +01:00
Bram Moolenaar
9b73c4a215 patch 8.0.0178: command count test fails on MS-Windows
Problem:    test_command_count may fail when a previous test interferes, seen
            on MS-Windows.
Solution:   Run it separately.
2017-01-13 22:30:08 +01:00
Bram Moolenaar
e13b9afe12 patch 8.0.0177: BufEnter autocommand not fired for a directory
Problem:    When opening a buffer on a directory and inside a try/catch then
            the BufEnter event is not triggered.
Solution:   Return NOTDONE from readfile() for a directory and deal with the
            three possible return values. (Justin M. Keyes, closes #1375,
            closes #1353)
2017-01-13 22:01:02 +01:00
Bram Moolenaar
70bcd7336f patch 8.0.0176: cannot use :change inside a function definition
Problem:    Using :change in between :function and :endfunction fails.
Solution:   Recognize :change inside a function. (ichizok, closes #1374)
2017-01-12 22:20:54 +01:00
Bram Moolenaar
972c3b8f1b patch 8.0.0175: setting language on MS-Windows does not always work
Problem:    Setting language in gvim on MS-Windows does not work when
            libintl.dll is dynamically linked with msvcrt.dll.
Solution:   Use putenv() from libintl as well. (Ken Takata, closes #1082)
2017-01-12 21:44:49 +01:00
Bram Moolenaar
b8f7bd68f6 patch 8.0.0174: executing "locale -a" on MS-Windows needlessly
Problem:    For completion "locale -a" is executed on MS-Windows, even though
            it most likely won't work.
Solution:   Skip executing "locale -a" on MS-Windows. (Ken Takata)
2017-01-12 20:28:25 +01:00
Bram Moolenaar
a1fa892939 patch 8.0.0173: build fails with EBCDIC defined
Problem:    When compiling with EBCDIC defined the build fails. (Yaroslav
            Kuzmin)
Solution:   Move sortFunctions() to the right file.  Avoid warning for
            redefining __SUSV3.
2017-01-12 20:06:33 +01:00
Bram Moolenaar
1d669c233c patch 8.0.0172: command line window does not work
Problem:    The command selected in the command line window is not executed.
            (Andrey Starodubtsev)
Solution:   Save and restore the command line at a lower level. (closes #1370)
2017-01-11 22:40:19 +01:00
Bram Moolenaar
ee142add22 patch 8.0.0171: JS style JSON does not support single quotes
Problem:    JS style JSON does not support single quotes.
Solution:   Allow for single quotes. (Yasuhiro Matsumoto, closes #1371)
2017-01-11 21:50:08 +01:00
Bram Moolenaar
e32abbe42c patch 8.0.0170: crash in channel test
Problem:    Channel test fails for using freed memory.
Solution:   Fix memory use in json_decode().
2017-01-10 22:57:34 +01:00
Bram Moolenaar
8b2f19536f patch 8.0.0169: json_decode() may run out of stack space
Problem:    For complicated string json_decode() may run out of stack space.
Solution:   Change the recursive solution into an iterative solution.
2017-01-10 19:44:18 +01:00
Bram Moolenaar
872004132f patch 8.0.0168: not all float functionality is tested
Problem:    Still some float functionality is not covered by tests.
Solution:   Add more tests. (Dominique Pelle, closes #1364)
2017-01-10 16:31:20 +01:00
Bram Moolenaar
08243d26d2 patch 8.0.0167: str2nr()/str2float() fail with negative values
Problem:    str2nr() and str2float() do not always work with negative values.
Solution:   Be more flexible about handling signs. (LemonBoy, closes #1332)
            Add more tests.
2017-01-10 16:12:29 +01:00
Bram Moolenaar
03c60c1573 patch 8.0.0166: JSON with a duplicate key gives an internal error
Problem:    JSON with a duplicate key gives an internal error. (Lcd)
Solution:   Give a normal error.  Avoid an error when parsing JSON from a
            remote client fails.
2017-01-10 15:15:37 +01:00
Bram Moolenaar
f446b48ff0 patch 8.0.0165: ubsan warns for integer overflow
Problem:    Ubsan warns for integer overflow.
Solution:   Swap two conditions. (Dominique Pelle)
2017-01-10 13:55:14 +01:00
Bram Moolenaar
caa55b65c2 patch 8.0.0164: outdated and misplaced comments
Problem:    Outdated and misplaced comments.
Solution:   Fix the comments.
2017-01-10 13:51:09 +01:00
Bram Moolenaar
68563937f5 Updated runtime files. 2017-01-10 13:31:15 +01:00
Bram Moolenaar
6abda995a5 patch 8.0.0163: cannot build with Ruby 2.4
Problem:    Ruby 2.4 no longer supports rb_cFixnum.
Solution:   move rb_cFixnum into an #ifdef. (Kazuki Sakamoto, closes #1365)
2017-01-09 21:10:31 +01:00
Bram Moolenaar
009c7b2640 patch 8.0.0162: build error on Fedora 23
Problem:    Build error on Fedora 23 with small features and gnome2.
Solution:   Undefine ngettext(). (Hirohito Higashi)
2017-01-09 20:30:27 +01:00
Bram Moolenaar
4d0504019c patch 8.0.0161: can't build with small features
Problem:    Build fails when using small features.
Solution:   Update #ifdef for using save_ccline. (Hirohito Higashi)
2017-01-09 12:58:11 +01:00
Bram Moolenaar
de33011ec6 patch 8.0.0160: EMSG() is sometimes used where it should be IEMSG()
Problem:    EMSG() is sometimes used for internal errors.
Solution:   Change them to IEMSG(). (Dominique Pelle)  And a few more.
2017-01-08 20:50:52 +01:00
Bram Moolenaar
c695cec469 patch 8.0.0159: crash on startup when updating tabline
Problem:    Using a NULL pointer when using feedkeys() to trigger drawing a
            tabline.
Solution:   Skip drawing a tabline if TabPageIdxs is NULL. (Dominique Pelle)
            Also fix recursing into getcmdline() from the cmd window.
2017-01-08 20:00:04 +01:00
Bram Moolenaar
6247361101 patch 8.0.0158: float funcion test fails on MS-Windows
Problem:    On MS-Windows some float functions return a different value when
            passed unusual values.  strtod() doesn't work for "inf" and "nan".
Solution:   Accept both results.  Fix str2float() for MS-Windows.  Also
            reorder assert function arguments.
2017-01-08 19:25:40 +01:00
Bram Moolenaar
2d02839050 patch 8.0.0157: no completion for :syntax spell and :syntax sync
Problem:    No command line completion for ":syntax spell" and ":syntax sync".
Solution:   Implement the completion. (Dominique Pelle)
2017-01-08 18:28:22 +01:00
Bram Moolenaar
453b576ee5 patch 8.0.0156: not enough test coverage for float functions
Problem:    Several float functions are not covered by tests.
Solution:   Add float tests. (Dominique Pelle)
2017-01-08 17:59:14 +01:00
Bram Moolenaar
a216255a4f patch 8.0.0155: ubsan complains about NULL pointer
Problem:    When sorting zero elements a NULL pointer is passed to qsort(),
            which ubsan warns for.
Solution:   Don't call qsort() if there are no elements. (Dominique Pelle)
2017-01-08 17:46:20 +01:00
Bram Moolenaar
31f19ce0a0 patch 8.0.0154: system() test fails on OS/X
Problem:    system() test fails on OS/X.
Solution:   Deal with leading spaces.
2017-01-08 14:14:43 +01:00
Bram Moolenaar
9d9c356517 patch 8.0.0153: system() test fails on MS-Windows
Problem:    system() test fails on MS-Windows.
Solution:   Deal when extra space and CR.
2017-01-08 13:55:06 +01:00
Bram Moolenaar
04e94c7881 patch 8.0.0152: stray channellog created when running tests
Problem:    Running the channel test creates channellog.
Solution:   Delete the debug line.
2017-01-08 13:38:58 +01:00
Bram Moolenaar
12c4492dd3 patch 8.0.0151: passing buffer content to system() is clumsy
Problem:    To pass buffer content to system() and systemlist() one has to
            first create a string or list.
Solution:   Allow passing a buffer number. (LemonBoy, closes #1240)
2017-01-08 13:26:03 +01:00
Bram Moolenaar
7069bf18e1 patch 8.0.0150: completion for :filter does not skip the pattern
Problem:    When the pattern of :filter does not have a separator then
            completion of the command fails.
Solution:   Skip over the pattern. (Ozaki Kiichi, clodes #1299)
2017-01-07 20:39:53 +01:00
Bram Moolenaar
cbd4de44e8 patch 8.0.0149: :earlier does not work after reading the undo file
Problem:    ":earlier" and ":later" do not work after startup or reading the
            undo file.
Solution:   Use absolute time stamps instead of relative to the Vim start
            time. (Christian Brabandt, Pavel Juhas, closes #1300, closes
            #1254)
2017-01-07 16:14:57 +01:00
Bram Moolenaar
c6aa475a27 patch 8.0.0148: wrong indent in C preprocessor with line continuation
Problem:    When a C preprocessor statement has two line continuations the
            following line does not have the right indent. (Ken Takata)
Solution:   Add the indent of the previous continuation line. (Hirohito
            Higashi)
2017-01-07 15:39:43 +01:00
Bram Moolenaar
6e450a5754 patch 8.0.0147: searchpair() fails when 'magic' is off
Problem:    searchpair() does not work when 'magic' is off. (Chris Paul)
Solution:   Add \m in the pattern. (Christian Brabandt, closes #1341)
2017-01-06 20:03:58 +01:00
Bram Moolenaar
287266527a patch 8.0.0146: termguicolors uses wrong colors on MS-Windows with ConEmu
Problem:    When using 'termguicolors' on MS-Windows the RGB definition causes
            the colors to be wrong.
Solution:   Undefined RGB and use our own. (Gabriel Barta)
2017-01-06 18:16:19 +01:00
Bram Moolenaar
29891c4ed4 patch 8.0.0145: running tests on MS-Windows is noisy
Problem:    Running tests on MS-Windows is a little bit noisy.
Solution:   Redirect some output to "nul". (Ken Takata)
2017-01-06 18:00:12 +01:00
Bram Moolenaar
aaeabfbca5 Only install coveralls when used. 2017-01-06 16:47:24 +01:00
Bram Moolenaar
14a612fa2e Better solution to make coveralls work again. 2017-01-06 16:35:04 +01:00
Bram Moolenaar
7034a83743 Tune travis config for coverage with gcc only. 2017-01-06 16:01:59 +01:00
Bram Moolenaar
a4ce25bd98 Another attempt to make coveralls work. 2017-01-06 15:37:45 +01:00
Bram Moolenaar
294740d2ac Attempt to make coverage working again. 2017-01-06 15:28:44 +01:00
Bram Moolenaar
9269315f63 patch 8.0.0144: when using MSVC the GvimExt directory is cleaned twice
Problem:    When using MSVC the GvimExt directory is cleaned twice.
Solution:   Remove the lines. (Ken Takata)
2017-01-06 14:55:36 +01:00
Bram Moolenaar
f845b87f2b patch 8.0.0143: line number of current buffer in getbufinfo() is wrong
Problem:    Line number of current buffer in getbufinfo() is wrong.
Solution:   For the current buffer use the current line number. (Ken Takata)
2017-01-06 14:04:54 +01:00
Bram Moolenaar
0cdb72aa38 patch 8.0.0142
Problem:    Normal colors are wrong with 'termguicolors'.
Solution:   Initialize to INVALCOLOR instead of zero. (Ben Jackson, closes
            #1344)
2017-01-02 21:37:40 +01:00
Bram Moolenaar
bc2eada542 Updated runtime files. 2017-01-02 21:27:47 +01:00
Bram Moolenaar
269aec7e61 patch 8.0.0141
Problem:    Nested function test fails on AppVeyor.
Solution:   Disable the test on Windows for now.
2017-01-02 18:32:39 +01:00
Bram Moolenaar
f8eb9c51e5 patch 8.0.0140
Problem:    Pasting inserted text in Visual mode does not work properly.
            (Matthew Malcomson)
Solution:   Stop Visual mode before stuffing the inserted text. (Christian
            Brabandt, from neovim #5709)
2017-01-02 17:31:24 +01:00
Bram Moolenaar
5e1e6d265d patch 8.0.0139
Problem:    Warning for unused argument.
Solution:   Add UNUSED.
2017-01-02 17:26:00 +01:00
Bram Moolenaar
b094ff4b2b patch 8.0.0138
Problem:    Small build fails.
Solution:   Add #ifdef.
2017-01-02 16:16:39 +01:00
Bram Moolenaar
777b30f827 patch 8.0.0137
Problem:    When 'maxfuncdepth' is set above 200 the nesting is limited to
            200. (Brett Stahlman)
Solution:   Allow for Ex command recursion depending on 'maxfuncdepth'.
2017-01-02 15:26:27 +01:00
Bram Moolenaar
54b2bfa399 patch 8.0.0136
Problem:    When using indent folding and changing indent the wrong fold is
            opened. (Jonathan Fudger)
Solution:   Open the fold under the cursor a bit later. (Christian Brabandt)
2017-01-02 14:57:08 +01:00
Bram Moolenaar
ded2782783 patch 8.0.0135
Problem:    An address relative to the current line, ":.,+3y", does not work
            properly on a closed fold. (Efraim Yawitz)
Solution:   Correct for including the closed fold. (Christian Brabandt)
2017-01-02 14:27:34 +01:00
Bram Moolenaar
c4bfedabe0 patch 8.0.0134
Problem:    Null pointer access reported by UBsan.
Solution:   Check curwin->w_buffer is not NULL. (Yegappan Lakshmanan)
2016-12-14 21:42:00 +01:00
Bram Moolenaar
fe38b494ff patch 8.0.0133
Problem:    "2;'(" causes ml_get errors in an empty buffer.  (Dominique Pelle)
Solution:   Check the cursor line earlier.
2016-12-11 21:34:23 +01:00
Bram Moolenaar
4c8980b717 patch 8.0.0132
Problem:    Test fails because of using :finish.
Solution:   Change to return.
2016-12-11 15:24:48 +01:00
Bram Moolenaar
73b484c4da patch 8.0.0131
Problem:    Not enough test coverage for syntax commands.
Solution:   Add more tests. (Dominique Pelle)
2016-12-11 15:11:17 +01:00
Bram Moolenaar
63de19e805 patch 8.0.0130
Problem:    Configure uses "ushort" while the Vim code doesn't.
Solution:   Use "unsigned short" instead. (Fredrik Fornwall, closes #1314)
2016-12-09 20:11:26 +01:00
Bram Moolenaar
0df3c7f2a0 patch 8.0.0129
Problem:    Parallel make still doesn't work. (Lewis Muir)
Solution:   Define OBJ_MAIN.
2016-12-09 19:57:14 +01:00
Bram Moolenaar
7089237885 patch 8.0.0128
Problem:    Display test fails on MS-Windows.
Solution:   Set 'isprint' to "@".
2016-12-09 19:51:49 +01:00
Bram Moolenaar
73fd498886 patch 8.0.0127
Problem:    Cancelling completion still inserts text when formatting is done
            for 'textwidth'. (lacygoill)
Solution:   Don't format when CTRL-E was typed. (Hirohito Higashi,
            closes #1312)
2016-12-09 19:36:56 +01:00
Bram Moolenaar
6270660611 patch 8.0.0126
Problem:    Display problem with 'foldcolumn' and a wide character.
            (esiegerman)
Solution:   Don't use "extra" but an allocated buffer. (Christian Brabandt,
            closes #1310)
2016-12-09 19:28:48 +01:00
Bram Moolenaar
eaaa9bbda6 patch 8.0.0125
Problem:    Not enough testing for entering Ex commands.
Solution:   Add test for CTRL-\ e {expr}. (Dominique Pelle)
2016-12-09 18:42:20 +01:00
Bram Moolenaar
3421566376 patch 8.0.0124
Problem:    Internal error for assert_inrange(1, 1).
Solution:   Adjust number of allowed arguments. (Dominique Pelle)
2016-12-04 13:37:41 +01:00
Bram Moolenaar
a899e6ecc4 patch 8.0.0123
Problem:    Modern Sun compilers define "__sun" instead of "sun".
Solution:   Use __sun. (closes #1296)
2016-12-03 16:40:51 +01:00
Bram Moolenaar
3fad98e8af patch 8.0.0122
Problem:    Channel test is still flaky on OS X.
Solution:   Add a short sleep.
2016-12-03 15:23:40 +01:00
Bram Moolenaar
a2477fd349 patch 8.0.0121
Problem:    Setting 'cursorline' changes the curswant column. (Daniel Hahler)
Solution:   Add the P_RWINONLY flag. (closes #1297)
2016-12-03 15:13:20 +01:00
Bram Moolenaar
5643db84c6 patch 8.0.0120
Problem:    Channel test is still flaky on OS X.
Solution:   Set the drop argument to "never".
2016-12-03 14:29:10 +01:00
Bram Moolenaar
21efc3633e patch 8.0.0119
Problem:    No test for using CTRL-R on the command line.
Solution:   Add a test. (Dominique Pelle) And some more.
2016-12-03 14:05:49 +01:00
Bram Moolenaar
99c5eb4fd7 Add objects dirstamp to gitignore. 2016-12-02 21:24:21 +01:00
Bram Moolenaar
5162822914 patch 8.0.0118
Problem:    "make proto" adds extra function prototype.
Solution:   Add #ifdef.
2016-12-01 23:03:28 +01:00
Bram Moolenaar
cf49790443 Updated runtime files. 2016-12-01 22:57:02 +01:00
Bram Moolenaar
327054df45 patch 8.0.0117
Problem:    Parallel make fails. (J. Lewis Muir)
Solution:   Make sure the objects directory exists. (closes #1259)
2016-12-01 21:46:14 +01:00
Bram Moolenaar
6dbf66aa3e patch 8.0.0116
Problem:    When reading English help and using CTRl-] the language from
            'helplang' is used.
Solution:   Make help tag jumps keep the language. (Tatsuki, test by Hirohito
            Higashi, closes #1249)
2016-12-01 21:32:32 +01:00
Bram Moolenaar
e3af763d5e patch 8.0.0115
Problem:    When building with Cygwin libwinpthread isn't found.
Solution:   Link winpthread statically. (jmmerz, closes #1255, closes #1256)
2016-12-01 20:37:47 +01:00
Bram Moolenaar
b04a98f6c3 patch 8.0.0114
Problem:    Coding style not optimal.
Solution:   Add spaces. (Ken Takata)
2016-12-01 20:32:29 +01:00
Bram Moolenaar
87f3d202a9 patch 8.0.0113
Problem:    MS-Windows: message box to prompt for saving changes may appear on
            the wrong monitor.
Solution:   Adjust the CenterWindow function. (Ken Takata)
2016-12-01 20:18:50 +01:00
Bram Moolenaar
eca626fcdb patch 8.0.0112
Problem:    Tests 92 and 93 are old style.
Solution:   Make test92 and test93 new style. (Hirohito Higashi, closes #1289)
2016-12-01 18:47:38 +01:00
Bram Moolenaar
eebd84eb94 patch 8.0.0111
Problem:    The :history command is not tested.
Solution:   Add tests. (Dominique Pelle)
2016-12-01 17:57:44 +01:00
Bram Moolenaar
5a030a540f patch 8.0.0110
Problem:    Drop command doesn't use existing window.
Solution:   Check the window width properly. (Hirohito Higashi)
2016-12-01 17:48:29 +01:00
Bram Moolenaar
b129a447f3 patch 8.0.0109
Problem:    Still checking if memcmp() exists while every system should have
            it now.
Solution:   Remove vim_memcmp().  (James McCoy, closes #1295)
2016-12-01 17:25:20 +01:00
Bram Moolenaar
65e08ee1d2 patch 8.0.0108
Problem:    The channel "drop" option is not tested.
Solution:   Add a test.
2016-12-01 16:41:50 +01:00
Bram Moolenaar
958dc6923d patch 8.0.0107
Problem:    When reading channel output in a timer, messages may go missing.
            (Skywind)
Solution:   Add the "drop" option.  Write error messages in the channel log.
            Don't have ch_canread() check for the channel being open.
2016-12-01 15:34:12 +01:00
Bram Moolenaar
0945eaface patch 8.0.0106
Problem:    Cannot use a semicolon in 'backupext'. (Jeff)
Solution:   Allow for a few more characters when "secure" isn't set.
2016-11-29 22:10:48 +01:00
Bram Moolenaar
4b785f69c0 patch 8.0.0105
Problem:    When using ch_read() with zero timeout, can't tell the difference
            between reading an empty line and nothing available.
Solution:   Add ch_canread().
2016-11-29 21:54:44 +01:00
Bram Moolenaar
f422bcc7f9 patch 8.0.0104
Problem:    Value of 'thesaurus' option not checked properly.
Solution:   Add P_NDNAME flag. (Daisuke Suzuki)
2016-11-26 17:45:53 +01:00
Bram Moolenaar
8a8199e4a1 patch 8.0.0103
Problem:    May not process channel readahead. (skywind)
Solution:   If there is readahead don't block on input.
2016-11-26 15:13:33 +01:00
Bram Moolenaar
7554da4033 patch 8.0.0102
Problem:    Cannot set 'dictionary' to a path.
Solution:   Allow for slash and backslash.  Add a test (partly by Daisuke
            Suzuki, closes #1279, closes #1284)
2016-11-25 22:04:13 +01:00
Bram Moolenaar
031cb743ae patch 8.0.0101
Problem:    Some options are not strictly checked.
Solution:   Add flags for strickter checks.
2016-11-24 21:46:19 +01:00
Bram Moolenaar
319afe3804 patch 8.0.0100
Problem:    Options that are a file name may contain non-filename characters.
Solution:   Check for more invalid characters.
2016-11-24 18:30:59 +01:00
Bram Moolenaar
73095288da patch 8.0.0099
Problem:    Popup menu always appears above the cursor when it is in the lower
            half of the screen. (Matt Gardner)
Solution:   Compute the available space better. (Hirohito Higashi,
            closes #1241)
2016-11-24 17:47:07 +01:00
Bram Moolenaar
58c358753e patch 8.0.0098
Problem:    Can't build on MS-Windows.
Solution:   Add missing parenthesis.
2016-11-24 17:33:17 +01:00
Bram Moolenaar
833eb1d752 patch 8.0.0097
Problem:    When a channel callback consumes a lot of time Vim becomes
            unresponsive. (skywind)
Solution:   Bail out of checking channel readahead after 100 msec.
2016-11-24 17:22:50 +01:00
Bram Moolenaar
2cab0e1910 patch 8.0.0096
Problem:    When the input or output is not a tty Vim appears to hang.
Solution:   Add the --ttyfail argument.  Also add the "ttyin" and "ttyout"
            features to be able to check in Vim script.
2016-11-24 15:09:07 +01:00
Bram Moolenaar
182707ac10 patch 8.0.0095
Problem:    Problems with GTK 3.22.2 fixed in 3.22.4.
Solution:   Adjust the #ifdefs. (Kazunobu Kuriyama)
2016-11-21 20:55:58 +01:00
Bram Moolenaar
63e4344edc patch 8.0.0094
Problem:    When vimrun.exe is not found the error message is not properly
            encoded.
Solution:   Use utf-16 and MessageBoxW(). (Ken Takata)
2016-11-19 17:28:44 +01:00
Bram Moolenaar
dda39aeafc patch 8.0.0093
Problem:    Not using multiprocess build feature.
Solution:   Enable multiprocess build with MSVC 10. (Ken Takata)
2016-11-19 17:17:12 +01:00
Bram Moolenaar
ca8b8d6956 patch 8.0.0092
Problem:    C indenting does not support nested namespaces that C++ 17 has.
Solution:   Add check that passes double colon inside a name. (Pauli, closes
            #1214)
2016-11-17 21:30:27 +01:00
Bram Moolenaar
9f0e423c28 patch 8.0.0091
Problem:    Test_help_complete sometimes fails in MS-Windows console.
Solution:   Use getcompletion() instead of feedkeys() and command line
            completion. (Hirohito Higashi)
2016-11-17 19:48:18 +01:00
Bram Moolenaar
6c896867c4 patch 8.0.0090
Problem:    Test_help_complete sometimes fails in MS-Windows console.
Solution:   Use getcompletion() instead of feedkeys() and command line
            completion. (Hirohito Higashi)
2016-11-17 19:46:51 +01:00
Bram Moolenaar
a859f04b4d patch 8.0.0089
Problem:    Various problems with GTK 3.22.2.
Solution:   Fix the problems, add #ifdefs. (Kazunobu Kuriyama)
2016-11-17 19:11:55 +01:00
Bram Moolenaar
cc28e2d05d patch 8.0.0088
Problem:    When a test fails in Setup or Teardown the problem is not reported.
Solution:   Add a try/catch. (Hirohito Higashi)
2016-11-17 17:56:13 +01:00
Bram Moolenaar
7df915d113 patch 8.0.0087
Problem:    When the channel callback gets job info the job may already have
            been deleted. (lifepillar)
Solution:   Do not delete the job when the channel is still useful. (ichizok,
            closes #1242, closes #1245)
2016-11-17 17:25:32 +01:00
Bram Moolenaar
c0514bf477 Updated runtime files. 2016-11-17 14:50:09 +01:00
Bram Moolenaar
2256c99471 patch 8.0.0086
Problem:    Cannot add a comment after ":hide". (Norio Takagi)
Solution:   Make it work, add a test. (Hirohito Higashi)
2016-11-15 21:17:07 +01:00
Bram Moolenaar
8a01f969c1 patch 8.0.0085
Problem:    Using freed memory with recursive function call. (Dominique Pelle)
Solution:   Make a copy of the function name.
2016-11-14 21:50:00 +01:00
Bram Moolenaar
7618e00d3b patch 8.0.0084
Problem:    Using freed memory when adding to a quickfix list. (Domenique
            Pelle)
Solution:   Clear the directory name.
2016-11-13 15:09:26 +01:00
Bram Moolenaar
8e63905263 patch 8.0.0083
Problem:    Using freed memory with win_getid(). (Domenique Pelle)
Solution:   For the current tab use curwin.
2016-11-13 14:31:40 +01:00
Bram Moolenaar
3f7d090726 patch 8.0.0082
Problem:    Extension for configure should be ".ac".
Solution:   Rename configure.in to configure.ac. (James McCoy, closes #1173)
2016-11-12 21:13:42 +01:00
Bram Moolenaar
d4db7719bd patch 8.0.0081
Problem:    Inconsistent function names.
Solution:   Rename do_cscope to ex_cscope.  Clean up comments.
2016-11-12 19:16:46 +01:00
Bram Moolenaar
b6be3ea45b patch 8.0.0080
Problem:    The OS X build fails on Travis.
Solution:   Skip the virtual framebuffer on OS X.
2016-11-12 18:30:39 +01:00
Bram Moolenaar
2b946c9f9b patch 8.0.0079
Problem:    Accessing freed memory in quickfix. (Domenique Pelle)
Solution:   Do not free the current list when adding to it.
2016-11-12 18:14:44 +01:00
Bram Moolenaar
63bed3d319 patch 8.0.0078
Problem:    Accessing freed memory in quickfix.
Solution:   Reset pointer when freeing 'errorformat'. (Domenique Pelle)
2016-11-12 15:36:54 +01:00
Bram Moolenaar
e3505dfc85 patch 8.0.0077
Problem:    The GUI code is not tested by Travis.
Solution:   Install the virtual framebuffer.
2016-11-11 21:57:45 +01:00
Bram Moolenaar
79cbdcb1ee patch 8.0.0076
Problem:    Channel log has double parens ()().
Solution:   Remove () for write_buf_line. (Yasuhiro Matsumoto)
2016-11-11 21:14:03 +01:00
Bram Moolenaar
8a5883b748 patch 8.0.0075
Problem:    Using number for exception type lacks type checking.
Solution:   Use an enum.
2016-11-10 20:20:05 +01:00
Bram Moolenaar
95f096030e patch 8.0.0074
Problem:    Cannot make Vim fail on an internal error.
Solution:   Add IEMSG() and IEMSG2(). (Domenique Pelle)  Avoid reporting an
            internal error without mentioning where.
2016-11-10 20:01:45 +01:00
Bram Moolenaar
459ca56312 patch 8.0.0073
Problem:    More comparisons between firstwin and lastwin.
Solution:   Use ONE_WINDOW for consistency. (Hirohito Higashi)
2016-11-10 18:16:33 +01:00
Bram Moolenaar
38bc495637 patch 8.0.0072
Problem:    MS-Windows: Crash with long font name. (Henry Hu)
Solution:   Fix comparing with LF_FACESIZE. (Ken Takata, closes #1243)
2016-11-10 17:10:51 +01:00
Bram Moolenaar
c4d4ac22f7 patch 8.0.0071
Problem:    Exit value from a shell command is wrong. (Hexchain Tong)
Solution:   Do not check for ended jobs while waiting for a shell command.
            (ichizok, closes #1196)
2016-11-07 22:42:57 +01:00
Bram Moolenaar
3f9ebf32a3 patch 8.0.0070
Problem:    Tests referred in Makefile that no longer exist.
Solution:   Remove test71 and test74 entries. (Michael Soyka)
2016-11-07 22:13:32 +01:00
Bram Moolenaar
a1f4cb93ba patch 8.0.0069
Problem:    Compiler warning for self-comparison.
Solution:   Define ONE_WINDOW and add #ifdef.
2016-11-06 15:25:42 +01:00
Bram Moolenaar
25de4c232d Updated runtime files. 2016-11-06 14:48:06 +01:00
Bram Moolenaar
21662be221 patch 8.0.0068
Problem:    Checking did_throw after executing autocommands is wrong. (Daniel
            Hahler)
Solution:   Call aborting() instead, and only when autocommands were executed.
2016-11-06 14:46:44 +01:00
Bram Moolenaar
98500fdc61 patch 8.0.0067
Problem:    VMS has a problem with infinity.
Solution:   Avoid an overflow. (Zoltan Arpadffy)
2016-11-06 14:17:16 +01:00
Bram Moolenaar
4a08b0dc4d patch 8.0.0066
Problem:    when calling an operator function when 'linebreak' is set, it is
            internally reset before calling the operator function.
Solution:   Restore 'linebreak' before calling op_function(). (Christian
            Brabandt)
2016-11-05 21:55:13 +01:00
Bram Moolenaar
40d3f137e7 patch 8.0.0065
Problem:    Compiler warning for unused function in tiny build. (Tony
            Mechelynck)
Solution:   Add #ifdef.
2016-11-05 20:13:35 +01:00
Bram Moolenaar
eb828d01d9 patch 8.0.0064
Problem:    Normal test fails on MS-Windows.
Solution:   Don't try using an illegal file name.
2016-11-05 19:54:01 +01:00
Bram Moolenaar
55952d4dd4 patch 8.0.0063
Problem:    Compiler warning for comparing with unsigned. (Zoltan Arpadffy)
Solution:   Change <= to ==.
2016-11-05 14:58:34 +01:00
Bram Moolenaar
8161551724 patch 8.0.0062
Problem:    No digraph for HORIZONTAL ELLIPSIS.
Solution:   Use ",.". (Hans Ginzel, closes #1226)
2016-11-04 22:17:16 +01:00
Bram Moolenaar
aab3383e70 patch 8.0.0061
Problem:    Compiler warning for unused variable.
Solution:   Add #ifdef. (John Marriott)
2016-11-04 22:08:29 +01:00
Bram Moolenaar
426f375422 patch 8.0.0060
Problem:    When using an Ex command for 'keywordprg' it is escaped as with a
            shell command. (Romain Lafourcade)
Solution:   Escape for an Ex command. (closes #1175)
2016-11-04 21:22:37 +01:00
Bram Moolenaar
de5e2c219b patch 8.0.0059
Problem:    Vim does not build on VMS systems.
Solution:   Various changes for VMS. (Zoltan Arpadffy)
2016-11-04 20:35:31 +01:00
Bram Moolenaar
91e44a3305 patch 8.0.0058
Problem:    Positioning of the popup menu is not good.
Solution:   Position it better. (Hirohito Higashi)
2016-11-04 20:08:52 +01:00
Bram Moolenaar
9376f5f482 patch 8.0.0057
Problem:    Tests fail without the 'keymap' features.
Solution:   Check for feature in test.
2016-11-04 16:41:20 +01:00
Bram Moolenaar
d0b5138ba4 patch 8.0.0056
Problem:    When setting 'filetype' there is no check for a valid name.
Solution:   Only allow valid characters in 'filetype', 'syntax' and 'keymap'.
2016-11-04 15:23:45 +01:00
Bram Moolenaar
3a117e19e0 patch 8.0.0055
Problem:    Minor comment and style deficiencies.
Solution:   Update comments and fix style.
2016-10-30 21:57:52 +01:00
Bram Moolenaar
b4ada79aa7 Runtime file updates. 2016-10-30 21:55:26 +01:00
Bram Moolenaar
fb63090b62 patch 8.0.0054
Problem:    On Windows job_stop() stops cmd.exe, not the processes it runs.
            (Linwei)
Solution:   Iterate over all processes and terminate the one where the parent
            is the job process. Now only when there is no job object.
            (Yasuhiro Matsumoto, closes #1203)
2016-10-29 14:55:00 +02:00
Bram Moolenaar
60ef3e81f4 patch 8.0.0053
Problem:    No test for what 8.0.0047 fixes.
Solution:   Add a test. (Hirohito Higashi)
2016-10-29 14:37:56 +02:00
Bram Moolenaar
35a1f59d63 patch 8.0.0052
Problem:    Conceal test passes even without the bug fix.
Solution:   Add a redraw command. (Christian Brabandt)
2016-10-28 22:10:27 +02:00
Bram Moolenaar
14207f487c patch 8.0.0051
Problem:    New code for job_stop() breaks channel test on AppVeyor.
Solution:   Revert the change.
2016-10-27 21:13:10 +02:00
Bram Moolenaar
01688ad545 patch 8.0.0050
Problem:    An exiting job is detected with a large latency.
Solution:   Check for pending job more often. (Ozaki Kiichi)  Change the
            double loop in mch_inchar() into one.
2016-10-27 20:00:07 +02:00
Bram Moolenaar
2f97912800 patch 8.0.0049
Problem:    When a match ends in part of concealed text highlighting, it might
            mess up concealing by resetting prev_syntax_id.
Solution:   Do not reset prev_syntax_id and add a test to verify. (Christian
            Brabandt, closes #1092)
2016-10-27 17:27:44 +02:00
Bram Moolenaar
6d5ad4c411 Updated runtime files. 2016-10-27 17:00:16 +02:00
Bram Moolenaar
a350bab042 patch 8.0.0048
Problem:    On Windows job_stop() stops cmd.exe, not the processes it runs.
            (Linwei)
Solution:   Iterate over all processes and terminate the one where the parent
            is the job process. (Yasuhiro Matsumoto, closes #1184)
2016-10-27 16:46:53 +02:00
Bram Moolenaar
50e5376926 patch 8.0.0047
Problem:    Crash when using the preview window from an unnamed buffer.
            (lifepillar)
Solution:   Do not clear the wrong buffer. (closes #1200)
2016-10-27 14:49:15 +02:00
Bram Moolenaar
46fceaaa8d Updated runtime files. 2016-10-23 21:21:08 +02:00
Bram Moolenaar
7756e7465d patch 8.0.0046
Problem:    Using NUL instead of NULL.
Solution:   Change to NULL. (Dominique Pelle)
2016-10-21 20:35:37 +02:00
Bram Moolenaar
bb09ceb954 patch 8.0.0045
Problem:    Calling job_stop() right after job_start() does not work.
Solution:   Block signals while fork is still busy. (Ozaki Kiichi, closes
            #1155)
2016-10-18 16:27:23 +02:00
Bram Moolenaar
025e3e0baf patch 8.0.0044
Problem:    In diff mode the cursor may end up below the last line, resulting
            in an ml_get error.
Solution:   Check the line to be valid.
2016-10-18 14:50:18 +02:00
Bram Moolenaar
9ec7fa82a2 patch 8.0.0043
Problem:    When using Insert mode completion with 'completeopt' containing
            "noinsert" with CTRL-N the change is not saved for undo.  (Tommy
            Allen)
Solution:   Call stop_arrow() before inserting for any key.
2016-10-18 13:06:41 +02:00
Bram Moolenaar
cbd3bd6cbe patch 8.0.0042
Problem:    When using Insert mode completion with 'completeopt' containing
            "noinsert" change is not saved for undo.  (Tommy Allen)
Solution:   Call stop_arrow() before inserting for pressing Enter.
2016-10-17 20:47:02 +02:00
Bram Moolenaar
869e35270e patch 8.0.0041
Problem:    When using Insert mode completion but not actually inserting
            anything an undo item is still created. (Tommy Allen)
Solution:   Do not call stop_arrow() when not inserting anything.
2016-10-16 15:35:47 +02:00
Bram Moolenaar
8507747600 patch 8.0.0040
Problem:    Whole line highlighting with matchaddpos() does not work.
Solution:   Check for zero length. (Hirohito Higashi)
2016-10-16 14:35:48 +02:00
Bram Moolenaar
156919f99a patch 8.0.0039
Problem:    When Vim 8 reads an old viminfo and exits, the next time marks are
            not read from viminfo. (Ned Batchelder)
Solution:   Set a mark when it wasn't set before, even when the timestamp is
            zero. (closes #1170)
2016-10-15 20:46:20 +02:00
Bram Moolenaar
ca291aec99 patch 8.0.0038
Problem:    OPEN_CHR_FILES not defined for FreeBSD using Debian userland
            files.
Solution:   Check for __FreeBSD_kernel__. (James McCoy, closes #1166)
2016-10-15 19:33:50 +02:00
Bram Moolenaar
0a9046fbcb patch 8.0.0037
Problem:    Get E924 when switching tabs. ()
Solution:   Use win_valid_any_tab() instead of win_valid(). (Martin Vuille,
            closes #1167, closes #1171)
2016-10-15 19:28:13 +02:00
Bram Moolenaar
97792de276 patch 8.0.0036
Problem:    Detecting that a job has finished may take a while.
Solution:   Check for a finished job more often (Ozaki Kiichi)
2016-10-15 18:36:49 +02:00
Bram Moolenaar
472e85970e patch 8.0.0035
Problem:    Order of matches for 'omnifunc' is messed up. (Danny Su)
Solution:   Do not set compl_curr_match when called from complete_check().
            (closes #1168)
2016-10-15 17:06:47 +02:00
Bram Moolenaar
9e507ca8a3 patch 8.0.0034
Problem:    No completion for ":messages".
Solution:   Complete "clear" argument. (Hirohito Higashi)
2016-10-15 15:39:39 +02:00
Bram Moolenaar
a6c27ee6db patch 8.0.0033
Problem:    Cannot use overlapping positions with matchaddpos().
Solution:   Check end of match. (Ozaki Kiichi) Add a test (Hirohito Higashi)
2016-10-15 14:56:30 +02:00
Bram Moolenaar
4575876dc8 Updated runtime files. 2016-10-12 23:08:06 +02:00
Bram Moolenaar
3e8474dd50 patch 8.0.0032
Problem:    Tests may change the input file when something goes wrong.
Solution:   Avoid writing the input file.
2016-10-12 17:52:42 +02:00
Bram Moolenaar
e8ef3a0934 patch 8.0.0031
Problem:    After ":bwipeout" 'fileformat' is not set to the right default.
Solution:   Get the default from 'fileformats'. (Mike Williams)
2016-10-12 17:45:29 +02:00
Bram Moolenaar
0ba407012c patch 8.0.0030
Problem:    Mouse mode is not automatically detected for tmux.
Solution:   Check for 'term' to be "tmux". (Michael Henry)
2016-10-12 14:50:54 +02:00
Bram Moolenaar
cea912af72 patch 8.0.0029
Problem:    Code for MS-Windows is complicated because of the exceptions for
            old systems.
Solution:   Drop support for MS-Windows older than Windows XP. (Ken Takata)
2016-10-12 14:20:24 +02:00
Bram Moolenaar
a7c023ec88 patch 8.0.0028
Problem:    Superfluous semicolons.
Solution:   Remove them. (Ozaki Kiichi)
2016-10-12 12:13:35 +02:00
Bram Moolenaar
dc08328821 Updated runtime files. 2016-10-11 08:57:33 +02:00
Bram Moolenaar
dc0ccaee68 patch 8.0.0027
Problem:    A channel is closed when reading on stderr or stdout fails, but
            there may still be something to read on another part.
Solution:   Turn ch_to_be_closed into a bitfield. (Ozaki Kiichi)
2016-10-09 17:28:01 +02:00
Bram Moolenaar
9b45794818 patch 8.0.0026
Problem:    Error format with %W, %C and %Z does not work. (Gerd Wachsmuth)
Solution:   Skip code when qf_multiignore is set. (Lcd)
2016-10-09 16:10:05 +02:00
Bram Moolenaar
936c48f8ca patch 8.0.0025
Problem:    Inconsistent use of spaces vs tabs in gd test.
Solution:   Use tabs. (Anton Lindqvist)
2016-10-09 15:50:48 +02:00
Bram Moolenaar
8ddef48d1e patch 8.0.0024
Problem:    When the netbeans channel closes, "DETACH" is put in the output
            part. (Ozaki Kiichi)
Solution:   Write "DETACH" in the socket part.
2016-10-09 15:43:25 +02:00
Bram Moolenaar
226630a030 patch 8.0.0023
Problem:    "gd" and "gD" may find a match in a comment or string.
Solution:   Ignore matches in comments and strings. (Anton Lindqvist)
2016-10-08 19:21:31 +02:00
Bram Moolenaar
ec68a99464 patch 8.0.0022
Problem:    If a channel in NL mode is missing the NL at the end the remaining
            characters are dropped.
Solution:   When the channel is closed use the remaining text. (Ozaki Kiichi)
2016-10-03 21:37:41 +02:00
Bram Moolenaar
84dbd494dc patch 8.0.0021
Problem:    In the GUI when redrawing the cursor it may be on the second half
            of a double byte character.
Solution:   Correct the cursor column. (Yasuhiro Matsumoto)
2016-10-02 23:09:31 +02:00
Bram Moolenaar
6100d02aab patch 8.0.0020
Problem:    The regexp engines are not reentrant.
Solution:   Add regexec_T and save/restore the state when needed.
2016-10-02 16:51:57 +02:00
Bram Moolenaar
2ec618c9fe Updated runtime files. 2016-10-01 14:47:05 +02:00
Bram Moolenaar
b3435b0a3a patch 8.0.0019
Problem:    Test_command_count is old style.
Solution:   Turn it into a new style test. (Naruhiko Nishino)
            Use more assert functions.
2016-09-29 20:54:59 +02:00
Bram Moolenaar
b9c31e71f5 patch 8.0.0018
Problem:    When using ":sleep" channel input is not handled.
Solution:   When there is a channel check for input also when not in raw mode.
            Check every 100 msec.
2016-09-29 15:18:57 +02:00
Bram Moolenaar
1777785751 Missing part of patch 8.0.0014 2016-09-27 21:30:22 +02:00
Bram Moolenaar
890680ca63 patch 8.0.0017
Problem:    Cannot get the number of the current quickfix or location list.
Solution:   Use the current list if "nr" in "what" is zero. (Yegappan
            Lakshmanan)  Remove debug command from test.
2016-09-27 21:28:56 +02:00
Bram Moolenaar
0e77b7691e patch 8.0.0016
Problem:    Build fails.
Solution:   Include missing change.
2016-09-26 22:58:58 +02:00
Bram Moolenaar
7ef3810d28 patch 8.0.0015
Problem:    Can't tell which part of a channel has "buffered" status.
Solution:   Add an optional argument to ch_status().  Let ch_info() also
            return "buffered" for out_status and err_status.
2016-09-26 22:36:58 +02:00
Bram Moolenaar
1eceadaf48 patch 8.0.0014
Problem:    Crypt tests are old style.
Solution:   Convert to new style.
2016-09-26 20:14:56 +02:00
Bram Moolenaar
c79d6aa01d patch 8.0.0013
Problem:    Missing comma in list.
Solution:   Add the comma.
2016-09-25 22:27:37 +02:00
Bram Moolenaar
3e496b0ea3 Updated runtime files. 2016-09-25 22:11:48 +02:00
Bram Moolenaar
9af4184276 patch 8.0.0012
Problem:    Typos in comments.
Solution:   Change "its" to "it's". (Matthew Brener, closes #1088)
2016-09-25 21:45:05 +02:00
Bram Moolenaar
20eeb6129d Fix patch applied twice. 2016-09-25 21:06:50 +02:00
Bram Moolenaar
947000d6e4 patch 8.0.0011
Problem:    On OSX Test_pipe_through_sort_all() sometimes fails.
Solution:   Add the test to the list of flaky tests.
2016-09-25 21:03:02 +02:00
Bram Moolenaar
680e015bfe patch 8.0.0010
Problem:    Crash when editing file that starts with crypt yeader. (igor2x)
Solution:   Check for length of text. (Christian Brabandt) Add a test.
2016-09-25 20:54:11 +02:00
Bram Moolenaar
3f1c15b24a patch 8.0.0009
Problem:    Unecessary workround for AppVeyor.
Solution:   Revert patch 7.4.990. (Christian Brabandt)
2016-09-25 20:22:02 +02:00
Bram Moolenaar
50ba526fbf Updated runtime files. 2016-09-22 22:33:02 +02:00
Bram Moolenaar
9e02cfa226 patch 8.0.0008
Problem:    Popup complete test is disabled.
Solution:   Enable the test and change the assert. (Hirohito Higashi)
2016-09-22 21:27:11 +02:00
Bram Moolenaar
bbe917d9d4 patch 8.0.0007
Problem:    Vim 7.4 is still mentioned in a few places.
Solution:   Update to Vim 8.  (Uncle Bill, closes #1094)
2016-09-21 22:41:24 +02:00
Bram Moolenaar
ebdd90ac28 patch 8.0.0006
Problem:    ":lb" is interpreted as ":lbottom" while the documentation says it
            means ":lbuffer".
Solution:   Adjust the order of the commands. (haya14busa, closes #1093)
2016-09-20 21:39:14 +02:00
Bram Moolenaar
d07969093a Updated runtime files. 2016-09-16 20:02:31 +02:00
Bram Moolenaar
3c4ebeba17 patch 8.0.0005
Problem:    Netbeans test fails with Python 3. (Jonathonf)
Solution:   Encode the string before sending it. (closes #1070)
2016-09-15 11:44:27 +02:00
Bram Moolenaar
5582ef1438 patch 8.0.0004
Problem:    A string argument for function() that is not a function name
            results in an error message with NULL. (Christian Brabandt)
Solution:   Use the argument for the error message.
2016-09-14 22:16:13 +02:00
293 changed files with 15051 additions and 7842 deletions

1
.gitignore vendored
View File

@@ -5,6 +5,7 @@ src/xxd/xxd
src/auto/if_perl.c
src/auto/gui_gtk_gresources.c
src/auto/gui_gtk_gresources.h
src/objects/.dirstamp
src/tags
# We do need src/auto/configure.

View File

@@ -18,13 +18,16 @@ env:
# Mac OSX build
- BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
# ASAN build
- BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -fsanitize=address -fno-omit-frame-pointer" FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
sudo: false
git:
depth: 1
# instead of a 6*2*2 matrix (2*os + 2*compiler + 6*env),
# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
# exclude some builds on mac os x and linux
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
matrix:
@@ -38,6 +41,13 @@ matrix:
- os: osx
env: BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
- os: osx
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -fsanitize=address -fno-omit-frame-pointer" FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
- os: linux
compiler: gcc
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -fsanitize=address -fno-omit-frame-pointer" FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
- os: linux
compiler: clang
env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
@@ -65,10 +75,17 @@ addons:
- cscope
before_install:
- pip install --user cpp-coveralls
- if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls; fi
# needed for https support for coveralls
# building cffi only works with gcc, not with clang
- if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
# Lua is not installed on Travis OSX
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
before_script:
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then export DISPLAY=:99.0 && sh -e /etc/init.d/xvfb start && sleep 3; fi
script:
- NPROC=$(getconf _NPROCESSORS_ONLN)
- if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi

View File

@@ -207,7 +207,7 @@ SRC_UNIX = \
src/config.mk.dist \
src/config.mk.in \
src/configure \
src/configure.in \
src/configure.ac \
src/gui_at_fs.c \
src/gui_at_sb.c \
src/gui_at_sb.h \

View File

@@ -41,7 +41,7 @@ These are the normal steps to install Vim from the .zip archives:
located. Check the $VIM setting to see where it points to:
set VIM
For example, if you have
C:\vim\vim74
C:\vim\vim80
do
cd C:\
Binary and runtime Vim archives are normally unpacked in the same location,

View File

@@ -4,5 +4,25 @@ This file explains the installation of Vim on Macintosh systems.
See "README.txt" for general information about Vim.
Sorry, this text still needs to be written!
To build from sources, like on Unix
1. Get the build tools: "clang" and "make". These can be installed with the
"CommandLineTools" package. If you don't have one, do
xcode-select --install
Just like for any software development with OS X.
2. Get the source code. Best is to use git (which you need to install first),
see http://www.vim.org/git.php
Or you can download and unpack the Unix tar archive, see
http://www.vim.org/download.php
3. Go to the top directory of the source tree, do
make
sudo make install
A newly built vim will be installed under "/usr/local".
If you can't manage to make this work, there is a fallback using Homebrew:
1. Install Homebrew from http://brew.sh/
2. Install latest Vim with: brew install vim

View File

@@ -16,9 +16,6 @@ matrix:
before_build:
- '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release'
# Work around for Python 2.7.11's bug
- reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:32
- reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:64
build_script:
- src/appveyor.bat

View File

@@ -0,0 +1,184 @@
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Latest Revision: 2016 Oct 21
let s:keepcpo= &cpo
set cpo&vim
" Helper functions {{{
function! s:context_echo(message, mode)
redraw
echo "\r"
execute 'echohl' a:mode
echomsg '[ConTeXt]' a:message
echohl None
endf
function! s:sh()
return has('win32') || has('win64') || has('win16') || has('win95')
\ ? ['cmd.exe', '/C']
\ : ['/bin/sh', '-c']
endfunction
" For backward compatibility
if exists('*win_getid')
function! s:win_getid()
return win_getid()
endf
function! s:win_id2win(winid)
return win_id2win(a:winid)
endf
else
function! s:win_getid()
return winnr()
endf
function! s:win_id2win(winnr)
return a:winnr
endf
endif
" }}}
" ConTeXt jobs {{{
if has('job')
let g:context_jobs = []
" Print the status of ConTeXt jobs
function! context#job_status()
let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
let l:n = len(l:jobs)
call s:context_echo(
\ 'There '.(l:n == 1 ? 'is' : 'are').' '.(l:n == 0 ? 'no' : l:n)
\ .' job'.(l:n == 1 ? '' : 's').' running'
\ .(l:n == 0 ? '.' : ' (' . join(l:jobs, ', ').').'),
\ 'ModeMsg')
endfunction
" Stop all ConTeXt jobs
function! context#stop_jobs()
let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
for job in l:jobs
call job_stop(job)
endfor
sleep 1
let l:tmp = []
for job in l:jobs
if job_status(job) == "run"
call add(l:tmp, job)
endif
endfor
let g:context_jobs = l:tmp
if empty(g:context_jobs)
call s:context_echo('Done. No jobs running.', 'ModeMsg')
else
call s:context_echo('There are still some jobs running. Please try again.', 'WarningMsg')
endif
endfunction
function! context#callback(path, job, status)
if index(g:context_jobs, a:job) != -1 && job_status(a:job) != 'run' " just in case
call remove(g:context_jobs, index(g:context_jobs, a:job))
endif
call s:callback(a:path, a:job, a:status)
endfunction
function! context#close_cb(channel)
call job_status(ch_getjob(a:channel)) " Trigger exit_cb's callback for faster feedback
endfunction
function! s:typeset(path)
call add(g:context_jobs,
\ job_start(add(s:sh(), context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))), {
\ 'close_cb' : 'context#close_cb',
\ 'exit_cb' : function(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
\ [a:path]),
\ 'in_io' : 'null'
\ }))
endfunction
else " No jobs
function! context#job_status()
call s:context_echo('Not implemented', 'WarningMsg')
endfunction!
function! context#stop_jobs()
call s:context_echo('Not implemented', 'WarningMsg')
endfunction
function! context#callback(path, job, status)
call s:callback(a:path, a:job, a:status)
endfunction
function! s:typeset(path)
execute '!' . context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))
call call(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
\ [a:path, 0, v:shell_error])
endfunction
endif " has('job')
function! s:callback(path, job, status) abort
if a:status < 0 " Assume the job was terminated
return
endif
" Get info about the current window
let l:winid = s:win_getid() " Save window id
let l:efm = &l:errorformat " Save local errorformat
let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
" Set errorformat to parse ConTeXt errors
execute 'setl efm=' . escape(b:context_errorformat, ' ')
try " Set cwd to expand error file correctly
execute 'lcd' fnameescape(fnamemodify(a:path, ':h'))
catch /.*/
execute 'setl efm=' . escape(l:efm, ' ')
throw v:exception
endtry
try
execute 'cgetfile' fnameescape(fnamemodify(a:path, ':r') . '.log')
botright cwindow
finally " Restore cwd and errorformat
execute s:win_id2win(l:winid) . 'wincmd w'
execute 'lcd ' . fnameescape(l:cwd)
execute 'setl efm=' . escape(l:efm, ' ')
endtry
if a:status == 0
call s:context_echo('Success!', 'ModeMsg')
else
call s:context_echo('There are errors. ', 'ErrorMsg')
endif
endfunction
function! context#command()
return get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
\ . ' --script context --autogenerate --nonstopmode'
\ . ' --synctex=' . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
\ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
endfunction
" Accepts an optional path (useful for big projects, when the file you are
" editing is not the project's root document). If no argument is given, uses
" the path of the current buffer.
function! context#typeset(...) abort
let l:path = fnamemodify(strlen(a:000[0]) > 0 ? a:1 : expand("%"), ":p")
let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
call s:context_echo('Typesetting...', 'ModeMsg')
execute 'lcd' fnameescape(fnamemodify(l:path, ":h"))
try
call s:typeset(l:path)
finally " Restore local working directory
execute 'lcd ' . fnameescape(l:cwd)
endtry
endfunction!
"}}}
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: sw=2 fdm=marker

View File

@@ -0,0 +1,25 @@
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Latest Revision: 2016 Oct 15
let s:keepcpo= &cpo
set cpo&vim
" Complete keywords in MetaPost blocks
function! contextcomplete#Complete(findstart, base)
if a:findstart == 1
if len(synstack(line('.'), 1)) > 0 &&
\ synIDattr(synstack(line('.'), 1)[0], "name") ==# 'contextMPGraphic'
return syntaxcomplete#Complete(a:findstart, a:base)
else
return -3
endif
else
return syntaxcomplete#Complete(a:findstart, a:base)
endif
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: sw=2 fdm=marker

View File

@@ -236,7 +236,7 @@ fun! getscript#GetLatestVimScripts()
" call Decho("..depscript<".depscript.">")
" found a "GetLatestVimScripts: # #" line in the script;
" check if its already in the datafile by searching backwards from llp1,
" check if it's already in the datafile by searching backwards from llp1,
" the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file,
" for the script-id with no wrapping allowed.
let curline = line(".")

View File

@@ -1,6 +1,6 @@
" Vim autoload file for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2014 Nov 05
" Last Change: 2016 Sep 28
" These functions are used by the gzip plugin.
@@ -63,6 +63,9 @@ fun gzip#read(cmd)
" set 'modifiable'
let ma_save = &ma
setlocal ma
" set 'write'
let write_save = &write
set write
" Reset 'foldenable', otherwise line numbers get adjusted.
if has("folding")
let fen_save = &fen
@@ -127,6 +130,7 @@ fun gzip#read(cmd)
let &pm = pm_save
let &cpo = cpo_save
let &l:ma = ma_save
let &write = write_save
if has("folding")
let &l:fen = fen_save
endif

View File

@@ -3,7 +3,7 @@
" Maintainer: Dávid Szabó ( complex857 AT gmail DOT com )
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" URL: https://github.com/shawncplus/phpcomplete.vim
" Last Change: 2015 Jul 13
" Last Change: 2016 Oct 10
"
" OPTIONS:
"
@@ -195,6 +195,8 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
" }}}
elseif context =~? 'implements'
return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports)
elseif context =~? 'instanceof'
return phpcomplete#CompleteClassName(a:base, ['c', 'n'], current_namespace, imports)
elseif context =~? 'extends\s\+.\+$' && a:base == ''
return ['implements']
elseif context =~? 'extends'
@@ -787,6 +789,8 @@ function! phpcomplete#CompleteClassName(base, kinds, current_namespace, imports)
if kinds == ['c', 'i']
let filterstr = 'v:val =~? "\\(class\\|interface\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['c', 'n']
let filterstr = 'v:val =~? "\\(class\\|namespace\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['c']
let filterstr = 'v:val =~? "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['i']
@@ -931,7 +935,7 @@ function! phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibite
endfor
for modifier in a:modifiers
" if the modifier is prohibited its a no match
" if the modifier is prohibited it's a no match
if index(a:prohibited_modifiers, modifier) != -1
return 0
endif
@@ -996,7 +1000,7 @@ function! phpcomplete#CompleteUserClass(context, base, sccontent, visibility) "
let required_modifiers += ['static']
endif
let all_variable = filter(deepcopy(a:sccontent),
\ 'v:val =~ "^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$"')
\ 'v:val =~ "\\(^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$\\|^\\s*\\(\\/\\|\\*\\)*\\s*@property\\s\\+\\S\\+\\s\\S\\{-}\\s*$\\)"')
let variables = []
for i in all_variable
@@ -1160,6 +1164,14 @@ function! phpcomplete#GetTaglist(pattern) " {{{
endif
let tags = taglist(a:pattern)
for tag in tags
for prop in keys(tag)
if prop == 'cmd' || prop == 'static' || prop == 'kind' || prop == 'builtin'
continue
endif
let tag[prop] = substitute(tag[prop], '\\\\', '\\', 'g')
endfor
endfor
let s:cache_tags[a:pattern] = tags
let has_key = has_key(s:cache_tags, a:pattern)
let s:cache_tags_checksum = cache_checksum
@@ -1379,7 +1391,7 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
" Get Structured information of all classes and subclasses including namespace and includes
" try to find the method's return type in docblock comment
for classstructure in classcontents
let docblock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method
let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>'
let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
if doc_str != ''
break
@@ -1387,8 +1399,17 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
endfor
if doc_str != ''
let docblock = phpcomplete#ParseDocBlock(doc_str)
if has_key(docblock.return, 'type') || has_key(docblock.var, 'type')
let type = has_key(docblock.return, 'type') ? docblock.return.type : docblock.var.type
if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0
let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''
if type == ''
for property in docblock.properties
if property.description =~? method
let type = property.type
break
endif
endfor
endif
" there's a namespace in the type, threat the type as FQCN
if type =~ '\\'
@@ -1554,6 +1575,9 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
elseif get(methodstack, 0) =~# function_invocation_pattern
let function_name = matchstr(methodstack[0], '^\s*\zs'.function_name_pattern)
let function_file = phpcomplete#GetFunctionLocation(function_name, a:current_namespace)
if function_file == ''
let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
endif
if function_file == 'VIMPHP_BUILTINFUNCTION'
" built in function, grab the return type from the info string
@@ -1569,7 +1593,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file
let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
endif
endif
if classname_candidate != ''
@@ -1650,9 +1674,10 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let sub_methodstack = phpcomplete#GetMethodStack(matchstr(line, '^\s*'.object.'\s*=&\?\s*\s\+\zs.*'))
let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(
\ classname,
\ a:current_namespace,
\ namespace_for_class,
\ a:imports,
\ sub_methodstack)
return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
endif
endif
@@ -1783,6 +1808,9 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let [function_name, function_namespace] = phpcomplete#ExpandClassName(function_name, a:current_namespace, a:imports)
let function_file = phpcomplete#GetFunctionLocation(function_name, function_namespace)
if function_file == ''
let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
endif
if function_file == 'VIMPHP_BUILTINFUNCTION'
" built in function, grab the return type from the info string
@@ -1798,7 +1826,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let classname_candidate = docblock.return.type
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file
let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
break
endif
endif
@@ -1861,6 +1889,8 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
for tag in tags
if tag.kind ==? 'v' && tag.cmd =~? '=\s*new\s\+\zs'.class_name_pattern.'\ze'
let classname = matchstr(tag.cmd, '=\s*new\s\+\zs'.class_name_pattern.'\ze')
" unescape the classname, it would have "\" doubled since it is an ex command
let classname = substitute(classname, '\\\(\_.\)', '\1', 'g')
return classname
endif
endfor
@@ -2077,6 +2107,19 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
endif
call searchpair('{', '', '}', 'W')
let class_closing_bracket_line = line('.')
" Include class docblock
let doc_line = cfline - 1
if getline(doc_line) =~? '^\s*\*/'
while doc_line != 0
if getline(doc_line) =~? '^\s*/\*\*'
let cfline = doc_line
break
endif
let doc_line -= 1
endwhile
endif
let classcontent = join(getline(cfline, class_closing_bracket_line), "\n")
let used_traits = []
@@ -2241,8 +2284,19 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
let line = a:sccontent[i]
" search for a function declaration
if line =~? a:search
let l = i - 1
" start backward serch for the comment block
if line =~? '@property'
let doc_line = i
while doc_line != sccontent_len - 1
if a:sccontent[doc_line] =~? '^\s*\*/'
let l = doc_line
break
endif
let doc_line += 1
endwhile
else
let l = i - 1
endif
" start backward search for the comment block
while l != 0
let line = a:sccontent[l]
" if it's a one line docblock like comment and we can just return it right away
@@ -2263,7 +2317,7 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
return ''
end
while l != 0
while l >= 0
let line = a:sccontent[l]
if line =~? '^\s*/\*\*'
let comment_start = l
@@ -2297,9 +2351,10 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
\ 'return': {},
\ 'throws': [],
\ 'var': {},
\ 'properties': [],
\ }
let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g')
let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@type\|@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g')
let docblock_lines = split(a:docblock, "\n")
let param_lines = filter(copy(docblock_lines), 'v:val =~? "^@param"')
@@ -2334,15 +2389,26 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
endif
endfor
let var_line = filter(copy(docblock_lines), 'v:val =~? "^@var"')
let var_line = filter(copy(docblock_lines), 'v:val =~? "^\\(@var\\|@type\\)"')
if len(var_line) > 0
let var_parts = matchlist(var_line[0], '@var\s\+\(\S\+\)\s*\(.*\)')
let var_parts = matchlist(var_line[0], '\(@var\|@type\)\s\+\(\S\+\)\s*\(.*\)')
let res['var'] = {
\ 'line': var_parts[0],
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 1, '')),
\ 'description': get(var_parts, 2, '')}
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 2, '')),
\ 'description': get(var_parts, 3, '')}
endif
let property_lines = filter(copy(docblock_lines), 'v:val =~? "^@property"')
for property_line in property_lines
let parts = matchlist(property_line, '\(@property\)\s\+\(\S\+\)\s*\(.*\)')
if len(parts) > 0
call add(res.properties, {
\ 'line': parts[0],
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(parts, 2, '')),
\ 'description': get(parts, 3, '')})
endif
endfor
return res
endfunction
" }}}
@@ -2498,6 +2564,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let name = matchstr(name, '\\\zs[^\\]\+\ze$')
endif
endif
" leading slash is not required use imports are always absolute
let imports[name] = {'name': object, 'kind': ''}
endfor
@@ -2533,6 +2600,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
elseif !exists('no_namespace_candidate')
" save the first namespacless match to be used if no better
" candidate found later on
let tag.namespace = namespace_for_classes
let no_namespace_candidate = tag
endif
endif

View File

@@ -196,7 +196,7 @@ function! rubycomplete#Complete(findstart, base)
if c =~ '\w'
continue
elseif ! c =~ '\.'
idx = -1
let idx = -1
break
else
break

View File

@@ -117,7 +117,7 @@ fun! tar#Browse(tarfile)
if !filereadable(a:tarfile)
" call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
if a:tarfile !~# '^\a\+://'
" if its an url, don't complain, let url-handlers such as vim do its thing
" if it's an url, don't complain, let url-handlers such as vim do its thing
redraw!
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
endif

View File

@@ -347,7 +347,7 @@ fun! vimball#Vimball(really,...)
" call Decho("exe tabn ".curtabnr)
exe "tabn ".curtabnr
" set up help if its a doc/*.txt file
" set up help if it's a doc/*.txt file
" call Decho("didhelp<".didhelp."> fname<".fname.">")
if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')

View File

@@ -1,7 +1,7 @@
" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
" Date: Jul 02, 2013
" Version: 27
" Date: Sep 13, 2016
" Version: 28
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1
@@ -20,10 +20,10 @@
if &cp || exists("g:loaded_zip")
finish
endif
let g:loaded_zip= "v27"
let g:loaded_zip= "v28"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of zip needs vim 7.2"
echo "***warning*** this version of zip needs vim 7.2 or later"
echohl Normal
finish
endif
@@ -53,6 +53,9 @@ endif
if !exists("g:zip_unzipcmd")
let g:zip_unzipcmd= "unzip"
endif
if !exists("g:zip_extractcmd")
let g:zip_extractcmd= g:zip_unzipcmd
endif
" ----------------
" Functions: {{{1
@@ -62,14 +65,14 @@ endif
" zip#Browse: {{{2
fun! zip#Browse(zipfile)
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
" sanity check: insure that the zipfile has "PK" as its first two letters
" sanity check: ensure that the zipfile has "PK" as its first two letters
" (zipped files have a leading PK as a "magic cookie")
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
exe "noautocmd e ".fnameescape(a:zipfile)
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
return
" else " Decho
" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - its a zip file")
" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - it's a zip file")
endif
let repkeep= &report
@@ -92,7 +95,7 @@ fun! zip#Browse(zipfile)
endif
if !filereadable(a:zipfile)
if a:zipfile !~# '^\a\+://'
" if its an url, don't complain, let url-handlers such as vim do its thing
" if it's an url, don't complain, let url-handlers such as vim do its thing
redraw!
echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
@@ -136,8 +139,10 @@ fun! zip#Browse(zipfile)
return
endif
" Maps associated with zip plugin
setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
noremap <silent> <buffer> x :call zip#Extract()<cr>
let &report= repkeep
" call Dret("zip#Browse")
@@ -204,6 +209,15 @@ fun! zip#Read(fname,mode)
endif
" call Decho("zipfile<".zipfile.">")
" call Decho("fname <".fname.">")
" sanity check
if !executable(substitute(g:zip_unzipcmd,'\s\+.*$','',''))
redraw!
echohl Error | echo "***error*** (zip#Read) sorry, your system doesn't appear to have the ".g:zip_unzipcmd." program" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("zip#Write")
return
endif
" the following code does much the same thing as
" exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
@@ -236,9 +250,9 @@ fun! zip#Write(fname)
set report=10
" sanity checks
if !executable(g:zip_zipcmd)
if !executable(substitute(g:zip_zipcmd,'\s\+.*$','',''))
redraw!
echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the zip pgm" | echohl None
echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("zip#Write")
@@ -344,6 +358,48 @@ fun! zip#Write(fname)
" call Dret("zip#Write")
endfun
" ---------------------------------------------------------------------
" zip#Extract: extract a file from a zip archive {{{2
fun! zip#Extract()
" call Dfunc("zip#Extract()")
let repkeep= &report
set report=10
let fname= getline(".")
" call Decho("fname<".fname.">")
" sanity check
if fname =~ '^"'
let &report= repkeep
" call Dret("zip#Extract")
return
endif
if fname =~ '/$'
redraw!
echohl Error | echo "***error*** (zip#Extract) Please specify a file, not a directory" | echohl None
let &report= repkeep
" call Dret("zip#Extract")
return
endif
" extract the file mentioned under the cursor
" call Decho("system(".g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell).")")
call system(g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell))
" call Decho("zipfile<".b:zipfile.">")
if v:shell_error != 0
echohl Error | echo "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!" | echohl NONE
elseif !filereadable(fname)
echohl Error | echo "***error*** attempted to extract ".fname." but it doesn't appear to be present!"
else
echo "***note*** successfully extracted ".fname
endif
" restore option
let &report= repkeep
" call Dret("zip#Extract")
endfun
" ---------------------------------------------------------------------
" s:Escape: {{{2
fun! s:Escape(fname,isfilt)

View File

@@ -41,9 +41,16 @@ 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
In case you want to tweak a colorscheme after it was loaded, check out the
ColorScheme autocmd event.
To customize a colorscheme use another name, e.g. "~/.vim/colors/mine.vim",
and use `:runtime` to load the original colorscheme:
" load the "evening" colorscheme
runtime colors/evening.vim
" change the color of statements
hi Statement ctermfg=Blue guifg=Blue
To see which highlight group is used where, find the help for
"highlight-groups" and "group-name".

View File

@@ -1,6 +1,6 @@
" Vim color file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 Apr 14
" Last Change: 2016 Oct 10
" This color scheme uses a dark grey background.
@@ -46,8 +46,8 @@ hi CursorColumn term=reverse ctermbg=Black guibg=grey40
hi CursorLine term=underline cterm=underline guibg=grey40
" Groups for syntax highlighting
hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0 guibg=grey5
hi Special term=bold ctermfg=LightRed guifg=Orange guibg=grey5
hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0
hi Special term=bold ctermfg=LightRed guifg=Orange
if &t_Co > 8
hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold
endif

View File

@@ -0,0 +1,54 @@
" Vim compiler file
" Compiler: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 21
if exists("current_compiler")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
" If makefile exists and we are not asked to ignore it, we use standard make
" (do not redefine makeprg)
if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
\ (!filereadable('Makefile') && !filereadable('makefile'))
let current_compiler = 'context'
" The following assumes that the current working directory is set to the
" directory of the file to be typeset
let &l:makeprg = get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
\ . ' --script context --autogenerate --nonstopmode --synctex='
\ . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
\ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
\ . ' ' . shellescape(expand('%:p:t'))
else
let current_compiler = 'make'
endif
let b:context_errorformat = ''
\ . '%-Popen source%.%#> %f,'
\ . '%-Qclose source%.%#> %f,'
\ . "%-Popen source%.%#name '%f',"
\ . "%-Qclose source%.%#name '%f',"
\ . '%Etex %trror%.%#mp error on line %l in file %f:%.%#,'
\ . 'tex %trror%.%#error on line %l in file %f: %m,'
\ . '%Elua %trror%.%#error on line %l in file %f:,'
\ . '%+Emetapost %#> error: %#,'
\ . '! error: %#%m,'
\ . '%-C %#,'
\ . '%C! %m,'
\ . '%Z[ctxlua]%m,'
\ . '%+C<*> %.%#,'
\ . '%-C%.%#,'
\ . '%Z...%m,'
\ . '%-Zno-error,'
\ . '%-G%.%#' " Skip remaining lines
execute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ')
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: csslint for CSS
" Maintainer: Daniel Moch <daniel@danielmoch.com>
" Last Change: 2016 May 21
if exists("current_compiler")
finish
endif
let current_compiler = "csslint"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=csslint\ --format=compact
CompilerSet errorformat=%-G,%-G%f:\ lint\ free!,%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %m

26
runtime/compiler/ghc.vim Normal file
View File

@@ -0,0 +1,26 @@
" Vim compiler file
" Compiler: GHC Haskell Compiler
" Maintainer: Daniel Campoverde <alx@sillybytes.net>
" Latest Revision: 2016-11-29
if exists("current_compiler")
finish
endif
let current_compiler = "ghc"
let s:cpo_save = &cpo
set cpo&vim
CompilerSet errorformat=
\%-G%.%#:\ build,
\%-G%.%#preprocessing\ library\ %.%#,
\%-G[%.%#]%.%#,
\%E%f:%l:%c:\ %m,
\%-G--%.%#
if exists('g:compiler_ghc_ignore_unmatched_lines')
CompilerSet errorformat+=%-G%.%#
endif
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: Pylint for Python
" Maintainer: Daniel Moch <daniel@danielmoch.com>
" Last Change: 2016 May 20
if exists("current_compiler")
finish
endif
let current_compiler = "pylint"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=pylint\ --output-format=text\ --msg-template=\"{path}:{line}:{column}:{C}:\ [{symbol}]\ {msg}\"\ --reports=no
CompilerSet errorformat=%A%f:%l:%c:%t:\ %m,%A%f:%l:\ %m,%A%f:(%l):\ %m,%-Z%p^%.%#,%-G%.%#

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.0. Last change: 2016 Sep 03
*autocmd.txt* For Vim version 8.0. Last change: 2017 Jan 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -33,7 +33,7 @@ files matching *.c. You can also use autocommands to implement advanced
features, such as editing compressed files (see |gzip-example|). The usual
place to put autocommands is in your .vimrc or .exrc file.
*E203* *E204* *E143* *E855*
*E203* *E204* *E143* *E855* *E937*
WARNING: Using autocommands is very powerful, and may lead to unexpected side
effects. Be careful not to destroy your text.
- It's a good idea to do some testing on an expendable copy of a file first.
@@ -79,11 +79,15 @@ exception is that "<sfile>" is expanded when the autocmd is defined. Example:
Here Vim expands <sfile> to the name of the file containing this line.
When your .vimrc file is sourced twice, the autocommands will appear twice.
To avoid this, put this command in your .vimrc file, before defining
autocommands: >
`:autocmd` adds to the list of autocommands regardless of whether they are
already present. When your .vimrc file is sourced twice, the autocommands
will appear twice. To avoid this, define your autocommands in a group, so
that you can easily clear them: >
:autocmd! " Remove ALL autocommands for the current group.
augroup vimrc
autocmd! " Remove all vimrc autocommands
au BufNewFile,BufRead *.html so <sfile>:h/html.vim
augroup END
If you don't want to remove all autocommands, you can instead use a variable
to ensure that Vim includes the autocommands only once: >
@@ -130,8 +134,13 @@ prompt. When one command outputs two messages this can happen anyway.
:au[tocmd]! [group] {event}
Remove ALL autocommands for {event}.
Warning: You should not do this without a group for
|BufRead| and other common events, it can break
plugins, syntax highlighting, etc.
:au[tocmd]! [group] Remove ALL autocommands.
Warning: You should normally not do this without a
group, it breaks plugins, syntax highlighting, etc.
When the [group] argument is not given, Vim uses the current group (as defined
with ":augroup"); otherwise, Vim uses the group defined with [group].
@@ -983,7 +992,7 @@ WinLeave Before leaving a window. If the window to be
*WinNew*
WinNew When a new window was created. Not done for
the fist window, when Vim has just started.
the first window, when Vim has just started.
Before a WinEnter event.
==============================================================================

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 8.0. Last change: 2016 Sep 11
*change.txt* For Vim version 8.0. Last change: 2016 Nov 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -684,6 +684,7 @@ g& Synonym for `:%s//~/&` (repeat last substitute with
*:s_flags*
The flags that you can use for the substitute commands:
*:&&*
[&] Must be the first one: Keep the flags from the previous substitute
command. Examples: >
:&&
@@ -913,8 +914,7 @@ Exceptions:
Substitute with an expression *sub-replace-expression*
*sub-replace-\=* *s/\=*
When the substitute string starts with "\=" the remainder is interpreted as an
expression. This does not work recursively: a |substitute()| function inside
the expression cannot use "\=" for the substitute string.
expression.
The special meaning for characters as mentioned at |sub-replace-special| does
not apply except for "<CR>". A <NL> character is used as a line break, you

View File

@@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.0. Last change: 2016 Sep 11
*channel.txt* For Vim version 8.0. Last change: 2016 Dec 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -33,7 +33,7 @@ The Netbeans interface also uses a channel. |netbeans|
1. Overview *job-channel-overview*
There are four main types of jobs:
1. A deamon, serving several Vim instances.
1. A daemon, serving several Vim instances.
Vim connects to it with a socket.
2. One job working with one Vim instance, asynchronously.
Uses a socket or pipes.
@@ -155,7 +155,13 @@ Use |ch_status()| to see if the channel could be opened.
func MyCloseHandler(channel)
< Vim will invoke callbacks that handle data before invoking
close_cb, thus when this function is called no more data will
be received.
be passed to the callbacks.
*channel-drop*
"drop" Specifies when to drop messages:
"auto" When there is no callback to handle a message.
The "close_cb" is also considered for this.
"never" All messages will be kept.
*waittime*
"waittime" The time to wait for the connection to be made in
milliseconds. A negative number waits forever.
@@ -369,7 +375,7 @@ Leave out the fourth argument if no response is to be sent:
==============================================================================
6. Using a RAW or NL channel *channel-raw*
If mode is RAW or NL then a message can be send like this: >
If mode is RAW or NL then a message can be sent like this: >
let response = ch_evalraw(channel, {string})
The {string} is sent as-is. The response will be what can be read from the
@@ -418,7 +424,11 @@ This uses the channel timeout. To read without a timeout, just get any
message that is available: >
let output = ch_read(channel, {'timeout': 0})
When no message was available then the result is v:none for a JSON or JS mode
channels, an empty string for a RAW or NL channel.
channels, an empty string for a RAW or NL channel. You can use |ch_canread()|
to check if there is something to read.
Note that when there is no callback message are dropped. To avoid that add a
close callback to the channel.
To read all output from a RAW channel that is available: >
let output = ch_readraw(channel)
@@ -465,6 +475,11 @@ it like this: >
Without the handler you need to read the output with |ch_read()| or
|ch_readraw()|. You can do this in the close callback, see |read-in-close-cb|.
Note that if the job exits before you read the output, the output may be lost.
This depends on the system (on Unix this happens because closing the write end
of a pipe causes the read end to get EOF). To avoid this make the job sleep
for a short while before it exits.
The handler defined for "out_cb" will not receive stderr. If you want to
handle that separately, add an "err_cb" handler: >
let job = job_start(command, {"out_cb": "MyHandler",
@@ -516,7 +531,7 @@ If the job can take some time and you don't need intermediate results, you can
add a close callback and read the output there: >
func! CloseHandler(channel)
while ch_status(a:channel) == 'buffered'
while ch_status(a:channel, {'part': 'out'}) == 'buffered'
echomsg ch_read(a:channel)
endwhile
endfunc
@@ -529,7 +544,7 @@ You will want to do something more useful than "echomsg".
To start another process without creating a channel: >
let job = job_start(command,
\ {"in_io": "null", "out_io": "null", "err_io": "null"})
\ {"in_io": "null", "out_io": "null", "err_io": "null"})
This starts {command} in the background, Vim does not wait for it to finish.
@@ -590,12 +605,17 @@ See |job_setoptions()| and |ch_setoptions()|.
*job-close_cb*
"close_cb": handler Callback for when the channel is closed. Same as
"close_cb" on |ch_open()|, see |close_cb|.
*job-drop*
"drop" Specifies when to drop messages. Same as "drop" on
|ch_open()|, see |channel-drop|. For "auto" the
exit_cb is not considered.
*job-exit_cb*
"exit_cb": handler Callback for when the job ends. The arguments are the
job and the exit status.
Vim checks about every 10 seconds for jobs that ended.
The check also be triggered by calling |job_status()|,
which may then invoke the exit_cb handler.
Vim checks up to 10 times per second for jobs that
ended. The check can also be triggered by calling
|job_status()|, which may then invoke the exit_cb
handler.
Note that data can be buffered, callbacks may still be
called after the process ends.
*job-timeout*
@@ -623,7 +643,7 @@ See |job_setoptions()| and |ch_setoptions()|.
"channel": {channel} Use an existing channel instead of creating a new one.
The parts of the channel that get used for the new job
will be disconnected from what they were used before.
If the channel was still use by another job this may
If the channel was still used by another job this may
cause I/O errors.
Existing callbacks and other settings remain.
@@ -641,7 +661,7 @@ See |job_setoptions()| and |ch_setoptions()|.
"out_io": "null" disconnect stdout (goes to /dev/null)
"out_io": "pipe" stdout is connected to the channel (default)
"out_io": "file" stdout writes to a file
"out_io": "buffer" stdout appends to a buffer (see below)
"out_io": "buffer" stdout appends to a buffer (see below)
"out_name": "/path/file" the name of the file or buffer to write to
"out_buf": number the number of the buffer to write to
"out_modifiable": 0 when writing to a buffer, 'modifiable' will be off
@@ -654,7 +674,7 @@ See |job_setoptions()| and |ch_setoptions()|.
"err_io": "null" disconnect stderr (goes to /dev/null)
"err_io": "pipe" stderr is connected to the channel (default)
"err_io": "file" stderr writes to a file
"err_io": "buffer" stderr appends to a buffer (see below)
"err_io": "buffer" stderr appends to a buffer (see below)
"err_name": "/path/file" the name of the file or buffer to write to
"err_buf": number the number of the buffer to write to
"err_modifiable": 0 when writing to a buffer, 'modifiable' will be off

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.0. Last change: 2016 Aug 27
*cmdline.txt* For Vim version 8.0. Last change: 2016 Sep 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -229,9 +229,10 @@ CTRL-Y When there is a modeless selection, copy the selection into
the clipboard. |modeless-selection|
If there is no selection CTRL-Y is inserted as a character.
CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
<CR> or <NL> start entered command
*c_<Esc>* *c_Esc*
CTRL-[ *c_CTRL-[* *c_<Esc>* *c_Esc*
<Esc> When typed and 'x' not present in 'cpoptions', quit
Command-line mode without executing. In macros or when 'x'
present in 'cpoptions', start entered command.
@@ -358,8 +359,11 @@ terminals)
List entries 6 to 12 from the search history: >
:history / 6,12
<
List the recent five entries from all histories: >
:history all -5,
List the penultimate entry from all histories: >
:history all -2
<
List the most recent two entries from all histories: >
:history all -2,
:keepp[atterns] {command} *:keepp* *:keeppatterns*
Execute {command}, without adding anything to the search
@@ -1056,10 +1060,10 @@ There are several ways to leave the command-line window:
Insert and in Normal mode.
CTRL-C Continue in Command-line mode. The command-line under the
cursor is used as the command-line. Works both in Insert and
in Normal mode. ":close" also works. There is no redraw,
thus the window will remain visible.
in Normal mode. There is no redraw, thus the window will
remain visible.
:quit Discard the command line and go back to Normal mode.
":exit", ":xit" and CTRL-\ CTRL-N also work.
":close", ":exit", ":xit" and CTRL-\ CTRL-N also work.
:qall Quit Vim, unless there are changes in some buffer.
:qall! Quit Vim, discarding changes to any buffer.

View File

@@ -1,4 +1,4 @@
*develop.txt* For Vim version 8.0. Last change: 2016 Jan 31
*develop.txt* For Vim version 8.0. Last change: 2017 Jan 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -177,7 +177,7 @@ The basic steps to make changes to the code:
5. Make a patch with "git diff". You can also create a pull request on
github, but it's the diff that matters.
6. Make a note about what changed, preferably mentioning the problem and the
solution. Send an email to the vim-dev maillist with an explanation and
solution. Send an email to the |vim-dev| maillist with an explanation and
include the diff. Or create a pull request on github.

View File

@@ -1,4 +1,4 @@
*digraph.txt* For Vim version 8.0. Last change: 2014 Jun 19
*digraph.txt* For Vim version 8.0. Last change: 2016 Nov 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -147,7 +147,7 @@ a standard meaning:
Two 2 Hook
Nine 9 Horn
Equals = Cyrillic (= used as second char)
Equals = Cyrillic (= used as second char)
Asterisk * Greek
Percent sign % Greek/Cyrillic special
Plus + smalls: Arabic, capitals: Hebrew
@@ -926,6 +926,7 @@ char digraph hex dec official name ~
† /- 2020 8224 DAGGER
‡ /= 2021 8225 DOUBLE DAGGER
‥ .. 2025 8229 TWO DOT LEADER
… ,. 2026 8230 HORIZONTAL ELLIPSIS
‰ %0 2030 8240 PER MILLE SIGN
1' 2032 8242 PRIME
″ 2' 2033 8243 DOUBLE PRIME

View File

@@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.0. Last change: 2016 Aug 06
*editing.txt* For Vim version 8.0. Last change: 2016 Nov 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -181,7 +181,8 @@ start editing another file, Vim will refuse this. In order to overrule this
protection, add a '!' to the command. The changes will then be lost. For
example: ":q" will not work if the buffer was changed, but ":q!" will. To see
whether the buffer was changed use the "CTRL-G" command. The message includes
the string "[Modified]" if the buffer has been changed.
the string "[Modified]" if the buffer has been changed, or "+" if the 'm' flag
is in 'shortmess'.
If you want to automatically save the changes without asking, switch on the
'autowriteall' option. 'autowrite' is the associated Vi-compatible option
@@ -976,12 +977,12 @@ WRITING WITH MULTIPLE BUFFERS *buffer-write*
*:wa* *:wall*
:wa[ll] Write all changed buffers. Buffers without a file
name or which are readonly are not written. {not in
Vi}
name cause an error message. Buffers which are
readonly are not written. {not in Vi}
:wa[ll]! Write all changed buffers, even the ones that are
readonly. Buffers without a file name are not
written. {not in Vi}
written and cause an error message. {not in Vi}
Vim will warn you if you try to overwrite a file that has been changed

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.0. Last change: 2016 Sep 07
*eval.txt* For Vim version 8.0. Last change: 2017 Jan 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -125,7 +125,8 @@ cleared. A List, Dictionary or Float is not a Number or String, thus
evaluates to FALSE.
*E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913*
List, Dictionary, Funcref and Job types are not automatically converted.
List, Dictionary, Funcref, Job and Channel types are not automatically
converted.
*E805* *E806* *E808*
When mixing Number and Float the Number is converted to Float. Otherwise
@@ -643,7 +644,7 @@ It's possible to form a variable name with curly braces, see
Expression syntax summary, from least to most significant:
|expr1| expr2
|expr1| expr2
expr2 ? expr1 : expr1 if-then-else
|expr2| expr3
@@ -691,7 +692,7 @@ Expression syntax summary, from least to most significant:
expr8.name entry in a |Dictionary|
expr8(expr1, ...) function call with |Funcref| variable
|expr9| number number constant
|expr9| number number constant
"string" string constant, backslash is special
'string' string constant, ' is doubled
[expr1, ...] |List|
@@ -957,7 +958,7 @@ expr8[expr1] item of String or |List| *expr-[]* *E111*
*E909* *subscript*
If expr8 is a Number or String this results in a String that contains the
expr1'th single byte from expr8. expr8 is used as a String, expr1 as a
Number. This doesn't recognize multi-byte encodings, see |byteidx()| for
Number. This doesn't recognize multi-byte encodings, see `byteidx()` for
an alternative, or use `split()` to turn the string into a list of characters.
Index zero gives the first byte. This is like it works in C. Careful:
@@ -1244,7 +1245,7 @@ The arguments are optional. Example: >
< error function
*closure*
Lambda expressions can access outer scope variables and arguments. This is
often called a closure. Example where "i" a and "a:arg" are used in a lambda
often called a closure. Example where "i" and "a:arg" are used in a lambda
while they exist in the function scope. They remain valid even after the
function returns: >
:function Foo(arg)
@@ -2008,6 +2009,7 @@ 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
ch_canread({handle}) Number check if there is something to read
ch_close({handle}) none close {handle}
ch_close_in({handle}) none close in part of {handle}
ch_evalexpr({handle}, {expr} [, {options}])
@@ -2030,7 +2032,8 @@ ch_sendraw({handle}, {string} [, {options}])
any send {string} over raw {handle}
ch_setoptions({handle}, {options})
none set options for {handle}
ch_status({handle}) String status of channel {handle}
ch_status({handle} [, {options}])
String status of channel {handle}
changenr() Number current change number
char2nr({expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
cindent({lnum}) Number C indent for line {lnum}
@@ -2072,8 +2075,8 @@ expand({expr} [, {nosuf} [, {list}]])
feedkeys({string} [, {mode}]) Number add key sequence to typeahead buffer
filereadable({file}) Number |TRUE| if {file} is a readable file
filewritable({file}) Number |TRUE| if {file} is a writable file
filter({expr}, {string}) List/Dict remove items from {expr} where
{string} is 0
filter({expr1}, {expr2}) List/Dict remove items from {expr1} where
{expr2} is 0
finddir({name}[, {path}[, {count}]])
String find directory {name} in {path}
findfile({name}[, {path}[, {count}]])
@@ -2097,7 +2100,7 @@ garbagecollect([{atexit}]) none free memory, breaking cyclic references
get({list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
get({dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
get({func}, {what}) any get property of funcref/partial {func}
getbufinfo([{expr}]) List information about buffers
getbufinfo([{expr}]) List information about buffers
getbufline({expr}, {lnum} [, {end}])
List lines {lnum} to {end} of buffer {expr}
getbufvar({expr}, {varname} [, {def}])
@@ -2128,12 +2131,12 @@ getqflist([{what}]) List list of quickfix items
getreg([{regname} [, 1 [, {list}]]])
String or List contents of register
getregtype([{regname}]) String type of register
gettabinfo([{expr}]) List list of tab pages
gettabinfo([{expr}]) List list of tab pages
gettabvar({nr}, {varname} [, {def}])
any variable {varname} in tab {nr} or {def}
gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
any {name} in {winnr} in tab page {tabnr}
getwininfo([{winid}]) List list of windows
getwininfo([{winid}]) List list of windows
getwinposx() Number X coord in pixels of GUI Vim window
getwinposy() Number Y coord in pixels of GUI Vim window
getwinvar({nr}, {varname} [, {def}])
@@ -2197,7 +2200,7 @@ localtime() Number current time
log({expr}) Float natural logarithm (base e) of {expr}
log10({expr}) Float logarithm of Float {expr} to base 10
luaeval({expr}[, {expr}]) any evaluate |Lua| expression
map({expr}, {string}) List/Dict change each item in {expr} to {expr}
map({expr1}, {expr2}) List/Dict change each item in {expr1} to {expr}
maparg({name}[, {mode} [, {abbr} [, {dict}]]])
String or Dict
rhs of mapping {name} in mode {mode}
@@ -2521,7 +2524,7 @@ assert_exception({error} [, {msg}]) *assert_exception()*
assert_fails({cmd} [, {error}]) *assert_fails()*
Run {cmd} and add an error message to |v:errors| if it does
NOT produce an error.
When {error} is given it must match |v:errmsg|.
When {error} is given it must match in |v:errmsg|.
assert_false({actual} [, {msg}]) *assert_false()*
When {actual} is not false an error message is added to
@@ -2978,16 +2981,28 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
don't fit, a vertical layout is used anyway. For some systems
the horizontal layout is always used.
ch_canread({handle}) *ch_canread()*
Return non-zero when there is something to read from {handle}.
{handle} can be a Channel or a Job that has a Channel.
This is useful to read from a channel at a convenient time,
e.g. from a timer.
Note that messages are dropped when the channel does not have
a callback. Add a close callback to avoid that.
{only available when compiled with the |+channel| feature}
ch_close({handle}) *ch_close()*
Close {handle}. See |channel-close|.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
A close callback is not invoked.
{only available when compiled with the |+channel| feature}
ch_close_in({handle}) *ch_close_in()*
Close the "in" part of {handle}. See |channel-close-in|.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
A close callback is not invoked.
{only available when compiled with the |+channel| feature}
@@ -2996,7 +3011,7 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
Send {expr} over {handle}. The {expr} is encoded
according to the type of channel. The function cannot be used
with a raw channel. See |channel-use|.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
*E917*
{options} must be a Dictionary. It must not have a "callback"
entry. It can have a "timeout" entry to specify the timeout
@@ -3010,7 +3025,7 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
Send {string} over {handle}.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
Works like |ch_evalexpr()|, but does not encode the request or
decode the response. The caller is responsible for the
@@ -3023,7 +3038,7 @@ ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
ch_getbufnr({handle}, {what}) *ch_getbufnr()*
Get the buffer number that {handle} is using for {what}.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
{what} can be "err" for stderr, "out" for stdout or empty for
socket output.
Returns -1 when there is no buffer.
@@ -3041,7 +3056,8 @@ ch_info({handle}) *ch_info()*
Returns a Dictionary with information about {handle}. The
items are:
"id" number of the channel
"status" "open" (any part is open) or "closed"
"status" "open", "buffered" or "closed", like
ch_status()
When opened with ch_open():
"hostname" the hostname of the address
"port" the port of the address
@@ -3050,11 +3066,11 @@ ch_info({handle}) *ch_info()*
"sock_io" "socket"
"sock_timeout" timeout in msec
When opened with job_start():
"out_status" "open" or "closed"
"out_status" "open", "buffered" or "closed"
"out_mode" "NL", "RAW", "JSON" or "JS"
"out_io" "null", "pipe", "file" or "buffer"
"out_timeout" timeout in msec
"err_status" "open" or "closed"
"err_status" "open", "buffered" or "closed"
"err_mode" "NL", "RAW", "JSON" or "JS"
"err_io" "out", "null", "pipe", "file" or "buffer"
"err_timeout" timeout in msec
@@ -3068,8 +3084,8 @@ ch_log({msg} [, {handle}]) *ch_log()*
|ch_logfile()|.
When {handle} is passed the channel number is used for the
message.
{handle} can be Channel or a Job that has a Channel. The
Channel must open.
{handle} can be a Channel or a Job that has a Channel. The
Channel must be open for the channel number to be used.
ch_logfile({fname} [, {mode}]) *ch_logfile()*
Start logging channel activity to {fname}.
@@ -3096,7 +3112,7 @@ ch_open({address} [, {options}]) *ch_open()*
ch_read({handle} [, {options}]) *ch_read()*
Read from {handle} and return the received message.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
See |channel-more|.
{only available when compiled with the |+channel| feature}
@@ -3110,7 +3126,7 @@ ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
according to the type of channel. The function cannot be used
with a raw channel.
See |channel-use|. *E912*
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
{only available when compiled with the |+channel| feature}
@@ -3131,7 +3147,7 @@ ch_setoptions({handle}, {options}) *ch_setoptions()*
"timeout" default read timeout in msec
"mode" mode for the whole channel
See |ch_open()| for more explanation.
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
Note that changing the mode may cause queued messages to be
lost.
@@ -3139,16 +3155,21 @@ ch_setoptions({handle}, {options}) *ch_setoptions()*
These options cannot be changed:
"waittime" only applies to |ch_open()|
ch_status({handle}) *ch_status()*
ch_status({handle} [, {options}]) *ch_status()*
Return the status of {handle}:
"fail" failed to open the channel
"open" channel can be used
"buffered" channel can be read, not written to
"closed" channel can not be used
{handle} can be Channel or a Job that has a Channel.
{handle} can be a Channel or a Job that has a Channel.
"buffered" is used when the channel was closed but there is
still data that can be obtained with |ch_read()|.
If {options} is given it can contain a "part" entry to specify
the part of the channel to return the status for: "out" or
"err". For example, to get the error status: >
ch_status(job, {"part": "err"})
<
*copy()*
copy({expr}) Make a copy of {expr}. For Numbers and Strings this isn't
different from using {expr} directly.
@@ -3701,9 +3722,10 @@ filter({expr1}, {expr2}) *filter()*
is zero remove the item from the |List| or |Dictionary|.
{expr2} must be a |string| or |Funcref|.
if {expr2} is a |string|, inside {expr2} |v:val| has the value
If {expr2} is a |string|, inside {expr2} |v:val| has the value
of the current item. For a |Dictionary| |v:key| has the key
of the current item.
of the current item and for a |List| |v:key| has the index of
the current item.
Examples: >
call filter(mylist, 'v:val !~ "OLD"')
< Removes the items where "OLD" appears. >
@@ -3725,6 +3747,10 @@ filter({expr1}, {expr2}) *filter()*
return a:idx % 2 == 1
endfunc
call filter(mylist, function('Odd'))
< It is shorter when using a |lambda|: >
call filter(myList, {idx, val -> idx * val <= 42})
< If you do not use "val" you can leave it out: >
call filter(myList, {idx -> idx % 2 == 1})
<
The operation is done in-place. If you want a |List| or
|Dictionary| to remain unmodified make a copy first: >
@@ -4274,7 +4300,9 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
locale locale names (as output of locale -a)
mapping mapping name
menu menus
messages |:messages| suboptions
option options
packadd optional package |pack-add| names
shellcmd Shell command
sign |:sign| suboptions
syntax syntax file names |'syntax'|
@@ -4356,7 +4384,7 @@ getfperm({fname}) *getfperm()*
< This will hopefully (from a security point of view) display
the string "rw-r--r--" or even "rw-------".
For setting permissins use |setfperm()|.
For setting permissions use |setfperm()|.
getftime({fname}) *getftime()*
The result is a Number, which is the last modification time of
@@ -4503,7 +4531,8 @@ getqflist([{what}]) *getqflist()*
If the optional {what} dictionary argument is supplied, then
returns only the items listed in {what} as a dictionary. The
following string items are supported in {what}:
nr get information for this quickfix list
nr get information for this quickfix list; zero
means the current quickfix list
title get the list title
winid get the |window-ID| (if opened)
all all of the above quickfix properties
@@ -4782,6 +4811,7 @@ histadd({history}, {item}) *histadd()*
"expr" or "=" typed expression history
"input" or "@" input line history
"debug" or ">" debug command history
empty the current or last used history
The {history} string does not need to be the whole name, one
character is sufficient.
If {item} does already exist in the history, it will be
@@ -5199,6 +5229,7 @@ join({list} [, {sep}]) *join()*
js_decode({string}) *js_decode()*
This is similar to |json_decode()| with these differences:
- Object key names do not have to be in quotes.
- Strings can be in single quotes.
- Empty items in an array (between two commas) are allowed and
result in v:none items.
@@ -5225,6 +5256,7 @@ json_decode({string}) *json_decode()*
- A trailing comma in an array and object is ignored.
- More floating point numbers are recognized, e.g. "1." for
"1.0".
However, a duplicate key in an object is not allowed. *E938*
The result must be a valid Vim type:
- An empty object member name is not allowed.
- Duplicate object member names are not allowed.
@@ -5439,6 +5471,10 @@ map({expr1}, {expr2}) *map()*
return a:key . '-' . a:val
endfunc
call map(myDict, function('KeyValue'))
< It is shorter when using a |lambda|: >
call map(myDict, {key, val -> key . '-' . val})
< If you do not use "val" you can leave it out: >
call map(myDict, {key -> 'item: ' . key})
<
The operation is done in-place. If you want a |List| or
|Dictionary| to remain unmodified make a copy first: >
@@ -6149,9 +6185,9 @@ range({expr} [, {max} [, {stride}]]) *range()*
*readfile()*
readfile({fname} [, {binary} [, {max}]])
Read file {fname} and return a |List|, each line of the file
as an item. Lines broken at NL characters. Macintosh files
separated with CR will result in a single long line (unless a
NL appears somewhere).
as an item. Lines are broken at NL characters. Macintosh
files separated with CR will result in a single long line
(unless a NL appears somewhere).
All NUL characters are replaced with a NL character.
When {binary} contains "b" binary mode is used:
- When the last line ends in a NL an extra empty list item is
@@ -7214,7 +7250,7 @@ strcharpart({src}, {start}[, {len}]) *strcharpart()*
Like |strpart()| but using character index and length instead
of byte index and length.
When a character index is used where a character does not
exist it is assumed to be one byte. For example: >
exist it is assumed to be one character. For example: >
strcharpart('abc', -1, 2)
< results in 'a'.
@@ -7371,6 +7407,9 @@ submatch({nr}[, {list}]) *submatch()* *E935*
|substitute()| this list will always contain one or zero
items, since there are no real line breaks.
When substitute() is used recursively only the submatches in
the current (deepest) call can be obtained.
Example: >
:s/\d\+/\=submatch(0) + 1/
< This finds the first number in the line and adds one to it.
@@ -7524,7 +7563,11 @@ system({expr} [, {input}]) *system()* *E677*
If {input} is given and is a |List| it is written to the file
in a way |writefile()| does with {binary} set to "b" (i.e.
with a newline between each list item with newlines inside
list items converted to NULs).
list items converted to NULs).
When {input} is given and is a number that is a valid id for
an existing buffer then the content of the buffer is written
to the file line by line, each line terminated by a NL and
NULs characters where the text has a NL.
Pipes are not used, the 'shelltemp' option is not used.
@@ -7574,7 +7617,8 @@ systemlist({expr} [, {input}]) *systemlist()*
Same as |system()|, but returns a |List| with lines (parts of
output separated by NL) with NULs transformed into NLs. Output
is the same as |readfile()| will output with {binary} argument
set to "b".
set to "b". Note that on MS-Windows you may get trailing CR
characters.
Returns an empty string on error.
@@ -8190,7 +8234,7 @@ writefile({list}, {fname} [, {flags}])
end does cause the last line in the file to end in a NL.
When {flags} contains "a" then append mode is used, lines are
append to the file: >
appended to the file: >
:call writefile(["foo"], "event.log", "a")
:call writefile(["bar"], "event.log", "a")
>
@@ -8392,6 +8436,8 @@ tgetent Compiled with tgetent support, able to use a termcap
timers Compiled with |timer_start()| support.
title Compiled with window title support |'title'|.
toolbar Compiled with support for |gui-toolbar|.
ttyin input is a terminal (tty)
ttyout output is a terminal (tty)
unix Unix version of Vim.
user_commands User-defined commands.
vertsplit Compiled with vertically split windows |:vsplit|.

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 8.0. Last change: 2016 Sep 09
*filetype.txt* For Vim version 8.0. Last change: 2017 Jan 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -573,6 +573,8 @@ Man {number} {name}
Global mapping:
<Leader>K Displays the manual page for the word under the cursor.
<Plug>ManPreGetPage idem, allows for using a mapping: >
nmap <F1> <Plug>ManPreGetPage<CR>
Local mappings:
CTRL-] Jump to the manual page for the word under the cursor.

View File

@@ -49,10 +49,6 @@ If you want Vim to start with a maximized window, add this command to your
vimrc or gvimrc file: >
au GUIEnter * simalt ~x
<
*gui-w32s*
There is a specific version of gvim.exe that runs under the Win32s subsystem
of Windows 3.1 or 3.11. See |win32s|.
Using Vim as a plugin *gui-w32-windowid*
@@ -100,9 +96,10 @@ when you have got a new version):
You can also install Vim in the "Send To" menu:
1. Start a Windows Explorer
2. Navigate to your sendto directory:
Windows 95: %windir%\sendto (e.g. "c:\windows\sendto")
Windows NT: %windir%\profiles\%user%\sendto (e.g.
"c:\winnt\profiles\mattha\sendto").
"c:\winnt\profiles\mattha\sendto")
Windows XP: C:\Documents and Settings\%user%\SendTo
Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
3. Right-click in the file pane and select New->Shortcut
4. Follow the shortcut wizard, using the full path to VIM/GVIM.
@@ -274,35 +271,17 @@ WARNING: If you close this window with the "X" button, and confirm the
question if you really want to kill the application, Vim may be killed too!
(This does not apply to commands run asynchronously with ":!start".)
In Windows 95, the window in which the commands are executed is always 25x80
characters, to be as DOS compatible as possible (this matters!). The default
system font is used. On NT, the window will be the default you have set up for
"Console" in Control Panel. On Win32s, the properties of the DOS box are
determined by _default.pif in the windows directory.
*msdos-mode*
If you get a dialog that says "This program is set to run in MS-DOS mode..."
when you run an external program, you can solve this by changing the
properties of the associated shortcut:
- Use a Windows Explorer to find the command.com that is used. It can be
c:\command.com, c:\dos\command.com, c:\windows\command.com, etc.
- With the right mouse button, select properties of this command.com.
- In the Program tab select "Advanced".
- Unselect "MS-DOS mode".
- Click "OK" twice.
The window in which the commands are executed will be the default you have set
up for "Console" in Control Panel.
*win32-!start*
Normally, Vim waits for a command to complete before continuing (this makes
sense for most shell commands which produce output for Vim to use). If you
want Vim to start a program and return immediately, you can use the following
syntax on W95 & NT: >
syntax: >
:!start [/min] {command}
The optional "/min" causes the window to be minimized.
On Win32s, you will have to go to another window instead. Don't forget that
you must tell Windows 3.1x to keep executing a DOS command in the background
while you switch back to Vim.
==============================================================================
5. Special colors *win32-colors*
@@ -311,7 +290,7 @@ On Win32, the normal DOS colors can be used. See |dos-colors|.
Additionally the system configured colors can also be used. These are known
by the names Sys_XXX, where XXX is the appropriate system color name, from the
following list (see the Win32 documentation for full descriptions). Case is
ignored. Note: On Win32s not all of these colors are supported.
ignored.
Sys_3DDKShadow Sys_3DFace Sys_BTNFace
Sys_3DHilight Sys_3DHighlight Sys_BTNHilight

View File

@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 8.0. Last change: 2016 Aug 21
*gui_x11.txt* For Vim version 8.0. Last change: 2016 Sep 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -475,7 +475,7 @@ your system has a working pkg-config together with the .pc file of the
required GTK+. For that, say, run the following on the command line to see if
your pkg-config works with your GTK+ 2: >
$ pkgconfig --modversion gtk+-2.0
$ pkg-config --modversion gtk+-2.0
Replace gtk+-2.0 with gtk+-3.0 for GTK+ 3. If you get the correct version
number of your GTK+, you can proceed; if not, you probably need to do some

View File

@@ -1,4 +1,4 @@
*help.txt* For Vim version 8.0. Last change: 2016 Mar 31
*help.txt* For Vim version 8.0. Last change: 2016 Sep 12
VIM - main help file
k
@@ -135,6 +135,7 @@ Advanced editing ~
|autocmd.txt| automatically executing commands on an event
|filetype.txt| settings done specifically for a type of file
|eval.txt| expression evaluation, conditional commands
|channel.txt| Jobs, Channels, inter-process communication
|fold.txt| hide (fold) ranges of lines
Special issues ~

View File

@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 8.0. Last change: 2016 Sep 01
*if_pyth.txt* For Vim version 8.0. Last change: 2016 Sep 17
VIM REFERENCE MANUAL by Paul Moore
@@ -748,11 +748,11 @@ match the Python 2.x or Python 3 version Vim was compiled with.
The `:py3` and `:python3` commands work similar to `:python`. A simple check
if the `:py3` command is working: >
:py3 print("Hello")
< *:py3file*
To see what version of Python you have: >
:py3 import sys
:py3 print(sys.version)
< *:py3file*
The `:py3file` command works similar to `:pyfile`.
*:py3do*
The `:py3do` command works similar to `:pydo`.

View File

@@ -207,21 +207,19 @@ MS-Windows ~
You need to install the right version of Ruby for this to work. You can find
the package to download from:
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
Currently that is ruby-1.9.2-p136-i386-mswin32.zip
http://rubyinstaller.org/downloads/
Currently that is rubyinstaller-2.2.5.exe
To use the Ruby interface the Ruby DLL must be in your search path. In a
console window type "path" to see what directories are used. The 'rubydll'
option can be also used to specify the Ruby DLL.
The name of the DLL must match the Ruby version Vim was compiled with.
Currently the name is "msvcrt-ruby191.dll". That is for Ruby 1.9.1. To know
Currently the name is "msvcrt-ruby220.dll". That is for Ruby 2.2.X. To know
for sure edit "gvim.exe" and search for "ruby\d*.dll\c".
If you want to build Vim with Ruby 1.9.1, you need to edit the config.h file
and comment-out the check for _MSC_VER.
You may also need to rename the include directory name to match the version,
strangely for Ruby 1.9.3 the directory is called 1.9.1.
If you want to build Vim with RubyInstaller 1.9 or 2.X using MSVC, you need
some tricks. See the src/INSTALLpc.txt for detail.
Unix ~

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 8.0. Last change: 2016 Aug 27
*index.txt* For Vim version 8.0. Last change: 2016 Sep 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1002,7 +1002,7 @@ tag command action in Command-line editing mode ~
|c_CTRL-L| CTRL-L do completion on the pattern in front of the
cursor and insert the longest common part
|c_<CR>| <CR> execute entered command
|c_<CR>| CTRL-M same as <CR>
|c_CTRL-M| CTRL-M same as <CR>
|c_CTRL-N| CTRL-N after using 'wildchar' with multiple matches:
go to next match, otherwise: same as <Down>
CTRL-O not used
@@ -1026,7 +1026,7 @@ tag command action in Command-line editing mode ~
CTRL-Y copy (yank) modeless selection
CTRL-Z not used (reserved for suspend)
|c_<Esc>| <Esc> abandon command-line without executing it
|c_<Esc>| CTRL-[ same as <Esc>
|c_CTRL-[| CTRL-[ same as <Esc>
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode',
abandon command-line

View File

@@ -1,4 +1,4 @@
*intro.txt* For Vim version 8.0. Last change: 2015 Jan 20
*intro.txt* For Vim version 8.0. Last change: 2016 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -96,21 +96,18 @@ mention that.
*mail-list* *maillist*
There are several mailing lists for Vim:
<vim@vim.org>
<vim@vim.org> *vim-use* *vim_use*
For discussions about using existing versions of Vim: Useful mappings,
questions, answers, where to get a specific version, etc. There are
quite a few people watching this list and answering questions, also
for beginners. Don't hesitate to ask your question here.
<vim-dev@vim.org> *vim-dev* *vimdev*
<vim-dev@vim.org> *vim-dev* *vim_dev* *vimdev*
For discussions about changing Vim: New features, porting, patches,
beta-test versions, etc.
<vim-announce@vim.org> *vim-announce*
<vim-announce@vim.org> *vim-announce* *vim_announce*
Announcements about new versions of Vim; also for beta-test versions
and ports to different systems. This is a read-only list.
<vim-multibyte@vim.org> *vim-multibyte*
For discussions about using and improving the multi-byte aspects of
Vim.
<vim-mac@vim.org> *vim-mac*
<vim-mac@vim.org> *vim-mac* *vim_mac*
For discussions about using and improving the Macintosh version of
Vim.
@@ -135,10 +132,14 @@ http://www.vim.org/maillist.php
Bug reports: *bugs* *bug-reports* *bugreport.vim*
Send bug reports to: Vim Developers <vim-dev@vim.org>
This is a maillist, you need to become a member first and many people will see
the message. If you don't want that, e.g. because it is a security issue,
send it to <bugs@vim.org>, this only goes to the Vim maintainer (that's Bram).
There are two ways to report bugs, both work:
1. Send bug reports to: Vim Developers <vim-dev@vim.org>
This is a maillist, you need to become a member first and many people will
see the message. If you don't want that, e.g. because it is a security
issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer
(that's Bram).
2. Open issue on GitHub: https://github.com/vim/vim/issues
The text will be forwarded to the vim-dev maillist.
Please be brief; all the time that is spent on answering mail is subtracted
from the time that is spent on improving Vim! Always give a reproducible

View File

@@ -1,4 +1,4 @@
*map.txt* For Vim version 8.0. Last change: 2016 Aug 26
*map.txt* For Vim version 8.0. Last change: 2016 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1280,6 +1280,7 @@ completion can be enabled:
-complete=locale locale names (as output of locale -a)
-complete=mapping mapping name
-complete=menu menus
-complete=messages |:messages| suboptions
-complete=option options
-complete=packadd optional package |pack-add| names
-complete=shellcmd Shell command

View File

@@ -1,4 +1,4 @@
*message.txt* For Vim version 8.0. Last change: 2016 Sep 01
*message.txt* For Vim version 8.0. Last change: 2017 Jan 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -129,8 +129,9 @@ closed properly. Mostly harmless.
Command too recursive
This happens when an Ex command executes an Ex command that executes an Ex
command, etc. This is only allowed 200 times. When it's more there probably
is an endless loop. Probably a |:execute| or |:source| command is involved.
command, etc. The limit is 200 or the value of 'maxfuncdepth', whatever is
larger. When it's more there probably is an endless loop. Probably a
|:execute| or |:source| command is involved.
*E254* >
Cannot allocate color {name}

View File

@@ -1,4 +1,4 @@
*motion.txt* For Vim version 8.0. Last change: 2016 Jul 12
*motion.txt* For Vim version 8.0. Last change: 2016 Nov 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -915,6 +915,7 @@ was made yet in the current file.
then the position can be near the end of what the
command changed. For example when inserting a word,
the position will be on the last character.
To jump to older changes use |g;|.
{not in Vi}
*'(* *`(*

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 8.0. Last change: 2016 Sep 02
*options.txt* For Vim version 8.0. Last change: 2017 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -10,7 +10,7 @@ Options *options*
2. Automatically setting options |auto-setting|
3. Options summary |option-summary|
For an overview of options see help.txt |option-list|.
For an overview of options see quickref.txt |option-list|.
Vim has a number of internal variables and switches which can be set to
achieve special effects. These options come in three forms:
@@ -242,7 +242,7 @@ opt+=val" the expansion is done before the adding or removing.
Handling of local options *local-options*
Some of the options only apply to a window or buffer. Each window or buffer
has its own copy of this option, thus can each have their own value. This
has its own copy of this option, thus each can have its own value. This
allows you to set 'list' in one window but not in another. And set
'shiftwidth' to 3 in one buffer and 4 in another.
@@ -1734,12 +1734,12 @@ A jump table for the options with a short description can be found at |Q_op|.
option + set value effect ~
'allowrevins' off no CTRL-_ command
'backupcopy' Unix: "yes" backup file is a copy
others: "auto" copy or rename backup file
'backspace' "" normal backspace
'backupcopy' Unix: "yes" backup file is a copy
else: "auto" copy or rename backup file
'backup' off no backup file
'cindent' off no C code indentation
'cedit' + "" no key to open the |cmdwin|
'cindent' off no C code indentation
'cpoptions' + (all flags) Vi-compatible flags
'cscopetag' off don't use cscope for ":tag"
'cscopetagorder' 0 see |cscopetagorder|
@@ -1781,6 +1781,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'textwidth' 0 no automatic line wrap
'tildeop' off tilde is not an operator
'ttimeout' off no terminal timeout
'viminfo' + {unchanged} no viminfo file
'whichwrap' + "" left-right movements don't wrap
'wildchar' + CTRL-E only when the current value is <Tab>
use CTRL-E for cmdline completion
@@ -2633,7 +2634,7 @@ A jump table for the options with a short description can be found at |Q_op|.
uhex Show unprintable characters hexadecimal as <xx>
instead of using ^C and ~C.
When neither "lastline" or "truncate" is included, a last line that
When neither "lastline" nor "truncate" is included, a last line that
doesn't fit is replaced with "@" lines.
*'eadirection'* *'ead'*
@@ -3416,7 +3417,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'formatprg'* *'fp'*
'formatprg' 'fp' string (default "")
global
global or local to buffer |global-local|
{not in Vi}
The name of an external program that will be used to format the lines
selected with the |gq| operator. The program must take the input on
@@ -3870,6 +3871,8 @@ A jump table for the options with a short description can be found at |Q_op|.
The format of this option is like that of 'statusline'.
'guitabtooltip' is used for the tooltip, see below.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
Only used when the GUI tab pages line is displayed. 'e' must be
present in 'guioptions'. For the non-GUI tab pages line 'tabline' is
@@ -4326,8 +4329,8 @@ A jump table for the options with a short description can be found at |Q_op|.
original position when no match is found and when pressing <Esc>. You
still need to finish the search command with <Enter> to move the
cursor to the match.
You can use the CTRL-N and CTRL-P keys to move to the next and
previous match. |c_CTRL-N| |c_CTRL-P|
You can use the CTRL-G and CTRL-T keys to move to the next and
previous match. |c_CTRL-G| |c_CTRL-T|
When compiled with the |+reltime| feature Vim only searches for about
half a second. With a complicated pattern and/or a lot of text the
match may not be found. This is to avoid that Vim hangs while you
@@ -5018,6 +5021,8 @@ A jump table for the options with a short description can be found at |Q_op|.
catches endless recursion. When using a recursive function with
more depth, set 'maxfuncdepth' to a bigger number. But this will use
more memory, there is the danger of failing when memory is exhausted.
Increasing this limit above 200 also changes the maximum for Ex
command resursion, see |E169|.
See also |:function|.
*'maxmapdepth'* *'mmd'* *E223*
@@ -5139,7 +5144,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi} *E21*
When off the buffer contents cannot be changed. The 'fileformat' and
'fileencoding' options also can't be changed.
Can be reset with the |-M| command line argument.
Can be reset on startup with the |-M| command line argument.
*'modified'* *'mod'* *'nomodified'* *'nomod'*
'modified' 'mod' boolean (default off)
@@ -5698,6 +5703,8 @@ A jump table for the options with a short description can be found at |Q_op|.
and |+postscript| features}
Expression used to print the PostScript produced with |:hardcopy|.
See |pexpr-option|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'printfont'* *'pfn'*
'printfont' 'pfn' string (default "courier")
@@ -5802,6 +5809,7 @@ A jump table for the options with a short description can be found at |Q_op|.
buffer, unless the 'Z' flag is in 'cpoptions'.
{not in Vi:} When using the ":view" command the 'readonly' option is
set for the newly edited buffer.
See 'modifiable' for disallowing changes to the buffer.
*'redrawtime'* *'rdt'*
'redrawtime' 'rdt' number (default 2000)
@@ -6122,7 +6130,9 @@ A jump table for the options with a short description can be found at |Q_op|.
personal preferences to overrule or add to the distributed defaults
or system-wide settings (rarely needed).
More entries are added when using |packages|.
More entries are added when using |packages|. If it gets very long
then `:set rtp` will be truncated, use `:echo &rtp` to see the full
string.
Note that, unlike 'path', no wildcards like "**" are allowed. Normal
wildcards are allowed, but can significantly slow down searching for
@@ -6183,7 +6193,7 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: This option is set to 1 when 'compatible' is set.
*'scrolloff'* *'so'*
'scrolloff' 'so' number (default 0)
'scrolloff' 'so' number (default 0, set to 5 in |defaults.vim|)
global
{not in Vi}
Minimal number of screen lines to keep above and below the cursor.
@@ -7685,7 +7695,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'timeout' 'to' boolean (default on)
global
*'ttimeout'* *'nottimeout'*
'ttimeout' boolean (default off)
'ttimeout' boolean (default off, set in |defaults.vim|))
global
{not in Vi}
These two options together determine the behavior when part of a
@@ -7720,7 +7730,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{not in all versions of Vi}
*'ttimeoutlen'* *'ttm'*
'ttimeoutlen' 'ttm' number (default -1)
'ttimeoutlen' 'ttm' number (default -1, set to 100 in |defaults.vim|))
global
{not in Vi}
The time in milliseconds that is waited for a key code or mapped key
@@ -7815,7 +7825,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Amiga console, Win32 console, all GUI versions and terminals with a
non-empty 't_ts' option).
When Vim was compiled with HAVE_X11 defined, the original title will
be restored if possible |X11|.
be restored if possible, see |X11|.
When this option contains printf-style '%' items, they will be
expanded according to the rules used for 'statusline'.
Example: >
@@ -7963,8 +7973,9 @@ A jump table for the options with a short description can be found at |Q_op|.
"xterm", "xterm2", "urxvt" or "sgr" (because dec mouse codes conflict
with them).
This option is automatically set to "xterm", when the 'term' option is
set to a name that starts with "xterm", "mlterm", "screen", "st" (full
match only), "st-" or "stterm", and 'ttymouse' is not set already.
set to a name that starts with "xterm", "mlterm", "screen", "tmux",
"st" (full match only), "st-" or "stterm", and 'ttymouse' is not set
already.
Additionally, if vim is compiled with the |+termresponse| feature and
|t_RV| is set to the escape sequence to request the xterm version
number, more intelligent detection process runs.

View File

@@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 8.0. Last change: 2016 Aug 28
*os_win32.txt* For Vim version 8.0. Last change: 2016 Oct 12
VIM REFERENCE MANUAL by George Reilly
@@ -7,20 +7,18 @@
*win32* *Win32* *MS-Windows*
This file documents the idiosyncrasies of the Win32 version of Vim.
The Win32 version of Vim works on Windows NT, 95, 98, ME, XP, Vista and
Windows 7. There are both console and GUI versions.
The Win32 version of Vim works on Windows XP, Vista, 7, 8 and 10. There are
both console and GUI versions.
The 32 bit version also runs on 64 bit MS-Windows systems.
There is GUI version for use in the Win32s subsystem in Windows 3.1[1]. You
can also use the 32-bit DOS version of Vim instead. See |os_msdos.txt|.
1. Known problems |win32-problems|
2. Startup |win32-startup|
3. Restore screen contents |win32-restore|
4. Using the mouse |win32-mouse|
5. Running under Windows 3.1 |win32-win3.1|
6. Win32 mini FAQ |win32-faq|
5. Running under Windows 95 |win32-win95|
6. Running under Windows 3.1 |win32-win3.1|
7. Win32 mini FAQ |win32-faq|
Additionally, there are a number of common Win32 and DOS items:
File locations |dos-locations|
@@ -43,20 +41,7 @@ The GUI version was made by George V. Reilly and Robert Webb.
For compiling see "src/INSTALLpc.txt". *win32-compiling*
==============================================================================
1. Known problems *windows95* *win32-problems*
There are a few known problems with running in a console on Windows 95. As
far as we know, this is the same in Windows 98 and Windows ME.
Comments from somebody working at Microsoft: "Win95 console support has always
been and will always be flaky".
1. Dead key support doesn't work.
2. Resizing the window with ":set columns=nn lines=nn" works, but executing
external commands MAY CAUSE THE SYSTEM TO HANG OR CRASH.
3. Screen updating is slow, unless you change 'columns' or 'lines' to a
non-DOS value. But then the second problem applies!
If this bothers you, use the 32 bit MS-DOS version or the Win32 GUI version.
1. Known problems *win32-problems*
When doing file name completion, Vim also finds matches for the short file
name. But Vim will still find and use the corresponding long file name. For
@@ -141,60 +126,20 @@ When the mouse doesn't work, try disabling the "Quick Edit Mode" feature of
the console.
==============================================================================
5. Running under Windows 3.1 *win32-win3.1*
5. Running under Windows 95 *win32-win95*
*windows95* *windows98* *windowsme*
Windows 95/98/ME support was removed in patch 8.0.0029 If you want to use it
you will need to get a version older than that.
*win32s* *windows-3.1*
==============================================================================
6. Running under Windows 3.1 *win32-win3.1*
*win32s* *windows-3.1* *gui-w32s*
There was a special version of Gvim that runs under Windows 3.1 and 3.11.
Support was removed in patch 7.4.1363.
==============================================================================
6. Win32 mini FAQ *win32-faq*
Q. Why does the Win32 version of Vim update the screen so slowly on Windows 95?
A. The support for Win32 console mode applications is very buggy in Win95.
For some unknown reason, the screen updates very slowly when Vim is run at
one of the standard resolutions (80x25, 80x43, or 80x50) and the 16-bit DOS
version updates the screen much more quickly than the Win32 version.
However, if the screen is set to some other resolution, such as by ":set
columns=100" or ":set lines=40", screen updating becomes about as fast as
it is with the 16-bit version.
WARNING: Changing 'columns' may make Windows 95 crash while updating the
window (complaints --> Microsoft). Since this mostly works, this has not
been disabled, but be careful with changing 'columns'.
Changing the screen resolution makes updates faster, but it brings
additional problems. External commands (e.g., ":!dir") can cause Vim to
freeze when the screen is set to a non-standard resolution, particularly
when 'columns' is not equal to 80. It is not possible for Vim to reliably
set the screen resolution back to the value it had upon startup before
running external commands, so if you change the number of 'lines' or
'columns', be very, very careful. In fact, Vim will not allow you to
execute external commands when 'columns' is not equal to 80, because it is
so likely to freeze up afterwards.
None of the above applies on Windows NT. Screen updates are fast, no
matter how many 'lines' or 'columns' the window has, and external commands
do not cause Vim to freeze.
Q. So if the Win32 version updates the screen so slowly on Windows 95 and the
16-bit DOS version updates the screen quickly, why would I want to run the
Win32 version?
A. Firstly, the Win32 version isn't that slow, especially when the screen is
set to some non-standard number of 'lines' or 'columns'. Secondly, the
16-bit DOS version has some severe limitations: It can't do big changes and
it doesn't know about long file names. The Win32 version doesn't have these
limitations and it's faster overall (the same is true for the 32-bit DJGPP
DOS version of Vim). The Win32 version is smarter about handling the
screen, the mouse, and the keyboard than the DJGPP version is.
Q. And what about the 16-bit DOS version versus the Win32 version on NT?
A. There are no good reasons to run the 16-bit DOS version on NT. The Win32
version updates the screen just as fast as the 16-bit version does when
running on NT. All of the above disadvantages apply. Finally, DOS
applications can take a long time to start up and will run more slowly. On
non-Intel NT platforms, the DOS version is almost unusably slow, because it
runs on top of an 80x86 emulator.
7. Win32 mini FAQ *win32-faq*
Q. How do I change the font?
A. In the GUI version, you can use the 'guifont' option. Example: >
@@ -202,47 +147,6 @@ A. In the GUI version, you can use the 'guifont' option. Example: >
< In the console version, you need to set the font of the console itself.
You cannot do this from within Vim.
Q. When I change the size of the console window with ':set lines=xx' or
similar, the font changes! (Win95)
A. You have the console font set to 'Auto' in Vim's (or your MS-DOS prompt's)
properties. This makes W95 guess (badly!) what font is best. Set an explicit
font instead.
Q. Why can't I paste into Vim when running Windows 95?
A. In the properties dialog box for the MS-DOS window, go to "MS-DOS
Prompt/Misc/Fast pasting" and make sure that it is NOT checked. You should
also do ":set paste" in Vim to avoid unexpected effects. |'paste'|
Q. How do I type dead keys on Windows 95, in the console version?
(A dead key is an accent key, such as acute, grave, or umlaut, that doesn't
produce a character by itself, but when followed by another key, produces
an accented character, such as a-acute, e-grave, u-umlaut, n-tilde, and so
on. Very useful for most European languages. English-language keyboard
layouts don't use dead keys, as far as we know.)
A. You don't. The console mode input routines simply do not work correctly in
Windows 95, and I have not been able to work around them. In the words
of a senior developer at Microsoft:
Win95 console support has always been and will always be flaky.
The flakiness is unavoidable because we are stuck between the world of
MS-DOS keyboard TSRs like KEYB (which wants to cook the data;
important for international) and the world of Win32.
So keys that don't "exist" in MS-DOS land (like dead keys) have a
very tenuous existence in Win32 console land. Keys that act
differently between MS-DOS land and Win32 console land (like
capslock) will act flaky.
Don't even _mention_ the problems with multiple language keyboard
layouts...
You may be able to fashion some sort of workaround with the digraphs
mechanism. |digraphs|
The best solution is to use the Win32 GUI version gvim.exe. Alternatively,
you can try one of the DOS versions of Vim where dead keys reportedly do
work.
Q. How do I type dead keys on Windows NT?
A. Dead keys work on NT 3.51. Just type them as you would in any other
application.
@@ -349,28 +253,6 @@ A. You have two possible solutions depending on what you want:
< The first command runs notepad minimized and the second one runs it
normally.
Q. I'm using Win32s, and when I try to run an external command like "make",
Vim doesn't wait for it to finish! Help!
A. The problem is that a 32-bit application (Vim) can't get notification from
Windows that a 16-bit application (your DOS session) has finished. Vim
includes a work-around for this, but you must set up your DOS commands to
run in a window, not full-screen. Unfortunately the default when you
install Windows is full-screen. To change this:
1) Start PIF editor (in the Main program group).
2) Open the file "_DEFAULT.PIF" in your Windows directory.
3) Changes the display option from "Full Screen" to "Windowed".
4) Save and exit.
To test, start Vim and type >
:!dir C:\<CR>".
< You should see a DOS box window appear briefly with the directory listing.
Q. I use Vim under Win32s and NT. In NT, I can define the console to default to
50 lines, so that I get a 80x50 shell when I ':sh'. Can I do the same in
W3.1x, or am I stuck with 80x25?
A. Edit SYSTEM.INI and add 'ScreenLines=50' to the [NonWindowsApp] section. DOS
prompts and external DOS commands will now run in a 50-line window.
*windows-icon*
Q. I don't like the Vim icon, can I change it?
A. Yes, place your favorite icon in bitmaps/vim.ico in a directory of

View File

@@ -1,4 +1,4 @@
*pi_gzip.txt* For Vim version 8.0. Last change: 2012 Jul 19
*pi_gzip.txt* For Vim version 8.0. Last change: 2016 Nov 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -27,6 +27,8 @@ with these extensions:
*.bz2 bzip2
*.lzma lzma
*.xz xz
*.lz lzip
*.zst zstd
That's actually the only thing you need to know. There are no options.

View File

@@ -1,4 +1,4 @@
*logiPat.txt* Logical Patterns Jun 22, 2015
*pi_logipat.txt* Logical Patterns Jun 22, 2015
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
Copyright: (c) 2004-2015 by Charles E. Campbell *logiPat-copyright*

View File

@@ -532,7 +532,7 @@ variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
<
(note: it has been reported that windows 7 with putty v0.6's "-batch" option
doesn't work, so its best to leave it off for that system)
doesn't work, so it's best to leave it off for that system)
See |netrw-p8| for more about putty, pscp, psftp, etc.
@@ -1206,7 +1206,7 @@ The :NetrwMB command is available outside of netrw buffers (once netrw has been
invoked in the session).
The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
default, its stored on the first directory on the user's |'runtimepath'|.
default, it's stored on the first directory on the user's |'runtimepath'|.
Related Topics:
|netrw-gb| how to return (go) to a bookmark
@@ -1431,7 +1431,7 @@ be used in that count.
*.netrwhist*
See |g:netrw_dirhistmax| for how to control the quantity of history stack
slots. The file ".netrwhist" holds history when netrw (and vim) is not
active. By default, its stored on the first directory on the user's
active. By default, it's stored on the first directory on the user's
|'runtimepath'|.
Related Topics:
@@ -3271,7 +3271,7 @@ The user function is passed one argument; it resembles >
fun! ExampleUserMapFunc(islocal)
<
where a:islocal is 1 if its a local-directory system call or 0 when
where a:islocal is 1 if it's a local-directory system call or 0 when
remote-directory system call.
Use netrw#Expose("varname") to access netrw-internal (script-local)
@@ -3595,7 +3595,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
*netrw-p16*
P16. When editing remote files (ex. :e ftp://hostname/path/file),
under Windows I get an |E303| message complaining that its unable
under Windows I get an |E303| message complaining that it's unable
to open a swap file.
(romainl) It looks like you are starting Vim from a protected
@@ -3649,7 +3649,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
P21. I've made a directory (or file) with an accented character, but
netrw isn't letting me enter that directory/read that file:
Its likely that the shell or o/s is using a different encoding
It's likely that the shell or o/s is using a different encoding
than you have vim (netrw) using. A patch to vim supporting
"systemencoding" may address this issue in the future; for
now, just have netrw use the proper encoding. For example: >

View File

@@ -1,4 +1,4 @@
*pi_zip.txt* For Vim version 8.0. Last change: 2013 Apr 17
*pi_zip.txt* For Vim version 8.0. Last change: 2016 Sep 13
+====================+
| Zip File Interface |
@@ -6,7 +6,7 @@
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
(remove NOSPAM from Campbell's email first)
Copyright: Copyright (C) 2005-2012 Charles E Campbell *zip-copyright*
Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this
package, including zipPlugin.vim, zip.vim, and pi_zip.vim. except use
"zip.vim" instead of "VIM". Like anything else that's free, zip.vim
@@ -33,6 +33,9 @@ Copyright: Copyright (C) 2005-2012 Charles E Campbell *zip-copyright*
also write to the file. Currently, one may not make a new file in
zip archives via the plugin.
*zip-x*
x : may extract a listed file when the cursor is atop it
OPTIONS
*g:zip_nomax*
@@ -60,6 +63,11 @@ Copyright: Copyright (C) 2005-2012 Charles E Campbell *zip-copyright*
It's used during the writing (updating) of a file already in a zip
file; by default: >
let g:zip_zipcmd= "zip"
<
*g:zip_extractcmd*
This option specifies the program (and any options needed) used to
extract a file from a zip archive. By default, >
let g:zip_extractcmd= g:zip_unzipcmd
<
PREVENTING LOADING~
@@ -83,8 +91,26 @@ Copyright: Copyright (C) 2005-2012 Charles E Campbell *zip-copyright*
One can simply extend this line to accommodate additional extensions that
should be treated as zip files.
Alternatively, one may change *g:zipPlugin_ext* in one's .vimrc.
Currently (11/30/15) it holds: >
let g:zipPlugin_ext= '*.zip,*.jar,*.xpi,*.ja,*.war,*.ear,*.celzip,
\ *.oxt,*.kmz,*.wsz,*.xap,*.docx,*.docm,*.dotx,*.dotm,*.potx,*.potm,
\ *.ppsx,*.ppsm,*.pptx,*.pptm,*.ppam,*.sldx,*.thmx,*.xlam,*.xlsx,*.xlsm,
\ *.xlsb,*.xltx,*.xltm,*.xlam,*.crtx,*.vdw,*.glox,*.gcsx,*.gqsx,*.epub'
==============================================================================
4. History *zip-history* {{{1
v28 Oct 08, 2014 * changed the sanity checks for executables to reflect
the command actually to be attempted in zip#Read()
and zip#Write()
* added the extraction of a file capability
Nov 30, 2015 * added *.epub to the |g:zipPlugin_ext| list
Sep 13, 2016 * added *.apk to the |g:zipPlugin_ext| list and
sorted the suffices.
v27 Jul 02, 2013 * sanity check: zipfile must have "PK" as its first
two bytes.
* modified to allow zipfile: entries in quickfix lists
v26 Nov 15, 2012 * (Jason Spiro) provided a lot of new extensions that
are synonyms for .zip
v25 Jun 27, 2011 * using keepj with unzip -Z

View File

@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 8.0. Last change: 2016 Jul 17
*quickfix.txt* For Vim version 8.0. Last change: 2016 Nov 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -878,7 +878,7 @@ need to write down a "todo" list.
The Vim plugins in the "compiler" directory will set options to use the
selected compiler. For ":compiler" local options are set, for ":compiler!"
selected compiler. For `:compiler` local options are set, for `:compiler!`
global options.
*current_compiler*
To support older Vim versions, the plugins always use "current_compiler" and

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.0. Last change: 2016 Aug 21
*quickref.txt* For Vim version 8.0. Last change: 2016 Dec 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1067,6 +1067,8 @@ Short explanation of each option: *option-list*
|c_<Up>| <Up>/<Down> recall older/newer command-line that starts
with current command
|c_<S-Up>| <S-Up>/<S-Down> recall older/newer command-line from history
|c_CTRL-G| CTRL-G next match when 'incsearch' is active
|c_CTRL-T| CTRL-T previous match when 'incsearch' is active
|:history| :his[tory] show older command-lines
Context-sensitive completion on the command-line:

View File

@@ -1,4 +1,4 @@
*scroll.txt* For Vim version 8.0. Last change: 2006 Aug 27
*scroll.txt* For Vim version 8.0. Last change: 2016 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -108,7 +108,8 @@ z^ Without [count]: Redraw with the line just above the
3. Scrolling relative to cursor *scroll-cursor*
The following commands reposition the edit window (the part of the buffer that
you see) while keeping the cursor on the same line:
you see) while keeping the cursor on the same line. Note that the 'scrolloff'
option may cause context lines to show above and below the cursor.
*z<CR>*
z<CR> Redraw, line [count] at top of window (default

View File

@@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.0. Last change: 2016 Sep 09
*starting.txt* For Vim version 8.0. Last change: 2017 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -230,6 +230,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
the executable "view" has the same effect as the -R argument.
The 'updatecount' option will be set to 10000, meaning that
the swap file will not be updated automatically very often.
See |-M| for disallowing modifications.
*-m*
-m Modifications not allowed to be written. The 'write' option
@@ -421,6 +422,10 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
not connected to a terminal. This will avoid the warning and
the two second delay that would happen. {not in Vi}
*--ttyfail*
--ttyfail When the stdin or stdout is not a terminal (tty) then exit
right away.
*-d*
-d Start in diff mode, like |vimdiff|.
{not in Vi} {not available when compiled without the |+diff|
@@ -1215,7 +1220,7 @@ There are several ways to exit Vim:
- Use `:cquit`. Also when there are changes.
When using `:cquit` or when there was an error message Vim exits with exit
code 1. Errors can be avoided by using `:silent!`.
code 1. Errors can be avoided by using `:silent!` or with `:catch`.
==============================================================================
8. Saving settings *save-settings*

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.0. Last change: 2016 Sep 12
*syntax.txt* For Vim version 8.0. Last change: 2016 Oct 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2863,9 +2863,11 @@ vimrc file: >
(Adapted from the html.vim help text by Claudio Fleiner <claudio@fleiner.com>)
SH *sh.vim* *ft-sh-syntax* *ft-bash-syntax* *ft-ksh-syntax*
*ft-posix-synax* *ft-dash-syntax*
SH *sh.vim* *ft-sh-syntax* *ft-bash-syntax* *ft-ksh-syntax*
This covers the "normal" Unix (Bourne) sh, bash and the Korn shell.
This covers syntax highlighting for the older Unix (Bourne) sh, and newer
shells such as bash, dash, posix, and the Korn shells.
Vim attempts to determine which shell type is in use by specifying that
various filenames are of specific types: >
@@ -2874,28 +2876,31 @@ various filenames are of specific types: >
bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash
<
If none of these cases pertain, then the first line of the file is examined
(ex. /bin/sh /bin/ksh /bin/bash). If the first line specifies a shelltype,
then that shelltype is used. However some files (ex. .profile) are known to
be shell files but the type is not apparent. Furthermore, on many systems
sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" (Posix).
(ex. looking for /bin/sh /bin/ksh /bin/bash). If the first line specifies a
shelltype, then that shelltype is used. However some files (ex. .profile) are
known to be shell files but the type is not apparent. Furthermore, on many
systems sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh"
(Posix).
One may specify a global default by instantiating one of the following three
One may specify a global default by instantiating one of the following
variables in your <.vimrc>:
ksh: >
ksh: >
let g:is_kornshell = 1
< posix: (using this is the same as setting is_kornshell to 1) >
< posix: (using this is the nearly the same as setting g:is_kornshell to 1) >
let g:is_posix = 1
< bash: >
let g:is_bash = 1
< sh: (default) Bourne shell >
let g:is_sh = 1
< (dash users should use posix)
If there's no "#! ..." line, and the user hasn't availed himself/herself of a
default sh.vim syntax setting as just shown, then syntax/sh.vim will assume
the Bourne shell syntax. No need to quote RFCs or market penetration
statistics in error reports, please -- just select the default version of the
sh your system uses in your <.vimrc>.
sh your system uses and install the associated "let..." in your <.vimrc>.
The syntax/sh.vim file provides several levels of syntax-based folding: >
@@ -2904,7 +2909,7 @@ The syntax/sh.vim file provides several levels of syntax-based folding: >
let g:sh_fold_enabled= 2 (enable heredoc folding)
let g:sh_fold_enabled= 4 (enable if/do/for folding)
>
then various syntax items (HereDocuments and function bodies) become
then various syntax items (ie. HereDocuments and function bodies) become
syntax-foldable (see |:syn-fold|). You also may add these together
to get multiple types of folding: >
@@ -2928,14 +2933,7 @@ reduce this, the "sh_maxlines" internal variable can be set. Example: >
The default is to use the twice sh_minlines. Set it to a smaller number to
speed up displaying. The disadvantage is that highlight errors may appear.
*g:sh_isk* *g:sh_noisk*
The shell languages appear to let "." be part of words, commands, etc;
consequently it should be in the isk for sh.vim. As of v116 of syntax/sh.vim,
syntax/sh.vim will append the "." to |'iskeyword'| by default; you may control
this behavior with: >
let g:sh_isk = '..whatever characters you want as part of iskeyword'
let g:sh_noisk= 1 " otherwise, if this exists, the isk will NOT chg
<
*sh-embed* *sh-awk*
Sh: EMBEDDING LANGUAGES~
@@ -3521,8 +3519,8 @@ SYNTAX ISKEYWORD SETTING *:syn-iskeyword*
and also determines where |:syn-keyword| will be checked for a new
match.
It is recommended when writing syntax files, to use this command
to the correct value for the specific syntax language and not change
It is recommended when writing syntax files, to use this command to
set the correct value for the specific syntax language and not change
the 'iskeyword' option.
DEFINING KEYWORDS *:syn-keyword*
@@ -3580,7 +3578,11 @@ DEFINING KEYWORDS *:syn-keyword*
DEFINING MATCHES *:syn-match*
:sy[ntax] match {group-name} [{options}] [excludenl] {pattern} [{options}]
:sy[ntax] match {group-name} [{options}]
[excludenl]
[keepend]
{pattern}
[{options}]
This defines one match.
@@ -3589,6 +3591,9 @@ DEFINING MATCHES *:syn-match*
[excludenl] Don't make a pattern with the end-of-line "$"
extend a containing match or region. Must be
given before the pattern. |:syn-excludenl|
keepend Don't allow contained matches to go past a
match with the end pattern. See
|:syn-keepend|.
{pattern} The search pattern that defines the match.
See |:syn-pattern| below.
Note that the pattern may match more than one
@@ -4592,7 +4597,14 @@ in their own color.
Doesn't work recursively, thus you can't use
":colorscheme" in a color scheme script.
After the color scheme has been loaded the
To customize a colorscheme use another name, e.g.
"~/.vim/colors/mine.vim", and use `:runtime` to load
the original colorscheme: >
runtime colors/evening.vim
hi Statement ctermfg=Blue guifg=Blue
< After the color scheme has been loaded the
|ColorScheme| autocommand event is triggered.
For info about writing a colorscheme file: >
:edit $VIMRUNTIME/colors/README.txt

View File

@@ -1,4 +1,4 @@
*tabpage.txt* For Vim version 8.0. Last change: 2016 Sep 09
*tabpage.txt* For Vim version 8.0. Last change: 2016 Oct 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -58,6 +58,8 @@ clicking right of the labels.
In the GUI tab pages line you can use the right mouse button to open menu.
|tabline-menu|.
For the related autocommands see |tabnew-autocmd|.
:[count]tabe[dit] *:tabe* *:tabedit* *:tabnew*
:[count]tabnew
Open a new tab page with an empty window, after the current
@@ -287,6 +289,7 @@ Variables local to a tab page start with "t:". |tabpage-variable|
Currently there is only one option local to a tab page: 'cmdheight'.
*tabnew-autocmd*
The TabLeave and TabEnter autocommand events can be used to do something when
switching from one tab page to another. The exact order depends on what you
are doing. When creating a new tab page this works as if you create a new

View File

@@ -1357,6 +1357,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
--servername remote.txt /*--servername*
--socketid starting.txt /*--socketid*
--startuptime starting.txt /*--startuptime*
--ttyfail starting.txt /*--ttyfail*
--version starting.txt /*--version*
--windowid starting.txt /*--windowid*
-A starting.txt /*-A*
@@ -1844,6 +1845,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:$ cmdline.txt /*:$*
:% cmdline.txt /*:%*
:& change.txt /*:&*
:&& change.txt /*:&&*
:' cmdline.txt /*:'*
:, cmdline.txt /*:,*
:. cmdline.txt /*:.*
@@ -4486,6 +4488,8 @@ E933 eval.txt /*E933*
E934 sign.txt /*E934*
E935 eval.txt /*E935*
E936 autocmd.txt /*E936*
E937 autocmd.txt /*E937*
E938 eval.txt /*E938*
E94 windows.txt /*E94*
E95 message.txt /*E95*
E96 diff.txt /*E96*
@@ -5184,6 +5188,7 @@ c_CTRL-I cmdline.txt /*c_CTRL-I*
c_CTRL-J cmdline.txt /*c_CTRL-J*
c_CTRL-K cmdline.txt /*c_CTRL-K*
c_CTRL-L cmdline.txt /*c_CTRL-L*
c_CTRL-M cmdline.txt /*c_CTRL-M*
c_CTRL-N cmdline.txt /*c_CTRL-N*
c_CTRL-P cmdline.txt /*c_CTRL-P*
c_CTRL-Q cmdline.txt /*c_CTRL-Q*
@@ -5200,6 +5205,7 @@ c_CTRL-U cmdline.txt /*c_CTRL-U*
c_CTRL-V cmdline.txt /*c_CTRL-V*
c_CTRL-W cmdline.txt /*c_CTRL-W*
c_CTRL-Y cmdline.txt /*c_CTRL-Y*
c_CTRL-[ cmdline.txt /*c_CTRL-[*
c_CTRL-\_CTRL-G intro.txt /*c_CTRL-\\_CTRL-G*
c_CTRL-\_CTRL-N intro.txt /*c_CTRL-\\_CTRL-N*
c_CTRL-\_e cmdline.txt /*c_CTRL-\\_e*
@@ -5246,6 +5252,7 @@ catch-text eval.txt /*catch-text*
cc change.txt /*cc*
ceil() eval.txt /*ceil()*
ch.vim syntax.txt /*ch.vim*
ch_canread() eval.txt /*ch_canread()*
ch_close() eval.txt /*ch_close()*
ch_close_in() eval.txt /*ch_close_in()*
ch_evalexpr() eval.txt /*ch_evalexpr()*
@@ -5293,6 +5300,7 @@ channel-close channel.txt /*channel-close*
channel-close-in channel.txt /*channel-close-in*
channel-commands channel.txt /*channel-commands*
channel-demo channel.txt /*channel-demo*
channel-drop channel.txt /*channel-drop*
channel-functions usr_41.txt /*channel-functions*
channel-mode channel.txt /*channel-mode*
channel-more channel.txt /*channel-more*
@@ -6025,6 +6033,7 @@ ft-csh-syntax syntax.txt /*ft-csh-syntax*
ft-css-omni insert.txt /*ft-css-omni*
ft-cweb-syntax syntax.txt /*ft-cweb-syntax*
ft-cynlib-syntax syntax.txt /*ft-cynlib-syntax*
ft-dash-syntax syntax.txt /*ft-dash-syntax*
ft-desktop-syntax syntax.txt /*ft-desktop-syntax*
ft-dircolors-syntax syntax.txt /*ft-dircolors-syntax*
ft-docbk-syntax syntax.txt /*ft-docbk-syntax*
@@ -6085,6 +6094,7 @@ ft-php-syntax syntax.txt /*ft-php-syntax*
ft-php3-syntax syntax.txt /*ft-php3-syntax*
ft-phtml-syntax syntax.txt /*ft-phtml-syntax*
ft-plaintex-syntax syntax.txt /*ft-plaintex-syntax*
ft-posix-synax syntax.txt /*ft-posix-synax*
ft-postscr-syntax syntax.txt /*ft-postscr-syntax*
ft-ppwiz-syntax syntax.txt /*ft-ppwiz-syntax*
ft-printcap-syntax syntax.txt /*ft-printcap-syntax*
@@ -6338,8 +6348,6 @@ g:netrw_win95ftp pi_netrw.txt /*g:netrw_win95ftp*
g:netrw_winsize pi_netrw.txt /*g:netrw_winsize*
g:netrw_wiw pi_netrw.txt /*g:netrw_wiw*
g:netrw_xstrlen pi_netrw.txt /*g:netrw_xstrlen*
g:sh_isk syntax.txt /*g:sh_isk*
g:sh_noisk syntax.txt /*g:sh_noisk*
g:syntax_on syntax.txt /*g:syntax_on*
g:tar_browseoptions pi_tar.txt /*g:tar_browseoptions*
g:tar_cmd pi_tar.txt /*g:tar_cmd*
@@ -6370,6 +6378,8 @@ g:vimsyn_maxlines syntax.txt /*g:vimsyn_maxlines*
g:vimsyn_minlines syntax.txt /*g:vimsyn_minlines*
g:vimsyn_noerror syntax.txt /*g:vimsyn_noerror*
g:yaml_schema syntax.txt /*g:yaml_schema*
g:zipPlugin_ext pi_zip.txt /*g:zipPlugin_ext*
g:zip_extractcmd pi_zip.txt /*g:zip_extractcmd*
g:zip_nomax pi_zip.txt /*g:zip_nomax*
g:zip_shq pi_zip.txt /*g:zip_shq*
g:zip_unzipcmd pi_zip.txt /*g:zip_unzipcmd*
@@ -6552,7 +6562,7 @@ gui-w32-printing gui_w32.txt /*gui-w32-printing*
gui-w32-start gui_w32.txt /*gui-w32-start*
gui-w32-various gui_w32.txt /*gui-w32-various*
gui-w32-windowid gui_w32.txt /*gui-w32-windowid*
gui-w32s gui_w32.txt /*gui-w32s*
gui-w32s os_win32.txt /*gui-w32s*
gui-win32-maximized gui_w32.txt /*gui-win32-maximized*
gui-x11 gui_x11.txt /*gui-x11*
gui-x11-athena gui_x11.txt /*gui-x11-athena*
@@ -6956,6 +6966,7 @@ job-callback channel.txt /*job-callback*
job-channel-overview channel.txt /*job-channel-overview*
job-close_cb channel.txt /*job-close_cb*
job-control channel.txt /*job-control*
job-drop channel.txt /*job-drop*
job-err_cb channel.txt /*job-err_cb*
job-err_io channel.txt /*job-err_io*
job-exit_cb channel.txt /*job-exit_cb*
@@ -7091,7 +7102,6 @@ logiPat-man pi_logipat.txt /*logiPat-man*
logiPat-manual pi_logipat.txt /*logiPat-manual*
logiPat-operators pi_logipat.txt /*logiPat-operators*
logiPat-pattern pi_logipat.txt /*logiPat-pattern*
logiPat.txt pi_logipat.txt /*logiPat.txt*
long-lines version5.txt /*long-lines*
love intro.txt /*love*
lowercase change.txt /*lowercase*
@@ -7258,7 +7268,6 @@ mouse_winid-variable eval.txt /*mouse_winid-variable*
movement intro.txt /*movement*
ms-dos os_msdos.txt /*ms-dos*
msdos os_msdos.txt /*msdos*
msdos-mode gui_w32.txt /*msdos-mode*
msql.vim syntax.txt /*msql.vim*
mswin.vim gui_w32.txt /*mswin.vim*
multi-byte mbyte.txt /*multi-byte*
@@ -7774,6 +7783,7 @@ php3.vim syntax.txt /*php3.vim*
phtml.vim syntax.txt /*phtml.vim*
pi_getscript.txt pi_getscript.txt /*pi_getscript.txt*
pi_gzip.txt pi_gzip.txt /*pi_gzip.txt*
pi_logipat.txt pi_logipat.txt /*pi_logipat.txt*
pi_netrw.txt pi_netrw.txt /*pi_netrw.txt*
pi_paren.txt pi_paren.txt /*pi_paren.txt*
pi_spec.txt pi_spec.txt /*pi_spec.txt*
@@ -8596,6 +8606,7 @@ tab-page-commands tabpage.txt /*tab-page-commands*
tab-page-intro tabpage.txt /*tab-page-intro*
tab-page-other tabpage.txt /*tab-page-other*
tabline-menu tabpage.txt /*tabline-menu*
tabnew-autocmd tabpage.txt /*tabnew-autocmd*
tabpage tabpage.txt /*tabpage*
tabpage-variable eval.txt /*tabpage-variable*
tabpage.txt tabpage.txt /*tabpage.txt*
@@ -9115,15 +9126,19 @@ vim-dev intro.txt /*vim-dev*
vim-mac intro.txt /*vim-mac*
vim-modes intro.txt /*vim-modes*
vim-modes-intro intro.txt /*vim-modes-intro*
vim-multibyte intro.txt /*vim-multibyte*
vim-script-intro usr_41.txt /*vim-script-intro*
vim-use intro.txt /*vim-use*
vim-variable eval.txt /*vim-variable*
vim.vim syntax.txt /*vim.vim*
vim7 version7.txt /*vim7*
vim8 version8.txt /*vim8*
vim: options.txt /*vim:*
vim_announce intro.txt /*vim_announce*
vim_dev intro.txt /*vim_dev*
vim_did_enter-variable eval.txt /*vim_did_enter-variable*
vim_mac intro.txt /*vim_mac*
vim_starting eval.txt /*vim_starting*
vim_use intro.txt /*vim_use*
vimball pi_vimball.txt /*vimball*
vimball-contents pi_vimball.txt /*vimball-contents*
vimball-extract pi_vimball.txt /*vimball-extract*
@@ -9228,6 +9243,7 @@ win32-startup os_win32.txt /*win32-startup*
win32-term os_win32.txt /*win32-term*
win32-vimrun gui_w32.txt /*win32-vimrun*
win32-win3.1 os_win32.txt /*win32-win3.1*
win32-win95 os_win32.txt /*win32-win95*
win32s os_win32.txt /*win32s*
win_findbuf() eval.txt /*win_findbuf()*
win_getid() eval.txt /*win_getid()*
@@ -9257,6 +9273,8 @@ windows-intro windows.txt /*windows-intro*
windows-starting windows.txt /*windows-starting*
windows.txt windows.txt /*windows.txt*
windows95 os_win32.txt /*windows95*
windows98 os_win32.txt /*windows98*
windowsme os_win32.txt /*windowsme*
winheight() eval.txt /*winheight()*
winid windows.txt /*winid*
winline() eval.txt /*winline()*
@@ -9386,6 +9404,7 @@ zip-extension pi_zip.txt /*zip-extension*
zip-history pi_zip.txt /*zip-history*
zip-manual pi_zip.txt /*zip-manual*
zip-usage pi_zip.txt /*zip-usage*
zip-x pi_zip.txt /*zip-x*
zj fold.txt /*zj*
zk fold.txt /*zk*
zl scroll.txt /*zl*

View File

@@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 8.0. Last change: 2016 Aug 20
*tagsrch.txt* For Vim version 8.0. Last change: 2016 Sep 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -91,7 +91,7 @@ The ignore-case matches are not found for a ":tag" command when:
- 'tagcase' is "followscs" and 'smartcase' option is on and the pattern
contains an upper case character.
The gnore-case matches are found when:
The ignore-case matches are found when:
- a pattern is used (starting with a "/")
- for ":tselect"
- when 'tagcase' is "followic" and 'ignorecase' is off

View File

@@ -89,6 +89,18 @@ an external command (e.g., "!!"), the terminal will be put into Normal mode
for a moment. This means that you can stop the output to the screen by
hitting a printing key. Output resumes when you hit <BS>.
*xterm-bracketed-paste*
When the 't_BE' option is set then 't_BE' will be sent to the
terminal when entering "raw" mode and 't_BD' when leaving "raw" mode. The
terminal is then expected to put 't_PS' before pasted text and 't_PE' after
pasted text. This way Vim can separate text that is pasted from characters
that are typed. The pasted text is handled like when the middle mouse button
is used.
Note that in some situations Vim will not recognize the bracketed paste and
you will get the raw text. In other situations Vim will only get the first
pasted character and drop the rest, e.g. when using the "r" command.
*cs7-problem*
Note: If the terminal settings are changed after running Vim, you might have
an illegal combination of settings. This has been reported on Solaris 2.5
@@ -306,6 +318,10 @@ Added by Vim (there are no standard codes for these):
|xterm-true-color|
t_8b set background color (R, G, B) *t_8b* *'t_8b'*
|xterm-true-color|
t_BE enable bracketed paste mode *t_BE* *'t_BE'*
|xterm-bracketed-paste|
t_BD disable bracketed paste mode *t_BD* *'t_BD'*
|xterm-bracketed-paste|
KEY CODES
Note: Use the <> form if possible
@@ -398,6 +414,8 @@ Note: Use the <> form if possible
t_KK <k8> keypad 8 *<k8>* *t_KK* *'t_KK'*
t_KL <k9> keypad 9 *<k9>* *t_KL* *'t_KL'*
<Mouse> leader of mouse code *<Mouse>*
t_PS start of brackted paste |xterm-bracketed-paste| *t_PS* 't_PS'
t_PE end of bracketed paste |xterm-bracketed-paste| *t_PE* 't_PE'
Note about t_so and t_mr: When the termcap entry "so" is not present the
entry for "mr" is used. And vice versa. The same is done for "se" and "me".

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
*usr_22.txt* For Vim version 8.0. Last change: 2012 Nov 15
*usr_22.txt* For Vim version 8.0. Last change: 2016 Dec 13
VIM USER MANUAL - by Bram Moolenaar
@@ -93,7 +93,7 @@ browser. This is what you get: >
o................Browsing with a Horizontal Split...........|netrw-o|
p................Use Preview Window.........................|netrw-p|
P................Edit in Previous Window....................|netrw-p|
q................Listing Bookmarks and History..............|netrw-q|
q................Listing Bookmarks and History..............|netrw-qb|
r................Reversing Sorting Order....................|netrw-r|
< (etc)

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.0. Last change: 2016 Sep 01
*usr_41.txt* For Vim version 8.0. Last change: 2016 Nov 29
VIM USER MANUAL - by Bram Moolenaar
@@ -930,6 +930,7 @@ Testing: *test-functions*
test_null_string() return a null String
Inter-process communication: *channel-functions*
ch_canread() check if there is something to read
ch_open() open a channel
ch_close() close a channel
ch_close_in() close the in part of a channel

View File

@@ -1,4 +1,4 @@
*version8.txt* For Vim version 8.0. Last change: 2016 Sep 12
*version8.txt* For Vim version 8.0. Last change: 2017 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -159,7 +159,7 @@ Many functions and commands have been added to support the new types.
On some systems the numbers used in Vim script are now 64 bit. This can be
checked with the |+num64| feature.
Many items were added so support |new-style-testing|.
Many items were added to support |new-style-testing|.
printf() now accepts any type of argument for %s. It is converted to a string
like with string().
@@ -181,6 +181,12 @@ Insert mode commands: ~
|i_CTRL-G_U| CTRL-G U don't break undo with next cursor movement
Cmdline mode commands: ~
|/_CTRL-G| CTRL-G move to the next match in 'incsearch' mode
|/_CTRL-T| CTRL-T move to the previous match in 'incsearch' mode
Options: ~
'belloff' do not ring the bell for these reasons
@@ -224,6 +230,7 @@ Ex commands: ~
Ex command modifiers: ~
|:keeppatterns| following command keeps search pattern history
|<mods>| supply command modifiers to user defined commands
New and extended functions: ~
@@ -1031,7 +1038,7 @@ Files: src/configure.in, src/auto/configure
Patch 7.4.095 (after 7.4.093)
Problem: Regexp for LuaJIT version doesn't work on BSD.
Solution: Use "*" instead of "\+" and "\?". (Ozaki)
Solution: Use "*" instead of "\+" and "\?". (Ozaki Kiichi)
Files: src/configure.in, src/auto/configure
Patch 7.4.096
@@ -1750,7 +1757,7 @@ Files: src/Makefile
Patch 7.4.218
Problem: It's not easy to remove duplicates from a list.
Solution: Add the uniq() function. (LCD)
Solution: Add the uniq() function. (Lcd)
Files: runtime/doc/change.txt, runtime/doc/eval.txt,
runtime/doc/usr_41.txt, runtime/doc/version7.txt, src/eval.c,
src/testdir/test55.in, src/testdir/test55.ok
@@ -4311,7 +4318,7 @@ Files: src/misc2.c
Patch 7.4.650
Problem: Configure check may fail because the dl library is not used.
Solution: Put "-ldl" in LIBS rather than LDFLAGS. (Oazki Kiichi)
Solution: Put "-ldl" in LIBS rather than LDFLAGS. (Ozaki Kiichi)
Files: src/configure.in, src/auto/configure
Patch 7.4.651 (after 7.4.582)
@@ -4903,7 +4910,7 @@ Solution: Make the buffer larger. (Kazunobu Kuriyama)
Files: src/eval.c
Patch 7.4.749 (after 7.4.741)
Problem: For some options two consecutive commas are OK. (Nikolay Pavlov)
Problem: For some options two consecutive commas are OK. (Nikolai Pavlov)
Solution: Add the P_ONECOMMA flag.
Files: src/option.c
@@ -6969,7 +6976,7 @@ Files: src/Make_mvc.mak, src/GvimExt/Makefile
Patch 7.4.1096
Problem: Need several lines to verify a command produces an error.
Solution: Add assert_fails(). (suggested by Nikolay Pavlov)
Solution: Add assert_fails(). (suggested by Nikolai Pavlov)
Make the quickfix alloc test actually work.
Files: src/testdir/test_quickfix.vim, src/eval.c, runtime/doc/eval.txt,
src/misc2.c, src/alloc.h
@@ -7432,7 +7439,7 @@ Files: src/mbyte.c, src/os_win32.c
Patch 7.4.1166
Problem: Can't encode a Funcref into JSON. jsonencode() doesn't handle the
same list or dict twice properly. (Nikolay Pavlov)
same list or dict twice properly. (Nikolai Pavlov)
Solution: Give an error. Reset copyID when the list or dict is finished.
Files: src/json.c, src/proto/json.pro, src/testdir/test_json.vim
@@ -7442,7 +7449,7 @@ Solution: Add tests.
Files: src/testdir/test_viml.vim
Patch 7.4.1168
Problem: This doesn't give the right result: eval(string(v:true)). (Nikolay
Problem: This doesn't give the right result: eval(string(v:true)). (Nikolai
Pavlov)
Solution: Make the string "v:true" instead of "true".
Files: src/eval.c, src/testdir/test_viml.vim
@@ -7993,7 +8000,7 @@ Files: src/testdir/test_channel.vim
Patch 7.4.1258
Problem: The channel test can fail if messages arrive later.
Solution: Add a short sleep. (Jun T.)
Solution: Add a short sleep. (Jun Takimoto)
Files: src/testdir/test_channel.vim
Patch 7.4.1259
@@ -8848,8 +8855,8 @@ Files: src/channel.c, src/gui_w32.c, src/os_win32.c, src/structs.h,
Patch 7.4.1405
Problem: Completion menu flickers.
Solution: Delay showing the popup menu. (Shougo, Justin M. Keyes, closes
#656)
Solution: Delay showing the popup menu. (Shougo Matsu, Justin M. Keyes,
closes #656)
Files: src/edit.c
Patch 7.4.1406
@@ -9372,7 +9379,7 @@ Solution: Handle blinking differently. (Kazunobu Kuriyama)
Files: src/gui_gtk_x11.c
Patch 7.4.1498
Problem: Error for locked item when using json_decode(). (Shougo)
Problem: Error for locked item when using json_decode(). (Shougo Matsu)
Solution: Initialize v_lock.
Files: src/json.c
@@ -9775,7 +9782,7 @@ Files: src/testdir/Make_all.mak, src/testdir/test106.in,
Patch 7.4.1570
Problem: There is no way to avoid the message when editing a file.
Solution: Add the "F" flag to 'shortmess'. (Shougo, closes #686)
Solution: Add the "F" flag to 'shortmess'. (Shougo Matsu, closes #686)
Files: runtime/doc/options.txt, src/buffer.c, src/ex_cmds.c,
src/option.h
@@ -10793,7 +10800,7 @@ Files: src/if_py_both.h
Patch 7.4.1744
Problem: Python: Converting a sequence may leak memory.
Solution: Decrement a reference. (Nikolay Pavlov)
Solution: Decrement a reference. (Nikolai Pavlov)
Files: src/if_py_both.h
Patch 7.4.1745
@@ -10866,7 +10873,8 @@ Files: src/option.c, src/testdir/test_alot.vim,
Patch 7.4.1757
Problem: When using complete() it may set 'modified' even though nothing
was inserted.
Solution: Use Down/Up instead of Next/Previous match. (Shougo, closes #745)
Solution: Use Down/Up instead of Next/Previous match. (Shougo Matsu, closes
#745)
Files: src/edit.c
Patch 7.4.1758
@@ -11392,7 +11400,7 @@ Solution: Check if ch_to_be_closed is set.
Files: src/channel.c
Patch 7.4.1850
Problem: GUI freezes when using a job. (Shougo)
Problem: GUI freezes when using a job. (Shougo Matsu)
Solution: Unregister the channel when there is an input error.
Files: src/channel.c
@@ -12354,12 +12362,12 @@ Files: src/testdir/test_cmdline.vim
Patch 7.4.2013
Problem: Using "noinsert" in 'completeopt' breaks redo.
Solution: Set compl_curr_match. (Shougo, closes #874)
Solution: Set compl_curr_match. (Shougo Matsu, closes #874)
Files: src/edit.c, src/testdir/test_popup.vim
Patch 7.4.2014
Problem: Using "noinsert" in 'completeopt' does not insert match.
Solution: Set compl_enter_selects. (Shougo, closes #875)
Solution: Set compl_enter_selects. (Shougo Matsu, closes #875)
Files: src/edit.c, src/testdir/test_popup.vim
Patch 7.4.2015
@@ -14279,7 +14287,7 @@ Solution: Make close_buffer() go back to the right window.
Files: src/buffer.c, src/testdir/test_autocmd.vim
Patch 7.4.2329
Problem: Error for min() and max() contains %s. (Nikolay Pavlov)
Problem: Error for min() and max() contains %s. (Nikolai Pavlov)
Solution: Pass the function name. (closes #1040)
Files: src/evalfunc.c, src/testdir/test_expr.vim
@@ -14405,7 +14413,7 @@ Solution: Don't access curwin when exiting.
Files: src/buffer.c
Patch 7.4.2349
Problem: Valgrind reports using uninitialzed memory. (Dominique Pelle)
Problem: Valgrind reports using uninitialized memory. (Dominique Pelle)
Solution: Check the length before checking for a NUL.
Files: src/message.c
@@ -14506,4 +14514,420 @@ Problem: Test runner misses a comma.
Solution: Add the comma.
Files: src/testdir/runtest.vim
Patch 8.0.0001
Problem: Intro screen still mentions version7. (Paul)
Solution: Change it to version8.
Files: src/version.c
Patch 8.0.0002
Problem: The netrw plugin does not work.
Solution: Make it accept version 8.0.
Files: runtime/autoload/netrw.vim
Patch 8.0.0003
Problem: getwinvar() returns wrong Value of boolean and number options,
especially non big endian systems. (James McCoy)
Solution: Cast the pointer to long or int. (closes #1060)
Files: src/option.c, src/testdir/test_bufwintabinfo.vim
Patch 8.0.0004
Problem: A string argument for function() that is not a function name
results in an error message with NULL. (Christian Brabandt)
Solution: Use the argument for the error message.
Files: src/evalfunc.c, src/testdir/test_expr.vim
Patch 8.0.0005
Problem: Netbeans test fails with Python 3. (Jonathonf)
Solution: Encode the string before sending it. (closes #1070)
Files: src/testdir/test_netbeans.py
Patch 8.0.0006
Problem: ":lb" is interpreted as ":lbottom" while the documentation says it
means ":lbuffer".
Solution: Adjust the order of the commands. (haya14busa, closes #1093)
Files: src/ex_cmds.h
Patch 8.0.0007
Problem: Vim 7.4 is still mentioned in a few places.
Solution: Update to Vim 8. (Uncle Bill, closes #1094)
Files: src/INSTALLpc.txt, src/vimtutor, uninstal.txt
Patch 8.0.0008
Problem: Popup complete test is disabled.
Solution: Enable the test and change the assert. (Hirohito Higashi)
Files: src/testdir/test_popup.vim
Patch 8.0.0009
Problem: Unnecessary workaround for AppVeyor.
Solution: Revert patch 7.4.990. (Christian Brabandt)
Files: appveyor.yml
Patch 8.0.0010
Problem: Crash when editing file that starts with crypt header. (igor2x)
Solution: Check for length of text. (Christian Brabandt) Add a test.
Files: src/fileio.c, src/testdir/test_crypt.vim, src/Makefile,
src/testdir/Make_all.mak
Patch 8.0.0011
Problem: On OSX Test_pipe_through_sort_all() sometimes fails.
Solution: Add the test to the list of flaky tests.
Files: src/testdir/runtest.vim
Patch 8.0.0012
Problem: Typos in comments.
Solution: Change "its" to "it's". (Matthew Brener, closes #1088)
Files: src/evalfunc.c, src/main.aap, src/nbdebug.c, src/netbeans.c,
src/quickfix.c, src/workshop.c, src/wsdebug.c
Patch 8.0.0013 (after 8.0.0011)
Problem: Missing comma in list.
Solution: Add the comma.
Files: src/testdir/runtest.vim
Patch 8.0.0014
Problem: Crypt tests are old style.
Solution: Convert to new style.
Files: src/testdir/test71.in, src/testdir/test71.ok,
src/testdir/test71a.in, src/testdir/test_crypt.vim, src/Makefile,
src/testdir/Make_all.mak
Patch 8.0.0015
Problem: Can't tell which part of a channel has "buffered" status.
Solution: Add an optional argument to ch_status(). Let ch_info() also
return "buffered" for out_status and err_status.
Files: src/evalfunc.c, src/channel.c, src/proto/channel.pro,
src/testdir/test_channel.vim, runtime/doc/eval.txt
Patch 8.0.0016 (after 8.0.0015)
Problem: Build fails.
Solution: Include missing change.
Files: src/eval.c
Patch 8.0.0017
Problem: Cannot get the number of the current quickfix or location list.
Solution: Use the current list if "nr" in "what" is zero. (Yegappan
Lakshmanan) Remove debug command from test.
Files: src/quickfix.c, src/testdir/test_quickfix.vim,
runtime/doc/eval.txt
Patch 8.0.0018
Problem: When using ":sleep" channel input is not handled.
Solution: When there is a channel check for input also when not in raw mode.
Check every 100 msec.
Files: src/channel.c, src/proto/channel.pro, src/ui.c, src/proto/ui.pro,
src/ex_docmd.c, src/os_amiga.c, src/proto/os_amiga.pro,
src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c,
src/proto/os_win32.pro
Patch 8.0.0019
Problem: Test_command_count is old style.
Solution: Turn it into a new style test. (Naruhiko Nishino)
Use more assert functions.
Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/test_alot.vim,
src/testdir/test_autocmd.vim, src/testdir/test_command_count.in,
src/testdir/test_command_count.ok,
src/testdir/test_command_count.vim
Patch 8.0.0020
Problem: The regexp engines are not reentrant.
Solution: Add regexec_T and save/restore the state when needed.
Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test_expr.vim,
runtime/doc/eval.txt, runtime/doc/change.txt
Patch 8.0.0021
Problem: In the GUI when redrawing the cursor it may be on the second half
of a double byte character.
Solution: Correct the cursor column. (Yasuhiro Matsumoto)
Files: src/screen.c
Patch 8.0.0022
Problem: If a channel in NL mode is missing the NL at the end the remaining
characters are dropped.
Solution: When the channel is closed use the remaining text. (Ozaki Kiichi)
Files: src/channel.c, src/testdir/test_channel.vim
Patch 8.0.0023
Problem: "gd" and "gD" may find a match in a comment or string.
Solution: Ignore matches in comments and strings. (Anton Lindqvist)
Files: src/normal.c, src/testdir/test_goto.vim
Patch 8.0.0024
Problem: When the netbeans channel closes, "DETACH" is put in the output
part. (Ozaki Kiichi)
Solution: Write "DETACH" in the socket part.
Files: src/channel.c, src/testdir/test_netbeans.vim
Patch 8.0.0025
Problem: Inconsistent use of spaces vs tabs in gd test.
Solution: Use tabs. (Anton Lindqvist)
Files: src/testdir/test_goto.vim
Patch 8.0.0026
Problem: Error format with %W, %C and %Z does not work. (Gerd Wachsmuth)
Solution: Skip code when qf_multiignore is set. (Lcd)
Files: src/quickfix.c, src/testdir/test_quickfix.vim
Patch 8.0.0027
Problem: A channel is closed when reading on stderr or stdout fails, but
there may still be something to read on another part.
Solution: Turn ch_to_be_closed into a bitfield. (Ozaki Kiichi)
Files: src/channel.c, src/eval.c, src/structs.h, src/proto/channel.pro,
src/testdir/test_channel.vim
Patch 8.0.0028
Problem: Superfluous semicolons.
Solution: Remove them. (Ozaki Kiichi)
Files: src/ex_cmds2.c
Patch 8.0.0029
Problem: Code for MS-Windows is complicated because of the exceptions for
old systems.
Solution: Drop support for MS-Windows older than Windows XP. (Ken Takata)
Files: runtime/doc/gui_w32.txt, runtime/doc/os_win32.txt,
runtime/doc/todo.txt, src/GvimExt/Makefile, src/Make_mvc.mak,
src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_w32.c,
src/if_cscope.c, src/misc1.c, src/misc2.c, src/option.c,
src/os_mswin.c, src/os_win32.c, src/os_win32.h,
src/proto/os_mswin.pro, src/proto/os_win32.pro, src/version.c
Patch 8.0.0030
Problem: Mouse mode is not automatically detected for tmux.
Solution: Check for 'term' to be "tmux". (Michael Henry)
Files: src/os_unix.c
Patch 8.0.0031
Problem: After ":bwipeout" 'fileformat' is not set to the right default.
Solution: Get the default from 'fileformats'. (Mike Williams)
Files: src/option.c, src/Makefile, src/testdir/test_fileformat.vim,
src/testdir/test_alot.vim
Patch 8.0.0032
Problem: Tests may change the input file when something goes wrong.
Solution: Avoid writing the input file.
Files: src/testdir/test51.in, src/testdir/test67.in,
src/testdir/test97.in, src/testdir/test_tabpage.vim
Patch 8.0.0033
Problem: Cannot use overlapping positions with matchaddpos().
Solution: Check end of match. (Ozaki Kiichi) Add a test (Hirohito Higashi)
Files: src/screen.c, src/testdir/test_match.vim
Patch 8.0.0034
Problem: No completion for ":messages".
Solution: Complete "clear" argument. (Hirohito Higashi)
Files: src/ex_docmd.c, src/ex_getln.c, src/proto/ex_docmd.pro,
src/testdir/test_cmdline.vim, src/vim.h,
runtime/doc/eval.txt, runtime/doc/map.txt
Patch 8.0.0035 (after 7.4.2013)
Problem: Order of matches for 'omnifunc' is messed up. (Danny Su)
Solution: Do not set compl_curr_match when called from complete_check().
(closes #1168)
Files: src/edit.c, src/evalfunc.c, src/proto/edit.pro, src/search.c,
src/spell.c, src/tag.c, src/testdir/test76.in,
src/testdir/test76.ok, src/testdir/test_popup.vim, src/Makefile,
src/testdir/Make_all.mak
Patch 8.0.0036
Problem: Detecting that a job has finished may take a while.
Solution: Check for a finished job more often (Ozaki Kiichi)
Files: src/channel.c, src/os_unix.c, src/os_win32.c,
src/proto/os_unix.pro, src/proto/os_win32.pro,
src/testdir/test_channel.vim
Patch 8.0.0037
Problem: Get E924 when switching tabs. ()
Solution: Use win_valid_any_tab() instead of win_valid(). (Martin Vuille,
closes #1167, closes #1171)
Files: src/quickfix.c, src/testdir/test_quickfix.vim
Patch 8.0.0038
Problem: OPEN_CHR_FILES not defined for FreeBSD using Debian userland
files.
Solution: Check for __FreeBSD_kernel__. (James McCoy, closes #1166)
Files: src/vim.h
Patch 8.0.0039
Problem: When Vim 8 reads an old viminfo and exits, the next time marks are
not read from viminfo. (Ned Batchelder)
Solution: Set a mark when it wasn't set before, even when the timestamp is
zero. (closes #1170)
Files: src/mark.c, src/testdir/test_viminfo.vim
Patch 8.0.0040 (after 8.0.0033)
Problem: Whole line highlighting with matchaddpos() does not work.
Solution: Check for zero length. (Hirohito Higashi)
Files: src/screen.c, src/testdir/test_match.vim
Patch 8.0.0041
Problem: When using Insert mode completion but not actually inserting
anything an undo item is still created. (Tommy Allen)
Solution: Do not call stop_arrow() when not inserting anything.
Files: src/edit.c, src/testdir/test_popup.vim
Patch 8.0.0042 (after 8.0.0041)
Problem: When using Insert mode completion with 'completeopt' containing
"noinsert" change is not saved for undo. (Tommy Allen)
Solution: Call stop_arrow() before inserting for pressing Enter.
Files: src/edit.c, src/testdir/test_popup.vim
Patch 8.0.0043 (after 8.0.0041)
Problem: When using Insert mode completion with 'completeopt' containing
"noinsert" with CTRL-N the change is not saved for undo. (Tommy
Allen)
Solution: Call stop_arrow() before inserting for any key.
Files: src/edit.c, src/testdir/test_popup.vim
Patch 8.0.0044
Problem: In diff mode the cursor may end up below the last line, resulting
in an ml_get error.
Solution: Check the line to be valid.
Files: src/move.c, src/diff.c, src/proto/diff.pro,
src/testdir/test_diffmode.vim
Patch 8.0.0045
Problem: Calling job_stop() right after job_start() does not work.
Solution: Block signals while fork is still busy. (Ozaki Kiichi, closes
#1155)
Files: src/auto/configure, src/config.h.in, src/configure.in,
src/os_unix.c, src/testdir/test_channel.vim
Patch 8.0.0046
Problem: Using NUL instead of NULL.
Solution: Change to NULL. (Dominique Pelle)
Files: src/ex_cmds.c, src/json.c
Patch 8.0.0047
Problem: Crash when using the preview window from an unnamed buffer.
(lifepillar)
Solution: Do not clear the wrong buffer. (closes #1200)
Files: src/popupmnu.c
Patch 8.0.0048
Problem: On Windows job_stop() stops cmd.exe, not the processes it runs.
(Linwei)
Solution: Iterate over all processes and terminate the one where the parent
is the job process. (Yasuhiro Matsumoto, closes #1184)
Files: src/os_win32.c, src/structs.h
Patch 8.0.0049
Problem: When a match ends in part of concealed text highlighting, it might
mess up concealing by resetting prev_syntax_id.
Solution: Do not reset prev_syntax_id and add a test to verify. (Christian
Brabandt, closes #1092)
Files: src/screen.c, src/testdir/test_matchadd_conceal.vim
Patch 8.0.0050
Problem: An exiting job is detected with a large latency.
Solution: Check for pending job more often. (Ozaki Kiichi) Change the
double loop in mch_inchar() into one.
Files: src/channel.c, src/os_unix.c, src/testdir/shared.vim,
src/testdir/test_channel.vim
Patch 8.0.0051 (after 8.0.0048)
Problem: New code for job_stop() breaks channel test on AppVeyor.
Solution: Revert the change.
Files: src/os_win32.c, src/structs.h
Patch 8.0.0052 (after 8.0.0049)
Problem: Conceal test passes even without the bug fix.
Solution: Add a redraw command. (Christian Brabandt)
Files: src/testdir/test_matchadd_conceal.vim
Patch 8.0.0053 (after 8.0.0047)
Problem: No test for what 8.0.0047 fixes.
Solution: Add a test. (Hirohito Higashi)
Files: src/testdir/test_popup.vim
Patch 8.0.0054 (after 8.0.0051)
Problem: On Windows job_stop() stops cmd.exe, not the processes it runs.
(Linwei)
Solution: Iterate over all processes and terminate the one where the parent
is the job process. Now only when there is no job object.
(Yasuhiro Matsumoto, closes #1203)
Files: src/os_win32.c
Patch 8.0.0055
Problem: Minor comment and style deficiencies.
Solution: Update comments and fix style.
Files: src/buffer.c, src/misc2.c, src/os_unix.c
Patch 8.0.0056
Problem: When setting 'filetype' there is no check for a valid name.
Solution: Only allow valid characters in 'filetype', 'syntax' and 'keymap'.
Files: src/option.c, src/testdir/test_options.vim
Patch 8.0.0057 (after 8.0.0056)
Problem: Tests fail without the 'keymap' features.
Solution: Check for feature in test.
Files: src/testdir/test_options.vim
Patch 8.0.0058
Problem: Positioning of the popup menu is not good.
Solution: Position it better. (Hirohito Higashi)
Files: src/popupmnu.c
Patch 8.0.0059
Problem: Vim does not build on VMS systems.
Solution: Various changes for VMS. (Zoltan Arpadffy)
Files: src/json.c, src/macros.h, src/Make_vms.mms, src/os_unix.c,
src/os_unix.h, src/os_vms.c, src/os_vms_conf.h,
src/proto/os_vms.pro, src/testdir/Make_vms.mms
Patch 8.0.0060
Problem: When using an Ex command for 'keywordprg' it is escaped as with a
shell command. (Romain Lafourcade)
Solution: Escape for an Ex command. (closes #1175)
Files: src/normal.c, src/testdir/test_normal.vim
Patch 8.0.0061 (after 8.0.0058)
Problem: Compiler warning for unused variable.
Solution: Add #ifdef. (John Marriott)
Files: src/popupmnu.c
Patch 8.0.0062
Problem: No digraph for HORIZONTAL ELLIPSIS.
Solution: Use ",.". (Hans Ginzel, closes #1226)
Files: src/digraph.c, runtime/doc/digraph.txt
Patch 8.0.0063
Problem: Compiler warning for comparing with unsigned. (Zoltan Arpadffy)
Solution: Change <= to ==.
Files: src/undo.c
Patch 8.0.0064 (after 8.0.0060)
Problem: Normal test fails on MS-Windows.
Solution: Don't try using an illegal file name.
Files: src/testdir/test_normal.vim
Patch 8.0.0065 (after 8.0.0056)
Problem: Compiler warning for unused function in tiny build. (Tony
Mechelynck)
Solution: Add #ifdef.
Files: src/option.c
Patch 8.0.0066
Problem: when calling an operator function when 'linebreak' is set, it is
internally reset before calling the operator function.
Solution: Restore 'linebreak' before calling op_function(). (Christian
Brabandt)
Files: src/normal.c, src/testdir/test_normal.vim
Patch 8.0.0067
Problem: VMS has a problem with infinity.
Solution: Avoid an overflow. (Zoltan Arpadffy)
Files: src/json.c, src/macros.h
Patch 8.0.0068
Problem: Checking did_throw after executing autocommands is wrong. (Daniel
Hahler)
Solution: Call aborting() instead, and only when autocommands were executed.
Files: src/quickfix.c, src/if_cscope.c, src/testdir/test_quickfix.vim
Patch 8.0.0069
Problem: Compiler warning for self-comparison.
Solution: Define ONE_WINDOW and add #ifdef.
Files: src/globals.h, src/buffer.c, src/ex_docmd.c, src/move.c,
src/screen.c, src/quickfix.c, src/window.c
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*windows.txt* For Vim version 8.0. Last change: 2016 Aug 23
*windows.txt* For Vim version 8.0. Last change: 2016 Dec 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -295,8 +295,8 @@ CTRL-W CTRL-Q *CTRL-W_CTRL-Q*
:1quit " quit the first window
:$quit " quit the last window
:9quit " quit the last window
" if there are less than 9 windows opened
:-quit " quit the previews window
" if there are fewer than 9 windows opened
:-quit " quit the previous window
:+quit " quit the next window
:+2quit " quit the second next window
<
@@ -696,6 +696,8 @@ can also get to them with the buffer list commands, like ":bnext".
- If the file is not open in a window edit the file in the
current window. If the current buffer can't be |abandon|ed,
the window is split first.
- Windows that are not in the argument list or are not full
width will be closed if possible.
The |argument-list| is set, like with the |:next| command.
The purpose of this command is that it can be used from a
program that wants Vim to edit another file, e.g., a debugger.

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Aug 26
" Last Change: 2017 Jan 06
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -309,7 +309,10 @@ au BufNewFile,BufRead *.bl setf blank
au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml
" Bazel (http://bazel.io)
autocmd BufRead,BufNewFile *.bzl,BUILD,WORKSPACE setfiletype bzl
autocmd BufRead,BufNewFile *.bzl,WORKSPACE setfiletype bzl
if has("fname_case")
autocmd BufRead,BufNewFile BUILD setfiletype bzl
endif
" C or lpc
au BufNewFile,BufRead *.c call s:FTlpc()
@@ -673,8 +676,17 @@ au BufNewFile,BufRead *.dtd setf dtd
" DTS/DSTI (device tree files)
au BufNewFile,BufRead *.dts,*.dtsi setf dts
" EDIF (*.edf,*.edif,*.edn,*.edo)
au BufNewFile,BufRead *.ed\(f\|if\|n\|o\) setf edif
" EDIF (*.edf,*.edif,*.edn,*.edo) or edn
au BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif
au BufNewFile,BufRead *.edn
\ if getline(1) =~ '^\s*(\s*edif\>' |
\ setf edif |
\ else |
\ setf clojure |
\ endif
" EditorConfig (close enough to dosini)
au BufNewFile,BufRead .editorconfig setf dosini
" Embedix Component Description
au BufNewFile,BufRead *.ecd setf ecd
@@ -806,6 +818,10 @@ au BufNewFile,BufRead *.gp,.gprc setf gp
au BufNewFile,BufRead */.gnupg/options setf gpg
au BufNewFile,BufRead */.gnupg/gpg.conf setf gpg
au BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg
if !empty($GNUPGHOME)
au BufNewFile,BufRead $GNUPGHOME/options setf gpg
au BufNewFile,BufRead $GNUPGHOME/gpg.conf setf gpg
endif
" gnash(1) configuration files
au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash
@@ -855,7 +871,7 @@ au BufNewFile,BufRead *.ht setf haste
au BufNewFile,BufRead *.htpp setf hastepreproc
" Hercules
au BufNewFile,BufRead *.vc,*.ev,*.rs,*.sum,*.errsum setf hercules
au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules
" HEX (Intel)
au BufNewFile,BufRead *.hex,*.h32 setf hex
@@ -1753,6 +1769,9 @@ au BufNewFile,BufRead *.rb,*.rbw setf ruby
" RubyGems
au BufNewFile,BufRead *.gemspec setf ruby
" Rust
au BufNewFile,BufRead *.rs setf rust
" Rackup
au BufNewFile,BufRead *.ru setf ruby
@@ -2247,7 +2266,7 @@ func! s:FTtex()
endfunc
" ConTeXt
au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv setf context
au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv,*.mkvi setf context
" Texinfo
au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo
@@ -2661,6 +2680,9 @@ au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
" Nroff macros
au BufNewFile,BufRead tmac.* call s:StarSetf('nroff')
" OpenBSD hostname.if
au BufNewFile,BufRead /etc/hostname.* call s:StarSetf('config')
" Pam conf
au BufNewFile,BufRead */etc/pam.d/* call s:StarSetf('pamconf')

View File

@@ -1,7 +1,8 @@
" Vim filetype plugin file
" Language: ConTeXt typesetting engine
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 30
if exists("b:did_ftplugin")
finish
@@ -11,16 +12,26 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo<"
if !exists('current_compiler')
compiler context
endif
setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tcroql
let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tjcroql2
if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
setlocal omnifunc=contextcomplete#Complete
let g:omni_syntax_group_include_context = 'mf\w\+,mp\w\+'
let g:omni_syntax_group_exclude_context = 'mfTodoComment'
endif
let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
\ . 'def\|\\font\|\\\%(future\)\=let'
\ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
\ . '\|fam\|insert\|if\)'
let &l:include = '^\s*\%(input\|component\)'
let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)'
setlocal suffixesadd=.tex
@@ -31,5 +42,61 @@ if exists("loaded_matchit")
\ '\\start\(\a\+\):\\stop\1'
endif
let s:context_regex = {
\ 'beginsection' : '\\\%(start\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
\ 'endsection' : '\\\%(stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
\ 'beginblock' : '\\\%(start\|setup\|define\)',
\ 'endblock' : '\\\%(stop\|setup\|define\)'
\ }
function! s:move_around(count, what, flags, visual)
if a:visual
exe "normal! gv"
endif
call search(s:context_regex[a:what], a:flags.'s') " 's' sets previous context mark
call map(range(2, a:count), 'search(s:context_regex[a:what], a:flags)')
endfunction
" Move around macros.
nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
" Other useful mappings
if get(g:, 'context_mappings', 1)
let s:tp_regex = '?^$\|^\s*\\\(item\|start\|stop\|blank\|\%(sub\)*section\|chapter\|\%(sub\)*subject\|title\|part\)'
fun! s:tp()
call cursor(search(s:tp_regex, 'bcW') + 1, 1)
normal! V
call cursor(search(s:tp_regex, 'W') - 1, 1)
endf
" Reflow paragraphs with commands like gqtp ("gq TeX paragraph")
onoremap <silent><buffer> tp :<c-u>call <sid>tp()<cr>
" Select TeX paragraph
vnoremap <silent><buffer> tp <esc>:<c-u>call <sid>tp()<cr>
" $...$ text object
onoremap <silent><buffer> i$ :<c-u>normal! T$vt$<cr>
onoremap <silent><buffer> a$ :<c-u>normal! F$vf$<cr>
vnoremap <buffer> i$ T$ot$
vnoremap <buffer> a$ F$of$
endif
" Commands for asynchronous typesetting
command! -buffer -nargs=? -complete=file ConTeXt call context#typeset(<q-args>)
command! -nargs=0 ConTeXtJobStatus call context#job_status()
command! -nargs=0 ConTeXtStopJobs call context#stop_jobs()
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: man
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2016 Jun 20
" Last Change: 2017 Jan 04
" To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file.
@@ -47,6 +47,7 @@ endif
if exists(":Man") != 2
com -nargs=+ Man call s:GetPage(<f-args>)
nmap <Leader>K :call <SID>PreGetPage(0)<CR>
nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR>
endif
" Define functions only once.

View File

@@ -1,7 +1,8 @@
" Vim filetype plugin file
" Language: MetaFont
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09
" Language: METAFONT
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 2
if exists("b:did_ftplugin")
finish
@@ -11,9 +12,59 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin = "setl com< cms< fo<"
let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2
setlocal suffixesadd=.mf
let &l:include = '\<input\>'
let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+'
setlocal omnifunc=syntaxcomplete#Complete
let g:omni_syntax_group_include_mf = 'mf\w\+'
let g:omni_syntax_group_exclude_mf = 'mfTodoComment'
let s:mp_regex = {
\ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|beginchar\|beginlogochar\)\>',
\ 'endsection' : '^\s*\%(enddef\|endchar\)\>',
\ 'beginblock' : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>',
\ 'endblock' : '^\s*\%(endgroup\|fi\|endfor\)\>'
\ }
function! s:move_around(count, what, flags, visual)
if a:visual
exe "normal! gv"
endif
call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark
call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)')
endfunction
" Move around macros.
nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
if exists("loaded_matchit")
let b:match_ignorecase = 0
let b:match_words =
\ '\<if\>:\<else\%[if]\>:\<fi\>,' .
\ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .
\ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .
\ '\<begingroup\>:\<endgroup\>,' .
\ '\<begin\%(logo\)\?char\>:\<endchar\>'
" Ignore comments and strings
let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
\ =~# "mf\\(Comment\\|String\\)$"'
endif
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,7 +1,8 @@
" Vim filetype plugin file
" Language: MetaPost
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09
" Language: MetaPost
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 2
if exists("b:did_ftplugin")
finish
@@ -11,9 +12,16 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin = "setl com< cms< fo<"
let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2
setlocal suffixesadd=.mp,.mpiv
let &l:include = '\<\%(input\|loadmodule\)\>' " loadmodule is in MetaFun
let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+'
setlocal omnifunc=syntaxcomplete#Complete
let g:omni_syntax_group_include_mp = 'mf\w\+,mp\w\+'
let g:omni_syntax_group_exclude_mp = 'mfTodoComment'
if exists(":FixBeginfigs") != 2
command -nargs=0 FixBeginfigs call s:fix_beginfigs()
@@ -24,5 +32,51 @@ if exists(":FixBeginfigs") != 2
endfunction
endif
let s:mp_regex = {
\ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|begin\%(fig\|char\|logochar\|glyph\|graph\)\)\>',
\ 'endsection' : '^\s*\%(enddef\|end\%(fig\|char\|glyph\|graph\)\)\>',
\ 'beginblock' : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>',
\ 'endblock' : '^\s*\%(endgroup\|fi\|endfor\)\>'
\ }
function! s:move_around(count, what, flags, visual)
if a:visual
exe "normal! gv"
endif
call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark
call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)')
endfunction
" Move around macros.
nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
if exists("loaded_matchit")
let b:match_ignorecase = 0
let b:match_words =
\ '\<if\>:\<else\%[if]\>:\<fi\>,' .
\ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .
\ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .
\ '\<beginfig\>:\<endfig\>,' .
\ '\<begingroup\>:\<endgroup\>,' .
\ '\<begin\%(logo\)\?char\>:\<endchar\>,' .
\ '\<beginglyph\>:\<endglyph\>,' .
\ '\<begingraph\>:\<endgraph\>'
" Ignore comments and strings
let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
\ =~# "^mf\\%(Comment\\|String\\|\\)$\\|^mpTeXinsert$"'
endif
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -2,7 +2,7 @@
" Language: python
" Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Tue, 06 September 2016
" Last Change: Tue, 09 October 2016
" https://github.com/sullyj3/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif
@@ -22,10 +22,10 @@ setlocal omnifunc=pythoncomplete#Complete
set wildignore+=*.pyc
let b:next_toplevel='\v%$\|^(class\|def)>'
let b:prev_toplevel='\v^(class\|def)>'
let b:next='\v%$\|^\s*(class\|def)>'
let b:prev='\v^\s*(class\|def)>'
let b:next_toplevel='\v%$\|^(class\|def\|async def)>'
let b:prev_toplevel='\v^(class\|def\|async def)>'
let b:next='\v%$\|^\s*(class\|def\|async def)>'
let b:prev='\v^\s*(class\|def\|async def)>'
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W')<cr>"
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb')<cr>"

View File

@@ -16,7 +16,7 @@ if exists("*CdlGetIndent")
"finish
endif
" find out if an "...=..." expresion its an asignment (or a conditional)
" find out if an "...=..." expresion is an assignment (or a conditional)
" it scans 'line' first, and then the previos lines
fun! CdlAsignment(lnum, line)
let f = -1

View File

@@ -0,0 +1,36 @@
" ConTeXt indent file
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 15
if exists("b:did_indent")
finish
endif
if !get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
finish
endif
" Load MetaPost indentation script
runtime! indent/mp.vim
let s:keepcpo= &cpo
set cpo&vim
setlocal indentexpr=GetConTeXtIndent()
let b:undo_indent = "setl indentexpr<"
function! GetConTeXtIndent()
" Use MetaPost rules inside MetaPost graphic environments
if len(synstack(v:lnum, 1)) > 0 &&
\ synIDattr(synstack(v:lnum, 1)[0], "name") ==# 'contextMPGraphic'
return GetMetaPostIndent()
endif
return -1
endfunc
let &cpo = s:keepcpo
unlet s:keepcpo
" vim:sw=2

View File

@@ -1,11 +1,12 @@
" Vim indent file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version: 0.45
" Last Change: 2016 Aug. 29
" Version: 47
" Last Change: 2016 Oct. 29
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-indent from Vim
" Credits:
" Useful suggestions were made by: Albert Oliver Serra and Takuya Fujiwara.
" Useful suggestions were made, in chronological order, by:
" Albert Oliver Serra, Takuya Fujiwara and Philipp Edelmann.
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -99,9 +100,9 @@ function FortranGetIndent(lnum)
endif
endif
"Add a shiftwidth to statements following if, else, else if, case,
"Add a shiftwidth to statements following if, else, else if, case, class,
"where, else where, forall, type, interface and associate statements
if prevstat =~? '^\s*\(case\|else\|else\s*if\|else\s*where\)\>'
if prevstat =~? '^\s*\(case\|class\|else\|else\s*if\|else\s*where\)\>'
\ ||prevstat=~? '^\s*\(type\|interface\|associate\|enum\)\>'
\ ||prevstat=~?'^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*\(forall\|where\|block\)\>'
\ ||prevstat=~? '^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*if\>'
@@ -121,7 +122,8 @@ function FortranGetIndent(lnum)
let prefix='\(\(pure\|impure\|elemental\|recursive\)\s\+\)\{,2}'
let type='\(\(integer\|real\|double\s\+precision\|complex\|logical'
\.'\|character\|type\|class\)\s*\S*\s\+\)\='
if prevstat =~? '^\s*\(module\|contains\/submodule\|program\)\>'
if prevstat =~? '^\s*\(contains\|submodule\|program\)\>'
\ ||prevstat =~? '^\s*'.'module\>\(\s*\procedure\)\@!'
\ ||prevstat =~? '^\s*'.prefix.'subroutine\>'
\ ||prevstat =~? '^\s*'.prefix.type.'function\>'
\ ||prevstat =~? '^\s*'.type.prefix.'function\>'
@@ -129,16 +131,16 @@ function FortranGetIndent(lnum)
endif
if getline(v:lnum) =~? '^\s*contains\>'
\ ||getline(v:lnum)=~? '^\s*end\s*'
\ .'\(function\|subroutine\|module\/submodule\|program\)\>'
\ .'\(function\|subroutine\|module\|submodule\|program\)\>'
let ind = ind - shiftwidth()
endif
endif
"Subtract a shiftwidth from else, else if, elsewhere, case, end if,
"Subtract a shiftwidth from else, else if, elsewhere, case, class, end if,
" end where, end select, end forall, end interface, end associate,
" end enum, end type, end block and end type statements
if getline(v:lnum) =~? '^\s*\(\d\+\s\)\=\s*'
\. '\(else\|else\s*if\|else\s*where\|case\|'
\. '\(else\|else\s*if\|else\s*where\|case\|class\|'
\. 'end\s*\(if\|where\|select\|interface\|'
\. 'type\|forall\|associate\|enum\|block\)\)\>'
let ind = ind - shiftwidth()

View File

@@ -749,7 +749,7 @@ func! s:CssPrevNonComment(lnum, stopline)
while 1
let ccol = match(getline(lnum), '\*/')
if ccol < 0
" No comment end thus its something else.
" No comment end thus it's something else.
return lnum
endif
call cursor(lnum, ccol + 1)

View File

@@ -2,7 +2,7 @@
" Language: Javascript
" Maintainer: Chris Paul ( https://github.com/bounceme )
" URL: https://github.com/pangloss/vim-javascript
" Last Change: August 25, 2016
" Last Change: December 31, 2016
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
@@ -12,11 +12,10 @@ let b:did_indent = 1
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetJavascriptIndent()
setlocal nolisp noautoindent nosmartindent
setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e
setlocal cinoptions+=j1,J1
setlocal autoindent nolisp nosmartindent
setlocal indentkeys+=0],0)
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys< cinoptions<'
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
" Only define the function once.
if exists('*GetJavascriptIndent')
@@ -37,158 +36,329 @@ else
endfunction
endif
let s:line_pre = '^\s*\%(\%(\%(\/\*.\{-}\)\=\*\+\/\s*\)\=\)\@>'
let s:expr_case = s:line_pre . '\%(\%(case\>.\+\)\|default\)\s*:'
" searchpair() wrapper
if has('reltime')
function s:GetPair(start,end,flags,skip,time,...)
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 2000,0] + a:000),a:time)
endfunction
else
function s:GetPair(start,end,flags,skip,...)
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 1000,get(a:000,1)]))
endfunction
endif
" Regex of syntax group names that are or delimit string or are comments.
let s:syng_strcom = '\%(s\%(tring\|pecial\)\|comment\|regex\|doc\|template\)'
" Regex of syntax group names that are strings or documentation.
let s:syng_comment = '\%(comment\|doc\)'
let s:syng_strcom = 'string\|comment\|regex\|special\|doc\|template'
let s:syng_str = 'string\|template'
let s:syng_com = 'comment\|doc'
" Expression used to check whether we should skip a match with searchpair().
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
if has('reltime')
function s:GetPair(start,end,flags,time)
return searchpair(a:start,'',a:end,a:flags,s:skip_expr,max([prevnonblank(v:lnum) - 2000,0]),a:time)
endfunction
else
function s:GetPair(start,end,flags,n)
return searchpair(a:start,'',a:end,a:flags,0,max([prevnonblank(v:lnum) - 2000,0]))
endfunction
endif
function s:skip_func()
if !s:free || search('\m`\|\*\/','nW',s:looksyn)
let s:free = !eval(s:skip_expr)
let s:looksyn = s:free ? line('.') : s:looksyn
return !s:free
endif
let s:looksyn = line('.')
return (search('\m\/','nbW',s:looksyn) || search('\m[''"]\|\\$','nW',s:looksyn)) && eval(s:skip_expr)
endfunction
let s:line_term = '\s*\%(\%(\/\%(\%(\*.\{-}\*\/\)\|\%(\*\+\)\)\)\s*\)\=$'
function s:alternatePair(stop)
let pos = getpos('.')[1:2]
while search('\m[][(){}]','bW',a:stop)
if !s:skip_func()
let idx = stridx('])}',s:looking_at())
if idx + 1
if !s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,a:stop)
break
endif
else
return
endif
endif
endwhile
call call('cursor',pos)
endfunction
function s:save_pos(f,...)
let l:pos = getpos('.')[1:2]
let ret = call(a:f,a:000)
call call('cursor',l:pos)
return ret
endfunction
function s:syn_at(l,c)
return synIDattr(synID(a:l,a:c,0),'name')
endfunction
function s:looking_at()
return getline('.')[col('.')-1]
endfunction
function s:token()
return s:looking_at() =~ '\k' ? expand('<cword>') : s:looking_at()
endfunction
function s:b_token()
if s:looking_at() =~ '\k'
call search('\m\<','cbW')
endif
return search('\m\S','bW')
endfunction
function s:previous_token()
let l:n = line('.')
while s:b_token()
if (s:looking_at() == '/' || line('.') != l:n && search('\m\/\/','nbW',
\ line('.'))) && s:syn_at(line('.'),col('.')) =~? s:syng_com
call search('\m\_[^/]\zs\/[/*]','bW')
else
return s:token()
endif
endwhile
return ''
endfunction
function s:others(p)
return "((line2byte(line('.')) + col('.')) <= ".(line2byte(a:p[0]) + a:p[1]).") || ".s:skip_expr
endfunction
function s:tern_skip(p)
return s:GetPair('{','}','nbW',s:others(a:p),200,a:p[0]) > 0
endfunction
function s:tern_col(p)
return s:GetPair('?',':\@<!::\@!','nbW',s:others(a:p)
\ .' || s:tern_skip('.string(a:p).')',200,a:p[0]) > 0
endfunction
function s:label_col()
let pos = getpos('.')[1:2]
let [s:looksyn,s:free] = pos
call s:alternatePair(0)
if s:save_pos('s:IsBlock')
let poss = getpos('.')[1:2]
return call('cursor',pos) || !s:tern_col(poss)
elseif s:looking_at() == ':'
return !s:tern_col([0,0])
endif
endfunction
" configurable regexes that define continuation lines, not including (, {, or [.
if !exists('g:javascript_opfirst')
let g:javascript_opfirst = '\%([<>,:?^%|*&]\|\/[^/*]\|\([-.+]\)\1\@!\|=>\@!\|in\%(stanceof\)\=\>\)'
endif
if !exists('g:javascript_continuation')
let g:javascript_continuation = '\%([<=,.?/*:^%|&]\|+\@<!+\|-\@<!-\|=\@<!>\|\<in\%(stanceof\)\=\)'
endif
let s:opfirst = '^' . get(g:,'javascript_opfirst',
\ '\%([<>=,?^%|*/&]\|\([-.:+]\)\1\@!\|!=\|in\%(stanceof\)\=\>\)')
let s:continuation = get(g:,'javascript_continuation',
\ '\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|delete\|void\|in\|instanceof\)\)') . '$'
let g:javascript_opfirst = s:line_pre . g:javascript_opfirst
let g:javascript_continuation .= s:line_term
function s:OneScope(lnum,text,add)
return a:text =~# '\%(\<else\|\<do\|=>\)' . s:line_term ? 'no b' :
\ ((a:add && a:text =~ s:line_pre . '$' && search('\%' . s:PrevCodeLine(a:lnum - 1) . 'l.)' . s:line_term)) ||
\ cursor(a:lnum, match(a:text, ')' . s:line_term)) > -1) &&
\ s:GetPair('(', ')', 'cbW', 100) > 0 && search('\C\l\+\_s*\%#','bW') &&
\ (a:add || ((expand('<cword>') !=# 'while' || !s:GetPair('\C\<do\>', '\C\<while\>','nbW',100)) &&
\ (expand('<cword>') !=# 'each' || search('\C\<for\_s\+\%#','nbW')))) ? expand('<cword>') : ''
function s:continues(ln,con)
return !cursor(a:ln, match(' '.a:con,s:continuation)) &&
\ eval((['s:syn_at(line("."),col(".")) !~? "regex"'] +
\ repeat(['s:previous_token() != "."'],5) + [1])[
\ index(split('/ typeof in instanceof void delete'),s:token())])
endfunction
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
function s:IsBlock()
return getline(line('.'))[col('.')-1] == '{' && !search(
\ '\C\%(\<return\s*\|\%([-=~!<*+,.?^%|&\[(]\|=\@<!>\|\*\@<!\/\|\<\%(var\|const\|let\|import\|export\%(\_s\+default\)\=\|yield\|delete\|void\|t\%(ypeof\|hrow\)\|new\|in\%(stanceof\)\=\)\)\_s*\)\%#','bnW') &&
\ (!search(':\_s*\%#','bW') || (!s:GetPair('[({[]','[])}]','bW',200) || s:IsBlock()))
" get the line of code stripped of comments and move cursor to the last
" non-comment char.
function s:Trim(ln)
let pline = substitute(getline(a:ln),'\s*$','','')
let l:max = max([match(pline,'.*[^/]\zs\/[/*]'),0])
while l:max && s:syn_at(a:ln, strlen(pline)) =~? s:syng_com
let pline = substitute(strpart(pline, 0, l:max),'\s*$','','')
let l:max = max([match(pline,'.*[^/]\zs\/[/*]'),0])
endwhile
return cursor(a:ln,strlen(pline)) ? pline : pline
endfunction
" Auxiliary Functions {{{2
" Find line above 'lnum' that isn't empty, in a comment, or in a string.
" Find line above 'lnum' that isn't empty or in a comment
function s:PrevCodeLine(lnum)
let l:lnum = prevnonblank(a:lnum)
while l:lnum
if synIDattr(synID(l:lnum,matchend(getline(l:lnum), '^\s*[^''"]'),0),'name') !~? s:syng_strcom
return l:lnum
let l:n = prevnonblank(a:lnum)
while l:n
if getline(l:n) =~ '^\s*\/[/*]'
if (stridx(getline(l:n),'`') > 0 || getline(l:n-1)[-1:] == '\') &&
\ s:syn_at(l:n,1) =~? s:syng_str
return l:n
endif
let l:n = prevnonblank(l:n-1)
elseif s:syn_at(l:n,1) =~? s:syng_com
let l:n = s:save_pos('eval',
\ 'cursor('.l:n.',1) + search(''\m\/\*'',"bW")')
else
return l:n
endif
let l:lnum = prevnonblank(l:lnum - 1)
endwhile
endfunction
" Check if line 'lnum' has a balanced amount of parentheses.
function s:Balanced(lnum)
let [open_0,open_2,open_4] = [0,0,0]
let l:open = 0
let l:line = getline(a:lnum)
let pos = match(l:line, '[][(){}]', 0)
while pos != -1
if synIDattr(synID(a:lnum,pos + 1,0),'name') !~? s:syng_strcom
let idx = stridx('(){}[]', l:line[pos])
if idx % 2 == 0
let open_{idx} = open_{idx} + 1
else
let open_{idx - 1} = open_{idx - 1} - 1
if s:syn_at(a:lnum,pos + 1) !~? s:syng_strcom
let l:open += match(' ' . l:line[pos],'[[({]')
if l:open < 0
return
endif
endif
let pos = match(l:line, '[][(){}]', pos + 1)
endwhile
return (!open_4 + !open_2 + !open_0) - 2
return !l:open
endfunction
function s:OneScope(lnum)
let pline = s:Trim(a:lnum)
let kw = 'else do'
if pline[-1:] == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
call s:previous_token()
let kw = 'for if let while with'
if index(split('await each'),s:token()) + 1
call s:previous_token()
let kw = 'for'
endif
endif
return pline[-2:] == '=>' || index(split(kw),s:token()) + 1 &&
\ s:save_pos('s:previous_token') != '.'
endfunction
" returns braceless levels started by 'i' and above lines * &sw. 'num' is the
" lineNr which encloses the entire context, 'cont' if whether line 'i' + 1 is
" a continued expression, which could have started in a braceless context
function s:iscontOne(i,num,cont)
let [l:i, l:num, bL] = [a:i, a:num + !a:num, 0]
let pind = a:num ? indent(l:num) + s:W : 0
let ind = indent(l:i) + (a:cont ? 0 : s:W)
while l:i >= l:num && (ind > pind || l:i == l:num)
if indent(l:i) < ind && s:OneScope(l:i)
let bL += s:W
let l:i = line('.')
elseif !a:cont || bL || ind < indent(a:i)
break
endif
let ind = min([ind, indent(l:i)])
let l:i = s:PrevCodeLine(l:i - 1)
endwhile
return bL
endfunction
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
function s:IsBlock()
if s:looking_at() == '{'
let l:n = line('.')
let char = s:previous_token()
let syn = char =~ '[{>/]' ? s:syn_at(line('.'),col('.')-(char == '{')) : ''
if syn =~? 'xml\|jsx'
return char != '{'
elseif char =~ '\k'
return index(split('return const let import export yield default delete var await void typeof throw case new in instanceof')
\ ,char) < (line('.') != l:n) || s:previous_token() == '.'
elseif char == '>'
return getline('.')[col('.')-2] == '=' || syn =~? '^jsflow'
elseif char == ':'
return getline('.')[col('.')-2] != ':' && s:label_col()
endif
return syn =~? 'regex' || char !~ '[-=~!<*+,/?^%|&([]'
endif
endfunction
" }}}
function GetJavascriptIndent()
if !exists('b:js_cache')
let b:js_cache = [0,0,0]
endif
let b:js_cache = get(b:,'js_cache',[0,0,0])
" Get the current line.
let l:line = getline(v:lnum)
let syns = synIDattr(synID(v:lnum, 1, 0), 'name')
call cursor(v:lnum,1)
let l:line = getline('.')
let syns = s:syn_at(v:lnum, 1)
" start with strings,comments,etc.{{{2
if (l:line !~ '^[''"`]' && syns =~? '\%(string\|template\)') ||
\ (l:line !~ '^\s*[/*]' && syns =~? s:syng_comment)
" start with strings,comments,etc.
if syns =~? s:syng_com
if l:line =~ '^\s*\*'
return cindent(v:lnum)
elseif l:line !~ '^\s*\/[/*]'
return -1
endif
elseif syns =~? s:syng_str && l:line !~ '^[''"]'
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
let b:js_cache[0] = v:lnum
endif
return -1
endif
if l:line !~ '^\%(\/\*\|\s*\/\/\)' && syns =~? s:syng_comment
return cindent(v:lnum)
endif
let l:lnum = s:PrevCodeLine(v:lnum - 1)
if l:lnum == 0
return 0
if !l:lnum
return
endif
if (l:line =~# s:expr_case)
let cpo_switch = &cpo
set cpo+=%
let ind = cindent(v:lnum)
let &cpo = cpo_switch
return ind
let l:line = substitute(l:line,'^\s*','','')
if l:line[:1] == '/*'
let l:line = substitute(l:line,'^\%(\/\*.\{-}\*\/\s*\)*','','')
endif
if l:line =~ '^\/[/*]'
let l:line = ''
endif
"}}}
" the containing paren, bracket, curly. Memoize, last lineNr either has the
" same scope or starts a new one, unless if it closed a scope.
call cursor(v:lnum,1)
if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum && b:js_cache[0] &&
\ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum) > 0)
let num = b:js_cache[1]
elseif syns != '' && l:line[0] =~ '\s'
let pattern = syns =~? 'block' ? ['{','}'] : syns =~? 'jsparen' ? ['(',')'] :
\ syns =~? 'jsbracket'? ['\[','\]'] : ['[({[]','[])}]']
let num = s:GetPair(pattern[0],pattern[1],'bW',2000)
" the containing paren, bracket, or curly. Many hacks for performance
let idx = strlen(l:line) ? stridx('])}',l:line[0]) : -1
if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum &&
\ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum))
call call('cursor',b:js_cache[1:])
else
let num = s:GetPair('[({[]','[])}]','bW',2000)
endif
let b:js_cache = [v:lnum,num,line('.') == v:lnum ? b:js_cache[2] : col('.')]
if l:line =~ s:line_pre . '[])}]'
return indent(num)
let [s:looksyn, s:free, top] = [v:lnum - 1, 1, (!indent(l:lnum) &&
\ s:syn_at(l:lnum,1) !~? s:syng_str) * l:lnum]
if idx + 1
call s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,top)
elseif indent(v:lnum) && syns =~? 'block'
call s:GetPair('{','}','bW','s:skip_func()',2000,top)
else
call s:alternatePair(top)
endif
endif
call cursor(b:js_cache[1],b:js_cache[2])
let swcase = getline(l:lnum) =~# s:expr_case
let pline = swcase ? getline(l:lnum) : substitute(getline(l:lnum), '\%(:\@<!\/\/.*\)$', '','')
let inb = num == 0 || num < l:lnum && ((l:line !~ s:line_pre . ',' && pline !~ ',' . s:line_term) || s:IsBlock())
let switch_offset = num == 0 || s:OneScope(num, strpart(getline(num),0,b:js_cache[2] - 1),1) !=# 'switch' ? 0 :
\ &cino !~ ':' || !has('float') ? s:sw() :
\ float2nr(str2float(matchstr(&cino,'.*:\zs[-0-9.]*')) * (&cino =~# '.*:[^,]*s' ? s:sw() : 1))
" most significant, find the indent amount
if inb && !swcase && ((l:line =~# g:javascript_opfirst || pline =~# g:javascript_continuation) ||
\ num < l:lnum && s:OneScope(l:lnum,pline,0) =~# '\<\%(for\|each\|if\|let\|no\sb\|w\%(hile\|ith\)\)\>' &&
\ l:line !~ s:line_pre . '{')
return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset
elseif num > 0
return indent(num) + s:sw() + switch_offset
if idx + 1 || l:line[:1] == '|}'
if idx == 2 && search('\m\S','bW',line('.')) && s:looking_at() == ')'
call s:GetPair('(',')','bW',s:skip_expr,200)
endif
return indent('.')
endif
let b:js_cache = [v:lnum] + (line('.') == v:lnum ? [0,0] : getpos('.')[1:2])
let num = b:js_cache[1]
let [s:W, isOp, bL, switch_offset] = [s:sw(),0,0,0]
if !num || s:IsBlock()
let pline = s:save_pos('s:Trim',l:lnum)
if num && s:looking_at() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
let num = line('.')
if s:previous_token() ==# 'switch' && s:previous_token() != '.'
if &cino !~ ':' || !has('float')
let switch_offset = s:W
else
let cinc = matchlist(&cino,'.*:\(-\)\=\([0-9.]*\)\(s\)\=\C')
let switch_offset = float2nr(str2float(cinc[1].(strlen(cinc[2]) ? cinc[2] : strlen(cinc[3])))
\ * (strlen(cinc[3]) ? s:W : 1))
endif
if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
return indent(num) + switch_offset
endif
endif
endif
if pline[-1:] !~ '[{;]'
if pline =~# ':\@<!:$'
call cursor(l:lnum,strlen(pline))
let isOp = s:tern_col(b:js_cache[1:2])
else
let isOp = l:line =~# s:opfirst || s:continues(l:lnum,pline)
endif
let bL = s:iscontOne(l:lnum,num,isOp)
let bL -= (bL && l:line[0] == '{') * s:W
endif
endif
" main return
if isOp
return (num ? indent(num) : -s:W) + (s:W * 2) + switch_offset + bL
elseif num
return indent(num) + s:W + switch_offset + bL
endif
return bL
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save

6
runtime/indent/mf.vim Normal file
View File

@@ -0,0 +1,6 @@
" METAFONT indent file
" Language: METAFONT
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 1
runtime! indent/mp.vim

View File

@@ -1,56 +1,19 @@
" MetaPost indent file
" Language: MetaPost
" Maintainer: Eugene Minkovskii <emin@mccme.ru>
" Last Change: 2012 May 18
" Version: 0.1
" ==========================================================================
" Language: MetaPost
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Eugene Minkovskii <emin@mccme.ru>
" Last Change: 2016 Oct 2, 4:13pm
" Version: 0.2
" Identation Rules: {{{1
" First of all, MetaPost language don't expect any identation rules.
" This screept need for you only if you (not MetaPost) need to do
" exactly code. If you don't need to use indentation, see
" :help filetype-indent-off
"
" Note: Every rules of identation in MetaPost or TeX languages (and in some
" other of course) is very subjective. I can release only my vision of this
" promlem.
"
" ..........................................................................
" Example of correct (by me) identation {{{2
" shiftwidth=4
" ==========================================================================
" for i=0 upto 99:
" z[i] = (0,1u) rotated (i*360/100);
" endfor
" draw z0 -- z10 -- z20
" withpen ... % <- 2sw because breaked line
" withcolor ...; % <- same as previous
" draw z0 for i=1 upto 99:
" -- z[i] % <- 1sw from left end of 'for' satement
" endfor withpen ... % <- 0sw from left end of 'for' satement
" withcolor ...; % <- 2sw because breaked line
" draw if One: % <- This is internal if (like 'for' above)
" one
" elsif Other:
" other
" fi withpen ...;
" if one: % <- This is external if
" draw one;
" elseif other:
" draw other;
" fi
" draw z0; draw z1;
" }}}
" }}}
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetMetaPostIndent()
setlocal indentkeys+=;,<:>,=if,=for,=def,=end,=else,=fi
setlocal indentkeys+==end,=else,=fi,=fill,0),0]
let b:undo_indent = "setl indentkeys< indentexpr<"
" Only define the function once.
if exists("*GetMetaPostIndent")
@@ -59,151 +22,337 @@ endif
let s:keepcpo= &cpo
set cpo&vim
" Auxiliary Definitions: {{{1
function! MetaNextNonblankNoncomment(pos)
" Like nextnonblank() but ignore comment lines
let tmp = nextnonblank(a:pos)
while tmp && getline(tmp) =~ '^\s*%'
let tmp = nextnonblank(tmp+1)
function GetMetaPostIndent()
let ignorecase_save = &ignorecase
try
let &ignorecase = 0
return GetMetaPostIndentIntern()
finally
let &ignorecase = ignorecase_save
endtry
endfunc
" Regexps {{{
" Note: the next three variables are made global so that a user may add
" further keywords.
"
" Example:
"
" Put these in ~/.vim/after/indent/mp.vim
"
" let g:mp_open_tag .= '\|\<begintest\>'
" let g:mp_close_tag .= '\|\<endtest\>'
" Expressions starting indented blocks
let g:mp_open_tag = ''
\ . '\<if\>'
\ . '\|\<else\%[if]\>'
\ . '\|\<for\%(\|ever\|suffixes\)\>'
\ . '\|\<begingroup\>'
\ . '\|\<\%(\|var\|primary\|secondary\|tertiary\)def\>'
\ . '\|^\s*\<begin\%(fig\|graph\|glyph\|char\|logochar\)\>'
\ . '\|[([{]'
" Expressions ending indented blocks
let g:mp_close_tag = ''
\ . '\<fi\>'
\ . '\|\<else\%[if]\>'
\ . '\|\<end\%(\|for\|group\|def\|fig\|char\|glyph\|graph\)\>'
\ . '\|[)\]}]'
" Statements that may span multiple lines and are ended by a semicolon. To
" keep this list short, statements that are unlikely to be very long or are
" not very common (e.g., keywords like `interim` or `showtoken`) are not
" included.
"
" The regex for assignments and equations (the last branch) is tricky, because
" it must not match things like `for i :=`, `if a=b`, `def...=`, etc... It is
" not perfect, but it works reasonably well.
let g:mp_statement = ''
\ . '\<\%(\|un\|cut\)draw\>'
\ . '\|\<\%(\|un\)fill\%[draw]\>'
\ . '\|\<draw\%(dbl\)\=arrow\>'
\ . '\|\<clip\>'
\ . '\|\<addto\>'
\ . '\|\<save\>'
\ . '\|\<setbounds\>'
\ . '\|\<message\>'
\ . '\|\<errmessage\>'
\ . '\|\<errhelp\>'
\ . '\|\<fontmapline\>'
\ . '\|\<pickup\>'
\ . '\|\<show\>'
\ . '\|\<special\>'
\ . '\|\<write\>'
\ . '\|\%(^\|;\)\%([^;=]*\%('.g:mp_open_tag.'\)\)\@!.\{-}:\=='
" A line ends with zero or more spaces, possibly followed by a comment.
let s:eol = '\s*\%($\|%\)'
" }}}
" Auxiliary functions {{{
" Returns 1 if (0-based) position immediately preceding `pos` in `line` is
" inside a string or a comment; returns 0 otherwise.
" This is the function that is called more often when indenting, so it is
" critical that it is efficient. The method we use is significantly faster
" than using syntax attributes, and more general (it does not require
" syntax_items). It is also faster than using a single regex matching an even
" number of quotes. It helps that MetaPost strings cannot span more than one
" line and cannot contain escaped quotes.
function! s:CommentOrString(line, pos)
let in_string = 0
let q = stridx(a:line, '"')
let c = stridx(a:line, '%')
while q >= 0 && q < a:pos
if c >= 0 && c < q
if in_string " Find next percent symbol
let c = stridx(a:line, '%', q + 1)
else " Inside comment
return 1
endif
endif
let in_string = 1 - in_string
let q = stridx(a:line, '"', q + 1) " Find next quote
endwhile
return tmp
return in_string || (c >= 0 && c <= a:pos)
endfunction
function! MetaPrevNonblankNoncomment(pos)
" Like prevnonblank() but ignore comment lines
let tmp = prevnonblank(a:pos)
while tmp && getline(tmp) =~ '^\s*%'
let tmp = prevnonblank(tmp-1)
" Find the first non-comment non-blank line before the current line.
function! s:PrevNonBlankNonComment(lnum)
let l:lnum = prevnonblank(a:lnum - 1)
while getline(l:lnum) =~# '^\s*%'
let l:lnum = prevnonblank(l:lnum - 1)
endwhile
return tmp
return l:lnum
endfunction
function! MetaSearchNoncomment(pattern, ...)
" Like search() but ignore commented areas
if a:0
let flags = a:1
elseif &wrapscan
let flags = "w"
else
let flags = "W"
endif
let cl = line(".")
let cc = col(".")
let tmp = search(a:pattern, flags)
while tmp && synIDattr(synID(line("."), col("."), 1), "name") =~
\ 'm[fp]\(Comment\|TeXinsert\|String\)'
let tmp = search(a:pattern, flags)
" Returns true if the last tag appearing in the line is an open tag; returns
" false otherwise.
function! s:LastTagIsOpen(line)
let o = s:LastValidMatchEnd(a:line, g:mp_open_tag, 0)
if o == - 1 | return v:false | endif
return s:LastValidMatchEnd(a:line, g:mp_close_tag, o) < 0
endfunction
" A simple, efficient and quite effective heuristics is used to test whether
" a line should cause the next line to be indented: count the "opening tags"
" (if, for, def, ...) in the line, count the "closing tags" (endif, endfor,
" ...) in the line, and compute the difference. We call the result the
" "weight" of the line. If the weight is positive, then the next line should
" most likely be indented. Note that `else` and `elseif` are both opening and
" closing tags, so they "cancel out" in almost all cases, the only exception
" being a leading `else[if]`, which is counted as an opening tag, but not as
" a closing tag (so that, for instance, a line containing a single `else:`
" will have weight equal to one, not zero). We do not treat a trailing
" `else[if]` in any special way, because lines ending with an open tag are
" dealt with separately before this function is called (see
" GetMetaPostIndentIntern()).
"
" Example:
"
" forsuffixes $=a,b: if x.$ = y.$ : draw else: fill fi
" % This line will be indented because |{forsuffixes,if,else}| > |{else,fi}| (3 > 2)
" endfor
function! s:Weight(line)
let [o, i] = [0, s:ValidMatchEnd(a:line, g:mp_open_tag, 0)]
while i > 0
let o += 1
let i = s:ValidMatchEnd(a:line, g:mp_open_tag, i)
endwhile
if !tmp
call cursor(cl,cc)
let [c, i] = [0, matchend(a:line, '^\s*\<else\%[if]\>')] " Skip a leading else[if]
let i = s:ValidMatchEnd(a:line, g:mp_close_tag, i)
while i > 0
let c += 1
let i = s:ValidMatchEnd(a:line, g:mp_close_tag, i)
endwhile
return o - c
endfunction
" Similar to matchend(), but skips strings and comments.
" line: a String
function! s:ValidMatchEnd(line, pat, start)
let i = matchend(a:line, a:pat, a:start)
while i > 0 && s:CommentOrString(a:line, i)
let i = matchend(a:line, a:pat, i)
endwhile
return i
endfunction
" Like s:ValidMatchEnd(), but returns the end position of the last (i.e.,
" rightmost) match.
function! s:LastValidMatchEnd(line, pat, start)
let last_found = -1
let i = matchend(a:line, a:pat, a:start)
while i > 0
if !s:CommentOrString(a:line, i)
let last_found = i
endif
let i = matchend(a:line, a:pat, i)
endwhile
return last_found
endfunction
function! s:DecreaseIndentOnClosingTag(curr_indent)
let cur_text = getline(v:lnum)
if cur_text =~# '^\s*\%('.g:mp_close_tag.'\)'
return max([a:curr_indent - shiftwidth(), 0])
endif
return tmp
return a:curr_indent
endfunction
" }}}
function! GetMetaPostIndent()
" not indent in comment ???
if synIDattr(synID(line("."), col("."), 1), "name") =~
\ 'm[fp]\(Comment\|TeXinsert\|String\)'
" Main function {{{
"
" Note: Every rule of indentation in MetaPost is very subjective. We might get
" creative, but things get murky very soon (there are too many corner cases).
" So, we provide a means for the user to decide what to do when this script
" doesn't get it. We use a simple idea: use '%>', '%<' and '%=' to explicitly
" control indentation. The '<' and '>' symbols may be repeated many times
" (e.g., '%>>' will cause the next line to be indented twice).
"
" By using '%>...', '%<...' and '%=', the indentation the user wants is
" preserved by commands like gg=G, even if it does not follow the rules of
" this script.
"
" Example:
"
" def foo =
" makepen(
" subpath(T-n,t) of r %>
" shifted .5down %>
" --subpath(t,T) of r shifted .5up -- cycle %<<<
" )
" withcolor black
" enddef
"
" The default indentation of the previous example would be:
"
" def foo =
" makepen(
" subpath(T-n,t) of r
" shifted .5down
" --subpath(t,T) of r shifted .5up -- cycle
" )
" withcolor black
" enddef
"
" Personally, I prefer the latter, but anyway...
function! GetMetaPostIndentIntern()
" Do not touch indentation inside verbatimtex/btex.. etex blocks.
if synIDattr(synID(v:lnum, 1, 1), "name") =~# '^mpTeXinsert$\|^tex\|^Delimiter'
return -1
endif
" Some RegExps: {{{1
" end_of_item: all of end by ';'
" + all of end by :endfor, :enddef, :endfig, :endgroup, :fi
" + all of start by :beginfig(num), :begingroup
" + all of start by :for, :if, :else, :elseif and end by ':'
" + all of start by :def, :vardef and end by '='
let end_of_item = '\(' .
\ ';\|' .
\ '\<\(end\(for\|def\|fig\|group\)\|fi\)\>\|' .
\ '\<begin\(group\>\|fig\s*(\s*\d\+\s*)\)\|' .
\ '\<\(for\|if\|else\(if\)\=\)\>.\+:\|' .
\ '\<\(var\)\=def\>.\+=' . '\)'
" }}}
" Save: current position {{{1
let cl = line (".")
let cc = col (".")
let cs = getline(".")
" if it is :beginfig or :endfig use zero indent
if cs =~ '^\s*\(begin\|end\)fig\>'
return 0
endif
" }}}
" Initialise: ind variable {{{1
" search previous item not in current line
let p_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
while p_semicol_l == cl
let p_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
endwhile
" if this is first item in program use zero indent
if !p_semicol_l
return 0
endif
" if this is multiline item, remember first indent
if MetaNextNonblankNoncomment(p_semicol_l+1) < cl
let ind = indent(MetaNextNonblankNoncomment(p_semicol_l+1))
" else --- search pre-previous item for search first line in previous item
else
" search pre-previous item not in current line
let pp_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
while pp_semicol_l == p_semicol_l
let pp_semicol_l = MetaSearchNoncomment(end_of_item,"bW")
endwhile
" if we find pre-previous item, remember indent of previous item
" else --- remember zero
if pp_semicol_l
let ind = indent(MetaNextNonblankNoncomment(line(".")+1))
else
let ind = 0
endif
endif
" }}}
" Increase Indent: {{{1
" if it is an internal/external :for or :if statements {{{2
let pnn_s = getline(MetaPrevNonblankNoncomment(cl-1))
if pnn_s =~ '\<\(for\|if\)\>.\+:\s*\($\|%\)'
let ind = match(pnn_s, '\<\(for\|if\)\>.\+:\s*\($\|%\)') + &sw
" }}}
" if it is a :def, :vardef, :beginfig, :begingroup, :else, :elseif {{{2
elseif pnn_s =~ '^\s*\(' .
\ '\(var\)\=def\|' .
\ 'begin\(group\|fig\s*(\s*\d\+\s*)\)\|' .
\ 'else\(if\)\=' . '\)\>'
let ind = ind + &sw
" }}}
" if it is a broken line {{{2
elseif pnn_s !~ end_of_item.'\s*\($\|%\)'
let ind = ind + (2 * &sw)
endif
" }}}
" }}}
" Decrease Indent: {{{1
" if this is :endfor or :enddef statements {{{2
" this is correct because :def cannot be inside :for
if cs =~ '\<end\(for\|def\)\=\>'
call MetaSearchNoncomment('\<for\>.\+:\s*\($\|%\)' . '\|' .
\ '^\s*\(var\)\=def\>',"bW")
if col(".") > 1
let ind = col(".") - 1
else
let ind = indent(".")
endif
" }}}
" if this is :fi, :else, :elseif statements {{{2
elseif cs =~ '\<\(else\(if\)\=\|fi\)\>'
call MetaSearchNoncomment('\<if\>.\+:\s*\($\|%\)',"bW")
let ind = col(".") - 1
" }}}
" if this is :endgroup statement {{{2
elseif cs =~ '^\s*endgroup\>'
let ind = ind - &sw
endif
" }}}
" }}}
return ind
" This is the reference line relative to which the current line is indented
" (but see below).
let lnum = s:PrevNonBlankNonComment(v:lnum)
" At the start of the file use zero indent.
if lnum == 0
return 0
endif
let prev_text = getline(lnum)
" User-defined overrides take precedence over anything else.
" See above for an example.
let j = match(prev_text, '%[<>=]')
if j > 0
let i = strlen(matchstr(prev_text, '%>\+', j)) - 1
if i > 0
return indent(lnum) + i * shiftwidth()
endif
let i = strlen(matchstr(prev_text, '%<\+', j)) - 1
if i > 0
return max([indent(lnum) - i * shiftwidth(), 0])
endif
if match(prev_text, '%=', j)
return indent(lnum)
endif
endif
" If the reference line ends with an open tag, indent.
"
" Example:
"
" if c:
" 0
" else:
" 1
" fi if c2: % Note that this line has weight equal to zero.
" ... % This line will be indented
if s:LastTagIsOpen(prev_text)
return s:DecreaseIndentOnClosingTag(indent(lnum) + shiftwidth())
endif
" Lines with a positive weight are unbalanced and should likely be indented.
"
" Example:
"
" def f = enddef for i = 1 upto 5: if x[i] > 0: 1 else: 2 fi
" ... % This line will be indented (because of the unterminated `for`)
if s:Weight(prev_text) > 0
return s:DecreaseIndentOnClosingTag(indent(lnum) + shiftwidth())
endif
" Unterminated statements cause indentation to kick in.
"
" Example:
"
" draw unitsquare
" withcolor black; % This line is indented because of `draw`.
" x := a + b + c
" + d + e; % This line is indented because of `:=`.
"
let i = s:LastValidMatchEnd(prev_text, g:mp_statement, 0)
if i >= 0 " Does the line contain a statement?
if s:ValidMatchEnd(prev_text, ';', i) < 0 " Is the statement unterminated?
return indent(lnum) + shiftwidth()
else
return s:DecreaseIndentOnClosingTag(indent(lnum))
endif
endif
" Deal with the special case of a statement spanning multiple lines. If the
" current reference line L ends with a semicolon, search backwards for
" another semicolon or a statement keyword. If the latter is found first,
" its line is used as the reference line for indenting the current line
" instead of L.
"
" Example:
"
" if cond:
" draw if a: z0 else: z1 fi
" shifted S
" scaled T; % L
"
" for i = 1 upto 3: % <-- Current line: this gets the same indent as `draw ...`
"
" NOTE: we get here only if L does not contain a statement (among those
" listed in g:mp_statement).
if s:ValidMatchEnd(prev_text, ';'.s:eol, 0) >= 0 " L ends with a semicolon
let stm_lnum = s:PrevNonBlankNonComment(lnum)
while stm_lnum > 0
let prev_text = getline(stm_lnum)
let sc_pos = s:LastValidMatchEnd(prev_text, ';', 0)
let stm_pos = s:ValidMatchEnd(prev_text, g:mp_statement, sc_pos)
if stm_pos > sc_pos
let lnum = stm_lnum
break
elseif sc_pos > stm_pos
break
endif
let stm_lnum = s:PrevNonBlankNonComment(stm_lnum)
endwhile
endif
return s:DecreaseIndentOnClosingTag(indent(lnum))
endfunction
"
" }}}
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@@ -92,11 +92,12 @@ let s:end_skip_expr = s:skip_expr .
\ ' && getline(".") =~ "^\\s*\\<\\(while\\|until\\|for\\):\\@!\\>")'
" Regex that defines continuation lines, not including (, {, or [.
let s:non_bracket_continuation_regex = '\%([\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
let s:non_bracket_continuation_regex =
\ '\%([\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|:\@<![^[:alnum:]:][|&?]\|||\|&&\)\s*\%(#.*\)\=$'
" Regex that defines continuation lines.
let s:continuation_regex =
\ '\%(%\@<![({[\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
\ '\%(%\@<![({[\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|:\@<![^[:alnum:]:][|&?]\|||\|&&\)\s*\%(#.*\)\=$'
" Regex that defines continuable keywords
let s:continuable_regex =
@@ -389,7 +390,7 @@ function! s:FindContainingClass()
call setpos('.', saved_position)
return found_lnum
endif
endif
endwhile
call setpos('.', saved_position)
return 0

View File

@@ -1,5 +1,5 @@
" Maintainer: Benjamin Linskey <vim@benlinskey.com>
" Last Changed: 2016 July 20
" Last Changed: 2016 December 5
" URL: https://github.com/blinskey/vim-armenian-keymaps
let b:keymap_name = "hy"
@@ -98,6 +98,8 @@ f ֆ
7 .
8 «
9 »
* (
( )
\\ '
| ՞

View File

@@ -1,5 +1,5 @@
" Maintainer: Benjamin Linskey <vim@benlinskey.com>
" Last Changed: 2016 July 20
" Last Changed: 2016 December 5
" URL: https://github.com/blinskey/vim-armenian-keymaps
let b:keymap_name = "hy"
@@ -98,6 +98,8 @@ f ֆ
7 .
8 «
9 »
* (
( )
\\ '
| ՞

View File

@@ -0,0 +1,102 @@
" Vim Keymap file for kazakh characters, layout 'jcuken', classical variant
" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
" Maintainer: Darkhan Kubigenov <darkhanu@gmail.com>
" Last Changed: 2016 Oct 25
" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8
let b:keymap_name = "kk"
loadkeymap
~ ) CYRILLIC CAPITAL LETTER IO
` ( CYRILLIC SMALL LETTER IO
F А CYRILLIC CAPITAL LETTER A
< Б CYRILLIC CAPITAL LETTER BE
D В CYRILLIC CAPITAL LETTER VE
U Г CYRILLIC CAPITAL LETTER GHE
L Д CYRILLIC CAPITAL LETTER DE
T Е CYRILLIC CAPITAL LETTER IE
: Ж CYRILLIC CAPITAL LETTER ZHE
P З CYRILLIC CAPITAL LETTER ZE
B И CYRILLIC CAPITAL LETTER I
Q Й CYRILLIC CAPITAL LETTER SHORT I
R К CYRILLIC CAPITAL LETTER KA
K Л CYRILLIC CAPITAL LETTER EL
V М CYRILLIC CAPITAL LETTER EM
Y Н CYRILLIC CAPITAL LETTER EN
J О CYRILLIC CAPITAL LETTER O
G П CYRILLIC CAPITAL LETTER PE
H Р CYRILLIC CAPITAL LETTER ER
C С CYRILLIC CAPITAL LETTER ES
N Т CYRILLIC CAPITAL LETTER TE
E У CYRILLIC CAPITAL LETTER U
A Ф CYRILLIC CAPITAL LETTER EF
{ Х CYRILLIC CAPITAL LETTER HA
W Ц CYRILLIC CAPITAL LETTER TSE
X Ч CYRILLIC CAPITAL LETTER CHE
I Ш CYRILLIC CAPITAL LETTER SHA
O Щ CYRILLIC CAPITAL LETTER SHCHA
} Ъ CYRILLIC CAPITAL LETTER HARD SIGN
S Ы CYRILLIC CAPITAL LETTER YERU
M Ь CYRILLIC CAPITAL LETTER SOFT SIGN
\" Э CYRILLIC CAPITAL LETTER E
> Ю CYRILLIC CAPITAL LETTER YU
Z Я CYRILLIC CAPITAL LETTER YA
f а CYRILLIC SMALL LETTER A
, б CYRILLIC SMALL LETTER BE
d в CYRILLIC SMALL LETTER VE
u г CYRILLIC SMALL LETTER GHE
l д CYRILLIC SMALL LETTER DE
t е CYRILLIC SMALL LETTER IE
; ж CYRILLIC SMALL LETTER ZHE
p з CYRILLIC SMALL LETTER ZE
b и CYRILLIC SMALL LETTER I
q й CYRILLIC SMALL LETTER SHORT I
r к CYRILLIC SMALL LETTER KA
k л CYRILLIC SMALL LETTER EL
v м CYRILLIC SMALL LETTER EM
y н CYRILLIC SMALL LETTER EN
j о CYRILLIC SMALL LETTER O
g п CYRILLIC SMALL LETTER PE
h р CYRILLIC SMALL LETTER ER
c с CYRILLIC SMALL LETTER ES
n т CYRILLIC SMALL LETTER TE
e у CYRILLIC SMALL LETTER U
a ф CYRILLIC SMALL LETTER EF
[ х CYRILLIC SMALL LETTER HA
w ц CYRILLIC SMALL LETTER TSE
x ч CYRILLIC SMALL LETTER CHE
i ш CYRILLIC SMALL LETTER SHA
o щ CYRILLIC SMALL LETTER SHCHA
] ъ CYRILLIC SMALL LETTER HARD SIGN
s ы CYRILLIC SMALL LETTER YERU
m ь CYRILLIC SMALL LETTER SOFT SIGN
' э CYRILLIC SMALL LETTER E
. ю CYRILLIC SMALL LETTER YU
z я CYRILLIC SMALL LETTER YA
@ Ә CYRILLIC CAPITAL LETTER SCHWA
# І CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
$ Ң CYRILLIC CAPITAL LETTER EN WITH DESCENDER
% Ғ CYRILLIC CAPITAL LETTER GHE WITH STROKE
^ ;
& :
* Ү CYRILLIC CAPITAL LETTER STRAIGHT U
( Ұ CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
) Қ CYRILLIC CAPITAL LETTER KA WITH DESCENDER
_ Ө CYRILLIC CAPITAL LETTER BARRED O
+ Һ CYRILLIC CAPITAL LETTER SHHA
1 "
2 ә CYRILLIC SMALL LETTER SCHWA
3 і CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
4 ң CYRILLIC SMALL LETTER EN WITH DESCENDER
5 ғ CYRILLIC SMALL LETTER GHE WITH STROKE
6 ,
7 .
8 ү CYRILLIC SMALL LETTER STRAIGHT U
9 ұ CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
0 қ CYRILLIC SMALL LETTER KA WITH DESCENDER
- ө CYRILLIC SMALL LETTER BARRED O
= һ CYRILLIC SMALL LETTER SHHA

View File

@@ -1,7 +1,7 @@
" Menu Translations: Slovenian / Slovensko
" Maintainer: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Originally By: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Last Change: Sat, 17 Jun 2006
" Last Change: 2016 Oct 17
" vim:set foldmethod=marker tabstop=8:
" TODO: add/check all '&'s
@@ -31,7 +31,7 @@ menutrans E&xit<Tab>:qa &Izhod<Tab>:qa
if has("diff")
menutrans Split\ &Diff\ with\.\.\. Primerjaj\ z\ (di&ff)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ z\ (patch)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ s\ (patch)\ \.\.\.
endif
" }}} FILE / DATOTEKA
@@ -96,12 +96,12 @@ menutrans Soft\ &Tabstop
menutrans Te&xt\ Width\.\.\. <09>irina\ besedila\ \.\.\.
menutrans &File\ Format\.\.\. Format\ &datoteke\ \.\.\.
menutrans C&olor\ Scheme &Barvna\ shema\ \.\.\.
menutrans &Keymap &Keymap
menutrans &Keymap Razporeditev\ tip&k
menutrans Select\ Fo&nt\.\.\. Pisava\ \.\.\.
" }}} EDIT / UREDI
" {{{ TOOLS / ORODJA
menutrans &Tools &Orodja
menutrans &Tools O&rodja
menutrans &Jump\ to\ this\ tag<Tab>g^] &Sko<EFBFBD>i\ k\ tej\ zna<EFBFBD>ki<Tab>g^]
menutrans Jump\ &back<Tab>^T Sko<EFBFBD>i\ Na&zaj<Tab>^T
menutrans Build\ &Tags\ File Napravi\ datoteke\ z\ zna<EFBFBD>kami\ (tag)
@@ -175,7 +175,7 @@ menutrans &Set\ Compiler Nastavi\ &prevajalnik
menutrans Se&T\ Compiler Nastavi\ &prevajalnik " bug in original translation?
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ v\ HE&X<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Pretvori\ nazaj<Tab>:%!xxd\ -r
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Povrni\ pretvo&rbo<Tab>:%!xxd\ -r
" }}} TOOLS / ORODJA
" {{{ SYNTAX / BARVANJE KODE
@@ -242,7 +242,7 @@ menutrans &About &O\ programu
" {{{ POPUP
menutrans &Undo &Razveljavi
menutrans Cu&t &Izre<EFBFBD>i
menutrans &Copy &Kopieraj
menutrans &Copy &Kopiraj
menutrans &Paste &Prilepi
menutrans &Delete &Zbri<EFBFBD>i
menutrans Select\ Blockwise Izbiraj\ po\ blokih

View File

@@ -1,7 +1,7 @@
" Menu Translations: Slovenian / Slovensko
" Maintainer: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Originally By: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Last Change: Mon, 12 Jun 2006 00:00:00 CEST
" Last Change: 2016 Oct 17
" vim:set foldmethod=marker tabstop=8:
" TODO: add/check all '&'s
@@ -31,7 +31,7 @@ menutrans E&xit<Tab>:qa &Izhod<Tab>:qa
if has("diff")
menutrans Split\ &Diff\ with\.\.\. Primerjaj\ z\ (di&ff)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ z\ (patch)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ s\ (patch)\ \.\.\.
endif
" }}} FILE / DATOTEKA
@@ -96,12 +96,12 @@ menutrans Soft\ &Tabstop
menutrans Te&xt\ Width\.\.\. <09>irina\ besedila\ \.\.\.
menutrans &File\ Format\.\.\. Format\ &datoteke\ \.\.\.
menutrans C&olor\ Scheme &Barvna\ shema\ \.\.\.
menutrans &Keymap &Keymap
menutrans &Keymap Razporeditev\ tip&k
menutrans Select\ Fo&nt\.\.\. Pisava\ \.\.\.
" }}} EDIT / UREDI
" {{{ TOOLS / ORODJA
menutrans &Tools &Orodja
menutrans &Tools O&rodja
menutrans &Jump\ to\ this\ tag<Tab>g^] &Sko<EFBFBD>i\ k\ tej\ zna<EFBFBD>ki<Tab>g^]
menutrans Jump\ &back<Tab>^T Sko<EFBFBD>i\ Na&zaj<Tab>^T
menutrans Build\ &Tags\ File Napravi\ datoteke\ z\ zna<EFBFBD>kami\ (tag)
@@ -175,7 +175,7 @@ menutrans &Set\ Compiler Nastavi\ &prevajalnik
menutrans Se&T\ Compiler Nastavi\ &prevajalnik " bug in original translation?
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ v\ HE&X<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Pretvori\ nazaj<Tab>:%!xxd\ -r
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Povrni\ pretvo&rbo<Tab>:%!xxd\ -r
" }}} TOOLS / ORODJA
" {{{ SYNTAX / BARVANJE KODE
@@ -242,7 +242,7 @@ menutrans &About &O\ programu
" {{{ POPUP
menutrans &Undo &Razveljavi
menutrans Cu&t &Izre<EFBFBD>i
menutrans &Copy &Kopieraj
menutrans &Copy &Kopiraj
menutrans &Paste &Prilepi
menutrans &Delete &Zbri<EFBFBD>i
menutrans Select\ Blockwise Izbiraj\ po\ blokih

View File

@@ -1,7 +1,7 @@
" Menu Translations: Slovenian / Slovensko
" Maintainer: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Originally By: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
" Last Change: Sat, 17 Jun 2006
" Last Change: 2016 Oct 17
" vim:set foldmethod=marker tabstop=8:
" TODO: add/check all '&'s
@@ -31,7 +31,7 @@ menutrans E&xit<Tab>:qa &Izhod<Tab>:qa
if has("diff")
menutrans Split\ &Diff\ with\.\.\. Primerjaj\ z\ (di&ff)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ z\ (patch)\ \.\.\.
menutrans Split\ Patched\ &By\.\.\. &Popravi\ s\ (patch)\ \.\.\.
endif
" }}} FILE / DATOTEKA
@@ -96,12 +96,12 @@ menutrans Soft\ &Tabstop Širina\ &tabulatorja
menutrans Te&xt\ Width\.\.\. Širina\ besedila\ \.\.\.
menutrans &File\ Format\.\.\. Format\ &datoteke\ \.\.\.
menutrans C&olor\ Scheme &Barvna\ shema\ \.\.\.
menutrans &Keymap &Keymap
menutrans &Keymap Razporeditev\ tip&k
menutrans Select\ Fo&nt\.\.\. Pisava\ \.\.\.
" }}} EDIT / UREDI
" {{{ TOOLS / ORODJA
menutrans &Tools &Orodja
menutrans &Tools O&rodja
menutrans &Jump\ to\ this\ tag<Tab>g^] &Skoči\ k\ tej\ znački<Tab>g^]
menutrans Jump\ &back<Tab>^T Skoči\ Na&zaj<Tab>^T
menutrans Build\ &Tags\ File Napravi\ datoteke\ z\ značkami\ (tag)
@@ -175,7 +175,7 @@ menutrans &Set\ Compiler Nastavi\ &prevajalnik
menutrans Se&T\ Compiler Nastavi\ &prevajalnik " bug in original translation?
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ v\ HE&X<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Pretvori\ nazaj<Tab>:%!xxd\ -r
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Povrni\ pretvo&rbo<Tab>:%!xxd\ -r
" }}} TOOLS / ORODJA
" {{{ SYNTAX / BARVANJE KODE
@@ -242,7 +242,7 @@ menutrans &About &O\ programu
" {{{ POPUP
menutrans &Undo &Razveljavi
menutrans Cu&t &Izreži
menutrans &Copy &Kopieraj
menutrans &Copy &Kopiraj
menutrans &Paste &Prilepi
menutrans &Delete &Zbriši
menutrans Select\ Blockwise Izbiraj\ po\ blokih

View File

@@ -1,6 +1,6 @@
" Vim plugin for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2010 Mar 10
" Last Change: 2016 Oct 30
" Exit quickly when:
" - this plugin was already loaded
@@ -20,25 +20,33 @@ augroup gzip
"
" Set binary mode before reading the file.
" Use "gzip -d", gunzip isn't always available.
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz setlocal bin
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz,*.lz,*.zst setlocal bin
autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d")
autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress")
autocmd BufReadPost,FileReadPost *.lzma call gzip#read("lzma -d")
autocmd BufReadPost,FileReadPost *.xz call gzip#read("xz -d")
autocmd BufReadPost,FileReadPost *.lz call gzip#read("lzip -d")
autocmd BufReadPost,FileReadPost *.zst call gzip#read("zstd -d --rm")
autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2")
autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f")
autocmd BufWritePost,FileWritePost *.lzma call gzip#write("lzma -z")
autocmd BufWritePost,FileWritePost *.xz call gzip#write("xz -z")
autocmd BufWritePost,FileWritePost *.lz call gzip#write("lzip")
autocmd BufWritePost,FileWritePost *.zst call gzip#write("zstd --rm")
autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d")
autocmd FileAppendPre *.Z call gzip#appre("uncompress")
autocmd FileAppendPre *.lzma call gzip#appre("lzma -d")
autocmd FileAppendPre *.xz call gzip#appre("xz -d")
autocmd FileAppendPre *.lz call gzip#appre("lzip -d")
autocmd FileAppendPre *.zst call gzip#appre("zstd -d --rm")
autocmd FileAppendPost *.gz call gzip#write("gzip")
autocmd FileAppendPost *.bz2 call gzip#write("bzip2")
autocmd FileAppendPost *.Z call gzip#write("compress -f")
autocmd FileAppendPost *.lzma call gzip#write("lzma -z")
autocmd FileAppendPost *.xz call gzip#write("xz -z")
autocmd FileAppendPost *.lz call gzip#write("lzip")
autocmd FileAppendPost *.zst call gzip#write("zstd --rm")
augroup END

View File

@@ -1,9 +1,9 @@
" zipPlugin.vim: Handles browsing zipfiles
" PLUGIN PORTION
" Date: Jun 07, 2013
" Date: Sep 13, 2016
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1
" Copyright: Copyright (C) 2005-2016 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@@ -20,14 +20,14 @@
if &cp || exists("g:loaded_zipPlugin")
finish
endif
let g:loaded_zipPlugin = "v27"
let g:loaded_zipPlugin = "v28"
let s:keepcpo = &cpo
set cpo&vim
" ---------------------------------------------------------------------
" Options: {{{1
if !exists("g:zipPlugin_ext")
let g:zipPlugin_ext= '*.zip,*.jar,*.xpi,*.ja,*.war,*.ear,*.celzip,*.oxt,*.kmz,*.wsz,*.xap,*.docx,*.docm,*.dotx,*.dotm,*.potx,*.potm,*.ppsx,*.ppsm,*.pptx,*.pptm,*.ppam,*.sldx,*.thmx,*.xlam,*.xlsx,*.xlsm,*.xlsb,*.xltx,*.xltm,*.xlam,*.crtx,*.vdw,*.glox,*.gcsx,*.gqsx'
let g:zipPlugin_ext='*.apk,*.celzip,*.crtx,*.docm,*.docx,*.dotm,*.dotx,*.ear,*.epub,*.gcsx,*.glox,*.gqsx,*.ja,*.jar,*.kmz,*.oxt,*.potm,*.potx,*.ppam,*.ppsm,*.ppsx,*.pptm,*.pptx,*.sldx,*.thmx,*.vdw,*.war,*.wsz,*.xap,*.xlam,*.xlam,*.xlsb,*.xlsm,*.xlsx,*.xltm,*.xltx,*.xpi,*.zip'
endif
" ---------------------------------------------------------------------

View File

@@ -34,7 +34,7 @@ syn match aveNumber "[+-]\=\<[0-9]\+\>"
" Operator
syn keyword aveOperator or and max min xor mod by
" 'not' is a kind of a problem: Its an Operator as well as a method
" 'not' is a kind of a problem: It's an Operator as well as a method
" 'not' is only marked as an Operator if not applied as method
syn match aveOperator "[^\.]not[^a-zA-Z]"

View File

@@ -2,14 +2,12 @@
" Language: AVR Assembler (AVRA)
" AVRA Home: http://avra.sourceforge.net/index.html
" AVRA Version: 1.3.0
" Last Update: 2016 Oct 7
" Maintainer: Marius Ghita <mhitza@gmail.com>
let s:cpo_save = &cpo
set cpo&vim
setlocal iskeyword=a-z,A-Z,48-57,.,_
" 'isident' is a global option, better not set it
" setlocal isident=a-z,A-Z,48-57,.,_
syn case ignore
syn keyword avraRegister r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Jul 07
" Last Change: 2016 Nov 18
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -358,11 +358,11 @@ if !exists("c_no_c99") " ISO C99
endif
" Accept %: for # (C99)
syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
syn match cPreConditMatch display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
syn region cPreCondit start="^\s*\zs\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
syn match cPreConditMatch display "^\s*\zs\(%:\|#\)\s*\(else\|endif\)\>"
if !exists("c_no_if0")
syn cluster cCppOutInGroup contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip
syn region cCppOutWrapper start="^\s*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold
syn region cCppOutWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold
syn region cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
if !exists("c_no_if0_fold")
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold
@@ -370,7 +370,7 @@ if !exists("c_no_if0")
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
endif
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
syn region cCppInWrapper start="^\s*\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
syn region cCppInWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
syn region cCppInIf contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\(%:\|#\)\s*endif\>" contains=TOP,cPreCondit
if !exists("c_no_if0_fold")
syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
@@ -383,11 +383,11 @@ if !exists("c_no_if0")
endif
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match cIncluded display contained "<[^>]*>"
syn match cInclude display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
syn match cInclude display "^\s*\zs\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
"syn match cLineSkip "\\$"
syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti,cBadBlock
syn region cDefine start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
syn region cPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
" Highlight User Labels
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
@@ -396,21 +396,21 @@ if s:ft ==# 'c' || exists("cpp_no_cpp11")
endif
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
syn cluster cLabelGroup contains=cUserLabel
syn match cUserCont display "^\s*\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display ";\s*\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display "^\s*\zs\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display ";\s*\zs\I\i*\s*:$" contains=@cLabelGroup
if s:ft ==# 'cpp'
syn match cUserCont display "^\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display "^\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
else
syn match cUserCont display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display "^\s*\zs\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\zs\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
endif
syn match cUserLabel display "\I\i*" contained
" Avoid recognizing most bitfields as labels
syn match cBitField display "^\s*\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
syn match cBitField display ";\s*\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
syn match cBitField display "^\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
syn match cBitField display ";\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
if exists("c_minlines")
let b:c_minlines = c_minlines

Binary file not shown.

View File

@@ -1,7 +1,8 @@
" Vim syntax file
" Language: ConTeXt typesetting engine
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-08-10
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016 Oct 16
if exists("b:current_syntax")
finish
@@ -13,65 +14,93 @@ unlet b:current_syntax
let s:cpo_save = &cpo
set cpo&vim
if !exists('g:context_include')
let g:context_include = ['mp', 'javascript', 'xml']
" Dictionary of (filetype, group) pairs to highlight between \startGROUP \stopGROUP.
let s:context_include = get(b:, 'context_include', get(g:, 'context_include', {'xml': 'XML'}))
" For backward compatibility (g:context_include used to be a List)
if type(s:context_include) ==# type([])
let g:context_metapost = (index(s:context_include, 'mp') != -1)
let s:context_include = filter(
\ {'c': 'C', 'javascript': 'JS', 'ruby': 'Ruby', 'xml': 'XML'},
\ { k,_ -> index(s:context_include, k) != -1 }
\ )
endif
syn iskeyword @,48-57,a-z,A-Z,192-255
syn spell toplevel
syn match contextBlockDelim display '\\\%(start\|stop\)\a\+'
\ contains=@NoSpell
" ConTeXt options, i.e., [...] blocks
syn region contextOptions matchgroup=contextDelimiter start='\[' end=']\|\ze\\stop' skip='\\\[\|\\\]' contains=ALLBUT,contextBeginEndLua,@Spell
syn region contextEscaped display matchgroup=contextPreProc
\ start='\\type\z(\A\)' end='\z1'
syn region contextEscaped display matchgroup=contextPreProc
\ start='\\type\={' end='}'
syn region contextEscaped display matchgroup=contextPreProc
\ start='\\type\=<<' end='>>'
" Highlight braces
syn match contextDelimiter '[{}]'
" Comments
syn match contextComment '\\\@<!\%(\\\\\)*\zs%.*$' display contains=initexTodo
syn match contextComment '^\s*%[CDM].*$' display contains=initexTodo
syn match contextBlockDelim '\\\%(start\|stop\)\a\+' contains=@NoSpell
syn region contextEscaped matchgroup=contextPreProc start='\\type\%(\s*\|\n\)*\z([^A-Za-z%]\)' end='\z1'
syn region contextEscaped matchgroup=contextPreProc start='\\type\=\%(\s\|\n\)*{' end='}'
syn region contextEscaped matchgroup=contextPreProc start='\\type\=\%(\s*\|\n\)*<<' end='>>'
syn region contextEscaped matchgroup=contextPreProc
\ start='\\start\z(\a*\%(typing\|typen\)\)'
\ end='\\stop\z1' contains=plaintexComment keepend
syn region contextEscaped display matchgroup=contextPreProc
\ start='\\\h\+Type{' end='}'
syn region contextEscaped display matchgroup=contextPreProc
\ start='\\Typed\h\+{' end='}'
syn region contextEscaped matchgroup=contextPreProc start='\\\h\+Type\%(\s\|\n\)*{' end='}'
syn region contextEscaped matchgroup=contextPreProc start='\\Typed\h\+\%(\s\|\n\)*{' end='}'
syn match contextBuiltin display contains=@NoSpell
\ '\\\%(unprotect\|protect\|unexpanded\)'
\ '\\\%(unprotect\|protect\|unexpanded\)\>'
syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\).*$'
syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\)\>'
\ contains=@NoSpell
if index(g:context_include, 'mp') != -1
if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
let b:mp_metafun_macros = 1 " Highlight MetaFun keywords
syn include @mpTop syntax/mp.vim
unlet b:current_syntax
syn region contextMPGraphic transparent matchgroup=contextBlockDelim
\ start='\\start\z(\a*MPgraphic\|MP\%(page\|inclusions\|run\)\).*'
syn region contextMPGraphic matchgroup=contextBlockDelim
\ start='\\start\z(MP\%(clip\|code\|definitions\|drawing\|environment\|extensions\|inclusions\|initializations\|page\|\)\)\>.*$'
\ end='\\stop\z1'
\ contains=@mpTop
\ contains=@mpTop,@NoSpell
syn region contextMPGraphic matchgroup=contextBlockDelim
\ start='\\start\z(\%(\%[re]usable\|use\|unique\|static\)MPgraphic\|staticMPfigure\|uniqueMPpagegraphic\)\>.*$'
\ end='\\stop\z1'
\ contains=@mpTop,@NoSpell
endif
" TODO: also need to implement this for \\typeC or something along those
" lines.
function! s:include_syntax(name, group)
if index(g:context_include, a:name) != -1
execute 'syn include @' . a:name . 'Top' 'syntax/' . a:name . '.vim'
unlet b:current_syntax
execute 'syn region context' . a:group . 'Code'
\ 'transparent matchgroup=contextBlockDelim'
\ 'start=+\\start' . a:group . '+ end=+\\stop' . a:group . '+'
\ 'contains=@' . a:name . 'Top'
endif
endfunction
if get(b:, 'context_lua', get(g:, 'context_lua', 1))
syn include @luaTop syntax/lua.vim
unlet b:current_syntax
call s:include_syntax('c', 'C')
call s:include_syntax('ruby', 'Ruby')
call s:include_syntax('javascript', 'JS')
call s:include_syntax('xml', 'XML')
syn region contextLuaCode matchgroup=contextBlockDelim
\ start='\\startluacode\>'
\ end='\\stopluacode\>' keepend
\ contains=@luaTop,@NoSpell
syn match contextSectioning '\\chapter\>' contains=@NoSpell
syn match contextSectioning '\\\%(sub\)*section\>' contains=@NoSpell
syn match contextDirectLua "\\\%(directlua\|ctxlua\)\>\%(\s*%.*$\)\="
\ nextgroup=contextBeginEndLua skipwhite skipempty
\ contains=initexComment
syn region contextBeginEndLua matchgroup=contextSpecial
\ start="{" end="}" skip="\\[{}]"
\ contained contains=@luaTop,@NoSpell
endif
for synname in keys(s:context_include)
execute 'syn include @' . synname . 'Top' 'syntax/' . synname . '.vim'
unlet b:current_syntax
execute 'syn region context' . s:context_include[synname] . 'Code'
\ 'matchgroup=contextBlockDelim'
\ 'start=+\\start' . s:context_include[synname] . '+'
\ 'end=+\\stop' . s:context_include[synname] . '+'
\ 'contains=@' . synname . 'Top,@NoSpell'
endfor
syn match contextSectioning '\\\%(start\|stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>'
\ contains=@NoSpell
syn match contextSpecial '\\crlf\>\|\\par\>\|-\{2,3}\||[<>/]\=|'
\ contains=@NoSpell
@@ -92,15 +121,19 @@ syn match contextFont '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
syn match contextFont '\\\%(tf\|b[si]\|s[cl]\|os\)\%(xx\|[xabcd]\)\=\>'
\ contains=@NoSpell
hi def link contextOptions Typedef
hi def link contextComment Comment
hi def link contextBlockDelim Keyword
hi def link contextBuiltin Keyword
hi def link contextDelimiter Delimiter
hi def link contextEscaped String
hi def link contextPreProc PreProc
hi def link contextSectioning PreProc
hi def link contextSpecial Special
hi def link contextType Type
hi def link contextStyle contextType
hi def link contextFont contextType
hi def link contextDirectLua Keyword
let b:current_syntax = "context"

View File

@@ -2,7 +2,7 @@
" Language: C++
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
" Last Change: 2016 Jul 07
" Last Change: 2016 Oct 28
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -31,7 +31,7 @@ syn keyword cppConstant __cplusplus
" C++ 11 extensions
if !exists("cpp_no_cpp11")
syn keyword cppModifier override final
syn keyword cppType nullptr_t
syn keyword cppType nullptr_t auto
syn keyword cppExceptions noexcept
syn keyword cppStorageClass constexpr decltype thread_local
syn keyword cppConstant nullptr
@@ -46,7 +46,11 @@ endif
" C++ 14 extensions
if !exists("cpp_no_cpp14")
syn match cppNumber display "\<0b[01]\+\(u\=l\{0,2}\|ll\=u\)\>"
syn case ignore
syn match cppNumber display "\<0b[01]\('\=[01]\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
syn match cppNumber display "\<[1-9]\('\=\d\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
syn match cppNumber display "\<0x\x\('\=\x\+\)*\(u\=l\{0,2}\|ll\=u\)\>"
syn case match
endif
" The minimum and maximum operators in GNU C++

View File

@@ -6,7 +6,8 @@
" Nikolai Weibull (Add CSS2 support)
" Maintainer: Jules Wang <w.jq0722@gmail.com>
" URL: https://github.com/JulesWang/css.vim
" Last Change: 2015 Apr.17
" Last Change: 2017 Jan 14
" cssClassName updated by Ryuichi Hayashida Jan 2016
" quit when a syntax file was already loaded
if !exists("main_syntax")
@@ -56,7 +57,7 @@ syn match cssSelectorOp2 "[~|^$*]\?=" contained
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_-]\+" contains=cssClassNameDot
syn match cssClassName "\.-\=[A-Za-z_][A-Za-z0-9_-]*" contains=cssClassNameDot
syn match cssClassNameDot contained '\.'
try

View File

@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2016 Aug 30
" Last Change: 2016 Nov 12
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim
" Standard syntax initialization
@@ -21,7 +21,7 @@ let binNMU='binary-only=yes'
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
exe 'syn match debchangelogFirstKV contained "; \('.urgency.'\|'.binNMU.'\)"'
exe 'syn match debchangelogOtherKV contained ", \('.urgency.'\|'.binNMU.'\)"'
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|precise|trusty|vivid|wily|xenial|yakkety)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogVersion contained "(.\{-})"
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"

View File

@@ -38,7 +38,7 @@ unlet s:kernels s:archs s:pairs
syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)"
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|javascript|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
syn match debcontrolPackageType contained "u\?deb"
syn match debcontrolVariable contained "\${.\{-}}"
syn match debcontrolDmUpload contained "\cyes"

View File

@@ -2,7 +2,7 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2016 Aug 30
" Last Change: 2016 Nov 12
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim
" Standard syntax initialization
@@ -25,7 +25,7 @@ let s:supported = [
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
\ 'squeeze', 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
\
\ 'precise', 'trusty', 'xenial', 'yakkety', 'devel'
\ 'precise', 'trusty', 'xenial', 'yakkety', 'zesty', 'devel'
\ ]
let s:unsupported = [
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
@@ -39,7 +39,7 @@ let s:unsupported = [
let &cpo=s:cpo
" Match uri's
syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
syn match debsourcesUri +\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
exe 'syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\('. join(s:supported, '\|'). '\)\([-[:alnum:]_./]*\)+'
exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\('. join(s:unsupported, '\|') .'\)\([-[:alnum:]_./]*\)+'

View File

@@ -1,17 +1,17 @@
" Vim syntax file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version: 0.98
" Last Change: 2016 Aug. 29
" Version: 100
" Last Change: 2016 Oct. 29
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-syntax from Vim
" Credits:
" Version 0.1 (April 2000) was based on the fortran 77 syntax file by Mario Eusebio and
" Preben Guldberg. Since then, useful suggestions and contributions have been made,
" in chronological order, by:
" Version 0.1 (April 2000) for Fortran 95 was based on the Fortran 77 syntax file by
" Mario Eusebio and Preben Guldberg. Since then, useful suggestions and contributions
" have been made, in chronological order, by:
" Andrej Panjkov, Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile,
" Walter Dieudonn<6E>, Alexander Wagner, Roman Bertle, Charles Rendleman,
" Andrew Griffiths, Joe Krahn, Hendrik Merx, Matt Thompson, Jan Hermann,
" Stefano Zaghi and Vishnu V. Krishnan.
" Stefano Zaghi, Vishnu V. Krishnan and Judica<63>l Grasset
if exists("b:current_syntax")
finish
@@ -368,7 +368,7 @@ else
endif
syn match fortranComment excludenl "!.*$" contains=@fortranCommentGroup,@spell
syn match fortranOpenMP excludenl "^\s*!\$\(OMP\)\=\s.*$"
syn match fortranOpenMP excludenl "^\s*!\$\(OMP\)\=&\=\s.*$"
"cpp is often used with Fortran
syn match cPreProc "^\s*#\s*\(define\|ifdef\)\>.*"
@@ -397,6 +397,7 @@ if exists("fortran_fold")
syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
syn region fortranAssociate transparent fold keepend start="^\s*\<associate\s\+" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction
syn region fortranInterface transparent fold keepend extend start="^\s*\(abstract \)\=\s*interface\>" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\|abstract\)\)\=\s*::" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock,fortranInterface
else
@@ -406,6 +407,7 @@ if exists("fortran_fold")
syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
syn region fortranAssociate transparent fold keepend start="^\s*\<associate\s\+" skip="^\s*[!#].*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction
syn region fortranInterface transparent fold keepend extend start="^\s*\(abstract \)\=\s*interface\>" skip="^\s*[!#].*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\|abstract\)\)\=\s*::" skip="^\s*[!#].*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock,fortranInterface
endif
@@ -415,12 +417,12 @@ if exists("fortran_fold")
syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(.\+)\s*then\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranCase transparent fold keepend extend start="\<select\s*case\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranCase transparent fold keepend extend start="\<select\s*\(case\|type\)\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
else
syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\s*[!#].*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(\(.\|&\s*\n\)\+)\(\s\|&\s*\n\)*then\>" skip="^\s*[!#].*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranCase transparent fold keepend extend start="\<select\s*case\>" skip="^\s*[!#].*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
syn region fortranCase transparent fold keepend extend start="\<select\s*\(case\|type\)\>" skip="^\s*[!#].*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
endif
endif

View File

@@ -1,9 +1,10 @@
" Vim syntax file
" Language: HTML
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/html.vim
" Last Change: 2015 Jan 07
" included patch from David Felix
" Language: HTML
" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
" Repository: https://notabug.org/jorgesumle/vim-html-syntax
" Last Change: 2017 Jan 04
" included patch from Jorge Maldonado Ventura
" Please check :help html.vim for some comments and a description of the options
@@ -53,6 +54,14 @@ syn keyword htmlTagName contained abbr acronym bdo button col label
syn keyword htmlTagName contained colgroup del fieldset iframe ins legend
syn keyword htmlTagName contained object optgroup q s tbody tfoot thead
" new html 5 tags
syn keyword htmlTagName contained article aside audio bdi canvas datalist
syn keyword htmlTagName contained details embed figcaption figure
syn keyword htmlTagName contained footer header hgroup main mark
syn keyword htmlTagName contained menuitem meter nav output picture
syn keyword htmlTagName contained progress rb rp rt rtc ruby section
syn keyword htmlTagName contained slot source template time track video wbr
" legal arg names
syn keyword htmlArg contained action
syn keyword htmlArg contained align alink alt archive background bgcolor
@@ -87,6 +96,10 @@ syn keyword htmlArg contained multiple nohref nowrap object profile readonly
syn keyword htmlArg contained rules scheme scope span standby style
syn keyword htmlArg contained summary tabindex valuetype version
" html 5 arg names
syn keyword htmlArg contained contenteditable contextmenu draggable dropzone
syn keyword htmlArg contained hidden spellcheck title translate
" special characters
syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};"

View File

@@ -1,184 +1,295 @@
" Vim syntax file
" Language: Metafont
" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
" Last Change: April 25, 2001
" Language: METAFONT
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com>
" Last Change: 2016 Oct 1
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Metafont 'primitives' as defined in chapter 25 of 'The METAFONTbook'
syn iskeyword @,_
" METAFONT 'primitives' as defined in chapter 25 of 'The METAFONTbook'
" Page 210: 'boolean expressions'
syn keyword mfBoolExp true false known unknown odd charexists not and or
syn keyword mfBoolExp and charexists false known not odd or true unknown
" Page 210: 'numeric expression'
syn keyword mfNumExp normaldeviate length ASCII oct hex angle turningnumber
syn keyword mfNumExp totalweight directiontime xpart ypart xxpart xypart
syn keyword mfNumExp yxpart yypart sqrt sind cosd mlog mexp floor
syn keyword mfNumExp uniformdeviate
syn keyword mfNumExp ASCII angle cosd directiontime floor hex length
syn keyword mfNumExp mexp mlog normaldeviate oct sind sqrt totalweight
syn keyword mfNumExp turningnumber uniformdeviate xpart xxpart xypart
syn keyword mfNumExp ypart yxpart yypart
" Page 211: 'internal quantities'
syn keyword mfInternal tracingtitles tracingequations tracingcapsules
syn keyword mfInternal tracingchoices tracingspecs tracingpens
syn keyword mfInternal tracingcommands tracingrestores tracingmacros
syn keyword mfInternal tracingedges tracingoutput tracingonline tracingstats
syn keyword mfInternal pausing showstopping fontmaking proofing
syn keyword mfInternal turningcheck warningcheck smoothing autorounding
syn keyword mfInternal granularity fillin year month day time
syn keyword mfInternal charcode charext charwd charht chardp charic
syn keyword mfInternal chardx chardy designsize hppp vppp xoffset yoffset
syn keyword mfInternal boundarychar
syn keyword mfInternal autorounding boundarychar charcode chardp chardx
syn keyword mfInternal chardy charext charht charic charwd day designsize
syn keyword mfInternal fillin fontmaking granularity hppp jobname month
syn keyword mfInternal pausing proofing showstopping smoothing time
syn keyword mfInternal tracingcapsules tracingchoices tracingcommands
syn keyword mfInternal tracingedges tracingequations tracingmacros
syn keyword mfInternal tracingonline tracingoutput tracingpens
syn keyword mfInternal tracingrestores tracingspecs tracingstats
syn keyword mfInternal tracingtitles turningcheck vppp warningcheck
syn keyword mfInternal xoffset year yoffset
" Page 212: 'pair expressions'
syn keyword mfPairExp point of precontrol postcontrol penoffset rotated
syn keyword mfPairExp scaled shifted slanted transformed xscaled yscaled
syn keyword mfPairExp zscaled
syn keyword mfPairExp of penoffset point postcontrol precontrol rotated
syn keyword mfPairExp scaled shifted slanted transformed xscaled yscaled
syn keyword mfPairExp zscaled
" Page 213: 'path expressions'
syn keyword mfPathExp makepath reverse subpath curl tension atleast
syn keyword mfPathExp controls cycle
syn keyword mfPathExp atleast controls curl cycle makepath reverse
syn keyword mfPathExp subpath tension
" Page 214: 'pen expressions'
syn keyword mfPenExp nullpen pencircle makepen
syn keyword mfPenExp makepen nullpen pencircle
" Page 214: 'picutre expressions'
syn keyword mfPicExp nullpicture
" Page 214: 'picture expressions'
syn keyword mfPicExp nullpicture
" Page 214: 'string expressions'
syn keyword mfStringExp jobname readstring str char decimal substring
syn keyword mfStringExp char decimal readstring str substring
" Page 217: 'commands and statements'
syn keyword mfCommand end dump save interim newinternal randomseed let
syn keyword mfCommand delimiters outer everyjob show showvariable showtoken
syn keyword mfCommand showdependencies showstats message errmessage errhelp
syn keyword mfCommand batchmode nonstopmode scrollmode errorstopmode
syn keyword mfCommand addto also contour doublepath withpen withweight cull
syn keyword mfCommand keeping dropping display inwindow openwindow at from to
syn keyword mfCommand shipout special numspecial
syn keyword mfCommand addto also at batchmode contour cull delimiters
syn keyword mfCommand display doublepath dropping dump end errhelp
syn keyword mfCommand errmessage errorstopmode everyjob from interim
syn keyword mfCommand inwindow keeping let message newinternal
syn keyword mfCommand nonstopmode numspecial openwindow outer randomseed
syn keyword mfCommand save scrollmode shipout show showdependencies
syn keyword mfCommand showstats showtoken showvariable special to withpen
syn keyword mfCommand withweight
" Page 56: 'types'
syn keyword mfType boolean numeric pair path pen picture string transform
syn keyword mfType boolean numeric pair path pen picture string
syn keyword mfType transform
" Page 155: 'grouping'
syn keyword mfStatement begingroup endgroup
syn keyword mfStatement begingroup endgroup
" Page 165: 'definitions'
syn keyword mfDefinition enddef def expr suffix text primary secondary
syn keyword mfDefinition tertiary vardef primarydef secondarydef tertiarydef
syn keyword mfDefinition def enddef expr primary primarydef secondary
syn keyword mfDefinition secondarydef suffix tertiary tertiarydef text
syn keyword mfDefinition vardef
" Page 169: 'conditions and loops'
syn keyword mfCondition if fi else elseif endfor for forsuffixes forever
syn keyword mfCondition step until exitif
syn keyword mfCondition else elseif endfor exitif fi for forever
syn keyword mfCondition forsuffixes if step until
" Other primitives listed in the index
syn keyword mfPrimitive charlist endinput expandafter extensible
syn keyword mfPrimitive fontdimen headerbyte inner input intersectiontimes
syn keyword mfPrimitive kern ligtable quote scantokens skipto
syn keyword mfPrimitive charlist endinput expandafter extensible fontdimen
syn keyword mfPrimitive headerbyte inner input intersectiontimes kern
syn keyword mfPrimitive ligtable quote scantokens skipto
" Implicit suffix parameters
syn match mfSuffixParam "@#\|#@\|@"
" These are just tags, but given their special status, we
" highlight them as variables
syn keyword mfVariable x y
" Keywords defined by plain.mf (defined on pp.262-278)
if !exists("plain_mf_macros")
let plain_mf_macros = 1 " Set this to '0' if your source gets too colourful
" metapost.vim does so to turn off Metafont macros
if get(g:, "plain_mf_macros", 1)
syn keyword mfDef addto_currentpicture beginchar capsule_def
syn keyword mfDef change_width clear_pen_memory clearit clearpen
syn keyword mfDef clearxy culldraw cullit cutdraw
syn keyword mfDef define_blacker_pixels define_corrected_pixels
syn keyword mfDef define_good_x_pixels define_good_y_pixels
syn keyword mfDef define_horizontal_corrected_pixels define_pixels
syn keyword mfDef define_whole_blacker_pixels define_whole_pixels
syn keyword mfDef define_whole_vertical_blacker_pixels
syn keyword mfDef define_whole_vertical_pixels downto draw drawdot
syn keyword mfDef endchar erase exitunless fill filldraw fix_units
syn keyword mfDef flex font_coding_scheme font_extra_space
syn keyword mfDef font_identifier font_normal_shrink
syn keyword mfDef font_normal_space font_normal_stretch font_quad
syn keyword mfDef font_size font_slant font_x_height gfcorners gobble
syn keyword mfDef hide imagerules interact italcorr killtext
syn keyword mfDef loggingall lowres_fix makebox makegrid maketicks
syn keyword mfDef mode_def mode_setup nodisplays notransforms numtok
syn keyword mfDef openit penrazor pensquare penstroke pickup
syn keyword mfDef proofoffset proofrule range reflectedabout
syn keyword mfDef rotatedaround screenchars screenrule screenstrokes
syn keyword mfDef shipit showit smode stop superellipse takepower
syn keyword mfDef tracingall tracingnone undraw undrawdot unfill
syn keyword mfDef unfilldraw upto z
syn match mfDef "???"
syn keyword mfVardef bot byte ceiling counterclockwise cutoff decr dir
syn keyword mfVardef direction directionpoint grayfont hround incr
syn keyword mfVardef interpath inverse labelfont labels lft magstep
" Note: nodot is not a vardef, it is used as in makelabel.lft.nodot("5",z5)
" (METAFONT only)
syn keyword mfVardef makelabel max min nodot penlabels penpos
syn keyword mfVardef proofrulethickness round rt savepen slantfont solve
syn keyword mfVardef tensepath titlefont top unitvector vround whatever
syn match mpVardef "\<good\.\%(x\|y\|lft\|rt\|top\|bot\)\>"
syn keyword mfPrimaryDef div dotprod gobbled mod
syn keyword mfSecondaryDef intersectionpoint
syn keyword mfTertiaryDef softjoin thru
syn keyword mfNewInternal blacker currentwindow displaying eps epsilon
syn keyword mfNewInternal infinity join_radius number_of_modes o_correction
syn keyword mfNewInternal pen_bot pen_lft pen_rt pen_top pixels_per_inch
syn keyword mfNewInternal screen_cols screen_rows tolerance
" Predefined constants
syn keyword mfConstant base_name base_version blankpicture ditto down
syn keyword mfConstant fullcircle halfcircle identity left lowres origin
syn keyword mfConstant penspeck proof quartercircle right rulepen smoke
syn keyword mfConstant unitpixel unitsquare up
" Other predefined variables
syn keyword mfVariable aspect_ratio currentpen extra_beginchar
syn keyword mfVariable extra_endchar currentpen_path currentpicture
syn keyword mfVariable currenttransform d extra_setup h localfont mag mode
syn keyword mfVariable mode_name w
" let statements:
syn keyword mfnumExp abs
syn keyword mfPairExp rotatedabout
syn keyword mfCommand bye relax
endif
if plain_mf_macros
syn keyword mfMacro abs addto_currentpicture aspect_ratio base_name
syn keyword mfMacro base_version beginchar blacker blankpicture bot bye byte
syn keyword mfMacro capsule_def ceiling change_width clear_pen_memory clearit
syn keyword mfMacro clearpen clearxy counterclockwise culldraw cullit
syn keyword mfMacro currentpen currentpen_path currentpicture
syn keyword mfMacro currenttransform currentwindow cutdraw cutoff d decr
syn keyword mfMacro define_blacker_pixels define_corrected_pixels
syn keyword mfMacro define_good_x_pixels define_good_y_pixels
syn keyword mfMacro define_horizontal_corrected_pixels define_pixels
syn keyword mfMacro define_whole_blacker_pixels define_whole_pixels
syn keyword mfMacro define_whole_vertical_blacker_pixels
syn keyword mfMacro define_whole_vertical_pixels dir direction directionpoint
syn keyword mfMacro displaying ditto div dotprod down downto draw drawdot
syn keyword mfMacro endchar eps epsilon extra_beginchar extra_endchar
syn keyword mfMacro extra_setup erase exitunless fill filldraw fix_units flex
syn keyword mfMacro font_coding_scheme font_extra_space font_identifier
syn keyword mfMacro font_normal_shrink font_normal_space font_normal_stretch
syn keyword mfMacro font_quad font_setup font_size font_slant font_x_height
syn keyword mfMacro fullcircle generate gfcorners gobble gobbled grayfont h
syn keyword mfMacro halfcircle hide hround identity image_rules incr infinity
syn keyword mfMacro interact interpath intersectionpoint inverse italcorr
syn keyword mfMacro join_radius killtext labelfont labels left lft localfont
syn keyword mfMacro loggingall lowres lowres_fix mag magstep makebox makegrid
syn keyword mfMacro makelabel maketicks max min mod mode mode_def mode_name
syn keyword mfMacro mode_setup nodisplays notransforms number_of_modes numtok
syn keyword mfMacro o_correction openit origin pen_bot pen_lft pen_rt pen_top
syn keyword mfMacro penlabels penpos penrazor penspeck pensquare penstroke
syn keyword mfMacro pickup pixels_per_inch proof proofoffset proofrule
syn keyword mfMacro proofrulethickness quartercircle range reflectedabout
syn keyword mfMacro relax right rotatedabout rotatedaround round rt rulepen
syn keyword mfMacro savepen screenchars screen_rows screen_cols screenrule
syn keyword mfMacro screenstrokes shipit showit slantfont smode smoke softjoin
syn keyword mfMacro solve stop superellipse takepower tensepath titlefont
syn keyword mfMacro tolerance top tracingall tracingnone undraw undrawdot
syn keyword mfMacro unfill unfilldraw unitpixel unitsquare unitvector up upto
syn keyword mfMacro vround w whatever
" By default, METAFONT loads modes.mf, too
if get(g:, "plain_mf_modes", 1)
syn keyword mfConstant APSSixMed AgfaFourZeroZero AgfaThreeFourZeroZero
syn keyword mfConstant AtariNineFive AtariNineSix AtariSLMEightZeroFour
syn keyword mfConstant AtariSMOneTwoFour CItohEightFiveOneZero
syn keyword mfConstant CItohThreeOneZero CanonBJCSixZeroZero CanonCX
syn keyword mfConstant CanonEX CanonLBPLX CanonLBPTen CanonSX ChelgraphIBX
syn keyword mfConstant CompugraphicEightSixZeroZero
syn keyword mfConstant CompugraphicNineSixZeroZero DD DEClarge DECsmall
syn keyword mfConstant DataDiscNew EightThree EpsonAction
syn keyword mfConstant EpsonLQFiveZeroZeroLo EpsonLQFiveZeroZeroMed
syn keyword mfConstant EpsonMXFX EpsonSQEightSevenZero EpsonStylusPro
syn keyword mfConstant EpsonStylusProHigh EpsonStylusProLow
syn keyword mfConstant EpsonStylusProMed FourFour GThreefax HPDeskJet
syn keyword mfConstant HPLaserJetIIISi IBMFourTwoFiveZero IBMFourTwoOneSix
syn keyword mfConstant IBMFourTwoThreeZero IBMFourZeroOneNine
syn keyword mfConstant IBMFourZeroThreeNine IBMFourZeroTwoNine
syn keyword mfConstant IBMProPrinter IBMSixOneFiveFour IBMSixSixSevenZero
syn keyword mfConstant IBMThreeEightOneTwo IBMThreeEightTwoZero
syn keyword mfConstant IBMThreeOneNineThree IBMThreeOneSevenNine
syn keyword mfConstant IBMUlfHolleberg LASevenFive LNOthreR LNOthree
syn keyword mfConstant LNZeroOne LNZeroThree LPSFourZero LPSTwoZero
syn keyword mfConstant LexmarkFourZeroThreeNine LexmarkOptraR
syn keyword mfConstant LexmarkOptraS LinotypeLThreeThreeZero
syn keyword mfConstant LinotypeOneZeroZero LinotypeOneZeroZeroLo
syn keyword mfConstant LinotypeThreeZeroZeroHi MacTrueSize NeXTprinter
syn keyword mfConstant NeXTscreen NecTwoZeroOne Newgen NineOne
syn keyword mfConstant OCESixSevenFiveZeroPS OneTwoZero OneZeroZero
syn keyword mfConstant PrintwareSevenTwoZeroIQ Prism QMSOneSevenTwoFive
syn keyword mfConstant QMSOneSevenZeroZero QMSTwoFourTwoFive RicohA
syn keyword mfConstant RicohFortyEighty RicohFourZeroEightZero RicohLP
syn keyword mfConstant SparcPrinter StarNLOneZero VAXstation VTSix
syn keyword mfConstant VarityperFiveZeroSixZeroW
syn keyword mfConstant VarityperFourThreeZeroZeroHi
syn keyword mfConstant VarityperFourThreeZeroZeroLo
syn keyword mfConstant VarityperFourTwoZeroZero VarityperSixZeroZero
syn keyword mfConstant XeroxDocutech XeroxEightSevenNineZero
syn keyword mfConstant XeroxFourZeroFiveZero XeroxNineSevenZeroZero
syn keyword mfConstant XeroxPhaserSixTwoZeroZeroDP XeroxThreeSevenZeroZero
syn keyword mfConstant Xerox_world agfafzz agfatfzz amiga aps apssixhi
syn keyword mfConstant aselect atariezf atarinf atarins atariotf bitgraph
syn keyword mfConstant bjtenex bjtzzex bjtzzl bjtzzs boise canonbjc
syn keyword mfConstant canonex canonlbp cg cgl cgnszz citohtoz corona crs
syn keyword mfConstant cthreeten cx datadisc declarge decsmall deskjet
syn keyword mfConstant docutech dover dp dpdfezzz eighthre elvira epscszz
syn keyword mfConstant epsdraft epsdrft epsdrftl epsfast epsfastl epshi
syn keyword mfConstant epslo epsmed epsmedl epson epsonact epsonfx epsonl
syn keyword mfConstant epsonlo epsonlol epsonlq epsonsq epstylus epstylwr
syn keyword mfConstant epstyplo epstypmd epstypml epstypro epswlo epswlol
syn keyword mfConstant esphi fourfour gpx gtfax gtfaxhi gtfaxl gtfaxlo
syn keyword mfConstant gtfaxlol help hifax highfax hplaser hprugged ibm_a
syn keyword mfConstant ibmd ibmega ibmegal ibmfzon ibmfztn ibmpp ibmppl
syn keyword mfConstant ibmsoff ibmteot ibmtetz ibmtont ibmtosn ibmtosnl
syn keyword mfConstant ibmvga ibx imagen imagewriter itoh itohl itohtoz
syn keyword mfConstant itohtozl iw jetiiisi kyocera laserjet laserjetfive
syn keyword mfConstant laserjetfivemp laserjetfour laserjetfourthousand
syn keyword mfConstant laserjetfourzerozerozero laserjethi laserjetlo
syn keyword mfConstant laserjettwoonezerozero
syn keyword mfConstant laserjettwoonezerozerofastres lasermaster
syn keyword mfConstant laserwriter lasf lexmarkr lexmarks lexmarku
syn keyword mfConstant linohalf linohi linolo linolttz linoone linosuper
syn keyword mfConstant linothree linothreelo linotzzh ljfive ljfivemp
syn keyword mfConstant ljfour ljfzzz ljfzzzfr ljlo ljtozz ljtozzfr lmaster
syn keyword mfConstant lnotr lnzo lps lpstz lqhires lqlores lqmed lqmedl
syn keyword mfConstant lqmedres lview lviewl lwpro macmag mactrue modes_mf
syn keyword mfConstant ncd nec nechi neclm nectzo newdd newddl nexthi
syn keyword mfConstant nextscreen nextscrn nineone nullmode ocessfz
syn keyword mfConstant okidata okidatal okifourten okifte okihi onetz
syn keyword mfConstant onezz pcprevw pcscreen phaser phaserfs phasertf
syn keyword mfConstant phasertfl phasertl pixpt printware prntware
syn keyword mfConstant proprinter qms qmsesz qmsostf qmsoszz qmstftf ricoh
syn keyword mfConstant ricoha ricohlp ricohsp sherpa sparcptr starnlt
syn keyword mfConstant starnltl styletwo stylewr stylewri stylewriter sun
syn keyword mfConstant supre swtwo toshiba ultre varityper vs vtftzz
syn keyword mfConstant vtftzzhi vtftzzlo vtfzszw vtszz xpstzz xpstzzl
syn keyword mfConstant xrxesnz xrxfzfz xrxnszz xrxtszz
syn keyword mfDef BCPL_string coding_scheme font_face_byte
syn keyword mfDef font_family landscape
syn keyword mfDef mode_extra_info mode_help mode_param
syn keyword mfNewInternal blacker_min
endif
" Some other basic macro names, e.g., from cmbase, logo, etc.
if !exists("other_mf_macros")
let other_mf_macros = 1 " Set this to '0' if your code gets too colourful
" metapost.vim does so to turn off Metafont macros
endif
if other_mf_macros
syn keyword mfMacro beginlogochar
if get(g:, "other_mf_macros", 1)
syn keyword mfDef beginlogochar
syn keyword mfDef font_setup
syn keyword mfPrimitive generate
endif
" Numeric tokens
syn match mfNumeric "[-]\=\d\+"
syn match mfNumeric "[-]\=\.\d\+"
syn match mfNumeric "[-]\=\d\+\.\d\+"
syn match mfNumeric "[-]\=\d\+"
syn match mfNumeric "[-]\=\.\d\+"
syn match mfNumeric "[-]\=\d\+\.\d\+"
" Metafont lengths
syn match mfLength "\<\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\>"
syn match mfLength "\<[-]\=\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
syn match mfLength "\<[-]\=\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
syn match mfLength "\<[-]\=\d\+\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
" Metafont coordinates and points
syn match mfCoord "\<[xy]\d\+\>"
syn match mfPoint "\<z\d\+\>"
" METAFONT lengths
syn match mfLength "\<\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\>"
syn match mfLength "[-]\=\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\="
syn match mfLength "[-]\=\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\="
syn match mfLength "[-]\=\d\+\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\="
" String constants
syn region mfString start=+"+ end=+"+
syn match mfOpenString /"[^"]*/
syn region mfString oneline keepend start=+"+ end=+"+
" Comments:
syn match mfComment "%.*$"
syn keyword mfTodoComment contained TODO FIXME XXX DEBUG NOTE
syn match mfComment "%.*$" contains=mfTodoComment,@Spell
" synchronizing
syn sync maxlines=50
" Define the default highlighting
" Only when an item doesn't have highlighting yet
hi def link mfBoolExp Statement
hi def link mfNumExp Statement
hi def link mfInternal Identifier
hi def link mfPairExp Statement
hi def link mfPathExp Statement
hi def link mfPenExp Statement
hi def link mfPicExp Statement
hi def link mfStringExp Statement
hi def link mfCommand Statement
hi def link mfType Type
hi def link mfStatement Statement
hi def link mfDefinition Statement
hi def link mfCondition Conditional
hi def link mfPrimitive Statement
hi def link mfMacro Macro
hi def link mfCoord Identifier
hi def link mfPoint Identifier
hi def link mfNumeric Number
hi def link mfLength Number
hi def link mfComment Comment
hi def link mfString String
hi def link mfBoolExp Statement
hi def link mfNumExp Statement
hi def link mfPairExp Statement
hi def link mfPathExp Statement
hi def link mfPenExp Statement
hi def link mfPicExp Statement
hi def link mfStringExp Statement
hi def link mfInternal Identifier
hi def link mfCommand Statement
hi def link mfType Type
hi def link mfStatement Statement
hi def link mfDefinition Statement
hi def link mfCondition Conditional
hi def link mfPrimitive Statement
hi def link mfDef Function
hi def link mfVardef mfDef
hi def link mfPrimaryDef mfDef
hi def link mfSecondaryDef mfDef
hi def link mfTertiaryDef mfDef
hi def link mfCoord Identifier
hi def link mfPoint Identifier
hi def link mfNumeric Number
hi def link mfLength Number
hi def link mfComment Comment
hi def link mfString String
hi def link mfOpenString Todo
hi def link mfSuffixParam Label
hi def link mfNewInternal mfInternal
hi def link mfVariable Identifier
hi def link mfConstant Constant
hi def link mfTodoComment Todo
let b:current_syntax = "mf"
" vim: ts=8
" vim:sw=2

View File

@@ -1,115 +1,769 @@
" Vim syntax file
" Language: MetaPost
" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
" Last Change: April 30, 2001
" Language: MetaPost
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com>
" Last Change: 2016 Oct 14
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost
let other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither
let s:cpo_sav = &cpo
set cpo&vim
" Read the Metafont syntax to start with
if exists("g:plain_mf_macros")
let s:plain_mf_macros = g:plain_mf_macros
endif
if exists("g:plain_mf_modes")
let s:plain_mf_modes = g:plain_mf_modes
endif
if exists("g:other_mf_macros")
let s:other_mf_macros = g:other_mf_macros
endif
let g:plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost
let g:plain_mf_modes = 0 " No METAFONT modes
let g:other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither
" Read the METAFONT syntax to start with
runtime! syntax/mf.vim
unlet b:current_syntax " Necessary for syn include below
" MetaPost has TeX inserts for typeset labels
" verbatimtex, btex, and etex will be treated as keywords
syn match mpTeXbegin "\(verbatimtex\|btex\)"
syn match mpTeXend "etex"
syn region mpTeXinsert start="\(verbatimtex\|btex\)"hs=e+1 end="etex"he=s-1 contains=mpTeXbegin,mpTeXend keepend
" Restore the value of existing global variables
if exists("s:plain_mf_macros")
let g:plain_mf_macros = s:plain_mf_macros
else
unlet g:plain_mf_macros
endif
if exists("s:plain_mf_modes")
let g:plain_mf_modes = s:plain_mf_modes
else
unlet g:plain_mf_modes
endif
if exists("s:other_mf_macros")
let g:other_mf_macros = s:other_mf_macros
else
unlet g:other_mf_macros
endif
" MetaPost primitives not found in Metafont
syn keyword mpInternal bluepart clip color dashed fontsize greenpart infont
syn keyword mpInternal linecap linejoin llcorner lrcorner miterlimit mpxbreak
syn keyword mpInternal prologues redpart setbounds tracinglostchars
syn keyword mpInternal truecorners ulcorner urcorner withcolor
" Use TeX highlighting inside verbatimtex/btex... etex
syn include @MPTeX syntax/tex.vim
unlet b:current_syntax
" These are defined as keywords rather than using matchgroup
" in order to make them available to syntaxcomplete.
syn keyword mpTeXdelim btex etex verbatimtex contained
syn region mpTeXinsert
\ start=/\<verbatimtex\>\|\<btex\>/rs=e+1
\ end=/\<etex\>/re=s-1 keepend
\ contains=@MPTeX,mpTeXdelim
" Metafont primitives not found in MetaPost
syn keyword notDefined autorounding chardx chardy fillin granularity hppp
syn keyword notDefined proofing smoothing tracingedges tracingpens
syn keyword notDefined turningcheck vppp xoffset yoffset
" iskeyword must be set after the syn include above, because tex.vim sets `syn
" iskeyword`. Note that keywords do not contain numbers (numbers are
" subscripts)
syntax iskeyword @,_
" MetaPost primitives not found in METAFONT
syn keyword mpBoolExp bounded clipped filled stroked textual arclength
syn keyword mpNumExp arctime blackpart bluepart colormodel cyanpart
syn keyword mpNumExp fontsize greenpart greypart magentapart redpart
syn keyword mpPairExp yellowpart llcorner lrcorner ulcorner urcorner
" envelope is seemingly undocumented, but it exists since mpost 1.003.
" The syntax is: envelope <polygonal pen> of <path primary>. For example,
" path p;
" p := envelope pensquare of (up--left);
" (Thanks to Daniel H. Luecking for the example!)
syn keyword mpPathExp envelope pathpart
syn keyword mpPenExp penpart
syn keyword mpPicExp dashpart glyph infont
syn keyword mpStringExp fontpart readfrom textpart
syn keyword mpType cmykcolor color rgbcolor
" Other MetaPost primitives listed in the manual
syn keyword mpPrimitive mpxbreak within
" Internal quantities not found in METAFONT
" (Table 6 in MetaPost: A User's Manual)
syn keyword mpInternal defaultcolormodel hour minute linecap linejoin
syn keyword mpInternal miterlimit mpprocset mpversion numberprecision
syn keyword mpInternal numbersystem outputfilename outputformat
syn keyword mpInternal outputformatoptions outputtemplate prologues
syn keyword mpInternal restoreclipcolor tracinglostchars troffmode
syn keyword mpInternal truecorners
" List of commands not found in METAFONT (from MetaPost: A User's Manual)
syn keyword mpCommand clip closefrom dashed filenametemplate fontmapfile
syn keyword mpCommand fontmapline setbounds withcmykcolor withcolor
syn keyword mpCommand withgreyscale withoutcolor withpostscript
syn keyword mpCommand withprescript withrgbcolor write
" METAFONT internal variables not found in MetaPost
syn keyword notDefined autorounding chardx chardy fillin granularity
syn keyword notDefined proofing smoothing tracingedges tracingpens
syn keyword notDefined turningcheck xoffset yoffset
" Suffix defined only in METAFONT:
syn keyword notDefined nodot
" Other not implemented primitives (see MetaPost: A User's Manual, §C.1)
syn keyword notDefined cull display openwindow numspecial totalweight
syn keyword notDefined withweight
" Keywords defined by plain.mp
if !exists("plain_mp_macros")
let plain_mp_macros = 1 " Set this to '0' if your source gets too colourful
endif
if plain_mp_macros
syn keyword mpMacro ahangle ahlength background bbox bboxmargin beginfig
syn keyword mpMacro beveled black blue buildcycle butt center cutafter
syn keyword mpMacro cutbefore cuttings dashpattern defaultfont defaultpen
syn keyword mpMacro defaultscale dotlabel dotlabels drawarrow drawdblarrow
syn keyword mpMacro drawoptions endfig evenly extra_beginfig extra_endfig
syn keyword mpMacro green label labeloffset mitered red rounded squared
syn keyword mpMacro thelabel white base_name base_version
syn keyword mpMacro upto downto exitunless relax gobble gobbled
syn keyword mpMacro interact loggingall tracingall tracingnone
syn keyword mpMacro eps epsilon infinity right left up down origin
syn keyword mpMacro quartercircle halfcircle fullcircle unitsquare identity
syn keyword mpMacro blankpicture withdots ditto EOF pensquare penrazor
syn keyword mpMacro penspeck whatever abs round ceiling byte dir unitvector
syn keyword mpMacro inverse counterclockwise tensepath mod div dotprod
syn keyword mpMacro takepower direction directionpoint intersectionpoint
syn keyword mpMacro softjoin incr decr reflectedabout rotatedaround
syn keyword mpMacro rotatedabout min max flex superellipse interpath
syn keyword mpMacro magstep currentpen currentpen_path currentpicture
syn keyword mpMacro fill draw filldraw drawdot unfill undraw unfilldraw
syn keyword mpMacro undrawdot erase cutdraw image pickup numeric_pickup
syn keyword mpMacro pen_lft pen_rt pen_top pen_bot savepen clearpen
syn keyword mpMacro clear_pen_memory lft rt top bot ulft urt llft lrt
syn keyword mpMacro penpos penstroke arrowhead makelabel labels penlabel
syn keyword mpMacro range numtok thru clearxy clearit clearpen pickup
syn keyword mpMacro shipit bye hide stop solve
if get(g:, "plain_mp_macros", 1) || get(g:, "mp_metafun_macros", 0)
syn keyword mpDef beginfig clear_pen_memory clearit clearpen clearpen
syn keyword mpDef clearxy colorpart cutdraw downto draw drawarrow
syn keyword mpDef drawdblarrow drawdot drawoptions endfig erase
syn keyword mpDef exitunless fill filldraw flex gobble hide interact
syn keyword mpDef label loggingall makelabel numtok penstroke pickup
syn keyword mpDef range reflectedabout rotatedaround shipit
syn keyword mpDef stop superellipse takepower tracingall tracingnone
syn keyword mpDef undraw undrawdot unfill unfilldraw upto
syn match mpDef "???"
syn keyword mpVardef arrowhead bbox bot buildcycle byte ceiling center
syn keyword mpVardef counterclockwise decr dir direction directionpoint
syn keyword mpVardef dotlabel dotlabels image incr interpath inverse
syn keyword mpVardef labels lft magstep max min penlabels penpos round
syn keyword mpVardef rt savepen solve tensepath thelabel top unitvector
syn keyword mpVardef whatever z
syn keyword mpPrimaryDef div dotprod gobbled mod
syn keyword mpSecondaryDef intersectionpoint
syn keyword mpTertiaryDef cutafter cutbefore softjoin thru
syn keyword mpNewInternal ahangle ahlength bboxmargin beveled butt defaultpen
syn keyword mpNewInternal defaultscale dotlabeldiam eps epsilon infinity
syn keyword mpNewInternal join_radius labeloffset mitered pen_bot pen_lft
syn keyword mpNewInternal pen_rt pen_top rounded squared tolerance
" Predefined constants
syn keyword mpConstant EOF background base_name base_version black
syn keyword mpConstant blankpicture blue ditto down evenly fullcircle
syn keyword mpConstant green halfcircle identity left origin penrazor
syn keyword mpConstant penspeck pensquare quartercircle red right
syn keyword mpConstant unitsquare up white withdots
" Other predefined variables
syn keyword mpVariable currentpen currentpen_path currentpicture cuttings
syn keyword mpVariable defaultfont extra_beginfig extra_endfig
syn match mpVariable /\<\%(laboff\|labxf\|labyf\)\>/
syn match mpVariable /\<\%(laboff\|labxf\|labyf\)\.\%(lft\|rt\|bot\|top\|ulft\|urt\|llft\|lrt\)\>/
" let statements:
syn keyword mpnumExp abs
syn keyword mpDef rotatedabout
syn keyword mpCommand bye relax
" on and off are not technically keywords, but it is nice to highlight them
" inside dashpattern().
syn keyword mpOnOff off on contained
syn keyword mpDash dashpattern contained
syn region mpDashPattern
\ start="dashpattern\s*"
\ end=")"he=e-1
\ contains=mfNumeric,mfLength,mpOnOff,mpDash
endif
" Keywords defined by mfplain.mp
if !exists("mfplain_mp_macros")
let mfplain_mp_macros = 0 " Set this to '1' to include these macro names
endif
if mfplain_mp_macros
syn keyword mpMacro beginchar blacker capsule_def change_width
syn keyword mpMacro define_blacker_pixels define_corrected_pixels
syn keyword mpMacro define_good_x_pixels define_good_y_pixels
syn keyword mpMacro define_horizontal_corrected_pixels
syn keyword mpMacro define_pixels define_whole_blacker_pixels
syn keyword mpMacro define_whole_vertical_blacker_pixels
syn keyword mpMacro define_whole_vertical_pixels endchar
syn keyword mpMacro extra_beginchar extra_endchar extra_setup
syn keyword mpMacro font_coding_scheme font_extra_space font_identifier
syn keyword mpMacro font_normal_shrink font_normal_space
syn keyword mpMacro font_normal_stretch font_quad font_size
syn keyword mpMacro font_slant font_x_height italcorr labelfont
syn keyword mpMacro makebox makegrid maketicks mode_def mode_setup
syn keyword mpMacro o_correction proofrule proofrulethickness rulepen smode
if get(g:, "mfplain_mp_macros", 0)
syn keyword mpDef beginchar capsule_def change_width
syn keyword mpDef define_blacker_pixels define_corrected_pixels
syn keyword mpDef define_good_x_pixels define_good_y_pixels
syn keyword mpDef define_horizontal_corrected_pixels define_pixels
syn keyword mpDef define_whole_blacker_pixels define_whole_pixels
syn keyword mpDef define_whole_vertical_blacker_pixels
syn keyword mpDef define_whole_vertical_pixels endchar
syn keyword mpDef font_coding_scheme font_extra_space font_identifier
syn keyword mpDef font_normal_shrink font_normal_space
syn keyword mpDef font_normal_stretch font_quad font_size font_slant
syn keyword mpDef font_x_height italcorr labelfont lowres_fix makebox
syn keyword mpDef makegrid maketicks mode_def mode_setup proofrule
syn keyword mpDef smode
syn keyword mpVardef hround proofrulethickness vround
syn keyword mpNewInternal blacker o_correction
syn keyword mpVariable extra_beginchar extra_endchar extra_setup rulepen
" plus some no-ops, also from mfplain.mp
syn keyword mpMacro cullit currenttransform gfcorners grayfont hround
syn keyword mpMacro imagerules lowres_fix nodisplays notransforms openit
syn keyword mpMacro proofoffset screenchars screenrule screenstrokes
syn keyword mpMacro showit slantfont titlefont unitpixel vround
syn keyword mpDef cull cullit gfcorners imagerules nodisplays
syn keyword mpDef notransforms openit proofoffset screenchars
syn keyword mpDef screenrule screenstrokes showit
syn keyword mpVardef grayfont slantfont titlefont
syn keyword mpVariable currenttransform
syn keyword mpConstant unitpixel
" These are not listed in the MetaPost manual, and some are ignored by
" MetaPost, but are nonetheless defined in mfplain.mp
syn keyword mpDef killtext
syn match mpVardef "\<good\.\%(x\|y\|lft\|rt\|top\|bot\)\>"
syn keyword mpVariable aspect_ratio localfont mag mode mode_name
syn keyword mpVariable proofcolor
syn keyword mpConstant lowres proof smoke
syn keyword mpNewInternal autorounding bp_per_pixel granularity
syn keyword mpNewInternal number_of_modes proofing smoothing turningcheck
endif
" Keywords defined by other macro packages, e.g., boxes.mp
if !exists("other_mp_macros")
let other_mp_macros = 1 " Set this to '0' if your source gets too colourful
endif
if other_mp_macros
syn keyword mpMacro circmargin defaultdx defaultdy
syn keyword mpMacro boxit boxjoin bpath circleit drawboxed drawboxes
syn keyword mpMacro drawunboxed fixpos fixsize pic
" Keywords defined by all base macro packages:
" - (r)boxes.mp
" - format.mp
" - graph.mp
" - marith.mp
" - sarith.mp
" - string.mp
" - TEX.mp
if get(g:, "other_mp_macros", 1)
" boxes and rboxes
syn keyword mpDef boxjoin drawboxed drawboxes drawunboxed
syn keyword mpNewInternal circmargin defaultdx defaultdy rbox_radius
syn keyword mpVardef boxit bpath circleit fixpos fixsize generic_declare
syn keyword mpVardef generic_redeclare generisize pic rboxit str_prefix
" format
syn keyword mpVardef Mformat format init_numbers roundd
syn keyword mpVariable Fe_base Fe_plus
syn keyword mpConstant Ten_to
" graph
syn keyword mpDef Gfor Gxyscale OUT auto begingraph endgraph gdata
syn keyword mpDef gdraw gdrawarrow gdrawdblarrow gfill plot
syn keyword mpVardef augment autogrid frame gdotlabel glabel grid itick
syn keyword mpVardef otick
syn keyword mpVardef Mreadpath setcoords setrange
syn keyword mpNewInternal Gmarks Gminlog Gpaths linear log
syn keyword mpVariable Autoform Gemarks Glmarks Gumarks
syn keyword mpConstant Gtemplate
syn match mpVariable /Gmargin\.\%(low\|high\)/
" marith
syn keyword mpVardef Mabs Meform Mexp Mexp_str Mlog Mlog_Str Mlog_str
syn keyword mpPrimaryDef Mdiv Mmul
syn keyword mpSecondaryDef Madd Msub
syn keyword mpTertiaryDef Mleq
syn keyword mpNewInternal Mten Mzero
" sarith
syn keyword mpVardef Sabs Scvnum
syn keyword mpPrimaryDef Sdiv Smul
syn keyword mpSecondaryDef Sadd Ssub
syn keyword mpTertiaryDef Sleq Sneq
" string
syn keyword mpVardef cspan isdigit loptok
" TEX
syn keyword mpVardef TEX TEXPOST TEXPRE
endif
" Up to date as of 23-Sep-2016.
if get(b:, 'mp_metafun_macros', get(g:, 'mp_metafun_macros', 0))
" Highlight TeX keywords (for use in ConTeXt documents)
syn match mpTeXKeyword '\\[a-zA-Z@]\+'
" These keywords have been added manually.
syn keyword mpPrimitive runscript
" The following MetaFun keywords have been extracted automatically from
" ConTeXt source code. They include all "public" macros (where a macro is
" considered public if and only if it does not start with _, mfun_, mlib_, or
" do_, and it does not end with _), all "public" unsaved variables, and all
" `let` statements.
" mp-abck.mpiv
syn keyword mpDef abck_grid_line anchor_box box_found boxfilloptions
syn keyword mpDef boxgridoptions boxlineoptions draw_multi_pars
syn keyword mpDef draw_multi_side draw_multi_side_path freeze_box
syn keyword mpDef initialize_box initialize_box_pos
syn keyword mpDef multi_side_draw_options show_multi_kind
syn keyword mpDef show_multi_pars
syn keyword mpVardef abck_baseline_grid abck_draw_path abck_graphic_grid
syn keyword mpVariable boxdashtype boxfilloffset boxfilltype
syn keyword mpVariable boxgriddirection boxgriddistance boxgridshift
syn keyword mpVariable boxgridtype boxgridwidth boxlineoffset
syn keyword mpVariable boxlineradius boxlinetype boxlinewidth multikind
syn keyword mpConstant context_abck
" mp-apos.mpiv
syn keyword mpDef anch_sidebars_draw boxfilloptions boxlineoptions
syn keyword mpDef connect_positions
syn keyword mpConstant context_apos
" mp-asnc.mpiv
syn keyword mpDef FlushSyncTasks ProcessSyncTask ResetSyncTasks
syn keyword mpDef SetSyncColor SetSyncThreshold SyncTask
syn keyword mpVardef PrepareSyncTasks SyncBox TheSyncColor
syn keyword mpVardef TheSyncThreshold
syn keyword mpVariable CurrentSyncClass NOfSyncPaths SyncColor
syn keyword mpVariable SyncLeftOffset SyncPaths SyncTasks SyncThreshold
syn keyword mpVariable SyncThresholdMethod SyncWidth
syn keyword mpConstant context_asnc
" mp-back.mpiv
syn keyword mpDef some_double_back some_hash
syn keyword mpVariable back_nillcolor
syn keyword mpConstant context_back
" mp-bare.mpiv
syn keyword mpVardef colordecimals rawtextext
syn keyword mpPrimaryDef infont
syn keyword mpConstant context_bare
" mp-base.mpiv
" This is essentially plain.mp with only a few keywords added
syn keyword mpNumExp graypart
syn keyword mpType graycolor greycolor
syn keyword mpConstant cyan magenta yellow
" mp-butt.mpiv
syn keyword mpDef predefinedbutton some_button
syn keyword mpConstant context_butt
" mp-char.mpiv
syn keyword mpDef flow_begin_chart flow_begin_sub_chart
syn keyword mpDef flow_chart_draw_comment flow_chart_draw_exit
syn keyword mpDef flow_chart_draw_label flow_chart_draw_text
syn keyword mpDef flow_clip_chart flow_collapse_points
syn keyword mpDef flow_connect_bottom_bottom flow_connect_bottom_left
syn keyword mpDef flow_connect_bottom_right flow_connect_bottom_top
syn keyword mpDef flow_connect_left_bottom flow_connect_left_left
syn keyword mpDef flow_connect_left_right flow_connect_left_top
syn keyword mpDef flow_connect_right_bottom flow_connect_right_left
syn keyword mpDef flow_connect_right_right flow_connect_right_top
syn keyword mpDef flow_connect_top_bottom flow_connect_top_left
syn keyword mpDef flow_connect_top_right flow_connect_top_top
syn keyword mpDef flow_draw_connection flow_draw_connection_point
syn keyword mpDef flow_draw_midpoint flow_draw_shape
syn keyword mpDef flow_draw_test_area flow_draw_test_shape
syn keyword mpDef flow_draw_test_shapes flow_end_chart
syn keyword mpDef flow_end_sub_chart flow_flush_connections
syn keyword mpDef flow_flush_picture flow_flush_pictures
syn keyword mpDef flow_flush_shape flow_flush_shapes
syn keyword mpDef flow_initialize_grid flow_new_chart flow_new_shape
syn keyword mpDef flow_scaled_to_grid flow_show_connection
syn keyword mpDef flow_show_connections flow_show_shapes
syn keyword mpDef flow_xy_offset flow_y_pos
syn keyword mpVardef flow_connection_path flow_down_on_grid
syn keyword mpVardef flow_down_to_grid flow_i_point flow_left_on_grid
syn keyword mpVardef flow_left_to_grid flow_offset
syn keyword mpVardef flow_points_initialized flow_right_on_grid
syn keyword mpVardef flow_right_to_grid flow_smooth_connection
syn keyword mpVardef flow_trim_points flow_trimmed flow_up_on_grid
syn keyword mpVardef flow_up_to_grid flow_valid_connection
syn keyword mpVardef flow_x_on_grid flow_xy_bottom flow_xy_left
syn keyword mpVardef flow_xy_on_grid flow_xy_right flow_xy_top
syn keyword mpVardef flow_y_on_grid
syn keyword mpVariable flow_arrowtip flow_chart_background_color
syn keyword mpVariable flow_chart_offset flow_comment_offset
syn keyword mpVariable flow_connection_arrow_size
syn keyword mpVariable flow_connection_dash_size
syn keyword mpVariable flow_connection_line_color
syn keyword mpVariable flow_connection_line_width
syn keyword mpVariable flow_connection_smooth_size flow_connections
syn keyword mpVariable flow_cpath flow_dash_pattern flow_dashline
syn keyword mpVariable flow_exit_offset flow_forcevalid flow_grid_height
syn keyword mpVariable flow_grid_width flow_label_offset flow_max_x
syn keyword mpVariable flow_max_y flow_peepshape flow_reverse_connection
syn keyword mpVariable flow_reverse_y flow_shape_action flow_shape_archive
syn keyword mpVariable flow_shape_decision flow_shape_down
syn keyword mpVariable flow_shape_fill_color flow_shape_height
syn keyword mpVariable flow_shape_left flow_shape_line_color
syn keyword mpVariable flow_shape_line_width flow_shape_loop
syn keyword mpVariable flow_shape_multidocument flow_shape_node
syn keyword mpVariable flow_shape_procedure flow_shape_product
syn keyword mpVariable flow_shape_right flow_shape_singledocument
syn keyword mpVariable flow_shape_subprocedure flow_shape_up
syn keyword mpVariable flow_shape_wait flow_shape_width
syn keyword mpVariable flow_show_all_points flow_show_con_points
syn keyword mpVariable flow_show_mid_points flow_showcrossing flow_smooth
syn keyword mpVariable flow_touchshape flow_xypoint flow_zfactor
syn keyword mpConstant context_flow
" mp-chem.mpiv
syn keyword mpDef chem_init_all chem_reset chem_start_structure
syn keyword mpDef chem_transformed
syn keyword mpVardef chem_ad chem_adj chem_align chem_arrow chem_au
syn keyword mpVardef chem_b chem_bb chem_bd chem_bw chem_c chem_cc
syn keyword mpVardef chem_ccd chem_cd chem_crz chem_cz chem_dash chem_db
syn keyword mpVardef chem_diff chem_dir chem_do chem_dr chem_draw
syn keyword mpVardef chem_drawarrow chem_eb chem_ed chem_ep chem_er
syn keyword mpVardef chem_es chem_et chem_fill chem_hb chem_init_some
syn keyword mpVardef chem_label chem_ldb chem_ldd chem_line chem_lr
syn keyword mpVardef chem_lrb chem_lrbd chem_lrd chem_lrh chem_lrn
syn keyword mpVardef chem_lrt chem_lrz chem_lsr chem_lsub chem_mark
syn keyword mpVardef chem_marked chem_mid chem_mids chem_midz chem_mir
syn keyword mpVardef chem_mov chem_move chem_number chem_oe chem_off
syn keyword mpVardef chem_pb chem_pe chem_r chem_r_fragment chem_rb
syn keyword mpVardef chem_rbd chem_rd chem_rdb chem_rdd chem_restore
syn keyword mpVardef chem_rh chem_rm chem_rn chem_rot chem_rr chem_rrb
syn keyword mpVardef chem_rrbd chem_rrd chem_rrh chem_rrn chem_rrt
syn keyword mpVardef chem_rrz chem_rsr chem_rsub chem_rt chem_rz chem_s
syn keyword mpVardef chem_save chem_sb chem_sd chem_set chem_sr chem_ss
syn keyword mpVardef chem_start_component chem_stop_component
syn keyword mpVardef chem_stop_structure chem_sub chem_symbol chem_tb
syn keyword mpVardef chem_text chem_z chem_zln chem_zlt chem_zn chem_zrn
syn keyword mpVardef chem_zrt chem_zt
syn keyword mpVariable chem_mark_pair chem_stack_mirror chem_stack_origin
syn keyword mpVariable chem_stack_p chem_stack_previous
syn keyword mpVariable chem_stack_rotation chem_trace_boundingbox
syn keyword mpVariable chem_trace_nesting chem_trace_text
syn keyword mpConstant context_chem
" mp-core.mpiv
syn keyword mpDef FlushSyncTasks ProcessSyncTask
syn keyword mpDef RegisterLocalTextArea RegisterPlainTextArea
syn keyword mpDef RegisterRegionTextArea RegisterTextArea
syn keyword mpDef ResetLocalTextArea ResetSyncTasks ResetTextAreas
syn keyword mpDef SaveTextAreas SetSyncColor SetSyncThreshold
syn keyword mpDef SyncTask anchor_box box_found boxfilloptions
syn keyword mpDef boxgridoptions boxlineoptions collapse_multi_pars
syn keyword mpDef draw_box draw_multi_pars draw_par freeze_box
syn keyword mpDef initialize_area initialize_area_par initialize_box
syn keyword mpDef initialize_box_pos initialize_par
syn keyword mpDef prepare_multi_pars relocate_multipars save_multipar
syn keyword mpDef set_par_line_height show_multi_pars show_par
syn keyword mpDef simplify_multi_pars sort_multi_pars
syn keyword mpVardef InsideSavedTextArea InsideSomeSavedTextArea
syn keyword mpVardef InsideSomeTextArea InsideTextArea PrepareSyncTasks
syn keyword mpVardef SyncBox TextAreaH TextAreaW TextAreaWH TextAreaX
syn keyword mpVardef TextAreaXY TextAreaY TheSyncColor TheSyncThreshold
syn keyword mpVardef baseline_grid graphic_grid multi_par_at_top
syn keyword mpVariable CurrentSyncClass NOfSavedTextAreas
syn keyword mpVariable NOfSavedTextColumns NOfSyncPaths NOfTextAreas
syn keyword mpVariable NOfTextColumns PlainTextArea RegionTextArea
syn keyword mpVariable SavedTextColumns SyncColor SyncLeftOffset SyncPaths
syn keyword mpVariable SyncTasks SyncThreshold SyncThresholdMethod
syn keyword mpVariable SyncWidth TextAreas TextColumns
syn keyword mpVariable auto_multi_par_hsize boxdashtype boxfilloffset
syn keyword mpVariable boxfilltype boxgriddirection boxgriddistance
syn keyword mpVariable boxgridshift boxgridtype boxgridwidth boxlineradius
syn keyword mpVariable boxlinetype boxlinewidth check_multi_par_chain
syn keyword mpVariable compensate_multi_par_topskip
syn keyword mpVariable enable_multi_par_fallback force_multi_par_chain
syn keyword mpVariable ignore_multi_par_page last_multi_par_shift lefthang
syn keyword mpVariable local_multi_par_area multi_column_first_page_hack
syn keyword mpVariable multi_par_pages multiloc multilocs multipar
syn keyword mpVariable multipars multiref multirefs nofmultipars
syn keyword mpVariable obey_multi_par_hang obey_multi_par_more
syn keyword mpVariable one_piece_multi_par par_hang_after par_hang_indent
syn keyword mpVariable par_indent par_left_skip par_line_height
syn keyword mpVariable par_right_skip par_start_pos par_stop_pos
syn keyword mpVariable par_strut_depth par_strut_height ppos righthang
syn keyword mpVariable snap_multi_par_tops somehang span_multi_column_pars
syn keyword mpVariable use_multi_par_region
syn keyword mpConstant context_core
syn keyword LET anchor_area anchor_par draw_area
" mp-cows.mpiv
syn keyword mpConstant context_cows cow
" mp-crop.mpiv
syn keyword mpDef page_marks_add_color page_marks_add_lines
syn keyword mpDef page_marks_add_marking page_marks_add_number
syn keyword mpVardef crop_color crop_gray crop_marks_cmyk
syn keyword mpVardef crop_marks_cmykrgb crop_marks_gray crop_marks_lines
syn keyword mpVariable crop_colors more page
syn keyword mpConstant context_crop
" mp-figs.mpiv
syn keyword mpDef naturalfigure registerfigure
syn keyword mpVardef figuredimensions figureheight figuresize
syn keyword mpVardef figurewidth
syn keyword mpConstant context_figs
" mp-fobg.mpiv
syn keyword mpDef DrawFoFrame
syn keyword mpVardef equalpaths
syn keyword mpPrimaryDef inset outset
syn keyword mpVariable FoBackground FoBackgroundColor FoFrame FoLineColor
syn keyword mpVariable FoLineStyle FoLineWidth FoSplit
syn keyword mpConstant FoAll FoBottom FoDash FoDotted FoDouble FoGroove
syn keyword mpConstant FoHidden FoInset FoLeft FoMedium FoNoColor FoNone
syn keyword mpConstant FoOutset FoRidge FoRight FoSolid FoThick FoThin
syn keyword mpConstant FoTop context_fobg
" mp-form.mpiv
syn keyword mpConstant context_form
" mp-func.mpiv
syn keyword mpDef constructedfunction constructedpairs
syn keyword mpDef constructedpath curvedfunction curvedpairs
syn keyword mpDef curvedpath function pathconnectors straightfunction
syn keyword mpDef straightpairs straightpath
syn keyword mpConstant context_func
" mp-grap.mpiv
syn keyword mpDef Gfor OUT auto begingraph circles crosses diamonds
syn keyword mpDef downtriangles endgraph gdata gdraw gdrawarrow
syn keyword mpDef gdrawdblarrow gfill graph_addto
syn keyword mpDef graph_addto_currentpicture graph_comma
syn keyword mpDef graph_coordinate_multiplication graph_draw
syn keyword mpDef graph_draw_label graph_errorbar_text graph_fill
syn keyword mpDef graph_generate_exponents
syn keyword mpDef graph_generate_label_position
syn keyword mpDef graph_generate_numbers graph_label_location
syn keyword mpDef graph_scan_mark graph_scan_marks graph_setbounds
syn keyword mpDef graph_suffix graph_tick_label
syn keyword mpDef graph_with_pen_and_color graph_withlist
syn keyword mpDef graph_xyscale lefttriangles makefunctionpath plot
syn keyword mpDef plotsymbol points rainbow righttriangles smoothpath
syn keyword mpDef squares stars uptriangles witherrorbars
syn keyword mpVardef addtopath augment autogrid constant_fit
syn keyword mpVardef constant_function det escaped_format exp
syn keyword mpVardef exponential_fit exponential_function format
syn keyword mpVardef formatted frame functionpath gaussian_fit
syn keyword mpVardef gaussian_function gdotlabel glabel graph_Feform
syn keyword mpVardef graph_Meform graph_arrowhead_extent graph_bounds
syn keyword mpVardef graph_clear_bounds
syn keyword mpVardef graph_convert_user_path_to_internal graph_cspan
syn keyword mpVardef graph_draw_arrowhead graph_error graph_errorbars
syn keyword mpVardef graph_exp graph_factor_and_exponent_to_string
syn keyword mpVardef graph_gridline_picture graph_is_null
syn keyword mpVardef graph_label_convert_user_to_internal graph_loptok
syn keyword mpVardef graph_match_exponents graph_mlog
syn keyword mpVardef graph_modified_exponent_ypart graph_pair_adjust
syn keyword mpVardef graph_picture_conversion graph_post_draw
syn keyword mpVardef graph_read_line graph_readpath graph_remap
syn keyword mpVardef graph_scan_path graph_select_exponent_mark
syn keyword mpVardef graph_select_mark graph_set_bounds
syn keyword mpVardef graph_set_default_bounds graph_shapesize
syn keyword mpVardef graph_stash_label graph_tick_mark_spacing
syn keyword mpVardef graph_unknown_pair_bbox grid isdigit itick
syn keyword mpVardef linear_fit linear_function ln logten lorentzian_fit
syn keyword mpVardef lorentzian_function otick polynomial_fit
syn keyword mpVardef polynomial_function power_law_fit
syn keyword mpVardef power_law_function powten setcoords setrange
syn keyword mpVardef sortpath strfmt tick varfmt
syn keyword mpNewInternal Mzero doubleinfinity graph_log_minimum
syn keyword mpNewInternal graph_minimum_number_of_marks largestmantissa
syn keyword mpNewInternal linear lntwo log mlogten singleinfinity
syn keyword mpVariable Autoform determinant fit_chi_squared
syn keyword mpVariable graph_errorbar_picture graph_exp_marks
syn keyword mpVariable graph_frame_pair_a graph_frame_pair_b
syn keyword mpVariable graph_lin_marks graph_log_marks graph_modified_bias
syn keyword mpVariable graph_modified_higher graph_modified_lower
syn keyword mpVariable graph_shape r_s resistance_color resistance_name
syn keyword mpConstant context_grap
" mp-grid.mpiv
syn keyword mpDef hlingrid hloggrid vlingrid vloggrid
syn keyword mpVardef hlinlabel hlintext hlogtext linlin linlinpath
syn keyword mpVardef linlog linlogpath loglin loglinpath loglog
syn keyword mpVardef loglogpath processpath vlinlabel vlintext vlogtext
syn keyword mpVariable fmt_initialize fmt_pictures fmt_precision
syn keyword mpVariable fmt_separator fmt_zerocheck grid_eps
syn keyword mpConstant context_grid
" mp-grph.mpiv
syn keyword mpDef beginfig begingraphictextfig data_mpo_file
syn keyword mpDef data_mpy_file doloadfigure draw endfig
syn keyword mpDef endgraphictextfig fill fixedplace graphictext
syn keyword mpDef loadfigure new_graphictext normalwithshade number
syn keyword mpDef old_graphictext outlinefill protectgraphicmacros
syn keyword mpDef resetfig reversefill withdrawcolor withfillcolor
syn keyword mpDef withshade
syn keyword mpVariable currentgraphictext figureshift
syn keyword mpConstant context_grph
" mp-idea.mpiv
syn keyword mpVardef bcomponent ccomponent gcomponent mcomponent
syn keyword mpVardef rcomponent somecolor ycomponent
" mp-luas.mpiv
syn keyword mpDef luacall message
syn keyword mpVardef MP lua lualist
syn keyword mpConstant context_luas
" mp-mlib.mpiv
syn keyword mpDef autoalign bitmapimage circular_shade cmyk comment
syn keyword mpDef defineshade eofill eofillup externalfigure figure
syn keyword mpDef fillup label linear_shade multitonecolor namedcolor
syn keyword mpDef nofill onlayer passarrayvariable passvariable
syn keyword mpDef plain_label register resolvedcolor scantokens
syn keyword mpDef set_circular_vector set_linear_vector shaded
syn keyword mpDef spotcolor startpassingvariable stoppassingvariable
syn keyword mpDef thelabel transparent[] usemetafunlabels
syn keyword mpDef useplainlabels withcircularshade withlinearshade
syn keyword mpDef withmask withproperties withshadecenter
syn keyword mpDef withshadecolors withshadedirection withshadedomain
syn keyword mpDef withshadefactor withshadefraction withshadeorigin
syn keyword mpDef withshaderadius withshadestep withshadetransform
syn keyword mpDef withshadevector withtransparency
syn keyword mpVardef anchored checkbounds checkedbounds
syn keyword mpVardef define_circular_shade define_linear_shade dotlabel
syn keyword mpVardef escaped_format fmttext fontsize format formatted
syn keyword mpVardef installlabel onetimefmttext onetimetextext
syn keyword mpVardef outlinetext plain_thelabel properties rawfmttext
syn keyword mpVardef rawtexbox rawtextext rule strfmt strut texbox
syn keyword mpVardef textext thefmttext thelabel thetexbox thetextext
syn keyword mpVardef tostring transparency_alternative_to_number
syn keyword mpVardef validtexbox varfmt verbatim
syn keyword mpPrimaryDef asgroup infont normalinfont shadedinto
syn keyword mpPrimaryDef shownshadecenter shownshadedirection
syn keyword mpPrimaryDef shownshadeorigin shownshadevector withshade
syn keyword mpPrimaryDef withshademethod
syn keyword mpNewInternal colorburntransparent colordodgetransparent
syn keyword mpNewInternal colortransparent darkentransparent
syn keyword mpNewInternal differencetransparent exclusiontransparent
syn keyword mpNewInternal hardlighttransparent huetransparent
syn keyword mpNewInternal lightentransparent luminositytransparent
syn keyword mpNewInternal multiplytransparent normaltransparent
syn keyword mpNewInternal overlaytransparent saturationtransparent
syn keyword mpNewInternal screentransparent shadefactor softlighttransparent
syn keyword mpNewInternal textextoffset
syn keyword mpType property transparency
syn keyword mpVariable currentoutlinetext shadeddown shadedleft
syn keyword mpVariable shadedright shadedup shadeoffset trace_shades
syn keyword mpConstant context_mlib
" mp-page.mpiv
syn keyword mpDef BoundCoverAreas BoundPageAreas Enlarged FakeRule
syn keyword mpDef FakeWord LoadPageState OverlayBox RuleColor
syn keyword mpDef SetAreaVariables SetPageArea SetPageBackPage
syn keyword mpDef SetPageCoverPage SetPageField SetPageFrontPage
syn keyword mpDef SetPageHsize SetPageHstep SetPageLocation
syn keyword mpDef SetPagePage SetPageSpine SetPageVariables
syn keyword mpDef SetPageVsize SetPageVstep StartCover StartPage
syn keyword mpDef StopCover StopPage SwapPageState innerenlarged
syn keyword mpDef llEnlarged lrEnlarged outerenlarged ulEnlarged
syn keyword mpDef urEnlarged
syn keyword mpVardef BackPageHeight BackPageWidth BackSpace BaseLineSkip
syn keyword mpVardef BodyFontSize BottomDistance BottomHeight
syn keyword mpVardef BottomSpace CoverHeight CoverWidth CurrentColumn
syn keyword mpVardef CurrentHeight CurrentWidth CutSpace EmWidth
syn keyword mpVardef ExHeight FooterDistance FooterHeight
syn keyword mpVardef FrontPageHeight FrontPageWidth HSize HeaderDistance
syn keyword mpVardef HeaderHeight InPageBody InnerEdgeDistance
syn keyword mpVardef InnerEdgeWidth InnerMarginDistance InnerMarginWidth
syn keyword mpVardef InnerSpaceWidth LastPageNumber LayoutColumnDistance
syn keyword mpVardef LayoutColumnWidth LayoutColumns LeftEdgeDistance
syn keyword mpVardef LeftEdgeWidth LeftMarginDistance LeftMarginWidth
syn keyword mpVardef LineHeight MakeupHeight MakeupWidth NOfColumns
syn keyword mpVardef NOfPages OnOddPage OnRightPage OuterEdgeDistance
syn keyword mpVardef OuterEdgeWidth OuterMarginDistance OuterMarginWidth
syn keyword mpVardef OuterSpaceWidth OverlayDepth OverlayHeight
syn keyword mpVardef OverlayLineWidth OverlayOffset OverlayWidth
syn keyword mpVardef PageDepth PageFraction PageNumber PageOffset
syn keyword mpVardef PaperBleed PaperHeight PaperWidth PrintPaperHeight
syn keyword mpVardef PrintPaperWidth RealPageNumber RightEdgeDistance
syn keyword mpVardef RightEdgeWidth RightMarginDistance RightMarginWidth
syn keyword mpVardef SpineHeight SpineWidth StrutDepth StrutHeight
syn keyword mpVardef TextHeight TextWidth TopDistance TopHeight TopSkip
syn keyword mpVardef TopSpace VSize defaultcolormodel
syn keyword mpVariable Area BackPage CoverPage CurrentLayout Field
syn keyword mpVariable FrontPage HorPos Hsize Hstep Location Page
syn keyword mpVariable PageStateAvailable RuleDepth RuleDirection
syn keyword mpVariable RuleFactor RuleH RuleHeight RuleOffset RuleOption
syn keyword mpVariable RuleThickness RuleV RuleWidth Spine VerPos Vsize
syn keyword mpVariable Vstep
syn keyword mpConstant context_page
" mp-shap.mpiv
syn keyword mpDef drawline drawshape some_shape
syn keyword mpDef start_predefined_shape_definition
syn keyword mpDef stop_predefined_shape_definition
syn keyword mpVardef drawpredefinedline drawpredefinedshape
syn keyword mpVardef some_shape_path
syn keyword mpVariable predefined_shapes predefined_shapes_xradius
syn keyword mpVariable predefined_shapes_xxradius
syn keyword mpVariable predefined_shapes_yradius
syn keyword mpVariable predefined_shapes_yyradius
syn keyword mpConstant context_shap
" mp-step.mpiv
syn keyword mpDef initialize_step_variables midbottomboundary
syn keyword mpDef midtopboundary step_begin_cell step_begin_chart
syn keyword mpDef step_cell_ali step_cell_bot step_cell_top
syn keyword mpDef step_cells step_end_cell step_end_chart
syn keyword mpDef step_text_bot step_text_mid step_text_top
syn keyword mpDef step_texts
syn keyword mpVariable cell_distance_x cell_distance_y cell_fill_color
syn keyword mpVariable cell_line_color cell_line_width cell_offset
syn keyword mpVariable chart_align chart_category chart_vertical
syn keyword mpVariable line_distance line_height line_line_color
syn keyword mpVariable line_line_width line_offset nofcells
syn keyword mpVariable text_distance_set text_fill_color text_line_color
syn keyword mpVariable text_line_width text_offset
syn keyword mpConstant context_cell
" mp-symb.mpiv
syn keyword mpDef finishglyph prepareglyph
syn keyword mpConstant lefttriangle midbar onebar righttriangle sidebar
syn keyword mpConstant sublefttriangle subrighttriangle twobar
" mp-text.mpiv
syn keyword mpDef build_parshape
syn keyword mpVardef found_point
syn keyword mpVariable trace_parshape
syn keyword mpConstant context_text
" mp-tool.mpiv
syn keyword mpCommand dump
syn keyword mpDef addbackground b_color beginglyph break centerarrow
syn keyword mpDef clearxy condition data_mpd_file detaileddraw
syn keyword mpDef detailpaths dowithpath draw drawboundary
syn keyword mpDef drawboundingbox drawcontrollines drawcontrolpoints
syn keyword mpDef drawfill draworigin drawpath drawpathonly
syn keyword mpDef drawpathwithpoints drawpoint drawpointlabels
syn keyword mpDef drawpoints drawticks drawwholepath drawxticks
syn keyword mpDef drawyticks endglyph fill finishsavingdata g_color
syn keyword mpDef inner_boundingbox job_name leftarrow loadmodule
syn keyword mpDef midarrowhead naturalizepaths newboolean newcolor
syn keyword mpDef newnumeric newpair newpath newpicture newstring
syn keyword mpDef newtransform normalcolors normaldraw normalfill
syn keyword mpDef normalwithcolor outer_boundingbox pop_boundingbox
syn keyword mpDef popboundingbox popcurrentpicture push_boundingbox
syn keyword mpDef pushboundingbox pushcurrentpicture r_color readfile
syn keyword mpDef recolor redraw refill register_dirty_chars
syn keyword mpDef remapcolor remapcolors remappedcolor reprocess
syn keyword mpDef resetarrows resetcolormap resetdrawoptions
syn keyword mpDef resolvedcolor restroke retext rightarrow savedata
syn keyword mpDef saveoptions scale_currentpicture set_ahlength
syn keyword mpDef set_grid showgrid startplaincompatibility
syn keyword mpDef startsavingdata stopplaincompatibility
syn keyword mpDef stopsavingdata stripe_path_a stripe_path_n undashed
syn keyword mpDef undrawfill untext visualizeddraw visualizedfill
syn keyword mpDef visualizepaths withcolor withgray
syn keyword mpDef xscale_currentpicture xshifted
syn keyword mpDef xyscale_currentpicture yscale_currentpicture
syn keyword mpDef yshifted
syn keyword mpVardef acos acosh anglebetween area arrowhead
syn keyword mpVardef arrowheadonpath arrowpath asciistring asin asinh
syn keyword mpVardef atan basiccolors bbheight bbwidth bcomponent
syn keyword mpVardef blackcolor bottomboundary boundingbox c_phantom
syn keyword mpVardef ccomponent center cleanstring colorcircle
syn keyword mpVardef colordecimals colordecimalslist colorlike colorpart
syn keyword mpVardef colortype complementary complemented copylist cos
syn keyword mpVardef cosh cot cotd curved ddddecimal dddecimal ddecimal
syn keyword mpVardef decorated drawarrowpath epsed exp freedotlabel
syn keyword mpVardef freelabel gcomponent getunstringed grayed greyed
syn keyword mpVardef hsvtorgb infinite innerboundingbox interpolated inv
syn keyword mpVardef invcos inverted invsin invtan laddered leftboundary
syn keyword mpVardef leftpath leftrightpath listsize listtocurves
syn keyword mpVardef listtolines ln log mcomponent new_on_grid
syn keyword mpVardef outerboundingbox paired pen_size penpoint phantom
syn keyword mpVardef pointarrow pow punked rangepath rcomponent
syn keyword mpVardef redecorated repathed rightboundary rightpath
syn keyword mpVardef rotation roundedsquare set_inner_boundingbox
syn keyword mpVardef set_outer_boundingbox setunstringed shapedlist
syn keyword mpVardef simplified sin sinh sortlist sqr straightpath tan
syn keyword mpVardef tand tanh tensecircle thefreelabel topboundary
syn keyword mpVardef tripled undecorated unitvector unspiked unstringed
syn keyword mpVardef whitecolor ycomponent
syn keyword mpPrimaryDef along blownup bottomenlarged cornered crossed
syn keyword mpPrimaryDef enlarged enlonged leftenlarged llenlarged llmoved
syn keyword mpPrimaryDef lrenlarged lrmoved on paralleled randomized
syn keyword mpPrimaryDef randomizedcontrols randomshifted rightenlarged
syn keyword mpPrimaryDef shortened sized smoothed snapped softened squeezed
syn keyword mpPrimaryDef stretched superellipsed topenlarged ulenlarged
syn keyword mpPrimaryDef ulmoved uncolored urenlarged urmoved xsized
syn keyword mpPrimaryDef xstretched xyscaled xysized ysized ystretched zmod
syn keyword mpSecondaryDef anglestriped intersection_point numberstriped
syn keyword mpSecondaryDef peepholed
syn keyword mpTertiaryDef cutends
syn keyword mpNewInternal ahdimple ahvariant anglelength anglemethod
syn keyword mpNewInternal angleoffset charscale cmykcolormodel graycolormodel
syn keyword mpNewInternal greycolormodel maxdimensions metapostversion
syn keyword mpNewInternal nocolormodel rgbcolormodel striped_normal_inner
syn keyword mpNewInternal striped_normal_outer striped_reverse_inner
syn keyword mpNewInternal striped_reverse_outer
syn keyword mpType grayscale greyscale quadruplet triplet
syn keyword mpVariable ahfactor collapse_data color_map drawoptionsfactor
syn keyword mpVariable freedotlabelsize freelabeloffset grid grid_full
syn keyword mpVariable grid_h grid_left grid_nx grid_ny grid_w grid_x
syn keyword mpVariable grid_y intersection_found originlength
syn keyword mpVariable plain_compatibility_data pointlabelfont
syn keyword mpVariable pointlabelscale refillbackground savingdata
syn keyword mpVariable savingdatadone swappointlabels ticklength tickstep
syn keyword mpConstant CRLF DQUOTE PERCENT SPACE bcircle context_tool crlf
syn keyword mpConstant darkblue darkcyan darkgray darkgreen darkmagenta
syn keyword mpConstant darkred darkyellow downtriangle dquote freesquare
syn keyword mpConstant fulldiamond fullsquare fulltriangle lcircle
syn keyword mpConstant lefttriangle lightgray llcircle lltriangle lrcircle
syn keyword mpConstant lrtriangle mpversion nocolor noline oddly
syn keyword mpConstant originpath percent rcircle righttriangle space
syn keyword mpConstant tcircle triangle ulcircle ultriangle unitcircle
syn keyword mpConstant unitdiamond unittriangle uptriangle urcircle
syn keyword mpConstant urtriangle
endif " MetaFun macros
" Define the default highlighting
" Only when an item doesn't have highlighting yet
hi def link mpTeXinsert String
hi def link mpTeXbegin Statement
hi def link mpTeXend Statement
hi def link mpInternal mfInternal
hi def link mpMacro Macro
hi def link mpTeXdelim mpPrimitive
hi def link mpBoolExp mfBoolExp
hi def link mpNumExp mfNumExp
hi def link mpPairExp mfPairExp
hi def link mpPathExp mfPathExp
hi def link mpPenExp mfPenExp
hi def link mpPicExp mfPicExp
hi def link mpStringExp mfStringExp
hi def link mpInternal mfInternal
hi def link mpCommand mfCommand
hi def link mpType mfType
hi def link mpPrimitive mfPrimitive
hi def link mpDef mfDef
hi def link mpVardef mpDef
hi def link mpPrimaryDef mpDef
hi def link mpSecondaryDef mpDef
hi def link mpTertiaryDef mpDef
hi def link mpNewInternal mpInternal
hi def link mpVariable mfVariable
hi def link mpConstant mfConstant
hi def link mpOnOff mpPrimitive
hi def link mpDash mpPrimitive
hi def link mpTeXKeyword Identifier
let b:current_syntax = "mp"
" vim: ts=8
let &cpo = s:cpo_sav
unlet! s:cpo_sav
" vim:sw=2

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: php PHP 3/4/5/7
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
" Last Change: Jul 27, 2016
" Last Change: Dec 11, 2016
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
@@ -495,7 +495,7 @@ syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,
" Highlighting for __autoload slightly different from line above
syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar
\ __autoload
highlight link phpSpecialFunction phpOperator
hi def link phpSpecialFunction phpOperator
" Highlighting for PHP5's built-in classes
" - built-in classes harvested from get_declared_classes() in 5.1.4
@@ -518,14 +518,14 @@ syntax keyword phpClasses containedin=ALLBUT,phpComment,phpStringDouble,phpStrin
\ DOMCharacterData DOMAttr DOMElement DOMText DOMComment DOMTypeinfo DOMUserDataHandler
\ DOMLocator DOMConfiguration DOMCdataSection DOMDocumentType DOMNotation DOMEntity
\ DOMEntityReference DOMProcessingInstruction DOMStringExtend DOMXPath
highlight link phpClasses phpFunctions
hi def link phpClasses phpFunctions
" Highlighting for PHP5's built-in interfaces
" - built-in classes harvested from get_declared_interfaces() in 5.1.4
syntax keyword phpInterfaces containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar
\ Iterator IteratorAggregate RecursiveIterator OuterIterator SeekableIterator
\ Traversable ArrayAccess Serializable Countable SplObserver SplSubject Reflector
highlight link phpInterfaces phpConstant
hi def link phpInterfaces phpConstant
" option defaults:
if ! exists('php_special_functions')
@@ -553,7 +553,7 @@ endif
if php_alt_assignByReference
" special highlighting for '=&' operator
syntax match phpAssignByRef /=\s*&/ containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle
highlight link phpAssignByRef Type
hi def link phpAssignByRef Type
endif
if php_alt_comparisons
@@ -565,7 +565,7 @@ if php_alt_comparisons
syntax case ignore
syntax keyword phpComparison instanceof contained containedin=phpRegion
hi link phpComparison Statement
hi def link phpComparison Statement
endif
" ================================================================
@@ -645,21 +645,21 @@ hi def link phpTodo Todo
hi def link phpDocTodo Todo
hi def link phpMemberSelector Structure
if exists("php_oldStyle")
hi phpIntVar guifg=Red ctermfg=DarkRed
hi phpEnvVar guifg=Red ctermfg=DarkRed
hi phpOperator guifg=SeaGreen ctermfg=DarkGreen
hi phpVarSelector guifg=SeaGreen ctermfg=DarkGreen
hi phpRelation guifg=SeaGreen ctermfg=DarkGreen
hi phpIdentifier guifg=DarkGray ctermfg=Brown
hi phpIdentifierSimply guifg=DarkGray ctermfg=Brown
hi def phpIntVar guifg=Red ctermfg=DarkRed
hi def phpEnvVar guifg=Red ctermfg=DarkRed
hi def phpOperator guifg=SeaGreen ctermfg=DarkGreen
hi def phpVarSelector guifg=SeaGreen ctermfg=DarkGreen
hi def phpRelation guifg=SeaGreen ctermfg=DarkGreen
hi def phpIdentifier guifg=DarkGray ctermfg=Brown
hi def phpIdentifierSimply guifg=DarkGray ctermfg=Brown
else
hi def link phpIntVar Identifier
hi def link phpEnvVar Identifier
hi def link phpOperator Operator
hi def link phpVarSelector Operator
hi def link phpRelation Operator
hi def link phpIdentifier Identifier
hi def link phpIdentifierSimply Identifier
hi def link phpIntVar Identifier
hi def link phpEnvVar Identifier
hi def link phpOperator Operator
hi def link phpVarSelector Operator
hi def link phpRelation Operator
hi def link phpIdentifier Identifier
hi def link phpIdentifierSimply Identifier
endif

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Python
" Maintainer: Zvezdan Petkovic <zpetkovic@acm.org>
" Last Change: 2016 Aug 14
" Last Change: 2016 Oct 29
" Credits: Neil Schemenauer <nas@python.ca>
" Dmitry Vasiliev
"
@@ -46,6 +46,29 @@ endif
let s:cpo_save = &cpo
set cpo&vim
if exists("python_no_doctest_highlight")
let python_no_doctest_code_highlight = 1
endif
if exists("python_highlight_all")
if exists("python_no_builtin_highlight")
unlet python_no_builtin_highlight
endif
if exists("python_no_doctest_code_highlight")
unlet python_no_doctest_code_highlight
endif
if exists("python_no_doctest_highlight")
unlet python_no_doctest_highlight
endif
if exists("python_no_exception_highlight")
unlet python_no_exception_highlight
endif
if exists("python_no_number_highlight")
unlet python_no_number_highlight
endif
let python_space_error_highlight = 1
endif
" Keep Python keywords in alphabetical order inside groups for easy
" comparison with the table in the 'Python Language Reference'
" https://docs.python.org/2/reference/lexical_analysis.html#keywords,
@@ -81,30 +104,31 @@ syn keyword pythonInclude from import
syn keyword pythonAsync async await
" Decorators (new in Python 2.4)
" Python 3.5 introduced the use of the same symbol for matrix
" multiplication. We now have to exclude the symbol from being
" highlighted when used in that context. Hence, the check that it's
" preceded by empty space only (possibly in a docstring/doctest) and
" followed by decorator name, optional parenthesized list of arguments,
" and the next line with either def, class, or another decorator.
syn match pythonDecorator
\ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\)\zs@\%(\s*\h\%(\w\|\.\)*\%(([^)]*)\)\=\s*\n\s*\%(\.\.\.\s\+\)\=\%(@\s*\h\|\%(def\|class\)\s\+\)\)\@="
\ display nextgroup=pythonDecoratorName skipwhite
" A dot must be allowed because of @MyClass.myfunc decorators.
" It must be preceded by a decorator symbol and on a separate line from
" a function/class it decorates.
syn match pythonDecoratorName
\ "\%(@\s*\)\@<=\h\%(\w\|\.\)*\%(\%(([^)]*)\)\=\s*\n\)\@="
\ contained display nextgroup=pythonFunction skipnl
syn match pythonDecorator "@" display contained
syn match pythonDecoratorName "@\s*\h\%(\w\|\.\)*" display contains=pythonDecorator
" The zero-length non-grouping match of def or class before the function
" name is extremely important in pythonFunction. Without it, everything
" is interpreted as a function inside the contained environment of
" doctests.
syn match pythonFunction
\ "\%(\%(^\s*\)\%(\%(>>>\|\.\.\.\)\s\+\)\=\%(def\|class\)\s\+\)\@<=\h\w*"
\ contained
" Python 3.5 introduced the use of the same symbol for matrix multiplication:
" https://www.python.org/dev/peps/pep-0465/. We now have to exclude the
" symbol from highlighting when used in that context.
" Single line multiplication.
syn match pythonMatrixMultiply
\ "\%(\w\|[])]\)\s*@"
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
\ transparent
" Multiplication continued on the next line after backslash.
syn match pythonMatrixMultiply
\ "[^\\]\\\s*\n\%(\s*\.\.\.\s\)\=\s\+@"
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
\ transparent
" Multiplication in a parenthesized expression over multiple lines with @ at
" the start of each continued line; very similar to decorators and complex.
syn match pythonMatrixMultiply
\ "^\s*\%(\%(>>>\|\.\.\.\)\s\+\)\=\zs\%(\h\|\%(\h\|[[(]\).\{-}\%(\w\|[])]\)\)\s*\n\%(\s*\.\.\.\s\)\=\s\+@\%(.\{-}\n\%(\s*\.\.\.\s\)\=\s\+@\)*"
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue
\ transparent
syn match pythonFunction "\h\w*" display contained
syn match pythonComment "#.*$" contains=pythonTodo,@Spell
syn keyword pythonTodo FIXME NOTE NOTES TODO XXX contained
@@ -131,25 +155,6 @@ syn match pythonEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained
syn match pythonEscape "\\N{\a\+\%(\s\a\+\)*}" contained
syn match pythonEscape "\\$"
if exists("python_highlight_all")
if exists("python_no_builtin_highlight")
unlet python_no_builtin_highlight
endif
if exists("python_no_doctest_code_highlight")
unlet python_no_doctest_code_highlight
endif
if exists("python_no_doctest_highlight")
unlet python_no_doctest_highlight
endif
if exists("python_no_exception_highlight")
unlet python_no_exception_highlight
endif
if exists("python_no_number_highlight")
unlet python_no_number_highlight
endif
let python_space_error_highlight = 1
endif
" It is very important to understand all details before changing the
" regular expressions below or their order.
" The word boundaries are *not* the floating-point number boundaries
@@ -213,7 +218,9 @@ if !exists("python_no_builtin_highlight")
" non-essential built-in functions; Python 2 only
syn keyword pythonBuiltin apply buffer coerce intern
" avoid highlighting attributes as builtins
syn match pythonAttribute /\.\h\w*/hs=s+1 contains=ALLBUT,pythonBuiltin transparent
syn match pythonAttribute /\.\h\w*/hs=s+1
\ contains=ALLBUT,pythonBuiltin,pythonFunction,pythonAsync
\ transparent
endif
" From the 'Python Library Reference' class hierarchy at the bottom.
@@ -275,7 +282,7 @@ if !exists("python_no_doctest_highlight")
if !exists("python_no_doctest_code_highlight")
syn region pythonDoctest
\ start="^\s*>>>\s" end="^\s*$"
\ contained contains=ALLBUT,pythonDoctest,@Spell
\ contained contains=ALLBUT,pythonDoctest,pythonFunction,@Spell
syn region pythonDoctestValue
\ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$"
\ contained
@@ -287,45 +294,43 @@ if !exists("python_no_doctest_highlight")
endif
" Sync at the beginning of class, function, or method definition.
syn sync match pythonSync grouphere NONE "^\s*\%(def\|class\)\s\+\h\w*\s*("
syn sync match pythonSync grouphere NONE "^\%(def\|class\)\s\+\h\w*\s*[(:]"
" The default highlight links. Can be overridden later.
hi def link pythonStatement Statement
hi def link pythonConditional Conditional
hi def link pythonStatement Statement
hi def link pythonConditional Conditional
hi def link pythonRepeat Repeat
hi def link pythonOperator Operator
hi def link pythonException Exception
hi def link pythonException Exception
hi def link pythonInclude Include
hi def link pythonAsync Statement
hi def link pythonDecorator Define
hi def link pythonDecoratorName Function
hi def link pythonAsync Statement
hi def link pythonDecorator Define
hi def link pythonDecoratorName Function
hi def link pythonFunction Function
hi def link pythonComment Comment
hi def link pythonTodo Todo
hi def link pythonTodo Todo
hi def link pythonString String
hi def link pythonRawString String
hi def link pythonRawString String
hi def link pythonQuotes String
hi def link pythonTripleQuotes pythonQuotes
hi def link pythonTripleQuotes pythonQuotes
hi def link pythonEscape Special
if !exists("python_no_number_highlight")
hi def link pythonNumber Number
endif
if !exists("python_no_builtin_highlight")
hi def link pythonBuiltin Function
hi def link pythonBuiltin Function
endif
if !exists("python_no_exception_highlight")
hi def link pythonExceptions Structure
hi def link pythonExceptions Structure
endif
if exists("python_space_error_highlight")
hi def link pythonSpaceError Error
hi def link pythonSpaceError Error
endif
if !exists("python_no_doctest_highlight")
hi def link pythonDoctest Special
hi def link pythonDoctest Special
hi def link pythonDoctestValue Define
endif
let b:current_syntax = "python"
let &cpo = s:cpo_save

View File

@@ -2,8 +2,8 @@
" Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change: Aug 31, 2016
" Version: 162
" Last Change: Sep 22, 2016
" Version: 165
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
@@ -170,7 +170,7 @@ if exists("b:is_kornshell") || exists("b:is_bash")
" Touch: {{{1
" =====
syn match shTouch '\<touch\>[^;#]*' skipwhite nextgroup=shComment contains=shTouchCmd
syn match shTouch '\<touch\>[^;#]*' skipwhite nextgroup=shComment contains=shTouchCmd,shDoubleQuote,shSingleQuote,shDeref,shDerefSimple
syn match shTouchCmd '\<touch\>' contained
endif
@@ -220,7 +220,7 @@ syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")"
"=======
syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial
syn region shTest transparent matchgroup=shStatement start="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
syn region shNoQuote start='\S' skip='\%(\\\\\)*\\.' end='\ze\s' contained
syn region shNoQuote start='\S' skip='\%(\\\\\)*\\.' end='\ze\s' contained contains=shDerefSimple,shDeref
syn match shAstQuote contained '\*\ze"' nextgroup=shString
syn match shTestOpr contained '[^-+/%]\zs=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
syn match shTestOpr contained "<=\|>=\|!=\|==\|=\~\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
@@ -355,7 +355,11 @@ syn region shBkslshDblQuote contained matchgroup=shQuote start=+"+ skip=+\\"+ e
" Comments: {{{1
"==========
syn cluster shCommentGroup contains=shTodo,@Spell
syn keyword shTodo contained COMBAK FIXME TODO XXX
if exists("b:is_bash")
syn match shTodo contained "\<\%(COMBAK\|FIXME\|TODO\|XXX\)\ze:\=\>"
else
syn keyword shTodo contained COMBAK FIXME TODO XXX
endif
syn match shComment "^\s*\zs#.*$" contains=@shCommentGroup
syn match shComment "\s\zs#.*$" contains=@shCommentGroup
syn match shComment contained "#.*$" contains=@shCommentGroup

View File

@@ -1,10 +1,9 @@
" Vim syntax file
" Language: sendmail
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Oct 23, 2014
" Version: 7
" Last Change: Oct 25, 2016
" Version: 8
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM
if exists("b:current_syntax")
finish
endif
@@ -62,10 +61,10 @@ hi def link smClause Special
hi def link smClauseError Error
hi def link smComment Comment
hi def link smDefine Statement
hi def link smElse Delimiter
hi def link smElse Delimiter
hi def link smHeader Statement
hi def link smHeaderSep String
hi def link smMesg Special
hi def link smMesg Special
hi def link smPrecedence Number
hi def link smRewrite Statement
hi def link smRewriteComment Comment
@@ -76,7 +75,6 @@ hi def link smRuleset Preproc
hi def link smTrusted Special
hi def link smVar String
let b:current_syntax = "sm"
" vim: ts=18

Some files were not shown because too many files have changed in this diff Show More