Compare commits

...

129 Commits

Author SHA1 Message Date
Bjorn Winckler 18c7318124 Snapshot 72 2013-10-25 20:07:35 +02:00
Bjorn Winckler 2f0cd84c94 Avoid warning if HAVE_DUP is redefined 2013-10-25 19:09:37 +02:00
Bjorn Winckler 0f39305e52 Avoid directly calling objc runtime functions in C
By managing autorelease pools in objc code we avoid warnings on OS X
10.9 and it is also safer than calling objc runtime functions from C.
2013-10-25 18:46:09 +02:00
John Szakmeister bc25430228 Fix getfontname()
getfontname() would incorrectly return strings of the form
"FONTNAME:SIZE", when it should be returning strings of the form
"FONTNAME:hSIZE"--notice the "h" in the last form.

To fix this, we change the internal representation of the font name and
size to include the "h", and peel it off when actually setting the font.
2013-10-11 20:33:18 +02:00
Felix Bünemann b91903e9bf Fix 10.9 Ruby.framework detection/compilation
Mac OS X Mavericks ships with Ruby.framework 2.0 which requires some
fixes to enable proper header inclusion and version defines.
2013-10-09 23:14:34 +02:00
Bjorn Winckler df7b6fb380 Always pull in AvailabilityMacros.h
This fixes a compilation problem on OS X 10.9.  Patch by
@felixbuenemann.
2013-10-07 18:22:34 +02:00
Bjorn Winckler 655e0a80b3 Merge branch 'vim' 2013-10-06 21:11:56 +02:00
Bram Moolenaar a7aeaef65e Added tag v7-4-052 for changeset b9c1c1f4cda9 2013-10-06 17:46:56 +02:00
Bram Moolenaar 30dff84021 updated for version 7.4.052
Problem:    With 'fo' set to "a2" inserting a space in the first column may
	    cause the cursor to jump to the previous line.
Solution:   Handle the case when there is no comment leader properly. (Tor
	    Perkins)  Also fix that cursor is in the wrong place when spaces
	    get replaced with a Tab.
2013-10-06 17:46:56 +02:00
Bram Moolenaar f18be56366 Added tag v7-4-051 for changeset e7a2f217a385 2013-10-06 15:46:11 +02:00
Bram Moolenaar adcdbb690f updated for version 7.4.051
Problem:    Syntax highlighting a Yaml file causes a crash. (Blake Preston)
Solution:   Copy the pim structure before calling addstate() to avoid it
	    becoming invalide when the state list is reallocated.
2013-10-06 15:46:11 +02:00
Bram Moolenaar 3c85f00311 Runtime file updates. 2013-10-06 14:22:40 +02:00
Bjorn Winckler ce0bd683e3 Merge branch 'vim'
Conflicts:
	src/auto/configure
2013-10-06 13:23:28 +02:00
Bram Moolenaar 7ea9af9b10 Added tag v7-4-050 for changeset eb33cadafcab 2013-10-02 21:55:02 +02:00
Bram Moolenaar f3d6f0b01e updated for version 7.4.050
Problem:    "gn" selects too much for the pattern "\d" when there are two
	    lines with a single digit. (Ryan Carney)
Solution:   Adjust the logic of is_one_char(). (Christian Brabandt)
2013-10-02 21:55:02 +02:00
Bram Moolenaar 4b5a527d4a Added tag v7-4-049 for changeset 15c1b8a20da6 2013-10-02 18:43:06 +02:00
Bram Moolenaar 4046505847 updated for version 7.4.049
Problem:    In Ex mode, when line numbers are enabled the substitute prompt is
	    wrong.
Solution:   Adjust for the line number size. (Benoit Pierre)
2013-10-02 18:43:06 +02:00
Bram Moolenaar cc1a55e6c4 Added tag v7-4-048 for changeset 31c9acfeda8f 2013-10-02 18:23:07 +02:00
Bram Moolenaar a53dd3c690 updated for version 7.4.048
Problem:    Recent clang version complains about -fno-strength-reduce.
Solution:   Add a configure check for the clang version. (Kazunobu Kuriyama)
2013-10-02 18:23:07 +02:00
Bram Moolenaar 68f317fa38 Added tag v7-4-047 for changeset c21b2f52f1dd 2013-10-02 16:46:29 +02:00
Bram Moolenaar b62988d05c updated for version 7.4.047
Problem:    When using input() in a function invoked by a mapping it doesn't
	    work.
Solution:   Temporarily reset ex_normal_busy. (Yasuhiro Matsumoto)
2013-10-02 16:46:28 +02:00
Bram Moolenaar e641c8f6ed Added tag v7-4-046 for changeset 68056d414f09 2013-10-02 14:25:44 +02:00
Bram Moolenaar 51efe86365 updated for version 7.4.046
Problem:    Can't use Tcl 8.6.
Solution:   Change how Tcl_FindExecutable is called. (Jan Nijtmans)
2013-10-02 14:25:44 +02:00
Bram Moolenaar c71290698d Added tag v7-4-045 for changeset 8ced827b2e8b 2013-09-29 21:11:05 +02:00
Bram Moolenaar a21c226f09 updated for version 7.4.045
Problem:    substitute() does not work properly when the pattern starts with
	    "\ze".
Solution:   Detect an empty match. (Christian Brabandt)
2013-09-29 21:11:05 +02:00
Bram Moolenaar b8eb72ca27 Added tag v7-4-044 for changeset c0e3990aed3f 2013-09-29 19:05:21 +02:00
Bram Moolenaar d0acf65cbe updated for version 7.4.044
Problem:    Can't build with old MSVC. (Wang Shoulin)
Solution:   Define OPEN_OH_ARGTYPE instead of using intptr_t directly.
2013-09-29 19:05:21 +02:00
Bram Moolenaar 99331b8131 Added tag v7-4-043 for changeset 6d11572e2c8b 2013-09-29 16:27:47 +02:00
Bram Moolenaar 572449b0e6 updated for version 7.4.043
Problem:    VMS can't handle long function names.
Solution:   Shorten may_req_ambiguous_character_width. (Samuel Ferencik)
2013-09-29 16:27:47 +02:00
Bram Moolenaar a3131d5010 Added tag v7-4-042 for changeset 70915ede509a 2013-09-29 13:38:29 +02:00
Bram Moolenaar 877a51db85 updated for version 7.4.042
Problem:    When using ":setlocal" for 'spell' and 'spellang' then :spelldump
	    doesn't work. (Dimitar Dimitrov)
Solution:   Copy the option variables to the new window used to show the dump.
	    (Christian Brabandt)
2013-09-29 13:38:29 +02:00
Bram Moolenaar 53aae0317e Added tag v7-4-041 for changeset 408f2a1a953f 2013-09-25 23:24:58 +02:00
Bram Moolenaar 9b49ab377a updated for version 7.4.041
Problem:    Visual selection does not remain after being copied over. (Axel
	    Bender)
Solution:   Move when VIsual_active is reset. (Christian Brabandt)
2013-09-25 23:24:57 +02:00
Bram Moolenaar 8c46de8ae3 Added tag v7-4-040 for changeset 8336fd924e05 2013-09-25 21:00:28 +02:00
Bram Moolenaar 93073ac9cf updated for version 7.4.040
Problem:    Valgrind error on exit when a script-local variable holds a
	    reference to the scope of another script.
Solution:   First clear all variables, then free the scopes. (ZyX)
2013-09-25 21:00:28 +02:00
Bram Moolenaar 45e8b16450 Added tag v7-4-039 for changeset 4dfba3df303c 2013-09-25 19:13:39 +02:00
Bram Moolenaar 189d751995 updated for version 7.4.039
Problem:    MS-Windows: MSCV10 and earlier can't handle symlinks to a
	    directory properly.
Solution:   Add stat_symlink_aware() and wstat_symlink_aware(). (Ken Takata)
2013-09-25 19:13:38 +02:00
Bram Moolenaar a03c3d608b Added tag v7-4-038 for changeset 6daa78b6b99a 2013-09-25 18:54:24 +02:00
Bram Moolenaar fd80524752 updated for version 7.4.038
Problem:    Using "zw" and "zg" when 'spell' is off give a confusing error
	    message. (Gary Johnson)
Solution:   Ignore the error when locating the word.  Explicitly mention what
	    word was added. (Christian Brabandt)
2013-09-25 18:54:24 +02:00
Bram Moolenaar c2cd21ca76 Added tag v7-4-037 for changeset c3d379c2a115 2013-09-25 18:16:38 +02:00
Bram Moolenaar b1b90f0bcf updated for version 7.4.037
Problem:    Using "\ze" in a sub-pattern does not result in the end of the
	    match to be set. (Axel Bender)
Solution:   Copy the end of match position when a recursive match was
	    successful.
2013-09-25 18:16:38 +02:00
Bram Moolenaar a162bc2b1e Added tag v7-4-036 for changeset 90e2f0729a0d 2013-09-25 16:41:55 +02:00
Bram Moolenaar 30f4c35c09 updated for version 7.4.036
Problem:    NFA engine does not capture group correctly when using \@>. (ZyX)
Solution:   Copy submatches before doing the recursive match.
2013-09-25 16:41:54 +02:00
Bram Moolenaar 1d8eccce84 Fix problem with 'iskeyword' in CSS syntax. 2013-09-24 23:30:38 +02:00
Bjorn Winckler 3f6a4d7b84 Merge branch 'vim' 2013-09-23 12:19:49 +02:00
Bram Moolenaar 9c77e9b382 Added tag v7-4-035 for changeset 5481f188dcbb 2013-09-22 15:43:37 +02:00
Bram Moolenaar 6c7a282e1e updated for version 7.4.035
Problem:    MS-Windows: The mouse pointer flickers when going from command
	    line mode to Normal mode.
Solution:   Check for WM_NCMOUSEMOVE. (Ken Takata)
2013-09-22 15:43:37 +02:00
Bram Moolenaar 6c8e827b1a Added tag v7-4-034 for changeset 22dfcd1494e4 2013-09-22 15:23:44 +02:00
Bram Moolenaar 9b8c8f5a91 updated for version 7.4.034
Problem:    Using "p" in Visual block mode only changes the first line.
Solution:   Repeat the put in all text in the block. (Christian Brabandt)
2013-09-22 15:23:44 +02:00
Bram Moolenaar ac1c59e0c7 Added tag v7-4-033 for changeset 91f6a28e010d 2013-09-22 15:03:38 +02:00
Bram Moolenaar 8f926bf089 updated for version 7.4.033
Problem:    When the terminal has only 20 lines test 92 and 93 overwrite the
	    input file.
Solution:   Explicitly write test.out. Check that the terminal is large enough
	    to run the tests.  (Hirohito Higashi)
2013-09-22 15:03:38 +02:00
Bram Moolenaar c2ec86c1f8 Update runtime files. Add support for J. 2013-09-22 14:42:24 +02:00
Bram Moolenaar 64bb77db2b Added tag v7-4-032 for changeset 71e92a1cb37d 2013-09-22 13:57:25 +02:00
Bram Moolenaar 91d67154c4 updated for version 7.4.032
Problem:    NFA engine does not match the NUL character. (Jonathon Merz)
Solution:   Ues 0x0a instead of NUL. (Christian Brabandt)
2013-09-22 13:57:24 +02:00
Bjorn Winckler 6be3e4dbdf Merge branch 'vim' 2013-09-21 17:09:50 +02:00
Bram Moolenaar c99b78c60e Added tag v7-4-031 for changeset b21b5dcdca21 2013-09-20 20:13:53 +02:00
Bram Moolenaar d3b738cb51 updated for version 7.4.031
Problem:    ":diffoff!" resets options even when 'diff' is not set. (Charles
	    Cooper)
Solution:   Only resets related options in a window where 'diff' is set.
2013-09-20 20:13:53 +02:00
Bram Moolenaar 9f10b732e4 Added tag v7-4-030 for changeset 0978e99043d2 2013-09-19 20:49:04 +02:00
Bram Moolenaar bfe9b1146a updated for version 7.4.030
Problem:    The -mno-cygwin argument is no longer supported by Cygwin.
Solution:   Remove the arguments. (Steve Hall)
2013-09-19 20:49:04 +02:00
Bram Moolenaar 2a05336d23 Add files missing from 7.4.028. 2013-09-19 17:04:30 +02:00
Bram Moolenaar 0b0173ffb8 Added tag v7-4-029 for changeset 2d3fbc68b3a8 2013-09-19 17:04:01 +02:00
Bram Moolenaar facd368a90 updated for version 7.4.029
Problem:    An error in a pattern is reported twice.
Solution:   Remove the retry with the backtracking engine, it won't work.
2013-09-19 17:04:01 +02:00
Bram Moolenaar 98735fccb3 Added tag v7-4-028 for changeset 923738744a60 2013-09-19 17:00:20 +02:00
Bram Moolenaar 1c208b5f8c updated for version 7.4.028
Problem:    Equivalence classes are not working for multi-byte characters.
Solution:   Copy the rules from the old to the new regexp engine. Add a test
	    to check both engines.
2013-09-19 17:00:20 +02:00
Bjorn Winckler 90a2abe6f7 Merge branch 'vim' 2013-09-16 09:19:14 +02:00
Bram Moolenaar 835cc6e85d Added tag v7-4-027 for changeset 73cc7272de5e 2013-09-08 20:00:48 +02:00
Bram Moolenaar be9645d627 updated for version 7.4.027
Problem:    Another valgrind error when using CTRL-X CTRL-F at the start of
	    the line. (Dominique Pelle)
Solution:   Don't call mb_ptr_back() at the start of the line.  Add a test.
2013-09-08 20:00:48 +02:00
Bram Moolenaar 155cd7fb26 Added tag v7-4-026 for changeset 6bbb2ae990c9 2013-09-08 16:07:07 +02:00
Bram Moolenaar b8ccd38208 updated for version 7.4.026
Problem:    Clang warning for int shift overflow.
Solution:   Use unsigned and cast back to int. (Dominique Pelle)
2013-09-08 16:07:07 +02:00
Bram Moolenaar 54ddb4bff3 Added tag v7-4-025 for changeset 9085d32d7424 2013-09-08 16:03:46 +02:00
Bram Moolenaar 76948c26ec updated for version 7.4.025
Problem:    Reading before start of a string.
Solution:   Do not call mb_ptr_back() at start of a string. (Dominique Pelle)
2013-09-08 16:03:45 +02:00
Bram Moolenaar 6e7b06d73f Added tag v7-4-024 for changeset 00d61a47df66 2013-09-08 15:40:49 +02:00
Bram Moolenaar f54552be5c updated for version 7.4.024
Problem:    When root edits a file the undo file is owned by root while the
	    edited file may be owned by another user, which is not allowed.
	    (cac2s)
Solution:   Accept an undo file owned by the current user.
2013-09-08 15:40:49 +02:00
Bram Moolenaar bd42891612 Added tag v7-4-023 for changeset 09361f13580b 2013-09-07 16:35:42 +02:00
Bram Moolenaar dc55da4915 updated for version 7.4.023
Problem:    Compiler warning on 64 bit windows.
Solution:   Add type cast. (Mike Williams)
2013-09-07 16:35:42 +02:00
Bjorn Winckler 04f77a4338 Snapshot 71 2013-09-06 18:00:40 +02:00
Bjorn Winckler 7574495bfe Merge branch 'vim' 2013-09-06 17:53:04 +02:00
Björn Winckler 0f3e96b8c5 Merge pull request #33 from Sidnicious/patch-1
Don't double-encode URLs before parsing them
2013-09-06 08:19:24 -07:00
Björn Winckler 52f4da8fe0 Merge pull request #34 from bdesham/patch-1
Use “noremap” in system gvimrc
2013-09-06 08:13:47 -07:00
Bram Moolenaar 9416bca31b Updated runtime files. 2013-09-05 22:13:31 +02:00
Bram Moolenaar 25bd5e53f4 Added tag v7-4-022 for changeset 965044860b7f 2013-09-05 21:41:40 +02:00
Bram Moolenaar 842c4dd447 updated for version 7.4.022
Problem:    Deadlock while exiting, because of allocating memory.
Solution:   Do not use gettext() in deathtrap(). (James McCoy)
2013-09-05 21:41:39 +02:00
Bram Moolenaar c33239dbbb Added tag v7-4-021 for changeset c514693882b9 2013-09-05 21:15:44 +02:00
Bram Moolenaar ac58a6bcd4 updated for version 7.4.021
Problem:    NFA regexp: Using \ze in one branch which doesn't match may cause
	    end of another branch to be wrong. (William Fugh)
Solution:   Set end position if it wasn't set yet.
2013-09-05 21:15:44 +02:00
Benjamin Esham 010635f861 Use “noremap” for all other mappings too 2013-09-05 14:47:33 -04:00
Benjamin Esham c972338008 Use “inoremap” for <M-BS> and <D-BS>
As a Mac user I’m used to using Option-Delete to delete to the beginning of the previous word; MacVim sets up this behavior with its gvimrc. But I also like to use Control-W to delete to the beginning of the line. This change makes it possible for these two mappings to coexist without a problem.
2013-09-05 11:51:59 -04:00
Bram Moolenaar e14e2bd1fe Added tag v7-4-020 for changeset c1ae5baa41f4 2013-09-05 16:05:36 +02:00
Bram Moolenaar 4fafaa8b36 updated for version 7.4.020
Problem:    NFA engine matches too much with \@>. (John McGowan)
Solution:   When a whole pattern match is found stop searching.
2013-09-05 16:05:36 +02:00
Bram Moolenaar 1af6c83e0a Added tag v7-4-019 for changeset d5eb32dc231c 2013-09-05 13:50:53 +02:00
Bram Moolenaar 8e2a162bf8 updated for version 7.4.019
Problem:    MS-Windows: File name completion doesn't work properly with
	    Chinese characters. (Yue Wu)
Solution:   Take care of multi-byte characters when looking for the start of
	    the file name. (Ken Takata)
2013-09-05 13:50:53 +02:00
Bram Moolenaar 9297019ba6 Added tag v7-4-018 for changeset 460d5be9395e 2013-09-05 12:49:52 +02:00
Bram Moolenaar 777ae8ac47 updated for version 7.4.018
Problem:    When completing item becomes unselected. (Shougo Matsu)
Solution:   Revert patch 7.3.1269.
2013-09-05 12:49:52 +02:00
Bram Moolenaar 2a951b7156 Added tag v7-4-017 for changeset c47c8cd5fe5c 2013-09-05 12:06:33 +02:00
Bram Moolenaar 4a96bd0f33 updated for version 7.4.017
Problem:    ":help !!" does not find the "!!" tag in the help file. (Ben
	    Fritz)
Solution:   When reading the start of the tags file do parse lines that are
	    not header lines.
2013-09-05 12:06:33 +02:00
Bjorn Winckler c5c6bebf10 Merge branch 'vim' 2013-09-01 12:11:52 +02:00
Bram Moolenaar 3fd86dc03a Added tag v7-4-016 for changeset 8d5cd0ec3e71 2013-08-30 17:29:16 +02:00
Bram Moolenaar 4ff15ba7b6 updated for version 7.4.016
Problem:    MS-Windows: File name completion doesn't work properly with
	    Chinese characters. (Yue Wu)
Solution:   Add fname_casew(). (Ken Takata)
2013-08-30 17:29:16 +02:00
Bram Moolenaar abfb2163cb Added tag v7-4-015 for changeset a7478f9f2551 2013-08-30 17:11:33 +02:00
Bram Moolenaar aa8c48fe55 updated for version 7.4.015
Problem:    MS-Windows: Detecting node type does not work for multi-byte
	    characters.
Solution:   Use wide character function when needed. (Ken Takata)
2013-08-30 17:11:33 +02:00
Bram Moolenaar a573223877 Added tag v7-4-014 for changeset 9801d06e7b4c 2013-08-30 17:07:02 +02:00
Bram Moolenaar c643a48c39 updated for version 7.4.014
Problem:    MS-Windows: check for writing to device does not work.
Solution:   Fix #ifdefs. (Ken Takata)
2013-08-30 17:07:01 +02:00
Bram Moolenaar 5dcb84635f Added tag v7-4-013 for changeset 07737d3aa817 2013-08-30 16:51:19 +02:00
Bram Moolenaar be17bc2cc2 updated for version 7.4.013
Problem:    File name buffer too small for utf-8.
Solution:   Use character count instead of byte count. (Ken Takata)
2013-08-30 16:51:18 +02:00
Bram Moolenaar d7d89c9cad Added tag v7-4-012 for changeset 8e28c23e482c 2013-08-30 16:44:19 +02:00
Bram Moolenaar 554e2eab32 updated for version 7.4.012
Problem:    MS-Windows: resolving shortcut does not work properly with
	    multi-byte characters.
Solution:   Use wide system functions. (Ken Takata)
2013-08-30 16:44:19 +02:00
Bram Moolenaar 9eb60f358e Added tag v7-4-011 for changeset 54e66395831c 2013-08-30 16:35:45 +02:00
Bram Moolenaar cabbc20d87 updated for version 7.4.011
Problem:    Cannot find out if "acl" and "xpm" features are supported.
Solution:   Add "acl" and "xpm" to the list of features. (Ken Takata)
2013-08-30 16:35:44 +02:00
Bram Moolenaar 581b7aaaf9 Added tag v7-4-010 for changeset bb358cc41d92 2013-08-30 16:00:09 +02:00
Bram Moolenaar 35a70f5453 updated for version 7.4.010
Problem:    Crash with invalid argument to mkdir().
Solution:   Check for empty string. (lcd47)
2013-08-30 16:00:08 +02:00
Bram Moolenaar 3283d2bbe4 Added tag v7-4-009 for changeset 8b5d80861c5e 2013-08-25 17:46:08 +02:00
Bram Moolenaar cbeea0f01b updated for version 7.4.009
Problem:    When a file was not decrypted (yet), writing it may destroy the
	    contents.
Solution:   Mark the file as readonly until decryption was done. (Christian
	    Brabandt)
2013-08-25 17:46:08 +02:00
Bram Moolenaar 335193bd5a Added tag v7-4-008 for changeset b04bdb2c5fce 2013-08-25 17:01:42 +02:00
Bram Moolenaar 0d8dfc45e3 updated for version 7.4.008
Problem:    New regexp engine can't be interrupted.
Solution:   Check for CTRL-C pressed. (Yasuhiro Matsumoto)
2013-08-25 17:01:42 +02:00
Bjorn Winckler 6e441ac7a6 Merge branch 'vim' 2013-08-23 14:43:18 +02:00
Bram Moolenaar 320b379bb2 Added tag v7-4-007 for changeset 4fe1dfc7014e 2013-08-22 14:14:27 +02:00
Bram Moolenaar 56f7bc13ff updated for version 7.4.007
Problem:    Creating a preview window on startup leaves the screen layout in a
	    messed up state. (Marius Gedminas)
Solution:   Don't change firstwin. (Christian Brabandt)
2013-08-22 14:14:27 +02:00
Bram Moolenaar d2935a0ed5 Added tag v7-4-006 for changeset 2374a05efe20 2013-08-22 12:06:56 +02:00
Bram Moolenaar 967d2256bc updated for version 7.4.006
Problem:    mkdir("foo/bar/", "p") gives an error message. (David Barnett)
Solution:   Remove the trailing slash. (lcd)
2013-08-22 12:06:55 +02:00
Bram Moolenaar b062f605aa Added tag v7-4-005 for changeset 3640cf4c0d4b 2013-08-14 17:45:29 +02:00
Bram Moolenaar bb1064ee26 updated for version 7.4.005
Problem:    Using "vaB" while 'virtualedit' is set selects the wrong area.
	    (Dimitar Dimitrov)
Solution:   Reset coladd when finding a match.
2013-08-14 17:45:29 +02:00
Bram Moolenaar de6127d9b4 Added tag v7-4-004 for changeset f6247eaf4e1d 2013-08-14 17:11:20 +02:00
Bram Moolenaar aedeb427ba updated for version 7.4.004
Problem:    When closing a window fails ":bwipe" may hang.
Solution:   Let win_close() return FAIL and break out of the loop.
2013-08-14 17:11:20 +02:00
Bram Moolenaar 00534f3d3f Added tag v7-4-003 for changeset 560a6a232950 2013-08-14 14:18:41 +02:00
Bram Moolenaar d14db7f619 updated for version 7.4.003
Problem:    Memory access error in Ruby syntax highlighting. (Christopher Chow)
Solution:   Refresh stale pointer. (James McCoy)
2013-08-14 14:18:40 +02:00
Bram Moolenaar c49e96b843 Added tag v7-4-002 for changeset e29f11399cce 2013-08-14 13:34:25 +02:00
Bram Moolenaar 308f3c53c5 updated for version 7.4.002
Problem:    Pattern with two alternative look-behind matches does not match.
	    (Amadeus Demarzi)
Solution:   When comparing PIMs also compare their state ID to see if they are
	    different.
2013-08-14 13:34:25 +02:00
Bram Moolenaar d3e0994de9 Added tag v7-4-001 for changeset 3e9107b86b68 2013-08-14 12:06:49 +02:00
Bram Moolenaar 960c71130d updated for version 7.4.001
Problem:    Character classes such as [a-z] to not react to 'ignorecase'.
	    Breaks man page highlighting. (Mario Grgic)
Solution:   Add separate items for classes that react to 'ignorecase'.  Clean
	    up logic handling character classes.  Add more tests.
2013-08-14 12:06:49 +02:00
Sidney San Martín fe5039c278 Don't double-encode URLs before parsing them
<https://code.google.com/p/macvim/issues/detail?id=316> wasn't a bug.

When you're constructing a URL, you *should* end up escaping URL-unsafe
characters twice: once for the `file:` URL and once for the `mvim:` URL.
Escaping it inside MacVim breaks legit URLs with escapes at the `mvim:` level.
2013-07-17 14:26:49 -04:00
115 changed files with 3778 additions and 2180 deletions
+52
View File
@@ -2723,3 +2723,55 @@ ba37e955913e85700677b89a720c6e5fc8d23cc3 v7-4b-016
059c8a4b103f6971276435127c7ad970a81b0b2c v7-4b-021
d5d6b78cff090e87d52924179e44131b5ba7436d v7-4b-022
359743c1f59af353454dd80a26d9f8c20ae6ee8e v7-4
3e9107b86b68d83bfa94e43afffbf17623afe55e v7-4-001
e29f11399ccec9215cc8cfab1f9307dea0567d70 v7-4-002
560a6a2329503d483db019a88cacc3307e5c30b7 v7-4-003
f6247eaf4e1d556f782321890d725663f74babe6 v7-4-004
3640cf4c0d4b6e5687bb7a31678fab70c88ed94b v7-4-005
2374a05efe20287d55bd824689a41becc7662505 v7-4-006
4fe1dfc7014e57b4beb5a01c9e94357265d19a92 v7-4-007
b04bdb2c5fce70a278d26c477debb65a388da0ca v7-4-008
8b5d80861c5e0403ea9f54ddddce2752a463c8a5 v7-4-009
bb358cc41d920983629ace62bcf26decbf06cab4 v7-4-010
54e66395831c1a58b4a9804e7884e505842157e8 v7-4-011
8e28c23e482c5b3c8296d8022271822886793456 v7-4-012
07737d3aa81725672796cbc9a010d63414ab6fea v7-4-013
9801d06e7b4ccdcd02cf40bee34eaaada0ca0409 v7-4-014
a7478f9f2551e95bff138cd658f7a86ced804ab1 v7-4-015
8d5cd0ec3e7183a289f9bac41d3981307cdc1fac v7-4-016
c47c8cd5fe5c014c141d9fb3fa8935b268436a4e v7-4-017
460d5be9395ef3e05f4b1397ea98a5b54d825fc5 v7-4-018
d5eb32dc231cd870c562e7b0be96fa994b505d9f v7-4-019
c1ae5baa41f47bbf96be81e0158707a88af48b34 v7-4-020
c514693882b9f1c7be2e76a0307926df799da3ea v7-4-021
965044860b7f4884657fcaa042853238c7b13e69 v7-4-022
09361f13580b075b6e87707c47165e8d45ee98a5 v7-4-023
00d61a47df66cad21b80c6a683164e8d19180045 v7-4-024
9085d32d7424963013650805452ede5dad22211c v7-4-025
6bbb2ae990c92f6858b86c047e16dd12183d4273 v7-4-026
73cc7272de5e0173b9578f715c4794a8b3803bce v7-4-027
923738744a60e5e0bd2d9990758a2169106807ca v7-4-028
2d3fbc68b3a84ad2bf4d58c77244043328e3fb81 v7-4-029
0978e99043d2a9faedb1a3bad75b59121c270bde v7-4-030
b21b5dcdca2197fc86b9bde77bd6777f0e2d5175 v7-4-031
71e92a1cb37db719d6406858a50ca3bdfc9881fb v7-4-032
91f6a28e010d49ae73c13c85dbb8b14c9e5edb36 v7-4-033
22dfcd1494e4f7ea8ddc96e8dd895482e77e3b5a v7-4-034
5481f188dcbb7143596f2d470c7d674bf36efe64 v7-4-035
90e2f0729a0df249931a2dbe5f4310ba6c91cab4 v7-4-036
c3d379c2a115b957d82eaa5f2215b688f36a22da v7-4-037
6daa78b6b99a2ec07d20336db47c9f8165098062 v7-4-038
4dfba3df303c51fe31efd1255338e9fcbedc5401 v7-4-039
8336fd924e057d8c797043430325379d9a3ae37b v7-4-040
408f2a1a953feef25a2c5c96352c82674655e797 v7-4-041
70915ede509a737ac78c421f43c4447c9682ba41 v7-4-042
6d11572e2c8b1117b90adf588ff1467b185c1b57 v7-4-043
c0e3990aed3f179ef006e6de1458e9818c9ab896 v7-4-044
8ced827b2e8ba49f9ae0da2033670fee83e7b55b v7-4-045
68056d414f09fccb39219d7fde77fa06769ffa3b v7-4-046
c21b2f52f1dd003d860e3b574602ed3fdc2b4f1c v7-4-047
31c9acfeda8f1b84d51a480c1efbb56f384e76b1 v7-4-048
15c1b8a20da6d650ee3ed0e73c2e3832093b60dd v7-4-049
eb33cadafcabfc9cb3fc0741e169e84cafec11f8 v7-4-050
e7a2f217a385e6aebfddc4d29182924ac017d262 v7-4-051
b9c1c1f4cda9b82a2e703feec441d865b4722d56 v7-4-052
File diff suppressed because one or more lines are too long
+8 -1
View File
@@ -1,4 +1,4 @@
*change.txt* For Vim version 7.4. Last change: 2013 Jul 17
*change.txt* For Vim version 7.4. Last change: 2013 Aug 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1069,6 +1069,11 @@ another register. E.g., yank the text to copy, Visually select the text to
replace and use "0p . You can repeat this as many times as you like, the
unnamed register will be changed each time.
When you use a blockwise Visual mode command and yank only a single line into
a register, a paste on a visual selected area will paste that single line on
each of the selected lines (thus replacing the blockwise selected region by a
block of the pasted line).
*blockwise-register*
If you use a blockwise Visual mode command to get the text into the register,
the block of text will be inserted before ("P") or after ("p") the cursor
@@ -1126,6 +1131,8 @@ less than one line (the small delete register is used then). An exception is
made for the delete operator with these movement commands: |%|, |(|, |)|, |`|,
|/|, |?|, |n|, |N|, |{| and |}|. Register "1 is always used then (this is Vi
compatible). The "- register is used as well if the delete is within a line.
Note that these characters may be mapped. E.g. |%| is mapped by the matchit
plugin.
With each successive deletion or change, Vim shifts the previous contents
of register 1 into register 2, 2 into 3, and so forth, losing the previous
contents of register 9.
+7 -3
View File
@@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.4. Last change: 2013 Jul 07
*diff.txt* For Vim version 7.4. Last change: 2013 Sep 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -123,10 +123,14 @@ Since the option values are remembered with the buffer, you can edit another
file for a moment and come back to the same file and be in diff mode again.
*:diffo* *:diffoff*
:diffo[ff] Switch off diff mode for the current window.
:diffo[ff] Switch off diff mode for the current window. Resets related
options also when 'diff' was not set.
:diffo[ff]! Switch off diff mode for the current window and in all windows
in the current tab page where 'diff' is set.
in the current tab page where 'diff' is set. Resetting
related options only happens in a window that has 'diff' set,
if the current window does not have 'diff' set then no options
in it are changed.
The ":diffoff" command resets the relevant options to the values they had when
using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode.
+6 -2
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.4. Last change: 2013 Aug 03
*eval.txt* For Vim version 7.4. Last change: 2013 Aug 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -123,6 +123,7 @@ around the arguments, to invoke the function it refers to. Example: >
:echo Fn()
< *E704* *E705* *E707*
A Funcref variable must start with a capital, "s:", "w:", "t:" or "b:". You
can use "g:" but the following name must still start with a capital. You
cannot have both a Funcref variable and a function with the same name.
A special case is defining a function and directly assigning its Funcref to a
@@ -6337,6 +6338,7 @@ There are three types of features:
< Note that it's possible for patch 147 to be omitted even though 148 is
included.
acl Compiled with |ACL| support.
all_builtin_terms Compiled with all builtin terminals enabled.
amiga Amiga version of Vim.
arabic Compiled with Arabic support |Arabic|.
@@ -6507,7 +6509,9 @@ windows Compiled with support for more than one window.
writebackup Compiled with 'writebackup' default on.
xfontset Compiled with X fontset support |xfontset|.
xim Compiled with X input method support |xim|.
xpm_w32 Compiled with pixmap support for Win32.
xpm Compiled with pixmap support.
xpm_w32 Compiled with pixmap support for Win32. (Only for
backward compatibility. Use "xpm" instead.)
xsmp Compiled with X session management support.
xsmp_interact Compiled with interactive X session management support.
xterm_clipboard Compiled with support for xterm clipboard.
+2 -2
View File
@@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 7.4. Last change: 2012 Jun 29
*if_lua.txt* For Vim version 7.4. Last change: 2013 Sep 04
VIM REFERENCE MANUAL by Luis Carvalho
@@ -135,7 +135,7 @@ Vim evaluation and command execution, and others.
<
vim.funcref({name}) Returns a Funcref to function {name} (see
|Funcref|). It is equivalent to Vim's
"function".
"function". NOT IMPLEMENTED YET
vim.buffer([arg]) If "arg" is a number, returns buffer with
number "arg" in the buffer list or, if "arg"
+1 -1
View File
@@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 7.4. Last change: 2012 Oct 25
*if_perl.txt* For Vim version 7.4. Last change: 2013 Oct 05
VIM REFERENCE MANUAL by Sven Verdoolaege
+2 -2
View File
@@ -581,8 +581,8 @@ CLOJURE *ft-clojure-indent* *clojure-indent*
Clojure indentation differs somewhat from traditional Lisps, due in part to
the use of square and curly brackets, and otherwise by community convention.
These conventions are not always universally followed, so the Clojure indent
script offers a few configurable options, listed below.
These conventions are not universally followed, so the Clojure indent script
offers a few configurable options, listed below.
If the current vim does not include searchpairpos(), the indent script falls
back to normal 'lisp' indenting, and the following options are ignored.
+4 -4
View File
@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.4. Last change: 2013 Jul 17
*index.txt* For Vim version 7.4. Last change: 2013 Oct 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1191,12 +1191,12 @@ tag command action ~
|:digraphs| :dig[raphs] show or enter digraphs
|:display| :di[splay] display registers
|:djump| :dj[ump] jump to #define
|:dl| :dl short for |:delete|
|:dl| :del[ete]l short for |:delete|
|:dl| :dl short for |:delete| with the 'l' flag
|:dl| :del[ete]l short for |:delete| with the 'l' flag
|:dlist| :dli[st] list #defines
|:doautocmd| :do[autocmd] apply autocommands to current buffer
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
|:dp| :d[elete]p short for |:delete|
|:dp| :d[elete]p short for |:delete| with the 'p' flag
|:drop| :dr[op] jump to window editing file or edit file in
current window
|:dsearch| :ds[earch] list one #define
+4 -2
View File
@@ -1,4 +1,4 @@
*map.txt* For Vim version 7.4. Last change: 2013 Aug 03
*map.txt* For Vim version 7.4. Last change: 2013 Aug 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -380,7 +380,7 @@ it's just used here for this situation.
The simplest way to load a set of related language mappings is by using the
'keymap' option. See |45.5|.
In Insert mode and in Command-line mode the mappings can be disabled with
the CTRL-^ command |i_CTRL-^| |c_CTRL-^| These commands change the value of
the CTRL-^ command |i_CTRL-^| |c_CTRL-^|. These commands change the value of
the 'iminsert' option. When starting to enter a normal command line (not a
search pattern) the mappings are disabled until a CTRL-^ is typed. The state
last used is remembered for Insert mode and Search patterns separately. The
@@ -1359,6 +1359,8 @@ There are some special cases as well:
In the cases of the -count and -register attributes, if the optional argument
is supplied, it is removed from the argument list and is available to the
replacement text separately.
Note that these arguments can be abbreviated, but that is a deprecated
feature. Use the full name for new scripts.
Replacement text
+3 -3
View File
@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2013 Jul 09
*options.txt* For Vim version 7.4. Last change: 2013 Aug 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1889,8 +1889,8 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{not in Vi}
A sequence of single character flags. When a character is present
this indicates vi-compatible behavior. This is used for things where
not being vi-compatible is mostly or sometimes preferred.
this indicates Vi-compatible behavior. This is used for things where
not being Vi-compatible is mostly or sometimes preferred.
'cpoptions' stands for "compatible-options".
Commas can be added for readability.
To avoid problems with flags that are added in the future, use the
+2 -2
View File
@@ -1,4 +1,4 @@
*os_vms.txt* For Vim version 7.4. Last change: 2011 Aug 14
*os_vms.txt* For Vim version 7.4. Last change: 2013 Aug 22
VIM REFERENCE MANUAL
@@ -24,7 +24,7 @@ prompt.
1. Getting started *vms-started*
Vim (Vi IMproved) is a vi-compatible text editor that runs on nearly every
Vim (Vi IMproved) is a Vi-compatible text editor that runs on nearly every
operating system known to humanity. Now use Vim on OpenVMS too, in character
or X/Motif environment. It is fully featured and absolutely compatible with
Vim on other operating systems.
+1 -1
View File
@@ -93,7 +93,7 @@ the default value of 'term' from the environment variable "TERM".
$PATH *win32-PATH*
The directory of the Vim executable is appended to $PATH. This is mostly to
make "!xxd' work, as it is in the Tools menu. And it also means that when
make "!xxd" work, as it is in the Tools menu. And it also means that when
executable() returns 1 the executable can actually be executed.
==============================================================================
+1 -1
View File
@@ -188,7 +188,7 @@ WINDOWS *vimball-windows*
* Changed silent! to sil! (shorter)
* Safed |'swf'| setting (during vimball extraction,
its now turned off)
32 : May 19, 2010 * (Christian Brabrandt) :so someplugin.vba and
32 : May 19, 2010 * (Christian Brabandt) :so someplugin.vba and
:so someplugin.vba.gz (and the other supported
compression types) now works
* (Jan Steffens) added support for xz compression
+10 -12
View File
@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.4. Last change: 2013 Jul 05
*syntax.txt* For Vim version 7.4. Last change: 2013 Aug 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3156,18 +3156,16 @@ The g:vimsyn_embed option allows users to select what, if any, types of
embedded script highlighting they wish to have. >
g:vimsyn_embed == 0 : don't embed any scripts
g:vimsyn_embed =~ 'm' : embed mzscheme (but only if vim supports it)
g:vimsyn_embed =~ 'p' : embed perl (but only if vim supports it)
g:vimsyn_embed =~ 'P' : embed python (but only if vim supports it)
g:vimsyn_embed =~ 'r' : embed ruby (but only if vim supports it)
g:vimsyn_embed =~ 't' : embed tcl (but only if vim supports it)
g:vimsyn_embed =~ 'm' : support embedded mzscheme
g:vimsyn_embed =~ 'p' : support embedded perl
g:vimsyn_embed =~ 'P' : support embedded python
g:vimsyn_embed =~ 'r' : support embedded ruby
g:vimsyn_embed =~ 't' : support embedded tcl
<
By default, g:vimsyn_embed is "mpPr"; ie. syntax/vim.vim will support
highlighting mzscheme, perl, python, and ruby by default. Vim's has("tcl")
test appears to hang vim when tcl is not truly available. Thus, by default,
tcl is not supported for embedding (but those of you who like tcl embedded in
their vim syntax highlighting can simply include it in the g:vimembedscript
option).
By default, g:vimsyn_embed is a string supporting interpreters that your vim
itself supports. Concatenate multiple characters to support multiple types
of embedded interpreters; ie. g:vimsyn_embed= "mp" supports embedded mzscheme
and embedded perl.
*g:vimsyn_folding*
Some folding is now supported with syntax/vim.vim: >
+2
View File
@@ -1154,6 +1154,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
+GUI_Photon various.txt /*+GUI_Photon*
+GUI_neXtaw various.txt /*+GUI_neXtaw*
+X11 various.txt /*+X11*
+acl various.txt /*+acl*
+arabic various.txt /*+arabic*
+autocmd various.txt /*+autocmd*
+balloon_eval various.txt /*+balloon_eval*
@@ -1279,6 +1280,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
+writebackup various.txt /*+writebackup*
+xfontset various.txt /*+xfontset*
+xim various.txt /*+xim*
+xpm various.txt /*+xpm*
+xpm_w32 various.txt /*+xpm_w32*
+xsmp various.txt /*+xsmp*
+xsmp_interact various.txt /*+xsmp_interact*
+4 -4
View File
@@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 7.4. Last change: 2013 Jul 28
*tagsrch.txt* For Vim version 7.4. Last change: 2013 Oct 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -771,11 +771,11 @@ CTRL-W i Open a new window, with the cursor on the first line
*:dli* *:dlist*
:[range]dli[st][!] [/]string[/]
Like "[D" and "]D", but search in [range] lines
Like `[D` and `]D`, but search in [range] lines
(default: whole file).
See |:search-args| for [/] and [!]. {not in Vi}
Note that ":dl" works like ":delete" with the "l"
register.
Note that `:dl` works like `:delete` with the "l"
flag, not `:dlist`.
*[_CTRL-D*
[ CTRL-D Jump to the first macro definition that contains the
+120 -25
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2013 Aug 10
*todo.txt* For Vim version 7.4. Last change: 2013 Oct 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,25 +34,105 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Problem positioning the cursor after auto-formatting without a comment. (Tor
Perkins, 2013 Sep 1)
Using \1 in pattern goes one line too far. (Bohr Shaw, 2013 Sep 5)
Column is OK. "/\v(^.+\n)\1/e" (John Little, Sep 5)
Also, matches start of 2nd line, not the whole line.
Error for incomplete help argument. (John Beckett, 2013 Sep 12)
Popup menu: first item is not selected when typing more than one character?
Should win_redr_custom() not be allowed to use recursively?
(Yasuhiro Matsumoto, 2013 Aug 15)
NFA engine combining character mismatch. (glts, 2013 Aug 27)
Remark Dominique, Aug 27
Problem that a previous silent ":throw" causes a following try/catch not to
work. (ZyX, 2013 Sep 28)
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
Issue 164: freeze on regexp search.
Update for Clojure ftplugin. (Sung Pae). Await discussion about formatting in
ftplugins.
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
Patch to add "acl" and "xpm" as a feature. (Ken Takata, 2013 Jul 8)
Patch to avoid problem with colon in file name. (Yasuhiro Matsumoto, 2013 Sep
5) Only copy file name when needed: Sep 9.
Patch to make #N in 'cino' stop not indenting #lines. (Christian Brabandt,
2013 Sep 25)
Include systemverilog file? Two votes yes.
Wrapping around end of file does not work for "." after "cgn". (Dimitar
Dimitrov)
Patch by Christian Brabandt, 2013 Aug 22
Clang error for integer overflow. (Dominique Pelle, 2013 Sep 21)
Patch to add v:hlsearch. (ZyX, 2013 Sep 22)
Problem with 'spellsuggest' file, only works for some words.
(Cesar Romani, 2013 Aug 20) Depends on file name? (Aug 24)
Additional remark by glts: the suggested words are marked bad?
Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
Patch to make has() check for Vim version and patch at the same time.
(Marc Weber, 2013 Jun 7)
Patch to fix Visual-block insert using cursor keys. (Christian Brabandt, 2013
Sep 28) With test Sept 29.
VMS: Select() doesn't work properly, typing ESC may hang Vim. Use sys$qiow
instead. (Samuel Ferencik, 2013 Sep 28)
Several syntax file match "^\s*" which may get underlined if that's in the
highlight group. Add a "\zs" after it?
Win32: When a directory name contains an exclamation mark, completion doesn't
complete the contents of the directory. No escaping for the "!"? (Jan
Stocker, 2012 Jan 5; 2013 Aug 20)
Patch 2013 Sept 10, test: Sept 11.
Go through more coverity reports.
"gUgn" cannot be repeated, while "dgn" can.
Bug: Does not skip over expression with dict member properly. (ZyX, 2013 Sep
29)
Patch to make ColorScheme autocommand match with the colorscheme name instead
of the buffer name. (Christian Brabandt, 2013 Sep 25)
Patch to right-align signs. (James Kolb (email james), 2013 Sep 23)
With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa,
2013 Sep 5)
"gUgn" cannot be repeated, while "dgn" can. (Dimitar Dimitrov)
Patch by Christian Brabandt (2013 Aug 12)
Several Win32 functions are not using Unicode.
Patches to fix this. (Ken Takata, 2013 Aug 9)
/[b-a] gives error E16, should probably be E769.
:help gives example for z?, but it does not work. m? and t? do work.
Python: Extended funcrefs: use func_T* structure in place of char_u* function
names. (ZyX, 2013 Jul 15, update Sep 22, 24, 28)
Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4)
With tests: Sep 5.
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
Patch to make external commands work with multi-byte characters on Win32 when
@@ -83,10 +163,6 @@ Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar
Patch by Christian Brabandt, 2013 Mar 23.
Not 100% sure this is the right solution.
Win32: When a directory name contains an exclamation mark, completion doesn't
complete the contents of the directory. No escaping for the "!"? (Jan
Stocker, 2012 Jan 5)
Patch to support expression argument to sort() instead of a function name.
Yasuhiro Matsumoto, 2013 May 31.
Or should we add a more general mechanism, like lambda functions?
@@ -94,6 +170,10 @@ Or should we add a more general mechanism, like lambda functions?
Problem caused by patch 7.3.638: window->open does not update window
correctly. Issue 91.
8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
defined.
Issue 28.
Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt,
2013 Mar 19, later message)
@@ -108,6 +188,8 @@ carried over when using :global. (Christian Brabandt, 2013 Jun 19)
Bug with 'cursorline' in diff mode. Line being scrolled into view gets
highlighted as the cursor line. (Alessandro Ivaldi, 2013 Jun 4)
Two highlighting bugs. (Zyx, 2013 Aug 18)
Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5)
May 17: with winlist() and tabpagelist().
May 19: with local variables.
@@ -119,6 +201,8 @@ Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
Patch from Christian Brabandt to make the "buffer" argument for ":sign place"
optional. (2013 Jul 12)
Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2)
Patch to allow setting w:quickfix_title via setqflist() and setloclist()
functions. (Christian Brabandt, 2013 May 8, update May 21)
Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
@@ -126,6 +210,10 @@ Second one. Update May 22.
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
TCL: With MSVC 2010 doesn't find Tcl_FindExecutable. (tux)
Patch to define it. (Ken Takata, 2013 Aug 12) Is this right?
Probably not: http://code.google.com/p/vim/issues/detail?id=167
MS-Windows: Patch to make tests copy files to avoid changing the fileformat of
the files under version control. (Taro Muraoka, 2013 Jul 5)
@@ -167,8 +255,17 @@ Patch to make confirm() display colors. (Christian Brabandt, 2012 Nov 9)
Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27)
Do we need some way (option) to show the sign column even when there are no
signs? Patch by Christian Brabandt, 2013 Aug 22.
Patch to remove flicker from popup menu. (Yasuhiro Matsumoto, 2013 Aug 15)
Patch to use directX to draw text on Windows. Adds the 'renderoptions'
option. (Taro Muraoka, 2013 Jan 25, update 2013 Apr 3, May 14)
Fixes this problem:
8 Win32: Multi-byte characters are not displayed, even though the same font
in Notepad can display them. (Srinath Avadhanula) Try with the
UTF-8-demo.txt page with Andale Mono.
Patch to add 'completeselect' option. Specifies how to select a candidate in
insert completion. (Shougo, 2013 May 29)
@@ -182,9 +279,6 @@ b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan
Win32: The Python interface only works with one version of Python, selected at
compile time. Can this be made to work with version 2.1 and 2.2 dynamically?
Python: Extended funcrefs: use func_T* structure in place of char_u* function
names. (ZyX, 2013 Jul 15 and later)
Python: Be able to define a Python function that can be called directly from
Vim script. Requires converting the arguments and return value, like with
vim.bindeval().
@@ -272,6 +366,9 @@ Do give the prompt? Quit with an error?
Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14)
Patch to add digraph() function. (Christian Brabandt, 2013 Aug 22, update Aug
24)
Patch for input method status. (Hirohito Higashi, 2012 Apr 18)
Patch to use .png icons for the toolbar on MS-Windows. (Martin Gieseking, 2013
@@ -286,6 +383,7 @@ And one for gui_x11.txt.
More recent version: https://retracile.net/wiki/VimBreakIndent
Posted to vim-dev by Taylor Hedberg, 2011 Nov 25
Update by Taylor Hedberg, 2013 May 30.
Updated for Vim 7.4 by Ken Takata, 2013 Oct 5.
":cd" doesn't work when current directory path contains "**".
finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10)
@@ -396,7 +494,7 @@ cleared. See test64.
Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
Patch to make "z=" work when 'spell' is off. Does this have nasty side
effects? (Christian Brabandt, 2012 Aug 5)
effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
Would also need to do this for spellbadword() and spellsuggest().
Patch for variable tabstops.
@@ -456,6 +554,9 @@ With a filler line in diff mode, it isn't displayed in the column with line
number, but it is in the sign column. Doesn't look right. (ZyX 2011 Jun 5)
Patch by Christian Brabandt, 2011 Jun 5. Introduces new problems.
Add jump() function. (Marcin Szamotulski, 2013 Aug 29)
Is this needed? CTRL-O and CTRL-I do the same, just more difficult to use.
8 Add a command to jump to the next character highlighted with "Error".
Patch by Christian Brabandt, uses ]e [e ]t and [t. 2011 Aug 9.
@@ -573,8 +674,7 @@ setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
getpos()/setpos() don't include curswant. getpos() could return a fifth
element. setpos() could accept an optional fifth element.
Patch by Christian Brabandt, 2010 Sep 6. Check that new argument is optional
and that it's documented.
Patch by Christian Brabandt, 2010 Sep 6. Again 2013 Aug 22.
With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott,
2010 Oct 24)
@@ -759,6 +859,7 @@ Setting 'tags' to "tagsdir/*" does not find "tagsdir/tags". (Steven K. Wong,
Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
Added test, updates, June 23.
Updated for 7.4: http://litcave.rudi.ir/farsi_vim.diff
Patch to add "focusonly" to 'scrollopt', so that scrollbind also applies in
window that doesn't have focus. (Jonathon Mah, 2009 Jan 12)
@@ -885,7 +986,7 @@ correct. Don't use it in the swap file.
Completion for ":buf" doesn't work properly on Win32 when 'shellslash' is off.
(Henrik Ohman, 2009, Jan 29)
shellescape() depends on 'shellshash' for quoting. That doesn't work when
shellescape() depends on 'shellslash' for quoting. That doesn't work when
'shellslash' is set but using cmd.exe. (Ben Fritz)
Use a different option or let it depend on whether 'shell' looks like a
unix-like shell?
@@ -918,8 +1019,6 @@ Also: swap files are in ~/tmp/ One has relative file name ".mozilla/...".
Add v:motion_force. (Kana Natsuno, 2008 Dec 6)
Maybe call it v:motiontype.
Runtime files for Clojure. (Toralf Wittner, 2008 Jun 25)
MS-Windows: editing the first, empty buffer, 'ffs' set to "unix,dos", ":enew"
doesn't set 'ff' to "unix". (Ben Fritz, 2008 Dec 5) Reusing the old buffer
probably causes this.
@@ -1301,7 +1400,7 @@ Ebersbach, 2008 Feb 1)
Menu item that does "xxd -r" doesn't work when 'fileencoding' is utf-16.
Check for this and use iconv? (Edward L. Fox, 2007 Sep 12)
Does the conversion in the other direction work when 'filenecodings' is set
Does the conversion in the other direction work when 'fileencodings' is set
properly?
Cursor displayed in the wrong position when using 'numberwidth'. (James Vega,
@@ -1685,7 +1784,7 @@ More patches:
- testdir/Make_dos_sh.mak for running tests with MingW. (Bill Mccarthy, 2008
Sep 13)
- Patch for adding "space" item in 'listchars'. (Jérémie Roquet, 2009 Oct 29,
Docs patch Oct 30)
Docs patch Oct 30, update David Burgin (glts) 2013 Aug 24)
- Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520 by
Vissale Neang. (Martin Stubenschrott) Asked Vissale to make the scripts
more friendly for the Vim distribution.
@@ -1715,7 +1814,7 @@ Awaiting updated patches:
How does this work? Missing comments.
8 Add a few more command names to the menus. Patch from Jiri Brezina
(28 feb 2002). Will mess the translations...
7 ATTENTION dialog choices are more logical when "Delete it' appears
7 ATTENTION dialog choices are more logical when "Delete it" appears
before "Quit". Patch by Robert Webb, 2004 May 3.
- Include flipcase patch: ~/vim/patches/wall.flipcase2 ? Make it work
for multi-byte characters.
@@ -1887,9 +1986,6 @@ Win32 GUI known bugs:
8 Use another default for 'termencoding': the active codepage. Means that
when 'encoding' is changed typing characters still works properly.
Alternative: use the Unicode functions to obtain typed characters.
8 Win32: Multi-byte characters are not displayed, even though the same font
in Notepad can display them. (Srinath Avadhanula) Try with the
UTF-8-demo.txt page with Andale Mono.
7 The cursor color indicating IME mode doesn't work properly. (Shizhu Pan,
2004 May 9)
8 Win32: When clicking on the gvim title bar, which gives it focus, produces
@@ -2272,8 +2368,6 @@ Macintosh:
character. (Yasuhiro Matsumoto) It should return 1 when used on a tail
byte, like for utf-8. Store second byte of double-byte in ScreenLines2[]
(like for DBCS_JPNU) and put a zero in the second byte (like for UTF-8).
8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
defined.
7 Inside a function with "perl <<EOF" a line with "$i++" is recognized as an
":insert" command, causing the following "endfunction" not to be found.
Add skipping this perl construction inside function definitions.
@@ -3153,6 +3247,7 @@ Syntax highlighting:
Built-in script language:
8 Make the filename and line number available to script functions, so that
they can give useful debugging info. The whole call stack would be ideal.
At least use this for error messages.
7 Execute a function with standard option values. No need to save and
restore option values. Especially useful for new options. Problem: how
to avoid a performance penalty (esp. for string options)?
@@ -4655,7 +4750,7 @@ Marks:
Digraphs:
7 Make "ga" show the keymap for a character, if it exists.
Also show the code of the character after conversion to 'filenecoding'.
Also show the code of the character after conversion to 'fileencoding'.
- Use digraph table to tell Vim about the collating sequence of special
characters?
8 Add command to remove one or more (all) digraphs. (Brown)
+5 -4
View File
@@ -1,4 +1,4 @@
*undo.txt* For Vim version 7.4. Last change: 2012 Mar 04
*undo.txt* For Vim version 7.4. Last change: 2013 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -57,7 +57,7 @@ Use "u" to undo changes until the buffer becomes unchanged.
2. Two ways of undo *undo-two-ways*
How undo and redo commands work depends on the 'u' flag in 'cpoptions'.
There is the Vim way ('u' excluded) and the vi-compatible way ('u' included).
There is the Vim way ('u' excluded) and the Vi-compatible way ('u' included).
In the Vim way, "uu" undoes two changes. In the Vi-compatible way, "uu" does
nothing (undoes an undo).
@@ -249,8 +249,9 @@ a simple scheme that maps filesystem paths directly to undo files. Vim will
detect if an undo file is no longer synchronized with the file it was written
for (with a hash of the file contents) and ignore it when the file was changed
after the undo file was written, to prevent corruption. An undo file is also
ignored if its owner differs from the owner of the edited file. Set 'verbose'
to get a message about that when opening a file.
ignored if its owner differs from the owner of the edited file, except when
the owner of the undo file is the current user. Set 'verbose' to get a
message about that when opening a file.
Undo files are normally saved in the same directory as the file. This can be
changed with the 'undodir' option.
+1 -1
View File
@@ -86,7 +86,7 @@ line, type: >
v4jgq
"v" to start Visual mode, "4j' to move to the end of the paragraph and then
"v" to start Visual mode, "4j" to move to the end of the paragraph and then
the "gq" operator. The result is:
1 2 3
+2 -2
View File
@@ -328,8 +328,8 @@ actually use Vim to convert a file. Example: >
*45.5* Entering language text
Computer keyboards don't have much more than a hundred keys. Some languages
have thousands of characters, Unicode has ten thousands. So how do you type
these characters?
have thousands of characters, Unicode has over hundred thousand. So how do
you type these characters?
First of all, when you don't use too many of the special characters, you
can use digraphs. This was already explained in |24.9|.
When you use a language that uses many more characters than keys on your
+2
View File
@@ -291,6 +291,7 @@ g8 Print the hex values of the bytes used in the
in the normal, big and huge versions of Vim.
*+feature-list*
*+acl* |ACL| support included
*+ARP* Amiga only: ARP support included
B *+arabic* |Arabic| language support
N *+autocmd* |:autocmd|, automatic commands
@@ -429,6 +430,7 @@ S *+windows* more than one window
m *+writebackup* |'writebackup'| is default on
m *+xim* X input method |xim|
*+xfontset* X fontset support |xfontset|
*+xpm* pixmap support
m *+xpm_w32* Win32 GUI only: pixmap support |w32-xpm-support|
*+xsmp* XSMP (X session management) support
*+xsmp_interact* interactive XSMP (X session management) support
+1 -1
View File
@@ -2020,7 +2020,7 @@ File browser added *file-browser-5.2*
The Win32, Athena and Motif GUI bring up a file requester if the user asks to
":browse" for the ":e", ":w", ":r", ":so", ":redirect" and
":mkexrc/vimrc/vsess" commands. ::browse e /foo/bar" opens the requester in
":mkexrc/vimrc/vsess" commands. ":browse e /foo/bar" opens the requester in
the /foo/bar directory, so you can have nice mapping rhs's like ":browse so
$vim/macros". If no initial dir specified for ":browse e", can be compiled to
either begin in the current directory, or that of the current buffer. (Negri
+3 -3
View File
@@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.4. Last change: 2013 Aug 10
*version7.txt* For Vim version 7.4. Last change: 2013 Sep 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2397,7 +2397,7 @@ with special attributes were redrawn. Now only do this for characters that
actually are bold. Speeds up displaying considerably.
When only highlighting changes and the text is scrolled at the same time
everything is redraw instead of using a scroll and updating the changed text.
everything is redrawn instead of using a scroll and updating the changed text.
E.g., when using ":match" to highlight a paren that the cursor landed on.
Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
redrawing.
@@ -10295,7 +10295,7 @@ Functions:
Added special |expand()| argument that expands to the current line
number.
Made it possible to force |char2nr()| always give unicode codepoints
Made it possible to force |char2nr()| to always give unicode codepoints
regardless of current encoding. (Yasuhiro Matsumoto)
Made it possible for functions generating file list generate |List|
+2 -2
View File
@@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 7.4. Last change: 2012 Aug 08
*vi_diff.txt* For Vim version 7.4. Last change: 2013 Aug 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -150,7 +150,7 @@ Support for different systems.
Multi level undo. |undo|
'u' goes backward in time, 'CTRL-R' goes forward again. Set option
'undolevels' to the number of changes to be remembered (default 1000).
Set 'undolevels' to 0 for a vi-compatible one level undo. Set it to
Set 'undolevels' to 0 for a Vi-compatible one level undo. Set it to
-1 for no undo at all.
When all changes in a buffer have been undone, the buffer is not
considered changed anymore. You can exit it with :q, without <!>.
+10 -7
View File
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2013 Aug 03
" Last Change: 2013 Sep 22
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -129,7 +129,7 @@ au BufNewFile,BufRead .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf set
au BufNewFile,BufRead *.aml setf aml
" APT config file
au BufNewFile,BufRead apt.conf setf aptconf
au BufNewFile,BufRead apt.conf setf aptconf
au BufNewFile,BufRead */.aptitude/config setf aptconf
au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf
@@ -952,6 +952,9 @@ au BufNewFile,BufRead inittab setf inittab
" Inno Setup
au BufNewFile,BufRead *.iss setf iss
" J
au BufNewFile,BufRead *.ijs setf j
" JAL
au BufNewFile,BufRead *.jal,*.JAL setf jal
@@ -2092,7 +2095,7 @@ au BufNewFile,BufRead *.tak setf tak
" Task
au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata
au BufRead,BufNewFile *.task setf taskedit
au BufRead,BufNewFile *.task setf taskedit
" Tcl (JACL too)
au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl
@@ -2217,12 +2220,12 @@ au BufNewFile,BufRead *.uc setf uc
au BufNewFile,BufRead */etc/updatedb.conf setf updatedb
" Upstart (init(8)) config files
au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart
au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart
au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart
au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart
au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart
au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart
au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
au BufNewFile,BufRead */.config/upstart/*.override setf upstart
au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
au BufNewFile,BufRead */.config/upstart/*.override setf upstart
" Vera
au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera
+31 -30
View File
@@ -1,22 +1,23 @@
" Vim filetype plugin file
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
"
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 30 January 2013
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 08 September 2013
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin = 'setlocal define< formatoptions< comments< commentstring<'
let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring<'
setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$
" There will be false positives, but this is better than missing the whole set
" of user-defined def* definitions.
@@ -35,10 +36,10 @@ setlocal commentstring=;\ %s
" 'completefunc' so that the user has some form of completion available when
" 'omnifunc' is set and no REPL connection exists.
for s:setting in ['omnifunc', 'completefunc']
if exists('&' . s:setting) && empty(eval('&' . s:setting))
execute 'setlocal ' . s:setting . '=clojurecomplete#Complete'
let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<'
endif
if exists('&' . s:setting) && empty(eval('&' . s:setting))
execute 'setlocal ' . s:setting . '=clojurecomplete#Complete'
let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<'
endif
endfor
" Take all directories of the CLOJURE_SOURCE_DIRS environment variable
@@ -46,34 +47,34 @@ endfor
"
" This is a legacy option for VimClojure users.
if exists('$CLOJURE_SOURCE_DIRS')
for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':')
let s:dir = fnameescape(s:dir)
" Whitespace escaping for Windows
let s:dir = substitute(s:dir, '\', '\\\\', 'g')
let s:dir = substitute(s:dir, '\ ', '\\ ', 'g')
execute "setlocal path+=" . s:dir . "/**"
endfor
let b:undo_ftplugin .= ' | setlocal path<'
for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':')
let s:dir = fnameescape(s:dir)
" Whitespace escaping for Windows
let s:dir = substitute(s:dir, '\', '\\\\', 'g')
let s:dir = substitute(s:dir, '\ ', '\\ ', 'g')
execute "setlocal path+=" . s:dir . "/**"
endfor
let b:undo_ftplugin .= ' | setlocal path<'
endif
" Skip brackets in ignored syntax regions when using the % command
if exists('loaded_matchit')
let b:match_words = &matchpairs
let b:match_skip = 's:comment\|string\|regex\|character'
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
let b:match_words = &matchpairs
let b:match_skip = 's:comment\|string\|regex\|character'
let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip'
endif
" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
\ "Java Source Files (*.java)\t*.java\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
\ "Java Source Files (*.java)\t*.java\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
endif
let &cpo = s:cpo_save
unlet! s:cpo_save s:setting s:dir
" vim:sts=4 sw=4 et:
" vim:sts=8:sw=8:ts=8:noet
+10 -10
View File
@@ -1,12 +1,12 @@
" Vim settings file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66)
" Version: 0.48
" Last Change: 2012 Apr. 18
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www.unb.ca/chem/ajit/>
" Version: 0.49
" Last Change: 2013 Oct. 01
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: Do :help fortran-plugin from Vim
" Credits:
" Useful suggestions were made by Stefano Zacchiroli, Hendrik Merx, and Ben
" Fritz.
" Useful suggestions were made by Stefano Zacchiroli, Hendrik Merx, Ben
" Fritz, and David Barnett.
" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -64,8 +64,8 @@ if (b:fortran_fixed_source == 1)
" setlocal tw=73
else
setlocal comments=:!
" Free format allows a textwidth of 132 for code but 80 is more usual
setlocal tw=80
" Free format allows a textwidth of 132
setlocal tw=132
endif
" Set commentstring for foldmethod=marker
@@ -76,8 +76,8 @@ if !exists("fortran_have_tabs")
setlocal expandtab
endif
" Set 'formatoptions' to break comment and text lines but allow long lines
setlocal fo+=tcql
" Set 'formatoptions' to break text lines
setlocal fo+=t
setlocal include=^\\c#\\=\\s*include\\s\\+
setlocal suffixesadd+=.f08,.f03,.f95,.f90,.for,.f,.F,.f77,.ftn,.fpp
@@ -114,7 +114,7 @@ if has("gui_win32") && !exists("b:browsefilter")
\ "All Files (*.*)\t*.*\n"
endif
let b:undo_ftplugin = "setl fo< com< tw< cms< et< inc<"
let b:undo_ftplugin = "setl fo< com< tw< cms< et< inc< sua<"
\ . "| unlet! b:match_ignorecase b:match_words b:browsefilter"
let &cpoptions=s:cposet
+17
View File
@@ -0,0 +1,17 @@
" Vim filetype plugin
" Language: J
" Maintainer: David Bürgin <676c7473@gmail.com>
" Last Change: 2013-09-21
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
setlocal iskeyword=48-57,65-90,_,97-122
setlocal comments=:NB.
setlocal commentstring=NB.\ %s
setlocal formatoptions-=t formatoptions+=croql
setlocal shiftwidth=2 softtabstop=2 expandtab
let b:undo_ftplugin = "setl et< sts< sw< fo< cms< com< isk<"
+18 -1
View File
@@ -1,7 +1,8 @@
" Vim filetype plugin file
" Language: python
" Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Wed, 21 Apr 2004 13:13:08 CEST
" Last Change: 2013 Sep 25
" Last Change By Johannes: Wed, 21 Apr 2004 13:13:08 CEST
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@@ -44,5 +45,21 @@ if has("gui_win32") && !exists("b:browsefilter")
\ "All Files (*.*)\t*.*\n"
endif
" As suggested by PEP8.
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
" First time: try finding "pydoc".
if !exists('g:pydoc_executable')
if executable('pydoc')
let g:pydoc_executable = 1
else
let g:pydoc_executable = 0
endif
endif
" If "pydoc" was found use it for keywordprg.
if g:pydoc_executable
setlocal keywordprg=pydoc
endif
let &cpo = s:keepcpo
unlet s:keepcpo
+236 -246
View File
@@ -1,16 +1,20 @@
" Vim indent file
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
" URL: http://kotka.de/projects/clojure/vimclojure.html
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
" URL: http://kotka.de/projects/clojure/vimclojure.html
"
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 30 January 2013
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 08 September 2013
" TODO: Indenting after multibyte characters is broken:
" (let [Δ (if foo
" bar ; Indent error
" baz)])
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
finish
endif
let b:did_indent = 1
@@ -25,290 +29,277 @@ setlocal indentkeys=!,o,O
if exists("*searchpairpos")
if !exists('g:clojure_maxlines')
let g:clojure_maxlines = 100
endif
if !exists('g:clojure_maxlines')
let g:clojure_maxlines = 100
endif
if !exists('g:clojure_fuzzy_indent')
let g:clojure_fuzzy_indent = 1
endif
if !exists('g:clojure_fuzzy_indent')
let g:clojure_fuzzy_indent = 1
endif
if !exists('g:clojure_fuzzy_indent_patterns')
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
endif
if !exists('g:clojure_fuzzy_indent_patterns')
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
endif
if !exists('g:clojure_fuzzy_indent_blacklist')
let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
endif
if !exists('g:clojure_fuzzy_indent_blacklist')
let g:clojure_fuzzy_indent_blacklist = ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
endif
if !exists('g:clojure_special_indent_words')
let g:clojure_special_indent_words = 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
endif
if !exists('g:clojure_special_indent_words')
let g:clojure_special_indent_words = 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
endif
if !exists('g:clojure_align_multiline_strings')
let g:clojure_align_multiline_strings = 0
endif
if !exists('g:clojure_align_multiline_strings')
let g:clojure_align_multiline_strings = 0
endif
function! s:SynIdName()
return synIDattr(synID(line("."), col("."), 0), "name")
endfunction
function! s:SynIdName()
return synIDattr(synID(line("."), col("."), 0), "name")
endfunction
function! s:CurrentChar()
return getline('.')[col('.')-1]
endfunction
function! s:CurrentChar()
return getline('.')[col('.')-1]
endfunction
function! s:CurrentWord()
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
endfunction
function! s:CurrentWord()
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
endfunction
function! s:IsParen()
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
\ s:SynIdName() !~? '\vstring|comment'
endfunction
function! s:IsParen()
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
\ s:SynIdName() !~? '\vstring|regex|comment|character'
endfunction
" Returns 1 if string matches a pattern in 'patterns', which may be a
" list of patterns, or a comma-delimited string of implicitly anchored
" patterns.
function! s:MatchesOne(patterns, string)
let list = type(a:patterns) == type([])
\ ? a:patterns
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
for pat in list
if a:string =~ pat | return 1 | endif
endfor
endfunction
" Returns 1 if string matches a pattern in 'patterns', which may be a
" list of patterns, or a comma-delimited string of implicitly anchored
" patterns.
function! s:MatchesOne(patterns, string)
let list = type(a:patterns) == type([])
\ ? a:patterns
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
for pat in list
if a:string =~ pat | return 1 | endif
endfor
endfunction
function! s:SavePosition()
let [ _b, l, c, _o ] = getpos(".")
let b = bufnr("%")
return [b, l, c]
endfunction
function! s:MatchPairs(open, close, stopat)
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
" comments.
if a:stopat == 0
let stopat = max([line(".") - g:clojure_maxlines, 0])
else
let stopat = a:stopat
endif
function! s:RestorePosition(value)
let [b, l, c] = a:value
if bufnr("%") != b
execute b "buffer!"
endif
call setpos(".", [0, l, c, 0])
endfunction
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
return [pos[0], virtcol(pos)]
endfunction
function! s:MatchPairs(open, close, stopat)
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
" comments.
if a:stopat == 0
let stopat = max([line(".") - g:clojure_maxlines, 0])
else
let stopat = a:stopat
endif
function! s:ClojureCheckForStringWorker()
" Check whether there is the last character of the previous line is
" highlighted as a string. If so, we check whether it's a ". In this
" case we have to check also the previous character. The " might be the
" closing one. In case the we are still in the string, we search for the
" opening ". If this is not found we take the indent of the line.
let nb = prevnonblank(v:lnum - 1)
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
return [pos[0], virtcol(pos)]
endfunction
if nb == 0
return -1
endif
function! s:ClojureCheckForStringWorker()
" Check whether there is the last character of the previous line is
" highlighted as a string. If so, we check whether it's a ". In this
" case we have to check also the previous character. The " might be the
" closing one. In case the we are still in the string, we search for the
" opening ". If this is not found we take the indent of the line.
let nb = prevnonblank(v:lnum - 1)
call cursor(nb, 0)
call cursor(0, col("$") - 1)
if s:SynIdName() !~? "string"
return -1
endif
if nb == 0
return -1
endif
" This will not work for a " in the first column...
if s:CurrentChar() == '"'
call cursor(0, col("$") - 2)
if s:SynIdName() !~? "string"
return -1
endif
if s:CurrentChar() != '\\'
return -1
endif
call cursor(0, col("$") - 1)
endif
call cursor(nb, 0)
call cursor(0, col("$") - 1)
if s:SynIdName() !~? "string"
return -1
endif
let p = searchpos('\(^\|[^\\]\)\zs"', 'bW')
" This will not work for a " in the first column...
if s:CurrentChar() == '"'
call cursor(0, col("$") - 2)
if s:SynIdName() !~? "string"
return -1
endif
if s:CurrentChar() != '\\'
return -1
endif
call cursor(0, col("$") - 1)
endif
if p != [0, 0]
return p[1] - 1
endif
let p = searchpos('\(^\|[^\\]\)\zs"', 'bW')
return indent(".")
endfunction
if p != [0, 0]
return p[1] - 1
endif
function! s:CheckForString()
let pos = getpos('.')
try
let val = s:ClojureCheckForStringWorker()
finally
call setpos('.', pos)
endtry
return val
endfunction
return indent(".")
endfunction
function! s:ClojureIsMethodSpecialCaseWorker(position)
" Find the next enclosing form.
call search('\S', 'Wb')
function! s:CheckForString()
let pos = s:SavePosition()
try
let val = s:ClojureCheckForStringWorker()
finally
call s:RestorePosition(pos)
endtry
return val
endfunction
" Special case: we are at a '(('.
if s:CurrentChar() == '('
return 0
endif
call cursor(a:position)
function! s:ClojureIsMethodSpecialCaseWorker(position)
" Find the next enclosing form.
call search('\S', 'Wb')
let nextParen = s:MatchPairs('(', ')', 0)
" Special case: we are at a '(('.
if s:CurrentChar() == '('
return 0
endif
call cursor(a:position)
" Special case: we are now at toplevel.
if nextParen == [0, 0]
return 0
endif
call cursor(nextParen)
let nextParen = s:MatchPairs('(', ')', 0)
call search('\S', 'W')
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
return 1
endif
" Special case: we are now at toplevel.
if nextParen == [0, 0]
return 0
endif
call cursor(nextParen)
return 0
endfunction
call search('\S', 'W')
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
return 1
endif
function! s:IsMethodSpecialCase(position)
let pos = getpos('.')
try
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
finally
call setpos('.', pos)
endtry
return val
endfunction
return 0
endfunction
function! GetClojureIndent()
" Get rid of special case.
if line(".") == 1
return 0
endif
function! s:IsMethodSpecialCase(position)
let pos = s:SavePosition()
try
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
finally
call s:RestorePosition(pos)
endtry
return val
endfunction
" We have to apply some heuristics here to figure out, whether to use
" normal lisp indenting or not.
let i = s:CheckForString()
if i > -1
return i + !!g:clojure_align_multiline_strings
endif
function! GetClojureIndent()
" Get rid of special case.
if line(".") == 1
return 0
endif
call cursor(0, 1)
" We have to apply some heuristics here to figure out, whether to use
" normal lisp indenting or not.
let i = s:CheckForString()
if i > -1
return i + !!g:clojure_align_multiline_strings
endif
" Find the next enclosing [ or {. We can limit the second search
" to the line, where the [ was found. If no [ was there this is
" zero and we search for an enclosing {.
let paren = s:MatchPairs('(', ')', 0)
let bracket = s:MatchPairs('\[', '\]', paren[0])
let curly = s:MatchPairs('{', '}', bracket[0])
call cursor(0, 1)
" In case the curly brace is on a line later then the [ or - in
" case they are on the same line - in a higher column, we take the
" curly indent.
if curly[0] > bracket[0] || curly[1] > bracket[1]
if curly[0] > paren[0] || curly[1] > paren[1]
return curly[1]
endif
endif
" Find the next enclosing [ or {. We can limit the second search
" to the line, where the [ was found. If no [ was there this is
" zero and we search for an enclosing {.
let paren = s:MatchPairs('(', ')', 0)
let bracket = s:MatchPairs('\[', '\]', paren[0])
let curly = s:MatchPairs('{', '}', bracket[0])
" If the curly was not chosen, we take the bracket indent - if
" there was one.
if bracket[0] > paren[0] || bracket[1] > paren[1]
return bracket[1]
endif
" In case the curly brace is on a line later then the [ or - in
" case they are on the same line - in a higher column, we take the
" curly indent.
if curly[0] > bracket[0] || curly[1] > bracket[1]
if curly[0] > paren[0] || curly[1] > paren[1]
return curly[1]
endif
endif
" There are neither { nor [ nor (, ie. we are at the toplevel.
if paren == [0, 0]
return 0
endif
" If the curly was not chosen, we take the bracket indent - if
" there was one.
if bracket[0] > paren[0] || bracket[1] > paren[1]
return bracket[1]
endif
" Now we have to reimplement lispindent. This is surprisingly easy, as
" soon as one has access to syntax items.
"
" - Check whether we are in a special position after a word in
" g:clojure_special_indent_words. These are special cases.
" - Get the next keyword after the (.
" - If its first character is also a (, we have another sexp and align
" one column to the right of the unmatched (.
" - In case it is in lispwords, we indent the next line to the column of
" the ( + sw.
" - If not, we check whether it is last word in the line. In that case
" we again use ( + sw for indent.
" - In any other case we use the column of the end of the word + 2.
call cursor(paren)
" There are neither { nor [ nor (, ie. we are at the toplevel.
if paren == [0, 0]
return 0
endif
if s:IsMethodSpecialCase(paren)
return paren[1] + &shiftwidth - 1
endif
" Now we have to reimplement lispindent. This is surprisingly easy, as
" soon as one has access to syntax items.
"
" - Check whether we are in a special position after a word in
" g:clojure_special_indent_words. These are special cases.
" - Get the next keyword after the (.
" - If its first character is also a (, we have another sexp and align
" one column to the right of the unmatched (.
" - In case it is in lispwords, we indent the next line to the column of
" the ( + sw.
" - If not, we check whether it is last word in the line. In that case
" we again use ( + sw for indent.
" - In any other case we use the column of the end of the word + 2.
call cursor(paren)
" In case we are at the last character, we use the paren position.
if col("$") - 1 == paren[1]
return paren[1]
endif
if s:IsMethodSpecialCase(paren)
return paren[1] + &shiftwidth - 1
endif
" In case after the paren is a whitespace, we search for the next word.
call cursor(0, col('.') + 1)
if s:CurrentChar() == ' '
call search('\v\S', 'W')
endif
" In case we are at the last character, we use the paren position.
if col("$") - 1 == paren[1]
return paren[1]
endif
" If we moved to another line, there is no word after the (. We
" use the ( position for indent.
if line(".") > paren[0]
return paren[1]
endif
" In case after the paren is a whitespace, we search for the next word.
normal! l
if s:CurrentChar() == ' '
normal! w
endif
" We still have to check, whether the keyword starts with a (, [ or {.
" In that case we use the ( position for indent.
let w = s:CurrentWord()
if stridx('([{', w[0]) > -1
return paren[1]
endif
" If we moved to another line, there is no word after the (. We
" use the ( position for indent.
if line(".") > paren[0]
return paren[1]
endif
" Test words without namespace qualifiers and leading reader macro
" metacharacters.
"
" e.g. clojure.core/defn and #'defn should both indent like defn.
let ww = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
" We still have to check, whether the keyword starts with a (, [ or {.
" In that case we use the ( position for indent.
let w = s:CurrentWord()
if stridx('([{', w[0]) > -1
return paren[1]
endif
if &lispwords =~ '\V\<' . ww . '\>'
return paren[1] + &shiftwidth - 1
endif
" Test words without namespace qualifiers and leading reader macro
" metacharacters.
"
" e.g. clojure.core/defn and #'defn should both indent like defn.
let ww = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
if g:clojure_fuzzy_indent
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
return paren[1] + &shiftwidth - 1
endif
if &lispwords =~ '\V\<' . ww . '\>'
return paren[1] + &shiftwidth - 1
endif
call search('\v\_s', 'cW')
call search('\v\S', 'W')
if paren[0] < line(".")
return paren[1] + &shiftwidth - 1
endif
if g:clojure_fuzzy_indent
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
return paren[1] + &shiftwidth - 1
endif
call search('\v\S', 'bW')
return virtcol(".") + 1
endfunction
normal! W
if paren[0] < line(".")
return paren[1] + &shiftwidth - 1
endif
normal! ge
return virtcol(".") + 1
endfunction
setlocal indentexpr=GetClojureIndent()
setlocal indentexpr=GetClojureIndent()
else
" In case we have searchpairpos not available we fall back to
" normal lisp indenting.
setlocal indentexpr=
setlocal lisp
let b:undo_indent .= '| setlocal lisp<'
" In case we have searchpairpos not available we fall back to
" normal lisp indenting.
setlocal indentexpr=
setlocal lisp
let b:undo_indent .= '| setlocal lisp<'
endif
@@ -390,9 +381,8 @@ setlocal lispwords+=while
" Exception handling
setlocal lispwords+=catch
setlocal lispwords+=try " For aesthetics when enclosing single line
let &cpo = s:save_cpo
unlet! s:save_cpo
" vim:sts=4 sw=4 et:
" vim:sts=8:sw=8:ts=8:noet
+37
View File
@@ -0,0 +1,37 @@
" Vim indent file
" Language: J
" Maintainer: David Bürgin <676c7473@gmail.com>
" Last Change: 2013-09-21
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetJIndent()
setlocal indentkeys-=0{,0},\:,0#
setlocal indentkeys+=0),=case.,=catch.,=catchd.,=catcht.,=do.,=else.,=elseif.,=end.,=fcase.
let b:undo_indent = "setl indk< inde<"
if exists("*GetJIndent")
finish
endif
function GetJIndent()
let prevlnum = prevnonblank(v:lnum-1)
if prevlnum == 0
return 0
endif
let indent = indent(prevlnum)
if getline(prevlnum) =~# '^\s*\%(case\|catch[dt]\=\|do\|else\%(if\)\=\|fcase\|for\%(_\a\k*\)\=\|if\|select\|try\|whil\%(e\|st\)\)\.'
if getline(prevlnum) !~# '\<end\.'
let indent += &shiftwidth
endif
endif
if getline(v:lnum) =~# '^\s*\%(case\|catch[dt]\=\|do\|else\%(if\)\=\|end\|fcase\)\.'
let indent -= &shiftwidth
endif
return indent
endfunction
+6 -5
View File
@@ -1,11 +1,9 @@
" Vim syntax file
" This is a GENERATED FILE. Please always refer to source file at the URI below.
" Language: Apache configuration (httpd.conf, srm.conf, access.conf, .htaccess)
" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" License: This file can be redistribued and/or modified under the same terms
" as Vim itself.
" Last Change: 2006-12-13
" URL: http://trific.ath.cx/Ftp/vim/syntax/apache.vim
" Last Change: 2013-09-16
" Notes: Last synced with apache-2.2.3, version 1.x is no longer supported
" TODO: see particular FIXME's scattered through the file
" make it really linewise?
@@ -30,7 +28,10 @@ syn keyword apacheFixme FIXME TODO XXX NOT
syn case ignore
syn match apacheAnything "\s[^>]*" contained
syn match apacheError "\w\+" contained
syn region apacheString start=+"+ end=+"+ skip=+\\\\\|\\\"+
syn region apacheString start=+"+ end=+"+ skip=+\\\\\|\\\"+ oneline
" Following is to prevent escaped quotes from being parsed as strings.
syn match apacheSkipQuote +\\"+
" Core and mpm
syn keyword apacheDeclaration AccessFileName AddDefaultCharset AllowOverride AuthName AuthType ContentDigest DefaultType DocumentRoot ErrorDocument ErrorLog HostNameLookups IdentityCheck Include KeepAlive KeepAliveTimeout LimitRequestBody LimitRequestFields LimitRequestFieldsize LimitRequestLine LogLevel MaxKeepAliveRequests NameVirtualHost Options Require RLimitCPU RLimitMEM RLimitNPROC Satisfy ScriptInterpreterSource ServerAdmin ServerAlias ServerName ServerPath ServerRoot ServerSignature ServerTokens TimeOut UseCanonicalName
File diff suppressed because one or more lines are too long
+328 -183
View File
@@ -6,7 +6,7 @@
" Nikolai Weibull (Add CSS2 support)
" Maintainer: Jules Wang <w.jq0722@gmail.com>
" URL: https://github.com/JulesWang/css.vim
" Last Change: 2013 Jul 23
" Last Change: 2013 Sep 24
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -37,12 +37,12 @@ syn keyword cssTagName link map menu meta noframes noscript ol optgroup
syn keyword cssTagName option p param pre q s samp script select small
syn keyword cssTagName span strike strong style sub sup table tbody td
syn keyword cssTagName textarea tfoot th thead title tr tt ul u var
syn keyword cssTagName object
syn keyword cssTagName object svg
" HTML5 new tags 5*6=30
syn keyword cssTagName article aside audio bdi canvas command
syn keyword cssTagName datalist details embed figcaption figure footer
syn keyword cssTagName header hgroup keygen mark meter nav
" 34 HTML5 tags
syn keyword cssTagName article aside audio bdi canvas command data
syn keyword cssTagName datalist details dialog embed figcaption figure footer
syn keyword cssTagName header hgroup keygen main mark menuitem meter nav
syn keyword cssTagName output progress rt rp ruby section
syn keyword cssTagName source summary time track video wbr
@@ -50,14 +50,12 @@ syn keyword cssTagName source summary time track video wbr
syn keyword cssDeprecated acronym applet basefont big center dir
syn keyword cssDeprecated font frame frameset noframes strike tt
"syn match cssTagName "\<table\>"
syn match cssTagName "\*"
" selectors
syn match cssSelectorOp "[,>+]"
syn match cssSelectorOp "[,>+~]"
syn match cssSelectorOp2 "[~|^$*]\?=" contained
" FIXME: add HTML5 attribute
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
" .class and #id
syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
@@ -68,26 +66,55 @@ catch /^.*/
syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
endtry
syn match cssTagName "@page\>" nextgroup=cssDefinition
" FIXME: use cssVendor here
syn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition
" digits
syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)" contains=cssUnitDecorators
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" contains=cssUnitDecorators
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" contains=cssUnitDecorators
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" contains=cssUnitDecorators
syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
syn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
" @media
syn match cssMedia "@media\>" nextgroup=cssMediaQuery,cssMediaBlock skipwhite skipnl
syn match cssMediaQuery /\(only\|not\)\=\s*[a-z]*\(\s\|,\)\@=\(\(\s\+and\)\=\s\+(.\{-})\)*/ contained skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType nextgroup=cssMediaBlock,cssMediaComma
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained skipwhite skipnl
syn keyword cssMediaKeyword only not and contained
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssTagName,cssClassName,cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,cssAttributeSelector fold
syn match cssMediaComma "," nextgroup=cssMediaQuery skipwhite skipnl contained
syn match cssValueInteger contained "[-+]\=\d\+"
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)"
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
" Reference: http://www.w3.org/TR/css3-mediaqueries/
syn keyword cssMediaProp contained width height orientation scan grid
syn match cssMediaProp contained /\(\(device\)-\)\=aspect-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
syn keyword cssMediaAttr contained portrait landscape progressive interlace
" @page
syn match cssPage "@page\>" nextgroup=cssPagePseudo,cssDefinition skipwhite skipnl
syn match cssPagePseudo /:\(left\|right\|first\|\)/ nextgroup=cssDefinition contained skipwhite skipnl
syn match cssPageHeaderProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained
syn keyword cssPageProp content size contained
" @keyframe
syn match cssKeyFrame "@\(-[a-z]*-\)\=keyframes\>\(\s*\<\S*\>\)\=" nextgroup=cssKeyFrameBlock contains=cssVendor skipwhite skipnl
syn region cssKeyFrameBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector,cssDefinition
syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl
" @import
syn region cssInclude start=/@import\>/ end=/\ze;/ contains=cssComment,cssURL,cssUnicodeEscape,cssMediaQuery,cssStringQ,cssStringQQ,cssIncludeKeyword
syn region cssInclude start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
syn region cssInclude start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
syn match cssIncludeKeyword /\(@import\|@charset\|@namespace\)/ contained
" @font-face
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
"syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
"syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
syn keyword cssFontDescriptorProp contained src
syn match cssFontDescriptorProp contained "\<unicode-range\>"
syn keyword cssFontDescriptorAttr contained all
syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
@@ -124,7 +151,7 @@ syn keyword cssColor contained slategray slategrey snow springgreen steelblue ta
syn keyword cssColor contained thistle tomato turquoise violet wheat
syn keyword cssColor contained whitesmoke yellowgreen
" FIXME: These are actually case-insentivie too, but (a) specs recommend using
" FIXME: These are actually case-insensitive too, but (a) specs recommend using
" mixed-case (b) it's hard to highlight the word `Background' correctly in
" all situations
syn case match
@@ -135,48 +162,73 @@ syn match cssImportant contained "!\s*important\>"
syn match cssColor contained "\<transparent\>"
syn match cssColor contained "\<white\>"
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" contains=cssUnitDecorators
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" contains=cssUnitDecorators
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y|\Z\)\=\|translate\(3d\|X\|Y|\Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y|\Z\)\=\|perspective\)\s*(" end=")" oneline keepend
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline extend
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y\|Z\)\=\|translate\(3d\|X\|Y\|Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y\|Z\)\=\|perspective\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
syn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at
syn match cssFunctionComma contained ","
" Prop and Attr
" Reference: http://www.w3schools.com/cssref/default.asp
syn keyword cssCommonAttr contained auto none inherit all
syn keyword cssCommonAttr contained top bottom
syn keyword cssCommonAttr contained medium normal
" Common Prop and Attr
syn keyword cssCommonAttr contained auto none inherit all default normal
syn keyword cssCommonAttr contained top bottom center stretch hidden visible
"------------------------------------------------
" CSS Animations
" http://www.w3.org/TR/css3-animations/
syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\)\)\=\>"
" animation-direction attributes
syn keyword cssAnimationAttr contained alternate reverse
syn match cssAnimationAttr contained "\<alternate-reverse\>"
syn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>"
" animation-fill-mode attributes
syn keyword cssAnimationAttr contained forwards backwards both
" animation-play-state attributes
syn keyword cssAnimationAttr contained running paused
"------------------------------------------------
" CSS Backgrounds and Borders Module Level 3
" http://www.w3.org/TR/css3-background/
syn match cssBackgroundProp contained "\<background\(-\(attachment\|clip\|color\|image\|origin\|position\|repeat\|size\)\)\=\>"
" background-attachment attributes
syn keyword cssBackgroundAttr contained scroll fixed local
syn keyword cssAnimationAttr contained infinite alternate paused running
" bugfix: escape linear-gradient
syn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>"
syn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
" background-position attributes
syn keyword cssBackgroundAttr contained left center right top bottom
syn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>"
syn keyword cssBackgroundAttr contained center fixed over contain
" background-repeat attributes
syn match cssBackgroundAttr contained "\<no-repeat\>"
syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
syn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>"
syn keyword cssBackgroundAttr contained space round
" background-size attributes
syn keyword cssBackgroundAttr contained cover contain
syn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
syn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
syn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>"
syn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
syn match cssBorderOutlineProp contained "\<border-radius\>"
syn keyword cssBorderOutlineAttr contained thin thick medium
syn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset
syn keyword cssBorderOutlineAttr contained hidden visible scroll collapse
syn keyword cssBorderOutlineAttr contained stretch round
syn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
syn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>"
syn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
syn match cssBorderProp contained "\<box-decoration-break\>"
syn match cssBorderProp contained "\<box-shadow\>"
" border-image attributes
syn keyword cssBorderAttr contained stretch repeat round space fill
" border-style attributes
syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
" border-width attributes
syn keyword cssBorderAttr contained thin thick medium
" box-decoration-break attributes
syn keyword cssBorderAttr contained clone slice
"------------------------------------------------
syn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
syn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
syn match cssBoxProp contained "\<rotation\(-point\)=\>"
syn keyword cssBoxAttr contained visible hidden scroll auto
@@ -193,30 +245,51 @@ syn keyword cssDimensionProp contained width
" shadow and sizing are in other property groups
syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
syn keyword cssFlexibleBoxAttr contained start end center baseline stretch
syn keyword cssFlexibleBoxAttr contained normal reverse
syn keyword cssFlexibleBoxAttr contained start end baseline
syn keyword cssFlexibleBoxAttr contained reverse
syn keyword cssFlexibleBoxAttr contained single mulitple
syn keyword cssFlexibleBoxAttr contained horizontal
" bugfix: escape vertial-align
syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>"
syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>" "escape vertical-align
syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
syn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>"
syn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
syn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>"
syn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
" CSS Fonts Module Level 3
" http://www.w3.org/TR/css-fonts-3/
syn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\|language-override\|size\(-adjust\)\=\|stretch\|style\|synthesis\|variant\(-\(alternates\|caps\|east-asian\|ligatures\|numeric\|position\)\)\=\|weight\)\)\=\>"
" font attributes
syn keyword cssFontAttr contained icon menu caption
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
syn match cssFontAttr contained "\<message-box\>"
syn match cssFontAttr contained "\<status-bar\>"
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
syn keyword cssFontAttr contained cursive fantasy monospace italic oblique
syn keyword cssFontAttr contained bold bolder light lighter larger smaller
syn keyword cssFontAttr contained icon menu caption
syn keyword cssFontAttr contained large smaller larger narrower wider
syn keyword cssFontAttr contained Courier Arial Georgia Times
syn keyword cssFontAttr contained larger smaller
syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
" font-family attributes
syn match cssFontAttr contained "\<\(sans-\)\=serif\>"
syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Unicode Verdana Webdings Wingdings York Zapf
syn keyword cssFontAttr contained cursive fantasy monospace
syn keyword cssGeneratedContentProp contained content quotes crop
" font-feature-settings attributes
syn keyword cssFontAttr contained on off
" font-stretch attributes
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
" font-style attributes
syn keyword cssFontAttr contained italic oblique
" font-variant-caps attributes
syn match cssFontAttr contained "\<\(all-\)\=\(small-\|petite-\|titling-\)caps\>"
syn keyword cssFontAttr contained unicase
" font-weight attributes
syn keyword cssFontAttr contained bold bolder lighter
"------------------------------------------------
" Webkit specific property/attributes
syn match cssFontProp contained "\<font-smooth\>"
syn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>"
syn keyword cssGeneratedContentProp contained quotes crop
syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
syn match cssGeneratedContentProp contained "\<move-to\>"
syn match cssGeneratedContentProp contained "\<page-policy\>"
@@ -234,22 +307,16 @@ syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic
syn keyword cssListAttr contained disc circle square hebrew armenian georgian
syn keyword cssListAttr contained inside outside
syn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
syn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
syn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
syn keyword cssPositioningProp contained bottom clear clip display float left
syn keyword cssPositioningProp contained position right top visibility
syn match cssPositioningProp contained "\<z-index\>"
syn keyword cssPositioningAttr contained block inline compact
syn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
syn keyword cssPositioningAttr contained block compact
syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
syn keyword cssPositioningAttr contained left right both
syn match cssPositioningAttr contained "\<list-item\>"
syn match cssPositioningAttr contained "\<inline-\(block\|table\)\>"
syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\)\)\=\>"
syn keyword cssPositioningAttr contained static relative absolute fixed
syn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
@@ -262,18 +329,18 @@ syn keyword cssTableAttr contained fixed collapse separate show hide once always
syn keyword cssTextProp contained color direction
syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
syn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>"
syn match cssTextProp contained "\<text-\(justify\|outline\|warp\|align-last\|size-adjust\|rendering\|stroke\|indent\)\>"
syn match cssTextProp contained "\<word-\(break\|\wrap\)\>"
syn match cssTextProp contained "\<white-space\>"
syn match cssTextProp contained "\<hanging-punctuation\>"
syn match cssTextProp contained "\<punctuation-trim\>"
syn match cssTextAttr contained "\<line-through\>"
syn match cssTextAttr contained "\<text-indent\>"
syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
syn keyword cssTextAttr contained ltr rtl embed nowrap
syn keyword cssTextAttr contained underline overline blink sub super middle
syn keyword cssTextAttr contained capitalize uppercase lowercase
syn keyword cssTextAttr contained center justify baseline sub super
syn keyword cssTextAttr contained justify baseline sub super
syn keyword cssTextAttr contained optimizeLegibility optimizeSpeed
syn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
syn match cssTextAttr contained "\<\(allow\|force\)-end\>"
syn keyword cssTextAttr contained start end adjacent
@@ -283,22 +350,69 @@ syn keyword cssTextAttr contained clip ellipsis unrestricted suppress
syn match cssTextAttr contained "\<break-all\>"
syn match cssTextAttr contained "\<break-word\>"
syn keyword cssTextAttr contained hyphenate
syn match cssTextAttr contained "\<bidi-override\>"
syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
syn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
syn match cssTransformProp contained "\<backface-visibility\>"
" CSS Transitions
" http://www.w3.org/TR/css3-transitions/
syn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
syn match cssUIProp contained "\<outline-offset\>"
" transition-time-function attributes
syn match cssTransitionAttr contained "\<linear\(-gradient\)\@!\>"
syn match cssTransitionAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
syn match cssTransitionAttr contained "\<step\(-start\|-end\)\=\>"
"------------------------------------------------
" CSS Basic User Interface Module Level 3 (CSS3 UI)
" http://www.w3.org/TR/css3-ui/
syn match cssUIProp contained "\<box-sizing\>"
syn keyword cssUIProp contained appearance icon resize
syn keyword cssUIAttr contained window button menu field
syn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>"
syn keyword cssUIProp contained cursor
syn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>"
syn keyword cssUIAttr contained crosshair help move pointer alias copy
syn keyword cssUIAttr contained progress wait text cell move
syn match cssUIAttr contained "\<context-menu\>"
syn match cssUIAttr contained "\<no-drop\>"
syn match cssUIAttr contained "\<not-allowed\>"
syn match cssUIAttr contained "\<all-scroll\>"
syn match cssUIAttr contained "\<\(vertical-\)\=text\>"
syn match cssUIAttr contained "\<zoom\(-in\|-out\)\=\>"
syn match cssUIProp contained "\<ime-mode\>"
syn keyword cssUIAttr contained active inactive disabled
syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
syn match cssUIProp contained "\<outline\(-\(width\|style\|color\|offset\)\)\=\>"
syn keyword cssUIAttr contained invert
syn keyword cssUIProp contained icon resize
syn keyword cssUIAttr contained both horizontal vertical
syn match cssUIProp contained "\<text-overflow\>"
syn keyword cssUIAttr contained clip ellipsis
" Already highlighted Props: font content
"------------------------------------------------
" Webkit/iOS specific attributes
syn match cssUIAttr contained '\(preserve-3d\)'
" IE specific attributes
syn match cssIEUIAttr contained '\(bicubic\)'
" Webkit/iOS specific properties
syn match cssUIProp contained '\(tap-highlight-color\|user-select\|touch-callout\)'
" IE specific properties
syn match cssIEUIProp contained '\(interpolation-mode\|zoom\|filter\)'
" Webkit/Firebox specific properties/attributes
syn keyword cssUIProp contained appearance
syn keyword cssUIAttr contained window button field icon document menu
syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>"
syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>"
syn keyword cssAuralProp contained volume during azimuth elevation stress richness
syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
syn keyword cssAuralAttr contained silent
@@ -307,48 +421,39 @@ syn keyword cssAuralAttr contained non mix
syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
syn keyword cssAuralAttr contained leftwards rightwards behind
syn keyword cssAuralAttr contained below level above higher
syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
syn keyword cssAuralAttr contained below level above lower higher
syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>"
syn keyword cssAuralAttr contained faster slower
syn keyword cssAuralAttr contained male female child code digits continuous
syn match cssAuralAttr contained "\<lower\>"
" cursor
syn keyword cssUIProp contained cursor
syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
syn keyword cssUIAttr contained crosshair default help move pointer
syn keyword cssUIAttr contained progress wait
" FIXME: I could not find them in reference
syn keyword cssUIAttr contained invert maker size zoom
syn match cssRenderAttr contained "\<run-in\>"
syn match cssRenderAttr contained "\<text-rendering\>"
syn match cssRenderAttr contained "\<font-smoothing\>"
syn match cssRenderProp contained "\<marker-offset\>"
syn match cssRenderAttr contained "\<bidi-override\>"
" mobile text
syn match cssMobileTextProp contained "\<text-size-adjust\>"
" FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
syn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
syn match cssBraces contained "[{}]"
syn match cssError contained "{@<>"
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks keepend fold
syn match cssBraceError "}"
syn match cssAttrComma ","
" Pseudo class
syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape
syn keyword cssPseudoClassId link visited active hover focus before after left right lang
syn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
" FIXME: handle functions.
"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")"
syn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>"
syn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>"
syn keyword cssPseudoClassId root empty target enable disabled checked not invalid
syn match cssPseudoClassId contained "::\(-moz-\)\=selection"
" http://www.w3.org/TR/css3-selectors/
syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
syn keyword cssPseudoClassId contained link visited active hover before after left right
syn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
syn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")"
" ------------------------------------
" Vendor specific properties
syn match cssPseudoClassId contained "\<selection\>"
syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
" Comment
syn region cssComment start="/\*" end="\*/" contains=@Spell
syn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell
syn region cssComment start="/\*" end="\*/" contains=@Spell fold
syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
syn match cssSpecialCharQQ +\\"+ contained
@@ -359,6 +464,26 @@ syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEsca
" Vendor Prefix
syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
" Various CSS Hack characters
" In earlier versions of IE (6 and 7), one can prefix property names
" with a _ or * to isolate those definitions to particular versions of IE
" This is purely decorative and therefore we assign to the same highlight
" group to cssVendor, for more information:
" http://www.paulirish.com/2009/browser-specific-css-hacks/
syn match cssHacks contained /\(_\|*\)/
" Misc highlight groups
syntax match cssUnitDecorators /\(#\|-\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
syntax match cssNoise contained /\(:\|;\|\/\)/
" Attr Enhance
" Some keywords are both Prop and Attr, so we have to handle them
syn region cssAttrRegion start=/:/ end=/;/ contained keepend contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssTransitionHackProp,cssAttrComma,cssNoise
" Hack for transition
" The 'transition' Prop has Props after ':'.
syn region cssAttrRegion start=/transition\s*:/ end=/;/ contained keepend contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssTransitionHackProp,cssAttrComma,cssNoise
if main_syntax == "css"
syn sync minlines=10
@@ -377,73 +502,76 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssComment Comment
HiLink cssVendor Comment
HiLink cssHacks Comment
HiLink cssTagName Statement
HiLink cssDeprecated Error
HiLink cssSelectorOp Special
HiLink cssSelectorOp2 Special
HiLink cssAttrComma Special
HiLink cssAnimationProp StorageClass
HiLink cssBackgroundProp StorageClass
HiLink cssBorderOutlineProp StorageClass
HiLink cssBoxProp StorageClass
HiLink cssColorProp StorageClass
HiLink cssContentForPagedMediaProp StorageClass
HiLink cssDimensionProp StorageClass
HiLink cssFlexibleBoxProp StorageClass
HiLink cssFontProp StorageClass
HiLink cssGeneratedContentProp StorageClass
HiLink cssGridProp StorageClass
HiLink cssHyerlinkProp StorageClass
HiLink cssLineboxProp StorageClass
HiLink cssListProp StorageClass
HiLink cssMarginProp StorageClass
HiLink cssMarqueeProp StorageClass
HiLink cssMultiColumnProp StorageClass
HiLink cssPaddingProp StorageClass
HiLink cssPagedMediaProp StorageClass
HiLink cssPositioningProp StorageClass
HiLink cssPrintProp StorageClass
HiLink cssRubyProp StorageClass
HiLink cssSpeechProp StorageClass
HiLink cssTableProp StorageClass
HiLink cssTextProp StorageClass
HiLink cssTransformProp StorageClass
HiLink cssTransitionProp StorageClass
HiLink cssUIProp StorageClass
HiLink cssAuralProp StorageClass
HiLink cssRenderProp StorageClass
HiLink cssAnimationProp cssProp
HiLink cssBackgroundProp cssProp
HiLink cssBorderProp cssProp
HiLink cssBoxProp cssProp
HiLink cssColorProp cssProp
HiLink cssContentForPagedMediaProp cssProp
HiLink cssDimensionProp cssProp
HiLink cssFlexibleBoxProp cssProp
HiLink cssFontProp cssProp
HiLink cssGeneratedContentProp cssProp
HiLink cssGridProp cssProp
HiLink cssHyerlinkProp cssProp
HiLink cssLineboxProp cssProp
HiLink cssListProp cssProp
HiLink cssMarqueeProp cssProp
HiLink cssMultiColumnProp cssProp
HiLink cssPagedMediaProp cssProp
HiLink cssPositioningProp cssProp
HiLink cssPrintProp cssProp
HiLink cssRubyProp cssProp
HiLink cssSpeechProp cssProp
HiLink cssTableProp cssProp
HiLink cssTextProp cssProp
HiLink cssTransformProp cssProp
HiLink cssTransitionProp cssProp
HiLink cssUIProp cssProp
HiLink cssIEUIProp cssProp
HiLink cssAuralProp cssProp
HiLink cssRenderProp cssProp
HiLink cssMobileTextProp cssProp
HiLink cssAnimationAttr Type
HiLink cssBackgroundAttr Type
HiLink cssBorderOutlineAttr Type
HiLink cssBoxAttr Type
HiLink cssColorAttr Type
HiLink cssContentForPagedMediaAttr Type
HiLink cssDimensionAttr Type
HiLink cssFlexibleBoxAttr Type
HiLink cssFontAttr Type
HiLink cssGeneratedContentAttr Type
HiLink cssGridAttr Type
HiLink cssHyerlinkAttr Type
HiLink cssLineboxAttr Type
HiLink cssListAttr Type
HiLink cssMarginAttr Type
HiLink cssMarqueeAttr Type
HiLink cssMultiColumnAttr Type
HiLink cssPaddingAttr Type
HiLink cssPagedMediaAttr Type
HiLink cssPositioningAttr Type
HiLink cssPrintAttr Type
HiLink cssRubyAttr Type
HiLink cssSpeechAttr Type
HiLink cssTableAttr Type
HiLink cssTextAttr Type
HiLink cssTransformAttr Type
HiLink cssTransitionAttr Type
HiLink cssUIAttr Type
HiLink cssAuralAttr Type
HiLink cssRenderAttr Type
HiLink cssCommonAttr Type
HiLink cssAnimationAttr cssAttr
HiLink cssBackgroundAttr cssAttr
HiLink cssBorderAttr cssAttr
HiLink cssBoxAttr cssAttr
HiLink cssContentForPagedMediaAttr cssAttr
HiLink cssDimensionAttr cssAttr
HiLink cssFlexibleBoxAttr cssAttr
HiLink cssFontAttr cssAttr
HiLink cssGeneratedContentAttr cssAttr
HiLink cssGridAttr cssAttr
HiLink cssHyerlinkAttr cssAttr
HiLink cssLineboxAttr cssAttr
HiLink cssListAttr cssAttr
HiLink cssMarginAttr cssAttr
HiLink cssMarqueeAttr cssAttr
HiLink cssMultiColumnAttr cssAttr
HiLink cssPaddingAttr cssAttr
HiLink cssPagedMediaAttr cssAttr
HiLink cssPositioningAttr cssAttr
HiLink cssGradientAttr cssAttr
HiLink cssPrintAttr cssAttr
HiLink cssRubyAttr cssAttr
HiLink cssSpeechAttr cssAttr
HiLink cssTableAttr cssAttr
HiLink cssTextAttr cssAttr
HiLink cssTransformAttr cssAttr
HiLink cssTransitionAttr cssAttr
HiLink cssUIAttr cssAttr
HiLink cssIEUIAttr cssAttr
HiLink cssAuralAttr cssAttr
HiLink cssRenderAttr cssAttr
HiLink cssCommonAttr cssAttr
HiLink cssPseudoClassId PreProc
HiLink cssPseudoClassLang Constant
@@ -456,9 +584,11 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssFunction Constant
HiLink cssURL String
HiLink cssFunctionName Function
HiLink cssFunctionComma Function
HiLink cssColor Constant
HiLink cssIdentifier Function
HiLink cssInclude Include
HiLink cssIncludeKeyword atKeyword
HiLink cssImportant Special
HiLink cssBraces Function
HiLink cssBraceError Error
@@ -467,15 +597,30 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssUnicodeEscape Special
HiLink cssStringQQ String
HiLink cssStringQ String
HiLink cssMedia Special
HiLink cssAttributeSelector String
HiLink cssMedia atKeyword
HiLink cssMediaType Special
HiLink cssMediaComma Normal
HiLink cssMediaKeyword Statement
HiLink cssMediaProp cssProp
HiLink cssMediaAttr cssAttr
HiLink cssPage atKeyword
HiLink cssPagePseudo PreProc
HiLink cssPageHeaderProp PreProc
HiLink cssPageProp cssProp
HiLink cssKeyFrame atKeyword
HiLink cssKeyFrameSelector Constant
HiLink cssFontDescriptor Special
HiLink cssFontDescriptorFunction Constant
HiLink cssFontDescriptorProp StorageClass
HiLink cssFontDescriptorAttr Type
HiLink cssFontDescriptorProp cssProp
HiLink cssFontDescriptorAttr cssAttr
HiLink cssUnicodeRange Constant
HiLink cssClassName Function
HiLink cssProp StorageClass
HiLink cssAttr Constant
HiLink cssUnitDecorators Number
HiLink cssNoise Noise
HiLink atKeyword Comment
delcommand HiLink
endif
+18 -13
View File
@@ -2,8 +2,8 @@
"
" Language: D
" Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
" Last Change: 2013 May 21
" Version: 0.25
" Last Change: 2013 October 5
" Version: 0.26
"
" Contributors:
" - Jason Mills: original Maintainer
@@ -158,7 +158,7 @@ syn match dStatement "\<__traits\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=
" Pragma Statement
syn match dPragma "\<pragma\>"
syn match dPragma "\<pragma\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dPragmaIdentifier
syn match dPragma "\<pragma\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+6 contains=dPragmaIdentifier
" Necessary to highlight C++ in extern modifiers.
syn match dExternIdentifier "C\(++\)\?" contained
@@ -168,16 +168,18 @@ syn match dExternal "\<extern\>"
syn match dExtern "\<extern\s*([_a-zA-Z][_a-zA-Z0-9\+]*\>"he=s+6 contains=dExternIdentifier
" Make import a region to prevent highlighting keywords
syn region dImport start="import" end=";" contains=dExternal,@dComment
syn region dImport start="import\_s" end=";" contains=dExternal,@dComment
" Make module a region to prevent highlighting keywords
syn region dImport start="module" end=";" contains=dExternal,@dComment
syn region dImport start="module\_s" end=";" contains=dExternal,@dComment
" dTokens is used by the token string highlighting
syn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean
syn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload
syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement
syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation,dEnum
syn cluster dTokens add=dParenString,dBrackString,dAngleString,dCurlyString
syn cluster dTokens add=dTokenString,dDelimString,dHereString
" Create a match for parameter lists to identify storage class
syn region paramlist start="(" end=")" contains=@dTokens
@@ -192,6 +194,9 @@ syn cluster dTokens add=dUserLabel,dLabel
" Comments
"
syn match dCommentError display "\*/"
syn match dNestedCommentError display "+/"
syn keyword dTodo contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX
syn match dCommentStar contained "^\s*\*[^/]"me=e-1
syn match dCommentStar contained "^\s*\*$"
@@ -201,15 +206,12 @@ if exists("d_comment_strings")
syn region dBlockCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1,he=s-1 contains=dCommentStar,dUnicode,dEscSequence,@Spell
syn region dNestedCommentString contained start=+"+ end=+"+ end="+"me=s-1,he=s-1 contains=dCommentPlus,dUnicode,dEscSequence,@Spell
syn region dLineCommentString contained start=+"+ end=+$\|"+ contains=dUnicode,dEscSequence,@Spell
syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,@Spell fold
syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell fold
syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell
else
syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,@Spell fold
syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell fold
syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell
endif
syn region dBlockComment start="/\*" end="\*/" contains=dBlockCommentString,dTodo,dCommentStartError,@Spell fold
syn region dNestedComment start="/+" end="+/" contains=dNestedComment,dNestedCommentString,dTodo,@Spell fold
syn match dLineComment "//.*" contains=dLineCommentString,dTodo,@Spell
hi link dLineCommentString dBlockCommentString
hi link dBlockCommentString dString
hi link dNestedCommentString dString
@@ -249,7 +251,7 @@ syn region dRawString start=+`+ end=+`[cwd]\=+ contains=@Spell
syn region dRawString start=+r"+ end=+"[cwd]\=+ contains=@Spell
syn region dHexString start=+x"+ end=+"[cwd]\=+ contains=@Spell
syn region dDelimString start=+q"\z(.\)+ end=+\z1"+ contains=@Spell
syn region dHereString start=+q"\z(\I\i*\)\n+ end=+\n\z1"+ contains=@Spell
syn region dHereString start=+q"\z(\I\i*\)\n+ end=+^\z1"+ contains=@Spell
" Nesting delimited string contents
"
@@ -368,6 +370,9 @@ hi def link dType Type
hi def link dLineComment Comment
hi def link dBlockComment Comment
hi def link dNestedComment Comment
hi def link dCommentError Error
hi def link dNestedCommentError Error
hi def link dCommentStartError Error
hi def link dExternal Include
hi def link dAnnotation PreProc
hi def link dSharpBang PreProc
+189 -727
View File
@@ -1,751 +1,213 @@
" Vim syntax file
" Language: dircolors(1) input file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2012-04-25
" Language: dircolors(1) input file
" Maintainer: Jan Larres <jan@majutsushi.net>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2013-08-17
if exists("b:current_syntax")
finish
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn keyword dircolorsTodo contained FIXME TODO XXX NOTE
syntax keyword dircolorsTodo FIXME TODO XXX NOTE contained
syn region dircolorsComment start='#' end='$' contains=dircolorsTodo,@Spell
syntax region dircolorsComment start='#' end='$' contains=dircolorsTodo,@Spell
syn keyword dircolorsKeyword TERM LEFT LEFTCODE RIGHT RIGHTCODE END ENDCODE
syntax keyword dircolorsKeyword TERM LEFT LEFTCODE RIGHT RIGHTCODE END ENDCODE
syn keyword dircolorsKeyword NORMAL NORM FILE DIR LNK LINK SYMLINK ORPHAN
\ RESET MULTIHARDLINK CAPABILITY SETUID SETGID
\ STICKY STICKY_OTHER_WRITABLE OTHER_WRITABLE
\ MISSING FIFO PIPE SOCK BLK BLOCK CHR CHAR
\ DOOR EXEC
\ nextgroup=@dircolorsColors skipwhite
syntax keyword dircolorsKeyword NORMAL NORM FILE RESET DIR LNK LINK SYMLINK
\ MULTIHARDLINK FIFO SOCK DOOR BLK CHR ORPHAN
\ MISSING PIPE BLOCK CHR EXEC SETUID SETGID
\ CAPABILITY STICKY_OTHER_WRITABLE
\ OTHER_WRITABLE STICKY
if exists("dircolors_is_slackware")
syn keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT
" Slackware only, ignored by GNU dircolors.
syntax keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT
syntax match dircolorsExtension '^\s*\zs[.*]\S\+'
syntax match dircolorsEscape '\\[abefnrtv?_\\^#]'
syntax match dircolorsEscape '\\[0-9]\{3}'
syntax match dircolorsEscape '\\x[0-9a-f]\{3}'
if !has('gui_running') && &t_Co == ''
syntax match dircolorsNumber '\<\d\+\>'
highlight default link dircolorsNumber Number
endif
syn match dircolorsExtension '^\s*\zs[.*]\S\+'
\ nextgroup=dircolorsColorPair skipwhite
highlight default link dircolorsTodo Todo
highlight default link dircolorsComment Comment
highlight default link dircolorsKeyword Keyword
highlight default link dircolorsExtension Identifier
highlight default link dircolorsEscape Special
syn match dircolorsColorPair contained '.*$'
\ transparent contains=@dircolorsColors
function! s:set_guicolors() abort
let s:guicolors = {}
if &t_Co == 8 || &t_Co == 16
syn cluster dircolorsColors contains=dircolorsBold,dircolorsUnderline,
\ dircolorsBlink,dircolorsReverse,
\ dircolorsInvisible,dircolorsBlack,
\ dircolorsRed,dircolorsGreen,dircolorsYellow,
\ dircolorsBlue,dircolorsMagenta,dircolorsCyan,
\ dircolorsWhite,dircolorsBGBlack,
\ dircolorsBGRed,dircolorsBGGreen,
\ dircolorsBGYellow,dircolorsBGBlue,
\ dircolorsBGMagenta,dircolorsBGCyan,
\ dircolorsBGWhite
let s:guicolors[0] = "Black"
let s:guicolors[1] = "DarkRed"
let s:guicolors[2] = "DarkGreen"
let s:guicolors[3] = "DarkYellow"
let s:guicolors[4] = "DarkBlue"
let s:guicolors[5] = "DarkMagenta"
let s:guicolors[6] = "DarkCyan"
let s:guicolors[7] = "Gray"
let s:guicolors[8] = "DarkGray"
let s:guicolors[9] = "Red"
let s:guicolors[10] = "Green"
let s:guicolors[11] = "Yellow"
let s:guicolors[12] = "Blue"
let s:guicolors[13] = "Magenta"
let s:guicolors[14] = "Cyan"
let s:guicolors[15] = "White"
syn match dircolorsBold contained '\<0\=1\>'
syn match dircolorsUnderline contained '\<0\=4\>'
syn match dircolorsBlink contained '\<0\=5\>'
syn match dircolorsReverse contained '\<0\=7\>'
syn match dircolorsInvisible contained '\<0\=8\>'
syn match dircolorsBlack contained '\<30\>'
syn match dircolorsRed contained '\<31\>'
syn match dircolorsGreen contained '\<32\>'
syn match dircolorsYellow contained '\<33\>'
syn match dircolorsBlue contained '\<34\>'
syn match dircolorsMagenta contained '\<35\>'
syn match dircolorsCyan contained '\<36\>'
syn match dircolorsWhite contained '\<37\>'
syn match dircolorsBGBlack contained '\<40\>'
syn match dircolorsBGRed contained '\<41\>'
syn match dircolorsBGGreen contained '\<42\>'
syn match dircolorsBGYellow contained '\<43\>'
syn match dircolorsBGBlue contained '\<44\>'
syn match dircolorsBGMagenta contained '\<45\>'
syn match dircolorsBGCyan contained '\<46\>'
syn match dircolorsBGWhite contained '\<47\>'
elseif &t_Co == 256 || has("gui_running")
syn cluster dircolorsColors contains=dircolorsColor0,
\ dircolorsColor1,dircolorsColor2,
\ dircolorsColor3,dircolorsColor4,
\ dircolorsColor5,dircolorsColor6,
\ dircolorsColor7,dircolorsColor8,
\ dircolorsColor9,dircolorsColor10,
\ dircolorsColor11,dircolorsColor12,
\ dircolorsColor13,dircolorsColor14,
\ dircolorsColor15,dircolorsColor16,
\ dircolorsColor17,dircolorsColor18,
\ dircolorsColor19,dircolorsColor20,
\ dircolorsColor21,dircolorsColor22,
\ dircolorsColor23,dircolorsColor24,
\ dircolorsColor25,dircolorsColor26,
\ dircolorsColor27,dircolorsColor28,
\ dircolorsColor29,dircolorsColor30,
\ dircolorsColor31,dircolorsColor32,
\ dircolorsColor33,dircolorsColor34,
\ dircolorsColor35,dircolorsColor36,
\ dircolorsColor37,dircolorsColor38,
\ dircolorsColor39,dircolorsColor40,
\ dircolorsColor41,dircolorsColor42,
\ dircolorsColor43,dircolorsColor44,
\ dircolorsColor45,dircolorsColor46,
\ dircolorsColor47,dircolorsColor48,
\ dircolorsColor49,dircolorsColor50,
\ dircolorsColor51,dircolorsColor52,
\ dircolorsColor53,dircolorsColor54,
\ dircolorsColor55,dircolorsColor56,
\ dircolorsColor57,dircolorsColor58,
\ dircolorsColor59,dircolorsColor60,
\ dircolorsColor61,dircolorsColor62,
\ dircolorsColor63,dircolorsColor64,
\ dircolorsColor65,dircolorsColor66,
\ dircolorsColor67,dircolorsColor68,
\ dircolorsColor69,dircolorsColor70,
\ dircolorsColor71,dircolorsColor72,
\ dircolorsColor73,dircolorsColor74,
\ dircolorsColor75,dircolorsColor76,
\ dircolorsColor77,dircolorsColor78,
\ dircolorsColor79,dircolorsColor80,
\ dircolorsColor81,dircolorsColor82,
\ dircolorsColor83,dircolorsColor84,
\ dircolorsColor85,dircolorsColor86,
\ dircolorsColor87,dircolorsColor88,
\ dircolorsColor89,dircolorsColor90,
\ dircolorsColor91,dircolorsColor92,
\ dircolorsColor93,dircolorsColor94,
\ dircolorsColor95,dircolorsColor96,
\ dircolorsColor97,dircolorsColor98,
\ dircolorsColor99,dircolorsColor100,
\ dircolorsColor101,dircolorsColor102,
\ dircolorsColor103,dircolorsColor104,
\ dircolorsColor105,dircolorsColor106,
\ dircolorsColor107,dircolorsColor108,
\ dircolorsColor109,dircolorsColor110,
\ dircolorsColor111,dircolorsColor112,
\ dircolorsColor113,dircolorsColor114,
\ dircolorsColor115,dircolorsColor116,
\ dircolorsColor117,dircolorsColor118,
\ dircolorsColor119,dircolorsColor120,
\ dircolorsColor121,dircolorsColor122,
\ dircolorsColor123,dircolorsColor124,
\ dircolorsColor125,dircolorsColor126,
\ dircolorsColor127,dircolorsColor128,
\ dircolorsColor129,dircolorsColor130,
\ dircolorsColor131,dircolorsColor132,
\ dircolorsColor133,dircolorsColor134,
\ dircolorsColor135,dircolorsColor136,
\ dircolorsColor137,dircolorsColor138,
\ dircolorsColor139,dircolorsColor140,
\ dircolorsColor141,dircolorsColor142,
\ dircolorsColor143,dircolorsColor144,
\ dircolorsColor145,dircolorsColor146,
\ dircolorsColor147,dircolorsColor148,
\ dircolorsColor149,dircolorsColor150,
\ dircolorsColor151,dircolorsColor152,
\ dircolorsColor153,dircolorsColor154,
\ dircolorsColor155,dircolorsColor156,
\ dircolorsColor157,dircolorsColor158,
\ dircolorsColor159,dircolorsColor160,
\ dircolorsColor161,dircolorsColor162,
\ dircolorsColor163,dircolorsColor164,
\ dircolorsColor165,dircolorsColor166,
\ dircolorsColor167,dircolorsColor168,
\ dircolorsColor169,dircolorsColor170,
\ dircolorsColor171,dircolorsColor172,
\ dircolorsColor173,dircolorsColor174,
\ dircolorsColor175,dircolorsColor176,
\ dircolorsColor177,dircolorsColor178,
\ dircolorsColor179,dircolorsColor180,
\ dircolorsColor181,dircolorsColor182,
\ dircolorsColor183,dircolorsColor184,
\ dircolorsColor185,dircolorsColor186,
\ dircolorsColor187,dircolorsColor188,
\ dircolorsColor189,dircolorsColor190,
\ dircolorsColor191,dircolorsColor192,
\ dircolorsColor193,dircolorsColor194,
\ dircolorsColor195,dircolorsColor196,
\ dircolorsColor197,dircolorsColor198,
\ dircolorsColor199,dircolorsColor200,
\ dircolorsColor201,dircolorsColor202,
\ dircolorsColor203,dircolorsColor204,
\ dircolorsColor205,dircolorsColor206,
\ dircolorsColor207,dircolorsColor208,
\ dircolorsColor209,dircolorsColor210,
\ dircolorsColor211,dircolorsColor212,
\ dircolorsColor213,dircolorsColor214,
\ dircolorsColor215,dircolorsColor216,
\ dircolorsColor217,dircolorsColor218,
\ dircolorsColor219,dircolorsColor220,
\ dircolorsColor221,dircolorsColor222,
\ dircolorsColor223,dircolorsColor224,
\ dircolorsColor225,dircolorsColor226,
\ dircolorsColor227,dircolorsColor228,
\ dircolorsColor229,dircolorsColor230,
\ dircolorsColor231,dircolorsColor232,
\ dircolorsColor233,dircolorsColor234,
\ dircolorsColor235,dircolorsColor236,
\ dircolorsColor237,dircolorsColor238,
\ dircolorsColor239,dircolorsColor240,
\ dircolorsColor241,dircolorsColor242,
\ dircolorsColor243,dircolorsColor244,
\ dircolorsColor245,dircolorsColor246,
\ dircolorsColor247,dircolorsColor248,
\ dircolorsColor249,dircolorsColor250,
\ dircolorsColor251,dircolorsColor252,
\ dircolorsColor253,dircolorsColor254,
\ dircolorsColor255
let xterm_palette = ["00", "5f", "87", "af", "d7", "ff"]
syn match dircolorsColor0 contained '\<0\=0\>'
syn match dircolorsColor1 contained '\<0\=1\>'
syn match dircolorsColor2 contained '\<0\=2\>'
syn match dircolorsColor3 contained '\<0\=3\>'
syn match dircolorsColor4 contained '\<0\=4\>'
syn match dircolorsColor5 contained '\<0\=5\>'
syn match dircolorsColor6 contained '\<0\=6\>'
syn match dircolorsColor7 contained '\<0\=7\>'
syn match dircolorsColor8 contained '\<0\=8\>'
syn match dircolorsColor9 contained '\<0\=9\>'
syn match dircolorsColor10 contained '\<10\>'
syn match dircolorsColor11 contained '\<11\>'
syn match dircolorsColor12 contained '\<12\>'
syn match dircolorsColor13 contained '\<13\>'
syn match dircolorsColor14 contained '\<14\>'
syn match dircolorsColor15 contained '\<15\>'
syn match dircolorsColor16 contained '\<16\>'
syn match dircolorsColor17 contained '\<17\>'
syn match dircolorsColor18 contained '\<18\>'
syn match dircolorsColor19 contained '\<19\>'
syn match dircolorsColor20 contained '\<20\>'
syn match dircolorsColor21 contained '\<21\>'
syn match dircolorsColor22 contained '\<22\>'
syn match dircolorsColor23 contained '\<23\>'
syn match dircolorsColor24 contained '\<24\>'
syn match dircolorsColor25 contained '\<25\>'
syn match dircolorsColor26 contained '\<26\>'
syn match dircolorsColor27 contained '\<27\>'
syn match dircolorsColor28 contained '\<28\>'
syn match dircolorsColor29 contained '\<29\>'
syn match dircolorsColor30 contained '\<30\>'
syn match dircolorsColor31 contained '\<31\>'
syn match dircolorsColor32 contained '\<32\>'
syn match dircolorsColor33 contained '\<33\>'
syn match dircolorsColor34 contained '\<34\>'
syn match dircolorsColor35 contained '\<35\>'
syn match dircolorsColor36 contained '\<36\>'
syn match dircolorsColor37 contained '\<37\>'
syn match dircolorsColor38 contained '\<38\>'
syn match dircolorsColor39 contained '\<39\>'
syn match dircolorsColor40 contained '\<40\>'
syn match dircolorsColor41 contained '\<41\>'
syn match dircolorsColor42 contained '\<42\>'
syn match dircolorsColor43 contained '\<43\>'
syn match dircolorsColor44 contained '\<44\>'
syn match dircolorsColor45 contained '\<45\>'
syn match dircolorsColor46 contained '\<46\>'
syn match dircolorsColor47 contained '\<47\>'
syn match dircolorsColor48 contained '\<48\>'
syn match dircolorsColor49 contained '\<49\>'
syn match dircolorsColor50 contained '\<50\>'
syn match dircolorsColor51 contained '\<51\>'
syn match dircolorsColor52 contained '\<52\>'
syn match dircolorsColor53 contained '\<53\>'
syn match dircolorsColor54 contained '\<54\>'
syn match dircolorsColor55 contained '\<55\>'
syn match dircolorsColor56 contained '\<56\>'
syn match dircolorsColor57 contained '\<57\>'
syn match dircolorsColor58 contained '\<58\>'
syn match dircolorsColor59 contained '\<59\>'
syn match dircolorsColor60 contained '\<60\>'
syn match dircolorsColor61 contained '\<61\>'
syn match dircolorsColor62 contained '\<62\>'
syn match dircolorsColor63 contained '\<63\>'
syn match dircolorsColor64 contained '\<64\>'
syn match dircolorsColor65 contained '\<65\>'
syn match dircolorsColor66 contained '\<66\>'
syn match dircolorsColor67 contained '\<67\>'
syn match dircolorsColor68 contained '\<68\>'
syn match dircolorsColor69 contained '\<69\>'
syn match dircolorsColor70 contained '\<70\>'
syn match dircolorsColor71 contained '\<71\>'
syn match dircolorsColor72 contained '\<72\>'
syn match dircolorsColor73 contained '\<73\>'
syn match dircolorsColor74 contained '\<74\>'
syn match dircolorsColor75 contained '\<75\>'
syn match dircolorsColor76 contained '\<76\>'
syn match dircolorsColor77 contained '\<77\>'
syn match dircolorsColor78 contained '\<78\>'
syn match dircolorsColor79 contained '\<79\>'
syn match dircolorsColor80 contained '\<80\>'
syn match dircolorsColor81 contained '\<81\>'
syn match dircolorsColor82 contained '\<82\>'
syn match dircolorsColor83 contained '\<83\>'
syn match dircolorsColor84 contained '\<84\>'
syn match dircolorsColor85 contained '\<85\>'
syn match dircolorsColor86 contained '\<86\>'
syn match dircolorsColor87 contained '\<87\>'
syn match dircolorsColor88 contained '\<88\>'
syn match dircolorsColor89 contained '\<89\>'
syn match dircolorsColor90 contained '\<90\>'
syn match dircolorsColor91 contained '\<91\>'
syn match dircolorsColor92 contained '\<92\>'
syn match dircolorsColor93 contained '\<93\>'
syn match dircolorsColor94 contained '\<94\>'
syn match dircolorsColor95 contained '\<95\>'
syn match dircolorsColor96 contained '\<96\>'
syn match dircolorsColor97 contained '\<97\>'
syn match dircolorsColor98 contained '\<98\>'
syn match dircolorsColor99 contained '\<99\>'
syn match dircolorsColor100 contained '\<100\>'
syn match dircolorsColor101 contained '\<101\>'
syn match dircolorsColor102 contained '\<102\>'
syn match dircolorsColor103 contained '\<103\>'
syn match dircolorsColor104 contained '\<104\>'
syn match dircolorsColor105 contained '\<105\>'
syn match dircolorsColor106 contained '\<106\>'
syn match dircolorsColor107 contained '\<107\>'
syn match dircolorsColor108 contained '\<108\>'
syn match dircolorsColor109 contained '\<109\>'
syn match dircolorsColor110 contained '\<110\>'
syn match dircolorsColor111 contained '\<111\>'
syn match dircolorsColor112 contained '\<112\>'
syn match dircolorsColor113 contained '\<113\>'
syn match dircolorsColor114 contained '\<114\>'
syn match dircolorsColor115 contained '\<115\>'
syn match dircolorsColor116 contained '\<116\>'
syn match dircolorsColor117 contained '\<117\>'
syn match dircolorsColor118 contained '\<118\>'
syn match dircolorsColor119 contained '\<119\>'
syn match dircolorsColor120 contained '\<120\>'
syn match dircolorsColor121 contained '\<121\>'
syn match dircolorsColor122 contained '\<122\>'
syn match dircolorsColor123 contained '\<123\>'
syn match dircolorsColor124 contained '\<124\>'
syn match dircolorsColor125 contained '\<125\>'
syn match dircolorsColor126 contained '\<126\>'
syn match dircolorsColor127 contained '\<127\>'
syn match dircolorsColor128 contained '\<128\>'
syn match dircolorsColor129 contained '\<129\>'
syn match dircolorsColor130 contained '\<130\>'
syn match dircolorsColor131 contained '\<131\>'
syn match dircolorsColor132 contained '\<132\>'
syn match dircolorsColor133 contained '\<133\>'
syn match dircolorsColor134 contained '\<134\>'
syn match dircolorsColor135 contained '\<135\>'
syn match dircolorsColor136 contained '\<136\>'
syn match dircolorsColor137 contained '\<137\>'
syn match dircolorsColor138 contained '\<138\>'
syn match dircolorsColor139 contained '\<139\>'
syn match dircolorsColor140 contained '\<140\>'
syn match dircolorsColor141 contained '\<141\>'
syn match dircolorsColor142 contained '\<142\>'
syn match dircolorsColor143 contained '\<143\>'
syn match dircolorsColor144 contained '\<144\>'
syn match dircolorsColor145 contained '\<145\>'
syn match dircolorsColor146 contained '\<146\>'
syn match dircolorsColor147 contained '\<147\>'
syn match dircolorsColor148 contained '\<148\>'
syn match dircolorsColor149 contained '\<149\>'
syn match dircolorsColor150 contained '\<150\>'
syn match dircolorsColor151 contained '\<151\>'
syn match dircolorsColor152 contained '\<152\>'
syn match dircolorsColor153 contained '\<153\>'
syn match dircolorsColor154 contained '\<154\>'
syn match dircolorsColor155 contained '\<155\>'
syn match dircolorsColor156 contained '\<156\>'
syn match dircolorsColor157 contained '\<157\>'
syn match dircolorsColor158 contained '\<158\>'
syn match dircolorsColor159 contained '\<159\>'
syn match dircolorsColor160 contained '\<160\>'
syn match dircolorsColor161 contained '\<161\>'
syn match dircolorsColor162 contained '\<162\>'
syn match dircolorsColor163 contained '\<163\>'
syn match dircolorsColor164 contained '\<164\>'
syn match dircolorsColor165 contained '\<165\>'
syn match dircolorsColor166 contained '\<166\>'
syn match dircolorsColor167 contained '\<167\>'
syn match dircolorsColor168 contained '\<168\>'
syn match dircolorsColor169 contained '\<169\>'
syn match dircolorsColor170 contained '\<170\>'
syn match dircolorsColor171 contained '\<171\>'
syn match dircolorsColor172 contained '\<172\>'
syn match dircolorsColor173 contained '\<173\>'
syn match dircolorsColor174 contained '\<174\>'
syn match dircolorsColor175 contained '\<175\>'
syn match dircolorsColor176 contained '\<176\>'
syn match dircolorsColor177 contained '\<177\>'
syn match dircolorsColor178 contained '\<178\>'
syn match dircolorsColor179 contained '\<179\>'
syn match dircolorsColor180 contained '\<180\>'
syn match dircolorsColor181 contained '\<181\>'
syn match dircolorsColor182 contained '\<182\>'
syn match dircolorsColor183 contained '\<183\>'
syn match dircolorsColor184 contained '\<184\>'
syn match dircolorsColor185 contained '\<185\>'
syn match dircolorsColor186 contained '\<186\>'
syn match dircolorsColor187 contained '\<187\>'
syn match dircolorsColor188 contained '\<188\>'
syn match dircolorsColor189 contained '\<189\>'
syn match dircolorsColor190 contained '\<190\>'
syn match dircolorsColor191 contained '\<191\>'
syn match dircolorsColor192 contained '\<192\>'
syn match dircolorsColor193 contained '\<193\>'
syn match dircolorsColor194 contained '\<194\>'
syn match dircolorsColor195 contained '\<195\>'
syn match dircolorsColor196 contained '\<196\>'
syn match dircolorsColor197 contained '\<197\>'
syn match dircolorsColor198 contained '\<198\>'
syn match dircolorsColor199 contained '\<199\>'
syn match dircolorsColor200 contained '\<200\>'
syn match dircolorsColor201 contained '\<201\>'
syn match dircolorsColor202 contained '\<202\>'
syn match dircolorsColor203 contained '\<203\>'
syn match dircolorsColor204 contained '\<204\>'
syn match dircolorsColor205 contained '\<205\>'
syn match dircolorsColor206 contained '\<206\>'
syn match dircolorsColor207 contained '\<207\>'
syn match dircolorsColor208 contained '\<208\>'
syn match dircolorsColor209 contained '\<209\>'
syn match dircolorsColor210 contained '\<210\>'
syn match dircolorsColor211 contained '\<211\>'
syn match dircolorsColor212 contained '\<212\>'
syn match dircolorsColor213 contained '\<213\>'
syn match dircolorsColor214 contained '\<214\>'
syn match dircolorsColor215 contained '\<215\>'
syn match dircolorsColor216 contained '\<216\>'
syn match dircolorsColor217 contained '\<217\>'
syn match dircolorsColor218 contained '\<218\>'
syn match dircolorsColor219 contained '\<219\>'
syn match dircolorsColor220 contained '\<220\>'
syn match dircolorsColor221 contained '\<221\>'
syn match dircolorsColor222 contained '\<222\>'
syn match dircolorsColor223 contained '\<223\>'
syn match dircolorsColor224 contained '\<224\>'
syn match dircolorsColor225 contained '\<225\>'
syn match dircolorsColor226 contained '\<226\>'
syn match dircolorsColor227 contained '\<227\>'
syn match dircolorsColor228 contained '\<228\>'
syn match dircolorsColor229 contained '\<229\>'
syn match dircolorsColor230 contained '\<230\>'
syn match dircolorsColor231 contained '\<231\>'
syn match dircolorsColor232 contained '\<232\>'
syn match dircolorsColor233 contained '\<233\>'
syn match dircolorsColor234 contained '\<234\>'
syn match dircolorsColor235 contained '\<235\>'
syn match dircolorsColor236 contained '\<236\>'
syn match dircolorsColor237 contained '\<237\>'
syn match dircolorsColor238 contained '\<238\>'
syn match dircolorsColor239 contained '\<239\>'
syn match dircolorsColor240 contained '\<240\>'
syn match dircolorsColor241 contained '\<241\>'
syn match dircolorsColor242 contained '\<242\>'
syn match dircolorsColor243 contained '\<243\>'
syn match dircolorsColor244 contained '\<244\>'
syn match dircolorsColor245 contained '\<245\>'
syn match dircolorsColor246 contained '\<246\>'
syn match dircolorsColor247 contained '\<247\>'
syn match dircolorsColor248 contained '\<248\>'
syn match dircolorsColor249 contained '\<249\>'
syn match dircolorsColor250 contained '\<250\>'
syn match dircolorsColor251 contained '\<251\>'
syn match dircolorsColor252 contained '\<252\>'
syn match dircolorsColor253 contained '\<253\>'
syn match dircolorsColor254 contained '\<254\>'
syn match dircolorsColor255 contained '\<255\>'
else
syn cluster dircolorsColors contains=dircolorsNumber
syn match dircolorsNumber '\<\d\+\>'
let cur_col = 16
for r in xterm_palette
for g in xterm_palette
for b in xterm_palette
let s:guicolors[cur_col] = '#' . r . g . b
let cur_col += 1
endfor
endfor
endfor
for i in range(24)
let g = i * 0xa + 8
let s:guicolors[i + 232] = '#' . g . g . g
endfor
endfunction
function! s:get_hi_str(color, place) abort
if a:color >= 0 && a:color <= 255
if has('gui_running')
return ' gui' . a:place . '=' . s:guicolors[a:color]
elseif a:color <= 7 || &t_Co == 256 || &t_Co == 88
return ' cterm' . a:place . '=' . a:color
endif
endif
return ''
endfunction
function! s:get_256color(colors) abort
if len(a:colors) >= 2 " May be fewer while editing
let [_five, color] = remove(a:colors, 0, 1)
if _five != '5' || color == ''
return -1
else
return str2nr(color)
endif
else
return -1
endif
endfunction
function! s:preview_color(linenr) abort
let line = getline(a:linenr)
let defline = matchlist(line, '^\v([A-Z_]+|[*.]\S+)\s+([0-9;]+)')
if empty(defline)
return
endif
let colordef = defline[2]
let colors = split(colordef, ';')
let hi_str = ''
let hi_attrs = []
while len(colors) > 0
let item = str2nr(remove(colors, 0))
if item == 1
call add(hi_attrs, 'bold')
elseif item == 3
call add(hi_attrs, 'italic')
elseif item == 4
call add(hi_attrs, 'underline')
elseif item == 7
call add(hi_attrs, 'inverse')
elseif item >= 30 && item <= 37
" ANSI SGR foreground color
let hi_str .= s:get_hi_str(item - 30, 'fg')
elseif item >= 40 && item <= 47
" ANSI SGR background color
let hi_str .= s:get_hi_str(item - 40, 'bg')
elseif item == 38
" Foreground for terminals with 88/256 color support
let color = s:get_256color(colors)
if color == -1
break
endif
let hi_str .= s:get_hi_str(color, 'fg')
elseif item == 48
" Background for terminals with 88/256 color support
let color = s:get_256color(colors)
if color == -1
break
endif
let hi_str .= s:get_hi_str(color, 'bg')
endif
endwhile
if hi_str == '' && empty(hi_attrs)
return
endif
" Check whether we have already defined this color
redir => s:currentmatch
silent! execute 'syntax list'
redir END
if s:currentmatch !~# '\/\\_s\\zs' . colordef . '\\ze\\_s\/'
" Append the buffer number to avoid problems with other dircolors
" buffers interfering
let bufnr = bufnr('%')
execute 'syntax match dircolorsColor' . b:dc_next_index . '_' . bufnr .
\ ' "\_s\zs' . colordef . '\ze\_s"'
let hi_attrs_str = ''
if !empty(hi_attrs)
if has('gui_running')
let hi_attrs_str = ' gui=' . join(hi_attrs, ',')
else
let hi_attrs_str = ' cterm=' . join(hi_attrs, ',')
endif
endif
execute 'highlight default dircolorsColor' . b:dc_next_index . '_' .
\ bufnr . hi_str . hi_attrs_str
let b:dc_next_index += 1
endif
endfunction
" Avoid accumulating too many definitions while editing
function! s:reset_colors() abort
if b:dc_next_index > 0
let bufnr = bufnr('%')
for i in range(b:dc_next_index)
execute 'syntax clear dircolorsColor' . i . '_' . bufnr
execute 'highlight clear dircolorsColor' . i . '_' . bufnr
endfor
let b:dc_next_index = 0
endif
for linenr in range(1, line('$'))
call s:preview_color(linenr)
endfor
endfunction
let b:dc_next_index = 0
if has('gui_running')
call s:set_guicolors()
endif
hi def link dircolorsTodo Todo
hi def link dircolorsComment Comment
hi def link dircolorsKeyword Keyword
hi def link dircolorsExtension Keyword
if has('gui_running') || &t_Co != ''
call s:reset_colors()
if &t_Co == 8 || &t_Co == 16
hi def dircolorsBold term=bold cterm=bold gui=bold
hi def dircolorsUnderline term=underline cterm=underline gui=underline
hi def link dircolorsBlink Normal
hi def dircolorsReverse term=reverse cterm=reverse gui=reverse
hi def link dircolorsInvisible Ignore
hi def dircolorsBlack ctermfg=Black guifg=Black
hi def dircolorsRed ctermfg=Red guifg=Red
hi def dircolorsGreen ctermfg=Green guifg=Green
hi def dircolorsYellow ctermfg=Yellow guifg=Yellow
hi def dircolorsBlue ctermfg=Blue guifg=Blue
hi def dircolorsMagenta ctermfg=Magenta guifg=Magenta
hi def dircolorsCyan ctermfg=Cyan guifg=Cyan
hi def dircolorsWhite ctermfg=White guifg=White
hi def dircolorsBGBlack ctermbg=Black ctermfg=White
\ guibg=Black guifg=White
hi def dircolorsBGRed ctermbg=DarkRed guibg=DarkRed
hi def dircolorsBGGreen ctermbg=DarkGreen guibg=DarkGreen
hi def dircolorsBGYellow ctermbg=DarkYellow guibg=DarkYellow
hi def dircolorsBGBlue ctermbg=DarkBlue guibg=DarkBlue
hi def dircolorsBGMagenta ctermbg=DarkMagenta guibg=DarkMagenta
hi def dircolorsBGCyan ctermbg=DarkCyan guibg=DarkCyan
hi def dircolorsBGWhite ctermbg=White ctermfg=Black
\ guibg=White guifg=Black
elseif &t_Co == 256 || has("gui_running")
hi def dircolorsColor0 ctermfg=0 guifg=Black
hi def dircolorsColor1 ctermfg=1 guifg=DarkRed
hi def dircolorsColor2 ctermfg=2 guifg=DarkGreen
hi def dircolorsColor3 ctermfg=3 guifg=DarkYellow
hi def dircolorsColor4 ctermfg=4 guifg=DarkBlue
hi def dircolorsColor5 ctermfg=5 guifg=DarkMagenta
hi def dircolorsColor6 ctermfg=6 guifg=DarkCyan
hi def dircolorsColor7 ctermfg=7 guifg=Gray
hi def dircolorsColor8 ctermfg=8 guifg=DarkGray
hi def dircolorsColor9 ctermfg=9 guifg=Red
hi def dircolorsColor10 ctermfg=10 guifg=Green
hi def dircolorsColor11 ctermfg=11 guifg=Yellow
hi def dircolorsColor12 ctermfg=12 guifg=Blue
hi def dircolorsColor13 ctermfg=13 guifg=Magenta
hi def dircolorsColor14 ctermfg=14 guifg=Cyan
hi def dircolorsColor15 ctermfg=15 guifg=White
hi def dircolorsColor16 ctermfg=16 guifg=#000000
hi def dircolorsColor17 ctermfg=17 guifg=#00005f
hi def dircolorsColor18 ctermfg=18 guifg=#000087
hi def dircolorsColor19 ctermfg=19 guifg=#0000af
hi def dircolorsColor20 ctermfg=20 guifg=#0000d7
hi def dircolorsColor21 ctermfg=21 guifg=#0000ff
hi def dircolorsColor22 ctermfg=22 guifg=#005f00
hi def dircolorsColor23 ctermfg=23 guifg=#005f5f
hi def dircolorsColor24 ctermfg=24 guifg=#005f87
hi def dircolorsColor25 ctermfg=25 guifg=#005faf
hi def dircolorsColor26 ctermfg=26 guifg=#005fd7
hi def dircolorsColor27 ctermfg=27 guifg=#005fff
hi def dircolorsColor28 ctermfg=28 guifg=#008700
hi def dircolorsColor29 ctermfg=29 guifg=#00875f
hi def dircolorsColor30 ctermfg=30 guifg=#008787
hi def dircolorsColor31 ctermfg=31 guifg=#0087af
hi def dircolorsColor32 ctermfg=32 guifg=#0087d7
hi def dircolorsColor33 ctermfg=33 guifg=#0087ff
hi def dircolorsColor34 ctermfg=34 guifg=#00af00
hi def dircolorsColor35 ctermfg=35 guifg=#00af5f
hi def dircolorsColor36 ctermfg=36 guifg=#00af87
hi def dircolorsColor37 ctermfg=37 guifg=#00afaf
hi def dircolorsColor38 ctermfg=38 guifg=#00afd7
hi def dircolorsColor39 ctermfg=39 guifg=#00afff
hi def dircolorsColor40 ctermfg=40 guifg=#00d700
hi def dircolorsColor41 ctermfg=41 guifg=#00d75f
hi def dircolorsColor42 ctermfg=42 guifg=#00d787
hi def dircolorsColor43 ctermfg=43 guifg=#00d7af
hi def dircolorsColor44 ctermfg=44 guifg=#00d7d7
hi def dircolorsColor45 ctermfg=45 guifg=#00d7ff
hi def dircolorsColor46 ctermfg=46 guifg=#00ff00
hi def dircolorsColor47 ctermfg=47 guifg=#00ff5f
hi def dircolorsColor48 ctermfg=48 guifg=#00ff87
hi def dircolorsColor49 ctermfg=49 guifg=#00ffaf
hi def dircolorsColor50 ctermfg=50 guifg=#00ffd7
hi def dircolorsColor51 ctermfg=51 guifg=#00ffff
hi def dircolorsColor52 ctermfg=52 guifg=#5f0000
hi def dircolorsColor53 ctermfg=53 guifg=#5f005f
hi def dircolorsColor54 ctermfg=54 guifg=#5f0087
hi def dircolorsColor55 ctermfg=55 guifg=#5f00af
hi def dircolorsColor56 ctermfg=56 guifg=#5f00d7
hi def dircolorsColor57 ctermfg=57 guifg=#5f00ff
hi def dircolorsColor58 ctermfg=58 guifg=#5f5f00
hi def dircolorsColor59 ctermfg=59 guifg=#5f5f5f
hi def dircolorsColor60 ctermfg=60 guifg=#5f5f87
hi def dircolorsColor61 ctermfg=61 guifg=#5f5faf
hi def dircolorsColor62 ctermfg=62 guifg=#5f5fd7
hi def dircolorsColor63 ctermfg=63 guifg=#5f5fff
hi def dircolorsColor64 ctermfg=64 guifg=#5f8700
hi def dircolorsColor65 ctermfg=65 guifg=#5f875f
hi def dircolorsColor66 ctermfg=66 guifg=#5f8787
hi def dircolorsColor67 ctermfg=67 guifg=#5f87af
hi def dircolorsColor68 ctermfg=68 guifg=#5f87d7
hi def dircolorsColor69 ctermfg=69 guifg=#5f87ff
hi def dircolorsColor70 ctermfg=70 guifg=#5faf00
hi def dircolorsColor71 ctermfg=71 guifg=#5faf5f
hi def dircolorsColor72 ctermfg=72 guifg=#5faf87
hi def dircolorsColor73 ctermfg=73 guifg=#5fafaf
hi def dircolorsColor74 ctermfg=74 guifg=#5fafd7
hi def dircolorsColor75 ctermfg=75 guifg=#5fafff
hi def dircolorsColor76 ctermfg=76 guifg=#5fd700
hi def dircolorsColor77 ctermfg=77 guifg=#5fd75f
hi def dircolorsColor78 ctermfg=78 guifg=#5fd787
hi def dircolorsColor79 ctermfg=79 guifg=#5fd7af
hi def dircolorsColor80 ctermfg=80 guifg=#5fd7d7
hi def dircolorsColor81 ctermfg=81 guifg=#5fd7ff
hi def dircolorsColor82 ctermfg=82 guifg=#5fff00
hi def dircolorsColor83 ctermfg=83 guifg=#5fff5f
hi def dircolorsColor84 ctermfg=84 guifg=#5fff87
hi def dircolorsColor85 ctermfg=85 guifg=#5fffaf
hi def dircolorsColor86 ctermfg=86 guifg=#5fffd7
hi def dircolorsColor87 ctermfg=87 guifg=#5fffff
hi def dircolorsColor88 ctermfg=88 guifg=#870000
hi def dircolorsColor89 ctermfg=89 guifg=#87005f
hi def dircolorsColor90 ctermfg=90 guifg=#870087
hi def dircolorsColor91 ctermfg=91 guifg=#8700af
hi def dircolorsColor92 ctermfg=92 guifg=#8700d7
hi def dircolorsColor93 ctermfg=93 guifg=#8700ff
hi def dircolorsColor94 ctermfg=94 guifg=#875f00
hi def dircolorsColor95 ctermfg=95 guifg=#875f5f
hi def dircolorsColor96 ctermfg=96 guifg=#875f87
hi def dircolorsColor97 ctermfg=97 guifg=#875faf
hi def dircolorsColor98 ctermfg=98 guifg=#875fd7
hi def dircolorsColor99 ctermfg=99 guifg=#875fff
hi def dircolorsColor100 ctermfg=100 guifg=#878700
hi def dircolorsColor101 ctermfg=101 guifg=#87875f
hi def dircolorsColor102 ctermfg=102 guifg=#878787
hi def dircolorsColor103 ctermfg=103 guifg=#8787af
hi def dircolorsColor104 ctermfg=104 guifg=#8787d7
hi def dircolorsColor105 ctermfg=105 guifg=#8787ff
hi def dircolorsColor106 ctermfg=106 guifg=#87af00
hi def dircolorsColor107 ctermfg=107 guifg=#87af5f
hi def dircolorsColor108 ctermfg=108 guifg=#87af87
hi def dircolorsColor109 ctermfg=109 guifg=#87afaf
hi def dircolorsColor110 ctermfg=110 guifg=#87afd7
hi def dircolorsColor111 ctermfg=111 guifg=#87afff
hi def dircolorsColor112 ctermfg=112 guifg=#87d700
hi def dircolorsColor113 ctermfg=113 guifg=#87d75f
hi def dircolorsColor114 ctermfg=114 guifg=#87d787
hi def dircolorsColor115 ctermfg=115 guifg=#87d7af
hi def dircolorsColor116 ctermfg=116 guifg=#87d7d7
hi def dircolorsColor117 ctermfg=117 guifg=#87d7ff
hi def dircolorsColor118 ctermfg=118 guifg=#87ff00
hi def dircolorsColor119 ctermfg=119 guifg=#87ff5f
hi def dircolorsColor120 ctermfg=120 guifg=#87ff87
hi def dircolorsColor121 ctermfg=121 guifg=#87ffaf
hi def dircolorsColor122 ctermfg=122 guifg=#87ffd7
hi def dircolorsColor123 ctermfg=123 guifg=#87ffff
hi def dircolorsColor124 ctermfg=124 guifg=#af0000
hi def dircolorsColor125 ctermfg=125 guifg=#af005f
hi def dircolorsColor126 ctermfg=126 guifg=#af0087
hi def dircolorsColor127 ctermfg=127 guifg=#af00af
hi def dircolorsColor128 ctermfg=128 guifg=#af00d7
hi def dircolorsColor129 ctermfg=129 guifg=#af00ff
hi def dircolorsColor130 ctermfg=130 guifg=#af5f00
hi def dircolorsColor131 ctermfg=131 guifg=#af5f5f
hi def dircolorsColor132 ctermfg=132 guifg=#af5f87
hi def dircolorsColor133 ctermfg=133 guifg=#af5faf
hi def dircolorsColor134 ctermfg=134 guifg=#af5fd7
hi def dircolorsColor135 ctermfg=135 guifg=#af5fff
hi def dircolorsColor136 ctermfg=136 guifg=#af8700
hi def dircolorsColor137 ctermfg=137 guifg=#af875f
hi def dircolorsColor138 ctermfg=138 guifg=#af8787
hi def dircolorsColor139 ctermfg=139 guifg=#af87af
hi def dircolorsColor140 ctermfg=140 guifg=#af87d7
hi def dircolorsColor141 ctermfg=141 guifg=#af87ff
hi def dircolorsColor142 ctermfg=142 guifg=#afaf00
hi def dircolorsColor143 ctermfg=143 guifg=#afaf5f
hi def dircolorsColor144 ctermfg=144 guifg=#afaf87
hi def dircolorsColor145 ctermfg=145 guifg=#afafaf
hi def dircolorsColor146 ctermfg=146 guifg=#afafd7
hi def dircolorsColor147 ctermfg=147 guifg=#afafff
hi def dircolorsColor148 ctermfg=148 guifg=#afd700
hi def dircolorsColor149 ctermfg=149 guifg=#afd75f
hi def dircolorsColor150 ctermfg=150 guifg=#afd787
hi def dircolorsColor151 ctermfg=151 guifg=#afd7af
hi def dircolorsColor152 ctermfg=152 guifg=#afd7d7
hi def dircolorsColor153 ctermfg=153 guifg=#afd7ff
hi def dircolorsColor154 ctermfg=154 guifg=#afff00
hi def dircolorsColor155 ctermfg=155 guifg=#afff5f
hi def dircolorsColor156 ctermfg=156 guifg=#afff87
hi def dircolorsColor157 ctermfg=157 guifg=#afffaf
hi def dircolorsColor158 ctermfg=158 guifg=#afffd7
hi def dircolorsColor159 ctermfg=159 guifg=#afffff
hi def dircolorsColor160 ctermfg=160 guifg=#d70000
hi def dircolorsColor161 ctermfg=161 guifg=#d7005f
hi def dircolorsColor162 ctermfg=162 guifg=#d70087
hi def dircolorsColor163 ctermfg=163 guifg=#d700af
hi def dircolorsColor164 ctermfg=164 guifg=#d700d7
hi def dircolorsColor165 ctermfg=165 guifg=#d700ff
hi def dircolorsColor166 ctermfg=166 guifg=#d75f00
hi def dircolorsColor167 ctermfg=167 guifg=#d75f5f
hi def dircolorsColor168 ctermfg=168 guifg=#d75f87
hi def dircolorsColor169 ctermfg=169 guifg=#d75faf
hi def dircolorsColor170 ctermfg=170 guifg=#d75fd7
hi def dircolorsColor171 ctermfg=171 guifg=#d75fff
hi def dircolorsColor172 ctermfg=172 guifg=#d78700
hi def dircolorsColor173 ctermfg=173 guifg=#d7875f
hi def dircolorsColor174 ctermfg=174 guifg=#d78787
hi def dircolorsColor175 ctermfg=175 guifg=#d787af
hi def dircolorsColor176 ctermfg=176 guifg=#d787d7
hi def dircolorsColor177 ctermfg=177 guifg=#d787ff
hi def dircolorsColor178 ctermfg=178 guifg=#d7af00
hi def dircolorsColor179 ctermfg=179 guifg=#d7af5f
hi def dircolorsColor180 ctermfg=180 guifg=#d7af87
hi def dircolorsColor181 ctermfg=181 guifg=#d7afaf
hi def dircolorsColor182 ctermfg=182 guifg=#d7afd7
hi def dircolorsColor183 ctermfg=183 guifg=#d7afff
hi def dircolorsColor184 ctermfg=184 guifg=#d7d700
hi def dircolorsColor185 ctermfg=185 guifg=#d7d75f
hi def dircolorsColor186 ctermfg=186 guifg=#d7d787
hi def dircolorsColor187 ctermfg=187 guifg=#d7d7af
hi def dircolorsColor188 ctermfg=188 guifg=#d7d7d7
hi def dircolorsColor189 ctermfg=189 guifg=#d7d7ff
hi def dircolorsColor190 ctermfg=190 guifg=#d7ff00
hi def dircolorsColor191 ctermfg=191 guifg=#d7ff5f
hi def dircolorsColor192 ctermfg=192 guifg=#d7ff87
hi def dircolorsColor193 ctermfg=193 guifg=#d7ffaf
hi def dircolorsColor194 ctermfg=194 guifg=#d7ffd7
hi def dircolorsColor195 ctermfg=195 guifg=#d7ffff
hi def dircolorsColor196 ctermfg=196 guifg=#ff0000
hi def dircolorsColor197 ctermfg=197 guifg=#ff005f
hi def dircolorsColor198 ctermfg=198 guifg=#ff0087
hi def dircolorsColor199 ctermfg=199 guifg=#ff00af
hi def dircolorsColor200 ctermfg=200 guifg=#ff00d7
hi def dircolorsColor201 ctermfg=201 guifg=#ff00ff
hi def dircolorsColor202 ctermfg=202 guifg=#ff5f00
hi def dircolorsColor203 ctermfg=203 guifg=#ff5f5f
hi def dircolorsColor204 ctermfg=204 guifg=#ff5f87
hi def dircolorsColor205 ctermfg=205 guifg=#ff5faf
hi def dircolorsColor206 ctermfg=206 guifg=#ff5fd7
hi def dircolorsColor207 ctermfg=207 guifg=#ff5fff
hi def dircolorsColor208 ctermfg=208 guifg=#ff8700
hi def dircolorsColor209 ctermfg=209 guifg=#ff875f
hi def dircolorsColor210 ctermfg=210 guifg=#ff8787
hi def dircolorsColor211 ctermfg=211 guifg=#ff87af
hi def dircolorsColor212 ctermfg=212 guifg=#ff87d7
hi def dircolorsColor213 ctermfg=213 guifg=#ff87ff
hi def dircolorsColor214 ctermfg=214 guifg=#ffaf00
hi def dircolorsColor215 ctermfg=215 guifg=#ffaf5f
hi def dircolorsColor216 ctermfg=216 guifg=#ffaf87
hi def dircolorsColor217 ctermfg=217 guifg=#ffafaf
hi def dircolorsColor218 ctermfg=218 guifg=#ffafd7
hi def dircolorsColor219 ctermfg=219 guifg=#ffafff
hi def dircolorsColor220 ctermfg=220 guifg=#ffd700
hi def dircolorsColor221 ctermfg=221 guifg=#ffd75f
hi def dircolorsColor222 ctermfg=222 guifg=#ffd787
hi def dircolorsColor223 ctermfg=223 guifg=#ffd7af
hi def dircolorsColor224 ctermfg=224 guifg=#ffd7d7
hi def dircolorsColor225 ctermfg=225 guifg=#ffd7ff
hi def dircolorsColor226 ctermfg=226 guifg=#ffff00
hi def dircolorsColor227 ctermfg=227 guifg=#ffff5f
hi def dircolorsColor228 ctermfg=228 guifg=#ffff87
hi def dircolorsColor229 ctermfg=229 guifg=#ffffaf
hi def dircolorsColor230 ctermfg=230 guifg=#ffffd7
hi def dircolorsColor231 ctermfg=231 guifg=#ffffff
hi def dircolorsColor232 ctermfg=232 guifg=#080808
hi def dircolorsColor233 ctermfg=233 guifg=#121212
hi def dircolorsColor234 ctermfg=234 guifg=#1c1c1c
hi def dircolorsColor235 ctermfg=235 guifg=#262626
hi def dircolorsColor236 ctermfg=236 guifg=#303030
hi def dircolorsColor237 ctermfg=237 guifg=#3a3a3a
hi def dircolorsColor238 ctermfg=238 guifg=#444444
hi def dircolorsColor239 ctermfg=239 guifg=#4e4e4e
hi def dircolorsColor240 ctermfg=240 guifg=#585858
hi def dircolorsColor241 ctermfg=241 guifg=#626262
hi def dircolorsColor242 ctermfg=242 guifg=#6c6c6c
hi def dircolorsColor243 ctermfg=243 guifg=#767676
hi def dircolorsColor244 ctermfg=244 guifg=#808080
hi def dircolorsColor245 ctermfg=245 guifg=#8a8a8a
hi def dircolorsColor246 ctermfg=246 guifg=#949494
hi def dircolorsColor247 ctermfg=247 guifg=#9e9e9e
hi def dircolorsColor248 ctermfg=248 guifg=#a8a8a8
hi def dircolorsColor249 ctermfg=249 guifg=#b2b2b2
hi def dircolorsColor250 ctermfg=250 guifg=#bcbcbc
hi def dircolorsColor251 ctermfg=251 guifg=#c6c6c6
hi def dircolorsColor252 ctermfg=252 guifg=#d0d0d0
hi def dircolorsColor253 ctermfg=253 guifg=#dadada
hi def dircolorsColor254 ctermfg=254 guifg=#e4e4e4
hi def dircolorsColor255 ctermfg=255 guifg=#eeeeee
else
hi def link dircolorsNumber Number
autocmd CursorMoved,CursorMovedI <buffer> call s:preview_color('.')
autocmd CursorHold,CursorHoldI <buffer> call s:reset_colors()
endif
let b:current_syntax = "dircolors"
+2 -2
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
" Last Change: 2013 Jul 07
" Last Change: 2013 Sep 05
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -44,7 +44,7 @@ syn match helpVim "Vim version [0-9.a-z]\+"
syn match helpVim "VIM REFERENCE.*"
syn match helpOption "'[a-z]\{2,\}'"
syn match helpOption "'t_..'"
syn match helpCommand "`[^` ]\+`"hs=s+1,he=e-1 contains=helpBacktick
syn match helpCommand "`[^` \t]\+`"hs=s+1,he=e-1 contains=helpBacktick
syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
if has("conceal")
+43
View File
@@ -0,0 +1,43 @@
" Vim syntax file
" Language: J
" Maintainer: David Bürgin <676c7473@gmail.com>
" Last Change: 2013-09-21
if exists("b:current_syntax")
finish
endif
syntax case match
syntax sync minlines=50
syn match jControl /\<\%(assert\|break\|case\|catch[dt]\=\|continue\|do\|else\%(if\)\=\|end\|fcase\|for\|if\|return\|select\|throw\|try\|whil\%(e\|st\)\)\./
syn match jControl /\<\%(for\|goto\|label\)_\a\k*\./
syn region jString oneline start=/'/ skip=/''/ end=/'/
" Patterns for numbers in general, rational numbers, numbers with explicit
" base, infinities, and numbers with extended precision.
"
" Matching J numbers is difficult. The regular expression used for the general
" case roughly embodies this grammar sketch:
"
" EXP := /_?\d+(\.\d*)?([eE]_?\d+)?/
" COMP := EXP | EXP (j|a[dr]) EXP
" PIEU := COMP | COMP [px] COMP
"
" For the rest, a compromise between correctness and practicality was made.
" See http://www.jsoftware.com/help/dictionary/dcons.htm for reference.
syn match jNumber /\<_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\%(\%(j\|a[dr]\)_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\)\=\%([px]_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\%(\%(j\|a[dr]\)_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\)\=\)\=/
syn match jNumber /\<_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=r_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=/
syn match jNumber /\<_\=\d\+\%([eE]\d\+\)\=b_\=[0-9a-z]\+/
syn match jNumber /\<__\=\>/
syn match jNumber /\<_\=\d\+x\>/
syn match jComment /NB\..*$/
hi def link jControl Statement
hi def link jString String
hi def link jNumber Number
hi def link jComment Comment
let b:current_syntax = "j"
+2 -2
View File
@@ -2,7 +2,7 @@
" Language: Mail file
" Previous Maintainer: Felix von Leitner <leitner@math.fu-berlin.de>
" Maintainer: GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
" Last Change: Thu 02 Feb 2012 08:47:04 PM EST
" Last Change: Wed 14 Aug 2013 08:24:52 AM PDT
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -55,7 +55,7 @@ syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps,@NoSpell sta
" Treat verbatim Text special.
syn region mailVerbatim contains=@NoSpell keepend start="^#v+$" end="^#v-$" fold
syn region mailVerbatim contains=@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold
syn region mailVerbatim contains=@mailQuoteExps,@NoSpell keepend start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold
" URLs start with a known protocol or www,web,w3.
syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-z0-9/]`
+9 -1
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: php PHP 3/4/5
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
" Last Change: Dec 11, 2012
" Last Change: Aug 28, 2013
" URL: https://gitorious.org/jasonwoof/vim-syntax/blobs/master/php.vim
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
@@ -616,6 +616,11 @@ else
exec "syn sync fromstart"
endif
syntax match phpDocCustomTags "@[a-zA-Z]*\(\s\+\|\n\|\r\)" containedin=phpComment
syntax region phpDocTags start="{@\(example\|id\|internal\|inheritdoc\|link\|source\|toc\|tutorial\)" end="}" containedin=phpComment
syntax match phpDocTags "@\(abstract\|access\|author\|category\|copyright\|deprecated\|example\|final\|global\|ignore\|internal\|license\|link\|method\|name\|package\|param\|property\|return\|see\|since\|static\|staticvar\|subpackage\|tutorial\|uses\|var\|version\|contributor\|modified\|filename\|description\|filesource\|throws\)\(\s\+\)\?" containedin=phpComment
syntax match phpDocTodo "@\(todo\|fixme\|xxx\)\(\s\+\)\?" containedin=phpComment
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
@@ -630,6 +635,8 @@ if version >= 508 || !exists("did_php_syn_inits")
HiLink phpConstant Constant
HiLink phpCoreConstant Constant
HiLink phpComment Comment
HiLink phpDocTags PreProc
HiLink phpDocCustomTags Type
HiLink phpException Exception
HiLink phpBoolean Boolean
HiLink phpStorageClass StorageClass
@@ -668,6 +675,7 @@ if version >= 508 || !exists("did_php_syn_inits")
HiLink phpInterpSimpleCurly Delimiter
HiLink phpInterpVarname Identifier
HiLink phpTodo Todo
HiLink phpDocTodo Todo
HiLink phpMemberSelector Structure
if exists("php_oldStyle")
hi phpIntVar guifg=Red ctermfg=DarkRed
+40 -24
View File
@@ -1,12 +1,12 @@
" Vim syntax file
" Language: VHDL
" Maintainer: Czo <Olivier.Sirol@lip6.fr>
" Maintainer: Daniel Kho <daniel.kho@tauhop.com>
" Previous Maintainer: Czo <Olivier.Sirol@lip6.fr>
" Credits: Stephan Hegel <stephan.hegel@snc.siemens.com.cn>
" Last Change: 2012 Jun 01
" (Dominique Pelle added @Spell)
" Last Changed: 2012 Feb 03 by Thilo Six
" $Id: vhdl.vim,v 1.1 2004/06/13 15:34:56 vimboss Exp $
" VHSIC Hardware Description Language
" Very High Scale Integrated Circuit
" VHSIC (Very High Speed Integrated Circuit) Hardware Description Language
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -22,8 +22,8 @@ set cpo&vim
" This is not VHDL. I use the C-Preprocessor cpp to generate different binaries
" from one VHDL source file. Unfortunately there is no preprocessor for VHDL
" available. If you don't like this, please remove the following lines.
syn match cDefine "^#ifdef[ ]\+[A-Za-z_]\+"
syn match cDefine "^#endif"
"syn match cDefine "^#ifdef[ ]\+[A-Za-z_]\+"
"syn match cDefine "^#endif"
" case is not significant
syn case ignore
@@ -31,11 +31,14 @@ syn case ignore
" VHDL keywords
syn keyword vhdlStatement access after alias all assert
syn keyword vhdlStatement architecture array attribute
syn keyword vhdlStatement assume assume_guarantee
syn keyword vhdlStatement begin block body buffer bus
syn keyword vhdlStatement case component configuration constant
syn keyword vhdlStatement disconnect downto
syn keyword vhdlStatement context cover
syn keyword vhdlStatement default disconnect downto
syn keyword vhdlStatement elsif end entity exit
syn keyword vhdlStatement file for function
syn keyword vhdlStatement fairness force
syn keyword vhdlStatement generate generic group guarded
syn keyword vhdlStatement impure in inertial inout is
syn keyword vhdlStatement label library linkage literal loop
@@ -43,12 +46,17 @@ syn keyword vhdlStatement map
syn keyword vhdlStatement new next null
syn keyword vhdlStatement of on open others out
syn keyword vhdlStatement package port postponed procedure process pure
syn keyword vhdlStatement parameter property protected
syn keyword vhdlStatement range record register reject report return
syn keyword vhdlStatement release restrict restrict_guarantee
syn keyword vhdlStatement select severity signal shared
syn keyword vhdlStatement subtype
syn keyword vhdlStatement sequence strong
syn keyword vhdlStatement then to transport type
syn keyword vhdlStatement unaffected units until use
syn keyword vhdlStatement variable wait when while with
syn keyword vhdlStatement variable
syn keyword vhdlStatement vmode vprop vunit
syn keyword vhdlStatement wait when while with
syn keyword vhdlStatement note warning error failure
" Special match for "if" and "else" since "else if" shouldn't be highlighted.
@@ -60,6 +68,7 @@ syn match vhdlNone "\<else\s\+if\>\s"
" Predefined VHDL types
syn keyword vhdlType bit bit_vector
syn keyword vhdlType character boolean integer real time
syn keyword vhdlType boolean_vector integer_vector real_vector time_vector
syn keyword vhdlType string severity_level
" Predefined standard ieee VHDL types
syn keyword vhdlType positive natural signed unsigned
@@ -67,11 +76,11 @@ syn keyword vhdlType line text
syn keyword vhdlType std_logic std_logic_vector
syn keyword vhdlType std_ulogic std_ulogic_vector
" Predefined non standard VHDL types for Mentor Graphics Sys1076/QuickHDL
syn keyword vhdlType qsim_state qsim_state_vector
syn keyword vhdlType qsim_12state qsim_12state_vector
syn keyword vhdlType qsim_strength
"syn keyword vhdlType qsim_state qsim_state_vector
"syn keyword vhdlType qsim_12state qsim_12state_vector
"syn keyword vhdlType qsim_strength
" Predefined non standard VHDL types for Alliance VLSI CAD
syn keyword vhdlType mux_bit mux_vector reg_bit reg_vector wor_bit wor_vector
"syn keyword vhdlType mux_bit mux_vector reg_bit reg_vector wor_bit wor_vector
" array attributes
syn match vhdlAttribute "\'high"
@@ -122,14 +131,14 @@ syn case match
" Values for standard VHDL types
syn match vhdlVector "\'[0L1HXWZU\-\?]\'"
" Values for non standard VHDL types qsim_12state for Mentor Graphics Sys1076/QuickHDL
syn keyword vhdlVector S0S S1S SXS S0R S1R SXR S0Z S1Z SXZ S0I S1I SXI
"syn keyword vhdlVector S0S S1S SXS S0R S1R SXR S0Z S1Z SXZ S0I S1I SXI
syn case ignore
syn match vhdlVector "B\"[01_]\+\""
syn match vhdlVector "O\"[0-7_]\+\""
syn match vhdlVector "X\"[0-9a-f_]\+\""
syn match vhdlCharacter "'.'"
syn region vhdlString start=+"+ end=+"+ contains=@Spell
syn region vhdlString start=+"+ end=+"+
" floating numbers
syn match vhdlNumber "-\=\<\d\+\.\d\+\(E[+\-]\=\d\+\)\>"
@@ -151,9 +160,15 @@ syn match vhdlSpecial "[().,;]"
syn match vhdlTime "\<\d\+\s\+\(\([fpnum]s\)\|\(sec\)\|\(min\)\|\(hr\)\)\>"
syn match vhdlTime "\<\d\+\.\d\+\s\+\(\([fpnum]s\)\|\(sec\)\|\(min\)\|\(hr\)\)\>"
syn match vhdlComment "--.*$" contains=@Spell
syn keyword vhdlTodo contained TODO FIXME
syn region vhdlComment start="/\*" end="\*/" contains=vhdlTodo,@Spell
syn match vhdlComment "--.*" contains=vhdlTodo,@Spell
" syn match vhdlGlobal "[\'$#~!%@?\^\[\]{}\\]"
"Modify the following as needed. The trade-off is performance versus functionality.
syn sync minlines=200
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
@@ -165,19 +180,20 @@ if version >= 508 || !exists("did_vhdl_syntax_inits")
command -nargs=+ HiLink hi def link <args>
endif
HiLink cDefine PreProc
" HiLink cDefine PreProc
HiLink vhdlSpecial Special
HiLink vhdlStatement Statement
HiLink vhdlCharacter String
HiLink vhdlCharacter Character
HiLink vhdlString String
HiLink vhdlVector String
HiLink vhdlBoolean String
HiLink vhdlVector Number
HiLink vhdlBoolean Number
HiLink vhdlTodo Todo
HiLink vhdlComment Comment
HiLink vhdlNumber String
HiLink vhdlTime String
HiLink vhdlNumber Number
HiLink vhdlTime Number
HiLink vhdlType Type
HiLink vhdlOperator Type
HiLink vhdlGlobal Error
HiLink vhdlOperator Special
" HiLink vhdlGlobal Error
HiLink vhdlAttribute Type
delcommand HiLink
+50 -46
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Vim 7.3 script
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Jul 05, 2013
" Version: 7.3-26
" Language: Vim 7.4 script
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Aug 16, 2013
" Version: 7.4-1
" Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2
@@ -554,15 +554,31 @@ syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' e
" Allows users to specify the type of embedded script highlighting
" they want: (perl/python/ruby/tcl support)
" g:vimsyn_embed == 0 : don't embed any scripts
" g:vimsyn_embed ~= 'l' : embed lua (but only if vim supports it)
" g:vimsyn_embed ~= 'm' : embed mzscheme (but only if vim supports it)
" g:vimsyn_embed ~= 'p' : embed perl (but only if vim supports it)
" g:vimsyn_embed ~= 'P' : embed python (but only if vim supports it)
" g:vimsyn_embed ~= 'r' : embed ruby (but only if vim supports it)
" g:vimsyn_embed ~= 't' : embed tcl (but only if vim supports it)
if !exists("g:vimsyn_embed")
let g:vimsyn_embed= "lmpPr"
" g:vimsyn_embed ~= 'l' : embed lua
" g:vimsyn_embed ~= 'm' : embed mzscheme
" g:vimsyn_embed ~= 'p' : embed perl
" g:vimsyn_embed ~= 'P' : embed python
" g:vimsyn_embed ~= 'r' : embed ruby
" g:vimsyn_embed ~= 't' : embed tcl
if has("win32") || has("win95") || has("win64") || has("win16")
" apparently has("tcl") has been hanging vim on some windows systems with cygwin
let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
else
let s:trytcl= 1
endif
if !exists("g:vimsyn_embed")
let g:vimsyn_embed= ""
if has("lua") |let g:vimsyn_embed= g:vimsyn_embed."l"|endif
if has("mzscheme") |let g:vimsyn_embed= g:vimsyn_embed."m"|endif
if has("perl") |let g:vimsyn_embed= g:vimsyn_embed."p"|endif
if has("python") |let g:vimsyn_embed= g:vimsyn_embed."P"
elseif has("python3")|let g:vimsyn_embed= g:vimsyn_embed."P"|endif
if has("ruby") |let g:vimsyn_embed= g:vimsyn_embed."r"|endif
if s:trytcl
if has("tcl") |let g:vimsyn_embed= g:vimsyn_embed."t"|endif
endif
endif
unlet s:trytcl
" [-- lua --] {{{3
let s:luapath= fnameescape(expand("<sfile>:p:h")."/lua.vim")
@@ -574,7 +590,7 @@ if !filereadable(s:luapath)
endif
endfor
endif
if (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath)
if (g:vimsyn_embed =~ 'l') && filereadable(s:luapath)
unlet! b:current_syntax
exe "syn include @vimLuaScript ".s:luapath
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'l'
@@ -601,7 +617,7 @@ if !filereadable(s:perlpath)
endif
endfor
endif
if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath)
if (g:vimsyn_embed =~ 'p') && filereadable(s:perlpath)
unlet! b:current_syntax
exe "syn include @vimPerlScript ".s:perlpath
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p'
@@ -628,7 +644,7 @@ if !filereadable(s:rubypath)
endif
endfor
endif
if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath)
if (g:vimsyn_embed =~ 'r') && filereadable(s:rubypath)
unlet! b:current_syntax
exe "syn include @vimRubyScript ".s:rubypath
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r'
@@ -654,7 +670,7 @@ if !filereadable(s:pythonpath)
endif
endfor
endif
if g:vimsyn_embed =~ 'P' && (has("python") || has("python3")) && filereadable(s:pythonpath)
if g:vimsyn_embed =~ 'P' && filereadable(s:pythonpath)
unlet! b:current_syntax
exe "syn include @vimPythonScript ".s:pythonpath
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P'
@@ -672,43 +688,31 @@ endif
unlet s:pythonpath
" [-- tcl --] {{{3
if has("win32") || has("win95") || has("win64") || has("win16")
" apparently has("tcl") has been hanging vim on some windows systems with cygwin
let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
else
let s:trytcl= 1
endif
if s:trytcl
let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim")
if !filereadable(s:tclpath)
for s:tclpath in split(globpath(&rtp,"syntax/tcl.vim"),"\n")
if filereadable(fnameescape(s:tclpath))
let s:tclpath= fnameescape(s:tclpath)
break
endif
endfor
endif
if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath)
unlet! b:current_syntax
exe "syn include @vimTclScript ".s:tclpath
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't'
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
else
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim")
if !filereadable(s:tclpath)
for s:tclpath in split(globpath(&rtp,"syntax/tcl.vim"),"\n")
if filereadable(fnameescape(s:tclpath))
let s:tclpath= fnameescape(s:tclpath)
break
endif
syn cluster vimFuncBodyList add=vimTclScript
endfor
endif
if (g:vimsyn_embed =~ 't') && filereadable(s:tclpath)
unlet! b:current_syntax
exe "syn include @vimTclScript ".s:tclpath
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't'
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
else
syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
endif
unlet s:tclpath
syn cluster vimFuncBodyList add=vimTclScript
else
syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
endif
unlet s:trytcl
unlet s:tclpath
" [-- mzscheme --] {{{3
let s:mzschemepath= fnameescape(expand("<sfile>:p:h")."/scheme.vim")
+3 -2
View File
@@ -108,9 +108,10 @@ execute 'syn match yamlFlowMappingKey /'.s:ns_plain_in.'\ze\s*:/ contained '.
syn match yamlFlowMappingMerge /<<\ze\s*:/ contained nextgroup=yamlKeyValueDelimiter
syn match yamlBlockCollectionItemStart '^\s*\zs-\%(\s\+-\)*\s' nextgroup=yamlBlockMappingKey,yamlBlockMappingMerge
execute 'syn match yamlBlockMappingKey /^\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ '.
" Use the old regexp engine, the NFA engine doesn't like all the \@ items.
execute 'syn match yamlBlockMappingKey /\%#=1^\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ '.
\'nextgroup=yamlKeyValueDelimiter'
execute 'syn match yamlBlockMappingKey /\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ contained '.
execute 'syn match yamlBlockMappingKey /\%#=1\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ contained '.
\'nextgroup=yamlKeyValueDelimiter'
syn match yamlBlockMappingMerge /^\s*\zs<<\ze:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter
syn match yamlBlockMappingMerge /<<\ze\s*:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter contained
+1 -1
View File
@@ -121,7 +121,7 @@ NOTA: A medida que vaya avanzando en este tutor no intente memorizar,
h (izquierda) j (abajo) k (arriba) l (derecha)
2. Para acceder a Vim (desde el símbolo del sistema %) escriba:
vin FILENAME <INTRO>
vim FILENAME <INTRO>
3. Para salir de Vim escriba: <ESC> :q! <INTRO> para eliminar todos
los cambios.
+3 -3
View File
@@ -31,12 +31,12 @@ endif
ifeq ($(CROSS),yes)
DEL = rm
ifeq ($(MINGWOLD),yes)
CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
CXXFLAGS := -O2 -fvtable-thunks
else
CXXFLAGS := -O2 -mno-cygwin
CXXFLAGS := -O2
endif
else
CXXFLAGS := -O2 -mno-cygwin
CXXFLAGS := -O2
ifneq (sh.exe, $(SHELL))
DEL = rm
else
+1 -1
View File
@@ -1232,7 +1232,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>70</string>
<string>72</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
+3 -6
View File
@@ -1659,12 +1659,9 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event
replyEvent:(NSAppleEventDescriptor *)reply
{
NSString *urlString = [[event paramDescriptorForKeyword:keyDirectObject]
stringValue];
// NOTE: URLWithString requires string to be percent escaped.
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:
NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlString];
NSURL *url = [NSURL URLWithString:[[event
paramDescriptorForKeyword:keyDirectObject]
stringValue]];
// We try to be compatible with TextMate's URL scheme here, as documented
// at http://blog.macromates.com/2007/the-textmate-url-scheme/ . Currently,
+1 -1
View File
@@ -991,7 +991,7 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
{
NSString *fontName = (NSString *)font;
float size = 0;
NSArray *components = [fontName componentsSeparatedByString:@":"];
NSArray *components = [fontName componentsSeparatedByString:@":h"];
if ([components count] == 2) {
size = [[components lastObject] floatValue];
fontName = [components objectAtIndex:0];
+2 -2
View File
@@ -614,7 +614,7 @@
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 70;
CURRENT_PROJECT_VERSION = 72;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
@@ -645,7 +645,7 @@
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 70;
CURRENT_PROJECT_VERSION = 72;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+11 -2
View File
@@ -1017,7 +1017,7 @@ gui_mch_set_font(GuiFont font)
gui_macvim_font_with_name(char_u *name)
{
if (!name)
return (GuiFont)[[NSString alloc] initWithFormat:@"%@:%d",
return (GuiFont)[[NSString alloc] initWithFormat:@"%@:h%d",
MMDefaultFontName, MMDefaultFontSize];
NSString *fontName = [NSString stringWithVimString:name];
@@ -1055,7 +1055,7 @@ gui_macvim_font_with_name(char_u *name)
// can load it. Otherwise we ask NSFont if it can load it.
if ([fontName isEqualToString:MMDefaultFontName]
|| [NSFont fontWithName:fontName size:size])
return [[NSString alloc] initWithFormat:@"%@:%d", fontName, size];
return [[NSString alloc] initWithFormat:@"%@:h%d", fontName, size];
}
return NOFONT;
@@ -1806,6 +1806,15 @@ void gui_macvim_get_window_layout(int *count, int *layout)
}
}
void *gui_macvim_new_autoreleasepool()
{
return (void *)[[NSAutoreleasePool alloc] init];
}
void gui_macvim_release_autoreleasepool(void *pool)
{
[(id)pool release];
}
// -- Client/Server ---------------------------------------------------------
+6 -6
View File
@@ -55,16 +55,16 @@ if !exists("macvim_skip_cmd_opt_movement")
no <D-Up> <C-Home>
ino <D-Up> <C-Home>
map <M-Up> {
imap <M-Up> <C-o>{
no <M-Up> {
ino <M-Up> <C-o>{
no <D-Down> <C-End>
ino <D-Down> <C-End>
map <M-Down> }
imap <M-Down> <C-o>}
no <M-Down> }
ino <M-Down> <C-o>}
imap <M-BS> <C-w>
imap <D-BS> <C-u>
ino <M-BS> <C-w>
ino <D-BS> <C-u>
endif " !exists("macvim_skip_cmd_opt_movement")
+1 -3
View File
@@ -1,6 +1,6 @@
#
# Makefile for VIM on Win32, using Cygnus gcc
# Last updated by Dan Sharp. Last Change: 2013 Apr 22
# Last updated by Dan Sharp. Last Change: 2013 Sep 19
#
# Also read INSTALLpc.txt!
#
@@ -439,8 +439,6 @@ endif
##############################
ifeq (yes, $(USEDLL))
DEFINES += -D_MAX_PATH=256 -D__CYGWIN__
else
INCLUDES += -mno-cygwin
endif
##############################
+19 -1
View File
@@ -3643,6 +3643,24 @@ if test "$GCC" = yes; then
fi
fi
{ echo "$as_me:$LINENO: checking for recent clang version" >&5
echo $ECHO_N "checking for recent clang version... $ECHO_C" >&6; }
CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'`
if test x"$CLANG_VERSION_STRING" != x"" ; then
CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*/\1/p'`
CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*/\1/p'`
CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\)/\1/p'`
CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION`
{ echo "$as_me:$LINENO: result: $CLANG_VERSION" >&5
echo "${ECHO_T}$CLANG_VERSION" >&6; }
if test "$CLANG_VERSION" -ge 500002075 ; then
CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'`
fi
else
{ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6; }
fi
if test "$cross_compiling" = yes; then
{ echo "$as_me:$LINENO: result: cannot compile a simple program; if not cross compiling check CC and CFLAGS" >&5
echo "${ECHO_T}cannot compile a simple program; if not cross compiling check CC and CFLAGS" >&6; }
@@ -7210,7 +7228,7 @@ echo "${ECHO_T}$rubyhdrdir" >&6; }
RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
elif test -d "/System/Library/Frameworks/Ruby.framework"; then
RUBY_LIBS="-framework Ruby"
RUBY_CFLAGS=
RUBY_CFLAGS="-DRUBY_VERSION=$rubyversion"
librubyarg=
fi
+4 -1
View File
@@ -1190,7 +1190,10 @@ do_buffer(action, start, dir, count, forceit)
&& !(curwin->w_closing || curwin->w_buffer->b_closing)
# endif
&& (firstwin != lastwin || first_tabpage->tp_next != NULL))
win_close(curwin, FALSE);
{
if (win_close(curwin, FALSE) == FAIL)
break;
}
#endif
/*
+24 -1
View File
@@ -62,6 +62,29 @@ if test "$GCC" = yes; then
fi
fi
dnl clang-500.2.75 or around has abandoned -f[no-]strength-reduce and issues a
dnl warning when that flag is passed to. Accordingly, adjust CFLAGS based on
dnl the version number of the clang in use.
dnl Note that this does not work to get the version of clang 3.1 or 3.2.
AC_MSG_CHECKING(for recent clang version)
CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\).*$/\1/p'`
if test x"$CLANG_VERSION_STRING" != x"" ; then
CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*/\1/p'`
CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*/\1/p'`
CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)/\1/p'`
CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION`
AC_MSG_RESULT($CLANG_VERSION)
dnl If you find the same issue with versions earlier than 500.2.75,
dnl change the constant 500002075 below appropriately. To get the
dnl integer corresponding to a version number, refer to the
dnl definition of CLANG_VERSION above.
if test "$CLANG_VERSION" -ge 500002075 ; then
CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'`
fi
else
AC_MSG_RESULT(no)
fi
dnl If configure thinks we are cross compiling, there might be something
dnl wrong with the CC or CFLAGS settings, give a useful warning message
if test "$cross_compiling" = yes; then
@@ -1711,7 +1734,7 @@ if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
dnl On Mac OS X it is safer to just use the -framework flag
RUBY_LIBS="-framework Ruby"
dnl Don't include the -I flag when -framework is set
RUBY_CFLAGS=
RUBY_CFLAGS="-DRUBY_VERSION=$rubyversion"
librubyarg=
fi
+1 -1
View File
@@ -1203,7 +1203,7 @@ ex_diffoff(eap)
for (wp = firstwin; wp != NULL; wp = wp->w_next)
{
if (wp == curwin || (eap->forceit && wp->w_p_diff))
if (eap->forceit ? wp->w_p_diff : wp == curwin)
{
/* Set 'diff', 'scrollbind' off and 'wrap' on. If option values
* were saved in diff_win_options() restore them. */
+15 -4
View File
@@ -3477,7 +3477,6 @@ ins_compl_new_leader()
}
compl_enter_selects = !compl_used_match;
compl_shown_match = compl_curr_match = compl_first_match;
/* Show the popup menu with a different set of matches. */
ins_compl_show_pum();
@@ -5199,9 +5198,21 @@ ins_complete(c)
}
else if (ctrl_x_mode == CTRL_X_FILES)
{
while (--startcol >= 0 && vim_isfilec(line[startcol]))
;
compl_col += ++startcol;
/* Go back to just before the first filename character. */
if (startcol > 0)
{
char_u *p = line + startcol;
mb_ptr_back(line, p);
while (p > line && vim_isfilec(PTR2CHAR(p)))
mb_ptr_back(line, p);
if (p == line && vim_isfilec(PTR2CHAR(p)))
startcol = 0;
else
startcol = (int)(p - line) + 1;
}
compl_col += startcol;
compl_length = (int)curs_col - startcol;
compl_pattern = addstar(line + compl_col, compl_length,
EXPAND_FILES);
+45 -20
View File
@@ -915,12 +915,13 @@ eval_clear()
/* autoloaded script names */
ga_clear_strings(&ga_loaded);
/* script-local variables */
/* Script-local variables. First clear all the variables and in a second
* loop free the scriptvar_T, because a variable in one script might hold
* a reference to the whole scope of another script. */
for (i = 1; i <= ga_scripts.ga_len; ++i)
{
vars_clear(&SCRIPT_VARS(i));
for (i = 1; i <= ga_scripts.ga_len; ++i)
vim_free(SCRIPT_SV(i));
}
ga_clear(&ga_scripts);
/* unreferenced lists and dicts */
@@ -12143,6 +12144,9 @@ f_has(argvars, rettv)
#ifndef CASE_INSENSITIVE_FILENAME
"fname_case",
#endif
#ifdef HAVE_ACL
"acl",
#endif
#ifdef FEAT_ARABIC
"arabic",
#endif
@@ -12558,7 +12562,12 @@ f_has(argvars, rettv)
"xfontset",
#endif
#ifdef FEAT_XPM_W32
"xpm_w32",
"xpm",
"xpm_w32", /* for backward compatibility */
#else
# if defined(HAVE_XPM)
"xpm",
# endif
#endif
#ifdef USE_XSMP
"xsmp",
@@ -13065,9 +13074,18 @@ get_user_input(argvars, rettv, inputdialog)
}
if (defstr != NULL)
{
# ifdef FEAT_EX_EXTRA
int save_ex_normal_busy = ex_normal_busy;
ex_normal_busy = 0;
# endif
rettv->vval.v_string =
getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
xp_type, xp_arg);
# ifdef FEAT_EX_EXTRA
ex_normal_busy = save_ex_normal_busy;
# endif
}
if (inputdialog && rettv->vval.v_string == NULL
&& argvars[1].v_type != VAR_UNKNOWN
&& argvars[2].v_type != VAR_UNKNOWN)
@@ -14312,14 +14330,23 @@ f_mkdir(argvars, rettv)
return;
dir = get_tv_string_buf(&argvars[0], buf);
if (argvars[1].v_type != VAR_UNKNOWN)
if (*dir == NUL)
rettv->vval.v_number = FAIL;
else
{
if (argvars[2].v_type != VAR_UNKNOWN)
prot = get_tv_number_chk(&argvars[2], NULL);
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
mkdir_recurse(dir, prot);
if (*gettail(dir) == NUL)
/* remove trailing slashes */
*gettail_sep(dir) = NUL;
if (argvars[1].v_type != VAR_UNKNOWN)
{
if (argvars[2].v_type != VAR_UNKNOWN)
prot = get_tv_number_chk(&argvars[2], NULL);
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
mkdir_recurse(dir, prot);
}
rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
}
rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0;
}
#endif
@@ -24311,6 +24338,7 @@ do_string_sub(str, pat, sub, flags)
garray_T ga;
char_u *ret;
char_u *save_cpo;
int zero_width;
/* Make 'cpoptions' empty, so that the 'l' flag doesn't work here */
save_cpo = p_cpo;
@@ -24349,20 +24377,17 @@ do_string_sub(str, pat, sub, flags)
(void)vim_regsub(&regmatch, sub, (char_u *)ga.ga_data
+ ga.ga_len + i, TRUE, TRUE, FALSE);
ga.ga_len += i + sublen - 1;
/* avoid getting stuck on a match with an empty string */
if (tail == regmatch.endp[0])
zero_width = (tail == regmatch.endp[0]
|| regmatch.startp[0] == regmatch.endp[0]);
tail = regmatch.endp[0];
if (*tail == NUL)
break;
if (zero_width)
{
if (*tail == NUL)
break;
/* avoid getting stuck on a match with an empty string */
*((char_u *)ga.ga_data + ga.ga_len) = *tail++;
++ga.ga_len;
}
else
{
tail = regmatch.endp[0];
if (*tail == NUL)
break;
}
if (!do_all)
break;
}
+7 -1
View File
@@ -4740,11 +4740,17 @@ do_sub(eap)
char_u *resp;
colnr_T sc, ec;
print_line_no_prefix(lnum, FALSE, FALSE);
print_line_no_prefix(lnum, do_number, do_list);
getvcol(curwin, &curwin->w_cursor, &sc, NULL, NULL);
curwin->w_cursor.col = regmatch.endpos[0].col - 1;
getvcol(curwin, &curwin->w_cursor, NULL, NULL, &ec);
if (do_number || curwin->w_p_nu)
{
int numw = number_width(curwin) + 1;
sc += numw;
ec += numw;
}
msg_start();
for (i = 0; i < (long)sc; ++i)
msg_putchar(' ');
+15 -9
View File
@@ -428,13 +428,13 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
}
}
#ifdef UNIX
/*
* On Unix it is possible to read a directory, so we have to
* check for it before the mch_open().
*/
if (!read_stdin && !read_buffer)
{
#ifdef UNIX
/*
* On Unix it is possible to read a directory, so we have to
* check for it before the mch_open().
*/
perm = mch_getperm(fname);
if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
# ifdef S_ISFIFO
@@ -457,8 +457,8 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
msg_scroll = msg_save;
return FAIL;
}
# if defined(MSDOS) || defined(MSWIN) || defined(OS2)
#endif
#if defined(MSDOS) || defined(MSWIN) || defined(OS2)
/*
* MS-Windows allows opening a device, but we will probably get stuck
* trying to read it.
@@ -470,9 +470,8 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
msg_scroll = msg_save;
return FAIL;
}
# endif
}
#endif
}
/* Set default or forced 'fileformat' and 'binary'. */
set_file_options(set_options, eap);
@@ -2926,9 +2925,14 @@ check_for_cryptkey(cryptkey, ptr, sizep, filesizep, newfile, fname, did_ask)
int *did_ask; /* flag: whether already asked for key */
{
int method = crypt_method_from_magic((char *)ptr, *sizep);
int b_p_ro = curbuf->b_p_ro;
if (method >= 0)
{
/* Mark the buffer as read-only until the decryption has taken place.
* Avoids accidentally overwriting the file with garbage. */
curbuf->b_p_ro = TRUE;
set_crypt_method(curbuf, method);
if (method > 0)
(void)blowfish_self_test();
@@ -2977,6 +2981,8 @@ check_for_cryptkey(cryptkey, ptr, sizep, filesizep, newfile, fname, did_ask)
*sizep -= CRYPT_MAGIC_LEN + salt_len + seed_len;
mch_memmove(ptr, ptr + CRYPT_MAGIC_LEN + salt_len + seed_len,
(size_t)*sizep);
/* Restore the read-only flag. */
curbuf->b_p_ro = b_p_ro;
}
}
/* When starting to edit a new file which does not have encryption, clear
+1 -1
View File
@@ -1008,7 +1008,7 @@ HandleMouseHide(UINT uMsg, LPARAM lParam)
static LPARAM last_lParam = 0L;
/* We sometimes get a mousemove when the mouse didn't move... */
if (uMsg == WM_MOUSEMOVE)
if (uMsg == WM_MOUSEMOVE || uMsg == WM_NCMOUSEMOVE)
{
if (lParam == last_lParam)
return;
+5 -1
View File
@@ -102,7 +102,11 @@
# include <ruby.h>
#endif
#ifdef RUBY19_OR_LATER
# include <ruby/encoding.h>
# ifdef FEAT_GUI_MACVIM
# include <Ruby/ruby/encoding.h>
# else
# include <ruby/encoding.h>
# endif
#endif
#undef off_t /* ruby defines off_t as _int64, Mingw uses long */
+4 -1
View File
@@ -165,6 +165,7 @@ typedef int HANDLE;
*/
static HANDLE hTclLib = NULL;
Tcl_Interp* (*dll_Tcl_CreateInterp)();
void (*dll_Tcl_FindExecutable)(const void *);
/*
* Table of name to function pointer of tcl.
@@ -175,6 +176,7 @@ static struct {
TCL_PROC* ptr;
} tcl_funcname_table[] = {
{"Tcl_CreateInterp", (TCL_PROC*)&dll_Tcl_CreateInterp},
{"Tcl_FindExecutable", (TCL_PROC*)&dll_Tcl_FindExecutable},
{NULL, NULL},
};
@@ -248,11 +250,12 @@ tcl_enabled(verbose)
{
Tcl_Interp *interp;
dll_Tcl_FindExecutable(find_executable_arg);
if (interp = dll_Tcl_CreateInterp())
{
if (Tcl_InitStubs(interp, DYNAMIC_TCL_VER, 0))
{
Tcl_FindExecutable(find_executable_arg);
Tcl_DeleteInterp(interp);
stubs_initialized = TRUE;
}
+21 -32
View File
@@ -23,10 +23,6 @@
# include <limits.h>
#endif
#ifdef FEAT_GUI_MACVIM
#include <objc/objc-runtime.h> /* for objc_*() and sel_*() */
#endif
/* Maximum number of commands from + or -c arguments. */
#define MAX_ARG_CMDS 10
@@ -180,9 +176,7 @@ main
// Cocoa needs an NSAutoreleasePool in place or it will leak memory.
// This particular pool will hold autorelease objects created during
// initialization.
id autoreleasePool = objc_msgSend(objc_msgSend(
objc_getClass("NSAutoreleasePool"),sel_getUid("alloc")
), sel_getUid("init"));
void *autoreleasePool = gui_macvim_new_autoreleasepool();
#endif
/*
@@ -834,7 +828,7 @@ vim_main2(int argc UNUSED, char **argv UNUSED)
starttermcap(); /* start termcap if not done by wait_return() */
TIME_MSG("start termcap");
#if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE)
may_req_ambiguous_character_width();
may_req_ambiguous_char_width();
#endif
#ifdef FEAT_MOUSE
@@ -1066,13 +1060,11 @@ vim_main2(int argc UNUSED, char **argv UNUSED)
#ifdef FEAT_GUI_MACVIM
// The autorelease pool might have filled up quite a bit during
// initialization, so purge it before entering the main loop.
objc_msgSend(autoreleasePool, sel_getUid("release"));
gui_macvim_release_autoreleasepool(autoreleasePool);
// The main loop sets up its own autorelease pool, but to be safe we still
// realloc this one here.
autoreleasePool = objc_msgSend(objc_msgSend(
objc_getClass("NSAutoreleasePool"),sel_getUid("alloc")
), sel_getUid("init"));
autoreleasePool = gui_macvim_new_autoreleasepool();
#endif
/*
@@ -1081,7 +1073,7 @@ vim_main2(int argc UNUSED, char **argv UNUSED)
main_loop(FALSE, FALSE);
#ifdef FEAT_GUI_MACVIM
objc_msgSend(autoreleasePool, sel_getUid("release"));
gui_macvim_release_autoreleasepool(autoreleasePool);
#endif
return 0;
@@ -1152,9 +1144,7 @@ main_loop(cmdwin, noexmode)
#ifdef FEAT_GUI_MACVIM
// Cocoa needs an NSAutoreleasePool in place or it will leak memory.
// This particular pool gets released once every loop.
id autoreleasePool = objc_msgSend(objc_msgSend(
objc_getClass("NSAutoreleasePool"),sel_getUid("alloc")
), sel_getUid("init"));
void *autoreleasePool = gui_macvim_new_autoreleasepool();
#endif
if (stuff_empty())
@@ -1404,7 +1394,7 @@ main_loop(cmdwin, noexmode)
#ifdef FEAT_GUI_MACVIM
// TODO! Make sure there are no continue statements that will cause
// this not to be called or MacVim will leak memory!
objc_msgSend(autoreleasePool, sel_getUid("release"));
gui_macvim_release_autoreleasepool(autoreleasePool);
#endif
}
}
@@ -2816,6 +2806,7 @@ edit_buffers(parmp)
int arg_idx; /* index in argument list */
int i;
int advance = TRUE;
win_T *win;
# ifdef FEAT_AUTOCMD
/*
@@ -2905,24 +2896,22 @@ edit_buffers(parmp)
# ifdef FEAT_AUTOCMD
--autocmd_no_enter;
# endif
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
/*
* Avoid making a preview window the current window.
*/
if (firstwin->w_p_pvw)
{
win_T *win;
for (win = firstwin; win != NULL; win = win->w_next)
if (!win->w_p_pvw)
{
firstwin = win;
break;
}
/* make the first window the current window */
win = firstwin;
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
/* Avoid making a preview window the current window. */
while (win->w_p_pvw)
{
win = win->w_next;
if (win == NULL)
{
win = firstwin;
break;
}
}
#endif
/* make the first window the current window */
win_enter(firstwin, FALSE);
win_enter(win, FALSE);
# ifdef FEAT_AUTOCMD
--autocmd_no_leave;
+19 -9
View File
@@ -303,10 +303,18 @@ set_indent(size, flags)
ml_replace(curwin->w_cursor.lnum, newline, FALSE);
if (flags & SIN_CHANGED)
changed_bytes(curwin->w_cursor.lnum, 0);
/* Correct saved cursor position if it's after the indent. */
if (saved_cursor.lnum == curwin->w_cursor.lnum
&& saved_cursor.col >= (colnr_T)(p - oldline))
saved_cursor.col += ind_len - (colnr_T)(p - oldline);
/* Correct saved cursor position if it is in this line. */
if (saved_cursor.lnum == curwin->w_cursor.lnum)
{
if (saved_cursor.col >= (colnr_T)(p - oldline))
/* cursor was after the indent, adjust for the number of
* bytes added/removed */
saved_cursor.col += ind_len - (colnr_T)(p - oldline);
else if (saved_cursor.col >= (colnr_T)(s - newline))
/* cursor was in the indent, and is now after it, put it back
* at the start of the indent (replacing spaces with TAB) */
saved_cursor.col = (colnr_T)(s - newline);
}
retval = TRUE;
}
else
@@ -1581,9 +1589,9 @@ theend:
#if defined(FEAT_COMMENTS) || defined(PROTO)
/*
* get_leader_len() returns the length of the prefix of the given string
* which introduces a comment. If this string is not a comment then 0 is
* returned.
* get_leader_len() returns the length in bytes of the prefix of the given
* string which introduces a comment. If this string is not a comment then
* 0 is returned.
* When "flags" is not NULL, it is set to point to the flags of the recognized
* comment leader.
* "backward" must be true for the "O" command.
@@ -9180,6 +9188,8 @@ prepare_to_exit()
/*
* Preserve files and exit.
* When called IObuff must contain a message.
* NOTE: This may be called from deathtrap() in a signal handler, avoid unsafe
* functions, such as allocating memory.
*/
void
preserve_exit()
@@ -9202,7 +9212,7 @@ preserve_exit()
{
if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
{
OUT_STR(_("Vim: preserving files...\n"));
OUT_STR("Vim: preserving files...\n");
screen_start(); /* don't know where cursor is now */
out_flush();
ml_sync_all(FALSE, FALSE); /* preserve all swap files */
@@ -9212,7 +9222,7 @@ preserve_exit()
ml_close_all(FALSE); /* close all memfiles, without deleting */
OUT_STR(_("Vim: Finished.\n"));
OUT_STR("Vim: Finished.\n");
getout(1);
}
+8 -6
View File
@@ -6502,13 +6502,15 @@ get3c(fd)
get4c(fd)
FILE *fd;
{
int n;
/* Use unsigned rather than int otherwise result is undefined
* when left-shift sets the MSB. */
unsigned n;
n = getc(fd);
n = (n << 8) + getc(fd);
n = (n << 8) + getc(fd);
n = (n << 8) + getc(fd);
return n;
n = (unsigned)getc(fd);
n = (n << 8) + (unsigned)getc(fd);
n = (n << 8) + (unsigned)getc(fd);
n = (n << 8) + (unsigned)getc(fd);
return (int)n;
}
/*
+7 -1
View File
@@ -5271,8 +5271,12 @@ dozet:
{
pos_T pos = curwin->w_cursor;
/* Find bad word under the cursor. */
/* Find bad word under the cursor. When 'spell' is
* off this fails and find_ident_under_cursor() is
* used below. */
emsg_off++;
len = spell_move_to(curwin, FORWARD, TRUE, TRUE, NULL);
emsg_off--;
if (len != 0 && curwin->w_cursor.col <= pos.col)
ptr = ml_get_pos(&curwin->w_cursor);
curwin->w_cursor = pos;
@@ -9552,6 +9556,8 @@ nv_put(cap)
/* cursor is at the end of the line or end of file, put
* forward. */
dir = FORWARD;
/* May have been reset in do_put(). */
VIsual_active = TRUE;
}
#endif
do_put(cap->oap->regname, dir, cap->count1, flags);
+51 -19
View File
@@ -3776,25 +3776,39 @@ do_put(regname, dir, count, flags)
*/
if (y_type == MCHAR && y_size == 1)
{
totlen = count * yanklen;
if (totlen)
{
oldp = ml_get(lnum);
newp = alloc_check((unsigned)(STRLEN(oldp) + totlen + 1));
if (newp == NULL)
goto end; /* alloc() will give error message */
mch_memmove(newp, oldp, (size_t)col);
ptr = newp + col;
for (i = 0; i < count; ++i)
do {
totlen = count * yanklen;
if (totlen > 0)
{
mch_memmove(ptr, y_array[0], (size_t)yanklen);
ptr += yanklen;
oldp = ml_get(lnum);
newp = alloc_check((unsigned)(STRLEN(oldp) + totlen + 1));
if (newp == NULL)
goto end; /* alloc() gave an error message */
mch_memmove(newp, oldp, (size_t)col);
ptr = newp + col;
for (i = 0; i < count; ++i)
{
mch_memmove(ptr, y_array[0], (size_t)yanklen);
ptr += yanklen;
}
STRMOVE(ptr, oldp + col);
ml_replace(lnum, newp, FALSE);
/* Place cursor on last putted char. */
if (lnum == curwin->w_cursor.lnum)
curwin->w_cursor.col += (colnr_T)(totlen - 1);
}
STRMOVE(ptr, oldp + col);
ml_replace(lnum, newp, FALSE);
/* Put cursor on last putted char. */
curwin->w_cursor.col += (colnr_T)(totlen - 1);
}
#ifdef FEAT_VISUAL
if (VIsual_active)
lnum++;
#endif
} while (
#ifdef FEAT_VISUAL
VIsual_active && lnum <= curbuf->b_visual.vi_end.lnum
#else
FALSE /* stop after 1 paste */
#endif
);
curbuf->b_op_end = curwin->w_cursor;
/* For "CTRL-O p" in Insert mode, put cursor after last char */
if (totlen && (restart_edit != 0 || (flags & PUT_CURSEND)))
@@ -3955,6 +3969,10 @@ end:
if (regname == '=')
vim_free(y_array);
#ifdef FEAT_VISUAL
VIsual_active = FALSE;
#endif
/* If the cursor is past the end of the line put it at the end. */
adjust_cursor_eol();
}
@@ -4971,7 +4989,7 @@ format_lines(line_count, avoid_fex)
/*
* When still in same paragraph, join the lines together. But
* first delete the comment leader from the second line.
* first delete the leader from the second line.
*/
if (!is_end_par)
{
@@ -4981,11 +4999,25 @@ format_lines(line_count, avoid_fex)
if (line_count < 0 && u_save_cursor() == FAIL)
break;
#ifdef FEAT_COMMENTS
(void)del_bytes((long)next_leader_len, FALSE, FALSE);
if (next_leader_len > 0)
{
(void)del_bytes((long)next_leader_len, FALSE, FALSE);
mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L,
(long)-next_leader_len);
} else
#endif
if (second_indent > 0) /* the "leader" for FO_Q_SECOND */
{
char_u *p = ml_get_curline();
int indent = skipwhite(p) - p;
if (indent > 0)
{
(void)del_bytes(indent, FALSE, FALSE);
mark_col_adjust(curwin->w_cursor.lnum,
(colnr_T)0, 0L, (long)-indent);
}
}
curwin->w_cursor.lnum--;
if (do_join(2, TRUE, FALSE, FALSE) == FAIL)
{
+5
View File
@@ -16,6 +16,11 @@
# define OPAQUE_TOOLBOX_STRUCTS 0
#endif
/* Include MAC_OS_X_VERSION_* macros (needed for OS X 10.9, should be supported
* as of OS X 10.2)
* */
#include <AvailabilityMacros.h>
/*
* Macintosh machine-dependent things.
*
+176 -12
View File
@@ -456,7 +456,14 @@ mch_FullName(
int
mch_isFullName(char_u *fname)
{
#ifdef FEAT_MBYTE
/* WinNT and later can use _MAX_PATH wide characters for a pathname, which
* means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
* UTF-8. */
char szName[_MAX_PATH * 3 + 1];
#else
char szName[_MAX_PATH + 1];
#endif
/* A name like "d:/foo" and "//server/share" is absolute */
if ((fname[0] && fname[1] == ':' && (fname[2] == '/' || fname[2] == '\\'))
@@ -464,7 +471,7 @@ mch_isFullName(char_u *fname)
return TRUE;
/* A name that can't be made absolute probably isn't absolute. */
if (mch_FullName(fname, szName, _MAX_PATH, FALSE) == FAIL)
if (mch_FullName(fname, szName, sizeof(szName) - 1, FALSE) == FAIL)
return FALSE;
return pathcmp(fname, szName, -1) == 0;
@@ -491,6 +498,104 @@ slash_adjust(p)
}
}
#if (_MSC_VER >= 1300)
# define OPEN_OH_ARGTYPE intptr_t
#else
# define OPEN_OH_ARGTYPE long
#endif
static int
stat_symlink_aware(const char *name, struct stat *stp)
{
#if defined(_MSC_VER) && _MSC_VER < 1700
/* Work around for VC10 or earlier. stat() can't handle symlinks properly.
* VC9 or earlier: stat() doesn't support a symlink at all. It retrieves
* status of a symlink itself.
* VC10: stat() supports a symlink to a normal file, but it doesn't support
* a symlink to a directory (always returns an error). */
WIN32_FIND_DATA findData;
HANDLE hFind, h;
DWORD attr = 0;
BOOL is_symlink = FALSE;
hFind = FindFirstFile(name, &findData);
if (hFind != INVALID_HANDLE_VALUE)
{
attr = findData.dwFileAttributes;
if ((attr & FILE_ATTRIBUTE_REPARSE_POINT)
&& (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK))
is_symlink = TRUE;
FindClose(hFind);
}
if (is_symlink)
{
h = CreateFile(name, FILE_READ_ATTRIBUTES,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
OPEN_EXISTING,
(attr & FILE_ATTRIBUTE_DIRECTORY)
? FILE_FLAG_BACKUP_SEMANTICS : 0,
NULL);
if (h != INVALID_HANDLE_VALUE)
{
int fd, n;
fd = _open_osfhandle((OPEN_OH_ARGTYPE)h, _O_RDONLY);
n = _fstat(fd, (struct _stat*)stp);
_close(fd);
return n;
}
}
#endif
return stat(name, stp);
}
#ifdef FEAT_MBYTE
static int
wstat_symlink_aware(const WCHAR *name, struct _stat *stp)
{
# if defined(_MSC_VER) && _MSC_VER < 1700
/* Work around for VC10 or earlier. _wstat() can't handle symlinks properly.
* VC9 or earlier: _wstat() doesn't support a symlink at all. It retrieves
* status of a symlink itself.
* VC10: _wstat() supports a symlink to a normal file, but it doesn't
* support a symlink to a directory (always returns an error). */
int n;
BOOL is_symlink = FALSE;
HANDLE hFind, h;
DWORD attr = 0;
WIN32_FIND_DATAW findDataW;
hFind = FindFirstFileW(name, &findDataW);
if (hFind != INVALID_HANDLE_VALUE)
{
attr = findDataW.dwFileAttributes;
if ((attr & FILE_ATTRIBUTE_REPARSE_POINT)
&& (findDataW.dwReserved0 == IO_REPARSE_TAG_SYMLINK))
is_symlink = TRUE;
FindClose(hFind);
}
if (is_symlink)
{
h = CreateFileW(name, FILE_READ_ATTRIBUTES,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
OPEN_EXISTING,
(attr & FILE_ATTRIBUTE_DIRECTORY)
? FILE_FLAG_BACKUP_SEMANTICS : 0,
NULL);
if (h != INVALID_HANDLE_VALUE)
{
int fd;
fd = _open_osfhandle((OPEN_OH_ARGTYPE)h, _O_RDONLY);
n = _fstat(fd, stp);
_close(fd);
return n;
}
}
# endif
return _wstat(name, stp);
}
#endif
/*
* stat() can't handle a trailing '/' or '\', remove it first.
@@ -498,10 +603,17 @@ slash_adjust(p)
int
vim_stat(const char *name, struct stat *stp)
{
#ifdef FEAT_MBYTE
/* WinNT and later can use _MAX_PATH wide characters for a pathname, which
* means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
* UTF-8. */
char buf[_MAX_PATH * 3 + 1];
#else
char buf[_MAX_PATH + 1];
#endif
char *p;
vim_strncpy((char_u *)buf, (char_u *)name, _MAX_PATH);
vim_strncpy((char_u *)buf, (char_u *)name, sizeof(buf) - 1);
p = buf + strlen(buf);
if (p > buf)
mb_ptr_back(buf, p);
@@ -520,7 +632,7 @@ vim_stat(const char *name, struct stat *stp)
if (wp != NULL)
{
n = _wstat(wp, (struct _stat *)stp);
n = wstat_symlink_aware(wp, (struct _stat *)stp);
vim_free(wp);
if (n >= 0)
return n;
@@ -530,7 +642,7 @@ vim_stat(const char *name, struct stat *stp)
}
}
#endif
return stat(buf, stp);
return stat_symlink_aware(buf, stp);
}
#if defined(FEAT_GUI_MSWIN) || defined(PROTO)
@@ -1761,9 +1873,13 @@ mch_resolve_shortcut(char_u *fname)
IPersistFile *ppf = NULL;
OLECHAR wsz[MAX_PATH];
WIN32_FIND_DATA ffd; // we get those free of charge
TCHAR buf[MAX_PATH]; // could have simply reused 'wsz'...
CHAR buf[MAX_PATH]; // could have simply reused 'wsz'...
char_u *rfname = NULL;
int len;
# ifdef FEAT_MBYTE
IShellLinkW *pslw = NULL;
WIN32_FIND_DATAW ffdw; // we get those free of charge
# endif
/* Check if the file name ends in ".lnk". Avoid calling
* CoCreateInstance(), it's quite slow. */
@@ -1775,18 +1891,62 @@ mch_resolve_shortcut(char_u *fname)
CoInitialize(NULL);
# ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
// create a link manager object and request its interface
hr = CoCreateInstance(
&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
&IID_IShellLinkW, (void**)&pslw);
if (hr == S_OK)
{
WCHAR *p = enc_to_utf16(fname, NULL);
if (p != NULL)
{
// Get a pointer to the IPersistFile interface.
hr = pslw->lpVtbl->QueryInterface(
pslw, &IID_IPersistFile, (void**)&ppf);
if (hr != S_OK)
goto shortcut_errorw;
// "load" the name and resolve the link
hr = ppf->lpVtbl->Load(ppf, p, STGM_READ);
if (hr != S_OK)
goto shortcut_errorw;
# if 0 // This makes Vim wait a long time if the target does not exist.
hr = pslw->lpVtbl->Resolve(pslw, NULL, SLR_NO_UI);
if (hr != S_OK)
goto shortcut_errorw;
# endif
// Get the path to the link target.
ZeroMemory(wsz, MAX_PATH * sizeof(WCHAR));
hr = pslw->lpVtbl->GetPath(pslw, wsz, MAX_PATH, &ffdw, 0);
if (hr == S_OK && wsz[0] != NUL)
rfname = utf16_to_enc(wsz, NULL);
shortcut_errorw:
vim_free(p);
if (hr == S_OK)
goto shortcut_end;
}
}
/* Retry with non-wide function (for Windows 98). */
}
# endif
// create a link manager object and request its interface
hr = CoCreateInstance(
&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
&IID_IShellLink, (void**)&psl);
if (hr != S_OK)
goto shortcut_error;
goto shortcut_end;
// Get a pointer to the IPersistFile interface.
hr = psl->lpVtbl->QueryInterface(
psl, &IID_IPersistFile, (void**)&ppf);
if (hr != S_OK)
goto shortcut_error;
goto shortcut_end;
// full path string must be in Unicode.
MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
@@ -1794,12 +1954,12 @@ mch_resolve_shortcut(char_u *fname)
// "load" the name and resolve the link
hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
if (hr != S_OK)
goto shortcut_error;
#if 0 // This makes Vim wait a long time if the target doesn't exist.
goto shortcut_end;
# if 0 // This makes Vim wait a long time if the target doesn't exist.
hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
if (hr != S_OK)
goto shortcut_error;
#endif
goto shortcut_end;
# endif
// Get the path to the link target.
ZeroMemory(buf, MAX_PATH);
@@ -1807,12 +1967,16 @@ mch_resolve_shortcut(char_u *fname)
if (hr == S_OK && buf[0] != NUL)
rfname = vim_strsave(buf);
shortcut_error:
shortcut_end:
// Release all interface pointers (both belong to the same object)
if (ppf != NULL)
ppf->lpVtbl->Release(ppf);
if (psl != NULL)
psl->lpVtbl->Release(psl);
# ifdef FEAT_MBYTE
if (pslw != NULL)
pslw->lpVtbl->Release(pslw);
# endif
CoUninitialize();
return rfname;
+12 -5
View File
@@ -957,8 +957,10 @@ mch_didjmp()
/*
* This function handles deadly signals.
* It tries to preserve any swap file and exit properly.
* It tries to preserve any swap files and exit properly.
* (partly from Elvis).
* NOTE: Avoid unsafe functions, such as allocating memory, they can result in
* a deadlock.
*/
static RETSIGTYPE
deathtrap SIGDEFARG(sigarg)
@@ -1090,18 +1092,23 @@ deathtrap SIGDEFARG(sigarg)
}
if (entered == 2)
{
OUT_STR(_("Vim: Double signal, exiting\n"));
/* No translation, it may call malloc(). */
OUT_STR("Vim: Double signal, exiting\n");
out_flush();
getout(1);
}
/* No translation, it may call malloc(). */
#ifdef SIGHASARG
sprintf((char *)IObuff, _("Vim: Caught deadly signal %s\n"),
sprintf((char *)IObuff, "Vim: Caught deadly signal %s\n",
signal_info[i].name);
#else
sprintf((char *)IObuff, _("Vim: Caught deadly signal\n"));
sprintf((char *)IObuff, "Vim: Caught deadly signal\n");
#endif
preserve_exit(); /* preserve files and exit */
/* Preserve files and exit. This sets the really_exiting flag to prevent
* calling free(). */
preserve_exit();
#ifdef NBDEBUG
reset_signals();
+3 -1
View File
@@ -563,7 +563,9 @@ int mch_rename __ARGS((const char *src, const char *dest));
# endif
#endif
#define HAVE_DUP /* have dup() */
#ifndef HAVE_DUP
# define HAVE_DUP /* have dup() */
#endif
#define HAVE_ST_MODE /* have stat.st_mode */
/* We have three kinds of ACL support. */
+187 -18
View File
@@ -78,16 +78,6 @@
# endif
#endif
/*
* Reparse Point
*/
#ifndef FILE_ATTRIBUTE_REPARSE_POINT
# define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
#endif
#ifndef IO_REPARSE_TAG_SYMLINK
# define IO_REPARSE_TAG_SYMLINK 0xA000000C
#endif
/* Record all output and all keyboard & mouse input */
/* #define MCH_WRITE_DUMP */
@@ -2500,9 +2490,125 @@ mch_check_win(
}
#ifdef FEAT_MBYTE
/*
* fname_casew(): Wide version of fname_case(). Set the case of the file name,
* if it already exists. When "len" is > 0, also expand short to long
* filenames.
* Return FAIL if wide functions are not available, OK otherwise.
* NOTE: much of this is identical to fname_case(), keep in sync!
*/
static int
fname_casew(
WCHAR *name,
int len)
{
WCHAR szTrueName[_MAX_PATH + 2];
WCHAR szTrueNameTemp[_MAX_PATH + 2];
WCHAR *ptrue, *ptruePrev;
WCHAR *porig, *porigPrev;
int flen;
WIN32_FIND_DATAW fb;
HANDLE hFind;
int c;
int slen;
flen = (int)wcslen(name);
if (flen > _MAX_PATH)
return OK;
/* slash_adjust(name) not needed, already adjusted by fname_case(). */
/* Build the new name in szTrueName[] one component at a time. */
porig = name;
ptrue = szTrueName;
if (iswalpha(porig[0]) && porig[1] == L':')
{
/* copy leading drive letter */
*ptrue++ = *porig++;
*ptrue++ = *porig++;
*ptrue = NUL; /* in case nothing follows */
}
while (*porig != NUL)
{
/* copy \ characters */
while (*porig == psepc)
*ptrue++ = *porig++;
ptruePrev = ptrue;
porigPrev = porig;
while (*porig != NUL && *porig != psepc)
{
*ptrue++ = *porig++;
}
*ptrue = NUL;
/* To avoid a slow failure append "\*" when searching a directory,
* server or network share. */
wcscpy(szTrueNameTemp, szTrueName);
slen = (int)wcslen(szTrueNameTemp);
if (*porig == psepc && slen + 2 < _MAX_PATH)
wcscpy(szTrueNameTemp + slen, L"\\*");
/* Skip "", "." and "..". */
if (ptrue > ptruePrev
&& (ptruePrev[0] != L'.'
|| (ptruePrev[1] != NUL
&& (ptruePrev[1] != L'.' || ptruePrev[2] != NUL)))
&& (hFind = FindFirstFileW(szTrueNameTemp, &fb))
!= INVALID_HANDLE_VALUE)
{
c = *porig;
*porig = NUL;
/* Only use the match when it's the same name (ignoring case) or
* expansion is allowed and there is a match with the short name
* and there is enough room. */
if (_wcsicoll(porigPrev, fb.cFileName) == 0
|| (len > 0
&& (_wcsicoll(porigPrev, fb.cAlternateFileName) == 0
&& (int)(ptruePrev - szTrueName)
+ (int)wcslen(fb.cFileName) < len)))
{
wcscpy(ptruePrev, fb.cFileName);
/* Look for exact match and prefer it if found. Must be a
* long name, otherwise there would be only one match. */
while (FindNextFileW(hFind, &fb))
{
if (*fb.cAlternateFileName != NUL
&& (wcscoll(porigPrev, fb.cFileName) == 0
|| (len > 0
&& (_wcsicoll(porigPrev,
fb.cAlternateFileName) == 0
&& (int)(ptruePrev - szTrueName)
+ (int)wcslen(fb.cFileName) < len))))
{
wcscpy(ptruePrev, fb.cFileName);
break;
}
}
}
FindClose(hFind);
*porig = c;
ptrue = ptruePrev + wcslen(ptruePrev);
}
else if (hFind == INVALID_HANDLE_VALUE
&& GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
return FAIL;
}
wcscpy(name, szTrueName);
return OK;
}
#endif
/*
* fname_case(): Set the case of the file name, if it already exists.
* When "len" is > 0, also expand short to long filenames.
* NOTE: much of this is identical to fname_casew(), keep in sync!
*/
void
fname_case(
@@ -2520,11 +2626,44 @@ fname_case(
int slen;
flen = (int)STRLEN(name);
if (flen == 0 || flen > _MAX_PATH)
if (flen == 0)
return;
slash_adjust(name);
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
WCHAR *p = enc_to_utf16(name, NULL);
if (p != NULL)
{
char_u *q;
WCHAR buf[_MAX_PATH + 2];
wcscpy(buf, p);
vim_free(p);
if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK)
{
q = utf16_to_enc(buf, NULL);
if (q != NULL)
{
vim_strncpy(name, q, (len > 0) ? len - 1 : flen);
vim_free(q);
return;
}
}
}
/* Retry with non-wide function (for Windows 98). */
}
#endif
/* If 'enc' is utf-8, flen can be larger than _MAX_PATH.
* So we should check this after calling wide function. */
if (flen > _MAX_PATH)
return;
/* Build the new name in szTrueName[] one component at a time. */
porig = name;
ptrue = szTrueName;
@@ -3107,6 +3246,9 @@ mch_nodetype(char_u *name)
{
HANDLE hFile;
int type;
#ifdef FEAT_MBYTE
WCHAR *wn = NULL;
#endif
/* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to
* read from it later will cause Vim to hang. Thus return NODE_WRITABLE
@@ -3114,14 +3256,41 @@ mch_nodetype(char_u *name)
if (STRNCMP(name, "\\\\.\\", 4) == 0)
return NODE_WRITABLE;
hFile = CreateFile(name, /* file name */
GENERIC_WRITE, /* access mode */
0, /* share mode */
NULL, /* security descriptor */
OPEN_EXISTING, /* creation disposition */
0, /* file attributes */
NULL); /* handle to template file */
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
wn = enc_to_utf16(name, NULL);
if (wn != NULL)
{
hFile = CreateFileW(wn, /* file name */
GENERIC_WRITE, /* access mode */
0, /* share mode */
NULL, /* security descriptor */
OPEN_EXISTING, /* creation disposition */
0, /* file attributes */
NULL); /* handle to template file */
if (hFile == INVALID_HANDLE_VALUE
&& GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
{
/* Retry with non-wide function (for Windows 98). */
vim_free(wn);
wn = NULL;
}
}
}
if (wn == NULL)
#endif
hFile = CreateFile(name, /* file name */
GENERIC_WRITE, /* access mode */
0, /* share mode */
NULL, /* security descriptor */
OPEN_EXISTING, /* creation disposition */
0, /* file attributes */
NULL); /* handle to template file */
#ifdef FEAT_MBYTE
vim_free(wn);
#endif
if (hFile == INVALID_HANDLE_VALUE)
return NODE_NORMAL;
+13
View File
@@ -130,6 +130,19 @@
# define DFLT_MAXMEMTOT (5*1024) /* use up to 5 Mbyte for Vim */
#endif
/*
* Reparse Point
*/
#ifndef FILE_ATTRIBUTE_REPARSE_POINT
# define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
#endif
#ifndef IO_REPARSE_TAG_MOUNT_POINT
# define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003
#endif
#ifndef IO_REPARSE_TAG_SYMLINK
# define IO_REPARSE_TAG_SYMLINK 0xA000000C
#endif
#if defined(_MSC_VER) || defined(__BORLANDC__)
/* Support for __try / __except. All versions of MSVC and Borland C are
* expected to have this. Any other compilers that support it? */
+21 -11
View File
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: vim_7.4_ru\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-07-08 00:47+0400\n"
"PO-Revision-Date: 2013-07-08 00:47+0400\n"
"POT-Creation-Date: 2013-08-31 16:42+0400\n"
"PO-Revision-Date: 2013-08-31 21:11+0400\n"
"Last-Translator: Sergey Alyoshin <alyoshin.s@gmail.com>\n"
"Language-Team: \n"
"Language: Russian\n"
@@ -568,8 +568,9 @@ msgstr "E725:
msgid "E808: Number or Float required"
msgstr "E808: Òðåáóåòñÿ öåëîå ÷èñëî èëè ñ ïëàâàþùåé òî÷êîé"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "add() argument"
msgstr "ïàðàìåòð add()"
msgstr "параметра add()"
msgid "E699: Too many arguments"
msgstr "E699: Ñëèøêîì ìíîãî ïàðàìåòðîâ"
@@ -589,14 +590,17 @@ msgstr "&Ok"
msgid "E737: Key already exists: %s"
msgstr "E737: Êëþ÷ óæå ñóùåñòâóåò: %s"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "extend() argument"
msgstr "ïàðàìåòð extend()"
msgstr "параметра extend()"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "map() argument"
msgstr "ïàðàìåòð map()"
msgstr "параметра map()"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "filter() argument"
msgstr "ïàðàìåòð filter()"
msgstr "параметра filter()"
#, c-format
msgid "+-%s%3ld lines: "
@@ -616,8 +620,9 @@ msgstr ""
msgid "called inputrestore() more often than inputsave()"
msgstr "Ôóíêöèÿ inputrestore() âûçûâàåòñÿ ÷àùå, ÷åì ôóíêöèÿ inputsave()"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "insert() argument"
msgstr "ïàðàìåòð insert()"
msgstr "параметра insert()"
msgid "E786: Range not allowed"
msgstr "E786: Äèàïàçîí íå äîïóñêàåòñÿ"
@@ -644,20 +649,23 @@ msgstr "E241:
msgid "E277: Unable to read a server reply"
msgstr "E277: Ñåðâåð íå îòâå÷àåò"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "remove() argument"
msgstr "ïàðàìåòð remove()"
msgstr "параметра remove()"
msgid "E655: Too many symbolic links (cycle?)"
msgstr "E655: Ñëèøêîì ìíîãî ñèìâîëè÷åñêèõ ññûëîê (öèêë?)"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "reverse() argument"
msgstr "ïàðàìåòð reverse()"
msgstr "параметра reverse()"
msgid "E258: Unable to send to client"
msgstr "E258: Íå ìîãó îòâåòèòü êëèåíòó"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "sort() argument"
msgstr "ïàðàìåòð sort()"
msgstr "параметра sort()"
msgid "E702: Sort compare function failed"
msgstr "E702: Íåóäà÷íîå çàâåðøåíèå ôóíêöèè ñðàâíåíèÿ ïðè ñîðòèðîâêå"
@@ -707,13 +715,15 @@ msgstr ""
msgid "E705: Variable name conflicts with existing function: %s"
msgstr "E705: Èìÿ ïåðåìåííîé êîíôëèêòóåò ñ ñóùåñòâóþùåé ôóíêöèåé: %s"
#. Используется с %s = "параметера p"
#, c-format
msgid "E741: Value is locked: %s"
msgstr "E741: Çíà÷åíèå çàáëîêèðîâàíî: %s"
msgstr "E741: Значение %s заблокировано"
msgid "Unknown"
msgstr "Íåèçâåñòíî"
#. Используется с %s = "параметера p()"
#, c-format
msgid "E742: Cannot change value of %s"
msgstr "E742: Íåâîçìîæíî èçìåíèòü çíà÷åíèå %s"
+21 -11
View File
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: vim_7.4_ru\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-07-08 00:47+0400\n"
"PO-Revision-Date: 2013-07-08 00:47+0400\n"
"POT-Creation-Date: 2013-08-31 16:42+0400\n"
"PO-Revision-Date: 2013-08-31 21:11+0400\n"
"Last-Translator: Sergey Alyoshin <alyoshin.s@gmail.com>\n"
"Language-Team: \n"
"Language: Russian\n"
@@ -568,8 +568,9 @@ msgstr "E725: Вызов функции dict без словаря: %s"
msgid "E808: Number or Float required"
msgstr "E808: Требуется целое число или с плавающей точкой"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "add() argument"
msgstr "параметр add()"
msgstr "параметра add()"
msgid "E699: Too many arguments"
msgstr "E699: Слишком много параметров"
@@ -589,14 +590,17 @@ msgstr "&Ok"
msgid "E737: Key already exists: %s"
msgstr "E737: Ключ уже существует: %s"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "extend() argument"
msgstr "параметр extend()"
msgstr "параметра extend()"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "map() argument"
msgstr "параметр map()"
msgstr "параметра map()"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "filter() argument"
msgstr "параметр filter()"
msgstr "параметра filter()"
#, c-format
msgid "+-%s%3ld lines: "
@@ -616,8 +620,9 @@ msgstr ""
msgid "called inputrestore() more often than inputsave()"
msgstr "Функция inputrestore() вызывается чаще, чем функция inputsave()"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "insert() argument"
msgstr "параметр insert()"
msgstr "параметра insert()"
msgid "E786: Range not allowed"
msgstr "E786: Диапазон не допускается"
@@ -644,20 +649,23 @@ msgstr "E241: Не могу отправить сообщение для %s"
msgid "E277: Unable to read a server reply"
msgstr "E277: Сервер не отвечает"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "remove() argument"
msgstr "параметр remove()"
msgstr "параметра remove()"
msgid "E655: Too many symbolic links (cycle?)"
msgstr "E655: Слишком много символических ссылок (цикл?)"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "reverse() argument"
msgstr "параметр reverse()"
msgstr "параметра reverse()"
msgid "E258: Unable to send to client"
msgstr "E258: Не могу ответить клиенту"
#. Используется для получения "значение параметра p()" в E741 и E742
msgid "sort() argument"
msgstr "параметр sort()"
msgstr "параметра sort()"
msgid "E702: Sort compare function failed"
msgstr "E702: Неудачное завершение функции сравнения при сортировке"
@@ -707,13 +715,15 @@ msgstr ""
msgid "E705: Variable name conflicts with existing function: %s"
msgstr "E705: Имя переменной конфликтует с существующей функцией: %s"
#. Используется с %s = "параметера p"
#, c-format
msgid "E741: Value is locked: %s"
msgstr "E741: Значение заблокировано: %s"
msgstr "E741: Значение %s заблокировано"
msgid "Unknown"
msgstr "Неизвестно"
#. Используется с %s = "параметера p()"
#, c-format
msgid "E742: Cannot change value of %s"
msgstr "E742: Невозможно изменить значение %s"
+371 -187
View File
@@ -12,9 +12,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: vim 7.3\n"
"Project-Id-Version: vim 7.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-01-17 10:06+0200\n"
"POT-Creation-Date: 2013-09-29 09:05+0300\n"
"PO-Revision-Date: 2010-06-18 21:53+0300\n"
"Last-Translator: Àíàòîë³é Ñàõí³ê <sakhnik@gmail.com>\n"
"Language-Team: Bohdan Vlasyuk <bohdan@vstu.edu.ua>\n"
@@ -141,6 +141,9 @@ msgstr "[
msgid "[Read errors]"
msgstr "[Ïîìèëêè ÷èòàííÿ]"
msgid "[RO]"
msgstr "[RO]"
msgid "[readonly]"
msgstr "[ëèøå ÷èòàòè]"
@@ -428,6 +431,10 @@ msgstr "E130:
msgid "E461: Illegal variable name: %s"
msgstr "E461: Íåïðèïóñòèìà íàçâà çì³ííî¿: %s"
# msgstr "E373: "
msgid "E806: using Float as a String"
msgstr "E806: Float âæèòî ÿê String"
msgid "E687: Less targets than List items"
msgstr "E687: Ö³ëåé ìåíøå, í³æ åëåìåíò³â ñïèñêó"
@@ -594,15 +601,15 @@ msgstr "E785: complete()
msgid "&Ok"
msgstr "&O:Ãàðàçä"
# msgstr "E14: "
msgid "extend() argument"
msgstr "àðãóìåíò extend()"
# msgstr "E226: "
#, c-format
msgid "E737: Key already exists: %s"
msgstr "E737: Êëþ÷ âæå ³ñíóº: %s"
# msgstr "E14: "
msgid "extend() argument"
msgstr "àðãóìåíò extend()"
# msgstr "E14: "
msgid "map() argument"
msgstr "àðãóìåíò map()"
@@ -710,10 +717,6 @@ msgstr "E730: List
msgid "E731: using Dictionary as a String"
msgstr "E731: Dictionary âæèòî ÿê String"
# msgstr "E373: "
msgid "E806: using Float as a String"
msgstr "E806: Float âæèòî ÿê String"
#, c-format
msgid "E706: Variable type mismatch for: %s"
msgstr "E706: Íåïðàâèëüíèé òèï çì³ííî¿: %s"
@@ -752,6 +755,9 @@ msgstr "E123:
msgid "E124: Missing '(': %s"
msgstr "E124: Áðàêóº '(': %s"
msgid "E862: Cannot use g: here"
msgstr "E862: Òóò íå ìîæíà âèêîðèñòàòè g:"
#, c-format
msgid "E125: Illegal argument: %s"
msgstr "E125: Íåäîçâîëåíèé àðãóìåíò: %s"
@@ -1152,6 +1158,10 @@ msgstr "E148:
msgid "Pattern found in every line: %s"
msgstr "Çðàçîê çíàéäåíî ó êîæíîìó ðÿäêó: %s"
#, c-format
msgid "Pattern not found: %s"
msgstr "Çðàçîê íå çíàéäåíî: %s"
msgid ""
"\n"
"# Last Substitute String:\n"
@@ -1332,7 +1342,8 @@ msgid "E183: User defined commands must start with an uppercase letter"
msgstr "E183: Êîìàíäè êîðèñòóâà÷à ïîâèíí³ ïî÷èíàòèñÿ ç âåëèêî¿ ë³òåðè"
msgid "E841: Reserved name, cannot be used for user defined command"
msgstr "E841: Çàðåçåðâîâàíà íàçâà, íå ìîæíà âèêîðèñòàòè äëÿ êîðèñòóâàöüêî¿ êîìàíäè"
msgstr ""
"E841: Çàðåçåðâîâàíà íàçâà, íå ìîæíà âèêîðèñòàòè äëÿ êîðèñòóâàöüêî¿ êîìàíäè"
# msgstr "E183: "
#, c-format
@@ -1686,9 +1697,6 @@ msgstr "[
msgid "[character special]"
msgstr "[ñïåö. ñèìâîëüíèé]"
msgid "[RO]"
msgstr "[RO]"
msgid "[CR missing]"
msgstr "[Áðàêóº CR]"
@@ -1940,8 +1948,7 @@ msgstr "
#, c-format
msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
msgstr ""
"W16: Çàñòåðåæåííÿ: Ðåæèì ôàéëó «%s» çì³íèâñÿ ï³ñëÿ ïî÷àòêó ðåäàãóâàííÿ"
msgstr "W16: Çàñòåðåæåííÿ: Ðåæèì ôàéëó «%s» çì³íèâñÿ ï³ñëÿ ïî÷àòêó ðåäàãóâàííÿ"
msgid "See \":help W16\" for more info."
msgstr "Äèâ. «:help W16» äëÿ óòî÷íåííÿ."
@@ -2308,32 +2315,28 @@ msgid "Font '%s' is not fixed-width"
msgstr "Øðèôò '%s' íå º ìîíîøèðèííèì"
#, c-format
msgid "E253: Fontset name: %s\n"
msgstr "E253: Íàçâà íàáîðó øðèôò³â: %s\n"
msgid "E253: Fontset name: %s"
msgstr "E253: Íàçâà íàáîðó øðèôò³â: %s"
#, c-format
msgid "Font0: %s\n"
msgstr "Øðèôò0: %s\n"
msgid "Font0: %s"
msgstr "Øðèôò0: %s"
#, c-format
msgid "Font1: %s\n"
msgstr "Øðèôò1: %s\n"
msgid "Font1: %s"
msgstr "Øðèôò1: %s"
#, c-format
msgid "Font%ld width is not twice that of font0\n"
msgstr "Øèðèíà øðèôòó%ld ìຠáóòè óäâ³÷³ á³ëüøîþ çà øèðèíó øðèôòó0\n"
msgid "Font%ld width is not twice that of font0"
msgstr "Øèðèíà øðèôòó%ld íå á³ëüøà óäâ³÷³ çà øèðèíó øðèôòó0"
#, c-format
msgid "Font0 width: %ld\n"
msgstr "Øèðèíà øðèôòó0: %ld\n"
msgid "Font0 width: %ld"
msgstr "Øèðèíà øðèôòó0: %ld"
#, c-format
msgid ""
"Font1 width: %ld\n"
"\n"
msgstr ""
"Øèðèíà øðèôòó1: %ld\n"
"\n"
msgid "Font1 width: %ld"
msgstr "Øèðèíà øðèôòó1: %ld"
msgid "Invalid font specification"
msgstr "Íåêîðåêòíà ñïåöèô³êàö³ÿ øðèôòó"
@@ -2526,6 +2529,9 @@ msgstr "E566:
msgid "E622: Could not fork for cscope"
msgstr "E622: Íå âäàëîñÿ ðîçä³ëèòè ïðîöåñ äëÿ cscope"
msgid "cs_create_connection setpgid failed"
msgstr "cs_create_connection: ïîìèëêà setpgid"
msgid "cs_create_connection exec failed"
msgstr "cs_create_connection: ïîìèëêà ï³ä ÷àñ âèêîíàííÿ"
@@ -2672,6 +2678,9 @@ msgstr "
msgid "string cannot contain newlines"
msgstr "á³ëüøå í³æ îäèí ðÿäîê"
msgid "error converting Scheme values to Vim"
msgstr "íå âäàëîñÿ ïåðåòâîðèòè çíà÷åííÿ Scheme ó Vim"
msgid "Vim error: ~a"
msgstr "Ïîìèëêà Vim: ~a"
@@ -2693,9 +2702,6 @@ msgstr "
msgid "E837: This Vim cannot execute :py3 after using :python"
msgstr "E837: Python: Íå ìîæíà âèêîðèñòàòè :py ³ :py3 â îäíîìó ñåàíñ³"
msgid "only string keys are allowed"
msgstr "Äîçâîëåíî ò³ëüêè òåêñòîâ³ êëþ÷³"
msgid ""
"E263: Sorry, this command is disabled, the Python library could not be "
"loaded."
@@ -2703,28 +2709,12 @@ msgstr ""
"E263: Âèáà÷òå, öÿ êîìàíäà âèìêíåíà, á³áë³îòåêà Python íå ìîæå áóòè "
"çàâàíòàæåíà."
msgid "E860: Eval did not return a valid python 3 object"
msgstr "E860: Eval íå ïîâåðíóâ ä³éñíèé îá’ºêò python 3"
msgid "E861: Failed to convert returned python 3 object to vim value"
msgstr "E861: Íå âäàëîñÿ ïåðåòâîðèòè îá’ºêò python 3 ó çíà÷åííÿ vim"
#, c-format
msgid "<buffer object (deleted) at %p>"
msgstr "<îá'ºêò áóôåðà (çíèùåíî) çà àäðåñîþ %p>"
msgid "E836: This Vim cannot execute :python after using :py3"
msgstr "E836: Python: Íå ìîæíà âèêîðèñòàòè :py ³ :py3 â îäíîìó ñåàíñ³"
msgid "E659: Cannot invoke Python recursively"
msgstr "E659: Íå ìîæíà ðåêóðñèâíî âèêëèêàòè Python"
msgid "E858: Eval did not return a valid python object"
msgstr "E858: Eval íå ïîâåðíóâ ä³éñíèé îá’ºêò python"
msgid "E859: Failed to convert returned python object to vim value"
msgstr "E859: Íå âäàëîñÿ ïåðåòâîðèòè îá’ºêò python ó çíà÷åííÿ vim"
msgid "E265: $_ must be an instance of String"
msgstr "E265: $_ ìຠáóòè åêçåìïëÿðîì String"
@@ -2942,8 +2932,7 @@ msgid "Garbage after option argument"
msgstr "Ñì³òòÿ ï³ñëÿ àðãóìåíòó îïö³¿"
msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
msgstr ""
"Çàáàãàòî àðãóìåíò³â ó «+êîìàíäà», «-c êîìàíäà» àáî «--cmd êîìàíäà»"
msgstr "Çàáàãàòî àðãóìåíò³â ó «+êîìàíäà», «-c êîìàíäà» àáî «--cmd êîìàíäà»"
# msgstr "E14: "
msgid "Invalid argument for"
@@ -3483,8 +3472,7 @@ msgstr "E302:
# msgstr "E302: "
#, c-format
msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
msgstr ""
"E303: Íå âäàëîñÿ ïðî÷èòàòè ôàéë îáì³íó äëÿ «%s», â³äíîâëåííÿ íåìîæëèâå"
msgstr "E303: Íå âäàëîñÿ ïðî÷èòàòè ôàéë îáì³íó äëÿ «%s», â³äíîâëåííÿ íåìîæëèâå"
msgid "E304: ml_upd_block0(): Didn't get block 0??"
msgstr "E304: ml_upd_block0(): Íåìຠáëîêó 0??"
@@ -4092,13 +4080,6 @@ msgstr " (
msgid "Beep!"
msgstr "Äçåíü!"
msgid "Vim: preserving files...\n"
msgstr "Vim: Çàãîòîâëþþòüñÿ ôàéëè...\n"
#. close all memfiles, without deleting
msgid "Vim: Finished.\n"
msgstr "Vim: Çàâåðøåíî.\n"
msgid "ERROR: "
msgstr "ÏÎÌÈËÊÀ: "
@@ -4628,17 +4609,6 @@ msgstr "E244:
msgid "E245: Illegal char '%c' in font name \"%s\""
msgstr "E245: Ïîìèëêîâèé ñèìâîë %c â íàçâ³ øðèôòó «%s»"
msgid "Vim: Double signal, exiting\n"
msgstr "Vim: Äâ³÷³ îòðèìàíî ñèãíàë, âèõ³ä\n"
#, c-format
msgid "Vim: Caught deadly signal %s\n"
msgstr "Vim: Îòðèìàíî ôàòàëüíèé ñèãíàë (%s)\n"
#, c-format
msgid "Vim: Caught deadly signal\n"
msgstr "Vim: Îòðèìàíî ôàòàëüíèé ñèãíàë\n"
#, c-format
msgid "Opening the X display took %ld msec"
msgstr "Íà â³äêðèòòÿ äèñïëåþ X ï³øëî %ld ì³ë³ñåêóíä"
@@ -4861,6 +4831,38 @@ msgstr "E777:
msgid "E369: invalid item in %s%%[]"
msgstr "E369: Íåêîðåêòíèé åëåìåíò ó %s%%[]"
#, c-format
msgid "E769: Missing ] after %s["
msgstr "E769: Áðàêóº ] ï³ñëÿ %s["
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: Íåìຠïàðè %s%%("
#, c-format
msgid "E54: Unmatched %s("
msgstr "E54: Íåìຠïàðè %s("
#, c-format
msgid "E55: Unmatched %s)"
msgstr "E55: Íåìຠïàðè %s)"
# msgstr "E406: "
msgid "E66: \\z( not allowed here"
msgstr "E66: \\z( òóò íå äîçâîëåíî"
# msgstr "E406: "
msgid "E67: \\z1 et al. not allowed here"
msgstr "E67: \\z1 òà ³í. òóò íå äîçâîëåíî"
#, c-format
msgid "E69: Missing ] after %s%%["
msgstr "E69: Ïðîïóùåíî ] ï³ñëÿ %s%%["
#, c-format
msgid "E70: Empty %s%%[]"
msgstr "E70: %s%%[] ïîðîæí³é"
# msgstr "E382: "
msgid "E339: Pattern too long"
msgstr "E339: Çðàçîê çàíàäòî äîâãèé"
@@ -4875,18 +4877,6 @@ msgstr "E51:
msgid "E52: Unmatched \\z("
msgstr "E52: Íåìຠïàðè \\z("
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: Íåìຠïàðè %s%%("
#, c-format
msgid "E54: Unmatched %s("
msgstr "E54: Íåìຠïàðè %s("
#, c-format
msgid "E55: Unmatched %s)"
msgstr "E55: Íåìຠïàðè %s)"
#, c-format
msgid "E59: invalid character after %s@"
msgstr "E59: Íåäîçâîëåíèé ñèìâîë ï³ñëÿ %s@"
@@ -4916,25 +4906,9 @@ msgstr "E64: ϳ
msgid "E65: Illegal back reference"
msgstr "E65: Íåêîðåêòíå çâîðîòíº ïîñèëàííÿ"
# msgstr "E406: "
msgid "E66: \\z( not allowed here"
msgstr "E66: \\z( òóò íå äîçâîëåíî"
# msgstr "E406: "
msgid "E67: \\z1 et al. not allowed here"
msgstr "E67: \\z1 òà ³í. òóò íå äîçâîëåíî"
msgid "E68: Invalid character after \\z"
msgstr "E68: Íåïðàâèëüíèé ñèìâîë ï³ñëÿ \\z"
#, c-format
msgid "E69: Missing ] after %s%%["
msgstr "E69: Ïðîïóùåíî ] ï³ñëÿ %s%%["
#, c-format
msgid "E70: Empty %s%%[]"
msgstr "E70: %s%%[] ïîðîæí³é"
#, c-format
msgid "E678: Invalid character after %s%%[dxouU]"
msgstr "E678: Íåäîçâîëåíèé ñèìâîë ï³ñëÿ %s%%[dxouU]"
@@ -4943,10 +4917,6 @@ msgstr "E678:
msgid "E71: Invalid character after %s%%"
msgstr "E71: Íåäîçâîëåíèé ñèìâîë ï³ñëÿ %s%%"
#, c-format
msgid "E769: Missing ] after %s["
msgstr "E769: Áðàêóº ] ï³ñëÿ %s["
# msgstr "E64: "
#, c-format
msgid "E554: Syntax error in %s{...}"
@@ -4955,6 +4925,80 @@ msgstr "E554:
msgid "External submatches:\n"
msgstr "Çîâí³øí³ ï³ä-çá³ãè:\n"
msgid ""
"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
"used "
msgstr ""
"E864: ï³ñëÿ \\%#= ìîæå áóòè ò³ëüêè 0, 1, or 2. Áóäå âèêîðèñòàíî àâòîìàòè÷íèé ìåõàí³çì "
#, c-format
msgid "E866: (NFA regexp) Misplaced %c"
msgstr "E866: (NFA regexp) Íå íà ì³ñö³ %c"
msgid "E865: (NFA) Regexp end encountered prematurely"
msgstr "E865: (NFA) Çàðàíî òðàïèâñÿ ê³íåöü ðåãóëÿðíîãî âèðàçó"
#, c-format
msgid "E867: (NFA) Unknown operator '\\z%c'"
msgstr "E867: (NFA) Íåâ³äîìèé îïåðàòîð '\\z%c'"
#, c-format
msgid "E867: (NFA) Unknown operator '\\%%%c'"
msgstr "E867: (NFA) Íåâ³äîìèé îïåðàòîð '\\%%%c'"
#. should never happen
msgid "E868: Error building NFA with equivalence class!"
msgstr "E868: Íå âäàëîñÿ ïîáóäóâàòè NFA ç êëàñîì åêâ³âàëåíòíîñò³!"
#, c-format
msgid "E869: (NFA) Unknown operator '\\@%c'"
msgstr "E869: (NFA) Íåâ³äîìèé îïåðàòîð '\\@%c'"
msgid "E870: (NFA regexp) Error reading repetition limits"
msgstr "E870: (NFA regexp) Íå âäàëîñÿ ïðî÷èòàòè ìåæ³ ïîâòîðåííÿ"
#. Can't have a multi follow a multi.
msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
msgstr "E871: (NFA regexp) Ìóëüòè íå ìîæå áóòè çà ìóëüòè!"
#. Too many `('
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (NFA regexp) Çàáàãàòî '('"
msgid "E879: (NFA regexp) Too many \\z("
msgstr "E879: (NFA regexp) Çàáàãàòî \\z("
msgid "E873: (NFA regexp) proper termination error"
msgstr "E873: (NFA regexp) ïîìèëêà íàëåæíîãî ïðèïèíåííÿ"
msgid "E874: (NFA) Could not pop the stack !"
msgstr "E874: (NFA) Ñòåê ïîðîæí³é!"
msgid ""
"E875: (NFA regexp) (While converting from postfix to NFA), too many states "
"left on stack"
msgstr ""
"E875: (NFA regexp) (ϳä ÷àñ ïåðåòâîðåííÿ ç ïîñòô³êñ ó NFA) çàëèøèëîñÿ "
"çàáàãàòî ñòàí³â ó ñòåêó"
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
msgstr "E876: (NFA regexp) Íåäîñòàòíüî ïàì’ÿò³, ùîá çáåðåãòè âåñü NFA "
msgid "E878: (NFA) Could not allocate memory for branch traversal!"
msgstr "E878: (NFA) Íå âäàëîñÿ îòðèìàòè ïàì’ÿòü äëÿ îáõîäó ã³ëîê!"
msgid ""
"Could not open temporary log file for writing, displaying on stderr ... "
msgstr ""
"Íå âäàëîñÿ â³äêðèòè òèì÷àñîâèé ôàéë æóðíàëó äëÿ çàïèñó, ïîêàçóºòüñÿ íà stderr ... "
#, c-format
msgid "(NFA) COULD NOT OPEN %s !"
msgstr "(NFA) ÍÅ ÂÄÀËÎÑß Â²ÄÊÐÈÒÈ %s!"
msgid "Could not open temporary log file for writing "
msgstr "Íå âäàëîñÿ â³äêðèòè òèì÷àñîâèé ôàéë æóðíàëó äëÿ çàïèñó "
msgid " VREPLACE"
msgstr " ²ÐÒ ÇÀ̲ÍÀ"
@@ -5110,7 +5154,8 @@ msgstr "E756:
#, c-format
msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
msgstr "Çàñòåðåæåííÿ: Íå âäàëîñÿ çíàéòè ñïèñîê ñë³â «%s_%s.spl» ÷è «%s_ascii.spl»"
msgstr ""
"Çàñòåðåæåííÿ: Íå âäàëîñÿ çíàéòè ñïèñîê ñë³â «%s_%s.spl» ÷è «%s_ascii.spl»"
#, c-format
msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
@@ -5396,12 +5441,12 @@ msgid "E765: 'spellfile' does not have %ld entries"
msgstr "E765: 'spellfile' íå ì³ñòèòü %ld åëåìåíò³â"
#, c-format
msgid "Word removed from %s"
msgstr "Ñëîâî çíèùåíî ç %s"
msgid "Word '%.*s' removed from %s"
msgstr "Ñëîâî '%.*s' çíèùåíî ç %s"
#, c-format
msgid "Word added to %s"
msgstr "Ñëîâî äîäàíî äî %s"
msgid "Word '%.*s' added to %s"
msgstr "Ñëîâî '%.*s' äîäàíî äî %s"
msgid "E763: Word characters differ between spell files"
msgstr "E763: Ñèìâîëè ó ñëîâ³ â³äð³çíÿþòüñÿ ó ôàéëàõ îðôîãðàô³¿"
@@ -5457,6 +5502,10 @@ msgstr "E782:
msgid "E783: duplicate char in MAP entry"
msgstr "E783: Ïîâòîðåíî ñèìâîë ó åëåìåíò³ MAP"
# msgstr "E391: "
msgid "No Syntax items defined for this buffer"
msgstr "Äëÿ áóôåðà íå âèçíà÷åíî åëåìåíò³â ñèíòàêñèñó"
#, c-format
msgid "E390: Illegal argument: %s"
msgstr "E390: Íåïðàâèëüíèé àðãóìåíò: %s"
@@ -5465,10 +5514,6 @@ msgstr "E390:
msgid "E391: No such syntax cluster: %s"
msgstr "E391: Íåìຠòàêîãî ñèíòàêñè÷íîãî êëàñòåðà: %s"
# msgstr "E391: "
msgid "No Syntax items defined for this buffer"
msgstr "Äëÿ áóôåðà íå âèçíà÷åíî åëåìåíò³â ñèíòàêñèñó"
msgid "syncing on C-style comments"
msgstr "ñèíõðîí³çóºòüñÿ ïî êîìåíòàðÿõ ñòèëþ Ñ"
@@ -5603,6 +5648,11 @@ msgstr "E409:
msgid "E410: Invalid :syntax subcommand: %s"
msgstr "E410: Íåïðàâèëüíà ï³äêîìàíäà :syntax: %s"
msgid ""
" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
msgstr ""
" ÂÑÜÎÃÎ Ê-ÒÜ ÑϲÂÏ. ÍÀÉÏβË. ÑÅÐÅÄÍ. ÍÀÇÂÀ ØÀÁËÎÍ"
msgid "E679: recursive loop loading syncolor.vim"
msgstr "E679: Ðåêóðñèâíèé öèêë ÷èòàííÿ syncolor.vim"
@@ -6734,112 +6784,246 @@ msgstr "
msgid "Need encryption key for \"%s\""
msgstr "Äëÿ «%s» ïîòð³áåí êëþ÷: "
msgid "can't delete OutputObject attributes"
msgstr "íå âäàëîñÿ çíèùèòè àòðèáóòè OutputObject"
msgid "softspace must be an integer"
msgstr "softspace ìຠáóòè ö³ëèì"
# msgstr "E180: "
msgid "invalid attribute"
msgstr "íåïðàâèëüíèé àòðèáóò"
msgid "writelines() requires list of strings"
msgstr "äëÿ writelines() ïîòð³áåí ñïèñîê ðÿäê³â"
msgid "E264: Python: Error initialising I/O objects"
msgstr "E264: Python: Ïîìèëêà ³í³ö³àë³çàö³¿ îá'ºêò³â ââîäó/âèâîäó"
msgid "no such buffer"
msgstr "òàêîãî áóôåðà íåìàº"
# msgstr "E406: "
msgid "empty keys are not allowed"
msgstr "ïîðîæí³ êëþ÷³ íå äîçâîëåí³"
msgid "failed to add key to dictionary"
msgstr "íå âäàëîñÿ äîäàòè êëþ÷ äî ñëîâíèêà"
msgid "Cannot delete DictionaryObject attributes"
msgstr "íå âäàëîñÿ çíèùèòè àòðèáóòè DictionaryObject"
msgid "Cannot modify fixed dictionary"
msgstr "Íå ìîæíà çì³íèòè ô³êñîâàíèé ñëîâíèê"
msgid "Only boolean objects are allowed"
msgstr "Äîçâîëåíî ò³ëüêè ëîã³÷í³ îá’ºêòè"
msgid "Cannot set this attribute"
msgstr "Íå ìîæíà âñòàíîâèòè öåé àòðèáóò"
msgid "no such key in dictionary"
msgstr "íåìຠòàêîãî êëþ÷à â ñëîâíèêó"
msgid "dict is locked"
msgid "dictionary is locked"
msgstr "ñëîâíèê çàáëîêîâàíî"
msgid "internal error: failed to get vim list item"
msgstr "âíóòð³øíÿ ïîìèëêà: íå âäàëîñÿ îòðèìàòè åëåìåíò ñïèñêó vim"
msgid "list is locked"
msgstr "ñïèñîê çàáëîêîâàíî"
msgid "Failed to add item to list"
msgstr "Íå âäàëîñÿ äîäàòè åëåìåíò äî ñïèñêó"
#, c-format
msgid "failed to add key '%s' to dictionary"
msgstr "íå âäàëîñÿ äîäàòè êëþ÷ '%s' äî ñëîâíèêà"
msgid "internal error: no vim list item"
msgstr "âíóòð³øíÿ ïîìèëêà: íåìຠåëåìåíòà ñïèñêó vim"
#, c-format
msgid "index must be int or slice, not %s"
msgstr "³íäåêñ ìຠáóòè ö³ëèé ÷è çð³ç, íå %s"
msgid "can only assign lists to slice"
msgstr "ìîæíà ïðèñâîþâàòè ñïèñêè ò³ëüêè çð³çàì"
#, c-format
msgid "expected str() or unicode() instance, but got %s"
msgstr "î÷³êóâàâñÿ åêçåìïëÿð str() ÷è unicode(), àëå îòðèìàíî %s"
#, c-format
msgid "expected bytes() or str() instance, but got %s"
msgstr "î÷³êóâàâñÿ åêçåìïëÿð bytes() ÷è str(), àëå îòðèìàíî %s"
#, c-format
msgid ""
"expected int(), long() or something supporting coercing to long(), but got %s"
msgstr ""
"î÷³êóâàâñÿ int(), long() ÷è ùîñü, ùî ìîæå áóòè âì³ùåíå long(), àëå îòðèìàíî %s"
#, c-format
msgid "expected int() or something supporting coercing to int(), but got %s"
msgstr "î÷³êóâàâñÿ int() ÷è ùîñü, ùî ìîæå áóòè âì³ùåíå int(), àëå îòðèìàíî %s"
msgid "value is too large to fit into C int type"
msgstr "çíà÷åííÿ çàâåëèêå, ùîá âì³ñòèòèñÿ ó òèï C int"
msgid "value is too small to fit into C int type"
msgstr "çíà÷åííÿ çàìàëå, ùîá âì³ñòèòèñÿ ó òèï C int"
msgid "number must be greater then zero"
msgstr "÷èñëî ìຠáóòè á³ëüøå, í³æ íóëü"
msgid "number must be greater or equal to zero"
msgstr "÷èñëî ìຠáóòè íå ìåíøå, í³æ íóëü"
msgid "can't delete OutputObject attributes"
msgstr "íå âäàëîñÿ çíèùèòè àòðèáóòè OutputObject"
# msgstr "E180: "
#, c-format
msgid "invalid attribute: %s"
msgstr "íåïðàâèëüíèé àòðèáóò: %s"
msgid "E264: Python: Error initialising I/O objects"
msgstr "E264: Python: Ïîìèëêà ³í³ö³àë³çàö³¿ îá'ºêò³â ââîäó/âèâîäó"
msgid "failed to change directory"
msgstr "íå âäàëîñÿ çì³íèòè äèðåêòîð³þ"
#, c-format
msgid "expected 3-tuple as imp.find_module() result, but got %s"
msgstr "î÷³êóâàâñÿ 3-êîðòåæ ÿê ðåçóëüòàò imp.find_module(), àëå îòðèìàíî %s"
#, c-format
msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
msgstr "î÷³êóâàâñÿ 3-êîðòåæ ÿê ðåçóëüòàò imp.find_module(), àëå îòðèìàíî %d"
msgid "internal error: imp.find_module returned tuple with NULL"
msgstr "âíóòð³øíÿ ïîìèëêà: imp.find_module ïîâåðíóëà êîðòåæ ç NULL"
msgid "cannot delete vim.Dictionary attributes"
msgstr "íå âäàëîñÿ çíèùèòè àòðèáóòè vim.Dictionary"
msgid "cannot modify fixed dictionary"
msgstr "íå ìîæíà çì³íèòè ô³êñîâàíèé ñëîâíèê"
#, c-format
msgid "cannot set attribute %s"
msgstr "íå ìîæíà âñòàíîâèòè àòðèáóò %s"
msgid "hashtab changed during iteration"
msgstr "õåø-òàáëèöÿ çì³íèëàñÿ ï³ä ÷àñ ïåðåáèðàííÿ"
#, c-format
msgid "expected sequence element of size 2, but got sequence of size %d"
msgstr "î÷³êóâàëàñü ïîñë³äîâí³ñòü ðîçì³ðîì 2, àëå îòðèìàíî ïîñë³äîâí³ñòü ðîçì³ðó %d"
msgid "list constructor does not accept keyword arguments"
msgstr "ñïèñêîâèé êîíñòðóêòîð íå ïðèéìຠ³ìåíîâàí³ àðãóìåíòè"
msgid "list index out of range"
msgstr "³íäåêñ ñïèñêó çà ìåæàìè"
#. No more suitable format specifications in python-2.3
#, c-format
msgid "internal error: failed to get vim list item %d"
msgstr "âíóòð³øíÿ ïîìèëêà: íå âäàëîñÿ îòðèìàòè åëåìåíò ñïèñêó vim %d"
msgid "failed to add item to list"
msgstr "íå âäàëîñÿ äîäàòè åëåìåíò äî ñïèñêó"
#, c-format
msgid "internal error: no vim list item %d"
msgstr "âíóòð³øíÿ ïîìèëêà: íåìຠåëåìåíòà ñïèñêó vim %d"
msgid "internal error: failed to add item to list"
msgstr "âíóòð³øíÿ ïîìèëêà: íå âäàëîñÿ äîäàòè åëåìåíò äî ñïèñêó"
msgid "can only concatenate with lists"
msgstr "ìîæíà ç’ºäíóâàòè ò³ëüêè ç³ ñïèñêàìè"
msgid "cannot delete vim.List attributes"
msgstr "íå âäàëîñÿ çíèùèòè àòðèáóòè vim.List"
msgid "Cannot modify fixed list"
msgstr "Íå ìîæíà çì³íèòè ô³êñîâàíèé ñïèñîê"
msgid "cannot modify fixed list"
msgstr "íå ìîæíà çì³íèòè ô³êñîâàíèé ñïèñîê"
msgid "'self' argument must be a dictionary"
msgstr "Àðãóìåíò «self» ìຠáóòè ñëîâíèêîì"
# msgstr "E428: "
#, c-format
msgid "unnamed function %s does not exist"
msgstr "áåç³ìåííî¿ ôóíêö³¿ %s íå ³ñíóº"
msgid "failed to run function"
msgstr "Íå âäàëîñÿ âèêîíàòè ôóíêö³þ"
# msgstr "E428: "
#, c-format
msgid "function %s does not exist"
msgstr "ôóíêö³¿ %s íå ³ñíóº"
msgid "function constructor does not accept keyword arguments"
msgstr "êîíñòðóêòîð ôóíêö³¿ íå ïðèéìຠ³ìåíîâàí³ àðãóìåíòè"
#, c-format
msgid "failed to run function %s"
msgstr "íå âäàëîñÿ âèêîíàòè ôóíêö³þ %s"
msgid "unable to get option value"
msgstr "íå âäàëîñÿ îòðèìàòè çíà÷åííÿ îïö³¿"
msgid "internal error: unknown option type"
msgstr "âíóòð³øíÿ ïîìèëêà: íåâ³äîìèé òèï îïö³¿"
msgid "problem while switching windows"
msgstr "íå âäàëîñÿ ïåðåìêíóòè â³êíà"
#, c-format
msgid "unable to unset global option %s"
msgstr "íå âäàëîñÿ ñêèíóòè ãëîáàëüíó îïö³þ %s"
#, c-format
msgid "unable to unset option %s which does not have global value"
msgstr "íå âäàëîñÿ ñêèíóòè îïö³þ %s, ÿêà íå ìຠãëîáàëüíîãî çíà÷åííÿ"
msgid "attempt to refer to deleted tab page"
msgstr "ñïðîáà çâåðíåííÿ äî çíèùåíî¿ âêëàäêè"
msgid "no such tab page"
msgstr "òàêî¿ âêëàäêè íåìàº"
msgid "attempt to refer to deleted window"
msgstr "ñïðîáà çâåðíóòèñÿ äî çíèùåíîãî â³êíà"
msgid "readonly attribute"
msgstr "ëèøå äëÿ ÷èòàííÿ"
msgid "readonly attribute: buffer"
msgstr "àòðèáóò ëèøå äëÿ ÷èòàííÿ: áóôåð"
msgid "cursor position outside buffer"
msgstr "êóðñîð çà ìåæàìè áóôåðà"
#, c-format
msgid "<window object (deleted) at %p>"
msgstr "<îá'ºêò â³êíà (çíèùåíî) çà àäðåñîþ %p>"
#, c-format
msgid "<window object (unknown) at %p>"
msgstr "<îá'ºêò â³êíà (íåâ³äîìèé) çà àäðåñîþ %p>"
#, c-format
msgid "<window %d>"
msgstr "<â³êíî %d>"
msgid "no such window"
msgstr "òàêîãî â³êíà íåìàº"
msgid "attempt to refer to deleted buffer"
msgstr "ñïðîáà çâåðíåííÿ äî çíèùåíîãî áóôåðà"
msgid "unable to convert to vim structure"
msgstr "íå âäàëîñÿ ïåðåòâîðèòè äî ñòðóêòóðè vim"
msgid "failed to rename buffer"
msgstr "íå âäàëîñÿ ïåðåéìåíóâàòè áóôåð"
msgid "NULL reference passed"
msgstr "ïåðåäàíî ïîñèëàííÿ NULL"
msgid "mark name must be a single character"
msgstr "íàçâîþ ì³òêè ìຠáóòè îäèí ñèìâîë"
#, c-format
msgid "expected vim.Buffer object, but got %s"
msgstr "î÷³êóâàâñÿ îá’ºêò vim.Buffer, àëå îòðèìàíî %s"
#, c-format
msgid "failed to switch to buffer %d"
msgstr "íå âäàëîñÿ ïåðåìêíóòèñÿ äî áóôåðà %d"
#, c-format
msgid "expected vim.Window object, but got %s"
msgstr "î÷³êóâàâñÿ îá’ºêò vim.Window, àëå îòðèìàíî %s"
msgid "failed to find window in the current tab page"
msgstr "íå âäàëîñÿ çíàéòè â³êíî ó ïîòî÷í³é âêëàäö³"
msgid "did not switch to the specified window"
msgstr "íå ïåðåìêíóâñÿ äî âêàçàíîãî â³êíà"
#, c-format
msgid "expected vim.TabPage object, but got %s"
msgstr "î÷³êóâàâñÿ îá’ºêò vim.TabPage, àëå îòðèìàíî %s"
msgid "did not switch to the specified tab page"
msgstr "íå ïåðåìêíóâñÿ äî âêàçàíî¿ âêëàäêè"
msgid "failed to run the code"
msgstr "íå âäàëîñÿ âèêîíàòè êîä"
msgid "E858: Eval did not return a valid python object"
msgstr "E858: Eval íå ïîâåðíóâ ä³éñíèé îá’ºêò python"
msgid "E859: Failed to convert returned python object to vim value"
msgstr "E859: Íå âäàëîñÿ ïåðåòâîðèòè îá’ºêò python ó çíà÷åííÿ vim"
#, c-format
msgid "unable to convert %s to vim dictionary"
msgstr "íå âäàëîñÿ ïåðåòâîðèòè %s ó ñëîâíèê vim"
#, c-format
msgid "unable to convert %s to vim structure"
msgstr "íå âäàëîñÿ ïåðåòâîðèòè %s ó ñòðóêòóðó vim"
msgid "internal error: NULL reference passed"
msgstr "âíóòð³øíÿ ïîìèëêà: ïåðåäàíî ïîñèëàííÿ NULL"
msgid "internal error: invalid value type"
msgstr "âíóòð³øíÿ ïîìèëêà: íåïðàâèëüíèé òèï çíà÷åííÿ"
msgid ""
"Failed to set path hook: sys.path_hooks is not a list\n"
"You should now do the following:\n"
"- append vim.path_hook to sys.path_hooks\n"
"- append vim.VIM_SPECIAL_PATH to sys.path\n"
msgstr ""
"Íå âäàëîñÿ âñòàíîâèòè îáðîáíèê øëÿõó: sys.path_hooks íå ñïèñîê\n"
"Âàì ñë³ä â÷èíèòè òàê:\n"
"- äîäàéòå vim.path_hook äî sys.path_hooks\n"
"- äîäàéòå vim.VIM_SPECIAL_PATH äî sys.path\n"
msgid ""
"Failed to set path: sys.path is not a list\n"
"You should now append vim.VIM_SPECIAL_PATH to sys.path"
msgstr ""
"Íå âäàëîñÿ âñòàíîâèòè øëÿõ: sys.path íå ñïèñîê\n"
"Âàñ ñë³ä äîäàòè vim.VIM_SPECIAL_PATH äî sys.path"
+371 -187
View File
@@ -12,9 +12,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: vim 7.3\n"
"Project-Id-Version: vim 7.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-01-17 10:06+0200\n"
"POT-Creation-Date: 2013-09-29 09:05+0300\n"
"PO-Revision-Date: 2010-06-18 21:53+0300\n"
"Last-Translator: Анатолій Сахнік <sakhnik@gmail.com>\n"
"Language-Team: Bohdan Vlasyuk <bohdan@vstu.edu.ua>\n"
@@ -141,6 +141,9 @@ msgstr "[Новий файл]"
msgid "[Read errors]"
msgstr "[Помилки читання]"
msgid "[RO]"
msgstr "[RO]"
msgid "[readonly]"
msgstr "[лише читати]"
@@ -428,6 +431,10 @@ msgstr "E130: Невідома функція: %s"
msgid "E461: Illegal variable name: %s"
msgstr "E461: Неприпустима назва змінної: %s"
# msgstr "E373: "
msgid "E806: using Float as a String"
msgstr "E806: Float вжито як String"
msgid "E687: Less targets than List items"
msgstr "E687: Цілей менше, ніж елементів списку"
@@ -594,15 +601,15 @@ msgstr "E785: complete() можна вживати тільки в режимі
msgid "&Ok"
msgstr "&O:Гаразд"
# msgstr "E14: "
msgid "extend() argument"
msgstr "аргумент extend()"
# msgstr "E226: "
#, c-format
msgid "E737: Key already exists: %s"
msgstr "E737: Ключ вже існує: %s"
# msgstr "E14: "
msgid "extend() argument"
msgstr "аргумент extend()"
# msgstr "E14: "
msgid "map() argument"
msgstr "аргумент map()"
@@ -710,10 +717,6 @@ msgstr "E730: List вжито як String"
msgid "E731: using Dictionary as a String"
msgstr "E731: Dictionary вжито як String"
# msgstr "E373: "
msgid "E806: using Float as a String"
msgstr "E806: Float вжито як String"
#, c-format
msgid "E706: Variable type mismatch for: %s"
msgstr "E706: Неправильний тип змінної: %s"
@@ -752,6 +755,9 @@ msgstr "E123: Невизначена функція: %s"
msgid "E124: Missing '(': %s"
msgstr "E124: Бракує '(': %s"
msgid "E862: Cannot use g: here"
msgstr "E862: Тут не можна використати g:"
#, c-format
msgid "E125: Illegal argument: %s"
msgstr "E125: Недозволений аргумент: %s"
@@ -1152,6 +1158,10 @@ msgstr "E148: У global бракує зразка"
msgid "Pattern found in every line: %s"
msgstr "Зразок знайдено у кожному рядку: %s"
#, c-format
msgid "Pattern not found: %s"
msgstr "Зразок не знайдено: %s"
msgid ""
"\n"
"# Last Substitute String:\n"
@@ -1332,7 +1342,8 @@ msgid "E183: User defined commands must start with an uppercase letter"
msgstr "E183: Команди користувача повинні починатися з великої літери"
msgid "E841: Reserved name, cannot be used for user defined command"
msgstr "E841: Зарезервована назва, не можна використати для користувацької команди"
msgstr ""
"E841: Зарезервована назва, не можна використати для користувацької команди"
# msgstr "E183: "
#, c-format
@@ -1686,9 +1697,6 @@ msgstr "[сокет]"
msgid "[character special]"
msgstr "[спец. символьний]"
msgid "[RO]"
msgstr "[RO]"
msgid "[CR missing]"
msgstr "[Бракує CR]"
@@ -1940,8 +1948,7 @@ msgstr "Див. «:help W11» для уточнення."
#, c-format
msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
msgstr ""
"W16: Застереження: Режим файлу «%s» змінився після початку редагування"
msgstr "W16: Застереження: Режим файлу «%s» змінився після початку редагування"
msgid "See \":help W16\" for more info."
msgstr "Див. «:help W16» для уточнення."
@@ -2308,32 +2315,28 @@ msgid "Font '%s' is not fixed-width"
msgstr "Шрифт '%s' не є моноширинним"
#, c-format
msgid "E253: Fontset name: %s\n"
msgstr "E253: Назва набору шрифтів: %s\n"
msgid "E253: Fontset name: %s"
msgstr "E253: Назва набору шрифтів: %s"
#, c-format
msgid "Font0: %s\n"
msgstr "Шрифт0: %s\n"
msgid "Font0: %s"
msgstr "Шрифт0: %s"
#, c-format
msgid "Font1: %s\n"
msgstr "Шрифт1: %s\n"
msgid "Font1: %s"
msgstr "Шрифт1: %s"
#, c-format
msgid "Font%ld width is not twice that of font0\n"
msgstr "Ширина шрифту%ld має бути удвічі більшою за ширину шрифту0\n"
msgid "Font%ld width is not twice that of font0"
msgstr "Ширина шрифту%ld не більша удвічі за ширину шрифту0"
#, c-format
msgid "Font0 width: %ld\n"
msgstr "Ширина шрифту0: %ld\n"
msgid "Font0 width: %ld"
msgstr "Ширина шрифту0: %ld"
#, c-format
msgid ""
"Font1 width: %ld\n"
"\n"
msgstr ""
"Ширина шрифту1: %ld\n"
"\n"
msgid "Font1 width: %ld"
msgstr "Ширина шрифту1: %ld"
msgid "Invalid font specification"
msgstr "Некоректна специфікація шрифту"
@@ -2526,6 +2529,9 @@ msgstr "E566: Не вдалося створити канали до cscope"
msgid "E622: Could not fork for cscope"
msgstr "E622: Не вдалося розділити процес для cscope"
msgid "cs_create_connection setpgid failed"
msgstr "cs_create_connection: помилка setpgid"
msgid "cs_create_connection exec failed"
msgstr "cs_create_connection: помилка під час виконання"
@@ -2672,6 +2678,9 @@ msgstr "не вдалося вставити рядок"
msgid "string cannot contain newlines"
msgstr "більше ніж один рядок"
msgid "error converting Scheme values to Vim"
msgstr "не вдалося перетворити значення Scheme у Vim"
msgid "Vim error: ~a"
msgstr "Помилка Vim: ~a"
@@ -2693,9 +2702,6 @@ msgstr "не дозволено у пісочниці Vim"
msgid "E837: This Vim cannot execute :py3 after using :python"
msgstr "E837: Python: Не можна використати :py і :py3 в одному сеансі"
msgid "only string keys are allowed"
msgstr "Дозволено тільки текстові ключі"
msgid ""
"E263: Sorry, this command is disabled, the Python library could not be "
"loaded."
@@ -2703,28 +2709,12 @@ msgstr ""
"E263: Вибачте, ця команда вимкнена, бібліотека Python не може бути "
"завантажена."
msgid "E860: Eval did not return a valid python 3 object"
msgstr "E860: Eval не повернув дійсний об’єкт python 3"
msgid "E861: Failed to convert returned python 3 object to vim value"
msgstr "E861: Не вдалося перетворити об’єкт python 3 у значення vim"
#, c-format
msgid "<buffer object (deleted) at %p>"
msgstr "<об'єкт буфера (знищено) за адресою %p>"
msgid "E836: This Vim cannot execute :python after using :py3"
msgstr "E836: Python: Не можна використати :py і :py3 в одному сеансі"
msgid "E659: Cannot invoke Python recursively"
msgstr "E659: Не можна рекурсивно викликати Python"
msgid "E858: Eval did not return a valid python object"
msgstr "E858: Eval не повернув дійсний об’єкт python"
msgid "E859: Failed to convert returned python object to vim value"
msgstr "E859: Не вдалося перетворити об’єкт python у значення vim"
msgid "E265: $_ must be an instance of String"
msgstr "E265: $_ має бути екземпляром String"
@@ -2942,8 +2932,7 @@ msgid "Garbage after option argument"
msgstr "Сміття після аргументу опції"
msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
msgstr ""
"Забагато аргументів у «+команда», «-c команда» або «--cmd команда»"
msgstr "Забагато аргументів у «+команда», «-c команда» або «--cmd команда»"
# msgstr "E14: "
msgid "Invalid argument for"
@@ -3483,8 +3472,7 @@ msgstr "E302: Не вдалося перейменувати файлу обмі
# msgstr "E302: "
#, c-format
msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
msgstr ""
"E303: Не вдалося прочитати файл обміну для «%s», відновлення неможливе"
msgstr "E303: Не вдалося прочитати файл обміну для «%s», відновлення неможливе"
msgid "E304: ml_upd_block0(): Didn't get block 0??"
msgstr "E304: ml_upd_block0(): Немає блоку 0??"
@@ -4092,13 +4080,6 @@ msgstr " (Перервано)"
msgid "Beep!"
msgstr "Дзень!"
msgid "Vim: preserving files...\n"
msgstr "Vim: Заготовлюються файли...\n"
#. close all memfiles, without deleting
msgid "Vim: Finished.\n"
msgstr "Vim: Завершено.\n"
msgid "ERROR: "
msgstr "ПОМИЛКА: "
@@ -4628,17 +4609,6 @@ msgstr "E244: Некоректна назва набору символів «%s
msgid "E245: Illegal char '%c' in font name \"%s\""
msgstr "E245: Помилковий символ %c в назві шрифту «%s»"
msgid "Vim: Double signal, exiting\n"
msgstr "Vim: Двічі отримано сигнал, вихід\n"
#, c-format
msgid "Vim: Caught deadly signal %s\n"
msgstr "Vim: Отримано фатальний сигнал (%s)\n"
#, c-format
msgid "Vim: Caught deadly signal\n"
msgstr "Vim: Отримано фатальний сигнал\n"
#, c-format
msgid "Opening the X display took %ld msec"
msgstr "На відкриття дисплею X пішло %ld мілісекунд"
@@ -4861,6 +4831,38 @@ msgstr "E777: Очікується String чи List"
msgid "E369: invalid item in %s%%[]"
msgstr "E369: Некоректний елемент у %s%%[]"
#, c-format
msgid "E769: Missing ] after %s["
msgstr "E769: Бракує ] після %s["
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: Немає пари %s%%("
#, c-format
msgid "E54: Unmatched %s("
msgstr "E54: Немає пари %s("
#, c-format
msgid "E55: Unmatched %s)"
msgstr "E55: Немає пари %s)"
# msgstr "E406: "
msgid "E66: \\z( not allowed here"
msgstr "E66: \\z( тут не дозволено"
# msgstr "E406: "
msgid "E67: \\z1 et al. not allowed here"
msgstr "E67: \\z1 та ін. тут не дозволено"
#, c-format
msgid "E69: Missing ] after %s%%["
msgstr "E69: Пропущено ] після %s%%["
#, c-format
msgid "E70: Empty %s%%[]"
msgstr "E70: %s%%[] порожній"
# msgstr "E382: "
msgid "E339: Pattern too long"
msgstr "E339: Зразок занадто довгий"
@@ -4875,18 +4877,6 @@ msgstr "E51: Забагато %s("
msgid "E52: Unmatched \\z("
msgstr "E52: Немає пари \\z("
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: Немає пари %s%%("
#, c-format
msgid "E54: Unmatched %s("
msgstr "E54: Немає пари %s("
#, c-format
msgid "E55: Unmatched %s)"
msgstr "E55: Немає пари %s)"
#, c-format
msgid "E59: invalid character after %s@"
msgstr "E59: Недозволений символ після %s@"
@@ -4916,25 +4906,9 @@ msgstr "E64: Після %s%c нічого немає"
msgid "E65: Illegal back reference"
msgstr "E65: Некоректне зворотнє посилання"
# msgstr "E406: "
msgid "E66: \\z( not allowed here"
msgstr "E66: \\z( тут не дозволено"
# msgstr "E406: "
msgid "E67: \\z1 et al. not allowed here"
msgstr "E67: \\z1 та ін. тут не дозволено"
msgid "E68: Invalid character after \\z"
msgstr "E68: Неправильний символ після \\z"
#, c-format
msgid "E69: Missing ] after %s%%["
msgstr "E69: Пропущено ] після %s%%["
#, c-format
msgid "E70: Empty %s%%[]"
msgstr "E70: %s%%[] порожній"
#, c-format
msgid "E678: Invalid character after %s%%[dxouU]"
msgstr "E678: Недозволений символ після %s%%[dxouU]"
@@ -4943,10 +4917,6 @@ msgstr "E678: Недозволений символ після %s%%[dxouU]"
msgid "E71: Invalid character after %s%%"
msgstr "E71: Недозволений символ після %s%%"
#, c-format
msgid "E769: Missing ] after %s["
msgstr "E769: Бракує ] після %s["
# msgstr "E64: "
#, c-format
msgid "E554: Syntax error in %s{...}"
@@ -4955,6 +4925,80 @@ msgstr "E554: Синтаксична помилка в %s{...}"
msgid "External submatches:\n"
msgstr "Зовнішні під-збіги:\n"
msgid ""
"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
"used "
msgstr ""
"E864: після \\%#= може бути тільки 0, 1, or 2. Буде використано автоматичний механізм "
#, c-format
msgid "E866: (NFA regexp) Misplaced %c"
msgstr "E866: (NFA regexp) Не на місці %c"
msgid "E865: (NFA) Regexp end encountered prematurely"
msgstr "E865: (NFA) Зарано трапився кінець регулярного виразу"
#, c-format
msgid "E867: (NFA) Unknown operator '\\z%c'"
msgstr "E867: (NFA) Невідомий оператор '\\z%c'"
#, c-format
msgid "E867: (NFA) Unknown operator '\\%%%c'"
msgstr "E867: (NFA) Невідомий оператор '\\%%%c'"
#. should never happen
msgid "E868: Error building NFA with equivalence class!"
msgstr "E868: Не вдалося побудувати NFA з класом еквівалентності!"
#, c-format
msgid "E869: (NFA) Unknown operator '\\@%c'"
msgstr "E869: (NFA) Невідомий оператор '\\@%c'"
msgid "E870: (NFA regexp) Error reading repetition limits"
msgstr "E870: (NFA regexp) Не вдалося прочитати межі повторення"
#. Can't have a multi follow a multi.
msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
msgstr "E871: (NFA regexp) Мульти не може бути за мульти!"
#. Too many `('
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (NFA regexp) Забагато '('"
msgid "E879: (NFA regexp) Too many \\z("
msgstr "E879: (NFA regexp) Забагато \\z("
msgid "E873: (NFA regexp) proper termination error"
msgstr "E873: (NFA regexp) помилка належного припинення"
msgid "E874: (NFA) Could not pop the stack !"
msgstr "E874: (NFA) Стек порожній!"
msgid ""
"E875: (NFA regexp) (While converting from postfix to NFA), too many states "
"left on stack"
msgstr ""
"E875: (NFA regexp) (Під час перетворення з постфікс у NFA) залишилося "
"забагато станів у стеку"
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
msgstr "E876: (NFA regexp) Недостатньо пам’яті, щоб зберегти весь NFA "
msgid "E878: (NFA) Could not allocate memory for branch traversal!"
msgstr "E878: (NFA) Не вдалося отримати пам’ять для обходу гілок!"
msgid ""
"Could not open temporary log file for writing, displaying on stderr ... "
msgstr ""
"Не вдалося відкрити тимчасовий файл журналу для запису, показується на stderr ... "
#, c-format
msgid "(NFA) COULD NOT OPEN %s !"
msgstr "(NFA) НЕ ВДАЛОСЯ ВІДКРИТИ %s!"
msgid "Could not open temporary log file for writing "
msgstr "Не вдалося відкрити тимчасовий файл журналу для запису "
msgid " VREPLACE"
msgstr " ВІРТ ЗАМІНА"
@@ -5110,7 +5154,8 @@ msgstr "E756: Перевірка орфографії не дозволена"
#, c-format
msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""
msgstr "Застереження: Не вдалося знайти список слів «%s_%s.spl» чи «%s_ascii.spl»"
msgstr ""
"Застереження: Не вдалося знайти список слів «%s_%s.spl» чи «%s_ascii.spl»"
#, c-format
msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
@@ -5396,12 +5441,12 @@ msgid "E765: 'spellfile' does not have %ld entries"
msgstr "E765: 'spellfile' не містить %ld елементів"
#, c-format
msgid "Word removed from %s"
msgstr "Слово знищено з %s"
msgid "Word '%.*s' removed from %s"
msgstr "Слово '%.*s' знищено з %s"
#, c-format
msgid "Word added to %s"
msgstr "Слово додано до %s"
msgid "Word '%.*s' added to %s"
msgstr "Слово '%.*s' додано до %s"
msgid "E763: Word characters differ between spell files"
msgstr "E763: Символи у слові відрізняються у файлах орфографії"
@@ -5457,6 +5502,10 @@ msgstr "E782: Помилка читання файлу .sug: %s"
msgid "E783: duplicate char in MAP entry"
msgstr "E783: Повторено символ у елементі MAP"
# msgstr "E391: "
msgid "No Syntax items defined for this buffer"
msgstr "Для буфера не визначено елементів синтаксису"
#, c-format
msgid "E390: Illegal argument: %s"
msgstr "E390: Неправильний аргумент: %s"
@@ -5465,10 +5514,6 @@ msgstr "E390: Неправильний аргумент: %s"
msgid "E391: No such syntax cluster: %s"
msgstr "E391: Немає такого синтаксичного кластера: %s"
# msgstr "E391: "
msgid "No Syntax items defined for this buffer"
msgstr "Для буфера не визначено елементів синтаксису"
msgid "syncing on C-style comments"
msgstr "синхронізується по коментарях стилю С"
@@ -5603,6 +5648,11 @@ msgstr "E409: Невідома назва групи: %s"
msgid "E410: Invalid :syntax subcommand: %s"
msgstr "E410: Неправильна підкоманда :syntax: %s"
msgid ""
" TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN"
msgstr ""
" ВСЬОГО К-ТЬ СПІВП. НАЙПОВІЛ. СЕРЕДН. НАЗВА ШАБЛОН"
msgid "E679: recursive loop loading syncolor.vim"
msgstr "E679: Рекурсивний цикл читання syncolor.vim"
@@ -6734,112 +6784,246 @@ msgstr "Пошук дійшов до КІНЦЯ, продовжується з
msgid "Need encryption key for \"%s\""
msgstr "Для «%s» потрібен ключ: "
msgid "can't delete OutputObject attributes"
msgstr "не вдалося знищити атрибути OutputObject"
msgid "softspace must be an integer"
msgstr "softspace має бути цілим"
# msgstr "E180: "
msgid "invalid attribute"
msgstr "неправильний атрибут"
msgid "writelines() requires list of strings"
msgstr "для writelines() потрібен список рядків"
msgid "E264: Python: Error initialising I/O objects"
msgstr "E264: Python: Помилка ініціалізації об'єктів вводу/виводу"
msgid "no such buffer"
msgstr "такого буфера немає"
# msgstr "E406: "
msgid "empty keys are not allowed"
msgstr "порожні ключі не дозволені"
msgid "failed to add key to dictionary"
msgstr "не вдалося додати ключ до словника"
msgid "Cannot delete DictionaryObject attributes"
msgstr "не вдалося знищити атрибути DictionaryObject"
msgid "Cannot modify fixed dictionary"
msgstr "Не можна змінити фіксований словник"
msgid "Only boolean objects are allowed"
msgstr "Дозволено тільки логічні об’єкти"
msgid "Cannot set this attribute"
msgstr "Не можна встановити цей атрибут"
msgid "no such key in dictionary"
msgstr "немає такого ключа в словнику"
msgid "dict is locked"
msgid "dictionary is locked"
msgstr "словник заблоковано"
msgid "internal error: failed to get vim list item"
msgstr "внутрішня помилка: не вдалося отримати елемент списку vim"
msgid "list is locked"
msgstr "список заблоковано"
msgid "Failed to add item to list"
msgstr "Не вдалося додати елемент до списку"
#, c-format
msgid "failed to add key '%s' to dictionary"
msgstr "не вдалося додати ключ '%s' до словника"
msgid "internal error: no vim list item"
msgstr "внутрішня помилка: немає елемента списку vim"
#, c-format
msgid "index must be int or slice, not %s"
msgstr "індекс має бути цілий чи зріз, не %s"
msgid "can only assign lists to slice"
msgstr "можна присвоювати списки тільки зрізам"
#, c-format
msgid "expected str() or unicode() instance, but got %s"
msgstr "очікувався екземпляр str() чи unicode(), але отримано %s"
#, c-format
msgid "expected bytes() or str() instance, but got %s"
msgstr "очікувався екземпляр bytes() чи str(), але отримано %s"
#, c-format
msgid ""
"expected int(), long() or something supporting coercing to long(), but got %s"
msgstr ""
"очікувався int(), long() чи щось, що може бути вміщене long(), але отримано %s"
#, c-format
msgid "expected int() or something supporting coercing to int(), but got %s"
msgstr "очікувався int() чи щось, що може бути вміщене int(), але отримано %s"
msgid "value is too large to fit into C int type"
msgstr "значення завелике, щоб вміститися у тип C int"
msgid "value is too small to fit into C int type"
msgstr "значення замале, щоб вміститися у тип C int"
msgid "number must be greater then zero"
msgstr "число має бути більше, ніж нуль"
msgid "number must be greater or equal to zero"
msgstr "число має бути не менше, ніж нуль"
msgid "can't delete OutputObject attributes"
msgstr "не вдалося знищити атрибути OutputObject"
# msgstr "E180: "
#, c-format
msgid "invalid attribute: %s"
msgstr "неправильний атрибут: %s"
msgid "E264: Python: Error initialising I/O objects"
msgstr "E264: Python: Помилка ініціалізації об'єктів вводу/виводу"
msgid "failed to change directory"
msgstr "не вдалося змінити директорію"
#, c-format
msgid "expected 3-tuple as imp.find_module() result, but got %s"
msgstr "очікувався 3-кортеж як результат imp.find_module(), але отримано %s"
#, c-format
msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
msgstr "очікувався 3-кортеж як результат imp.find_module(), але отримано %d"
msgid "internal error: imp.find_module returned tuple with NULL"
msgstr "внутрішня помилка: imp.find_module повернула кортеж з NULL"
msgid "cannot delete vim.Dictionary attributes"
msgstr "не вдалося знищити атрибути vim.Dictionary"
msgid "cannot modify fixed dictionary"
msgstr "не можна змінити фіксований словник"
#, c-format
msgid "cannot set attribute %s"
msgstr "не можна встановити атрибут %s"
msgid "hashtab changed during iteration"
msgstr "хеш-таблиця змінилася під час перебирання"
#, c-format
msgid "expected sequence element of size 2, but got sequence of size %d"
msgstr "очікувалась послідовність розміром 2, але отримано послідовність розміру %d"
msgid "list constructor does not accept keyword arguments"
msgstr "списковий конструктор не приймає іменовані аргументи"
msgid "list index out of range"
msgstr "індекс списку за межами"
#. No more suitable format specifications in python-2.3
#, c-format
msgid "internal error: failed to get vim list item %d"
msgstr "внутрішня помилка: не вдалося отримати елемент списку vim %d"
msgid "failed to add item to list"
msgstr "не вдалося додати елемент до списку"
#, c-format
msgid "internal error: no vim list item %d"
msgstr "внутрішня помилка: немає елемента списку vim %d"
msgid "internal error: failed to add item to list"
msgstr "внутрішня помилка: не вдалося додати елемент до списку"
msgid "can only concatenate with lists"
msgstr "можна з’єднувати тільки зі списками"
msgid "cannot delete vim.List attributes"
msgstr "не вдалося знищити атрибути vim.List"
msgid "Cannot modify fixed list"
msgstr "Не можна змінити фіксований список"
msgid "cannot modify fixed list"
msgstr "не можна змінити фіксований список"
msgid "'self' argument must be a dictionary"
msgstr "Аргумент «self» має бути словником"
# msgstr "E428: "
#, c-format
msgid "unnamed function %s does not exist"
msgstr "безіменної функції %s не існує"
msgid "failed to run function"
msgstr "Не вдалося виконати функцію"
# msgstr "E428: "
#, c-format
msgid "function %s does not exist"
msgstr "функції %s не існує"
msgid "function constructor does not accept keyword arguments"
msgstr "конструктор функції не приймає іменовані аргументи"
#, c-format
msgid "failed to run function %s"
msgstr "не вдалося виконати функцію %s"
msgid "unable to get option value"
msgstr "не вдалося отримати значення опції"
msgid "internal error: unknown option type"
msgstr "внутрішня помилка: невідомий тип опції"
msgid "problem while switching windows"
msgstr "не вдалося перемкнути вікна"
#, c-format
msgid "unable to unset global option %s"
msgstr "не вдалося скинути глобальну опцію %s"
#, c-format
msgid "unable to unset option %s which does not have global value"
msgstr "не вдалося скинути опцію %s, яка не має глобального значення"
msgid "attempt to refer to deleted tab page"
msgstr "спроба звернення до знищеної вкладки"
msgid "no such tab page"
msgstr "такої вкладки немає"
msgid "attempt to refer to deleted window"
msgstr "спроба звернутися до знищеного вікна"
msgid "readonly attribute"
msgstr "лише для читання"
msgid "readonly attribute: buffer"
msgstr "атрибут лише для читання: буфер"
msgid "cursor position outside buffer"
msgstr "курсор за межами буфера"
#, c-format
msgid "<window object (deleted) at %p>"
msgstr "<об'єкт вікна (знищено) за адресою %p>"
#, c-format
msgid "<window object (unknown) at %p>"
msgstr "<об'єкт вікна (невідомий) за адресою %p>"
#, c-format
msgid "<window %d>"
msgstr "<вікно %d>"
msgid "no such window"
msgstr "такого вікна немає"
msgid "attempt to refer to deleted buffer"
msgstr "спроба звернення до знищеного буфера"
msgid "unable to convert to vim structure"
msgstr "не вдалося перетворити до структури vim"
msgid "failed to rename buffer"
msgstr "не вдалося перейменувати буфер"
msgid "NULL reference passed"
msgstr "передано посилання NULL"
msgid "mark name must be a single character"
msgstr "назвою мітки має бути один символ"
#, c-format
msgid "expected vim.Buffer object, but got %s"
msgstr "очікувався об’єкт vim.Buffer, але отримано %s"
#, c-format
msgid "failed to switch to buffer %d"
msgstr "не вдалося перемкнутися до буфера %d"
#, c-format
msgid "expected vim.Window object, but got %s"
msgstr "очікувався об’єкт vim.Window, але отримано %s"
msgid "failed to find window in the current tab page"
msgstr "не вдалося знайти вікно у поточній вкладці"
msgid "did not switch to the specified window"
msgstr "не перемкнувся до вказаного вікна"
#, c-format
msgid "expected vim.TabPage object, but got %s"
msgstr "очікувався об’єкт vim.TabPage, але отримано %s"
msgid "did not switch to the specified tab page"
msgstr "не перемкнувся до вказаної вкладки"
msgid "failed to run the code"
msgstr "не вдалося виконати код"
msgid "E858: Eval did not return a valid python object"
msgstr "E858: Eval не повернув дійсний об’єкт python"
msgid "E859: Failed to convert returned python object to vim value"
msgstr "E859: Не вдалося перетворити об’єкт python у значення vim"
#, c-format
msgid "unable to convert %s to vim dictionary"
msgstr "не вдалося перетворити %s у словник vim"
#, c-format
msgid "unable to convert %s to vim structure"
msgstr "не вдалося перетворити %s у структуру vim"
msgid "internal error: NULL reference passed"
msgstr "внутрішня помилка: передано посилання NULL"
msgid "internal error: invalid value type"
msgstr "внутрішня помилка: неправильний тип значення"
msgid ""
"Failed to set path hook: sys.path_hooks is not a list\n"
"You should now do the following:\n"
"- append vim.path_hook to sys.path_hooks\n"
"- append vim.VIM_SPECIAL_PATH to sys.path\n"
msgstr ""
"Не вдалося встановити обробник шляху: sys.path_hooks не список\n"
"Вам слід вчинити так:\n"
"- додайте vim.path_hook до sys.path_hooks\n"
"- додайте vim.VIM_SPECIAL_PATH до sys.path\n"
msgid ""
"Failed to set path: sys.path is not a list\n"
"You should now append vim.VIM_SPECIAL_PATH to sys.path"
msgstr ""
"Не вдалося встановити шлях: sys.path не список\n"
"Вас слід додати vim.VIM_SPECIAL_PATH до sys.path"
+3
View File
@@ -236,3 +236,6 @@ gui_mch_register_sign(char_u *signfile);
void
gui_mch_destroy_sign(void *sign);
void *gui_macvim_new_autoreleasepool();
void gui_macvim_release_autoreleasepool(void *pool);
+1 -1
View File
@@ -35,7 +35,7 @@ void settmode __ARGS((int tmode));
void starttermcap __ARGS((void));
void stoptermcap __ARGS((void));
void may_req_termresponse __ARGS((void));
void may_req_ambiguous_character_width __ARGS((void));
void may_req_ambiguous_char_width __ARGS((void));
int swapping_screen __ARGS((void));
void setmouse __ARGS((void));
int mouse_has __ARGS((int c));
+1 -1
View File
@@ -9,7 +9,7 @@ void win_move_after __ARGS((win_T *win1, win_T *win2));
void win_equal __ARGS((win_T *next_curwin, int current, int dir));
void close_windows __ARGS((buf_T *buf, int keep_curwin));
int one_window __ARGS((void));
void win_close __ARGS((win_T *win, int free_buf));
int win_close __ARGS((win_T *win, int free_buf));
void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
void win_free_all __ARGS((void));
win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
+5 -6
View File
@@ -4311,8 +4311,8 @@ regmatch(scan)
*/
for (;;)
{
/* Some patterns may cause a long time to match, even though they are not
* illegal. E.g., "\([a-z]\+\)\+Q". Allow breaking them with CTRL-C. */
/* Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q".
* Allow interrupting them with CTRL-C. */
fast_breakcheck();
#ifdef DEBUG
@@ -8016,12 +8016,11 @@ vim_regcomp(expr_arg, re_flags)
}
#endif
/*
* If NFA engine failed, then revert to the backtracking engine.
* Except when there was a syntax error, which was properly handled by
* NFA engine.
*/
* If the NFA engine failed, the backtracking engine won't work either.
*
if (regexp_engine == AUTOMATIC_ENGINE)
prog = bt_regengine.regcomp(expr, re_flags);
*/
}
return prog;
+447 -77
View File
@@ -29,11 +29,14 @@
# define NFA_REGEXP_DEBUG_LOG "nfa_regexp_debug.log"
#endif
/* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */
#define NFA_ADD_NL 31
enum
{
NFA_SPLIT = -1024,
NFA_MATCH,
NFA_SKIP_CHAR, /* matches a 0-length char */
NFA_EMPTY, /* matches 0-length */
NFA_START_COLL, /* [abc] start */
NFA_END_COLL, /* [abc] end */
@@ -183,6 +186,13 @@ enum
NFA_NLOWER, /* Match non-lowercase char */
NFA_UPPER, /* Match uppercase char */
NFA_NUPPER, /* Match non-uppercase char */
NFA_LOWER_IC, /* Match [a-z] */
NFA_NLOWER_IC, /* Match [^a-z] */
NFA_UPPER_IC, /* Match [A-Z] */
NFA_NUPPER_IC, /* Match [^A-Z] */
NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL,
NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL,
NFA_CURSOR, /* Match cursor pos */
NFA_LNUM, /* Match line number */
@@ -199,9 +209,6 @@ enum
NFA_MARK_LT, /* Match < mark */
NFA_VISUAL, /* Match Visual area */
NFA_FIRST_NL = NFA_ANY + ADD_NL,
NFA_LAST_NL = NFA_NUPPER + ADD_NL,
/* Character classes [:alnum:] etc */
NFA_CLASS_ALNUM,
NFA_CLASS_ALPHA,
@@ -578,6 +585,8 @@ realloc_post_list()
* On failure, return 0 (=FAIL)
* Start points to the first char of the range, while end should point
* to the closing brace.
* Keep in mind that 'ignorecase' applies at execution time, thus [a-z] may
* need to be interpreted as [a-zA-Z].
*/
static int
nfa_recognize_char_class(start, end, extra_newl)
@@ -681,7 +690,7 @@ nfa_recognize_char_class(start, end, extra_newl)
return FAIL;
if (newl == TRUE)
extra_newl = ADD_NL;
extra_newl = NFA_ADD_NL;
switch (config)
{
@@ -710,13 +719,13 @@ nfa_recognize_char_class(start, end, extra_newl)
case CLASS_not | CLASS_az | CLASS_AZ:
return extra_newl + NFA_NALPHA;
case CLASS_az:
return extra_newl + NFA_LOWER;
return extra_newl + NFA_LOWER_IC;
case CLASS_not | CLASS_az:
return extra_newl + NFA_NLOWER;
return extra_newl + NFA_NLOWER_IC;
case CLASS_AZ:
return extra_newl + NFA_UPPER;
return extra_newl + NFA_UPPER_IC;
case CLASS_not | CLASS_AZ:
return extra_newl + NFA_NUPPER;
return extra_newl + NFA_NUPPER_IC;
}
return FAIL;
}
@@ -733,7 +742,12 @@ nfa_recognize_char_class(start, end, extra_newl)
nfa_emit_equi_class(c)
int c;
{
#define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT);
#define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT);
#ifdef FEAT_MBYTE
# define EMITMBC(c) EMIT(c); EMIT(NFA_CONCAT);
#else
# define EMITMBC(c)
#endif
#ifdef FEAT_MBYTE
if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
@@ -744,92 +758,338 @@ nfa_emit_equi_class(c)
{
case 'A': case 0300: case 0301: case 0302:
case 0303: case 0304: case 0305:
EMIT2('A'); EMIT2(0300); EMIT2(0301);
EMIT2(0302); EMIT2(0303); EMIT2(0304);
EMIT2(0305);
CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd)
CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2)
EMIT2('A'); EMIT2(0300); EMIT2(0301); EMIT2(0302);
EMIT2(0303); EMIT2(0304); EMIT2(0305);
EMITMBC(0x100) EMITMBC(0x102) EMITMBC(0x104)
EMITMBC(0x1cd) EMITMBC(0x1de) EMITMBC(0x1e0)
EMITMBC(0x1ea2)
return OK;
case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06)
EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06)
return OK;
case 'C': case 0307:
EMIT2('C'); EMIT2(0307);
CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c)
EMIT2('C'); EMIT2(0307); EMITMBC(0x106) EMITMBC(0x108)
EMITMBC(0x10a) EMITMBC(0x10c)
return OK;
case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a)
CASEMBC(0x1e0e) CASEMBC(0x1e10)
EMIT2('D'); EMITMBC(0x10e) EMITMBC(0x110) EMITMBC(0x1e0a)
EMITMBC(0x1e0e) EMITMBC(0x1e10)
return OK;
case 'E': case 0310: case 0311: case 0312: case 0313:
EMIT2('E'); EMIT2(0310); EMIT2(0311);
EMIT2(0312); EMIT2(0313);
CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118)
CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc)
EMIT2('E'); EMIT2(0310); EMIT2(0311); EMIT2(0312);
EMIT2(0313);
EMITMBC(0x112) EMITMBC(0x114) EMITMBC(0x116)
EMITMBC(0x118) EMITMBC(0x11a) EMITMBC(0x1eba)
EMITMBC(0x1ebc)
return OK;
case 'F': CASEMBC(0x1e1e)
EMIT2('F'); EMITMBC(0x1e1e)
return OK;
case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120)
CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4)
CASEMBC(0x1e20)
EMIT2('G'); EMITMBC(0x11c) EMITMBC(0x11e) EMITMBC(0x120)
EMITMBC(0x122) EMITMBC(0x1e4) EMITMBC(0x1e6)
EMITMBC(0x1f4) EMITMBC(0x1e20)
return OK;
case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22)
CASEMBC(0x1e26) CASEMBC(0x1e28)
EMIT2('H'); EMITMBC(0x124) EMITMBC(0x126) EMITMBC(0x1e22)
EMITMBC(0x1e26) EMITMBC(0x1e28)
return OK;
case 'I': case 0314: case 0315: case 0316: case 0317:
EMIT2('I'); EMIT2(0314); EMIT2(0315);
EMIT2(0316); EMIT2(0317);
CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e)
CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8)
EMIT2('I'); EMIT2(0314); EMIT2(0315); EMIT2(0316);
EMIT2(0317); EMITMBC(0x128) EMITMBC(0x12a)
EMITMBC(0x12c) EMITMBC(0x12e) EMITMBC(0x130)
EMITMBC(0x1cf) EMITMBC(0x1ec8)
return OK;
case 'J': CASEMBC(0x134)
EMIT2('J'); EMITMBC(0x134)
return OK;
case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30)
CASEMBC(0x1e34)
EMIT2('K'); EMITMBC(0x136) EMITMBC(0x1e8) EMITMBC(0x1e30)
EMITMBC(0x1e34)
return OK;
case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d)
CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a)
EMIT2('L'); EMITMBC(0x139) EMITMBC(0x13b) EMITMBC(0x13d)
EMITMBC(0x13f) EMITMBC(0x141) EMITMBC(0x1e3a)
return OK;
case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40)
EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40)
return OK;
case 'N': case 0321:
EMIT2('N'); EMIT2(0321);
CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44)
CASEMBC(0x1e48)
EMIT2('N'); EMIT2(0321); EMITMBC(0x143) EMITMBC(0x145)
EMITMBC(0x147) EMITMBC(0x1e44) EMITMBC(0x1e48)
return OK;
case 'O': case 0322: case 0323: case 0324: case 0325:
case 0326:
EMIT2('O'); EMIT2(0322); EMIT2(0323);
EMIT2(0324); EMIT2(0325); EMIT2(0326);
case 0326: case 0330:
CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0)
CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece)
EMIT2('O'); EMIT2(0322); EMIT2(0323); EMIT2(0324);
EMIT2(0325); EMIT2(0326); EMIT2(0330);
EMITMBC(0x14c) EMITMBC(0x14e) EMITMBC(0x150)
EMITMBC(0x1a0) EMITMBC(0x1d1) EMITMBC(0x1ea)
EMITMBC(0x1ec) EMITMBC(0x1ece)
return OK;
case 'P': case 0x1e54: case 0x1e56:
EMIT2('P'); EMITMBC(0x1e54) EMITMBC(0x1e56)
return OK;
case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158)
CASEMBC(0x1e58) CASEMBC(0x1e5e)
EMIT2('R'); EMITMBC(0x154) EMITMBC(0x156) EMITMBC(0x158)
EMITMBC(0x1e58) EMITMBC(0x1e5e)
return OK;
case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e)
CASEMBC(0x160) CASEMBC(0x1e60)
EMIT2('S'); EMITMBC(0x15a) EMITMBC(0x15c) EMITMBC(0x15e)
EMITMBC(0x160) EMITMBC(0x1e60)
return OK;
case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166)
CASEMBC(0x1e6a) CASEMBC(0x1e6e)
EMIT2('T'); EMITMBC(0x162) EMITMBC(0x164) EMITMBC(0x166)
EMITMBC(0x1e6a) EMITMBC(0x1e6e)
return OK;
case 'U': case 0331: case 0332: case 0333: case 0334:
EMIT2('U'); EMIT2(0331); EMIT2(0332);
EMIT2(0333); EMIT2(0334);
CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e)
CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3)
CASEMBC(0x1ee6)
EMIT2('U'); EMIT2(0331); EMIT2(0332); EMIT2(0333);
EMIT2(0334); EMITMBC(0x168) EMITMBC(0x16a)
EMITMBC(0x16c) EMITMBC(0x16e) EMITMBC(0x170)
EMITMBC(0x172) EMITMBC(0x1af) EMITMBC(0x1d3)
EMITMBC(0x1ee6)
return OK;
case 'V': CASEMBC(0x1e7c)
EMIT2('V'); EMITMBC(0x1e7c)
return OK;
case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82)
CASEMBC(0x1e84) CASEMBC(0x1e86)
EMIT2('W'); EMITMBC(0x174) EMITMBC(0x1e80) EMITMBC(0x1e82)
EMITMBC(0x1e84) EMITMBC(0x1e86)
return OK;
case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c)
EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c)
return OK;
case 'Y': case 0335:
EMIT2('Y'); EMIT2(0335);
CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2)
CASEMBC(0x1ef6) CASEMBC(0x1ef8)
EMIT2('Y'); EMIT2(0335); EMITMBC(0x176) EMITMBC(0x178)
EMITMBC(0x1e8e) EMITMBC(0x1ef2) EMITMBC(0x1ef6)
EMITMBC(0x1ef8)
return OK;
case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d)
CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94)
EMIT2('Z'); EMITMBC(0x179) EMITMBC(0x17b) EMITMBC(0x17d)
EMITMBC(0x1b5) EMITMBC(0x1e90) EMITMBC(0x1e94)
return OK;
case 'a': case 0340: case 0341: case 0342:
case 0343: case 0344: case 0345:
EMIT2('a'); EMIT2(0340); EMIT2(0341);
EMIT2(0342); EMIT2(0343); EMIT2(0344);
EMIT2(0345);
CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce)
CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3)
EMIT2('a'); EMIT2(0340); EMIT2(0341); EMIT2(0342);
EMIT2(0343); EMIT2(0344); EMIT2(0345);
EMITMBC(0x101) EMITMBC(0x103) EMITMBC(0x105)
EMITMBC(0x1ce) EMITMBC(0x1df) EMITMBC(0x1e1)
EMITMBC(0x1ea3)
return OK;
case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07)
EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07)
return OK;
case 'c': case 0347:
EMIT2('c'); EMIT2(0347);
CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d)
EMIT2('c'); EMIT2(0347); EMITMBC(0x107) EMITMBC(0x109)
EMITMBC(0x10b) EMITMBC(0x10d)
return OK;
case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b)
CASEMBC(0x1e11)
EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b)
EMITMBC(0x01e0f) EMITMBC(0x1e11)
return OK;
case 'e': case 0350: case 0351: case 0352: case 0353:
EMIT2('e'); EMIT2(0350); EMIT2(0351);
EMIT2(0352); EMIT2(0353);
CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119)
CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd)
EMIT2('e'); EMIT2(0350); EMIT2(0351); EMIT2(0352);
EMIT2(0353); EMITMBC(0x113) EMITMBC(0x115)
EMITMBC(0x117) EMITMBC(0x119) EMITMBC(0x11b)
EMITMBC(0x1ebb) EMITMBC(0x1ebd)
return OK;
case 'f': CASEMBC(0x1e1f)
EMIT2('f'); EMITMBC(0x1e1f)
return OK;
case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121)
CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5)
CASEMBC(0x1e21)
EMIT2('g'); EMITMBC(0x11d) EMITMBC(0x11f) EMITMBC(0x121)
EMITMBC(0x123) EMITMBC(0x1e5) EMITMBC(0x1e7)
EMITMBC(0x1f5) EMITMBC(0x1e21)
return OK;
case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23)
CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96)
EMIT2('h'); EMITMBC(0x125) EMITMBC(0x127) EMITMBC(0x1e23)
EMITMBC(0x1e27) EMITMBC(0x1e29) EMITMBC(0x1e96)
return OK;
case 'i': case 0354: case 0355: case 0356: case 0357:
EMIT2('i'); EMIT2(0354); EMIT2(0355);
EMIT2(0356); EMIT2(0357);
CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f)
CASEMBC(0x1d0) CASEMBC(0x1ec9)
EMIT2('i'); EMIT2(0354); EMIT2(0355); EMIT2(0356);
EMIT2(0357); EMITMBC(0x129) EMITMBC(0x12b)
EMITMBC(0x12d) EMITMBC(0x12f) EMITMBC(0x1d0)
EMITMBC(0x1ec9)
return OK;
case 'j': CASEMBC(0x135) CASEMBC(0x1f0)
EMIT2('j'); EMITMBC(0x135) EMITMBC(0x1f0)
return OK;
case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31)
CASEMBC(0x1e35)
EMIT2('k'); EMITMBC(0x137) EMITMBC(0x1e9) EMITMBC(0x1e31)
EMITMBC(0x1e35)
return OK;
case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e)
CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b)
EMIT2('l'); EMITMBC(0x13a) EMITMBC(0x13c) EMITMBC(0x13e)
EMITMBC(0x140) EMITMBC(0x142) EMITMBC(0x1e3b)
return OK;
case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41)
EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41)
return OK;
case 'n': case 0361:
EMIT2('n'); EMIT2(0361);
CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149)
CASEMBC(0x1e45) CASEMBC(0x1e49)
EMIT2('n'); EMIT2(0361); EMITMBC(0x144) EMITMBC(0x146)
EMITMBC(0x148) EMITMBC(0x149) EMITMBC(0x1e45)
EMITMBC(0x1e49)
return OK;
case 'o': case 0362: case 0363: case 0364: case 0365:
case 0366:
EMIT2('o'); EMIT2(0362); EMIT2(0363);
EMIT2(0364); EMIT2(0365); EMIT2(0366);
case 0366: case 0370:
CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1)
CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf)
EMIT2('o'); EMIT2(0362); EMIT2(0363); EMIT2(0364);
EMIT2(0365); EMIT2(0366); EMIT2(0370);
EMITMBC(0x14d) EMITMBC(0x14f) EMITMBC(0x151)
EMITMBC(0x1a1) EMITMBC(0x1d2) EMITMBC(0x1eb)
EMITMBC(0x1ed) EMITMBC(0x1ecf)
return OK;
case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57)
EMIT2('p'); EMITMBC(0x1e55) EMITMBC(0x1e57)
return OK;
case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159)
CASEMBC(0x1e59) CASEMBC(0x1e5f)
EMIT2('r'); EMITMBC(0x155) EMITMBC(0x157) EMITMBC(0x159)
EMITMBC(0x1e59) EMITMBC(0x1e5f)
return OK;
case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f)
CASEMBC(0x161) CASEMBC(0x1e61)
EMIT2('s'); EMITMBC(0x15b) EMITMBC(0x15d) EMITMBC(0x15f)
EMITMBC(0x161) EMITMBC(0x1e61)
return OK;
case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167)
CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97)
EMIT2('t'); EMITMBC(0x163) EMITMBC(0x165) EMITMBC(0x167)
EMITMBC(0x1e6b) EMITMBC(0x1e6f) EMITMBC(0x1e97)
return OK;
case 'u': case 0371: case 0372: case 0373: case 0374:
EMIT2('u'); EMIT2(0371); EMIT2(0372);
EMIT2(0373); EMIT2(0374);
CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f)
CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4)
CASEMBC(0x1ee7)
EMIT2('u'); EMIT2(0371); EMIT2(0372); EMIT2(0373);
EMIT2(0374); EMITMBC(0x169) EMITMBC(0x16b)
EMITMBC(0x16d) EMITMBC(0x16f) EMITMBC(0x171)
EMITMBC(0x173) EMITMBC(0x1b0) EMITMBC(0x1d4)
EMITMBC(0x1ee7)
return OK;
case 'v': CASEMBC(0x1e7d)
EMIT2('v'); EMITMBC(0x1e7d)
return OK;
case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83)
CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98)
EMIT2('w'); EMITMBC(0x175) EMITMBC(0x1e81) EMITMBC(0x1e83)
EMITMBC(0x1e85) EMITMBC(0x1e87) EMITMBC(0x1e98)
return OK;
case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d)
EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d)
return OK;
case 'y': case 0375: case 0377:
EMIT2('y'); EMIT2(0375); EMIT2(0377);
CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99)
CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9)
EMIT2('y'); EMIT2(0375); EMIT2(0377); EMITMBC(0x177)
EMITMBC(0x1e8f) EMITMBC(0x1e99) EMITMBC(0x1ef3)
EMITMBC(0x1ef7) EMITMBC(0x1ef9)
return OK;
default:
return FAIL;
case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e)
CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95)
EMIT2('z'); EMITMBC(0x17a) EMITMBC(0x17c) EMITMBC(0x17e)
EMITMBC(0x1b6) EMITMBC(0x1e91) EMITMBC(0x1e95)
return OK;
/* default: character itself */
}
}
EMIT(c);
EMIT2(c);
return OK;
#undef EMIT2
#undef EMITMBC
}
/*
@@ -914,7 +1174,7 @@ nfa_regatom()
break;
}
extra = ADD_NL;
extra = NFA_ADD_NL;
/* "\_[" is collection plus newline */
if (c == '[')
@@ -970,7 +1230,7 @@ nfa_regatom()
}
#endif
EMIT(nfa_classcodes[p - classchars]);
if (extra == ADD_NL)
if (extra == NFA_ADD_NL)
{
EMIT(NFA_NEWL);
EMIT(NFA_OR);
@@ -1123,8 +1383,9 @@ nfa_regatom()
EMSG2_RET_FAIL(
_("E678: Invalid character after %s%%[dxouU]"),
reg_magic == MAGIC_ALL);
/* A NUL is stored in the text as NL */
/* TODO: what if a composing character follows? */
EMIT(nr);
EMIT(nr == 0 ? 0x0a : nr);
}
break;
@@ -1240,21 +1501,21 @@ collection:
{
/*
* Try to reverse engineer character classes. For example,
* recognize that [0-9] stands for \d and [A-Za-z_] with \h,
* recognize that [0-9] stands for \d and [A-Za-z_] for \h,
* and perform the necessary substitutions in the NFA.
*/
result = nfa_recognize_char_class(regparse, endp,
extra == ADD_NL);
extra == NFA_ADD_NL);
if (result != FAIL)
{
if (result >= NFA_DIGIT && result <= NFA_NUPPER)
EMIT(result);
else /* must be char class + newline */
if (result >= NFA_FIRST_NL && result <= NFA_LAST_NL)
{
EMIT(result - ADD_NL);
EMIT(result - NFA_ADD_NL);
EMIT(NFA_NEWL);
EMIT(NFA_OR);
}
else
EMIT(result);
regparse = endp;
mb_ptr_adv(regparse);
return OK;
@@ -1504,7 +1765,7 @@ collection:
* collection, add an OR below. But not for negated
* range. */
if (!negated)
extra = ADD_NL;
extra = NFA_ADD_NL;
}
else
{
@@ -1537,7 +1798,7 @@ collection:
EMIT(NFA_END_COLL);
/* \_[] also matches \n but it's not negated */
if (extra == ADD_NL)
if (extra == NFA_ADD_NL)
{
EMIT(reg_string ? NL : NFA_NEWL);
EMIT(NFA_OR);
@@ -1744,8 +2005,8 @@ nfa_regpiece()
{
/* Ignore result of previous call to nfa_regatom() */
post_ptr = post_start + my_post_start;
/* NFA_SKIP_CHAR has 0-length and works everywhere */
EMIT(NFA_SKIP_CHAR);
/* NFA_EMPTY is 0-length and works everywhere */
EMIT(NFA_EMPTY);
return OK;
}
@@ -1909,16 +2170,16 @@ nfa_regbranch()
old_post_pos = (int)(post_ptr - post_start);
if (nfa_regconcat() == FAIL)
return FAIL;
/* if concat is empty, skip a input char. But do emit a node */
/* if concat is empty do emit a node */
if (old_post_pos == (int)(post_ptr - post_start))
EMIT(NFA_SKIP_CHAR);
EMIT(NFA_EMPTY);
EMIT(NFA_CONCAT);
ch = peekchr();
}
/* Even if a branch is empty, emit one node for it */
/* if a branch is empty, emit one node for it */
if (old_post_pos == (int)(post_ptr - post_start))
EMIT(NFA_SKIP_CHAR);
EMIT(NFA_EMPTY);
return OK;
}
@@ -2011,7 +2272,7 @@ nfa_set_code(c)
if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
{
addnl = TRUE;
c -= ADD_NL;
c -= NFA_ADD_NL;
}
STRCPY(code, "");
@@ -2162,7 +2423,7 @@ nfa_set_code(c)
case NFA_STAR_NONGREEDY: STRCPY(code, "NFA_STAR_NONGREEDY "); break;
case NFA_QUEST: STRCPY(code, "NFA_QUEST"); break;
case NFA_QUEST_NONGREEDY: STRCPY(code, "NFA_QUEST_NON_GREEDY"); break;
case NFA_SKIP_CHAR: STRCPY(code, "NFA_SKIP_CHAR"); break;
case NFA_EMPTY: STRCPY(code, "NFA_EMPTY"); break;
case NFA_OR: STRCPY(code, "NFA_OR"); break;
case NFA_START_COLL: STRCPY(code, "NFA_START_COLL"); break;
@@ -2217,6 +2478,10 @@ nfa_set_code(c)
case NFA_NLOWER:STRCPY(code, "NFA_NLOWER"); break;
case NFA_UPPER: STRCPY(code, "NFA_UPPER"); break;
case NFA_NUPPER:STRCPY(code, "NFA_NUPPER"); break;
case NFA_LOWER_IC: STRCPY(code, "NFA_LOWER_IC"); break;
case NFA_NLOWER_IC: STRCPY(code, "NFA_NLOWER_IC"); break;
case NFA_UPPER_IC: STRCPY(code, "NFA_UPPER_IC"); break;
case NFA_NUPPER_IC: STRCPY(code, "NFA_NUPPER_IC"); break;
default:
STRCPY(code, "CHAR(x)");
@@ -2687,6 +2952,10 @@ nfa_max_width(startstate, depth)
case NFA_NLOWER:
case NFA_UPPER:
case NFA_NUPPER:
case NFA_LOWER_IC:
case NFA_NLOWER_IC:
case NFA_UPPER_IC:
case NFA_NUPPER_IC:
/* possibly non-ascii */
#ifdef FEAT_MBYTE
if (has_mbyte)
@@ -2798,7 +3067,7 @@ nfa_max_width(startstate, depth)
case NFA_ZSTART:
case NFA_ZEND:
case NFA_OPT_CHARS:
case NFA_SKIP_CHAR:
case NFA_EMPTY:
case NFA_START_PATTERN:
case NFA_END_PATTERN:
case NFA_COMPOSING:
@@ -2996,15 +3265,14 @@ post2nfa(postfix, end, nfa_calc_size)
PUSH(frag(e1.start, e2.out));
break;
case NFA_SKIP_CHAR:
/* Symbol of 0-length, Used in a repetition
* with max/min count of 0 */
case NFA_EMPTY:
/* 0-length, used in a repetition with max/min count of 0 */
if (nfa_calc_size == TRUE)
{
nstate++;
break;
}
s = alloc_state(NFA_SKIP_CHAR, NULL, NULL);
s = alloc_state(NFA_EMPTY, NULL, NULL);
if (s == NULL)
goto theend;
PUSH(frag(s, list1(&s->out)));
@@ -3554,6 +3822,7 @@ static void copy_pim __ARGS((nfa_pim_T *to, nfa_pim_T *from));
static void clear_sub __ARGS((regsub_T *sub));
static void copy_sub __ARGS((regsub_T *to, regsub_T *from));
static void copy_sub_off __ARGS((regsub_T *to, regsub_T *from));
static void copy_ze_off __ARGS((regsub_T *to, regsub_T *from));
static int sub_equal __ARGS((regsub_T *sub1, regsub_T *sub2));
static int match_backref __ARGS((regsub_T *sub, int subidx, int *bytelen));
static int has_state_with_pos __ARGS((nfa_list_T *l, nfa_state_T *state, regsubs_T *subs, nfa_pim_T *pim));
@@ -3640,6 +3909,29 @@ copy_sub_off(to, from)
}
}
/*
* Like copy_sub() but only do the end of the main match if \ze is present.
*/
static void
copy_ze_off(to, from)
regsub_T *to;
regsub_T *from;
{
if (nfa_has_zend)
{
if (REG_MULTI)
{
if (from->list.multi[0].end.lnum >= 0)
to->list.multi[0].end = from->list.multi[0].end;
}
else
{
if (from->list.line[0].end != NULL)
to->list.line[0].end = from->list.line[0].end;
}
}
}
/*
* Return TRUE if "sub1" and "sub2" have the same start positions.
*/
@@ -3765,6 +4057,9 @@ pim_equal(one, two)
if (two_unused)
/* one is used and two is not: not equal */
return FALSE;
/* compare the state id */
if (one->state->id != two->state->id)
return FALSE;
/* compare the position */
if (REG_MULTI)
return one->end.pos.lnum == two->end.pos.lnum
@@ -3841,6 +4136,10 @@ match_follows(startstate, depth)
case NFA_NLOWER:
case NFA_UPPER:
case NFA_NUPPER:
case NFA_LOWER_IC:
case NFA_NLOWER_IC:
case NFA_UPPER_IC:
case NFA_NUPPER_IC:
case NFA_START_COLL:
case NFA_START_NEG_COLL:
case NFA_NEWL:
@@ -3933,7 +4232,7 @@ addstate(l, state, subs_arg, pim, off)
case NFA_MOPEN:
case NFA_ZEND:
case NFA_SPLIT:
case NFA_SKIP_CHAR:
case NFA_EMPTY:
/* These nodes are not added themselves but their "out" and/or
* "out1" may be added below. */
break;
@@ -4061,7 +4360,7 @@ skip_add:
subs = addstate(l, state->out1, subs, pim, off);
break;
case NFA_SKIP_CHAR:
case NFA_EMPTY:
case NFA_NOPEN:
case NFA_NCLOSE:
subs = addstate(l, state->out, subs, pim, off);
@@ -4096,7 +4395,7 @@ skip_add:
sub = &subs->norm;
}
#ifdef FEAT_SYN_HL
else if (state->c >= NFA_ZOPEN)
else if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
{
subidx = state->c - NFA_ZOPEN;
sub = &subs->synt;
@@ -4165,6 +4464,13 @@ skip_add:
}
subs = addstate(l, state->out, subs, pim, off);
/* "subs" may have changed, need to set "sub" again */
#ifdef FEAT_SYN_HL
if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
sub = &subs->synt;
else
#endif
sub = &subs->norm;
if (save_in_use == -1)
{
@@ -4178,10 +4484,11 @@ skip_add:
break;
case NFA_MCLOSE:
if (nfa_has_zend)
if (nfa_has_zend && (REG_MULTI
? subs->norm.list.multi[0].end.lnum >= 0
: subs->norm.list.line[0].end != NULL))
{
/* Do not overwrite the position set by \ze. If no \ze
* encountered end will be set in nfa_regtry(). */
/* Do not overwrite the position set by \ze. */
subs = addstate(l, state->out, subs, pim, off);
break;
}
@@ -4213,7 +4520,7 @@ skip_add:
sub = &subs->norm;
}
#ifdef FEAT_SYN_HL
else if (state->c >= NFA_ZCLOSE)
else if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
{
subidx = state->c - NFA_ZCLOSE;
sub = &subs->synt;
@@ -4257,6 +4564,13 @@ skip_add:
}
subs = addstate(l, state->out, subs, pim, off);
/* "subs" may have changed, need to set "sub" again */
#ifdef FEAT_SYN_HL
if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
sub = &subs->synt;
else
#endif
sub = &subs->norm;
if (REG_MULTI)
sub->list.multi[subidx].end = save_lpos;
@@ -5018,6 +5332,7 @@ find_match_text(startcol, regstart, match_text)
* When "nfa_endp" is not NULL it is a required end-of-match position.
*
* Return TRUE if there is a match, FALSE otherwise.
* When there is a match "submatch" contains the positions.
* Note: Caller must ensure that: start != NULL.
*/
static int
@@ -5051,6 +5366,12 @@ nfa_regmatch(prog, start, submatch, m)
return FALSE;
}
#endif
/* Some patterns may take a long time to match, especially when using
* recursive_regmatch(). Allow interrupting them with CTRL-C. */
fast_breakcheck();
if (got_int)
return FALSE;
nfa_match = FALSE;
/* Allocate memory for the lists of nodes. */
@@ -5278,7 +5599,10 @@ nfa_regmatch(prog, start, submatch, m)
log_subsexpr(m);
#endif
nfa_match = TRUE;
break;
/* See comment above at "goto nextchar". */
if (nextlist->n == 0)
clen = 0;
goto nextchar;
case NFA_START_INVISIBLE:
case NFA_START_INVISIBLE_FIRST:
@@ -5304,9 +5628,13 @@ nfa_regmatch(prog, start, submatch, m)
{
int in_use = m->norm.in_use;
/* Copy submatch info for the recursive call, so that
* \1 can be matched. */
/* Copy submatch info for the recursive call, opposite
* of what happens on success below. */
copy_sub_off(&m->norm, &t->subs.norm);
#ifdef FEAT_SYN_HL
if (nfa_has_zsubexpr)
copy_sub_off(&m->synt, &t->subs.synt);
#endif
/*
* First try matching the invisible match, then what
@@ -5330,6 +5658,9 @@ nfa_regmatch(prog, start, submatch, m)
if (nfa_has_zsubexpr)
copy_sub_off(&t->subs.synt, &m->synt);
#endif
/* If the pattern has \ze and it matched in the
* sub pattern, use it. */
copy_ze_off(&t->subs.norm, &m->norm);
/* t->state->out1 is the corresponding
* END_INVISIBLE node; Add its out to the current
@@ -5413,6 +5744,13 @@ nfa_regmatch(prog, start, submatch, m)
#endif
break;
}
/* Copy submatch info to the recursive call, opposite of what
* happens afterwards. */
copy_sub_off(&m->norm, &t->subs.norm);
#ifdef FEAT_SYN_HL
if (nfa_has_zsubexpr)
copy_sub_off(&m->synt, &t->subs.synt);
#endif
/* First try matching the pattern. */
result = recursive_regmatch(t->state, NULL, prog,
@@ -5872,6 +6210,28 @@ nfa_regmatch(prog, start, submatch, m)
ADD_STATE_IF_MATCH(t->state);
break;
case NFA_LOWER_IC: /* [a-z] */
result = ri_lower(curc) || (ireg_ic && ri_upper(curc));
ADD_STATE_IF_MATCH(t->state);
break;
case NFA_NLOWER_IC: /* [^a-z] */
result = curc != NUL
&& !(ri_lower(curc) || (ireg_ic && ri_upper(curc)));
ADD_STATE_IF_MATCH(t->state);
break;
case NFA_UPPER_IC: /* [A-Z] */
result = ri_upper(curc) || (ireg_ic && ri_lower(curc));
ADD_STATE_IF_MATCH(t->state);
break;
case NFA_NUPPER_IC: /* ^[A-Z] */
result = curc != NUL
&& !(ri_upper(curc) || (ireg_ic && ri_lower(curc)));
ADD_STATE_IF_MATCH(t->state);
break;
case NFA_BACKREF1:
case NFA_BACKREF2:
case NFA_BACKREF3:
@@ -6098,6 +6458,7 @@ nfa_regmatch(prog, start, submatch, m)
if (add_state != NULL)
{
nfa_pim_T *pim;
nfa_pim_T pim_copy;
if (t->pim.result == NFA_PIM_UNUSED)
pim = NULL;
@@ -6171,6 +6532,15 @@ nfa_regmatch(prog, start, submatch, m)
pim = NULL;
}
/* If "pim" points into l->t it will become invalid when
* adding the state causes the list to be reallocated. Make a
* local copy to avoid that. */
if (pim == &t->pim)
{
copy_pim(&pim_copy, pim);
pim = &pim_copy;
}
if (add_here)
addstate_here(thislist, add_state, &t->subs, pim, &listidx);
else
+5 -2
View File
@@ -1769,6 +1769,9 @@ findmatchlimit(oap, initc, flags, maxtravel)
#endif
pos = curwin->w_cursor;
#ifdef FEAT_VIRTUALEDIT
pos.coladd = 0;
#endif
linep = ml_get(pos.lnum);
cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL);
@@ -4686,8 +4689,8 @@ is_one_char(pattern)
&& regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
&& regmatch.startpos[0].col == regmatch.endpos[0].col);
if (!result && incl(&pos) == 0 && pos.col == regmatch.endpos[0].col)
result = TRUE;
if (!result && inc(&pos) >= 0 && pos.col == regmatch.endpos[0].col)
result = TRUE;
}
called_emsg |= save_called_emsg;
+15 -4
View File
@@ -9479,7 +9479,8 @@ spell_add_word(word, len, bad, idx, undo)
if (undo)
{
home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
smsg((char_u *)_("Word removed from %s"), NameBuff);
smsg((char_u *)_("Word '%.*s' removed from %s"),
len, word, NameBuff);
}
}
fseek(fd, fpos_next, SEEK_SET);
@@ -9525,7 +9526,7 @@ spell_add_word(word, len, bad, idx, undo)
fclose(fd);
home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
smsg((char_u *)_("Word added to %s"), NameBuff);
smsg((char_u *)_("Word '%.*s' added to %s"), len, word, NameBuff);
}
}
@@ -10135,7 +10136,7 @@ spell_check_sps()
}
/*
* "z?": Find badly spelled word under or after the cursor.
* "z=": Find badly spelled word under or after the cursor.
* Give suggestions for the properly spelled word.
* In Visual mode use the highlighted word as the bad word.
* When "count" is non-zero use that suggestion.
@@ -15568,11 +15569,21 @@ ex_spellinfo(eap)
ex_spelldump(eap)
exarg_T *eap;
{
char_u *spl;
long dummy;
if (no_spell_checking(curwin))
return;
get_option_value((char_u*)"spl", &dummy, &spl, OPT_LOCAL);
/* Create a new empty buffer by splitting the window. */
/* Create a new empty buffer in a new window. */
do_cmdline_cmd((char_u *)"new");
/* enable spelling locally in the new window */
set_option_value((char_u*)"spell", TRUE, (char_u*)"", OPT_LOCAL);
set_option_value((char_u*)"spl", dummy, spl, OPT_LOCAL);
vim_free(spl);
if (!bufempty() || !buf_valid(curbuf))
return;
+8 -4
View File
@@ -1797,13 +1797,16 @@ line_read_in:
*/
if (state == TS_START)
{
/* The header ends when the line sorts below "!_TAG_".
* There may be non-header items before the header though,
* e.g. "!" itself. When case is folded lower case letters
* sort before "_". */
/* The header ends when the line sorts below "!_TAG_". When
* case is folded lower case letters sort before "_". */
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
{
if (STRNCMP(lbuf, "!_TAG_", 6) != 0)
/* Non-header item before the header, e.g. "!" itself.
*/
goto parse_line;
/*
* Read header line.
*/
@@ -1898,6 +1901,7 @@ line_read_in:
#endif
}
parse_line:
/*
* Figure out where the different strings are in this line.
* For "normal" tags: Do a quick check if the tag matches.
+1 -1
View File
@@ -3356,7 +3356,7 @@ may_req_termresponse()
* it must be called immediately after entering termcap mode.
*/
void
may_req_ambiguous_character_width()
may_req_ambiguous_char_width()
{
if (u7_status == U7_GET
&& cur_tmode == TMODE_RAW
+3 -1
View File
@@ -33,7 +33,8 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out
test94.out test95.out test96.out test97.out test98.out \
test99.out
.SUFFIXES: .in .out
@@ -148,3 +149,4 @@ test95.out: test95.in
test96.out: test96.in
test97.out: test97.in
test98.out: test98.in
test99.out: test99.in
+1 -1
View File
@@ -32,7 +32,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out
test94.out test95.out test96.out test98.out test99.out
SCRIPTS32 = test50.out test70.out
+1 -1
View File
@@ -52,7 +52,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out
test94.out test95.out test96.out test98.out test99.out
SCRIPTS32 = test50.out test70.out
+1 -1
View File
@@ -34,7 +34,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test98.out
test94.out test95.out test96.out test98.out test99.out
.SUFFIXES: .in .out
+2 -2
View File
@@ -4,7 +4,7 @@
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
# Last change: 2013 Jul 09
# Last change: 2013 Sep 19
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
@@ -78,7 +78,7 @@ SCRIPT = test1.out test2.out test3.out test4.out test5.out \
test77.out test78.out test79.out test80.out test81.out \
test82.out test83.out test84.out test88.out test89.out \
test90.out test91.out test92.out test93.out test94.out \
test95.out test96.out test97.out test98.out
test95.out test96.out test97.out test98.out test99.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
+8 -3
View File
@@ -29,7 +29,8 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
test79.out test80.out test81.out test82.out test83.out \
test84.out test85.out test86.out test87.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
test94.out test95.out test96.out test97.out test98.out
test94.out test95.out test96.out test97.out test98.out \
test99.out
SCRIPTS_GUI = test16.out
@@ -57,9 +58,13 @@ clean:
-rm -rf *.out *.failed *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.*
test1.out: test1.in
-rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START)
-rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize
$(RUN_VIM) $*.in
@/bin/sh -c "if diff test.out $*.ok; \
@/bin/sh -c "if test -e wrongtermsize; \
then echo; \
echo test1 FAILED - terminal size must be 80x24 or larger; \
echo; exit 1; \
elif diff test.out $*.ok; \
then mv -f test.out $*.out; \
else echo; \
echo test1 FAILED - Something basic is wrong; \
+4
View File
@@ -18,6 +18,10 @@ Similar logic is applied to the +mzscheme feature, using mzscheme.vim.
Similar logic is applied to the +lua feature, using lua.vim.
STARTTEST
:" If columns or lines are too small, create wrongtermsize.
:" (Some tests will fail. When columns and/or lines are small)
:if &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
:"
:" Write a single line to test.out to check if testing works at all.
:%d
athis is a test:w! test.out
+8 -2
View File
@@ -9,11 +9,17 @@ G0"ay$k@au
@auY:quit!
GP
/start here$
jjlld
:/here$/,$-1w! test.out
"by$jjlld
/456$
jj"bP
:/56$/,$-1w! test.out
:qa!
ENDTEST
123456
234567
345678
test text test tex start here
some text
test text
+4
View File
@@ -1,3 +1,7 @@
123start here56
234start here67
345start here78
test text test tex rt here
somext
tesext
+3
View File
@@ -36,6 +36,9 @@ kOM
:w Xtest11.one
:w Xtest11.two
OIXA
:" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
:" CTRL-X CTRL-F again to verify this doesn't cause trouble.
OXddk
:se cpt=w
OST
:se cpt=u nohid
+2
View File
@@ -1,9 +1,11 @@
Tests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
See test99 for exactly the same test with re=2.
STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
:set re=1
/^1
/a*b\{2}c\+/e
x/\Md\*e\{2}f\+/e
+6
View File
@@ -46,6 +46,9 @@ vlgnd
:set selection=exclusive
$cgNmongoose/i
cgnj
:" Make sure there is no other match y uppercase.
/x59
gggnd
:/^start:/,/^end:/wq! test.out
ENDTEST
@@ -75,4 +78,7 @@ delete first and last chars
uniquepattern uniquepattern
my very excellent mother just served us nachos
for (i=0; i<=10; i++)
Y
text
Y
end:

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