Compare commits

...

147 Commits

Author SHA1 Message Date
Bram Moolenaar
9f5d600723 updated for version 7.3.1102
Problem:    Completion of ":py3do" and ":py3file" does not work after ":py3".
Solution:   Make completion work. (Taro Muraoka)
2013-06-02 19:22:13 +02:00
Bram Moolenaar
ac499e3116 updated for version 7.3.1101
Problem:    Configure doesn't find Python 3 on Ubuntu 13.04.
Solution:   First try distutils.sysconfig. Also fix some indents.  (Ken
            Takata)
2013-06-02 19:14:17 +02:00
Bram Moolenaar
78b5957439 updated for version 7.3.1100
Problem:    Python: a few more memory problems.
Solution:   Add and remove Py_XDECREF(). (ZyX)
2013-06-02 18:54:21 +02:00
Bram Moolenaar
f4258308e2 updated for version 7.3.1099
Problem:    Python: Changing directory with os.chdir() causes problems for
            Vim's notion of directories.
Solution:   Add vim.chdir() and vim.fchdir(). (ZyX)
2013-06-02 18:20:17 +02:00
Bram Moolenaar
4f2109d782 updated for version 7.3.1098
Problem:    Python: Possible memory leaks
Solution:   Add Py_XDECREF() calls. (ZyX)
2013-06-02 18:07:37 +02:00
Bram Moolenaar
bc41196bdc updated for version 7.3.1097
Problem:    Python: a few recently added items are not documented.
Solution:   Update the documentation. (ZyX)
2013-06-02 17:46:40 +02:00
Bram Moolenaar
de71b5658f updated for version 7.3.1096
Problem:    Python: popitem() was not defined in a standard way.
Solution:   Remove the argument from popitem(). (ZyX)
2013-06-02 17:41:54 +02:00
Bram Moolenaar
525666f282 updated for version 7.3.1095
Problem:    Compiler warnings for shadowed variables. (Christian Brabandt)
Solution:   Rename new_state() to alloc_state().  Remove unnecessary
            declaration.
2013-06-02 16:40:55 +02:00
Bram Moolenaar
307aa16a69 updated for version 7.3.1094
Problem:    New regexp engine: Attempts to match "^" at every character.
Solution:   Only try "^" at the start of a line.
2013-06-02 16:34:21 +02:00
Bram Moolenaar
b122e9798e updated for version 7.3.1093
Problem:    New regexp engine: When a sub expression is empty \1 skips a
            character.
Solution:   Make \1 try the current position when the match is emtpy.
2013-06-02 16:07:10 +02:00
Bram Moolenaar
69afb7bf0a updated for version 7.3.1092
Problem:    Can't build with regexp debugging.  NFA debug output shows wrong
            pattern.
Solution:   Fix debugging code for recent changes.  Add the pattern to the
            program.
2013-06-02 15:55:55 +02:00
Bram Moolenaar
5de820b916 updated for version 7.3.1091
Problem:    New regexp engine: no error when using \z1 or \z( where it does
            not work.
Solution:   Give an error message.
2013-06-02 15:01:57 +02:00
Bram Moolenaar
efb23f26e8 updated for version 7.3.1090
Problem:    New regexp engine does not support \z1 .. \z9 and \z(.
Solution:   Implement the syntax submatches.
2013-06-01 23:02:54 +02:00
Bram Moolenaar
0418811869 updated for version 7.3.1089
Problem:    Tests 86 and 87 fail on MS-Windows. (Ken Takata)
Solution:   Fix platform-specific stuff. (ZyX)
2013-06-01 20:32:12 +02:00
Bram Moolenaar
61602c5bfe updated for version 7.3.1088
Problem:    New regexp engine: \@<= and \@<! are not implemented.
Solution:   Implement look-behind matching.  Fix off-by-one error in old
            regexp engine.
2013-06-01 19:54:43 +02:00
Bram Moolenaar
543b7ef700 Updated runtime files and translations. 2013-06-01 14:50:56 +02:00
Bram Moolenaar
3737fc1c30 updated for version 7.3.1087
Problem:    A leading star is not seen as a normal char when \{} follows.
Solution:   Save and restore the parse state properly.
2013-06-01 14:42:56 +02:00
Bram Moolenaar
75d7a06920 updated for version 7.3.1086
Problem:    Old regexp engine accepts illegal range, new one doesn't.
Solution:   Also accept the illegal range with the new engine.
2013-06-01 13:24:24 +02:00
Bram Moolenaar
36b3a011d3 updated for version 7.3.1085
Problem:    New regexp engine: Non-greedy multi doesn't work.
Solution:   Implement \{-}.
2013-06-01 12:40:20 +02:00
Bram Moolenaar
54dafde170 updated for version 7.3.1084
Problem:    New regexp engine: only accepts up to \{,10}.
Solution:   Remove upper limit.  Remove dead code with NFA_PLUS.
2013-05-31 23:18:00 +02:00
Bram Moolenaar
4b78063368 updated for version 7.3.1083
Problem:    New regexp engine: Does not support \%^ and \%$.
Solution:   Support matching start and end of file.
2013-05-31 22:14:52 +02:00
Bram Moolenaar
14f55c6f67 updated for version 7.3.1082
Problem:    New regexp engine: Problem with \@= matching.
Solution:   Save and restore nfa_match.
2013-05-31 21:45:09 +02:00
Bram Moolenaar
99dc19d1cc updated for version 7.3.1081
Problem:    Compiler warnings on 64-bit Windows.
Solution:   Change variable types. (Mike Williams)
2013-05-31 20:49:31 +02:00
Bram Moolenaar
ca982c8d45 updated for version 7.3.1080
Problem:    Test 86 fails.
Solution:   Comment out the parts that don't work.  Make it pass on 32 bit
            systems.
2013-05-31 19:01:16 +02:00
Bram Moolenaar
96c7dfd806 updated for version 7.3.1079
Problem:    Test 87 fails.
Solution:   Fix the test for Python 3.3. (ZyX)  Make it pass on 32 bit systems.
2013-05-31 18:46:11 +02:00
Bram Moolenaar
b06e20e6ba updated for version 7.3.1078
Problem:    New regexp engine: \@! doesn't work.
Solution:   Implement the negated version of \@=.
2013-05-30 22:44:02 +02:00
Bram Moolenaar
35eacd7180 updated for version 7.3.1077
Problem:    Python: Allocating dict the wrong way, causing a crash.
Solution:   Use py_dict_alloc(). Fix some exception problems. (ZyX)
2013-05-30 22:06:33 +02:00
Bram Moolenaar
2d5e112284 updated for version 7.3.1076
Problem:    New regexp engine: \@= and \& don't work.
Solution:   Make these items work.  Add column info to logging.
2013-05-30 21:42:13 +02:00
Bram Moolenaar
021e147b70 updated for version 7.3.1075
Problem:    Compiler warning for storing a long_u in an int.
Solution:   Declare the number as an int. (Mike Williams)
2013-05-30 19:18:31 +02:00
Bram Moolenaar
f62d942e54 updated for version 7.3.1074
Problem:    Compiler warning for printf format. (Manuel Ortega)
Solution:   Add type casts.
2013-05-30 19:01:24 +02:00
Bram Moolenaar
16299b57cb updated for version 7.3.1073
Problem:    New regexp engine may run out of states.
Solution:   Allocate states dynamically.  Also make the test report errors.
2013-05-30 18:45:23 +02:00
Bram Moolenaar
4b6ebe6dce updated for version 7.3.1072
Problem:    Compiler warning for unitialized variable.
Solution:   Initialize it.
2013-05-30 17:49:24 +02:00
Bram Moolenaar
428e987b61 updated for version 7.3.1071
Problem:    New regexp engine: backreferences don't work correctly.
Solution:   Add every possible start/end position on the state stack.
2013-05-30 17:05:39 +02:00
Bram Moolenaar
fdde880b02 updated for version 7.3.1070
Problem:    Vim crashes in Python tests. Compiler warning for unused function.
Solution:   Disable the tests for now. Move the function.
2013-05-30 15:38:24 +02:00
Bram Moolenaar
fc714b35c6 updated for version 7.3.1069
Problem:    Python: memory leaks.
Solution:   Python patch 28: Purge out DICTKEY_CHECK_EMPTY macros. (ZyX)
2013-05-30 14:52:37 +02:00
Bram Moolenaar
018acca3bd updated for version 7.3.1068
Problem:    Python: Script is auto-loaded on function creation.
Solution:   Python patch 27. (ZyX)
2013-05-30 13:37:28 +02:00
Bram Moolenaar
305b2fde13 updated for version 7.3.1067
Problem:    Python: documentation lags behind.
Solution:   Python patch 26. (ZyX)
2013-05-30 13:32:30 +02:00
Bram Moolenaar
8600e40a67 updated for version 7.3.1066
Problem:    Python: Insufficient exception and error testing.
Solution:   Python patch 25. (ZyX)
2013-05-30 13:28:41 +02:00
Bram Moolenaar
bcb40977c3 updated for version 7.3.1065
Problem:    Python: key mapping is not standard.
Solution:   Puthon patch 24: use PyMapping_Keys. (ZyX)
2013-05-30 13:22:13 +02:00
Bram Moolenaar
494ff7e850 updated for version 7.3.1064
Problem:    Python: insufficient error checking.
Solution:   Python patch 23. (ZyX)
2013-05-30 13:17:17 +02:00
Bram Moolenaar
355fd9b468 updated for version 7.3.1063
Problem:    Python: Function is not standard.
Solution:   Python patch 22: make Function subclassable. (ZyX)
2013-05-30 13:14:13 +02:00
Bram Moolenaar
78cddbe271 updated for version 7.3.1062
Problem:    Python: List is not standard.
Solution:   Python patch 21: Add standard methods and fields. (ZyX)
2013-05-30 13:05:58 +02:00
Bram Moolenaar
a9922d62e6 updated for version 7.3.1061
Problem:    Python: Dictionary is not standard.
Solution:   Python patch 20: Add standard methods and fields. (ZyX)
2013-05-30 13:01:18 +02:00
Bram Moolenaar
a5b725c3f6 updated for version 7.3.1060
Problem:    Python: can't repr() a function.
Solution:   Python patch 19: add FunctionRepr(). (ZyX)
2013-05-30 12:43:54 +02:00
Bram Moolenaar
1a3b56953e updated for version 7.3.1059
Problem:    Python: Using fixed size buffers.
Solution:   Python patch 18: Use python's own formatter. (ZyX)
2013-05-30 12:40:39 +02:00
Bram Moolenaar
a1544c00c8 updated for version 7.3.1058
Problem:    Call of funcref does not succeed in other script.
Solution:   Python patch 17: add get_expanded_name(). (ZyX)
2013-05-30 12:35:52 +02:00
Bram Moolenaar
01a7a720ad updated for version 7.3.1057
Problem:    Python: not enough compatibilty.
Solution:   Python patch 16: Make OutputWritelines support any sequence object
            (ZyX) Note: tests fail
2013-05-30 12:26:58 +02:00
Bram Moolenaar
9bb77d6fe6 updated for version 7.3.1056
Problem:    Python: possible memory leaks.
Solution:   Python patch 15. (ZyX) Fix will follow later.
2013-05-30 12:14:49 +02:00
Bram Moolenaar
bad704fa04 updated for version 7.3.1055
Problem:    Negated collection does not match newline.
Solution:   Handle newline differently. (Hiroshi Shirosaki)
2013-05-30 11:51:08 +02:00
Bram Moolenaar
7e28384a9a updated for version 7.3.1054
Problem:    Can't build without the +autocmd feature. (Elimar Riesebieter)
Solution:   Fix use of buf and curbuf.
2013-05-30 11:43:15 +02:00
Bram Moolenaar
07b8864111 updated for version 7.3.1053
Problem:    Python: no flag for types with tp_traverse+tp_clear.
Solution:   Python patch 14: Add Py_TPFLAGS_HAVE_GC. (ZyX)
2013-05-29 22:58:32 +02:00
Bram Moolenaar
1bcabe19a2 updated for version 7.3.1052
Problem:    Python: possible SEGV and negative refcount.
Solution:   Python patch 13: Fix IterIter function. (ZyX)
2013-05-29 22:52:32 +02:00
Bram Moolenaar
a03e631120 updated for version 7.3.1051
Problem:    Python: possible memory leaks.
Solution:   Python patch 12: fix the leaks (ZyX)
2013-05-29 22:49:26 +02:00
Bram Moolenaar
c8366790e8 updated for version 7.3.1050
Problem:    Python: Typo in pyiter_to_tv.
Solution:   Python patch 11. (ZyX)
2013-05-29 22:46:26 +02:00
Bram Moolenaar
c37b6ecd60 updated for version 7.3.1049
Problem:    Python: no consistent naming
Solution:   Python patch 10: Rename DICTKEY_GET_NOTEMPTY to DICTKEY_GET. (ZyX)
2013-05-29 22:43:37 +02:00
Bram Moolenaar
b38caae26c updated for version 7.3.1048
Problem:    Python: no consistent naming.
Solution:   Python patch 9: Rename d to dict and lookupDict to lookup_dict.
            (ZyX)
2013-05-29 22:39:52 +02:00
Bram Moolenaar
dd8aca664d updated for version 7.3.1047
Problem:    Python: dir() does not work properly.
Solution:   Python patch 8.  Add __dir__ method to all objects with custom
            tp_getattr supplemented by __members__ attribute for at least
            python-2* versions.  __members__ is not mentioned in python-3*
            dir() output even if it is accessible. (ZyX)
2013-05-29 22:36:10 +02:00
Bram Moolenaar
432b09c84d updated for version 7.3.1046
Problem:    Python: Using Py_BuildValue for building strings.
Solution:   Python patch 7 and 7.5: Replace Py_BuildValue with
            PyString_FromString. (ZyX)
2013-05-29 22:26:18 +02:00
Bram Moolenaar
21642ed1b4 updated for version 7.3.1045
Problem:    Python: No error handling for VimToPython function.
Solution:   Python patch 6. (ZyX)
2013-05-29 22:20:01 +02:00
Bram Moolenaar
9e822c00b1 updated for version 7.3.1044
Problem:    Python: No {Buffer,TabPage,Window}.valid attributes.
Solution:   Python patch 5: add .valid (ZyX)
2013-05-29 22:15:30 +02:00
Bram Moolenaar
3e734ea2c7 updated for version 7.3.1043
Problem:    Python: Dynamic compilation with 2.3 fails.
Solution:   Python patch 4. (ZyX)
2013-05-29 22:05:55 +02:00
Bram Moolenaar
e9ba516be2 updated for version 7.3.1042
Problem:    Python: can't assign to vim.Buffer.name.
Solution:   Python patch 3. (ZyX)
2013-05-29 22:02:22 +02:00
Bram Moolenaar
1bc2428e1f updated for version 7.3.1041
Problem:    Python: Invalid read valgrind errors.
Solution:   Python patch 2: defer DICTKEY_UNREF until key is no longer needed.
            (ZyX)
2013-05-29 21:37:35 +02:00
Bram Moolenaar
0014a53ad1 updated for version 7.3.1040
Problem:    Python: Problems with debugging dynamic build.
Solution:   Python patch 1. (ZyX)
2013-05-29 21:33:39 +02:00
Bram Moolenaar
423532e10d updated for version 7.3.1039
Problem:    New regexp engine does not support \%23c, \%<23c and the like.
Solution:   Implement them. (partly by Yasuhiro Matsumoto)
2013-05-29 21:14:42 +02:00
Bram Moolenaar
28c2191949 updated for version 7.3.1038
Problem:    Crash when using Cscope.
Solution:   Avoid negative argument to vim_strncpy(). (Narendran
            Gopalakrishnan)
2013-05-29 19:18:00 +02:00
Bram Moolenaar
75eb1610e1 updated for version 7.3.1037
Problem:    Look-behind matching is very slow on long lines.
Solution:   Add a byte limit to how far back an attempt is made.
2013-05-29 18:45:11 +02:00
Bram Moolenaar
f9e56b2b03 updated for version 7.3.1036
Problem:    Can't build on HP-UX.
Solution:   Give the union a name. (John Marriott)
2013-05-28 22:52:16 +02:00
Bram Moolenaar
4ac6676cee updated for version 7.3.1035
Problem:    Compiler warning on 64 bit windows.
Solution:   Add type cast. (Mike Williams)
2013-05-28 22:31:46 +02:00
Bram Moolenaar
51a2983904 updated for version 7.3.1034
Problem:    New regexp code using strange multi-byte code.
Solution:   Use the normal code to advance and backup pointers.
2013-05-28 22:30:35 +02:00
Bram Moolenaar
5714b80032 updated for version 7.3.1033
Problem:    "\1" .. "\9" are not supported in the new regexp engine.
Solution:   Implement them.  Add a few more tests.
2013-05-28 22:03:20 +02:00
Bram Moolenaar
e0fea9c405 updated for version 7.3.1032
Problem:    "\ze" is not supported by the new regexp engine.
Solution:   Make "\ze" work.
2013-05-27 20:10:50 +02:00
Bram Moolenaar
eb3ecae23a updated for version 7.3.1031
Problem:    Compiler warnings for shadowed variable. (John Little)
Solution:   Move the variable declarations to the scope where they are used.
2013-05-27 11:22:04 +02:00
Bram Moolenaar
2cb8feb880 updated for version 7.3.1030
Problem:    Can't build for debugging.
Solution:   Fix struct member names.
2013-05-26 23:13:07 +02:00
Bram Moolenaar
26c2f3fc4e updated for version 7.3.1029
Problem:    New regexp performance: Unused position state being copied.
Solution:   Keep track of which positions are actually valid.
2013-05-26 22:56:19 +02:00
Bram Moolenaar
963fee2d69 updated for version 7.3.1028
Problem:    New regexp performance: Copying a lot of position state.
Solution:   Only copy the sub-expressions that are being used.
2013-05-26 21:47:28 +02:00
Bram Moolenaar
c4912e555b updated for version 7.3.1027
Problem:    New regexp performance: Calling no_Magic() very often.
Solution:   Remove magicness inline.
2013-05-26 19:19:52 +02:00
Bram Moolenaar
e23febdb85 updated for version 7.3.1026
Problem:    New regexp: pattern that includs a new-line matches too early.
            (john McGowan)
Solution:   Do not start searching in the second line.
2013-05-26 18:40:14 +02:00
Bram Moolenaar
61db8b5108 updated for version 7.3.1025
Problem:    New regexp: not matching newline in string. (Marc Weber)
Solution:   Check for "\n" character.
2013-05-26 17:45:49 +02:00
Bram Moolenaar
57a285b105 updated for version 7.3.1024
Problem:    New regexp: End of matching pattern not set correctly. (Cesar
            Romani)
Solution:   Quit the loop after finding the match.  Store nfa_has_zend in the
            program.
2013-05-26 16:57:28 +02:00
Bram Moolenaar
3451d66244 updated for version 7.3.1023
Problem:    Searching for composing char only and using \Z has different
            results.
Solution:   Make it match the composing char, matching everything is not
            useful.
2013-05-26 15:14:55 +02:00
Bram Moolenaar
7cd4d9c17c updated for version 7.3.1022
Problem:    Compiler warning for shadowed variable. (John Little)
Solution:   Move declaration, rename variables.
2013-05-26 14:54:12 +02:00
Bram Moolenaar
3f1682e808 updated for version 7.3.1021
Problem:    New regexp engine does not ignore order of composing chars.
Solution:   Ignore composing chars order.
2013-05-26 14:32:05 +02:00
Bram Moolenaar
fdb6dc1105 updated for version 7.3.1020
Problem:    Not all patterns are tested with auto / old / new engine.
Solution:   Test patterns with three values of 'regexpengine'.
2013-05-25 23:15:27 +02:00
Bram Moolenaar
47196581b8 updated for version 7.3.1019
Problem:    These do not work with the new regexp engine: \%o123, \%x123,
            \%d123, \%u123 and \%U123.
Solution:   Implement these items.
2013-05-25 22:04:23 +02:00
Bram Moolenaar
aae4883e01 updated for version 7.3.1018
Problem:    New regexp engine wastes memory.
Solution:   Allocate prog with actual number of states, not estimated maximum
            number of sates.
2013-05-25 21:18:34 +02:00
Bram Moolenaar
4b41706477 updated for version 7.3.1017
Problem:    Zero width match changes length of match.
Solution:   For a zero width match put new states in the current position in
            the state list.
2013-05-25 20:19:50 +02:00
Bram Moolenaar
f47ca63dbc updated for version 7.3.1016
Problem:    Unused field in nfa_state.
Solution:   Remove lastthread.
2013-05-25 15:31:05 +02:00
Bram Moolenaar
56d58d51bf updated for version 7.3.1015
Problem:    New regexp engine: Matching composing characters is wrong.
Solution:   Fix matching composing characters.
2013-05-25 14:42:03 +02:00
Bram Moolenaar
152e7890c1 updated for version 7.3.1014
Problem:    New regexp state dump is hard to read.
Solution:   Make the state dump more pretty. (Taro Muraoka)
2013-05-25 12:28:11 +02:00
Bram Moolenaar
d6c11cb3e0 updated for version 7.3.1013
Problem:    New regexp logging is a bit messy.
Solution:   Consistently use #defines, add explanatory comment. (Taro Muraoka)
2013-05-25 12:18:39 +02:00
Bram Moolenaar
fad8de084a updated for version 7.3.1012
Problem:    \Z does not work properly with the new regexp engine.
Solution:   Make \Z work.  Add tests.
2013-05-24 23:10:50 +02:00
Bram Moolenaar
3c577f26cd updated for version 7.3.1011
Problem:    New regexp engine is inefficient with multi-byte characters.
Solution:   Handle a character at a time instead of a byte at a time.  Also
            make \Z partly work.
2013-05-24 21:59:54 +02:00
Bram Moolenaar
1d814754c0 updated for version 7.3.1010
Problem:    New regexp: adding \Z makes every character match.
Solution:   Only apply ireg_icombine for composing characters.
            Alsl add missing change from patch 1008. (Ken Takata)
2013-05-24 20:25:33 +02:00
Bram Moolenaar
425154d888 updated for version 7.3.1009
Problem:    Compiler warning for ambiguous else.
Solution:   Add curly braces.
2013-05-24 18:58:43 +02:00
Bram Moolenaar
02e26d9807 updated for version 7.3.1008
Problem:    Test 95 fails on MS-Windows.
Solution:   Set 'nomore'. Change \i to \f.  Change multi-byte character to
            something that is not matching \i. (Ken Takata)
2013-05-23 22:43:08 +02:00
Bram Moolenaar
a03dbed9e9 updated for version 7.3.1007
Problem:    Can't build on Minix 3.2.1.
Solution:   Add a condition to an #ifdef. (Gautam Tirumala)
2013-05-23 22:27:03 +02:00
Bram Moolenaar
307d10a2fb updated for version 7.3.1006
Problem:    NFA engine not used for "\_[0-9]".
Solution:   Enable this, fixed in patch 1005.
2013-05-23 22:25:15 +02:00
Bram Moolenaar
35b2386a8e updated for version 7.3.1005
Problem:    Get stuck on regexp "\n*" and on "%s/^\n\+/\r".
Solution:   Fix handling of matching a line break. (idea by Hirohito Higashi)
2013-05-22 23:00:40 +02:00
Bram Moolenaar
c96ebe75e5 updated for version 7.3.1004
Problem:    No error when option could not be set.
Solution:   Report an error. (ZyX)
2013-05-21 22:38:18 +02:00
Bram Moolenaar
2a0f3d3fb2 updated for version 7.3.1003
Problem:    Python interface does not compile with Python 2.2
Solution:   Fix thread issues and True/False. (ZyX)
2013-05-21 22:23:56 +02:00
Bram Moolenaar
0b9aecc3a5 updated for version 7.3.1002
Problem:    Valgrind errors for Python interface.
Solution:   Fix memory leaks when running tests. (ZyX)
2013-05-21 22:13:41 +02:00
Bram Moolenaar
673af4d304 updated for version 7.3.1001
Problem:    Duplicate condition in if.
Solution:   Remove one condition.
2013-05-21 22:00:51 +02:00
Bram Moolenaar
2eec59e30b updated for version 7.3.1000
Problem:    Typo in char value causes out of bounds access.
Solution:   Fix character value.  (Klemens Baum)
2013-05-21 21:37:20 +02:00
Bram Moolenaar
f878bf0da2 updated for version 7.3.999
Problem:    New regexp engine sets curbuf temporarily.
Solution:   Use reg_buf instead, like the old engine.
2013-05-21 21:20:20 +02:00
Bram Moolenaar
e6ae6225b4 Updated runtime files, language files and translations. 2013-05-21 21:01:10 +02:00
Bram Moolenaar
774267bbb9 updated for version 7.3.998
Problem:    Python: garbage collection issues.
Solution:   Fix the GC issues: Use proper DESTRUCTOR_FINISH: avoids negative
            refcounts, use PyObject_GC_* for objects with tp_traverse and
            tp_clear, add RangeTraverse and RangeClear, use Py_XDECREF in some
            places. (ZyX)
2013-05-21 20:51:59 +02:00
Bram Moolenaar
a7b64ce74e updated for version 7.3.997
Problem:    Vim and Python exceptions are different.
Solution:   Make Vim exceptions be Python exceptions. (ZyX)
2013-05-21 20:40:40 +02:00
Bram Moolenaar
cac867ad18 updated for version 7.3.996
Problem:    Python: Can't check types of what is returned by bindeval().
Solution:   Add vim.List, vim.Dictionary and vim.Function types. (ZyX)
2013-05-21 19:50:34 +02:00
Bram Moolenaar
1dc28783fa updated for version 7.3.995
Problem:    Python: Module initialization is duplicated.
Solution:   Move to shared file. (ZyX)
2013-05-21 19:11:01 +02:00
Bram Moolenaar
182dc4f2ab updated for version 7.3.994
Problem:    Python: using magic constants.
Solution:   Use descriptive values for ml_flags. (ZyX)
2013-05-21 19:01:55 +02:00
Bram Moolenaar
e64faa6645 updated for version 7.3.993
Problem:    Python: Later patch does things slightly differently.
Solution:   Adjusted argument type changes. (ZyX)
2013-05-21 18:47:21 +02:00
Bram Moolenaar
d6e391862c updated for version 7.3.992
Problem:    Python: Too many type casts.
Solution:   Change argument types. (ZyX)
2013-05-21 18:30:34 +02:00
Bram Moolenaar
b52f4c02e6 updated for version 7.3.991
Problem:    More can be shared by Python 2 and 3.
Solution:   Move more stuff to if_py_both. (ZyX)
2013-05-21 18:19:38 +02:00
Bram Moolenaar
b09d983c78 updated for version 7.3.990
Problem:    Memory leak in new regexp engine.
Solution:   Jump to end of function to free memory. (Dominique Pelle)
2013-05-21 16:28:11 +02:00
Bram Moolenaar
12e4014092 updated for version 7.3.989
Problem:    New regexp engine compares negative numbers to character.
Solution:   Add missing case statements.
2013-05-21 15:33:41 +02:00
Bram Moolenaar
66e83d7db0 updated for version 7.3.988
Problem:    New regexp engine is slow.
Solution:   Break out of the loop when the state list is empty.
2013-05-21 14:03:00 +02:00
Bram Moolenaar
d2470e9fbe updated for version 7.3.987
Problem:    No easy to run an individual test.  Tests 64 fails when
            'encoding' is not utf-8.
Solution:   Add individual test targets to the Makefile.  Move some lines from
            test 64 to 95.
2013-05-21 13:30:21 +02:00
Bram Moolenaar
d7a06b1d71 updated for version 7.3.986
Problem:    Test 95 doesn't pass when 'encoding' isn't utf-8. (Yasuhiro
            Matsumoto)
Solution:   Force 'encoding' to be utf-8.
2013-05-21 13:05:15 +02:00
Bram Moolenaar
8dd7901a66 updated for version 7.3.985
Problem:    GTK vim not started as gvim doesn't set WM_CLASS property to a
            useful value.
Solution:   Call g_set_prgname() on startup. (James McCoy)
2013-05-21 12:52:04 +02:00
Bram Moolenaar
9bad29decf updated for version 7.3.984
Problem:    A Visual mapping that uses CTRL-G works differently when started
            from Insert mode. (Ein Brown)
Solution:   Reset old_mapped_len when handling typed text in Select mode.
2013-05-21 12:46:02 +02:00
Bram Moolenaar
080504921d updated for version 7.3.983
Problem:    Uneccessary temp variable.
Solution:   Remove the variable.
2013-05-21 12:43:56 +02:00
Bram Moolenaar
0fabe3fdbe updated for version 7.3.982
Problem:    In the new regexp engine \p does not work on multi-byte
            characters.
Solution:   Don't point to an integer but the characters.
2013-05-21 12:34:17 +02:00
Bram Moolenaar
09ea9fcf3f updated for version 7.3.981
Problem:    In the old regexp engine \i, \I, \f and \F don't work on
            multi-byte characters.
Solution:   Dereference pointer properly.
2013-05-21 00:03:02 +02:00
Bram Moolenaar
745fc029ba updated for version 7.3.980
Problem:    Regexp logs may contain garbage. Character classes don't work
            correctly for multi-byte characters.
Solution:   Check for end of post list.  Only use "is" functions for
            characters up to 255. (Ken Takata)
2013-05-20 22:20:02 +02:00
Bram Moolenaar
e3c7b86aab updated for version 7.3.979
Problem:    Complex NFA regexp doesn't work.
Solution:   Set actual state stack end instead of using an arbitrary number.
            (Yasuhiro Matsumoto)
2013-05-20 21:57:03 +02:00
Bram Moolenaar
7fcff1f781 updated for version 7.3.978
Problem:    Regexp debug logs don't have a good name.
Solution:   Use clear names and make it possible to write logs for the old and
            new engines separately. (Taro Muraoka)
2013-05-20 21:49:13 +02:00
Bram Moolenaar
ca12d7c004 updated for version 7.3.977
Problem:    Compiler warnings on 64 bit Windows.
Solution:   Add type casts. (Mike Williams)  Also fix some white space and
            uncomment what was commented-out for testing.
2013-05-20 21:26:33 +02:00
Bram Moolenaar
053bb60f44 updated for version 7.3.976
Problem:    Can't build on HP-UX.
Solution:   Remove modern initialization. (John Marriott)
2013-05-20 13:55:21 +02:00
Bram Moolenaar
bc0ea8f75e updated for version 7.3.975
Problem:    Crash in regexp parsing.
Solution:   Correctly compute the end of allocated memory.
2013-05-20 13:44:29 +02:00
Bram Moolenaar
10f3a79e89 updated for version 7.3.974
Problem:    Can't build with ruby 1.8.5.
Solution:   Only use ruby_init_stack() when RUBY_INIT_STACK is defined.
            (Yukihiro Nakadaira)
2013-05-20 12:52:29 +02:00
Bram Moolenaar
ba40447ab1 updated for version 7.3.973
Problem:    Compiler warnings. Crash on startup. (Tony Mechelynck)
Solution:   Change EMSG2 to EMSGN. Make array one character longer.
2013-05-19 22:31:18 +02:00
Bram Moolenaar
097c992c46 updated for version 7.3.972
Problem:    Cursor not restored after InsertEnter autocommand if it moved to
            another line.
Solution:   Also restore if the saved line number is still valid.  Allow
            setting v:char to skip restoring.
2013-05-19 21:15:15 +02:00
Bram Moolenaar
884f6e44e0 updated for version 7.3.971
Problem:    No support for VS2012 static code analysis.
Solution:   Add the ANALYZE option. (Mike Williams)
2013-05-19 21:03:54 +02:00
Bram Moolenaar
fbc0d2ea1e updated for version 7.3.970
Problem:    Syntax highlighting can be slow.
Solution:   Include the NFA regexp engine.  Add the 'regexpengine' option to
            select which one is used. (various authors, including Ken Takata,
            Andrei Aiordachioaie, Russ Cox, Xiaozhou Liua, Ian Young)
2013-05-19 19:40:29 +02:00
Bram Moolenaar
6fa41fb374 updated for version 7.3.969
Problem:    Can't built with Python 3 and without Python 2.
Solution:   Adjust #ifdef. (Xavier de Gaye)
2013-05-18 20:55:35 +02:00
Bram Moolenaar
7533fddd09 updated for version 7.3.968
Problem:    Multi-byte support is only available when compiled with "big"
            features.
Solution:   Include multi-byte by default, with "normal" features.
2013-05-18 20:45:59 +02:00
Bram Moolenaar
9e74e30b5f updated for version 7.3.967
Problem:    Build fails on Mac OSX. (Greg Novack)
Solution:   Undefine clear().
2013-05-17 21:20:17 +02:00
Bram Moolenaar
ad3b366c82 Update runtime files. 2013-05-17 18:14:19 +02:00
Bram Moolenaar
d620aa9be4 updated for version 7.3.966
Problem:    There is ":py3do" but no ":pydo".
Solution:   Add the ":pydo" command. (Lilydjwg)
2013-05-17 16:40:06 +02:00
Bram Moolenaar
cfef5ff23e updated for version 7.3.965
Problem:    Python garbage collection not working properly.
Solution:   Add support for garbage collection. (ZyX)
2013-05-17 16:24:32 +02:00
Bram Moolenaar
cabf80ff2f updated for version 7.3.964
Problem:    Python: not so easy to access tab pages.
Solution:   Add window.tabpage, make window.number work with non-current tab
            pages. (ZyX)
2013-05-17 16:18:33 +02:00
Bram Moolenaar
105bc355a6 updated for version 7.3.963
Problem:    Setting curbuf without curwin causes trouble.
Solution:   Add switch_buffer() and restore_buffer().  Block autocommands to
            avoid trouble.
2013-05-17 16:03:57 +02:00
Bram Moolenaar
55b8ad3dab updated for version 7.3.962
Problem:    Python tests are not portable.
Solution:   Use shiftwidth instead of iminsert. (ZyX)
2013-05-17 13:38:04 +02:00
Bram Moolenaar
c24c1acd82 updated for version 7.3.961
Problem:    Tests 86 and 87 fail when using another language than English.
Solution:   Set the language to C in the test. (Dominique Pelle)
2013-05-16 20:47:56 +02:00
Bram Moolenaar
07729b25bf updated for version 7.3.960
Problem:    Compiler warning for unused variable.
Solution:   Put declaration in #ifdef.
2013-05-15 23:13:10 +02:00
Bram Moolenaar
54e8f00581 updated for version 7.3.959
Problem:    Missing error number.
Solution:   Assign an error number.
2013-05-15 19:44:39 +02:00
161 changed files with 31154 additions and 6008 deletions

View File

@@ -57,6 +57,7 @@ SRC_ALL = \
src/popupmnu.c \
src/quickfix.c \
src/regexp.c \
src/regexp_nfa.c \
src/regexp.h \
src/screen.c \
src/search.c \

View File

@@ -1,7 +1,7 @@
" netrw.vim: Handles file transfer and remote directory listing across
" AUTOLOAD SECTION
" Date: Apr 16, 2013
" Version: 148
" Date: May 18, 2013
" Version: 149
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1
@@ -22,7 +22,7 @@
if &cp || exists("g:loaded_netrw")
finish
endif
let g:loaded_netrw = "v148"
let g:loaded_netrw = "v149"
if v:version < 703 || (v:version == 703 && !has("patch465"))
echohl WarningMsg
echo "***warning*** this version of netrw needs vim 7.3.465 or later"
@@ -49,12 +49,12 @@ set cpo&vim
" 0=note = s:NOTE
" 1=warning = s:WARNING
" 2=error = s:ERROR
" Apr 02, 2013 : max errnum currently is 92
" May 01, 2013 : max errnum currently is 93
fun! netrw#ErrorMsg(level,msg,errnum)
" call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow)
if a:level < g:netrw_errorlvl
" call Dret("netrw#ErrorMsg : suppressing level=".a:level." since g;netrw_errorlvl=".g:netrw_errorlvl)
" call Dret("netrw#ErrorMsg : suppressing level=".a:level." since g:netrw_errorlvl=".g:netrw_errorlvl)
return
endif
@@ -128,7 +128,7 @@ endfun
" NetrwInit: initializes variables if they haven't been defined {{{2
" Loosely, varname = value.
fun s:NetrwInit(varname,value)
" call Decho("varname<".a:varname."> value=".a:value)
" call Decho("varname<".a:varname."> value=".a:value)
if !exists(a:varname)
if type(a:value) == 0
exe "let ".a:varname."=".a:value
@@ -202,7 +202,20 @@ if !exists("g:netrw_http_cmd")
endif
call s:NetrwInit("g:netrw_rcp_cmd" , "rcp")
call s:NetrwInit("g:netrw_rsync_cmd", "rsync")
call s:NetrwInit("g:netrw_scp_cmd" , "scp -q")
if !exists("g:netrw_scp_cmd")
if executable("scp")
call s:NetrwInit("g:netrw_scp_cmd" , "scp -q")
elseif executable("pscp")
if (has("win32") || has("win95") || has("win64") || has("win16")) && filereadable('c:\private.ppk')
call s:NetrwInit("g:netrw_scp_cmd", 'pscp -i c:\private.ppk')
else
call s:NetrwInit("g:netrw_scp_cmd", 'pscp -q')
endif
else
call s:NetrwInit("g:netrw_scp_cmd" , "scp -q")
endif
endif
call s:NetrwInit("g:netrw_sftp_cmd" , "sftp")
call s:NetrwInit("g:netrw_ssh_cmd" , "ssh")
@@ -278,19 +291,23 @@ if !exists("g:netrw_ignorenetrc")
endif
call s:NetrwInit("g:netrw_keepdir",1)
if !exists("g:netrw_list_cmd")
if g:netrw_scp_cmd =~ '^pscp' && executable("pscp")
" provide a 'pscp' listing command
if (has("win32") || has("win95") || has("win64") || has("win16")) && filereadable("c:\\private.ppk")
" provide a pscp-based listing command
let g:netrw_scp_cmd ="pscp -i C:\\private.ppk"
endif
let g:netrw_list_cmd= g:netrw_scp_cmd." -ls USEPORT HOSTNAME:"
elseif executable(g:netrw_ssh_cmd)
" provide a default listing command
" provide a scp-based default listing command
let g:netrw_list_cmd= g:netrw_ssh_cmd." USEPORT HOSTNAME ls -FLa"
else
" call Decho(g:netrw_ssh_cmd." is not executable")
let g:netrw_list_cmd= ""
endif
endif
call s:NetrwInit("g:netrw_list_hide","")
" Default values - lh-lz ---------- {{{3
@@ -474,7 +491,7 @@ endif
" NetrwBrowse.
" vt: normally its "w:" or "s:" (a variable type)
fun! s:NetrwOptionSave(vt)
" call Dfunc("s:NetrwOptionSave(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%")).">"." winnr($)=".winnr("$"))
" call Dfunc("s:NetrwOptionSave(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%")).">"." winnr($)=".winnr("$")." mod=".&mod." ma=".&ma)
" call Decho(a:vt."netrw_optionsave".(exists("{a:vt}netrw_optionsave")? ("=".{a:vt}netrw_optionsave) : " doesn't exist"))
if !exists("{a:vt}netrw_optionsave")
@@ -730,10 +747,16 @@ fun! netrw#Explore(indx,dosplit,style,...)
" call Dfunc("netrw#Explore(indx=".a:indx." dosplit=".a:dosplit." style=".a:style.",a:1<".a:1.">) &modified=".&modified." modifiable=".&modifiable." a:0=".a:0." win#".winnr()." buf#".bufnr("%"))
if !exists("b:netrw_curdir")
let b:netrw_curdir= getcwd()
if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
let b:netrw_curdir= substitute(b:netrw_curdir,'\','/','g')
endif
" call Decho("(Explore) set b:netrw_curdir<".b:netrw_curdir."> (used getcwd)")
endif
let curdir = simplify(b:netrw_curdir)
let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e')
if !exists("g:netrw_cygwin") && (has("win32") || has("win95") || has("win64") || has("win16"))
let curdir= substitute(curdir,'\','/','g')
endif
" call Decho("(Explore) curdir<".curdir."> curfiledir<".curfiledir.">")
" save registers
@@ -793,7 +816,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
keepj norm! 0
if a:0 > 0
" call Decho("(Explore) case [a:0=".a:0."] > 0")
" call Decho("(Explore) case [a:0=".a:0."] > 0: a:1<".a:1.">")
if a:1 =~ '^\~' && (has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin))
" call Decho("(Explore) ..case a:1<".a:1.">: starts with ~ and unix or cygwin")
let dirname= simplify(substitute(a:1,'\~',expand("$HOME"),''))
@@ -809,7 +832,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
" call Decho("(Explore) ..case a:1<".a:1.">: matches ending $")
let dirname= simplify(expand(a:1))
" call Decho("(Explore) ..using user-specified dirname<".dirname."> with $env-var")
elseif a:1 !~ '^\*\{1,2}/'
elseif a:1 !~ '^\*\{1,2}/' && a:1 !~ '^\a\{3,}://'
" call Decho("(Explore) ..case a:1<".a:1.">: other, not pattern or filepattern")
let dirname= simplify(a:1)
" call Decho("(Explore) ..using user-specified dirname<".dirname.">")
@@ -835,7 +858,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
if dirname =~ '^\*//'
" starpat=1: Explore *//pattern (current directory only search for files containing pattern)
" call Decho("(Explore) case Explore *//pattern")
" call Decho("(Explore) case starpat=1: Explore *//pattern")
let pattern= substitute(dirname,'^\*//\(.*\)$','\1','')
let starpat= 1
" call Decho("(Explore) ..Explore *//pat: (starpat=".starpat.") dirname<".dirname."> -> pattern<".pattern.">")
@@ -843,14 +866,14 @@ fun! netrw#Explore(indx,dosplit,style,...)
elseif dirname =~ '^\*\*//'
" starpat=2: Explore **//pattern (recursive descent search for files containing pattern)
" call Decho("(Explore) case Explore **//pattern")
" call Decho("(Explore) case starpat=2: Explore **//pattern")
let pattern= substitute(dirname,'^\*\*//','','')
let starpat= 2
" call Decho("(Explore) ..Explore **//pat: (starpat=".starpat.") dirname<".dirname."> -> pattern<".pattern.">")
elseif dirname =~ '/\*\*/'
" handle .../**/.../filepat
" call Decho("(Explore) case Explore .../**/.../filepat")
" call Decho("(Explore) case starpat=4: Explore .../**/.../filepat")
let prefixdir= substitute(dirname,'^\(.\{-}\)\*\*.*$','\1','')
if prefixdir =~ '^/' || (prefixdir =~ '^\a:/' && (has("win32") || has("win95") || has("win64") || has("win16")))
let b:netrw_curdir = prefixdir
@@ -863,32 +886,40 @@ fun! netrw#Explore(indx,dosplit,style,...)
" call Decho("(Explore) ..case Explore ../**/../filepat (starpat=".starpat.")")
elseif dirname =~ '^\*/'
" starpat=3: Explore */filepat (search in current directory for filenames matching filepat)
" case starpat=3: Explore */filepat (search in current directory for filenames matching filepat)
let starpat= 3
" call Decho("(Explore) case Explore */filepat (starpat=".starpat.")")
" call Decho("(Explore) case starpat=3: Explore */filepat (starpat=".starpat.")")
elseif dirname=~ '^\*\*/'
" starpat=4: Explore **/filepat (recursive descent search for filenames matching filepat)
let starpat= 4
" call Decho("(Explore) case Explore **/filepat (starpat=".starpat.")")
" call Decho("(Explore) case starpat=4: Explore **/filepat (starpat=".starpat.")")
else
let starpat= 0
" call Decho("(Explore) default case: starpat=".starpat)
" call Decho("(Explore) case starpat=0: default")
endif
if starpat == 0 && a:indx >= 0
" [Explore Hexplore Vexplore Sexplore] [dirname]
" call Decho("(Explore) case starpat==0 && a:indx=".a:indx.": dirname<".dirname."> Explore Hexplore Vexplore Sexplore")
" call Decho("(Explore) case starpat==0 && a:indx=".a:indx.": dirname<".dirname.">, handles Explore Hexplore Vexplore Sexplore")
if dirname == ""
let dirname= curfiledir
" call Decho("(Explore) ..empty dirname, using current file's directory<".dirname.">")
endif
if dirname =~ '^scp:' || dirname =~ '^ftp:'
" call Decho("(Explore) ..calling NetrwBrowse(0,dirname<".dirname.">)")
call s:NetrwBrowse(0,dirname)
if dirname =~ '^scp://' || dirname =~ '^ftp://'
call netrw#Nread(2,dirname)
"call s:NetrwBrowse(0,dirname)
else
if dirname == ""|let dirname= getcwd()|endif
if dirname == ""
let dirname= getcwd()
elseif (has("win32") || has("win95") || has("win64") || has("win16")) && !g:netrw_cygwin
if dirname !~ '^[a-zA-Z]:'
let dirname= b:netrw_curdir."/".dirname
endif
elseif dirname !~ '^/'
let dirname= b:netrw_curdir."/".dirname
endif
" call Decho("(Explore) ..calling LocalBrowseCheck(dirname<".dirname.">)")
call netrw#LocalBrowseCheck(dirname)
" call Decho("(Explore) win#".winnr()." buf#".bufnr("%")." modified=".&modified." modifiable=".&modifiable." readonly=".&readonly)
@@ -1508,7 +1539,7 @@ endfun
" =2 replace with remote file
" =3 obtain file, but leave in temporary format
fun! netrw#NetRead(mode,...)
" call Dfunc("netrw#NetRead(mode=".a:mode.",...) a:0=".a:0." ".g:loaded_netrw)
" call Dfunc("netrw#NetRead(mode=".a:mode.",...) a:0=".a:0." ".g:loaded_netrw.((a:0 > 0)? " a:1<".a:1.">" : ""))
" NetRead: save options {{{3
call s:NetrwOptionSave("w:")
@@ -2404,7 +2435,6 @@ fun! s:NetrwGetFile(readcmd, tfile, method)
" call Decho("detect filetype of local version of remote file")
let iskkeep= &l:isk
setl isk-=/
" filetype detect " COMBAK - trying filetype detect in NetrwOptionRestore Jan 24, 2013
let &l:isk= iskkeep
" call Dredir("renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">","ls!")
let line1 = 1
@@ -2611,8 +2641,7 @@ fun! s:NetrwMethod(choice)
" call Decho("has -s: : s:netrw_ftp_cmd<".s:netrw_ftp_cmd.">")
" call Decho(" g:netrw_ftp_cmd<".g:netrw_ftp_cmd.">")
if g:netrw_ftp_cmd =~ '-[sS]:\S*MACHINE\>'
let machine = substitute(g:netrw_machine,'\([^.]\+\)\.\S*','\1','')
let s:netrw_ftp_cmd= substitute(g:netrw_ftp_cmd,'\<MACHINE\>',machine.".ftp",'')
let s:netrw_ftp_cmd= substitute(g:netrw_ftp_cmd,'\<MACHINE\>',g:netrw_machine,'')
" call Decho("s:netrw_ftp_cmd<".s:netrw_ftp_cmd.">")
endif
let b:netrw_method= 2
@@ -3477,7 +3506,6 @@ fun! s:NetrwBrowse(islocal,dirname)
if !exists("w:netrw_liststyle")|let w:netrw_liststyle= g:netrw_liststyle|endif
" call Dfunc("s:NetrwBrowse(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".w:netrw_liststyle." ".g:loaded_netrw." buf#".bufnr("%")."<".bufname("%")."> win#".winnr())
" call Decho("(NetrwBrowse) tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")." modified=".&modified." modifiable=".&modifiable." readonly=".&readonly)
" call Dredir("ls!")
" s:NetrwBrowse: initialize history {{{3
if !exists("s:netrw_initbookhist")
keepj call s:NetrwBookHistRead()
@@ -3759,6 +3787,7 @@ endfun
" 1=re-used buffer
fun! s:NetrwGetBuffer(islocal,dirname)
" call Dfunc("s:NetrwGetBuffer(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".g:netrw_liststyle)
" call Decho("(NetrwGetBuffer) modiable=".&mod." modifiable=".&ma." readonly=".&ro)
let dirname= a:dirname
" re-use buffer if possible {{{3
@@ -3767,8 +3796,9 @@ fun! s:NetrwGetBuffer(islocal,dirname)
" find NetrwTreeList buffer if there is one
" call Decho("(NetrwGetBuffer) case liststyle=treelist: find NetrwTreeList buffer if there is one")
if exists("w:netrw_treebufnr") && w:netrw_treebufnr > 0
" call Decho("(NetrwGetBuffer) re-use w:netrw_treebufnr=".w:netrw_treebufnr)
sil keepj %d
" call Decho("(NetrwGetBuffer) re-using w:netrw_treebufnr=".w:netrw_treebufnr)
setl mod
sil! keepj %d
let eikeep= &ei
set ei=all
exe "sil! keepalt b ".w:netrw_treebufnr
@@ -3782,7 +3812,6 @@ fun! s:NetrwGetBuffer(islocal,dirname)
else
" find buffer number of buffer named precisely the same as dirname {{{3
" call Decho("(NetrwGetBuffer) case listtyle not treelist: find buffer numnber of buffer named precisely the same as dirname--")
" call Dredir("ls!")
" get dirname and associated buffer number
let bufnum = bufnr(escape(dirname,'\'))
@@ -4079,7 +4108,6 @@ fun! s:NetrwListSettings(islocal)
if g:netrw_use_noswf
setl noswf
endif
" call Dredir("ls!")
" call Decho("(NetrwListSettings) exe setl ts=".(g:netrw_maxfilenamelen+1))
exe "setl ts=".(g:netrw_maxfilenamelen+1)
setl isk+=.,~,-
@@ -4211,14 +4239,14 @@ fun! s:NetrwBookmarkMenu()
if exists("g:netrw_bookmarklist") && g:netrw_bookmarklist != [] && g:netrw_dirhistmax > 0
let cnt= 1
for bmd in g:netrw_bookmarklist
" call Decho('sil! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmark.'.bmd.' :e '.bmd)
let bmd= escape(bmd,g:netrw_menu_escape)
let ebmd= escape(bmd,g:netrw_menu_escape)
" call Decho('sil! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmark.'.ebmd.' :e '.bmd)
" show bookmarks for goto menu
exe 'sil! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks.'.bmd.' :e '.bmd."\<cr>"
exe 'sil! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks.'.ebmd.' :e '.bmd."\<cr>"
" show bookmarks for deletion menu
exe 'sil! menu '.g:NetrwMenuPriority.".8.2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete.'.bmd.' '.cnt."mB"
exe 'sil! menu '.g:NetrwMenuPriority.".8.2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete.'.ebmd.' '.cnt."mB"
let cnt= cnt + 1
endfor
@@ -4264,7 +4292,6 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
let @@= ykeep
" call Decho("(NetrwBrowseChgDir) b:netrw_curdir doesn't exist!")
" call Decho("(NetrwBrowseChgDir) getcwd<".getcwd().">")
" call Dredir("ls!")
" call Dret("s:NetrwBrowseChgDir")
return
endif
@@ -5467,8 +5494,13 @@ endfun
" directories. Uses the local-buffer marked file list.
" Returns 1=success (used by NetrwMarkFileMove())
" 0=failure
fun! s:NetrwMarkFileCopy(islocal)
" call Dfunc("s:NetrwMarkFileCopy(islocal=".a:islocal.") target<".(exists("s:netrwmftgt")? s:netrwmftgt : '---').">")
fun! s:NetrwMarkFileCopy(islocal,...)
" call Dfunc("s:NetrwMarkFileCopy(islocal=".a:islocal.") target<".(exists("s:netrwmftgt")? s:netrwmftgt : '---')."> a:0=".a:0)
if !exists("b:netrw_curdir")
let b:netrw_curdir= getcwd()
" call Decho("set b:netrw_curdir<".b:netrw_curdir."> (used getcwd)")
endif
let curdir = b:netrw_curdir
let curbufnr = bufnr("%")
@@ -5495,8 +5527,45 @@ fun! s:NetrwMarkFileCopy(islocal)
" call Dfunc("s:NetrwMarkFileMove : g:netrw_localcopycmd<".g:netrw_localcopycmd."> n/a!")
return
endif
let args= join(map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),"shellescape(b:netrw_curdir.\"/\".v:val)"))
let tgt = shellescape(s:netrwmftgt)
" copy marked files while within the same directory (ie. allow renaming)
if simplify(s:netrwmftgt) == simplify(b:netrw_curdir)
if len(s:netrwmarkfilelist_{bufnr('%')}) == 1
" only one marked file
let args = shellescape(b:netrw_curdir."/".s:netrwmarkfilelist_{bufnr('%')}[0])
let oldname = s:netrwmarkfilelist_{bufnr('%')}[0]
elseif a:0 == 1
" this happens when the next case was used to recursively call s:NetrwMarkFileCopy()
let args = shellescape(b:netrw_curdir."/".a:1)
let oldname = a:1
else
" copy multiple marked files inside the same directory
let s:recursive= 1
for oldname in s:netrwmarkfilelist_{bufnr("%")}
let ret= s:NetrwMarkFileCopy(a:islocal,oldname)
if ret == 0
break
endif
endfor
unlet s:recursive
call s:NetrwUnmarkList(curbufnr,curdir)
" call Dret("s:NetrwMarkFileCopy ".ret)
return ret
endif
call inputsave()
let newname= input("Copy ".oldname." to : ",oldname,"file")
call inputrestore()
if newname == ""
" call Dret("s:NetrwMarkFileCopy 0")
return 0
endif
let args= shellescape(oldname)
let tgt = shellescape(s:netrwmftgt.'/'.newname)
else
let args= join(map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),"shellescape(b:netrw_curdir.\"/\".v:val)"))
let tgt = shellescape(s:netrwmftgt)
endif
if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16"))
let args= substitute(args,'/','\\','g')
let tgt = substitute(tgt, '/','\\','g')
@@ -5525,10 +5594,12 @@ fun! s:NetrwMarkFileCopy(islocal)
keepj call s:NetrwUpload(s:netrwmarkfilelist_{bufnr('%')},s:netrwmftgt)
elseif !a:islocal && s:netrwmftgt_islocal
" Copy marked files, remote directory to local directory
" call Decho("copy from remote to local")
keepj call netrw#NetrwObtain(a:islocal,s:netrwmarkfilelist_{bufnr('%')},s:netrwmftgt)
elseif !a:islocal && !s:netrwmftgt_islocal
" Copy marked files, remote directory to remote directory
" call Decho("copy from remote to remote")
let curdir = getcwd()
let tmpdir = s:GetTempfile("")
@@ -5570,10 +5641,11 @@ fun! s:NetrwMarkFileCopy(islocal)
" -------
" cleanup
" -------
" call Decho("cleanup")
" remove markings from local buffer
call s:NetrwUnmarkList(curbufnr,curdir)
" call Decho("cleanup")
if !exists("s:recursive")
" remove markings from local buffer
call s:NetrwUnmarkList(curbufnr,curdir)
endif
" refresh buffers
if !s:netrwmftgt_islocal
@@ -5861,7 +5933,6 @@ fun! s:NetrwMarkFileVimCmd(islocal)
exe cmd
exe "sil! keepalt wq!"
else
" COMBAK -- not supported yet
" call Decho("remote<".fname.">: exe ".cmd." : NOT SUPPORTED YET")
echo "sorry, \"mX\" not supported yet for remote files"
endif
@@ -7489,11 +7560,20 @@ fun! s:NetrwWideListing()
sil! let @*= keepregstar
exe "sil! keepj ".w:netrw_bannercnt.',$s/\s\+$//e'
keepj call histdel("/",-1)
exe "nmap <buffer> <silent> w /^\\\\|\\s\\s\\zs\\S/\<cr>"
exe "nmap <buffer> <silent> b ?^\\\\|\\s\\s\\zs\\S?\<cr>"
" call Decho("NetrwWideListing) setl noma nomod ro")
setl noma nomod ro
" call Decho("(NetrwWideListing) ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)")
" call Dret("NetrwWideListing")
return
else
if hasmapto("w","n")
sil! nunmap <buffer> w
endif
if hasmapto("b","n")
sil! nunmap <buffer> b
endif
endif
endfun
@@ -7537,7 +7617,11 @@ fun! s:PerformListing(islocal)
" call Decho("(PerformListing) set up banner")
keepj call setline(1,'" ============================================================================')
keepj call setline(2,'" Netrw Directory Listing (netrw '.g:loaded_netrw.')')
keepj call setline(3,'" '.b:netrw_curdir)
if exists("g:netrw_bannerbackslash") && g:netrw_bannerbackslash
keepj call setline(3,'" '.substitute(b:netrw_curdir,'/','\\','g'))
else
keepj call setline(3,'" '.b:netrw_curdir)
endif
let w:netrw_bannercnt= 3
keepj exe "sil! keepj ".w:netrw_bannercnt
else
@@ -7606,7 +7690,7 @@ fun! s:PerformListing(islocal)
if g:netrw_banner
let w:netrw_bannercnt= w:netrw_bannercnt + 1
exe "sil! keepj ".w:netrw_bannercnt
" call Decho("(PerformListing) bannercnt=".w:netrw_bannercnt." (should index line just after banner) line($)=".line("$"))
" call Decho("(PerformListing) w:netrw_bannercnt=".w:netrw_bannercnt." (should index line just after banner) line($)=".line("$"))
endif
" get list of files
@@ -7616,12 +7700,13 @@ fun! s:PerformListing(islocal)
else " remote
keepj call s:NetrwRemoteListing()
endif
" call Decho("(PerformListing) g:netrw_banner=".g:netrw_banner." w:netrw_bannercnt=".w:netrw_bannercnt." (banner complete)")
" manipulate the directory listing (hide, sort) {{{3
if !exists("w:netrw_bannercnt")
let w:netrw_bannercnt= 0
endif
" call Decho("(PerformListing) g:netrw_banner=".g:netrw_banner." w:netrw_bannercnt=".w:netrw_bannercnt." (banner complete)")
if !g:netrw_banner || line("$") >= w:netrw_bannercnt
" call Decho("(PerformListing) manipulate directory listing (hide)")
" call Decho("(PerformListing) g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">")
@@ -7763,10 +7848,18 @@ fun! s:NetrwRemoteListing()
" call Dfunc("s:NetrwRemoteListing() b:netrw_curdir<".b:netrw_curdir.">)")
call s:RemotePathAnalysis(b:netrw_curdir)
" call Decho("b:netrw_method#".(exists("b:netrw_method")? b:netrw_method : 'n/a'))
" call Decho("g:netrw_list_cmd<".(exists("g:netrw_list_cmd")? g:netrw_list_cmd : 'n/a').">")
" call Decho("ssh is ".(executable("ssh")? "" : "not ")."executable")
" call Decho("ftp is ".(executable("ftp")? "" : "not ")."executable")
" call Decho("sftp is ".(executable("sftp")? "" : "not ")."executable")
" sanity check:
if exists("b:netrw_method") && b:netrw_method =~ '[235]'
" call Decho("b:netrw_method=".b:netrw_method)
" b:netrw_method = 2: ftp+.netrc
" b:netrw_method = 3: ftp+machine,id,p/w,filename (ie. no .netrc)
" b:netrw_method = 5: wget (http)
" call Decho("b:netrw_method=".b:netrw_method." (for ".s:method.")")
if !executable("ftp")
if !exists("g:netrw_quiet")
call netrw#ErrorMsg(s:ERROR,"this system doesn't support remote directory listing via ftp",18)
@@ -7776,10 +7869,11 @@ fun! s:NetrwRemoteListing()
return
endif
elseif !exists("g:netrw_list_cmd") || g:netrw_list_cmd == ''
elseif s:method == "scp" && (!exists("g:netrw_list_cmd") || g:netrw_list_cmd == '')
" call Decho("g:netrw_list_cmd<".(exists("g:netrw_list_cmd")? g:netrw_list_cmd : 'n/a').">")
if !exists("g:netrw_quiet")
if g:netrw_list_cmd == ""
keepj call netrw#ErrorMsg(s:ERROR,g:netrw_ssh_cmd." is not executable on your system",47)
if !exists("g:netrw_list_cmd") || g:netrw_list_cmd == ""
keepj call netrw#ErrorMsg(s:ERROR,"neither ssh nor ftp"." is executable on your system",47)
else
keepj call netrw#ErrorMsg(s:ERROR,"this system doesn't support remote directory listing via ".g:netrw_list_cmd,19)
endif
@@ -7791,15 +7885,15 @@ fun! s:NetrwRemoteListing()
endif " (remote handling sanity check)
if exists("b:netrw_method")
" call Decho("setting w:netrw_method<".b:netrw_method.">")
" call Decho("setting w:netrw_method to b:netrw_method<".b:netrw_method.">")
let w:netrw_method= b:netrw_method
endif
if s:method == "ftp"
" use ftp to get remote file listing {{{3
" call Decho("use ftp to get remote file listing")
let s:method = "ftp"
let listcmd = g:netrw_ftp_list_cmd
let s:method = "ftp"
let listcmd = g:netrw_ftp_list_cmd
if g:netrw_sort_by =~ '^t'
let listcmd= g:netrw_ftp_timelist_cmd
elseif g:netrw_sort_by =~ '^s'
@@ -7822,15 +7916,14 @@ fun! s:NetrwRemoteListing()
sil! keepj %s/\r$//e
keepj call histdel("/",-1)
" if there's no ../ listed, then put ./ and ../ in
" if there's no ../ listed, then put ../ in
let line1= line(".")
exe "sil! keepj ".w:netrw_bannercnt
let line2= search('\.\.\/\%(\s\|$\)','cnW')
" call Decho("search(".'\.\.\/\%(\s\|$\)'."','cnW')=".line2." w:netrw_bannercnt=".w:netrw_bannercnt)
if line2 == 0
" call Decho("netrw is putting ./ and ../ into listing")
" call Decho("netrw is putting ../ into listing")
sil! keepj put='../'
sil! keepj put='./'
endif
exe "sil! keepj ".line1
sil! keepj norm! 0
@@ -7899,13 +7992,12 @@ fun! s:NetrwRemoteListing()
while getline('.') =~ g:netrw_ftp_browse_reject
sil! keepj d
endwhile
" if there's no ../ listed, then put ./ and ../ in
" if there's no ../ listed, then put ../ in
let line1= line(".")
sil! keepj 1
sil! keepj call search('^\.\.\/\%(\s\|$\)','W')
let line2= line(".")
if line2 == 0
exe 'sil! keepj '.w:netrw_bannercnt."put='./'"
if b:netrw_curdir != '/'
exe 'sil! keepj '.w:netrw_bannercnt."put='../'"
endif
@@ -8103,8 +8195,17 @@ endfun
" and reverse sorts will be requested of the server but not otherwise
" enforced here.
fun! s:NetrwRemoteFtpCmd(path,listcmd)
" call Dfunc("NetrwRemoteFtpCmd(path<".a:path."> listcmd<".a:listcmd.">) netrw_method=".w:netrw_method)
" call Decho("line($)=".line("$")." bannercnt=".w:netrw_bannercnt)
" call Dfunc("NetrwRemoteFtpCmd(path<".a:path."> listcmd<".a:listcmd.">) w:netrw_method=".(exists("w:netrw_method")? w:netrw_method : (exists("b:netrw_method")? b:netrw_method : "???")))
" call Decho("line($)=".line("$")." w:netrw_bannercnt=".w:netrw_bannercnt)
if !exists("w:netrw_method")
if exists("b:netrw_method")
let w:netrw_method= b:netrw_method
else
call netrw#ErrorMsg(2,"(s:NetrwRemoteFtpCmd) internal netrw error",93)
" call Dret("NetrwRemoteFtpCmd")
return
endif
endif
" because WinXX ftp uses unix style input
let ffkeep= &ff
@@ -8359,7 +8460,7 @@ fun! netrw#LocalBrowseCheck(dirname)
" call Dredir("LocalBrowseCheck","ls!")|redraw!|sleep 3
let ykeep= @@
if isdirectory(a:dirname)
" call Decho("(LocalBrowseCheck) ft<".&ft."> b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : " doesn't exist")."> dirname<".a:dirname.">"." line($)=".line("$")." ft<".&ft."> g:netrw_fastbrowse=".g:netrw_fastbrowse)
" call Decho("(LocalBrowseCheck) is-directory ft<".&ft."> b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : " doesn't exist")."> dirname<".a:dirname.">"." line($)=".line("$")." ft<".&ft."> g:netrw_fastbrowse=".g:netrw_fastbrowse)
let svposn= netrw#NetrwSavePosn()
if &ft != "netrw" || (exists("b:netrw_curdir") && b:netrw_curdir != a:dirname) || g:netrw_fastbrowse <= 1
sil! keepj keepalt call s:NetrwBrowse(1,a:dirname)
@@ -8407,9 +8508,11 @@ fun! s:LocalListing()
let filelist = filelist + glob(s:ComposePath(dirname,".*"),0,1)
" call Decho("(LocalListing) filelist=".filelist)
if index(filelist,'..') == -1 && b:netrw_curdir != '/'
if g:netrw_cygwin == 0 && (has("win32") || has("win95") || has("win64") || has("win16"))
" call Decho("(LocalListing) filelist=".string(filelist))
elseif index(filelist,'..') == -1 && b:netrw_curdir !~ '/'
" include ../ in the glob() entry if its missing
" call Decho("(LocalListing) forcibly tacking on \"..\"")
" call Decho("(LocalListing) forcibly including on \"..\"")
let filelist= filelist+[s:ComposePath(b:netrw_curdir,"../")]
" call Decho("(LocalListing) filelist=".string(filelist))
endif
@@ -8903,6 +9006,26 @@ endfun
" ---------------------------------------------------------------------
" Support Functions: {{{1
" ---------------------------------------------------------------------
" netrw#WinPath: tries to insure that the path is windows-acceptable, whether cygwin is used or not {{{2
fun! netrw#WinPath(path)
" call Dfunc("netrw#WinPath(path<".a:path.">)")
if (!g:netrw_cygwin || &shell !~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$') && (has("win32") || has("win95") || has("win64") || has("win16"))
" remove cygdrive prefix, if present
let path = substitute(a:path,'/cygdrive/\(.\)','\1:','')
" remove trailing slash (Win95)
let path = substitute(path, '\(\\\|/\)$', '', 'g')
" remove escaped spaces
let path = substitute(path, '\ ', ' ', 'g')
" convert slashes to backslashes
let path = substitute(path, '/', '\', 'g')
else
let path= a:path
endif
" call Dret("netrw#WinPath <".path.">")
return path
endfun
" ---------------------------------------------------------------------
" netrw#NetrwRestorePosn: restores the cursor and file position as saved by NetrwSavePosn() {{{2
fun! netrw#NetrwRestorePosn(...)
@@ -8968,6 +9091,21 @@ fun! netrw#NetrwSavePosn()
return ret
endfun
" ---------------------------------------------------------------------
" netrw#NetrwAccess: intended to provide access to variable values for netrw's test suite {{{2
" 0: marked file list of current buffer
" 1: marked file target
fun! netrw#NetrwAccess(ilist)
if a:ilist == 0
if exists("s:netrwmarkfilelist_".bufnr('%'))
return s:netrwmarkfilelist_{bufnr('%')}
else
return "no-list-buf#".bufnr('%')
endif
elseif a:ilist == 1
return s:netrwmftgt
endfun
" ------------------------------------------------------------------------
" netrw#RFC2396: converts %xx into characters {{{2
fun! netrw#RFC2396(fname)
@@ -9223,7 +9361,7 @@ endfun
" ---------------------------------------------------------------------
" s:RestoreCursorline: restores cursorline/cursorcolumn to original user settings {{{2
fun! s:RestoreCursorline()
" call Dfunc("s:RestoreCursorline() currently, cul=".&l:cursorline." cuc=".&l:cursorcolumn." win#".winnr()." buf#".bufnr("%"))
" call Dfunc("s:RestoreCursorline() currently, cul=".&l:cursorline." cuc=".&l:cursorcolumn." win#".winnr()." buf#".bufnr("%")." mod=".&mod)
if exists("s:netrw_usercul")
let &l:cursorline = s:netrw_usercul
endif
@@ -9292,11 +9430,7 @@ fun! s:NetrwEnew(...)
keepj call s:NetrwOptionRestore("w:")
" call Decho("generate a buffer with keepjumps keepalt enew!")
let netrw_keepdiff= &l:diff
" COMBAK: Benzinger: using tree mode, vim -o Foo/ file shows Foo/ Foo/ instead. Place return here, problem goes away (beeps result, but who knows)
" call Dredir("Benzinger 1:","ls!")
keepj keepalt enew!
" call Dredir("Benzinger 2:","ls!")
" COMBAK: Benzinger: using tree mode, vim -o Foo/ file shows Foo/ Foo/ instead. Place return here, problem remains.
let &l:diff= netrw_keepdiff
" call Decho("bufnr($)=".bufnr("$"))
keepj call s:NetrwOptionSave("w:")
@@ -9715,27 +9849,7 @@ fun! s:UseBufWinVars()
endfun
" ---------------------------------------------------------------------
" netrw#WinPath: tries to insure that the path is windows-acceptable, whether cygwin is used or not {{{2
fun! netrw#WinPath(path)
" call Dfunc("netrw#WinPath(path<".a:path.">)")
if (!g:netrw_cygwin || &shell !~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$') && (has("win32") || has("win95") || has("win64") || has("win16"))
" remove cygdrive prefix, if present
let path = substitute(a:path,'/cygdrive/\(.\)','\1:','')
" remove trailing slash (Win95)
let path = substitute(path, '\(\\\|/\)$', '', 'g')
" remove escaped spaces
let path = substitute(path, '\ ', ' ', 'g')
" convert slashes to backslashes
let path = substitute(path, '/', '\', 'g')
else
let path= a:path
endif
" call Dret("netrw#WinPath <".path.">")
return path
endfun
" ---------------------------------------------------------------------
" Settings Restoration: {{{2
" Settings Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo

View File

@@ -1,8 +1,8 @@
" netrwFileHandlers: contains various extension-based file handlers for
" netrw's browsers' x command ("eXecute launcher")
" Author: Charles E. Campbell
" Date: Mar 14, 2012
" Version: 11a
" Date: May 03, 2013
" Version: 11b ASTRO-ONLY
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
@@ -20,7 +20,7 @@
if exists("g:loaded_netrwFileHandlers") || &cp
finish
endif
let g:loaded_netrwFileHandlers= "v11a"
let g:loaded_netrwFileHandlers= "v11b"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
@@ -34,10 +34,10 @@ set cpo&vim
" netrwFileHandlers#Invoke: {{{1
fun! netrwFileHandlers#Invoke(exten,fname)
" call Dfunc("netrwFileHandlers#Invoke(exten<".a:exten."> fname<".a:fname.">)")
let fname= a:fname
let exten= a:exten
" list of supported special characters. Consider rcs,v --- that can be
" supported with a NFH_rcsCOMMAv() handler
if a:fname =~ '[@:,$!=\-+%?;~]'
if exten =~ '[@:,$!=\-+%?;~]'
let specials= {
\ '@' : 'AT',
\ ':' : 'COLON',
@@ -51,18 +51,18 @@ fun! netrwFileHandlers#Invoke(exten,fname)
\ '?' : 'QUESTION',
\ ';' : 'SEMICOLON',
\ '~' : 'TILDE'}
let fname= substitute(a:fname,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge')
let exten= substitute(a:exten,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge')
" call Decho('fname<'.fname.'> done with dictionary')
endif
if a:exten != "" && exists("*NFH_".a:exten)
if a:exten != "" && exists("*NFH_".exten)
" support user NFH_*() functions
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
exe "let ret= NFH_".a:exten.'("'.fname.'")'
elseif a:exten != "" && exists("*s:NFH_".a:exten)
exe "let ret= NFH_".exten.'("'.a:fname.'")'
elseif a:exten != "" && exists("*s:NFH_".exten)
" use builtin-NFH_*() functions
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
exe "let ret= s:NFH_".a:exten.'("'.fname.'")'
exe "let ret= s:NFH_".a:exten.'("'.a:fname.'")'
endif
" call Dret("netrwFileHandlers#Invoke 0 : ret=".ret)

View File

@@ -1,7 +1,7 @@
" netrwSettings.vim: makes netrw settings simpler
" Date: Sep 03, 2008
" Date: May 03, 2013
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
" Version: 13
" Version: 14a ASTRO-ONLY
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
@@ -19,7 +19,7 @@
if exists("g:loaded_netrwSettings") || &cp
finish
endif
let g:loaded_netrwSettings = "v13"
let g:loaded_netrwSettings = "v14a"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
@@ -88,6 +88,7 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_silent = '.g:netrw_silent
put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
put = 'let g:netrw_win95ftp = '.g:netrw_win95ftp
let s:netrw_xfer_stop= line(".")
@@ -99,27 +100,50 @@ fun! netrwSettings#NetrwSettings()
put ='+ Netrw Browser Control'
put = 'let g:netrw_alto = '.g:netrw_alto
put = 'let g:netrw_altv = '.g:netrw_altv
put = 'let g:netrw_banner = '.g:netrw_banner
if exists("g:netrw_bannerbackslash")
put = 'let g:netrw_bannerbackslash = '.g:netrw_bannerbackslash
else
put = '\" let g:netrw_bannerbackslash = (not defined)'
endif
put = 'let g:netrw_browse_split = '.g:netrw_browse_split
if exists("g:netrw_browsex_viewer")
put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
else
put = 'let g:netrw_browsex_viewer = (not defined)'
put = '\" let g:netrw_browsex_viewer = (not defined)'
endif
put = 'let g:netrw_compress = '.g:netrw_compress
if exists("g:Netrw_corehandler")
put = 'let g:Netrw_corehandler = '.g:Netrw_corehandler
else
put = '\" let g:Netrw_corehandler = (not defined)'
endif
put = 'let g:netrw_ctags = '.g:netrw_ctags
put = 'let g:netrw_cursor = '.g:netrw_cursor
let decompressline= line("$")
put ='let g:netrw_decompress...'
put = 'let g:netrw_decompress = '.string(g:netrw_decompress)
if exists("g:netrw_dynamic_maxfilenamelen")
put = 'let g:netrw_dynamic_maxfilenamelen='.g:netrw_dynamic_maxfilenamelen
else
put = '\" let g:netrw_dynamic_maxfilenamelen= (not defined)'
endif
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
put = 'let g:netrw_errorlvl = '.g:netrw_errorlvl
put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
let fnameescline= line("$")
put = 'let g:netrw_fname_escape...'
put = 'let g:netrw_fname_escape = '.string(g:netrw_fname_escape)
put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
put = 'let g:netrw_ftp_sizelist_cmd = '.g:netrw_ftp_sizelist_cmd
put = 'let g:netrw_ftp_timelist_cmd = '.g:netrw_ftp_timelist_cmd
let globescline= line("$")
put ='let g:netrw_glob_escape...'
put = 'let g:netrw_glob_escape = '.string(g:netrw_glob_escape)
put = 'let g:netrw_hide = '.g:netrw_hide
if exists("g:netrw_home")
put = 'let g:netrw_home = '.g:netrw_home
else
put = '\" let g:netrw_home = (not defined)'
endif
put = 'let g:netrw_keepdir = '.g:netrw_keepdir
put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
@@ -127,23 +151,30 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir
put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
put = 'let g:netrw_menu = '.g:netrw_menu
put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
if exists("g:netrw_nobeval")
put = 'let g:netrw_nobeval = '.g:netrw_nobeval
else
put = '\" let g:netrw_nobeval = (not defined)'
endif
put = 'let g:netrw_remote_mkdir = '.g:netrw_remote_mkdir
put = 'let g:netrw_preview = '.g:netrw_preview
put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
put = 'let g:netrw_retmap = '.g:netrw_retmap
put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
put = 'let g:netrw_silent = '.g:netrw_silent
put = 'let g:netrw_sort_by = '.g:netrw_sort_by
put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
put = 'let g:netrw_sort_options = '.g:netrw_sort_options
put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
put = 'let g:netrw_scpport = '.g:netrw_scpport
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
put = 'let g:netrw_sshport = '.g:netrw_sshport

View File

@@ -1,8 +1,8 @@
" Vim OMNI completion script for SQL
" Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 14.0
" Last Change: 2012 Dec 04
" Version: 15.0
" Last Change: 2013 May 13
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
" Usage: For detailed help
" ":help sql.txt"
@@ -11,6 +11,18 @@
" History
"
" TODO
" - Jonas Enberg - if no table is found when using column completion
" look backwards to a FROM clause and find the first table
" and complete it.
"
" Version 15.0 (May 2013)
" - NF: Changed the SQL precached syntax items, omni_sql_precache_syntax_groups,
" to use regular expressions to pick up extended syntax group names.
" This requires an updated SyntaxComplete plugin version 13.0.
" If the required versions have not been installed, previous
" behaviour will not be impacted.
"
" Version 14.0 (Dec 2012)
" - BF: Added check for cpo
"
@@ -91,7 +103,7 @@ endif
if exists('g:loaded_sql_completion')
finish
endif
let g:loaded_sql_completion = 130
let g:loaded_sql_completion = 150
let s:keepcpo= &cpo
set cpo&vim
@@ -110,12 +122,14 @@ let s:syn_value = []
" Used in conjunction with the syntaxcomplete plugin
let s:save_inc = ""
let s:save_exc = ""
if exists('g:omni_syntax_group_include_sql')
let s:save_inc = g:omni_syntax_group_include_sql
if !exists('g:omni_syntax_group_include_sql')
let g:omni_syntax_group_include_sql = ''
endif
if exists('g:omni_syntax_group_exclude_sql')
let s:save_exc = g:omni_syntax_group_exclude_sql
if !exists('g:omni_syntax_group_exclude_sql')
let g:omni_syntax_group_exclude_sql = ''
endif
let s:save_inc = g:omni_syntax_group_include_sql
let s:save_exc = g:omni_syntax_group_exclude_sql
" Used with the column list
let s:save_prev_table = ""
@@ -127,12 +141,12 @@ endif
" Default syntax items to precache
if !exists('g:omni_sql_precache_syntax_groups')
let g:omni_sql_precache_syntax_groups = [
\ 'syntax',
\ 'sqlKeyword',
\ 'sqlFunction',
\ 'sqlOption',
\ 'sqlType',
\ 'sqlStatement'
\ 'syntax\w*',
\ 'sqlKeyword\w*',
\ 'sqlFunction\w*',
\ 'sqlOption\w*',
\ 'sqlType\w*',
\ 'sqlStatement\w*'
\ ]
endif
" Set ignorecase to the ftplugin standard
@@ -621,19 +635,23 @@ function! s:SQLCGetSyntaxList(syn_group)
" Return previously cached value
let compl_list = s:syn_value[list_idx]
else
let s:save_inc = g:omni_syntax_group_include_sql
let s:save_exc = g:omni_syntax_group_exclude_sql
let g:omni_syntax_group_include_sql = ''
let g:omni_syntax_group_exclude_sql = ''
" Request the syntax list items from the
" syntax completion plugin
if syn_group == 'syntax'
" Handle this special case. This allows the user
" to indicate they want all the syntax items available,
" so do not specify a specific include list.
let g:omni_syntax_group_include_sql = ''
let syn_value = syntaxcomplete#OmniSyntaxList()
else
" The user has specified a specific syntax group
let g:omni_syntax_group_include_sql = syn_group
let syn_value = syntaxcomplete#OmniSyntaxList(syn_group)
endif
let g:omni_syntax_group_exclude_sql = ''
let syn_value = syntaxcomplete#OmniSyntaxList()
let g:omni_syntax_group_include_sql = s:save_inc
let g:omni_syntax_group_exclude_sql = s:save_exc
" Cache these values for later use

View File

@@ -1,18 +1,34 @@
" Vim completion script
" Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 11.0
" Last Change: 2012 Dec 04
" Version: 13.0
" Last Change: 2013 May 14
" Usage: For detailed help, ":help ft-syntax-omni"
" History
"
" Version 13.0
" - Extended the option omni_syntax_group_include_{filetype}
" to accept a comma separated list of regex's rather than
" string. For example, for the javascript filetype you could
" use:
" let g:omni_syntax_group_include_javascript = 'javascript\w\+,jquery\w\+'
" - Some syntax files (perl.vim) use the match // syntax as a mechanism
" to identify keywords. This update attempts to parse the
" match syntax and pull out syntax items which are at least
" 3 words or more.
"
" Version 12.0
" - It is possible to have '-' as part of iskeyword, when
" checking for character ranges, tighten up the regex.
" E688: More targets than List items.
"
" Version 11.0
" Corrected which characters required escaping during
" - Corrected which characters required escaping during
" substitution calls.
"
" Version 10.0
" Cycle through all the character ranges specified in the
" - Cycle through all the character ranges specified in the
" iskeyword option and build a list of valid word separators.
" Prior to this change, only actual characters were used,
" where for example ASCII "45" == "-". If "45" were used
@@ -20,30 +36,30 @@
" This introduces a new option, since the character ranges
" specified could be multibyte:
" let g:omni_syntax_use_single_byte = 1
" This by default will only allow single byte ASCII
" - This by default will only allow single byte ASCII
" characters to be added and an additional check to ensure
" the charater is printable (see documentation for isprint).
"
" Version 9.0
" Add the check for cpo.
" - Add the check for cpo.
"
" Version 8.0
" Updated SyntaxCSyntaxGroupItems()
" - Updated SyntaxCSyntaxGroupItems()
" - Some additional syntax items were also allowed
" on nextgroup= lines which were ignored by default.
" Now these lines are processed independently.
"
" Version 7.0
" Updated syntaxcomplete#OmniSyntaxList()
" - Updated syntaxcomplete#OmniSyntaxList()
" - Looking up the syntax groups defined from a syntax file
" looked for only 1 format of {filetype}GroupName, but some
" syntax writers use this format as well:
" {b:current_syntax}GroupName
" OmniSyntaxList() will now check for both if the first
" - OmniSyntaxList() will now check for both if the first
" method does not find a match.
"
" Version 6.0
" Added syntaxcomplete#OmniSyntaxList()
" - Added syntaxcomplete#OmniSyntaxList()
" - Allows other plugins to use this for their own
" purposes.
" - It will return a List of all syntax items for the
@@ -52,7 +68,7 @@
" sqlcomplete plugin to populate a Choose box.
"
" Version 5.0
" Updated SyntaxCSyntaxGroupItems()
" - Updated SyntaxCSyntaxGroupItems()
" - When processing a list of syntax groups, the final group
" was missed in function SyntaxCSyntaxGroupItems.
"
@@ -70,7 +86,7 @@ endif
if exists('g:loaded_syntax_completion')
finish
endif
let g:loaded_syntax_completion = 110
let g:loaded_syntax_completion = 130
" Turn on support for line continuations when creating the script
let s:cpo_save = &cpo
@@ -113,7 +129,8 @@ endif
" This script will build a completion list based on the syntax
" elements defined by the files in $VIMRUNTIME/syntax.
let s:syn_remove_words = 'match,matchgroup=,contains,'.
" let s:syn_remove_words = 'match,matchgroup=,contains,'.
let s:syn_remove_words = 'matchgroup=,contains,'.
\ 'links to,start=,end='
" \ 'links to,start=,end=,nextgroup='
@@ -275,9 +292,19 @@ function! OmniSyntaxList(...)
" sqlType
" sqlOperators
" sqlKeyword ...
redir @l
silent! exec 'syntax list '.join(list_parms)
redir END
if !empty(list_parms) && empty(substitute(join(list_parms), '[a-zA-Z ]', '', 'g'))
" If list_parms only includes word characters, use it to limit
" the syntax elements.
" If using regex syntax list will fail to find those items, so
" simply grab the who syntax list.
redir @l
silent! exec 'syntax list '.join(list_parms)
redir END
else
redir @l
silent! exec 'syntax list'
redir END
endif
let syntax_full = "\n".@l
let @l = saveL
@@ -311,82 +338,167 @@ function! OmniSyntaxList(...)
endif
endif
" Sometimes filetypes can be composite names, like c.doxygen
" Loop through each individual part looking for the syntax
" items specific to each individual filetype.
if empty(list_parms)
let list_parms = [&filetype.'\w\+']
endif
let syn_list = ''
let ftindex = 0
let ftindex = match(&filetype, '\w\+', ftindex)
let index = 0
for group_regex in list_parms
" Sometimes filetypes can be composite names, like c.doxygen
" Loop through each individual part looking for the syntax
" items specific to each individual filetype.
" let ftindex = 0
" let ftindex = match(syntax_full, group_regex, ftindex)
while ftindex > -1
let ft_part_name = matchstr( &filetype, '\w\+', ftindex )
" while ftindex > -1
" let ft_part_name = matchstr( syntax_full, '\w\+', ftindex )
" Syntax rules can contain items for more than just the current
" filetype. They can contain additional items added by the user
" via autocmds or their vimrc.
" Some syntax files can be combined (html, php, jsp).
" We want only items that begin with the filetype we are interested in.
let next_group_regex = '\n' .
\ '\zs'.ft_part_name.'\w\+\ze'.
\ '\s\+xxx\s\+'
let index = 0
let index = match(syntax_full, next_group_regex, index)
if index == -1 && exists('b:current_syntax') && ft_part_name != b:current_syntax
" There appears to be two standards when writing syntax files.
" Either items begin as:
" syn keyword {filetype}Keyword values ...
" let b:current_syntax = "sql"
" let b:current_syntax = "sqlanywhere"
" Or
" syn keyword {syntax_filename}Keyword values ...
" let b:current_syntax = "mysql"
" So, we will make the format of finding the syntax group names
" a bit more flexible and look for both if the first fails to
" find a match.
" Syntax rules can contain items for more than just the current
" filetype. They can contain additional items added by the user
" via autocmds or their vimrc.
" Some syntax files can be combined (html, php, jsp).
" We want only items that begin with the filetype we are interested in.
let next_group_regex = '\n' .
\ '\zs'.b:current_syntax.'\w\+\ze'.
\ '\zs'.group_regex.'\ze'.
\ '\s\+xxx\s\+'
let index = 0
let index = match(syntax_full, next_group_regex, index)
endif
while index > -1
let group_name = matchstr( syntax_full, '\w\+', index )
let get_syn_list = 1
for exclude_group_name in list_exclude_groups
if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
let get_syn_list = 0
endif
endfor
" This code is no longer needed in version 6.0 since we have
" augmented the syntax list command to only retrieve the syntax
" groups we are interested in.
"
" if get_syn_list == 1
" if syntax_group_include_{filetype} != ''
" if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endif
" endif
if get_syn_list == 1
" Pass in the full syntax listing, plus the group name we
" are interested in.
let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
let syn_list = syn_list . extra_syn_list . "\n"
" For the matched group name, strip off any of the regex special
" characters and see if we get a match with the current syntax
if index == -1 && exists('b:current_syntax') && substitute(group_regex, '[^a-zA-Z ]\+.*', '', 'g') !~ '^'.b:current_syntax
" There appears to be two standards when writing syntax files.
" Either items begin as:
" syn keyword {filetype}Keyword values ...
" let b:current_syntax = "sql"
" let b:current_syntax = "sqlanywhere"
" Or
" syn keyword {syntax_filename}Keyword values ...
" let b:current_syntax = "mysql"
" So, we will make the format of finding the syntax group names
" a bit more flexible and look for both if the first fails to
" find a match.
let next_group_regex = '\n' .
\ '\zs'.b:current_syntax.'\w\+\ze'.
\ '\s\+xxx\s\+'
let index = 0
let index = match(syntax_full, next_group_regex, index)
endif
let index = index + strlen(group_name)
let index = match(syntax_full, next_group_regex, index)
endwhile
while index > -1
let group_name = matchstr( syntax_full, '\w\+', index )
let ftindex = ftindex + len(ft_part_name)
let ftindex = match( &filetype, '\w\+', ftindex )
endwhile
let get_syn_list = 1
for exclude_group_name in list_exclude_groups
if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
let get_syn_list = 0
endif
endfor
" This code is no longer needed in version 6.0 since we have
" augmented the syntax list command to only retrieve the syntax
" groups we are interested in.
"
" if get_syn_list == 1
" if syntax_group_include_{filetype} != ''
" if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endif
" endif
if get_syn_list == 1
" Pass in the full syntax listing, plus the group name we
" are interested in.
let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
let syn_list = syn_list . extra_syn_list . "\n"
endif
let index = index + strlen(group_name)
let index = match(syntax_full, next_group_regex, index)
endwhile
" let ftindex = ftindex + len(ft_part_name)
" let ftindex = match( syntax_full, group_regex, ftindex )
" endwhile
endfor
" " Sometimes filetypes can be composite names, like c.doxygen
" " Loop through each individual part looking for the syntax
" " items specific to each individual filetype.
" let syn_list = ''
" let ftindex = 0
" let ftindex = match(&filetype, '\w\+', ftindex)
" while ftindex > -1
" let ft_part_name = matchstr( &filetype, '\w\+', ftindex )
" " Syntax rules can contain items for more than just the current
" " filetype. They can contain additional items added by the user
" " via autocmds or their vimrc.
" " Some syntax files can be combined (html, php, jsp).
" " We want only items that begin with the filetype we are interested in.
" let next_group_regex = '\n' .
" \ '\zs'.ft_part_name.'\w\+\ze'.
" \ '\s\+xxx\s\+'
" let index = 0
" let index = match(syntax_full, next_group_regex, index)
" if index == -1 && exists('b:current_syntax') && ft_part_name != b:current_syntax
" " There appears to be two standards when writing syntax files.
" " Either items begin as:
" " syn keyword {filetype}Keyword values ...
" " let b:current_syntax = "sql"
" " let b:current_syntax = "sqlanywhere"
" " Or
" " syn keyword {syntax_filename}Keyword values ...
" " let b:current_syntax = "mysql"
" " So, we will make the format of finding the syntax group names
" " a bit more flexible and look for both if the first fails to
" " find a match.
" let next_group_regex = '\n' .
" \ '\zs'.b:current_syntax.'\w\+\ze'.
" \ '\s\+xxx\s\+'
" let index = 0
" let index = match(syntax_full, next_group_regex, index)
" endif
" while index > -1
" let group_name = matchstr( syntax_full, '\w\+', index )
" let get_syn_list = 1
" for exclude_group_name in list_exclude_groups
" if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endfor
" " This code is no longer needed in version 6.0 since we have
" " augmented the syntax list command to only retrieve the syntax
" " groups we are interested in.
" "
" " if get_syn_list == 1
" " if syntax_group_include_{filetype} != ''
" " if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
" " let get_syn_list = 0
" " endif
" " endif
" " endif
" if get_syn_list == 1
" " Pass in the full syntax listing, plus the group name we
" " are interested in.
" let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
" let syn_list = syn_list . extra_syn_list . "\n"
" endif
" let index = index + strlen(group_name)
" let index = match(syntax_full, next_group_regex, index)
" endwhile
" let ftindex = ftindex + len(ft_part_name)
" let ftindex = match( &filetype, '\w\+', ftindex )
" endwhile
" Convert the string to a List and sort it.
let compl_list = sort(split(syn_list))
@@ -454,10 +566,65 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
\ , "\n", 'g'
\ )
" Attempt to deal with lines using the match syntax
" javaScriptDocTags xxx match /@\(param\|argument\|requires\|file\)\>/
" Though it can use any types of regex, so this plugin will attempt
" to restrict it
" 1. Only use \( or \%( constructs remove all else
" 2 Remove and []s
" 3. Account for match //constructs
" \%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?
" 4. Hope for the best
"
"
let syn_list_old = syn_list
while syn_list =~ '\<match\>\s\+\/'
if syn_list =~ 'perlElseIfError'
let syn_list = syn_list
endif
" Check if the match has words at least 3 characters long
if syn_list =~ '\<match \/\zs.\{-}\<\w\{3,}\>.\{-}\ze\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+'
" Remove everything after / and before the first \(
let syn_list = substitute( syn_list, '\<match \/\zs.\{-}\ze\\%\?(.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
" Remove everything after \) and up to the ending /
let syn_list = substitute( syn_list, '\<match \/.\{-}\\)\zs.\{-}\ze\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
" Remove any character classes
" let syn_list = substitute( syn_list, '\<match /\zs.\{-}\[[^]]*\].\{-}\ze\/ ', '', 'g' )
let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\[[^]]*\]\ze.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?', '', 'g' )
" Remove any words < 3 characters
let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\<\w\{1,2}\>\ze.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
" Remove all non-word characters
" let syn_list = substitute( syn_list, '\<match /\zs.\{-}\<\W\+\>.\{-}\ze\/ ', "", 'g' )
" let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\W\+\ze.\{-}\/ ', ' ', 'g' )
" Do this by using the outer substitue() call to gather all
" text between the match /.../ tags.
" The inner substitute() call operates on the text selected
" and replaces all non-word characters.
let syn_list = substitute( syn_list, '\<match \/\zs\(.\{-}\)\ze\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+'
\ , '\=substitute(submatch(1), "\\W\\+", " ", "g")'
\ , 'g' )
" Remove the match / / syntax
let syn_list = substitute( syn_list, '\<match \/\(.\{-}\)\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '\1', 'g' )
else
" No words long enough, remove the match
" Remove the match syntax
" let syn_list = substitute( syn_list, '\<match \/[^\/]*\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
let syn_list = substitute( syn_list, '\<match \/\%(.\{-}\)\?\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
endif
if syn_list =~ '\<match\>\s\+\/'
" Problem removing the match / / tags
let syn_list = ''
endif
endwhile
" Now strip off the newline + blank space + contained.
" Also include lines with nextgroup=@someName skip_key_words syntax_element
" \ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
" \ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=[@a-zA-Z,]*\)'
let syn_list = substitute(
\ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
\ syn_list, '\<\(contained\|nextgroup=[@a-zA-Z,]*\)'
\ , "", 'g'
\ )
@@ -497,7 +664,7 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" If so, add it to the list.
let accepted_chars = ''
for item in split(&iskeyword, ',')
if item =~ '-'
if item =~ '\d-\d'
" This is a character range (ie 47-58),
" cycle through each character within the range
let [b:start, b:end] = split(item, '-')

View File

@@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2012 Jun 30
" Last Change: 2013 May 31
"
" Additional contributors:
"
@@ -401,13 +401,13 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call add(html, '</head>')
let body_line_num = len(html)
if !empty(s:settings.prevent_copy)
call add(html, "<body onload='FixCharWidth();'>")
call add(html, "<body onload='FixCharWidth(); JumpToLine();'>")
call add(html, "<!-- hidden divs used by javascript to get the width of a char -->")
call add(html, "<div id='oneCharWidth'>0</div>")
call add(html, "<div id='oneInputWidth'><input size='1' value='0'".tag_close."</div>")
call add(html, "<div id='oneEmWidth' style='width: 1em;'></div>")
else
call add(html, '<body>')
call add(html, '<body onload="JumpToLine();">')
endif
call add(html, "<table border='1' width='100%' id='vimCodeElement'>")
@@ -503,6 +503,11 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call add(html, s:body_end_line)
call add(html, '</html>')
" The generated HTML is admittedly ugly and takes a LONG time to fold.
" Make sure the user doesn't do syntax folding when loading a generated file,
" using a modeline.
call add(html, '<!-- vim: set foldmethod=manual : -->')
let i = 1
let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html")
" Find an unused file name if current file name is already in use
@@ -539,14 +544,12 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
" add required javascript in reverse order so we can just call append again
" and again without adjusting {{{
" insert script closing tag if any javascript is needed
if s:settings.dynamic_folds || !empty(s:settings.prevent_copy)
call append(style_start, [
\ '',
\ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>"
\ ])
endif
" insert script closing tag
call append(style_start, [
\ '',
\ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>"
\ ])
" insert script which corrects the size of small input elements in
" prevent_copy mode. See 2html.vim for details on why this is needed and how
@@ -572,6 +575,55 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
\ '}'
\ ])
endif
"
" insert javascript to get IDs from line numbers, and to open a fold before
" jumping to any lines contained therein
call append(style_start, [
\ " /* Always jump to new location even if the line was hidden inside a fold, or",
\ " * we corrected the raw number to a line ID.",
\ " */",
\ " if (lineElem) {",
\ " lineElem.scrollIntoView(true);",
\ " }",
\ " return true;",
\ "}",
\ "if ('onhashchange' in window) {",
\ " window.onhashchange = JumpToLine;",
\ "}"
\ ])
if s:settings.dynamic_folds
call append(style_start, [
\ "",
\ " /* navigate upwards in the DOM tree to open all folds containing the line */",
\ " var node = lineElem;",
\ " while (node && node.id != 'vimCodeElement')",
\ " {",
\ " if (node.className == 'closed-fold')",
\ " {",
\ " /* toggle open the fold ID (remove window ID) */",
\ " toggleFold(node.id.substr(4));",
\ " }",
\ " node = node.parentNode;",
\ " }",
\ ])
endif
call append(style_start, [
\ "",
\ "/* function to open any folds containing a jumped-to line before jumping to it */",
\ "function JumpToLine()",
\ "{",
\ " var lineNum;",
\ " lineNum = window.location.hash;",
\ " lineNum = lineNum.substr(1); /* strip off '#' */",
\ "",
\ " if (lineNum.indexOf('L') == -1) {",
\ " lineNum = 'L'+lineNum;",
\ " }",
\ " if (lineNum.indexOf('W') == -1) {",
\ " lineNum = 'W1'+lineNum;",
\ " }",
\ " lineElem = document.getElementById(lineNum);"
\ ])
" Insert javascript to toggle matching folds open and closed in all windows,
" if dynamic folding is active.
@@ -596,12 +648,11 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
\ ])
endif
" insert script tag if any javascript is needed
if s:settings.dynamic_folds || s:settings.prevent_copy != ""
call append(style_start, [
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
endif "}}}
" insert script tag; javascript is always needed for the line number
" normalization for URL hashes
call append(style_start, [
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
" Insert styles from all the generated html documents and additional styles
" for the table-based layout of the side-by-side diff. The diff should take

View File

@@ -2,7 +2,7 @@
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2006 Dec 10
" Last Change: 2013 May 23
hi clear
set background=dark
@@ -43,6 +43,8 @@ hi MatchParen term=reverse ctermfg=blue guibg=Blue
hi TabLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
hi Underlined term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
hi Ignore ctermfg=black ctermbg=black guifg=black guibg=black
hi link IncSearch Visual
hi link String Constant
hi link Character Constant

View File

@@ -2,7 +2,7 @@
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2003 May 02
" Last Change: 2013 May 24
set background=dark
hi clear
@@ -11,7 +11,7 @@ if exists("syntax_on")
endif
let g:colors_name = "ron"
hi Normal guifg=cyan guibg=black
hi NonText guifg=brown
hi NonText guifg=yellow guibg=#303030
hi comment guifg=green
hi constant guifg=cyan gui=bold
hi identifier guifg=cyan gui=NONE
@@ -24,10 +24,11 @@ hi WarningMsg guifg=Black guibg=Green
hi Error guibg=Red
hi Todo guifg=Black guibg=orange
hi Cursor guibg=#60a060 guifg=#00ff00
hi Search guibg=lightslateblue
hi Search guibg=darkgray guifg=black gui=bold
hi IncSearch gui=NONE guibg=steelblue
hi LineNr guifg=darkgrey
hi title guifg=darkgrey
hi ShowMarksHL ctermfg=cyan ctermbg=lightblue cterm=bold guifg=yellow guibg=black gui=bold
hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue
hi StatusLine gui=bold guifg=cyan guibg=blue
hi label guifg=gold2
@@ -41,3 +42,4 @@ hi DiffDelete guibg=coral
hi Folded guibg=gray30
hi FoldColumn guibg=gray30 guifg=white
hi cIf0 guifg=gray
hi diffOnly guifg=red gui=bold

23
runtime/compiler/haml.vim Normal file
View File

@@ -0,0 +1,23 @@
if exists("current_compiler")
finish
endif
let current_compiler = "haml"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=haml\ -c
CompilerSet errorformat=
\Haml\ %trror\ on\ line\ %l:\ %m,
\Syntax\ %trror\ on\ line\ %l:\ %m,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2:

View File

@@ -0,0 +1,21 @@
" Vim compiler file
" Compiler: Microsoft Visual Studio C#
" Maintainer: Chiel ten Brinke (ctje92@gmail.com)
" Last Change: 2013 May 13
if exists("current_compiler")
finish
endif
let current_compiler = "msbuild"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m
CompilerSet makeprg=msbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true
let &cpo = s:keepcpo
unlet s:keepcpo

25
runtime/compiler/sass.vim Normal file
View File

@@ -0,0 +1,25 @@
if exists("current_compiler")
finish
endif
let current_compiler = "sass"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=sass\ -c
CompilerSet errorformat=
\%f:%l:%m\ (Sass::Syntax%trror),
\%ESyntax\ %trror:%m,
\%C%\\s%\\+on\ line\ %l\ of\ %f,
\%Z%.%#,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2:

View File

@@ -0,0 +1,22 @@
" Vim compiler file
" Compiler: Mono C#
" Maintainer: Chiel ten Brinke (ctje92@gmail.com)
" Last Change: 2013 May 13
if exists("current_compiler")
finish
endif
let current_compiler = "xbuild"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m
CompilerSet makeprg=xbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.3. Last change: 2013 Mar 19
*autocmd.txt* For Vim version 7.3. Last change: 2013 May 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -691,8 +691,11 @@ InsertCharPre When a character is typed in Insert mode,
InsertEnter Just before starting Insert mode. Also for
Replace mode and Virtual Replace mode. The
|v:insertmode| variable indicates the mode.
Be careful not to move the cursor or do
anything else that the user does not expect.
Be careful not to do anything else that the
user does not expect.
The cursor is restored afterwards. If you do
not want that set |v:char| to a non-empty
string.
*InsertLeave*
InsertLeave When leaving Insert mode. Also when using
CTRL-O |i_CTRL-O|. But not for |i_CTRL-C|.

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.3. Last change: 2013 May 06
*eval.txt* For Vim version 7.3. Last change: 2013 May 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1171,7 +1171,7 @@ b:changedtick The total number of changes to the current buffer. It is
A variable name that is preceded with "w:" is local to the current window. It
is deleted when the window is closed.
*tabpage-variable* *t:var*
*tabpage-variable* *t:var* *t:*
A variable name that is preceded with "t:" is local to the current tab page,
It is deleted when the tab page is closed. {not available when compiled
without the |+windows| feature}
@@ -1297,7 +1297,7 @@ v:beval_winnr The number of the window, over which the mouse pointer is. Only
*v:char* *char-variable*
v:char Argument for evaluating 'formatexpr' and used for the typed
character when using <expr> in an abbreviation |:map-<expr>|.
It is also used by the |InsertCharPre| event.
It is also used by the |InsertCharPre| and |InsertEnter| events.
*v:charconvert_from* *charconvert_from-variable*
v:charconvert_from
@@ -4639,7 +4639,7 @@ pumvisible() *pumvisible()*
This can be used to avoid some things that would remove the
popup menu.
*E860* *E861*
*E860*
py3eval({expr}) *py3eval()*
Evaluate Python expression {expr} and return its result
converted to Vim data structures.

View File

@@ -1,4 +1,4 @@
.TH EVIM 1 "16 février 2002 February 16"
.TH EVIM 1 "16 février 2002"
.SH NAME
evim \- « Easy Vim », édite un fichier avec Vim sans utiliser les modes
.SH SYNOPSIS
@@ -54,4 +54,4 @@ Voir le menu Aide/Remerciements ou ":help credits" dans
.SH TRADUCTION
Cette page de manuel a été traduite David Blanchet.
<david.blanchet@free.fr> 2005-03-26.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com>
Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@@ -1,4 +1,4 @@
.TH EVIM 1 "16 février 2002 February 16"
.TH EVIM 1 "16 février 2002"
.SH NAME
evim \- « Easy Vim », édite un fichier avec Vim sans utiliser les modes
.SH SYNOPSIS
@@ -54,4 +54,4 @@ Voir le menu Aide/Remerciements ou ":help credits" dans
.SH TRADUCTION
Cette page de manuel a été traduite David Blanchet.
<david.blanchet@free.fr> 2005-03-26.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com>
Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.3. Last change: 2011 Jun 19
*filetype.txt* For Vim version 7.3. Last change: 2013 May 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -603,7 +603,7 @@ Since the text for this plugin is rather long it has been put in a separate
file: |ft_sql.txt|.
TEX *ft-tex-plugin*
TEX *ft-tex-plugin* *g:tex_flavor*
If the first line of a *.tex file has the form >
%&<format>

View File

@@ -1,4 +1,4 @@
*ft_sql.txt* For Vim version 7.3. Last change: 2013 Apr 05
*ft_sql.txt* For Vim version 7.3. Last change: 2013 May 15
by David Fishburn
@@ -349,6 +349,7 @@ may not work properly on all platforms: >
The static maps (which are based on the syntax highlight groups) follow this
format: >
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword\w*')<CR><C-X><C-O>
This command breaks down as: >
imap - Create an insert map
@@ -369,6 +370,9 @@ This command breaks down as: >
command while editing a SQL file.
'sqlKeyword' - Display the items for the sqlKeyword highlight
group
'sqlKeyword\w*' - A second option available with Vim 7.4 which
uses a regular expression to determine which
syntax groups to use
)<CR> - Execute the :let command
<C-X><C-O> - Trigger the standard omni completion key stroke.
Passing in 'sqlKeyword' instructs the SQL

View File

@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.3. Last change: 2013 May 06
*if_pyth.txt* For Vim version 7.3. Last change: 2013 May 25
VIM REFERENCE MANUAL by Paul Moore
@@ -11,9 +11,11 @@ The Python Interface to Vim *python* *Python*
3. Buffer objects |python-buffer|
4. Range objects |python-range|
5. Window objects |python-window|
6. pyeval(), py3eval() Vim functions |python-pyeval|
7. Dynamic loading |python-dynamic|
8. Python 3 |python3|
6. Tab page objects |python-tabpage|
7. vim.bindeval objects |python-bindeval-objects|
8. pyeval(), py3eval() Vim functions |python-pyeval|
9. Dynamic loading |python-dynamic|
10. Python 3 |python3|
{Vi does not have any of these commands}
@@ -57,6 +59,22 @@ Example: >
Note: Python is very sensitive to the indenting. Make sure the "class" line
and "EOF" do not have any indent.
*:pydo*
:[range]pydo {body} Execute Python function "def _vim_pydo(line, linenr):
{body}" for each line in the [range], with the
function arguments being set to the text of each line
in turn, without a trailing <EOL>, and the current
line number. The function should return a string or
None. If a string is returned, it becomes the text of
the line in the current turn. The default for [range]
is the whole file: "1,$".
{not in Vi}
Examples:
>
:pydo return "%s\t%d" % (line[::-1], len(line))
:pydo if line: return "%4d: %s" % (linenr, line)
<
*:pyfile* *:pyf*
:[range]pyf[ile] {file}
Execute the Python script in {file}. The whole
@@ -154,42 +172,20 @@ vim.eval(str) *python-eval*
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}]
vim.bindeval(str) *python-bindeval*
Like |python-eval|, but
1. if expression evaluates to |List| or |Dictionary| it is returned as
vimlist or vimdictionary python type that are connected to original
list or dictionary. Thus modifications to these objects imply
modifications of the original.
Additionally, vimlist and vimdictionary type have read-write
`.locked` attribute that returns
Value Meaning ~
zero Variable is not locked
vim.VAR_LOCKED Variable is locked, but can be unlocked
vim.VAR_FIXED Variable is locked and can't be unlocked
integer constants. If variable is not fixed, you can do
`var.locked=True` to lock it and `var.locked=False` to unlock.
There is no recursive locking like |:lockvar|! does. There is also
no way to lock a specific key or check whether it is locked (in any
case these locks are ignored by anything except |:let|: |extend()|
does not care, neither does python interface).
Vimdictionary type also supports `.scope` attribute which is one of
Value Meaning ~
zero Dictionary is not a scope one
vim.VAR_DEF_SCOPE Function-local or global scope dictionary
vim.VAR_SCOPE Other scope dictionary
2. if expression evaluates to a function reference, then it returns
callable vimfunction object. Use self keyword argument to assign
|self| object for dictionary functions.
Note: this function has the same behavior as |lua-eval| (except that
lua does not support running vim functions), |python-eval| is
kept for backwards compatibility in order not to make scripts
relying on outputs of vim.eval() being a copy of original or
vim.eval("1") returning a string.
Like |python-eval|, but returns special objects described in
|python-bindeval-objects|. These python objects let you modify (|List|
or |Dictionary|) or call (|Funcref|) vim objects.
vim.strwidth(str) *python-strwidth*
Like |strwidth()|: returns number of display cells str occupies, tab
is counted as one cell.
vim.chdir(*args, **kwargs) *python-chdir*
vim.fchdir(*args, **kwargs) *python-fchdir*
Run os.chdir or os.fchdir, then all appropriate vim stuff.
Note: you should not use these functions directly, use os.chdir and
os.fchdir instead. Behavior of vim.fchdir is undefined in case
os.fchdir does not exist.
Error object of the "vim" module
@@ -223,12 +219,12 @@ vim.windows *python-windows*
:py w in vim.windows # Membership test
:py n = len(vim.windows) # Number of elements
:py for w in vim.windows: # Sequential access
< Note: vim.windows object always accesses current tab page,.
< Note: vim.windows object always accesses current tab page.
|python-tabpage|.windows objects are bound to parent |python-tabpage|
object and always use windows from that tab page (or throw vim.error
in case tab page was deleted). You can keep a reference to both
without keeping a reference to vim module object or |python-tabpage|,
they will not loose their properties in this case.
they will not lose their properties in this case.
vim.tabpages *python-tabpages*
A sequence object providing access to the list of vim tab pages. The
@@ -286,6 +282,9 @@ vim.options *python-options*
buffer-local options and |python-window| objects to access to
window-local options.
Type of this object is available via "Options" attribute of vim
module.
Output from Python *python-output*
Vim displays all Python code output in the Vim message area. Normal
output appears as information messages, and error output appears as
@@ -336,6 +335,13 @@ The buffer object attributes are:
this object will raise KeyError. If option is
|global-local| and local value is missing getting it
will return None.
b.name String, RW. Contains buffer name (full path).
Note: when assigning to b.name |BufFilePre| and
|BufFilePost| autocommands are launched.
b.number Buffer number. Can be used as |python-buffers| key.
Read-only.
b.valid True or False. Buffer object becames invalid when
corresponding buffer is wiped out.
The buffer object methods are:
b.append(str) Append a line to the buffer
@@ -355,6 +361,8 @@ Note that when adding a line it must not contain a line break character '\n'.
A trailing '\n' is allowed and ignored, so that you can do: >
:py b.append(f.readlines())
Buffer object type is available using "Buffer" attribute of vim module.
Examples (assume b is the current buffer) >
:py print b.name # write the buffer file name
:py b[0] = "hello!!!" # replace the top line
@@ -396,6 +404,8 @@ The range object methods are:
for Python's built-in list objects.
r.append(list, nr) Idem, after line "nr"
Range object type is available using "Range" attribute of vim module.
Example (assume r is the current range):
# Send all lines in a range to the default printer
vim.command("%d,%dhardcopy!" % (r.start+1,r.end+1))
@@ -433,12 +443,17 @@ Window attributes are:
This is zero in case it cannot be determined
(e.g. when the window object belongs to other
tab page).
row, col (read-only) On-screen window position in display cells.
row, col (read-only) On-screen window position in display cells.
First position is zero.
tabpage (read-only) Window tab page.
valid (read-write) True or False. Window object becames invalid
when corresponding window is closed.
The height attribute is writable only if the screen is split horizontally.
The width attribute is writable only if the screen is split vertically.
Window object type is available using "Window" attribute of vim module.
==============================================================================
6. Tab page objects *python-tabpage*
@@ -456,15 +471,124 @@ Tab page attributes are:
windows Like |python-windows|, but for current tab page.
vars The tab page |t:| variables.
window Current tabpage window.
valid True or False. Tab page object becames invalid when
corresponding tab page is closed.
TabPage object type is available using "TabPage" attribute of vim module.
==============================================================================
6. pyeval() and py3eval() Vim functions *python-pyeval*
7. vim.bindeval objects *python-bindeval-objects*
vim.Dictionary object *python-Dictionary*
Dictionary-like object providing access to vim |Dictionary| type.
Attributes:
Attribute Description ~
locked One of *python-.locked*
Value Description ~
zero Variable is not locked
vim.VAR_LOCKED Variable is locked, but can be unlocked
vim.VAR_FIXED Variable is locked and can't be unlocked
Read-write. You can unlock locked variable by assigning
`True` or `False` to this attribute. No recursive locking
is supported.
scope One of
Value Description ~
zero Dictionary is not a scope one
vim.VAR_DEF_SCOPE |g:| or |l:| dictionary
vim.VAR_SCOPE Other scope dictionary,
see |internal-variables|
Methods (note: methods do not support keyword arguments):
Method Description ~
keys() Returns a list with dictionary keys.
values() Returns a list with dictionary values.
items() Returns a list of 2-tuples with dictionary contents.
update(iterable), update(dictionary), update(**kwargs)
Adds keys to dictionary.
get(key[, default=None])
Obtain key from dictionary, returning the default if it is
not present.
pop(key[, default])
Remove specified key from dictionary and return
corresponding value. If key is not found and default is
given returns the default, otherwise raises KeyError.
popitem()
Remove random key from dictionary and return (key, value)
pair.
has_key(key)
Check whether dictionary contains specified key, similar
to `key in dict`.
__new__(), __new__(iterable), __new__(dictionary), __new__(update)
You can use `vim.Dictionary()` to create new vim
dictionaries. `d=vim.Dictionary(arg)` is the same as
`d=vim.bindeval('{}');d.update(arg)`. Without arguments
constructs empty dictionary.
Examples: >
d = vim.Dictionary(food="bar") # Constructor
d['a'] = 'b' # Item assignment
print d['a'] # getting item
d.update({'c': 'd'}) # .update(dictionary)
d.update(e='f') # .update(**kwargs)
d.update((('g', 'h'), ('i', 'j'))) # .update(iterable)
for key in d.keys(): # .keys()
for val in d.values(): # .values()
for key, val in d.items(): # .items()
print isinstance(d, vim.Dictionary) # True
for key in d: # Iteration over keys
class Dict(vim.Dictionary): # Subclassing
<
Note: when iterating over keys you should not modify dictionary.
vim.List object *python-List*
Sequence-like object providing access to vim |List| type.
Supports `.locked` attribute, see |python-.locked|. Also supports the
following methods:
Method Description ~
extend(item) Add items to the list.
__new__(), __new__(iterable)
You can use `vim.List()` to create new vim lists.
`l=vim.List(iterable)` is the same as
`l=vim.bindeval('[]');l.extend(iterable)`. Without
arguments constructs empty list.
Examples: >
l = vim.List("abc") # Constructor, result: ['a', 'b', 'c']
l.extend(['abc', 'def']) # .extend() method
print l[1:] # slicing
l[:0] = ['ghi', 'jkl'] # slice assignment
print l[0] # getting item
l[0] = 'mno' # assignment
for i in l: # iteration
print isinstance(l, vim.List) # True
class List(vim.List): # Subclassing
vim.Function object *python-Function*
Function-like object, acting like vim |Funcref| object. Supports `.name`
attribute and is callable. Accepts special keyword argument `self`, see
|Dictionary-function|. You can also use `vim.Function(name)` constructor,
it is the same as `vim.bindeval('function(%s)'%json.dumps(name))`.
Examples: >
f = vim.Function('tr') # Constructor
print f('abc', 'a', 'b') # Calls tr('abc', 'a', 'b')
vim.command('''
function DictFun() dict
return self
endfunction
''')
f = vim.bindeval('function("DictFun")')
print f(self={}) # Like call('DictFun', [], {})
print isinstance(f, vim.Function) # True
==============================================================================
8. pyeval() and py3eval() Vim functions *python-pyeval*
To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
functions to evaluate Python expressions and pass their values to VimL.
==============================================================================
7. Dynamic loading *python-dynamic*
9. Dynamic loading *python-dynamic*
On MS-Windows the Python library can be loaded dynamically. The |:version|
output then includes |+python/dyn|.
@@ -481,30 +605,17 @@ Currently the name is "python24.dll". That is for Python 2.4. To know for
sure edit "gvim.exe" and search for "python\d*.dll\c".
==============================================================================
8. Python 3 *python3*
10. Python 3 *python3*
*:py3* *:python3*
The |:py3| and |:python3| commands work similar to |:python|. A simple check
The `:py3` and `:python3` commands work similar to `:python`. A simple check
if the `:py3` command is working: >
:py3 print("Hello")
< *:py3file*
The |:py3file| command works similar to |:pyfile|.
The `:py3file` command works similar to `:pyfile`.
*:py3do* *E863*
The `:py3do` command works similar to `:pydo`.
*:py3do*
:[range]py3do {body} Execute Python function "def _vim_pydo(line, linenr):
{body}" for each line in the [range], with the
function arguments being set to the text of each line
in turn, without a trailing <EOL>, and the current
line number. The function should return a string or
None. If a string is returned, it becomes the text of
the line in the current turn. The default for [range]
is the whole file: "1,$".
{not in Vi}
Examples:
>
:py3do return "%s\t%d" % (line[::-1], len(line))
:py3do if line: return "%4d: %s" % (linenr, line)
Vim can be built in four ways (:version output):
1. No Python support (-python, -python3)

View File

@@ -1,4 +1,4 @@
*indent.txt* For Vim version 7.3. Last change: 2012 Aug 30
*indent.txt* For Vim version 7.3. Last change: 2013 May 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -740,12 +740,12 @@ those useless characters first with a command like: >
:%s /\r$//g
Or, you can simply |:let| the variable PHP_removeCRwhenUnix to 1 and the
script will silently remove them when Vim loads a PHP file (at each|BufRead|).
script will silently remove them when Vim loads a PHP file (at each |BufRead|).
OPTIONS: ~
PHP indenting can be altered in several ways by modifying the values of some
variables:
global variables:
*php-comment*
To not enable auto-formating of comments by default (if you want to use your
@@ -753,10 +753,21 @@ own 'formatoptions'): >
:let g:PHP_autoformatcomment = 0
Else, 't' will be removed from the 'formatoptions' string and "qrowcb" will be
added, see|fo-table|for more information.
added, see |fo-table| for more information.
-------------
To add an extra indent to every PHP lines with N being the number of
To add extra indentation to single-line comments: >
:let g:PHP_outdentSLComments = N
With N being the number of 'shiftwidth' to add.
Only single-line comments will be affected such as: >
# Comment
// Comment
/* Comment */
-------------
To add extra indentation to every PHP lines with N being the number of
'shiftwidth' to add: >
:let g:PHP_default_indenting = N
@@ -772,7 +783,7 @@ For example, with N = 1, this will give:
$command_hist = TRUE;
?>
(Notice the extra indent between the PHP container markers and the code)
(Notice the extra indentation between the PHP container markers and the code)
-------------
To indent PHP tags as the surrounding code: >
@@ -804,8 +815,10 @@ NOTE: Indenting will be a bit slower if this option is used because some
To indent 'case:' and 'default:' statements in switch() blocks: >
:let g:PHP_vintage_case_default_indent = 1
(Since in PHP braces are not required inside 'case/default' blocks, by default they are indented at the same level than the 'switch()' to avoid
unnecessary indentation)
In PHP braces are not required inside 'case/default' blocks therefore 'case:'
and 'default:' are indented at the same level than the 'switch()' to avoid
meaningless indentation. You can use the above option to return to the
traditional way.
PYTHON *ft-python-indent*

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.3. Last change: 2013 May 06
*index.txt* For Vim version 7.3. Last change: 2013 May 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1403,8 +1403,10 @@ tag command action ~
|:pwd| :pw[d] print current directory
|:py3| :py3 execute Python 3 command
|:python3| :python3 same as :py3
|:py3do| :py3d[o] execute Python 3 command for each line
|:py3file| :py3f[ile] execute Python 3 script file
|:python| :py[thon] execute Python command
|:pydo| :pyd[o] execute Python command for each line
|:pyfile| :pyf[ile] execute Python script file
|:quit| :q[uit] quit current window (when one window quit Vim)
|:quitall| :quita[ll] quit Vim

View File

@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 7.3. Last change: 2012 Oct 06
*mbyte.txt* For Vim version 7.3. Last change: 2013 May 18
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -48,9 +48,9 @@ COMPILING
If you already have a compiled Vim program, check if the |+multi_byte| feature
is included. The |:version| command can be used for this.
If +multi_byte is not included, you should compile Vim with "big" features.
You can further tune what features are included. See the INSTALL files in the
source directory.
If +multi_byte is not included, you should compile Vim with "normal", "big" or
"huge" features. You can further tune what features are included. See the
INSTALL files in the source directory.
LOCALE

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.3. Last change: 2013 Apr 27
*options.txt* For Vim version 7.3. Last change: 2013 May 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5516,6 +5516,19 @@ A jump table for the options with a short description can be found at |Q_op|.
matches will be highlighted. This is used to avoid that Vim hangs
when using a very complicated pattern.
*'regexpengine'* *'re'*
'regexpengine' 're' number (default 0)
global
{not in Vi}
This selects the default regexp engine. |two-engines|
The possible values are:
0 automatic selection
1 old engine
2 NFA engine
Note that when using the NFA engine and the pattern contains something
that is not supported the pattern will not match. This is only useful
for debugging the regexp engine.
*'relativenumber'* *'rnu'* *'norelativenumber'* *'nornu'*
'relativenumber' 'rnu' boolean (default off)
local to window
@@ -7508,7 +7521,7 @@ A jump table for the options with a short description can be found at |Q_op|.
given, no further entry is used.
See |undo-persistence|.
*'undofile'* *'udf'*
*'undofile'* *'noundofile'* *'udf'* *'noudf'*
'undofile' 'udf' boolean (default off)
local to buffer
{not in Vi}

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.3. Last change: 2013 Apr 20
*pattern.txt* For Vim version 7.3. Last change: 2013 May 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -350,6 +350,27 @@ For starters, read chapter 27 of the user manual |usr_27.txt|.
or \z( pattern \) |/\z(|
*/\%#=* *two-engines*
Vim includes two regexp engines:
1. An old, backtracking engine that supports everything.
2. A new, NFA engine that works much faster on some patterns, but does not
support everything.
Vim will automatically select the right engine for you. However, if you run
into a problem or want to specifically select one engine or the other, you can
prepend one of the following to the pattern:
\%#=0 Force automatic selection. Only has an effect when
'regexpengine' has been set to a non-zero value.
\%#=1 Force using the old engine.
\%#=2 Force using the NFA engine.
You can also use the 'regexpengine' option to change the default.
*E864* *E868* *E874* *E875* *E876* *E877* *E878*
If selecting the NFA engine and it runs into something that is not implemented
the pattern will not match. This is only useful when debugging Vim.
==============================================================================
3. Magic */magic*
@@ -396,9 +417,10 @@ pattern.
==============================================================================
4. Overview of pattern items *pattern-overview*
*E865* *E866* *E867* *E869*
Overview of multi items. */multi* *E61* *E62*
More explanation and examples below, follow the links. *E64*
More explanation and examples below, follow the links. *E64* *E871*
multi ~
'magic' 'nomagic' matches of the preceding atom ~
@@ -508,12 +530,14 @@ Character classes {not in Vi}: */character-classes*
|/\c| \c \c ignore case, do not use the 'ignorecase' option
|/\C| \C \C match case, do not use the 'ignorecase' option
|/\Z| \Z \Z ignore differences in Unicode "combining characters".
Useful when searching voweled Hebrew or Arabic text.
|/\m| \m \m 'magic' on for the following chars in the pattern
|/\M| \M \M 'magic' off for the following chars in the pattern
|/\v| \v \v the following chars in the pattern are "very magic"
|/\V| \V \V the following chars in the pattern are "very nomagic"
|/\Z| \Z \Z ignore differences in Unicode "combining characters".
Useful when searching voweled Hebrew or Arabic text.
|/\%#=| \%#=1 \%#=1 select regexp engine |/zero-width|
|/\%d| \%d \%d match specified decimal character (eg \%d123)
|/\%x| \%x \%x match specified hex character (eg \%x2a)
@@ -581,7 +605,7 @@ overview.
\? Just like \=. Cannot be used when searching backwards with the "?"
command. {not in Vi}
*/\{* *E58* *E60* *E554*
*/\{* *E58* *E60* *E554* *E870*
\{n,m} Matches n to m of the preceding atom, as many as possible
\{n} Matches n of the preceding atom
\{n,} Matches at least n of the preceding atom, as many as possible
@@ -674,6 +698,7 @@ overview.
For speed it's often much better to avoid this multi. Try using "\zs"
instead |/\zs|. To match the same as the above example:
an\_s\+\zsfile
At least set a limit for the look-behind, see below.
"\@<=" and "\@<!" check for matches just before what follows.
Theoretically these matches could start anywhere before this position.
@@ -686,6 +711,18 @@ overview.
Example matches ~
\1\@<=,\([a-z]\+\) ",abc" in "abc,abc"
\@123<=
Like "\@<=" but only look back 123 bytes. This avoids trying lots
of matches that are known to fail and make executing the pattern very
slow. Example, check if there is a "<" just before "span":
/<\@1<=span
This will try matching "<" only one byte before "span", which is the
only place that works anyway.
After crossing a line boundary, the limit is relative to the end of
the line. Thus the characters at the start of the line with the match
are not counted (this is just to keep it simple).
The number zero is the same as no limit.
*/\@<!*
\@<! Matches with zero width if the preceding atom does NOT match just
before what follows. Thus this matches if there is no position in the
@@ -695,11 +732,16 @@ overview.
The match with the preceding atom is made to end just before the match
with what follows, thus an atom that ends in ".*" will work.
Warning: This can be slow (because many positions need to be checked
for a match).
for a match). Use a limit if you can, see below.
Example matches ~
\(foo\)\@<!bar any "bar" that's not in "foobar"
\(\/\/.*\)\@<!in "in" which is not after "//"
\@123<!
Like "\@<!" but only look back 123 bytes. This avoids trying lots of
matches that are known to fail and make executing the pattern very
slow.
*/\@>*
\@> Matches the preceding atom like matching a whole pattern. {not in Vi}
Like "(?>pattern)" in Perl.
@@ -962,7 +1004,8 @@ match ASCII characters, as indicated by the range.
~ matches the last given substitute string */~* */\~*
\(\) A pattern enclosed by escaped parentheses. */\(* */\(\)* */\)*
E.g., "\(^a\)" matches 'a' at the start of a line. *E51* *E54* *E55*
E.g., "\(^a\)" matches 'a' at the start of a line.
*E51* *E54* *E55* *E872* *E873*
\1 Matches the same string that was matched by */\1* *E65*
the first sub-expression in \( and \). {not in Vi}
@@ -1168,6 +1211,8 @@ When "\Z" appears anywhere in the pattern, composing characters are ignored.
Thus only the base characters need to match, the composing characters may be
different and the number of composing characters may differ. Only relevant
when 'encoding' is "utf-8".
Exception: If the pattern starts with one or more composing characters, these
must match.
When a composing character appears at the start of the pattern of after an
item that doesn't include the composing character, a match is found at any
@@ -1177,8 +1222,20 @@ When using a dot and a composing character, this works the same as the
composing character by itself, except that it doesn't matter what comes before
this.
The order of composing characters matters, even though changing the order
doesn't change what a character looks like. This may change in the future.
The order of composing characters does not matter. Also, the text may have
more composing characters than the pattern, it still matches. But all
composing characters in the pattern must be found in the text.
Suppose B is a base character and x and y are composing characters:
pattern text match ~
Bxy Bxy yes (perfect match)
Bxy Byx yes (order ignored)
Bxy By no (x missing)
Bxy Bx no (y missing)
Bx Bx yes (perfect mach)
Bx By no (x missing)
Bx Bxy yes (extra y ignored)
Bx Byx yes (extra y ignored)
==============================================================================
9. Compare with Perl patterns *perl-patterns*

View File

@@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 7.3. Last change: 2013 Apr 19
*pi_netrw.txt* For Vim version 7.3. Last change: 2013 May 18
------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell
@@ -146,13 +146,13 @@ and has lines resembling >
<
Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: >
let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE'
let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\MyUserName\MACHINE'
<
Netrw will substitute the host's machine name for MACHINE from the url it is
Netrw will substitute the host's machine name for "MACHINE" from the url it is
attempting to open, and so one may specify >
userid
password
for each site in a separate file in c:\Users\Myself\.
for each site in a separate file: c:\Users\MyUserName\MachineName.
Now about browsing -- when you just want to look around before editing a
file. For browsing on your current host, just "edit" a directory: >
@@ -321,6 +321,8 @@ CHANGING USERID AND PASSWORD *netrw-chgup* *netrw-userpass* {{{2
:call NetUserPass("uid") -- prompts for password
:call NetUserPass("uid","password") -- sets global uid and password
(Related topics: |ftp| |netrw-userpass| |netrw-start|)
NETRW VARIABLES AND SETTINGS *netrw-variables* {{{2
(Also see:
|netrw-browser-var| : netrw browser option variables
@@ -927,6 +929,7 @@ itself:
endfunction
endif
>
(Related topics: |ftp| |netrw-userpass| |netrw-start|)
==============================================================================
9. Browsing *netrw-browsing* *netrw-browse* *netrw-help* {{{1
@@ -2125,6 +2128,10 @@ your browsing preferences. (see also: |netrw-settings|)
NOTE: suppressing the banner is a new feature
which may cause problems.
*g:netrw_bannerbackslash* if this variable exists and is not zero, the
banner will be displayed with backslashes
rather than forward slashes.
*g:netrw_browse_split* when browsing, <cr> will open the file by:
=0: re-using the same window
=1: horizontally splitting the window first
@@ -2306,14 +2313,14 @@ your browsing preferences. (see also: |netrw-settings|)
Copies marked files (|netrw-mf|) to target
directory (|netrw-mt|, |netrw-mc|)
*g:netrw_localmkdir* command for making a local directory
default: "mkdir"
*g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
="move" Windows
Moves marked files (|netrw-mf|) to target
directory (|netrw-mt|, |netrw-mm|)
*g:netrw_localmkdir* command for making a local directory
default: "mkdir"
*g:netrw_localrmdir* remove directory command (rmdir)
default: "rmdir"
@@ -2416,11 +2423,6 @@ your browsing preferences. (see also: |netrw-settings|)
< into one's <.vimrc> to use one's own
preferences.
*g:netrw_ssh_cmd* One may specify an executable command
to use instead of ssh for remote actions
such as listing, file removal, etc.
default: ssh
*g:netrw_ssh_browse_reject* ssh can sometimes produce unwanted lines,
messages, banners, and whatnot that one doesn't
want masquerading as "directories" and "files".
@@ -2428,6 +2430,11 @@ your browsing preferences. (see also: |netrw-settings|)
messages. By default its value is:
'^total\s\+\d\+$'
*g:netrw_ssh_cmd* One may specify an executable command
to use instead of ssh for remote actions
such as listing, file removal, etc.
default: ssh
*g:netrw_tmpfile_escape* =' &;'
escape() is applied to all temporary files
@@ -2990,6 +2997,19 @@ which is loaded automatically at startup (assuming :set nocp).
==============================================================================
12. History *netrw-history* {{{1
v149: Apr 18, 2013 * in wide listing format, now have maps for
w and b to move to next/previous file
Apr 26, 2013 * one may now copy files in the same
directory; netrw will issue requests for
what names the files should be copied under
Apr 29, 2013 * Trying Benzinger's problem again. Seems
that commenting out the BufEnter and
installing VimEnter (only) works. Weird
problem! (tree listing, vim -O Dir1 Dir2)
May 01, 2013 * :Explore ftp://... wasn't working. Fixed.
May 02, 2013 * introduced |g:netrw_bannerbackslash| as
requested by Paul Domaskis.
May 18, 2013 * More fixes for windows (not cygwin)
v148: Apr 16, 2013 * changed Netrw's Style menu to allow direct
choice of listing style, hiding style, and
sorting style

View File

@@ -1,4 +1,4 @@
*pi_paren.txt* For Vim version 7.3. Last change: 2008 Jun 16
*pi_paren.txt* For Vim version 7.3. Last change: 2013 May 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -46,7 +46,10 @@ are:
closed folds.
- 'synmaxcol' times 2 bytes before or after the cursor to avoid a delay
in a long line with syntax highlighting.
- A timeout of 300 msec (60 msec in Insert mode). This can be changed with the
g:matchparen_timeout and g:matchparen_insert_timeout variables and their
buffer-local equivalents b:matchparen_timeout and
b:matchparen_insert_timeout.
If you would like the |%| command to work better, the matchit plugin can be
used, see |matchit-install|. This plugin also helps to skip matches in

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.3. Last change: 2013 Apr 05
*quickref.txt* For Vim version 7.3. Last change: 2013 May 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -824,6 +824,7 @@ Short explanation of each option: *option-list*
'quoteescape' 'qe' escape characters used in a string
'readonly' 'ro' disallow writing the buffer
'redrawtime' 'rdt' timeout for 'hlsearch' and |:match| highlighting
'regexpengine' 're' default regexp engine to use
'relativenumber' 'rnu' show relative line number in front of each line
'remap' allow mappings to work recursively
'report' threshold for reporting nr. of lines changed

View File

@@ -1,4 +1,4 @@
*starting.txt* For Vim version 7.3. Last change: 2012 Mar 16
*starting.txt* For Vim version 7.3. Last change: 2013 May 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -438,6 +438,10 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
option should be used when Vim is started by a program that
will wait for the edit session to finish (e.g., mail or
readnews). See |amiga-window|.
MS-Windows: This option is not supported. However, when
running Vim with an installed vim.bat or gvim.bat file it
works.
{not in Vi}

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.3. Last change: 2013 Apr 05
*syntax.txt* For Vim version 7.3. Last change: 2013 May 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -381,7 +381,11 @@ This is not a syntax file itself, but a script that converts the current
window into HTML. Vim opens a new window in which it builds the HTML file.
After you save the resulting file, you can view it with any browser. The
colors should be exactly the same as you see them in Vim.
colors should be exactly the same as you see them in Vim. You can jump to
specific lines by adding (for example) #L123 or #123 to the end of the URL in
your browser's address bar (#123 only with javascript support). And with
|g:html_dynamic_folds| enabled, you can show or hide the text that is folded
in Vim.
You are not supposed to set the 'filetype' or 'syntax' option to "2html"!
Source the script to convert the current file: >
@@ -424,7 +428,11 @@ and last line to be converted. Example, using the last set Visual area: >
|g:html_diff_one_file| is set, :TOhtml will convert
all windows which are part of the diff in the current
tab and place them side-by-side in a <table> element
in the generated HTML.
in the generated HTML. When this happens you can jump
to lines in specific windows with (for example) #W1L42
for line 42 in the first diffed window, or #W3L87 for
line 87 in the third. Omitting the window ID will
default to the first window if javascript is enabled.
Examples: >
@@ -1239,17 +1247,17 @@ to your startup file.
ERLANG *erlang.vim* *ft-erlang-syntax*
The erlang highlighting supports Erlang (ERicsson LANGuage).
Erlang is case sensitive and default extension is ".erl".
Erlang is a functional programming language developed by Ericsson. Files with
the following extensions are recognized as Erlang files: erl, hrl, yaws.
If you want to disable keywords highlighting, put in your .vimrc: >
:let erlang_keywords = 1
If you want to disable built-in-functions highlighting, put in your
.vimrc file: >
:let erlang_functions = 1
If you want to disable special characters highlighting, put in
your .vimrc: >
:let erlang_characters = 1
The BIFs (built-in functions) are highlighted by default. To disable this,
put the following line in your vimrc: >
:let g:erlang_highlight_bifs = 0
To enable highlighting some special atoms, put this in your vimrc: >
:let g:erlang_highlight_special_atoms = 1
FLEXWIKI *flexwiki.vim* *ft-flexwiki-syntax*
@@ -2286,7 +2294,7 @@ For highlighting parent error ] or ): >
let php_parent_error_close = 1
For skipping an php end tag, if there exists an open ( or [ without a closing
For skipping a php end tag, if there exists an open ( or [ without a closing
one: >
let php_parent_error_open = 1

View File

@@ -657,6 +657,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'nottybuiltin' options.txt /*'nottybuiltin'*
'nottyfast' options.txt /*'nottyfast'*
'notx' options.txt /*'notx'*
'noudf' options.txt /*'noudf'*
'noundofile' options.txt /*'noundofile'*
'novb' options.txt /*'novb'*
'novice' vi_diff.txt /*'novice'*
'novisualbell' options.txt /*'novisualbell'*
@@ -736,9 +738,11 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'quote motion.txt /*'quote*
'quoteescape' options.txt /*'quoteescape'*
'rdt' options.txt /*'rdt'*
're' options.txt /*'re'*
'readonly' options.txt /*'readonly'*
'redraw' vi_diff.txt /*'redraw'*
'redrawtime' options.txt /*'redrawtime'*
'regexpengine' options.txt /*'regexpengine'*
'relativenumber' options.txt /*'relativenumber'*
'remap' options.txt /*'remap'*
'report' options.txt /*'report'*
@@ -1389,6 +1393,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
/\ pattern.txt /*\/\\*
/\$ pattern.txt /*\/\\$*
/\%# pattern.txt /*\/\\%#*
/\%#= pattern.txt /*\/\\%#=*
/\%$ pattern.txt /*\/\\%$*
/\%'m pattern.txt /*\/\\%'m*
/\%( pattern.txt /*\/\\%(*
@@ -2590,7 +2595,9 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:pwd editing.txt /*:pwd*
:py if_pyth.txt /*:py*
:py3 if_pyth.txt /*:py3*
:py3do if_pyth.txt /*:py3do*
:py3file if_pyth.txt /*:py3file*
:pydo if_pyth.txt /*:pydo*
:pyf if_pyth.txt /*:pyf*
:pyfile if_pyth.txt /*:pyfile*
:python if_pyth.txt /*:python*
@@ -4256,9 +4263,24 @@ E858 eval.txt /*E858*
E859 eval.txt /*E859*
E86 windows.txt /*E86*
E860 eval.txt /*E860*
E861 eval.txt /*E861*
E862 eval.txt /*E862*
E863 if_pyth.txt /*E863*
E864 pattern.txt /*E864*
E865 pattern.txt /*E865*
E866 pattern.txt /*E866*
E867 pattern.txt /*E867*
E868 pattern.txt /*E868*
E869 pattern.txt /*E869*
E87 windows.txt /*E87*
E870 pattern.txt /*E870*
E871 pattern.txt /*E871*
E872 pattern.txt /*E872*
E873 pattern.txt /*E873*
E874 pattern.txt /*E874*
E875 pattern.txt /*E875*
E876 pattern.txt /*E876*
E877 pattern.txt /*E877*
E878 pattern.txt /*E878*
E88 windows.txt /*E88*
E89 message.txt /*E89*
E90 message.txt /*E90*
@@ -5882,6 +5904,7 @@ g:html_whole_filler syntax.txt /*g:html_whole_filler*
g:netrw_alto pi_netrw.txt /*g:netrw_alto*
g:netrw_altv pi_netrw.txt /*g:netrw_altv*
g:netrw_banner pi_netrw.txt /*g:netrw_banner*
g:netrw_bannerbackslash pi_netrw.txt /*g:netrw_bannerbackslash*
g:netrw_browse_split pi_netrw.txt /*g:netrw_browse_split*
g:netrw_browsex_viewer pi_netrw.txt /*g:netrw_browsex_viewer*
g:netrw_bufsettings pi_netrw.txt /*g:netrw_bufsettings*
@@ -5971,6 +5994,7 @@ g:tar_secure pi_tar.txt /*g:tar_secure*
g:tar_writeoptions pi_tar.txt /*g:tar_writeoptions*
g:tex_conceal syntax.txt /*g:tex_conceal*
g:tex_fast syntax.txt /*g:tex_fast*
g:tex_flavor filetype.txt /*g:tex_flavor*
g:tex_isk syntax.txt /*g:tex_isk*
g:var eval.txt /*g:var*
g:vimball_home pi_vimball.txt /*g:vimball_home*
@@ -7321,7 +7345,12 @@ put-Visual-mode change.txt /*put-Visual-mode*
py3eval() eval.txt /*py3eval()*
pyeval() eval.txt /*pyeval()*
python if_pyth.txt /*python*
python-.locked if_pyth.txt /*python-.locked*
python-Dictionary if_pyth.txt /*python-Dictionary*
python-Function if_pyth.txt /*python-Function*
python-List if_pyth.txt /*python-List*
python-bindeval if_pyth.txt /*python-bindeval*
python-bindeval-objects if_pyth.txt /*python-bindeval-objects*
python-buffer if_pyth.txt /*python-buffer*
python-buffers if_pyth.txt /*python-buffers*
python-command if_pyth.txt /*python-command*
@@ -7336,6 +7365,8 @@ python-options if_pyth.txt /*python-options*
python-output if_pyth.txt /*python-output*
python-pyeval if_pyth.txt /*python-pyeval*
python-range if_pyth.txt /*python-range*
python-tabpage if_pyth.txt /*python-tabpage*
python-tabpages if_pyth.txt /*python-tabpages*
python-vars if_pyth.txt /*python-vars*
python-vim if_pyth.txt /*python-vim*
python-vvars if_pyth.txt /*python-vvars*
@@ -7851,6 +7882,7 @@ system-functions usr_41.txt /*system-functions*
system-vimrc starting.txt /*system-vimrc*
s~ change.txt /*s~*
t motion.txt /*t*
t: eval.txt /*t:*
t:var eval.txt /*t:var*
t_#2 term.txt /*t_#2*
t_#4 term.txt /*t_#4*
@@ -8166,6 +8198,7 @@ try-nested eval.txt /*try-nested*
try-nesting eval.txt /*try-nesting*
tutor usr_01.txt /*tutor*
twice if_cscop.txt /*twice*
two-engines pattern.txt /*two-engines*
type() eval.txt /*type()*
type-mistakes tips.txt /*type-mistakes*
typecorr-settings usr_41.txt /*typecorr-settings*

View File

@@ -328,7 +328,7 @@ Note: Use the <> form if possible
t_k8 <F8> function key 8 *<F8>* *t_k8* *'t_k8'*
t_k9 <F9> function key 9 *<F9>* *t_k9* *'t_k9'*
t_k; <F10> function key 10 *<F10>* *t_k;* *'t_k;'*
t_F1 <F11> function key 11 *<F11>* *t_F1* *'t_F1'*
t_F1 <F11> function key 11 *<F11>* *t_F1* *'t_F1'*
t_F2 <F12> function key 12 *<F12>* *t_F2* *'t_F2'*
t_F3 <F13> function key 13 *<F13>* *t_F3* *'t_F3'*
t_F4 <F14> function key 14 *<F14>* *t_F4* *'t_F4'*
@@ -358,9 +358,9 @@ Note: Use the <> form if possible
t_kI <Insert> insert key *t_kI* *'t_kI'*
t_kD <Del> delete key *t_kD* *'t_kD'*
t_kb <BS> backspace key *t_kb* *'t_kb'*
t_kB <S-Tab> back-tab (shift-tab) *<S-Tab>* *t_kB* *'t_kB'*
t_kB <S-Tab> back-tab (shift-tab) *<S-Tab>* *t_kB* *'t_kB'*
t_kh <Home> home key *t_kh* *'t_kh'*
t_#2 <S-Home> shifted home key *<S-Home>* *t_#2* *'t_#2'*
t_#2 <S-Home> shifted home key *<S-Home>* *t_#2* *'t_#2'*
<xHome> alternate home key *<xHome>*
t_@7 <End> end key *t_@7* *'t_@7'*
t_*7 <S-End> shifted end key *<S-End>* *t_star7* *'t_star7'*
@@ -373,8 +373,8 @@ Note: Use the <> form if possible
t_K5 <kPageDown> keypad page-down key *t_K5* *'t_K5'*
t_K6 <kPlus> keypad plus key *<kPlus>* *t_K6* *'t_K6'*
t_K7 <kMinus> keypad minus key *<kMinus>* *t_K7* *'t_K7'*
t_K8 <kDivide> keypad divide *<kDivide>* *t_K8* *'t_K8'*
t_K9 <kMultiply> keypad multiply *<kMultiply>* *t_K9* *'t_K9'*
t_K8 <kDivide> keypad divide *<kDivide>* *t_K8* *'t_K8'*
t_K9 <kMultiply> keypad multiply *<kMultiply>* *t_K9* *'t_K9'*
t_KA <kEnter> keypad enter key *<kEnter>* *t_KA* *'t_KA'*
t_KB <kPoint> keypad decimal point *<kPoint>* *t_KB* *'t_KB'*
t_KC <k0> keypad 0 *<k0>* *t_KC* *'t_KC'*

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.3. Last change: 2013 May 06
*todo.txt* For Vim version 7.3. Last change: 2013 Jun 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,6 +34,192 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
--- Python interface
Patch from ZyX, May 30: Fix some possible memory problems
Check: docs for .valid patch by ZyX, May 30
Correction by Roland Eggner, May 31.
Tests are disabled because they fail.
Configure doesn't find Python 3 on Ubuntu 13.04. (Ken Takata, Apr 13)
Python SystemExit exception is not handled properly. Patch to catch the
exception and give an error. (Yasuhiro Matsumoto)
Does not work, tests fail.
Patch to complete after :py3. (Taro Muraoka, 2013 May 31)
":python os.chdir('/tmp')" makes short buffer names invalid. (Xavier de Gaye)
Patch to make os.chdir() handle side effects. (Xavier de Gaye, 2013 May 17)
Update May 19, also for os.fchdir().
Adds a $VIMRUNTIME/python directory.
ZyX: OK to add python and python3 directory.
Mac: OS/X 10.4 with Python 2.5 installed: configure finds an extra argument
that breaks the build. (Brian Victor, 2008 Sep 1)
Patch to access screen under Python. (Marko Mahni, 2010 Jul 18)
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
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: 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().
--- runtime files
Syntax file for protocol buffers. (Feng Xiao, 2013 May 9)
Has an ugly copyright notice.
Add statement that it does not conflict with Vim license.
Patch for JavaScript syntax. (Kevin Locke, 2013 May 9)
Claudio didn't respond yet.
--- Fast regexp engine
Error in HTML highlighting. (Hiroshi Shirosaki)
Tests for \{-} : Requires trying to start at every position?
If so, rename nfa_has_backref to nfa_dup_states and re-use it for this.
Allow "^*" as a literal "*".
Need more testing for \1 back references.
Profiling:
./vim -s ~/vim/test/loop.vim
./vim -s ~/vim/test/xml.vim (Fix: Uses the old engine, see
bt_regexp_debug.log)
Need \@<=
NFA engine could not handle "[<]\@<=[^ /!?<>"']\+"
NFA engine could not handle "<!--\_.\{-}-->"
setting cpo_lit and cpo_bsl can be slow. Make them global.
Get example files for many languages. Compare syntax highlighting with old and
new regexp, find regexp constructs where NFA does not work correctly.
source ~/vim/regexp/runold.vim to update the "old" files.
source ~/vim/regexp/runnew.vim to update the "new" files
source ~/vim/regexp/diff.vim to find differences
More test files from the src/pkg/regexp/testdata directory in the Go repo.
It's very slow compared to the old engine...
Performance tests:
- ~/vim/text/FeiqCfg.xml (file from Netjune)
- ~/vim/text/edl.svg (also XML)
- glts has five tests. (May 25)
- ~/vim/test/veryslow.js display last line (file from Daniel Fetchinson)
- ~/vim/test/slowsearch
- ~/vim/test/rgb.vim
- search for a.*e*exn in the vim executable. Go to last line to use
'hlsearch'.
- Slow combination of folding and PHP syntax highlighting. Script to
reproduce it. Caused by "syntax sync fromstart" in combination with patch
7.2.274. (Christian Brabandt, 2010 May 27) Generally, folding with
'foldmethod' set to "syntax" is slow. Do profiling to find out why.
- It does not use any of the optimizations, such as required start pattern.
- When lists are empty in nfa_regmatch() and match is true, it keeps looping
without doing anything.
Does not work (yet) with NFA:
- \z() \z1 .. "\z9": Previously matched text in syn HL.
- ~: previous substitute pattern. Requires recursive compilation?
- \%u, \%x, \%o, \%d followed by a composing character
- \%V Visual
- \%[abc]
- \%' mark
- \@< match before zero-width
- \@> match whole pattern
--- bug fixes
Patch to avoid wrong error message for 1.0[0]. (Yasuhiro Matsumoto, 2013 May
1)
Patch for if_lua. (Luis Carvalho, 2012 Aug 26, update Aug 29, another Aug 30,
then Sep 1, reminder Oct 14)
Patch for if_perl. (Ike Devolder, May 27)
Patch to check if 'foldexpr' sets did_emsg. (Christian Brabandt, 2013 Mar 20)
Patch for 'backupcopy' default behavior for symlinks on Windows. (David Pope,
2012 Mar 21, update Mar 31)
With fix for memory leak: Ken Takata, 2012 Aug 24
Another update Sep 24.
Also patch from Joerg Bornemann, 2013 Apr 30.
Undo problem: line not removed as expected when using setline() from Insert
mode. (Israel Chauca, 2010 May 13, more in second msg)
Break undo when CTRL-R = changes the text? Or save more lines?
Patch by Christian Brabandt, 2012 Nov 16.
Do allow real tags above the !_TAG entries. Undo older patch. Issue 90.
Matches might be highlighted correctly. Inefficient patch by Christian
Brabandt, 2013 Feb 26.
Patch to use bold/italic fonts when 'guifontewide' is set. (Ken Takata, 2013
Mar 31)
Problem with winfixheight and resizing. (Yukihiro Nakadaira, 2011 Sep 17)
Patch Sep 18.
Patch for IME problems. Remove hacking code for old IM. (Yukihiro Nakadaira,
2012 Jul 20)
Patch to fix finding toolbar bitmaps. Issue 129.
Combining characters are not used when executing a register with :@w.
(William Fugh, 2013 Apr 5, more info from Ben Fritz)
Patch by Christian Brabandt, 2013 Apr 6. Second one.
MS-Windows ACL support doesn't work well. Patch from Ken Takata, 2012 Aug 29.
Update Aug 31.
Another patch for MingW, 2012 Dec 29.
Bug in completion menu. (Olivier Teuliere, 2013 Feb 15)
Patch by Christian Brabandt, Feb 16.
Issue 134: pasting in visual selection in empty buffer.
Patch by Christian Brabandt, 2013 May 22.
'cursorline' is drawn incorrectly in diff mode. Patch by Christian Brabandt,
2012 Apr 2.
When someone does a silly thing such as setting rows and columns to 65535,
handle the out-of-memory and set them to sane values? (jimmywang, 2013 May 17)
InsertEnter doesn't prevent the cursor from moving when it goes to another
line.
":diffoff" does not restore options from before starting diff mode.
Patch by Christian Brabandt, 2013 May 26.
--- slightly incompatible changes
Patch to load ~/.vim/vimrc when ~/.vimrc isn't found. (Lech Lorens, 2013 Apr
13)
It's probably a good idea to make a negative value for 'sts' use the value of
'sw'. Patch by So8res, Oct 3 2012
When a buffer-local mapping is used, but a global mapping starts with the same
characters, Vim currently waits for the next typed character to find out if
the global mapping matches. It is probably better to let the local mapping
win and not wait. (discussion with Andy Wokula, 2013 Jan 30)
Patch by Michael Henry, 2013 Jan 30, update Feb 15.
Patch to store absolute path for cscope. (Christian Brabandt, 2013 May 31)
---- Fixes to be included before 7.4 above, less important stuff below ----
Several syntax file match "^\s*" which may get underlined if that's in the
highlight group. Add a "\zs" after it?
@@ -48,8 +234,6 @@ GTK: problem with 'L' in 'guioptions' changing the window width.
Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
Nederlandse vertaling tutor. (Rob Bishoff, 2013 Apr 24)
The CompleteDone autocommand needs some info passed to it:
- The word that was selected (empty if abandoned complete)
- Type of completion: tag, omnifunc, user func.
@@ -65,8 +249,9 @@ 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 load ~/.vim/vimrc when ~/.vimrc isn't found. (Lech Lorens, 2013 Apr
13)
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?
Problem caused by patch 7.3.638: window->open does not update window
correctly. Issue 91.
@@ -76,90 +261,43 @@ Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt,
Patch to view coverage of the tests. (Nazri Ramliy, 2013 Feb 15)
Patch to make vim.bindeval() in Python work. (Yukihiro Nakadaira, 2013 Mar 25)
Patch to avoid wrong error message for 1.0[0]. (Yasuhiro Matsumoto, 2013 May
1)
Patch to invert characters differently in GTK. (Yukihiro Nakadaira, 2013 May
5)
Patch for 'backupcopy' default behavior for symlinks on Windows. (David Pope,
2012 Mar 21, update Mar 31)
With fix for memory leak: Ken Takata, 2012 Aug 24
Another update Sep 24.
Also patch from Joerg Bornemann, 2013 Apr 30.
Do allow real tags above the !_TAG entries. Undo older patch. Issue 90.
Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5)
May 17: with winlist() and tabpagelist().
May 19: with local variables.
May 28: with options
Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
28) With tests: Oct 9.
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)
Second one. Update May 22.
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
Patch for IME handling, adds 'imactivatefunc' and 'imstatusfunc' option.
(Yukihiro Nakadaira, 2012 Aug 16)
Patch to improve IME handling. (Yasuhiro Matsumoto, 2012 Jul 18)
Undo problem: line not removed as expected when using setline() from Insert
mode. (Israel Chauca, 2010 May 13, more in second msg)
Break undo when CTRL-R = changes the text? Or save more lines?
Patch by Christian Brabandt, 2012 Nov 16.
Issue 54: document behavior of -complete, also expands arg.
Python patch 7: move more to if_py_boty. (ZyX 2013 Apr 26)
Python patch 8: add vim.window.number. (ZyX 2013 Apr 26)
Python patch 9: remove useless calls.. (ZyX 2013 Apr 26)
Python patch 10: window position. (ZyX 2013 Apr 26)
Python patch 11: reorder code in if_py_both (ZyX 2013 Apr 28)
Python patch 12: fix SEGVs (ZyX 2013 Apr 28)
Python patch 13: negative indices were failing (ZyX 2013 Apr 28)
Python patch 14: tests for previous fixes (ZyX 2013 Apr 28)
Python patch 15: make buflist a bufmap (ZyX 2013 Apr 28) incompatible?
Python patch 16: fix name of FunctionType (ZyX 2013 Apr 28)
Python patch 17: add iterators (ZyX 2013 Apr 28)
Python patch 18: Python 2.2 support (ZyX 2013 Apr 28)
Python patch 19: drop support for old Pythons (ZyX 2013 Apr 28)
Python patch 20: tests for vim.buffers (ZyX 2013 Apr 28, second one)
Python patch 20a: tests for vim.bufferlist (ZyX 2013 May 1)
Python patch 21: add vim.tabpages and vim.current.tabpage (ZyX 2013 May 1)
Python patch 22: make KeyErrors use PyErr_SetObject (ZyX 2013 May 1)
Python patch 23: transform and clean python exceptions (ZyX 2013 May 1)
Python patch 24: add ability to assign to more vim.current attributes (ZyX
2013 May 1)
Python patch 25: make vim.error Exception subclass (ZyX 2013 May 1)
Python patch 26: check whether PyObject_IsTrue failed (ZyX 2013 May 1)
Python patch 27: add tests for various python interfaces (ZyX 2013 May 1)
Matches might be highlighted correctly. Inefficient patch by Christian
Brabandt, 2013 Feb 26.
- Add regex for 'paragraphs' and 'sections': 'parare' and 'sectre'. Combine
the two into a regex for searching. (Ned Konz)
Patch by Christian Brabandt, 2013 Apr 20, unfinished.
Patch to use bold/italic fonts when 'guifontewide' is set. (Ken Takata, 2013
Mar 31)
Patch to fix finding toolbar bitmaps. Issue 129.
Patch to handle Python SystemExit. (Yasuhiro Matsumoto, 2013 Apr 15)
Bug: findfile("any", "http://;") returns http://any. (Andrew Pimlott, 2013 May
7) Not sure if that can be fixed, but when using "file://" it should be
possible to check if the file exists.
v:register is not directly reset to " after a delete command that specifies a
register. It is reset after the next command. (Steve Vermeulen, 2013 Mar 16)
'ff' is wrong for one-line file without EOL. (Issue 77)
Patch for if_lua. (Luis Carvalho, 2012 Aug 26, update Aug 29, another Aug 30,
then Sep 1, reminder Oct 14)
Patch to check if 'foldexpr' sets did_emsg. (Christian Brabandt, 2013 Mar 20)
No completion for :xmap and :smap. (Yukihiro Nakadaira, 2013 May 5)
Patch to set antialiasing style on Windows. (Ondrej Balaz, 2013 Mar 14)
Needs a different check for CLEARTYPE_QUALITY.
@@ -172,21 +310,8 @@ a reboot.
MS-Windows: Crash opening very long file name starting with "\\".
(Christian Brock, 2012 Jun 29)
It's probably a good idea to make a negative value for 'sts' use the value of
'sw'. Patch by So8res, Oct 3 2012
Test 79 fails on Windows only. (Michael Soyka, 2013 Apr 11).
What makes the test script mapping continue after an error?
patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
Combining characters are not used when executing a register with :@w.
(William Fugh, 2013 Apr 5, more info from Ben Fritz)
Patch by Christian Brabandt, 2013 Apr 6. Second one.
Bug in completion menu. (Olivier Teuliere, 2013 Feb 15)
Patch by Christian Brabandt, Feb 16.
Syntax update problem in one buffer opened in two windows, bottom window is
not correctly updated. (Paul Harris, 2012 Feb 27)
@@ -201,7 +326,11 @@ Patch to make confirm() display colors. (Christian Brabandt, 2012 Nov 9)
Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27)
Patch to use directX to draw text on Windows. Adds the 'renderoptions'
option. (Taro Muraoka, 2013 Jan 25, update 2013 Apr 3)
option. (Taro Muraoka, 2013 Jan 25, update 2013 Apr 3, May 14)
Patch to add 'completeselect' option. Specifies how to select a candidate in
insert completion. (Shougo, 2013 May 29)
Update to add to existing 'completeopt'. 2013 May 30
Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17)
@@ -227,10 +356,6 @@ Szamotulski, 2012 Nov 8)
Crash in autocmd that unloads buffers in a BufUnload event. (Andrew Pimlott,
2012 Aug 11) Disallow :new when BufUnload is being handled?
MS-Windows ACL support doesn't work well. Patch from Ken Takata, 2012 Aug 29.
Update Aug 31.
Another patch for MingW, 2012 Dec 29.
MS-Windows resizing problems:
- Windows window on screen positioning: Patch by Yukihiro Nakadaira, 2012 Jun
20. Uses getWindowRect() instead of GetWindowPlacement()
@@ -240,7 +365,7 @@ MS-Windows resizing problems:
'iminsert' global value set when using ":setlocal iminsert"? (Wu, 2012 Jun 23)
Patch to append regesp to tag commands to make it possible to select one out
Patch to append regexp to tag commands to make it possible to select one out
of many matches. (Cody Cutler, 2013 Mar 28)
Help for 'b:undo_indent'. (Thilo Six, 2012 May 28)
@@ -281,18 +406,9 @@ Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14)
Patch for input method status. (Hirohito Higashi, 2012 Apr 18)
Patch to print the result of a :python command. (Maxim Philippov
<philippovmi@gmail.com>, 2012 Aug 16) Update Aug 17.
Patch to use .png icons for the toolbar on MS-Windows. (Martin Gieseking, 2013
Apr 18)
Problem with winfixheight and resizing. (Yukihiro Nakadaira, 2011 Sep 17)
Patch Sep 18.
Patch for IME problems. Remove hacking code for old IM. (Yukihiro Nakadaira,
2012 Jul 20)
Patch for has('unnamedplus') docs. (Tony Mechelynck, 2011 Sep 27)
And one for gui_x11.txt.
@@ -301,6 +417,7 @@ And one for gui_x11.txt.
Version for latest MacVim: Tobia Conforto, 2009 Nov 23
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.
":cd" doesn't work when current directory path contains "**".
finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10)
@@ -325,16 +442,11 @@ Nov 20)
Patch to improve GUI find/replace dialog. (Christian Brabandt, 2012 May 26)
Update Jun 2.
Patch to add ":py3do". (Lilydjwg, 2012 Apr 7)
`] moves to character after insert, instead of the last inserted character.
(Yukihiro Nakadaira, 2011 Dec 9)
Plugin for Modeleasy. (Massimiliano Tripoli, 2011 Nov 29)
Updated syntax file for ssh_config, maintainer doesn't respond.
(Leonard Ehrenfried, 2011 Sep 26)
BufWinLeave triggers too late when quitting last window in a tab page. (Lech
Lorens, 2012 Feb 21)
@@ -364,15 +476,9 @@ Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set to 2,
only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
21, Ben Fritz, 2010 Sep 14)
'cursorline' is drawn incorrectly in diff mode. Patch by Christian Brabandt,
2012 Apr 2.
'cursorline' works on a text line only. Add 'cursorscreenline' for
highlighting the screen line. (Christian Brabandt, 2012 Mar 31)
Win32: Does building a 64 bit version with VC9 give warnings for int
conversions? (Mike Williams)
Win32: Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 17)
New feature, requires testing. Made some remarks.
@@ -452,12 +558,6 @@ string() can't parse back "inf" and "nan". Fix documentation or fix code?
Make 'formatprg' global-local. (Sung Pae)
When a buffer-local mapping is used, but a global mapping starts with the same
characters, Vim currently waits for the next typed character to find out if
the global mapping matches. It is probably better to let the local mapping
win and not wait. (discussion with Andy Wokula, 2013 Jan 30)
Patch by Michael Henry, 2013 Jan 30, update Feb 15.
When doing "redir => s:foo" in a script and then "redir END" somewhere else
(e.g. in a function) it can't find s:foo.
@@ -584,9 +684,6 @@ the command line. (Ingo Karkat, 2011 Jan 25)
Since patch 7.2.46 Yankring plugin has become very slow, eventually make Vim
crash? (Raiwil, 2010 Nov 17)
Python: Adding line to buffer other than the current one doesn't work
correctly. (Rozbujnik, 2010 Dec 19)
Patch to add 'systemencoding', convert between 'encoding' and this for file
names, shell commands and the like. (Kikuchan, 2010 Oct 14)
Assume the system converts between the actual encoding of the filesystem to
@@ -751,12 +848,6 @@ Problem with stop directory in findfile(). (Adam Simpkins, 2009 Aug 26)
Using ']' as the end of a range in a pattern requires double escaping:
/[@-\\]] (Andy Wokula, 2011 Jun 28)
Slow combination of folding and PHP syntax highlighting. Script to reproduce
it. Caused by "syntax sync fromstart" in combination with patch 7.2.274.
(Christian Brabandt, 2010 May 27)
Generally, folding with 'foldmethod' set to "syntax" is slow. Do profiling to
find out why.
Syntax priority problem. (Charles Campbell, 2011 Sep 15)
When completion inserts the first match, it may trigger the line to be folded.
@@ -946,9 +1037,6 @@ shellescape() depends on 'shellshash' for quoting. That doesn't work when
Use a different option or let it depend on whether 'shell' looks like a
unix-like shell?
Allow patches to add something to version.c, like with an official patch, so
that :version output shows which patches have been applied.
Bug: in Ex mode (after "Q") backslash before line break, when yanked into a
register and executed, results in <Nul>: instead of line break.
(Konrad Schwarz, 2010 Apr 16)
@@ -1096,6 +1184,14 @@ Oct 19) Check for "col" being "MAXCOL" separately?
Unexpectedly inserting a double quote. (Anton Woellert, 2008 Mar 23)
Works OK when 'cmdheight' is 2.
8 Use a mechanism similar to omni completion to figure out the kind of tab
for CTRL-] and jump to the appropriate matching tag (if there are
several).
Alternative: be able to define a function that takes the tag name and uses
taglist() to find the right location. With indication of using CTRL-] so
that the context can be taken into account. (Robert Webb)
Patch by Christian Brabandt, 2013 May 31.
Test54 should not use shell commands. Make it portable.
The utf class table is missing some entries:
@@ -1163,18 +1259,6 @@ Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
Add ":nofold". Range will apply without expanding to closed fold.
Including NFA regexp code:
Use "\%#= to set the engine: 0 = automatic, 1 = backtracking, 2 = new.
Useful in tests.
Performance tests:
- ~/vim/test/veryslow.js (file from Daniel Fetchinson)
- ~/vim/test/slowsearch
- ~/vim/test/rgb.vim
- ~/vim/text/FeiqCfg.xml (file from Netjune)
- ~/vim/text/edl.svg (also XML)
- search for a.*e*exn in the vim executable. Go to last line to use
'hlsearch'.
Using Aap to build Vim: add remarks about how to set personal preferences.
Example on http://www.calmar.ws/tmp/aap.html
@@ -1407,9 +1491,6 @@ if_ruby.c.
":helpgrep" should use the directory from 'helpfile'.
Patch to dynamically load Python on Solaris. (Danek Duvall, 2009 Feb 16)
Needs more work.
The need_fileinfo flag is messy. Instead make the message right away and put
it in keep_msg?
@@ -1451,9 +1532,6 @@ When doing ":quit" the Netbeans "killed" event isn't sent. (Xavier de Gaye,
2008 Nov 10) call netbeans_file_closed() at the end of buf_freeall(), or in
all places where buf_freeall() is called?
":python os.chdir('/tmp')" makes short buffer names invalid. (Xavier de Gaye)
Check directory and call shorten_fnames()?
aucmd_prepbuf() should also use a window in another tab page.
When unloading a buffer in a BufHidden autocommand the hidden flag is reset?
@@ -1489,9 +1567,6 @@ somehow? Or use a new function.
Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
Mac: OS/X 10.4 with Python 2.5 installed: configure finds an extra argument
that breaks the build. (Brian Victor, 2008 Sep 1)
Add an option to specify the character to use when a double-width character is
moved to the next line. Default '>', set to a space to blank it out. Check
that char is single width when it's set (compare with 'listchars').
@@ -1733,10 +1808,8 @@ Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn Winckler,
2010 Jun 30)
At next release 7.4:
At next release:
- Build a huge version by default.
- Rename src/Makefile and create a new one like toplevel Makefile that
creates auto/config.mk when it's not there? (Ben Schmidt, 2011 Feb 11)
- Improve plugin handling: Automatic updates, handle dependencies?
E.g. Vundle: https://github.com/gmarik/vundle
@@ -1778,7 +1851,6 @@ More patches:
more friendly for the Vim distribution.
New version received 2008 Jan 6.
No maintenance in two years...
- Patch to access screen under Python. (Marko Mahni, 2010 Jul 18)
- Patch to open dropped files in new tabs. (Michael Trim, 2010 Aug 3)
Awaiting updated patches:
@@ -2357,7 +2429,6 @@ Macintosh:
8 When doing Insert mode completion a mapping cannot recursively call
edit(), because the completion information is global. Put everything in
an allocated structure?
6 Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
7 mb_off2cells() doesn't work correctly on the tail byte of a double-byte
@@ -3606,12 +3677,6 @@ Tags:
make the filename or the whole option use |wildcards| globing, better
would be to merge the 2 kinds of globing. originally (Erik Falor, 2008
April 18), updated (Ian Kelling, 2008 July 4)
8 Use a mechanism similar to omni completion to figure out the kind of tab
for CTRL-] and jump to the appropriate matching tag (if there are
several).
Alternative: be able to define a function that takes the tag name and uses
taglist() to find the right location. With indication of using CTRL-] so
that the context can be taken into account. (Robert Webb)
7 Can CTRL-] (jump to tag) include a following "." and "->" to restrict the
number of possible matches? Check tags file for an item that has members.
(Flemming Madsen)
@@ -3654,9 +3719,6 @@ Tags:
Win32 GUI:
8 Make debug mode work while starting up (vim -D). Open console window for
the message and input?
7 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?
7 GvimExt: when there are several existing Vims, move the list to a submenu.
(Mike McCollister)
8 When using "Edit with Vim" for one file it changes directory, when several
@@ -4871,8 +4933,6 @@ Debug mode:
Various improvements:
9 Python: be able to define a Python function that can be called directly
from Vim script. Requires converting the arguments and return value.
7 Add plugins for formatting? Should be able to make a choice depending on
the language of a file (English/Korean/Japanese/etc.).
Setting the 'langformat' option to "chinese" would load the
@@ -4897,7 +4957,6 @@ Various improvements:
7 Allow a window not to have a statusline. Makes it possible to use a
window as a buffer-tab selection.
8 Allow non-active windows to have a different statusline. (Yakov Lerner)
6 Python interface: add vim.message() function. (Michal Vitecek, 2002 Nov 5)
7 Support using ":vert" with User commands. Add expandable items <vert>.
Do the same for ":browse" and ":confirm"?
For ":silent" and ":debug" apply to the whole user command.

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 7.3. Last change: 2012 Dec 06
*various.txt* For Vim version 7.3. Last change: 2013 May 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -368,7 +368,7 @@ N *+mouse_sysmouse* Unix only: *BSD console mouse handling |sysmouse|
B *+mouse_sgr* Unix only: sgr mouse handling |sgr-mouse|
B *+mouse_urxvt* Unix only: urxvt mouse handling |urxvt-mouse|
N *+mouse_xterm* Unix only: xterm mouse handling |xterm-mouse|
B *+multi_byte* 16 and 32 bit characters |multibyte|
N *+multi_byte* 16 and 32 bit characters |multibyte|
*+multi_byte_ime* Win32 input method for multibyte chars |multibyte-ime|
N *+multi_lang* non-English language support |multi-lang|
m *+mzscheme* Mzscheme interface |mzscheme|

View File

@@ -1,11 +1,11 @@
.\" Traduction Lundi 7 août 2000 par Richard Hitier
.\" Traduction lundi 7 août 2000 par Richard Hitier
.\" (richard.hitier@dial.oleane.com)
.\" Mise à jour de la traduction par David Blanchet
.\" (david.blanchet@free.fr) 2006-06-10
.\" Mise à jour de la traduction par Dominique Pellé
.\" (dominique.pelle@gmail.com) 2008-11-29
.\" (dominique.pelle@gmail.com) 2013-05-10
.\"
.TH VIM 1 "22 Février 2002"
.TH VIM 1 "22 février 2002"
.SH NOM
vim \- Vi IMproved, éditeur de texte pour programmeurs
.SH SYNOPSIS
@@ -156,7 +156,7 @@ Ex
{commande} est interprétée comme une commande Ex.
Si la {commande} contient des espaces, elle doit être entourée
de doubles-apostrophes (cela dépend du shell utilisé).
Exemple: Vim "+set si" main.c
Exemple : Vim "+set si" main.c
.br
Note : vous pouvez utiliser jusqu'à 10 commandes "+" ou "\-c".
.TP
@@ -204,7 +204,7 @@ Fonctionne comme vimdiff(1).
\-d {périph}
Ouvre {périph} pour l'utiliser comme terminal.
Uniquement sur Amiga.
Exemple:
Exemple :
"\-d con:20/30/600/150".
.TP
\-D
@@ -269,7 +269,7 @@ quitte.
Si
.B Vim
a été compilé avec le support de la fonctionnalité RIGHTLEFT pour l'édition de
fichiers de droite à gauche et les claviers hébreu, cette option lance
fichiers de droite à gauche et les claviers hébreux, cette option lance
.B Vim
en mode Hébreu, c.-à-d. avec les options 'hkmap' et 'rightleft' activées.
Sinon, un message d'erreur est émis et
@@ -435,7 +435,7 @@ Mode restreint. Fonctionne comme si l'ex
\-\-
Délimite la fin des options.
Les arguments qui suivent seront considérés comme des noms de fichiers.
Cela permet d'éditer des fichier débutant par un '\-'.
Cela permet d'éditer des fichiers débutant par un '\-'.
.TP
\-\-echo\-wid
IHM graphique GTK uniquement : retourne la Window ID sur stdout.
@@ -586,4 +586,4 @@ Cette page de manuel a
.br
Cette page de manuel a été mise à jour par David Blanchet.
<david.blanchet@free.fr> 2006-04-10.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com>
Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@@ -1,11 +1,11 @@
.\" Traduction Lundi 7 août 2000 par Richard Hitier
.\" Traduction lundi 7 août 2000 par Richard Hitier
.\" (richard.hitier@dial.oleane.com)
.\" Mise à jour de la traduction par David Blanchet
.\" (david.blanchet@free.fr) 2006-06-10
.\" Mise à jour de la traduction par Dominique Pellé
.\" (dominique.pelle@gmail.com) 2008-11-29
.\" (dominique.pelle@gmail.com) 2013-05-10
.\"
.TH VIM 1 "22 Février 2002"
.TH VIM 1 "22 février 2002"
.SH NOM
vim \- Vi IMproved, éditeur de texte pour programmeurs
.SH SYNOPSIS
@@ -156,7 +156,7 @@ Exécute {commande} après la lecture du premier fichier.
{commande} est interprétée comme une commande Ex.
Si la {commande} contient des espaces, elle doit être entourée
de doubles-apostrophes (cela dépend du shell utilisé).
Exemple: Vim "+set si" main.c
Exemple : Vim "+set si" main.c
.br
Note : vous pouvez utiliser jusqu'à 10 commandes "+" ou "\-c".
.TP
@@ -204,7 +204,7 @@ Fonctionne comme vimdiff(1).
\-d {périph}
Ouvre {périph} pour l'utiliser comme terminal.
Uniquement sur Amiga.
Exemple:
Exemple :
"\-d con:20/30/600/150".
.TP
\-D
@@ -269,7 +269,7 @@ quitte.
Si
.B Vim
a été compilé avec le support de la fonctionnalité RIGHTLEFT pour l'édition de
fichiers de droite à gauche et les claviers hébreu, cette option lance
fichiers de droite à gauche et les claviers hébreux, cette option lance
.B Vim
en mode Hébreu, c.-à-d. avec les options 'hkmap' et 'rightleft' activées.
Sinon, un message d'erreur est émis et
@@ -435,7 +435,7 @@ Mode restreint. Fonctionne comme si l'exécutable commençait par la lettre 'r'.
\-\-
Délimite la fin des options.
Les arguments qui suivent seront considérés comme des noms de fichiers.
Cela permet d'éditer des fichier débutant par un '\-'.
Cela permet d'éditer des fichiers débutant par un '\-'.
.TP
\-\-echo\-wid
IHM graphique GTK uniquement : retourne la Window ID sur stdout.
@@ -586,4 +586,4 @@ Cette page de manuel a été traduite par Richard Hitier.
.br
Cette page de manuel a été mise à jour par David Blanchet.
<david.blanchet@free.fr> 2006-04-10.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com>
Mise à jour par Dominique Pellé <dominique.pelle@gmail.com> 2013-05-10

View File

@@ -159,7 +159,7 @@ fichier n'est pas adressable, seuls les vides sont autoris
comblés par des octets nuls.
.PP
.I xxd \-r
ne génère aucune erreur lors de l'analyse. Le problème sont passés
ne génère aucune erreur lors de l'analyse. Les problèmes sont passés
silencieusement.
.PP
Lors de l'édition de la représentation hexadécimale, veuillez noter que
@@ -307,7 +307,7 @@ Convertir le fichier de l'exemple pr
000fffc: 0000 0000 40 ....A
.PP
Créer un fichier d'un octet, contenant seulement le caractère 'A'.
Les nombres après '\-r \-s' s'ajoutent au numéros de lignes trouvées dans le
Le nombre après '\-r \-s' s'ajoute aux numéros de lignes trouvées dans le
fichier ; les octets initiaux sont supprimés.
.br
\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> fichier\fR
@@ -393,4 +393,4 @@ Modifications mineures par Bram Moolenaar.
.SH TRADUCTION
Cette page de manuel a été traduite par David Blanchet
<david.blanchet@free.fr> 2004-12-24.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com>
Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@@ -159,7 +159,7 @@ fichier n'est pas adressable, seuls les vides sont autorisés, et ils seront
comblés par des octets nuls.
.PP
.I xxd \-r
ne génère aucune erreur lors de l'analyse. Le problème sont passés
ne génère aucune erreur lors de l'analyse. Les problèmes sont passés
silencieusement.
.PP
Lors de l'édition de la représentation hexadécimale, veuillez noter que
@@ -307,7 +307,7 @@ Convertir le fichier de l'exemple précédent avec la fonctionnalité "autoskip"
000fffc: 0000 0000 40 ....A
.PP
Créer un fichier d'un octet, contenant seulement le caractère 'A'.
Les nombres après '\-r \-s' s'ajoutent au numéros de lignes trouvées dans le
Le nombre après '\-r \-s' s'ajoute aux numéros de lignes trouvées dans le
fichier ; les octets initiaux sont supprimés.
.br
\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> fichier\fR
@@ -393,4 +393,4 @@ Modifications mineures par Bram Moolenaar.
.SH TRADUCTION
Cette page de manuel a été traduite par David Blanchet
<david.blanchet@free.fr> 2004-12-24.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com>
Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2013 Apr 08
" Last Change: 2013 Jun 01
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -757,6 +757,7 @@ au BufNewFile,BufRead *.git/MERGE_MSG setf gitcommit
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
au BufNewFile,BufRead *.git/modules/**/COMMIT_EDITMSG setf gitcommit
au BufNewFile,BufRead *.git/modules/**/config setf gitconfig
au BufNewFile,BufRead */.config/git/config setf gitconfig
au BufNewFile,BufRead git-rebase-todo setf gitrebase
au BufNewFile,BufRead .msg.[0-9]*
\ if getline(1) =~ '^From.*# This line is ignored.$' |
@@ -1101,7 +1102,7 @@ au BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple
au BufNewFile,BufRead *.map setf map
" Markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,README.md setf markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,README.md setf markdown
" Mason
au BufNewFile,BufRead *.mason,*.mhtml setf mason

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 Aug 09
" Last Change: 2013 Jun 01
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -9,6 +9,9 @@ if (exists("b:did_ftplugin"))
endif
let b:did_ftplugin = 1
let s:keepcpo= &cpo
set cpo&vim
setlocal formatoptions-=t formatoptions+=croql
setlocal comments=:# commentstring=#\ %s
setlocal omnifunc=CucumberComplete
@@ -18,11 +21,27 @@ let b:undo_ftplugin = "setl fo< com< cms< ofu<"
let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
nmap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
nmap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
nmap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
nmap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
let b:undo_ftplugin .= "| sil! iunmap! <C-]>| sil! iunmap! <C-W>]| sil! iunmap! <C-W><C-]>| sil! iunmap! <C-W>}"
nnoremap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
nnoremap <silent><buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
nnoremap <silent><buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
nnoremap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
nnoremap <silent><buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
nnoremap <silent><buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
let b:undo_ftplugin .=
\ "|sil! nunmap <buffer> <C-]>" .
\ "|sil! nunmap <buffer> [<C-D>" .
\ "|sil! nunmap <buffer> ]<C-D>" .
\ "|sil! nunmap <buffer> <C-W>]" .
\ "|sil! nunmap <buffer> <C-W><C-]>" .
\ "|sil! nunmap <buffer> <C-W>d" .
\ "|sil! nunmap <buffer> <C-W><C-D>" .
\ "|sil! nunmap <buffer> <C-W>}" .
\ "|sil! nunmap <buffer> [d" .
\ "|sil! nunmap <buffer> ]d"
endif
function! s:jump(command,count)
@@ -38,7 +57,7 @@ function! s:jump(command,count)
endfunction
function! s:allsteps()
let step_pattern = '\C^\s*\K\k*\>\s*\zs\S.\{-\}\ze\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)'
let step_pattern = '\C^\s*\K\k*\>\s*(\=\s*\zs\S.\{-\}\ze\s*)\=\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)'
let steps = []
for file in split(glob(b:cucumber_root.'/**/*.rb'),"\n")
let lines = readfile(file)
@@ -55,7 +74,7 @@ function! s:allsteps()
endfunction
function! s:steps(lnum)
let c = indent(a:lnum) + 1
let c = match(getline(a:lnum), '\S') + 1
while synIDattr(synID(a:lnum,c,1),'name') !~# '^$\|Region$'
let c = c + 1
endwhile
@@ -129,4 +148,7 @@ function! CucumberComplete(findstart,base) abort
return sort(steps)
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
" vim:set sts=2 sw=2:

View File

@@ -1,6 +1,7 @@
" Vim filetype plugin
" Language: generic git output
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: git commit file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2012 April 7
" Last Change: 2013 May 30
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -11,9 +11,9 @@ endif
runtime! ftplugin/git.vim
let b:did_ftplugin = 1
setlocal nomodeline
setlocal nomodeline tabstop=8 formatoptions-=croq formatoptions+=tl
let b:undo_ftplugin = 'setl modeline<'
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions<'
if &textwidth == 0
" make sure that log messages play nice with git-log on standard terminals

View File

@@ -0,0 +1,32 @@
" Language: gprof
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
" Last Change: 2012 May 20
" When cursor is on one line of the gprof call graph,
" calling this function jumps to this function in the call graph.
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin=1
fun! <SID>GprofJumpToFunctionIndex()
let l:line = getline('.')
if l:line =~ '[\d\+\]$'
" We're in a line in the call graph.
norm $y%
call search('^' . escape(@", '[]'), 'sw')
norm zz
elseif l:line =~ '^\(\s\+[0-9\.]\+\)\{3}\s\+'
" We're in line in the flat profile.
norm 55|y$
call search('^\[\d\+\].*\d\s\+' . escape(@", '[]*.'), 'sW')
norm zz
endif
endfun
" Pressing <C-]> on a line in the gprof flat profile or in
" the call graph, jumps to the corresponding function inside
" the flat profile.
map <silent> <C-]> :call <SID>GprofJumpToFunctionIndex()<CR>
" vim:sw=2 fdm=indent

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2012 Mar 11
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 Jun 01
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -18,6 +18,7 @@ let s:match_words = ""
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
unlet! b:did_ftplugin
set matchpairs-=<:>
" Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin")

View File

@@ -1,17 +1,16 @@
" Vim filetype plugin
" Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2011 Dec 14
" Last Change: 2013 May 30
if exists("b:did_ftplugin")
finish
endif
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
unlet! b:did_ftplugin
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
setlocal formatoptions+=tcqln
setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
if exists('b:undo_ftplugin')

View File

@@ -1,8 +1,9 @@
" Vim filetype plugin file
" Language: Perl
" Maintainer: Andy Lester <andy@petdance.com>
" URL: http://github.com/petdance/vim-perl
" Last Change: 2012 Mar 11
" Language: Perl
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-05-11
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@@ -12,7 +13,8 @@ let b:did_ftplugin = 1
let s:save_cpo = &cpo
set cpo-=C
setlocal formatoptions+=crq
setlocal formatoptions-=t
setlocal formatoptions+=crqol
setlocal keywordprg=perldoc\ -f
setlocal comments=:#
@@ -29,7 +31,7 @@ endif
" Provided by Ned Konz <ned at bike-nomad dot com>
"---------------------------------------------
setlocal include=\\<\\(use\\\|require\\)\\>
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.pm','')
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
setlocal define=[^A-Za-z_]
" The following line changes a global variable but is necessary to make
@@ -38,7 +40,7 @@ setlocal define=[^A-Za-z_]
" problem for you, add an after/ftplugin/perl.vim file that contains
" set isfname-=:
set isfname+=:
"setlocal iskeyword=48-57,_,A-Z,a-z,:
set iskeyword+=:
" Set this once, globally.
if !exists("perlpath")
@@ -60,13 +62,27 @@ if !exists("perlpath")
endif
endif
let &l:path=perlpath
" Append perlpath to the existing path value, if it is set. Since we don't
" use += to do it because of the commas in perlpath, we have to handle the
" global / local settings, too.
if &l:path == ""
if &g:path == ""
let &l:path=perlpath
else
let &l:path=&g:path.",".perlpath
endif
else
let &l:path=&l:path.",".perlpath
endif
"---------------------------------------------
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" .
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
\ " | unlet! b:browsefilter"
" proper matching for matchit plugin
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@@ -1,9 +1,10 @@
" Vim filetype plugin file
" Language: Perl 6
" Maintainer: Andy Lester <andy@petdance.com>
" URL: http://github.com/petdance/vim-perl/tree/master
" Last Change: 2012 Mar 11
" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Language: Perl 6
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-05-11
" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
"
" Based on ftplugin/perl.vim by Dan Sharp <dwsharp at hotmail dot com>
@@ -15,16 +16,19 @@ let b:did_ftplugin = 1
let s:save_cpo = &cpo
set cpo-=C
setlocal formatoptions+=crq
setlocal formatoptions-=t
setlocal formatoptions+=crqol
setlocal keywordprg=p6doc
setlocal comments=:#
setlocal commentstring=#%s
" Change the browse dialog on Win32 to show mainly Perl-related files
if has("gui_win32")
let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" .
\ "Perl Modules (*.pm)\t*.pm\n" .
\ "Perl Documentation Files (*.pod)\t*.pod\n" .
\ "All Files (*.*)\t*.*\n"
\ "Perl Modules (*.pm)\t*.pm\n" .
\ "Perl Documentation Files (*.pod)\t*.pod\n" .
\ "All Files (*.*)\t*.*\n"
endif
" Provided by Ned Konz <ned at bike-nomad dot com>
@@ -39,10 +43,34 @@ setlocal define=[^A-Za-z_]
" after/ftplugin/perl6.vim file that contains
" set isfname-=:
set isfname+=:
setlocal iskeyword=48-57,_,A-Z,a-z,:,-
" Set this once, globally.
if !exists("perlpath")
if executable("perl6")
try
if &shellxquote != '"'
let perlpath = system('perl6 -e "@*INC.join(q/,/).say"')
else
let perlpath = system("perl6 -e '@*INC.join(q/,/).say'")
endif
let perlpath = substitute(perlpath,',.$',',,','')
catch /E145:/
let perlpath = ".,,"
endtry
else
" If we can't call perl to get its path, just default to using the
" current directory and the directory of the current file.
let perlpath = ".,,"
endif
endif
let &l:path=perlpath
"---------------------------------------------
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk<" .
\ " | unlet! b:browsefilter"
\ " | unlet! b:browsefilter"
" Restore the saved compatibility options.
let &cpo = s:save_cpo

View File

@@ -1,8 +1,8 @@
" SQL filetype plugin file
" Language: SQL (Common for Oracle, Microsoft SQL Server, Sybase)
" Version: 10.0
" Version: 11.0
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Last Change: 2012 Dec 04
" Last Change: 2013 May 13
" Download: http://vim.sourceforge.net/script.php?script_id=454
" For more details please use:
@@ -36,6 +36,10 @@
"
" History
"
" Version 11.0 (May 2013)
"
" NF: Updated to use SyntaxComplete's new regex support for syntax groups.
"
" Version 10.0 (Dec 2012)
"
" NF: Changed all maps to use noremap instead of must map
@@ -189,7 +193,7 @@ if !exists("*SQL_SetType")
" Remove any cached SQL since a new sytax will have different
" items and groups
if !exists('g:loaded_sql_completion') || 100 == g:loaded_sql_completion
if !exists('g:loaded_sql_completion') || g:loaded_sql_completion >= 100
call sqlcomplete#ResetCacheSyntax()
endif
@@ -458,6 +462,8 @@ if exists('&omnifunc')
" OMNI function prior to setting up the SQL OMNI function
let b:sql_compl_savefunc = &omnifunc
" Source it to determine it's version
runtime autoload/sqlcomplete.vim
" This is used by the sqlcomplete.vim plugin
" Source it for it's global functions
runtime autoload/syntaxcomplete.vim
@@ -466,14 +472,20 @@ if exists('&omnifunc')
" Prevent the intellisense plugin from loading
let b:sql_vis = 1
if !exists('g:omni_sql_no_default_maps')
let regex_extra = ''
if exists('g:loaded_syntax_completion') && exists('g:loaded_sql_completion')
if g:loaded_syntax_completion > 120 && g:loaded_sql_completion > 140
let regex_extra = '\\w*'
endif
endif
" Static maps which use populate the completion list
" using Vim's syntax highlighting rules
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'a <C-\><C-O>:call sqlcomplete#Map("syntax")<CR><C-X><C-O>'
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'k <C-\><C-O>:call sqlcomplete#Map("sqlKeyword")<CR><C-X><C-O>'
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'f <C-\><C-O>:call sqlcomplete#Map("sqlFunction")<CR><C-X><C-O>'
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'o <C-\><C-O>:call sqlcomplete#Map("sqlOption")<CR><C-X><C-O>'
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'T <C-\><C-O>:call sqlcomplete#Map("sqlType")<CR><C-X><C-O>'
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'s <C-\><C-O>:call sqlcomplete#Map("sqlStatement")<CR><C-X><C-O>'
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'k <C-\><C-O>:call sqlcomplete#Map("sqlKeyword'.regex_extra.'")<CR><C-X><C-O>'
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'f <C-\><C-O>:call sqlcomplete#Map("sqlFunction'.regex_extra.'")<CR><C-X><C-O>'
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'o <C-\><C-O>:call sqlcomplete#Map("sqlOption'.regex_extra.'")<CR><C-X><C-O>'
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'T <C-\><C-O>:call sqlcomplete#Map("sqlType'.regex_extra.'")<CR><C-X><C-O>'
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'s <C-\><C-O>:call sqlcomplete#Map("sqlStatement'.regex_extra.'")<CR><C-X><C-O>'
" Dynamic maps which use populate the completion list
" using the dbext.vim plugin
exec 'inoremap <buffer> '.g:ftplugin_sql_omni_key.'t <C-\><C-O>:call sqlcomplete#Map("table")<CR><C-X><C-O>'
@@ -510,4 +522,3 @@ let &cpo = s:save_cpo
unlet s:save_cpo
" vim:sw=4:

View File

@@ -1,8 +1,9 @@
" Vim filetype plugin file
" Language: XS (Perl extension interface language)
" Maintainer: Andy Lester <andy@petdance.com>
" URL: http://github.com/petdance/vim-perl
" Last Change: 2009-08-14
" Language: XS (Perl extension interface language)
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2009-08-14
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 May 21
" Last Change: 2013 May 30
if exists("b:did_indent")
finish
@@ -12,6 +12,8 @@ setlocal autoindent
setlocal indentexpr=GetCucumberIndent()
setlocal indentkeys=o,O,*<Return>,<:>,0<Bar>,0#,=,!^F
let b:undo_indent = 'setl ai< inde< indk<'
" Only define the function once.
if exists("*GetCucumberIndent")
finish
@@ -24,35 +26,47 @@ endfunction
function! GetCucumberIndent()
let line = getline(prevnonblank(v:lnum-1))
let cline = getline(v:lnum)
let nline = getline(nextnonblank(v:lnum+1))
let syn = s:syn(prevnonblank(v:lnum-1))
let csyn = s:syn(v:lnum)
let nsyn = s:syn(nextnonblank(v:lnum+1))
if csyn ==# 'cucumberFeature' || cline =~# '^\s*Feature:'
" feature heading
return 0
elseif csyn ==# 'cucumberExamples' || cline =~# '^\s*\%(Examples\|Scenarios\):'
" examples heading
return 2 * &sw
elseif csyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || cline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
" background, scenario or outline heading
return &sw
elseif syn ==# 'cucumberFeature' || line =~# '^\s*Feature:'
" line after feature heading
return &sw
elseif syn ==# 'cucumberExamples' || line =~# '^\s*\%(Examples\|Scenarios\):'
" line after examples heading
return 3 * &sw
elseif syn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || line =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
" line after background, scenario or outline heading
return 2 * &sw
elseif cline =~# '^\s*@' && (s:syn(nextnonblank(v:lnum+1)) == 'cucumberFeature' || getline(nextnonblank(v:lnum+1)) =~# '^\s*Feature:' || indent(prevnonblank(v:lnum-1)) <= 0)
elseif cline =~# '^\s*[@#]' && (nsyn == 'cucumberFeature' || nline =~# '^\s*Feature:' || indent(prevnonblank(v:lnum-1)) <= 0)
" tag or comment before a feature heading
return 0
elseif line =~# '^\s*@'
elseif cline =~# '^\s*@'
" other tags
return &sw
elseif cline =~# '^\s*|' && line =~# '^\s*|'
elseif cline =~# '^\s*[#|]' && line =~# '^\s*|'
" mid-table
" preserve indent
return indent(prevnonblank(v:lnum-1))
elseif cline =~# '^\s*|' && line =~# '^\s*[^|#]'
elseif cline =~# '^\s*|' && line =~# '^\s*[^|]'
" first line of a table, relative indent
return indent(prevnonblank(v:lnum-1)) + &sw
elseif cline =~# '^\s*[^|# \t]' && line =~# '^\s*|'
elseif cline =~# '^\s*[^|]' && line =~# '^\s*|'
" line after a table, relative unindent
return indent(prevnonblank(v:lnum-1)) - &sw
elseif cline =~# '^\s*$' && line =~# '^\s*|'
let in = indent(prevnonblank(v:lnum-1))
return in == indent(v:lnum) ? in : in - &sw
elseif cline =~# '^\s*#' && getline(v:lnum-1) =~ '^\s*$' && getline(v:lnum+1) =~# '\S'
return indent(getline(v:lnum+1))
elseif cline =~# '^\s*#' && getline(v:lnum-1) =~ '^\s*$' && (nsyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || nline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):')
" comments on scenarios
return &sw
endif
return indent(prevnonblank(v:lnum-1))
endfunction

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: git config file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2012 April 7
" Last Change: 2013 May 30
if exists("b:did_indent")
finish

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 May 21
" Last Change: 2013 May 30
if exists("b:did_indent")
finish
@@ -23,7 +23,7 @@ let s:attributes = '\%({.\{-\}}\|\[.\{-\}\]\)'
let s:tag = '\%([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*'
if !exists('g:haml_self_closing_tags')
let g:haml_self_closing_tags = 'meta|link|img|hr|br'
let g:haml_self_closing_tags = 'base|link|meta|br|hr|img|input'
endif
function! GetHamlIndent()

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Liquid
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2012 May 07
" Last Change: 2013 May 30
if exists('b:did_indent')
finish

View File

@@ -1,8 +1,9 @@
" Vim indent file
" Language: Perl 5
" Author: Andy Lester <andy@petdance.com>
" URL: http://github.com/petdance/vim-perl/tree/master
" Last Change: June 3, 2009
" Language: Perl 5
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: May 12, 2013
" Suggestions and improvements by :
" Aaron J. Sherman (use syntax for hints)
@@ -11,9 +12,9 @@
" TODO things that are not or not properly indented (yet) :
" - Continued statements
" print "foo",
" "bar";
" "bar";
" print "foo"
" if bar();
" if bar();
" - Multiline regular expressions (m//x)
" (The following probably needs modifying the perl syntax file)
" - qw() lists
@@ -34,15 +35,10 @@ if !b:indent_use_syntax
setlocal indentkeys+=0=EO
endif
" Only define the function once.
if exists("*GetPerlIndent")
finish
endif
let s:cpo_save = &cpo
set cpo-=C
function GetPerlIndent()
function! GetPerlIndent()
" Get the line to be indented
let cline = getline(v:lnum)
@@ -52,7 +48,7 @@ function GetPerlIndent()
return 0
endif
" Don't reindent coments on first column
" Don't reindent comments on first column
if cline =~ '^#.'
return 0
endif
@@ -124,7 +120,12 @@ function GetPerlIndent()
" Indent blocks enclosed by {}, (), or []
if b:indent_use_syntax
" Find a real opening brace
let bracepos = match(line, '[(){}\[\]]', matchend(line, '^\s*[)}\]]'))
" NOTE: Unlike Perl character classes, we do NOT need to escape the
" closing brackets with a backslash. Doing so just puts a backslash
" in the character class and causes sorrow. Instead, put the closing
" bracket as the first character in the class.
let braceclass = '[][(){}]'
let bracepos = match(line, braceclass, matchend(line, '^\s*[])}]'))
while bracepos != -1
let synid = synIDattr(synID(lnum, bracepos + 1, 0), "name")
" If the brace is highlighted in one of those groups, indent it.
@@ -133,7 +134,7 @@ function GetPerlIndent()
\ || synid == "perlMatchStartEnd"
\ || synid == "perlHereDoc"
\ || synid =~ "^perlFiledescStatement"
\ || synid =~ '^perl\(Sub\|Block\)Fold'
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let brace = strpart(line, bracepos, 1)
if brace == '(' || brace == '{' || brace == '['
let ind = ind + &sw
@@ -141,22 +142,22 @@ function GetPerlIndent()
let ind = ind - &sw
endif
endif
let bracepos = match(line, '[(){}\[\]]', bracepos + 1)
let bracepos = match(line, braceclass, bracepos + 1)
endwhile
let bracepos = matchend(cline, '^\s*[)}\]]')
let bracepos = matchend(cline, '^\s*[])}]')
if bracepos != -1
let synid = synIDattr(synID(v:lnum, bracepos, 0), "name")
if synid == ""
\ || synid == "perlMatchStartEnd"
\ || synid =~ '^perl\(Sub\|Block\)Fold'
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let ind = ind - &sw
endif
endif
else
if line =~ '[{\[(]\s*\(#[^)}\]]*\)\=$'
if line =~ '[{[(]\s*\(#[^])}]*\)\=$'
let ind = ind + &sw
endif
if cline =~ '^\s*[)}\]]'
if cline =~ '^\s*[])}]'
let ind = ind - &sw
endif
endif

View File

@@ -1,12 +1,13 @@
" Vim indent file
" Language: Perl 6
" Maintainer: Andy Lester <andy@petdance.com>
" URL: http://github.com/petdance/vim-perl/tree/master
" Last Change: 2009-07-04
" Contributors: Andy Lester <andy@petdance.com>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Language: Perl 6
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-05-12
" Contributors: Andy Lester <andy@petdance.com>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
"
" Adapted from Perl indent file by Rafael Garcia-Suarez <rgarciasuarez@free.fr>
" Adapted from indent/perl.vim by Rafael Garcia-Suarez <rgarciasuarez@free.fr>
" Suggestions and improvements by :
" Aaron J. Sherman (use syntax for hints)
@@ -46,15 +47,10 @@ if !b:indent_use_syntax
setlocal indentkeys+=0=EO
endif
" Only define the function once.
if exists("*GetPerl6Indent")
finish
endif
let s:cpo_save = &cpo
set cpo-=C
function GetPerl6Indent()
function! GetPerl6Indent()
" Get the line to be indented
let cline = getline(v:lnum)

View File

@@ -2,21 +2,23 @@
" Language: PHP
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
" URL: http://www.2072productions.com/vim/indent/php.vim
" Last Change: 2010 Jully 26th
" Newsletter: http://www.2072productions.com/?to=php-indent-for-vim-newsletter.php
" Version: 1.33
" Home: https://github.com/2072/PHP-Indenting-for-VIm
" Last Change: 2013 May 10th
" Version: 1.37
"
"
" If you find a bug, please report it on GitHub:
" http://github.com/2072/PHP-Indenting-for-VIm/issues
" with an example of code that breaks the algorithm.
" Type :help php-indent for available options
"
" A fully commented version of this file is available on github
"
"
" Thanks a lot for using this script.
"
" If you find a bug, please open a ticket on github.org
" ( https://github.com/2072/PHP-Indenting-for-VIm/issues ) with an example of
" code that breaks the algorithm.
"
" NOTE: This script must be used with PHP syntax ON and with the php syntax
" script by Lutz Eymers (http://www.ipdienste.net/data/php.vim ) or with the
" script by Lutz Eymers (http://www.isp.de/data/php.vim ) or with the
" script by Peter Hodge (http://www.vim.org/scripts/script.php?script_id=1571 )
" the later is bunbdled by default with Vim 7.
"
@@ -26,7 +28,7 @@
" script will automatically put HereDoc end identifiers at col 1 if
" they are followed by a ';').
"
"
" NOTE: If you are editing files in Unix file format and that (by accident)
" there are '\r' before new lines, this script won't be able to proceed
" correctly and will make many mistakes because it won't be able to match
@@ -38,8 +40,6 @@
" or simply 'let' the option PHP_removeCRwhenUnix to 1 and the script will
" silently remove them when VIM load this script (at each bufread).
"
" Options: See :help php-indent for available options.
if exists("b:did_indent")
finish
@@ -50,12 +50,19 @@ let b:did_indent = 1
let php_sync_method = 0
if exists("PHP_default_indenting")
let b:PHP_default_indenting = PHP_default_indenting * &sw
else
let b:PHP_default_indenting = 0
endif
if exists("PHP_outdentSLComments")
let b:PHP_outdentSLComments = PHP_outdentSLComments * &sw
else
let b:PHP_outdentSLComments = 0
endif
if exists("PHP_BracesAtCodeLevel")
let b:PHP_BracesAtCodeLevel = PHP_BracesAtCodeLevel
else
@@ -116,13 +123,20 @@ endif
if exists("*GetPhpIndent")
call ResetPhpOptions()
finish
finish " XXX -- comment this line for easy dev
endif
let s:endline= '\s*\%(//.*\|#.*\|/\*.*\*/\s*\)\=$'
let s:PHP_startindenttag = '<?\%(.*?>\)\@!\|<script[^>]*>\%(.*<\/script>\)\@!'
function! DebugPrintReturn(scriptLine)
echo "debug:" . a:scriptLine
call getchar()
endfunction
function! GetLastRealCodeLNum(startline) " {{{
let lnum = a:startline
@@ -189,8 +203,6 @@ function! GetLastRealCodeLNum(startline) " {{{
let b:InPHPcode_and_script = 0
endif
return lnum
endfunction " }}}
@@ -198,11 +210,11 @@ function! Skippmatch2()
let line = getline(".")
if line =~ '\%(".*\)\@<=/\*\%(.*"\)\@=' || line =~ '\%(\%(//\|#\).*\)\@<=/\*'
return 1
else
return 0
endif
if line =~ "\\([\"']\\).*/\\*.*\\1" || line =~ '\%(//\|#\).*/\*'
return 1
else
return 0
endif
endfun
function! Skippmatch() " {{{
@@ -314,7 +326,7 @@ function! IslinePHP (lnum, tofind) " {{{
endif
endfunction " }}}
let s:notPhpHereDoc = '\%(break\|return\|continue\|exit\|else\)'
let s:notPhpHereDoc = '\%(break\|return\|continue\|exit\|die\|else\)'
let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|else\>\|while\>\|switch\>\|case\>\|default\>\|for\%(each\)\=\>\|declare\>\|class\>\|interface\>\|abstract\>\|try\>\|catch\>\)'
let s:autoresetoptions = 0
@@ -361,14 +373,12 @@ function! GetPhpIndent()
if !b:PHP_indentinghuge && b:PHP_lastindented > b:PHP_indentbeforelast
if b:PHP_indentbeforelast
let b:PHP_indentinghuge = 1
echom 'Large indenting detected, speed optimizations engaged (v1.33)'
endif
let b:PHP_indentbeforelast = b:PHP_lastindented
endif
if b:InPHPcode_checked && prevnonblank(v:lnum - 1) != b:PHP_lastindented
if b:PHP_indentinghuge
echom 'Large indenting deactivated'
let b:PHP_indentinghuge = 0
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
endif
@@ -425,7 +435,7 @@ function! GetPhpIndent()
else
let b:InPHPcode = 0
let b:UserIsTypingComment = 0
let b:InPHPcode_tofind = '<?\%(.*?>\)\@!\|<script.*>'
let b:InPHPcode_tofind = s:PHP_startindenttag
endif
endif "!b:InPHPcode_checked }}}
@@ -493,7 +503,9 @@ function! GetPhpIndent()
endif
" Indent successive // or # comment the same way the first is {{{
let addSpecial = 0
if cline =~ '^\s*\%(//\|#\|/\*.*\*/\s*$\)'
let addSpecial = b:PHP_outdentSLComments
if b:PHP_LastIndentedWasComment == 1
return indent(real_PHP_lastindented)
endif
@@ -550,7 +562,7 @@ function! GetPhpIndent()
endif
if lnum == 0
return b:PHP_default_indenting
return b:PHP_default_indenting + addSpecial
endif
@@ -577,17 +589,17 @@ function! GetPhpIndent()
endif
if last_line =~ '[;}]'.endline && last_line !~ '^)' && last_line !~# s:defaultORcase
if last_line =~ '[;}]'.endline && last_line !~ '^[)\]]' && last_line !~# s:defaultORcase
if ind==b:PHP_default_indenting
return b:PHP_default_indenting
return b:PHP_default_indenting + addSpecial
elseif b:PHP_indentinghuge && ind==b:PHP_CurrentIndentLevel && cline !~# '^\s*\%(else\|\%(case\|default\).*:\|[})];\=\)' && last_line !~# '^\s*\%(\%(}\s*\)\=else\)' && getline(GetLastRealCodeLNum(lnum - 1))=~';'.endline
return b:PHP_CurrentIndentLevel
return b:PHP_CurrentIndentLevel + addSpecial
endif
endif
let LastLineClosed = 0
let terminated = '\%(;\%(\s*?>\)\=\|<<<''\=\a\w*''\=$\|^\s*}\)'.endline
let terminated = '\%(;\%(\s*\%(?>\|}\)\)\=\|<<<''\=\a\w*''\=$\|^\s*}\)'.endline
let unstated = '\%(^\s*'.s:blockstart.'.*)\|\%(//.*\)\@<!\<e'.'lse\>\)'.endline
@@ -618,19 +630,23 @@ function! GetPhpIndent()
endwhile
elseif last_line =~# unstated && cline !~ '^\s*);\='.endline
let ind = ind + &sw
return ind
let ind = ind + &sw " we indent one level further when the preceding line is not stated
return ind + addSpecial
elseif (ind != b:PHP_default_indenting || last_line =~ '^)' ) && last_line =~ terminated
elseif (ind != b:PHP_default_indenting || last_line =~ '^[)\]]' ) && last_line =~ terminated " Added || last_line =~ '^)' on 2007-12-30 (array indenting problem broke other things)
let previous_line = last_line
let last_line_num = lnum
let LastLineClosed = 1
while 1
if previous_line =~ '^\s*}'
let last_line_num = FindOpenBracket(last_line_num)
if previous_line =~ '^\s*}\|;\s*}'.endline " XXX
if getline(last_line_num) =~ '^\s*{'
call cursor(last_line_num, 1)
call search('}\|;\s*}'.endline, 'W')
let oldLastLine = last_line_num
let last_line_num = searchpair('{', '', '}', 'bW', 'Skippmatch()')
if oldLastLine == last_line_num || getline(last_line_num) =~ '^\s*{'
let last_line_num = GetLastRealCodeLNum(last_line_num - 1)
endif
@@ -674,7 +690,7 @@ function! GetPhpIndent()
let ind = indent(last_match)
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
return ind
return ind + addSpecial
endif
endif
@@ -693,7 +709,7 @@ function! GetPhpIndent()
if !LastLineClosed
if last_line =~# '[{(]'.endline || last_line =~? '\h\w*\s*(.*,$' && AntepenultimateLine !~ '[,(]'.endline
if last_line =~# '[{(\[]'.endline || last_line =~? '\h\w*\s*(.*,$' && AntepenultimateLine !~ '[,(]'.endline
if !b:PHP_BracesAtCodeLevel || last_line !~# '^\s*{'
let ind = ind + &sw
@@ -702,7 +718,7 @@ function! GetPhpIndent()
if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1
let b:PHP_CurrentIndentLevel = ind
return ind
return ind + addSpecial
endif
elseif last_line =~ '\S\+\s*),'.endline
@@ -712,22 +728,21 @@ function! GetPhpIndent()
if openedparent != lnum
let ind = indent(openedparent)
endif
elseif last_line =~ '^\s*'.s:blockstart
let ind = ind + &sw
elseif AntepenultimateLine =~ '\%(;\%(\s*?>\)\=\|<<<''\=\a\w*''\=$\|^\s*}\|{\)'.endline . '\|' . s:defaultORcase
elseif AntepenultimateLine =~ '\%(;\%(\s*\%(?>\|}\)\)\=\|<<<''\=\a\w*''\=$\|^\s*}\|{\)'.endline . '\|' . s:defaultORcase
let ind = ind + &sw
endif
endif
if cline =~ '^\s*);\='
if cline =~ '^\s*[)\]];\='
let ind = ind - &sw
endif
let b:PHP_CurrentIndentLevel = ind
return ind
return ind + addSpecial
endfunction

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 May 21
" Last Change: 2013 May 30
if exists("b:did_indent")
finish
@@ -17,7 +17,8 @@ if exists("*GetSassIndent")
finish
endif
let s:property = '^\s*:\|^\s*[[:alnum:]-]\+\%(:\|\s*=\)'
let s:property = '^\s*:\|^\s*[[:alnum:]#{}-]\+\%(:\|\s*=\)'
let s:extend = '^\s*\%(@extend\|@include\|+\)'
function! GetSassIndent()
let lnum = prevnonblank(v:lnum-1)
@@ -27,7 +28,7 @@ function! GetSassIndent()
let line = substitute(line,'^\s\+','','')
let indent = indent(lnum)
let cindent = indent(v:lnum)
if line !~ s:property && cline =~ s:property
if line !~ s:property && line !~ s:extend && cline =~ s:property
return indent + &sw
"elseif line =~ s:property && cline !~ s:property
"return indent - &sw

View File

@@ -1,6 +1,6 @@
" Vim indent file
" Language: LaTeX
" Maintainer: Zhou YiChao <broken.zhou AT gmail.com>
" Maintainer: YiChao Zhou <broken.zhou AT gmail.com>
" Created: Sat, 16 Feb 2002 16:50:19 +0100
" Last Change: 2012 Mar 18 19:19:50
" Version: 0.7
@@ -46,6 +46,9 @@
" (*) Modify indentkeys.
" 2012/03/18 by Zhou Yichao <broken.zhou AT gmail.com>
" (*) Add &cpo
" 2013/05/02 by Zhou Yichao <broken.zhou AT gmail.com>
" (*) Fix problem about GetTeXIndent checker. Thank Albert Netymk
" for reporting this.
" }}}
" Document: {{{
@@ -106,10 +109,6 @@
" }}}
" Only define the function once
if exists("*GetTeXIndent")
finish
endif
if exists("b:did_indent")
finish
endif
@@ -158,7 +157,7 @@ exec 'setlocal indentkeys+=[,(,{,),},],\&' . substitute(g:tex_items, '^\|\(\\|\)
let g:tex_items = '^\s*' . substitute(g:tex_items, '^\(\^\\s\*\)*', '', '')
" }}}
function GetTeXIndent() " {{{
function! GetTeXIndent() " {{{
" Find a non-blank line above the current line.
let lnum = prevnonblank(v:lnum - 1)

View File

@@ -2,9 +2,9 @@
"
" Menu Translations: Japanese (EUC-JP)
" Translated By: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 24-Feb-2013.
" Last Change: 12-May-2013.
"
" Copyright (C) 2001-12 MURAOKA Taro <koron.kaoriya@gmail.com>
" Copyright (C) 2001-13 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
" Quit when menu translations have already been done.
@@ -299,50 +299,6 @@ menutrans Co&lor\ test
menutrans &Highlight\ test ハイライトテスト(&H)
menutrans &Convert\ to\ HTML HTMLへコンバート(&C)
" Japanese specific menu
" 成否はiconv次第、必ずしも指定したエンコードになるわけではないことに注意
if has('iconv')
" iconvのバージョン判定
let s:support_jisx0213 = (iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb") ? 1 : 0
" 読み込み
an 10.395 &File.-SEPICONV- <Nop>
an 10.396.100.100 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..SJIS(&S)<Tab>fenc=cp932 :browse confirm e ++enc=cp932<CR>
if !s:support_jisx0213
an 10.396.100.110 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..EUC(&E)<Tab>fenc=euc-jp :browse confirm e ++enc=euc-jp<CR>
an 10.396.100.120 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :browse confirm e ++enc=iso-2022-jp<CR>
else
an 10.396.100.110 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..EUC(&E)<Tab>fenc=euc-jisx0213 :browse confirm e ++enc=euc-jisx0213<CR>
an 10.396.100.120 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :browse confirm e ++enc=iso-2022-jp-3<CR>
endif
an 10.396.100.130 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :browse confirm e ++enc=utf-8<CR>
" 再読込
an 10.396.110.100 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..SJIS(&S)<Tab>fenc=cp932 :e ++enc=cp932<CR>
if !s:support_jisx0213
an 10.396.110.110 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..EUC(&E)<Tab>fenc=euc-jp :e ++enc=euc-jp<CR>
an 10.396.110.120 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :e ++enc=iso-2022-jp<CR>
else
an 10.396.110.110 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..EUC(&E)<Tab>fenc=euc-jisx0213 :e ++enc=euc-jisx0213<CR>
an 10.396.110.120 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :e ++enc=iso-2022-jp-3<CR>
endif
an 10.396.110.130 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :e ++enc=utf-8<CR>
" 保存
an 10.396.115 &File.エンコード指定(&E)\.\.\..-SEP1- <Nop>
an 10.396.120.100 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..SJIS(&S)<Tab>fenc=cp932 :set fenc=cp932 \| w<CR>
if !s:support_jisx0213
an 10.396.120.110 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..EUC(&E)<Tab>fenc=euc-jp :set fenc=euc-jp \| w<CR>
an 10.396.120.120 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :set fenc=iso-2022-jp \| w<CR>
else
an 10.396.120.110 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..EUC(&E)<Tab>fenc=euc-jisx0213 :set fenc=euc-jisx0213 \| w<CR>
an 10.396.120.120 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :set fenc=iso-2022-jp-3 \| w<CR>
endif
an 10.396.120.130 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :set fenc=utf-8 \| w<CR>
unlet s:support_jisx0213
endif
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@@ -2,9 +2,9 @@
"
" Menu Translations: Japanese (UTF-8)
" Translated By: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 24-Feb-2013.
" Last Change: 12-May-2013.
"
" Copyright (C) 2001-12 MURAOKA Taro <koron.kaoriya@gmail.com>
" Copyright (C) 2001-13 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
" Quit when menu translations have already been done.
@@ -299,50 +299,6 @@ menutrans Co&lor\ test カラーテスト(&L)
menutrans &Highlight\ test ハイライトテスト(&H)
menutrans &Convert\ to\ HTML HTMLへコンバート(&C)
" Japanese specific menu
" 成否はiconv次第、必ずしも指定したエンコードになるわけではないことに注意
if has('iconv')
" iconvのバージョン判定
let s:support_jisx0213 = (iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb") ? 1 : 0
" 読み込み
an 10.395 &File.-SEPICONV- <Nop>
an 10.396.100.100 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..SJIS(&S)<Tab>fenc=cp932 :browse confirm e ++enc=cp932<CR>
if !s:support_jisx0213
an 10.396.100.110 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..EUC(&E)<Tab>fenc=euc-jp :browse confirm e ++enc=euc-jp<CR>
an 10.396.100.120 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :browse confirm e ++enc=iso-2022-jp<CR>
else
an 10.396.100.110 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..EUC(&E)<Tab>fenc=euc-jisx0213 :browse confirm e ++enc=euc-jisx0213<CR>
an 10.396.100.120 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :browse confirm e ++enc=iso-2022-jp-3<CR>
endif
an 10.396.100.130 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :browse confirm e ++enc=utf-8<CR>
" 再読込
an 10.396.110.100 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..SJIS(&S)<Tab>fenc=cp932 :e ++enc=cp932<CR>
if !s:support_jisx0213
an 10.396.110.110 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..EUC(&E)<Tab>fenc=euc-jp :e ++enc=euc-jp<CR>
an 10.396.110.120 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :e ++enc=iso-2022-jp<CR>
else
an 10.396.110.110 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..EUC(&E)<Tab>fenc=euc-jisx0213 :e ++enc=euc-jisx0213<CR>
an 10.396.110.120 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :e ++enc=iso-2022-jp-3<CR>
endif
an 10.396.110.130 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :e ++enc=utf-8<CR>
" 保存
an 10.396.115 &File.エンコード指定(&E)\.\.\..-SEP1- <Nop>
an 10.396.120.100 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..SJIS(&S)<Tab>fenc=cp932 :set fenc=cp932 \| w<CR>
if !s:support_jisx0213
an 10.396.120.110 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..EUC(&E)<Tab>fenc=euc-jp :set fenc=euc-jp \| w<CR>
an 10.396.120.120 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :set fenc=iso-2022-jp \| w<CR>
else
an 10.396.120.110 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..EUC(&E)<Tab>fenc=euc-jisx0213 :set fenc=euc-jisx0213 \| w<CR>
an 10.396.120.120 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :set fenc=iso-2022-jp-3 \| w<CR>
endif
an 10.396.120.130 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :set fenc=utf-8 \| w<CR>
unlet s:support_jisx0213
endif
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@@ -2,9 +2,9 @@
"
" Menu Translations: Japanese (CP932)
" Translated By: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 24-Feb-2013.
" Last Change: 12-May-2013.
"
" Copyright (C) 2001-12 MURAOKA Taro <koron.kaoriya@gmail.com>
" Copyright (C) 2001-13 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
" Quit when menu translations have already been done.
@@ -299,50 +299,6 @@ menutrans Co&lor\ test
menutrans &Highlight\ test ハイライトテスト(&H)
menutrans &Convert\ to\ HTML HTMLへコンバート(&C)
" Japanese specific menu
" 成否はiconv次第、必ずしも指定したエンコードになるわけではないことに注意
if has('iconv')
" iconvのバージョン判定
let s:support_jisx0213 = (iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb") ? 1 : 0
" 読み込み
an 10.395 &File.-SEPICONV- <Nop>
an 10.396.100.100 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..SJIS(&S)<Tab>fenc=cp932 :browse confirm e ++enc=cp932<CR>
if !s:support_jisx0213
an 10.396.100.110 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..EUC(&E)<Tab>fenc=euc-jp :browse confirm e ++enc=euc-jp<CR>
an 10.396.100.120 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :browse confirm e ++enc=iso-2022-jp<CR>
else
an 10.396.100.110 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..EUC(&E)<Tab>fenc=euc-jisx0213 :browse confirm e ++enc=euc-jisx0213<CR>
an 10.396.100.120 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :browse confirm e ++enc=iso-2022-jp-3<CR>
endif
an 10.396.100.130 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :browse confirm e ++enc=utf-8<CR>
" 再読込
an 10.396.110.100 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..SJIS(&S)<Tab>fenc=cp932 :e ++enc=cp932<CR>
if !s:support_jisx0213
an 10.396.110.110 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..EUC(&E)<Tab>fenc=euc-jp :e ++enc=euc-jp<CR>
an 10.396.110.120 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :e ++enc=iso-2022-jp<CR>
else
an 10.396.110.110 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..EUC(&E)<Tab>fenc=euc-jisx0213 :e ++enc=euc-jisx0213<CR>
an 10.396.110.120 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :e ++enc=iso-2022-jp-3<CR>
endif
an 10.396.110.130 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :e ++enc=utf-8<CR>
" 保存
an 10.396.115 &File.エンコード指定(&E)\.\.\..-SEP1- <Nop>
an 10.396.120.100 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..SJIS(&S)<Tab>fenc=cp932 :set fenc=cp932 \| w<CR>
if !s:support_jisx0213
an 10.396.120.110 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..EUC(&E)<Tab>fenc=euc-jp :set fenc=euc-jp \| w<CR>
an 10.396.120.120 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :set fenc=iso-2022-jp \| w<CR>
else
an 10.396.120.110 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..EUC(&E)<Tab>fenc=euc-jisx0213 :set fenc=euc-jisx0213 \| w<CR>
an 10.396.120.120 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :set fenc=iso-2022-jp-3 \| w<CR>
endif
an 10.396.120.130 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :set fenc=utf-8 \| w<CR>
unlet s:support_jisx0213
endif
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Dec 06
" Last Change: 2013 May 17
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
@@ -308,8 +308,10 @@ fun! s:TextWidth()
endif
let n = inputdialog(g:menutrans_textwidth_dialog, &tw)
if n != ""
" remove leading zeros to avoid it being used as an octal number
let &tw = substitute(n, "^0*", "", "")
" Remove leading zeros to avoid it being used as an octal number.
" But keep a zero by itself.
let tw = substitute(n, "^0*", "", "")
let &tw = tw == '' ? 0 : tw
endif
endfun

View File

@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2013 Apr 05
" Last Change: 2013 May 20
" If there already is an option window, jump to that one.
if bufwinnr("option-window") > 0
@@ -258,6 +258,8 @@ call append("$", "incsearch\tshow match for partly typed search command")
call <SID>BinOptionG("is", &is)
call append("$", "magic\tchange the way backslashes are used in search patterns")
call <SID>BinOptionG("magic", &magic)
call append("$", "regexpengine\tselect the default regexp engine used")
call <SID>OptionG("re", &re)
call append("$", "ignorecase\tignore case when using a search pattern")
call <SID>BinOptionG("ic", &ic)
call append("$", "smartcase\toverride 'ignorecase' when pattern has upper case characters")

View File

@@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2013 Mar 19
" Last Change: 2013 May 08
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@@ -11,6 +11,13 @@ if exists("g:loaded_matchparen") || &cp || !exists("##CursorMoved")
endif
let g:loaded_matchparen = 1
if !exists("g:matchparen_timeout")
let g:matchparen_timeout = 300
endif
if !exists("g:matchparen_insert_timeout")
let g:matchparen_insert_timeout = 60
endif
augroup matchparen
" Replace all matchparen autocommands
autocmd! CursorMoved,CursorMovedI,WinEnter * call s:Highlight_Matching_Pair()
@@ -99,10 +106,15 @@ function! s:Highlight_Matching_Pair()
let stopline = stoplinetop
endif
" Limit the search time to 300 msec to avoid a hang on very long lines.
" This fails when a timeout is not supported.
if mode() == 'i' || mode() == 'R'
let timeout = exists("b:matchparen_insert_timeout") ? b:matchparen_insert_timeout : g:matchparen_insert_timeout
else
let timeout = exists("b:matchparen_timeout") ? b:matchparen_timeout : g:matchparen_timeout
endif
try
" Limit the search time to 300 msec to avoid a hang on very long lines.
" This fails when a timeout is not supported.
let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, 300)
let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline, timeout)
catch /E118/
" Can't use the timeout, restrict the stopline a bit more to avoid taking
" a long time on closed folds and long lines.

View File

@@ -1,6 +1,6 @@
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
" PLUGIN SECTION
" Date: Dec 06, 2012
" Date: Apr 30, 2013
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1
@@ -20,13 +20,15 @@
if &cp || exists("g:loaded_netrwPlugin")
finish
endif
let g:loaded_netrwPlugin = "v148"
"DechoTabOn
let g:loaded_netrwPlugin = "v149"
if v:version < 702
echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
finish
endif
let s:keepcpo = &cpo
set cpo&vim
"DechoTabOn
" ---------------------------------------------------------------------
" Public Interface: {{{1
@@ -34,9 +36,7 @@ set cpo&vim
" Local Browsing: {{{2
augroup FileExplorer
au!
" au BufReadCmd *[/\\] sil! call s:LocalBrowse(expand("<amatch>"))
" au BufEnter *[^/\\] sil! call s:LocalBrowse(expand("<amatch>"))
" au VimEnter *[^/\\] sil! call s:VimEnter(expand("<amatch>"))
" SEE Benzinger problem...
au BufEnter * sil! call s:LocalBrowse(expand("<amatch>"))
au VimEnter * sil! call s:VimEnter(expand("<amatch>"))
if has("win32") || has("win95") || has("win64") || has("win16")
@@ -47,7 +47,7 @@ augroup END
" Network Browsing Reading Writing: {{{2
augroup Network
au!
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
@@ -92,27 +92,37 @@ fun! s:LocalBrowse(dirname)
" unfortunate interaction -- debugging calls can't be used here;
" the BufEnter event causes triggering when attempts to write to
" the DBG buffer are made.
if !exists("s:vimentered")
return
endif
" call Decho("s:LocalBrowse(dirname<".a:dirname.">){")
" echomsg "dirname<".a:dirname.">"
if has("amiga")
" The check against '' is made for the Amiga, where the empty
" string is the current directory and not checking would break
" things such as the help command.
" call Decho("(LocalBrowse) dirname<".a:dirname."> (amiga)")
if a:dirname != '' && isdirectory(a:dirname)
sil! call netrw#LocalBrowseCheck(a:dirname)
endif
elseif isdirectory(a:dirname)
" echomsg "dirname<".dirname."> isdir"
" call Decho("(LocalBrowse) dirname<".a:dirname."> (not amiga)")
sil! call netrw#LocalBrowseCheck(a:dirname)
endif
" not a directory, ignore it
" call Decho("|return s:LocalBrowse }")
endfun
" ---------------------------------------------------------------------
" s:VimEnter: {{{2
fun! s:VimEnter(dirname)
let curwin= winnr()
" call Decho("VimEnter(dirname<".a:dirname.">){")
let curwin = winnr()
let s:vimentered = 1
windo if a:dirname != expand("%")|call s:LocalBrowse(expand("%:p"))|endif
exe curwin."wincmd w"
" call Decho("|return VimEnter }")
endfun
" ---------------------------------------------------------------------

View File

@@ -1,24 +1,37 @@
" Vim plugin for converting a syntax highlighted file to HTML.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2012 Jul 12
" Last Change: 2013 May 31
"
" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and
" $VIMRUNTIME/syntax/2html.vim
"
" TODO: {{{
" * Options for generating the CSS in external style sheets. New :TOcss
" command to convert the current color scheme into a (mostly) generic CSS
" stylesheet which can be re-used. Alternate stylesheet support? Good start
" by Erik Falor
" ( https://groups.google.com/d/topic/vim_use/7XTmC4D22dU/discussion ).
" * Add optional argument to :TOhtml command to specify mode (gui, cterm,
" term) to use for the styling. Suggestion by "nacitar".
" * Add way to override or specify which RGB colors map to the color numbers
" in cterm. Get better defaults than just guessing? Suggestion by "nacitar".
" * Disable filetype detection until after all processing is done.
" * Add option for not generating the hyperlink on stuff that looks like a
" URL? Or just color the link to fit with the colorscheme (and only special
" when hovering)?
" * Bug: Opera does not allow printing more than one page if uncopyable
" regions is turned on. Possible solution: Add normal text line numbers with
" display:none, set to display:inline for print style sheets, and hide
" <input> elements for print, to allow Opera printing multiple pages (and
" other uncopyable areas?). May need to make the new text invisible to IE
" with conditional comments to prevent copying it, IE for some reason likes
" to copy hidden text. Other browsers too?
" * Bug: still a 1px gap throughout the fold column when html_prevent_copy is
" "fn" in some browsers. Specifically, in Chromium on Ubuntu (but not Chrome
" on Windows). Perhaps it is font related?
" * Bug: still some gaps in the fold column when html_prevent_copy contains
" 'd' and showing the whole diff (observed in multiple browsers). Only gaps
" on diff lines though.
" * anchors on each line so you can do file.html#1234 to get to line 1234
" * add a modeline to the generated html to set nofoldenable or fdm=manual
" because syntax folding takes a terribly long time to work with the weird
" formatting the script does.
" * Options for generating the CSS in external style sheets. New :TOcss
" command to convert the current color scheme into a (mostly) generic CSS
" stylesheet which can be re-used. Alternate stylesheet support?
" * Undercurl support via CSS3, with fallback to dotted or something:
" https://groups.google.com/d/topic/vim_use/BzXA6He1pHg/discussion
" * Redo updates for modified default foldtext (v11) when/if the patch is
@@ -26,10 +39,7 @@
" * Test case +diff_one_file-dynamic_folds+expand_tabs-hover_unfold
" +ignore_conceal-ignore_folding+no_foldcolumn+no_pre+no_progress
" +number_lines-pre_wrap-use_css+use_xhtml+whole_filler.xhtml
" does not show the whole diff filler as it is supposed to.
" * Add option for not generating the hyperlink on stuff that looks like a
" URL? Or just color the link to fit with the colorscheme (and only special
" when hovering)?
" does not show the whole diff filler as it is supposed to?
" * Bug: when 'isprint' is wrong for the current encoding, will generate
" invalid content. Can/should anything be done about this? Maybe a separate
" plugin to correct 'isprint' based on encoding?
@@ -43,7 +53,6 @@
" - listchars support
" - full-line background highlight
" - other?
" * Explicitly trigger IE8+ Standards Mode? Doesn't seem necessary yet.
" * Make it so deleted lines in a diff don't create side-scrolling (get it
" free with full-line background highlight above).
" * Restore open/closed folds and cursor position after processing each file
@@ -58,82 +67,93 @@
if exists('g:loaded_2html_plugin')
finish
endif
let g:loaded_2html_plugin = 'vim7.3_v12'
let g:loaded_2html_plugin = 'vim7.3_v13'
"
" Changelog: {{{
"
" 7.3_v12 (this version): Fix modeline mangling to also work for when multiple
" highlight groups make up the start-of-modeline text.
" Improve render time of page with uncopyable regions
" by not using one-input-per-char. Change name of
" uncopyable option from html_unselectable to
" html_prevent_copy. Added html_no_invalid option and
" default to inserting invalid markup for uncopyable
" regions to prevent MS Word from pasting undeletable
" <input> elements. Fix 'cpo' handling (Thilo Six).
" 7.3_v12b1: Add html_unselectable option. Rework logic to
" eliminate post-processing substitute commands in
" favor of doing the work up front. Remove unnecessary
" special treatment of 'LineNr' highlight group. Minor
" speed improvements. Fix modeline mangling in
" generated output so it works for text in the first
" column. Fix missing line number and fold column in
" diff filler lines. Fix that some fonts have a 1px
" gap (using a dirty hack, improvements welcome). Add
" "colorscheme" meta tag. Does NOT include support for
" the new default foldtext added in v11, as the patch
" adding it has not yet been included in Vim.
" 7.3_v13 (this version): Keep foldmethod at manual in the generated file and
" insert modeline to set it to manual.
" Fix bug: diff mode with 2 unsaved buffers creates a
" duplicate of one buffer instead of including both.
" Add anchors to each line so you can put '#L123'
" or '#123' at the end of the URL to jump to line 123
" (idea by Andy Spencer). Add javascript to open folds
" to show the anchor being jumped to if it is hidden.
" Fix XML validation error: &nsbp; not part of XML.
" Allow TOhtml to chain together with other commands
" using |.
" 7.3_v12 (9910cbff5f16): Fix modeline mangling to also work for when multiple
" highlight groups make up the start-of-modeline text.
" Improve render time of page with uncopyable regions
" by not using one-input-per-char. Change name of
" uncopyable option from html_unselectable to
" html_prevent_copy. Added html_no_invalid option and
" default to inserting invalid markup for uncopyable
" regions to prevent MS Word from pasting undeletable
" <input> elements. Fix 'cpo' handling (Thilo Six).
" 7.3_v12b1: Add html_unselectable option. Rework logic to
" eliminate post-processing substitute commands in
" favor of doing the work up front. Remove unnecessary
" special treatment of 'LineNr' highlight group. Minor
" speed improvements. Fix modeline mangling in
" generated output so it works for text in the first
" column. Fix missing line number and fold column in
" diff filler lines. Fix that some fonts have a 1px
" gap (using a dirty hack, improvements welcome). Add
" "colorscheme" meta tag. Does NOT include support for
" the new default foldtext added in v11, as the patch
" adding it has not yet been included in Vim.
" 7.3_v11 ( unreleased ): Support new default foldtext from patch by Christian
" Brabandt in
" http://groups.google.com/d/topic/vim_dev/B6FSGfq9VoI/discussion.
" This patch has not yet been included in Vim, thus
" these changes are removed in the next version.
" Brabandt in
" http://groups.google.com/d/topic/vim_dev/B6FSGfq9VoI/discussion.
" This patch has not yet been included in Vim, thus
" these changes are removed in the next version.
" 7.3_v10 (fd09a9c8468e): Fix error E684 when converting a range wholly inside
" multiple nested folds with dynamic folding on.
" Also fix problem with foldtext in this situation.
" multiple nested folds with dynamic folding on.
" Also fix problem with foldtext in this situation.
" 7.3_v9 (0877b8d6370e): Add html_pre_wrap option active with html_use_css
" and without html_no_pre, default value same as
" 'wrap' option, (Andy Spencer). Don't use
" 'fileencoding' for converted document encoding if
" 'buftype' indicates a special buffer which isn't
" written.
" and without html_no_pre, default value same as
" 'wrap' option, (Andy Spencer). Don't use
" 'fileencoding' for converted document encoding if
" 'buftype' indicates a special buffer which isn't
" written.
" 7.3_v8 (85c5a72551e2): Add html_expand_tabs option to allow leaving tab
" characters in generated output (Andy Spencer).
" Escape text that looks like a modeline so Vim
" doesn't use anything in the converted HTML as a
" modeline. Bugfixes: Fix folding when a fold starts
" before the conversion range. Remove fold column when
" there are no folds.
" characters in generated output (Andy Spencer).
" Escape text that looks like a modeline so Vim
" doesn't use anything in the converted HTML as a
" modeline. Bugfixes: Fix folding when a fold starts
" before the conversion range. Remove fold column when
" there are no folds.
" 7.3_v7 (840c3cadb842): see betas released on vim_dev below:
" 7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way.
" 7.3_v7b2: Remove automatic detection of encodings that are not
" supported by all major browsers according to
" http://wiki.whatwg.org/wiki/Web_Encodings and
" convert to UTF-8 for all Unicode encodings. Make
" HTML encoding to Vim encoding detection be
" case-insensitive for built-in pairs.
" 7.3_v7b1: Remove use of setwinvar() function which cannot be
" called in restricted mode (Andy Spencer). Use
" 'fencoding' instead of 'encoding' to determine by
" charset, and make sure the 'fenc' of the generated
" file matches its indicated charset. Add charsets for
" all of Vim's natively supported encodings.
" 7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way.
" 7.3_v7b2: Remove automatic detection of encodings that are not
" supported by all major browsers according to
" http://wiki.whatwg.org/wiki/Web_Encodings and
" convert to UTF-8 for all Unicode encodings. Make
" HTML encoding to Vim encoding detection be
" case-insensitive for built-in pairs.
" 7.3_v7b1: Remove use of setwinvar() function which cannot be
" called in restricted mode (Andy Spencer). Use
" 'fencoding' instead of 'encoding' to determine by
" charset, and make sure the 'fenc' of the generated
" file matches its indicated charset. Add charsets for
" all of Vim's natively supported encodings.
" 7.3_v6 (0d3f0e3d289b): Really fix bug with 'nowrapscan', 'magic' and other
" user settings interfering with diff mode generation,
" trailing whitespace (e.g. line number column) when
" using html_no_pre, and bugs when using
" html_hover_unfold.
" user settings interfering with diff mode generation,
" trailing whitespace (e.g. line number column) when
" using html_no_pre, and bugs when using
" html_hover_unfold.
" 7.3_v5 ( unreleased ): Fix bug with 'nowrapscan' and also with out-of-sync
" folds in diff mode when first line was folded.
" folds in diff mode when first line was folded.
" 7.3_v4 (7e008c174cc3): Bugfixes, especially for xhtml markup, and diff mode
" 7.3_v3 (a29075150aee): Refactor option handling and make html_use_css
" default to true when not set to anything. Use strict
" doctypes where possible. Rename use_xhtml option to
" html_use_xhtml for consistency. Use .xhtml extension
" when using this option. Add meta tag for settings.
" default to true when not set to anything. Use strict
" doctypes where possible. Rename use_xhtml option to
" html_use_xhtml for consistency. Use .xhtml extension
" when using this option. Add meta tag for settings.
" 7.3_v2 (80229a724a11): Fix syntax highlighting in diff mode to use both the
" diff colors and the normal syntax colors
" diff colors and the normal syntax colors
" 7.3_v1 (e7751177126b): Add conceal support and meta tags in output
" Pre-v1 baseline: Mercurial changeset 3c9324c0800e
"}}}
@@ -143,7 +163,7 @@ let g:loaded_2html_plugin = 'vim7.3_v12'
" - this plugin was not already loaded
" - user commands are available. {{{
if !&cp && !exists(":TOhtml") && has("user_commands")
command -range=% TOhtml :call tohtml#Convert2HTML(<line1>, <line2>)
command -range=% -bar TOhtml :call tohtml#Convert2HTML(<line1>, <line2>)
endif "}}}
" Make sure any patches will probably use consistent indent

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types in scripts
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2012 Aug 30
" Last change: 2013 May 24
" This file is called by an autocommand for every file that has just been
" loaded into a buffer. It checks if the type of file can be recognized by
@@ -327,6 +327,12 @@ else
elseif s:line1 =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
set ft=git
" Gprof (gnu profiler)
elseif s:line1 == 'Flat profile:'
\ && s:line2 == ''
\ && s:line3 =~ '^Each sample counts as .* seconds.$'
set ft=gprof
" CVS diff
else
let s:lnum = 1

View File

@@ -1,6 +1,6 @@
" Vim syntax support file
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2012 Jun 30
" Last Change: 2013 May 31
"
" Additional contributors:
"
@@ -214,17 +214,21 @@ endif
if !s:settings.use_css
" Return opening HTML tag for given highlight id
function! s:HtmlOpening(id)
function! s:HtmlOpening(id, extra_attrs)
let a = ""
if synIDattr(a:id, "inverse")
" For inverse, we always must set both colors (and exchange them)
let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
let a = a . '<span style="background-color: ' . ( x != "" ? x : s:fgc ) . '">'
let a = a . '<span '.a:extra_attrs.'style="background-color: ' . ( x != "" ? x : s:fgc ) . '">'
let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
let a = a . '<font color="' . ( x != "" ? x : s:bgc ) . '">'
else
let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
if x != "" | let a = a . '<span style="background-color: ' . x . '">' | endif
if x != ""
let a = a . '<span '.a:extra_attrs.'style="background-color: ' . x . '">'
elseif !empty(a:extra_attrs)
let a = a . '<span '.a:extra_attrs.'>'
endif
let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
if x != "" | let a = a . '<font color="' . x . '">' | endif
endif
@@ -235,7 +239,7 @@ if !s:settings.use_css
endfun
" Return closing HTML tag for given highlight id
function! s:HtmlClosing(id)
function! s:HtmlClosing(id, has_extra_attrs)
let a = ""
if synIDattr(a:id, "underline") | let a = a . "</u>" | endif
if synIDattr(a:id, "italic") | let a = a . "</i>" | endif
@@ -246,7 +250,7 @@ if !s:settings.use_css
let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
if x != "" | let a = a . '</font>' | endif
let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
if x != "" | let a = a . '</span>' | endif
if x != "" || a:has_extra_attrs | let a = a . '</span>' | endif
endif
return a
endfun
@@ -265,7 +269,7 @@ if s:settings.use_css
" first, get the style names we need
let wrapperfunc_lines = [
\ 'function! s:BuildStyleWrapper(style_id, diff_style_id, text, make_unselectable, unformatted)',
\ 'function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, make_unselectable, unformatted)',
\ '',
\ ' let l:style_name = synIDattr(a:style_id, "name", s:whatterm)'
\ ]
@@ -308,7 +312,7 @@ if s:settings.use_css
let wrapperfunc_lines += [
\ '',
\ ' if l:saved_style == ""'
\ ' if l:saved_style == "" && empty(a:extra_attrs)'
\ ]
if &diff
let wrapperfunc_lines += [
@@ -340,7 +344,7 @@ if s:settings.use_css
\ : "")
if s:settings.prevent_copy == ""
let wrapperfunc_lines += [
\ ' return "<span class=\"" . l:style_name .'.diffstyle.'"\">".a:text."</span>"'
\ ' return "<span ".a:extra_attrs."class=\"" . l:style_name .'.diffstyle.'"\">".a:text."</span>"'
\ ]
else
@@ -362,7 +366,7 @@ if s:settings.use_css
" uses the number of unique codepoints for its limit.
let wrapperfunc_lines += [
\ ' if a:make_unselectable',
\ ' return "<span class=\"" . l:style_name .'.diffstyle.'"\">'.
\ ' return "<span ".a:extra_attrs."class=\"" . l:style_name .'.diffstyle.'"\">'.
\ '<input'.s:unselInputType.' class=\"" . l:style_name .'.diffstyle.'"\"'.
\ ' value=\"".substitute(a:unformatted,''\s\+$'',"","")."\"'.
\ ' onselect=''this.blur(); return false;'''.
@@ -372,17 +376,9 @@ if s:settings.use_css
\ ' size=\"".strwidth(a:unformatted)."\"'.
\ (s:settings.use_xhtml ? '/' : '').'></span>"',
\ ' else',
\ ' return "<span class=\"" . l:style_name .'. diffstyle .'"\">".a:text."</span>"'
\ ' return "<span ".a:extra_attrs."class=\"" . l:style_name .'. diffstyle .'"\">".a:text."</span>"'
\ ]
endif
" close off tag for non-empty primary style
if s:settings.prevent_copy == ""
let wrapperfunc_lines[-1] .=
\ ' "\">".a:text."</span>"'
else
let wrapperfunc_lines[-1] .=
\ ' "\">".a:text."</span>"'
endif
let wrapperfunc_lines += [
\ ' endif',
\ 'endfun'
@@ -394,16 +390,16 @@ else
" no styles exist.
if &diff
let wrapperfunc_lines = [
\ 'function! s:BuildStyleWrapper(style_id, diff_style_id, text, unusedarg, unusedarg2)',
\ ' return s:HtmlOpening(a:style_id).(a:diff_style_id <= 0 ? "" :'.
\ 's:HtmlOpening(a:diff_style_id)).a:text.'.
\ '(a:diff_style_id <= 0 ? "" : s:HtmlClosing(a:diff_style_id)).s:HtmlClosing(a:style_id)',
\ 'function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, unusedarg, unusedarg2)',
\ ' return s:HtmlOpening(a:style_id, a:extra_attrs).(a:diff_style_id <= 0 ? "" :'.
\ 's:HtmlOpening(a:diff_style_id, "")).a:text.'.
\ '(a:diff_style_id <= 0 ? "" : s:HtmlClosing(a:diff_style_id, 0)).s:HtmlClosing(a:style_id, !empty(a:extra_attrs))',
\ 'endfun'
\ ]
else
let wrapperfunc_lines = [
\ 'function! s:BuildStyleWrapper(style_id, diff_style_id, text, unusedarg, unusedarg2)',
\ ' return s:HtmlOpening(a:style_id).a:text.s:HtmlClosing(a:style_id)',
\ 'function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, unusedarg, unusedarg2)',
\ ' return s:HtmlOpening(a:style_id, a:extra_attrs).a:text.s:HtmlClosing(a:style_id, !empty(a:extra_attrs))',
\ 'endfun'
\ ]
endif
@@ -418,7 +414,7 @@ let s:diff_mode = &diff
" unprintable characters expanded and double spaces replaced as necessary.
"
" TODO: eliminate unneeded logic like done for BuildStyleWrapper
function! s:HtmlFormat(text, style_id, diff_style_id, make_unselectable)
function! s:HtmlFormat(text, style_id, diff_style_id, extra_attrs, make_unselectable)
" Replace unprintable characters
let unformatted = strtrans(a:text)
@@ -447,27 +443,45 @@ function! s:HtmlFormat(text, style_id, diff_style_id, make_unselectable)
endif
" Enclose in the correct format
return s:BuildStyleWrapper(a:style_id, a:diff_style_id, formatted, a:make_unselectable, unformatted)
return s:BuildStyleWrapper(a:style_id, a:diff_style_id, a:extra_attrs, formatted, a:make_unselectable, unformatted)
endfun
" set up functions to call HtmlFormat in certain ways based on whether the
" element is supposed to be unselectable or not
if s:settings.prevent_copy =~# 'n'
function! s:HtmlFormat_n(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 1)
endfun
if s:settings.number_lines
function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
if a:lnr > 0
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'.(exists('g:html_diff_win_num') ? 'W'.g:html_diff_win_num : "").'L'.a:lnr.'" ', 1)
else
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1)
endif
endfun
else
" if lines are not being numbered the only reason this function gets called
" is to put the line IDs on each line; "text" will be emtpy but lnr will
" always be non-zero, however we don't want to use the <input> because that
" won't work as nice for empty text
function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'.(exists('g:html_diff_win_num') ? 'W'.g:html_diff_win_num : "").'L'.a:lnr.'" ', 0)
endfun
endif
else
function! s:HtmlFormat_n(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 0)
function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
if a:lnr > 0
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'.(exists('g:html_diff_win_num') ? 'W'.g:html_diff_win_num : "").'L'.a:lnr.'" ', 0)
else
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0)
endif
endfun
endif
if s:settings.prevent_copy =~# 'd'
function! s:HtmlFormat_d(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 1)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1)
endfun
else
function! s:HtmlFormat_d(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 0)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0)
endfun
endif
if s:settings.prevent_copy =~# 'f'
@@ -501,7 +515,7 @@ else
\ "</a>"
endfun
function! s:FoldColumn_fill()
return s:HtmlFormat(repeat(' ', s:foldcolumn), s:FOLD_C_ID, 0, 0)
return s:HtmlFormat(repeat(' ', s:foldcolumn), s:FOLD_C_ID, 0, "", 0)
endfun
endif
if s:settings.prevent_copy =~# 't'
@@ -512,17 +526,17 @@ if s:settings.prevent_copy =~# 't'
" substitute later?
if s:settings.dynamic_folds
function! s:HtmlFormat_t(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 1) .
\ s:HtmlFormat("", a:style_id, 0, 0)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) .
\ s:HtmlFormat("", a:style_id, 0, "", 0)
endfun
else
function! s:HtmlFormat_t(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 1)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1)
endfun
endif
else
function! s:HtmlFormat_t(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 0)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0)
endfun
endif
@@ -607,7 +621,11 @@ endif
let s:orgbufnr = winbufnr(0)
let s:origwin_stl = &l:stl
if expand("%") == ""
exec 'new Untitled.'.(s:settings.use_xhtml ? 'x' : '').'html'
if exists('g:html_diff_win_num')
exec 'new Untitled_win'.g:html_diff_win_num.'.'.(s:settings.use_xhtml ? 'x' : '').'html'
else
exec 'new Untitled.'.(s:settings.use_xhtml ? 'x' : '').'html'
endif
else
exec 'new %.'.(s:settings.use_xhtml ? 'x' : '').'html'
endif
@@ -625,7 +643,6 @@ setlocal winfixheight
let s:newwin_stl = &l:stl
" on the new window, set the least time-consuming fold method
let s:old_fdm = &foldmethod
let s:old_fen = &foldenable
setlocal foldmethod=manual
setlocal nofoldenable
@@ -671,7 +688,7 @@ let s:LeadingSpace = ' '
let s:HtmlEndline = ''
if s:settings.no_pre
let s:HtmlEndline = '<br' . s:tag_close
let s:LeadingSpace = '&nbsp;'
let s:LeadingSpace = s:settings.use_xhtml ? '&#160;' : '&nbsp;'
let s:HtmlSpace = '\' . s:LeadingSpace
endif
@@ -774,13 +791,12 @@ if s:settings.use_css
endif
endif
" insert script tag if any javascript is needed
if s:settings.dynamic_folds || s:settings.prevent_copy != ""
call extend(s:lines, [
\ "",
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
endif
" insert script tag; javascript is always needed for the line number
" normalization for URL hashes
call extend(s:lines, [
\ "",
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
" insert javascript to toggle folds open and closed
if s:settings.dynamic_folds
@@ -799,9 +815,54 @@ if s:settings.dynamic_folds
\ " fold.className = 'closed-fold';",
\ " }",
\ "}"
\])
\ ])
endif
" insert javascript to get IDs from line numbers, and to open a fold before
" jumping to any lines contained therein
call extend(s:lines, [
\ "",
\ "/* function to open any folds containing a jumped-to line before jumping to it */",
\ "function JumpToLine()",
\ "{",
\ " var lineNum;",
\ " lineNum = window.location.hash;",
\ " lineNum = lineNum.substr(1); /* strip off '#' */",
\ "",
\ " if (lineNum.indexOf('L') == -1) {",
\ " lineNum = 'L'+lineNum;",
\ " }",
\ " lineElem = document.getElementById(lineNum);"
\ ])
if s:settings.dynamic_folds
call extend(s:lines, [
\ "",
\ " /* navigate upwards in the DOM tree to open all folds containing the line */",
\ " var node = lineElem;",
\ " while (node && node.id != 'vimCodeElement')",
\ " {",
\ " if (node.className == 'closed-fold')",
\ " {",
\ " node.className = 'open-fold';",
\ " }",
\ " node = node.parentNode;",
\ " }",
\ ])
endif
call extend(s:lines, [
\ " /* Always jump to new location even if the line was hidden inside a fold, or",
\ " * we corrected the raw number to a line ID.",
\ " */",
\ " if (lineElem) {",
\ " lineElem.scrollIntoView(true);",
\ " }",
\ " return true;",
\ "}",
\ "if ('onhashchange' in window) {",
\ " window.onhashchange = JumpToLine;",
\ "}"
\ ])
" Small text columns like the foldcolumn and line number column need a weird
" hack to work around Webkit's and (in versions prior to 9) IE's lack of support
" for the 'ch' unit without messing up Opera, which also doesn't support it but
@@ -861,26 +922,24 @@ if !empty(s:settings.prevent_copy)
\ ])
endif
" insert script closing tag if any javascript is needed
if s:settings.dynamic_folds || s:settings.prevent_copy != ""
call extend(s:lines, [
\ '',
\ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>"
\ ])
endif
" insert script closing tag
call extend(s:lines, [
\ '',
\ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>"
\ ])
call extend(s:lines, ["</head>"])
if !empty(s:settings.prevent_copy)
call extend(s:lines,
\ ["<body onload='FixCharWidth();'>",
\ ["<body onload='FixCharWidth(); JumpToLine();'>",
\ "<!-- hidden divs used by javascript to get the width of a char -->",
\ "<div id='oneCharWidth'>0</div>",
\ "<div id='oneInputWidth'><input size='1' value='0'".s:tag_close."</div>",
\ "<div id='oneEmWidth' style='width: 1em;'></div>"
\ ])
else
call extend(s:lines, ["<body>"])
call extend(s:lines, ["<body onload='JumpToLine();'>"])
endif
if s:settings.no_pre
" if we're not using CSS we use a font tag which can't have a div inside
@@ -1242,7 +1301,7 @@ while s:lnum <= s:end
if s:settings.number_lines
" Indent if line numbering is on. Indent gets style of line number
" column.
let s:new = s:HtmlFormat_n(repeat(' ', s:margin), s:LINENR_ID, 0) . s:new
let s:new = s:HtmlFormat_n(repeat(' ', s:margin), s:LINENR_ID, 0, 0) . s:new
endif
if s:settings.dynamic_folds && !s:settings.no_foldcolumn && s:foldcolumn > 0
" Indent for foldcolumn if there is one. Assume it's empty, there should
@@ -1274,7 +1333,7 @@ while s:lnum <= s:end
endif
" put numcol in a separate group for sake of unselectable text
let s:new = (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0): "") . s:HtmlFormat_t(s:new, s:FOLDED_ID, 0)
let s:new = (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0, s:lnum): "") . s:HtmlFormat_t(s:new, s:FOLDED_ID, 0)
" Skip to the end of the fold
let s:new_lnum = foldclosedend(s:lnum)
@@ -1355,7 +1414,7 @@ while s:lnum <= s:end
" Add fold text, moving the span ending to the next line so collapsing
" of folds works correctly.
" Put numcol in a separate group for sake of unselectable text.
let s:new = s:new . (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0) : "") . substitute(s:HtmlFormat_t(foldtextresult(s:lnum), s:FOLDED_ID, 0), '</span>', s:HtmlEndline.'\n\0', '')
let s:new = s:new . (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0, 0) : "") . substitute(s:HtmlFormat_t(foldtextresult(s:lnum), s:FOLDED_ID, 0), '</span>', s:HtmlEndline.'\n\0', '')
let s:new = s:new . "<span class='fulltext'>"
" open the fold now that we have the fold text to allow retrieval of
@@ -1389,7 +1448,9 @@ while s:lnum <= s:end
" Now continue with the unfolded line text
if s:settings.number_lines
let s:new = s:new . s:HtmlFormat_n(s:numcol, s:LINENR_ID, 0)
let s:new = s:new . s:HtmlFormat_n(s:numcol, s:LINENR_ID, 0, s:lnum)
else
let s:new = s:new . s:HtmlFormat_n("", s:LINENR_ID, 0, s:lnum)
endif
" Get the diff attribute, if any.
@@ -1479,7 +1540,7 @@ while s:lnum <= s:end
" Output the text with the same synID, with class set to the highlight ID
" name, unless it has been concealed completely.
if strlen(s:expandedtab) > 0
let s:new = s:new . s:HtmlFormat(s:expandedtab, s:id, s:diff_id, 0)
let s:new = s:new . s:HtmlFormat(s:expandedtab, s:id, s:diff_id, "", 0)
endif
endwhile
endif
@@ -1531,6 +1592,11 @@ unlet s:lines
" stripped from the final output.
%s!\v(%(^|\s+)%(vim?|ex)):!\1\&#0058;!ge
" The generated HTML is admittedly ugly and takes a LONG time to fold.
" Make sure the user doesn't do syntax folding when loading a generated file,
" using a modeline.
call append(line('$'), "<!-- vim: set foldmethod=manual : -->")
" Now, when we finally know which, we define the colors and styles
if s:settings.use_css
1;/<style type="text/+1
@@ -1616,7 +1682,7 @@ if s:settings.use_css
endif
endif
else
execute '%s:<body>:<body bgcolor="' . s:bgc . '" text="' . s:fgc . '">\r<font face="'. s:htmlfont .'">'
execute '%s:<body\([^>]*\):<body bgcolor="' . s:bgc . '" text="' . s:fgc . '"\1>\r<font face="'. s:htmlfont .'"'
endif
" Gather attributes for all other classes. Do diff first so that normal
@@ -1652,8 +1718,10 @@ endif
%s:\s\+$::e
" Restore old settings (new window first)
"
" Don't bother restoring foldmethod in case it was syntax because the markup is
" so weirdly formatted it can take a LONG time.
let &l:foldenable = s:old_fen
let &l:foldmethod = s:old_fdm
let &report = s:old_report
let &title = s:old_title
let &icon = s:old_icon
@@ -1684,7 +1752,7 @@ let &ls=s:ls
" Save a little bit of memory (worth doing?)
unlet s:htmlfont s:whitespace
unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search
unlet s:old_magic s:old_more s:old_fdm s:old_fen s:old_winheight
unlet s:old_magic s:old_more s:old_fen s:old_winheight
unlet! s:old_isprint
unlet s:whatterm s:stylelist s:diffstylelist s:lnum s:end s:margin s:fgc s:bgc s:old_winfixheight
unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:concealinfo s:diff_mode

View File

@@ -21,7 +21,7 @@ syn keyword cTodo contained TODO FIXME XXX
" It's easy to accidentally add a space after a backslash that was intended
" for line continuation. Some compilers allow it, which makes it
" unpredicatable and should be avoided.
" unpredictable and should be avoided.
syn match cBadContinuation contained "\\\s\+$"
" cCommentGroup allows adding matches for special things in comments
@@ -341,12 +341,12 @@ syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip
syn match cPreConditMatch display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
if !exists("c_no_if0")
syn cluster cCppOutInGroup contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip
syn region cCppOutWrapper start="^\s*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse fold
syn region cCppOutWrapper start="^\s*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold
syn region cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
if !exists("c_no_if0_fold")
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip fold
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold
else
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
endif
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
syn region cCppInWrapper start="^\s*\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
@@ -356,7 +356,7 @@ if !exists("c_no_if0")
else
syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
endif
syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip
syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
syn region cCppOutSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc
endif

View File

@@ -2,7 +2,7 @@
" Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.feature
" Last Change: 2012 Apr 30
" Last Change: 2013 May 30
if exists("b:current_syntax")
finish
@@ -14,50 +14,60 @@ syn case match
syn sync minlines=20
let g:cucumber_languages = {
\"en": {"and": "And\\>", "background": "Background\\>", "but": "But\\>", "examples": "Scenarios\\>\\|Examples\\>", "feature": "Feature\\>", "given": "Given\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Outline\\>", "then": "Then\\>", "when": "When\\>"},
\"en": {"and": "And\\>", "background": "Background\\>", "but": "But\\>", "examples": "Scenarios\\>\\|Examples\\>", "feature": "Business Need\\>\\|Feature\\>\\|Ability\\>", "given": "Given\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Template\\>\\|Scenario Outline\\>", "then": "Then\\>", "when": "When\\>"},
\"ar": {"and": "\\%u0648\\>", "background": "\\%u0627\\%u0644\\%u062e\\%u0644\\%u0641\\%u064a\\%u0629\\>", "but": "\\%u0644\\%u0643\\%u0646\\>", "examples": "\\%u0627\\%u0645\\%u062b\\%u0644\\%u0629\\>", "feature": "\\%u062e\\%u0627\\%u0635\\%u064a\\%u0629\\>", "given": "\\%u0628\\%u0641\\%u0631\\%u0636\\>", "scenario": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648\\>", "scenario_outline": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648 \\%u0645\\%u062e\\%u0637\\%u0637\\>", "then": "\\%u0627\\%u0630\\%u0627\\%u064b\\>\\|\\%u062b\\%u0645\\>", "when": "\\%u0639\\%u0646\\%u062f\\%u0645\\%u0627\\>\\|\\%u0645\\%u062a\\%u0649\\>"},
\"bg": {"and": "\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u0438\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>", "but": "\\%u041d\\%u043e\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\>", "given": "\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0420\\%u0430\\%u043c\\%u043a\\%u0430 \\%u043d\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "then": "\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0430\\%u0442\\%u043e\\>"},
\"bm": {"and": "Dan\\>", "background": "Latar Belakang\\>", "but": "Tetapi\\>", "examples": "Contoh \\>", "feature": "Fungsi\\>", "given": "Bagi\\>", "scenario": "Senario\\>", "scenario_outline": "Menggariskan Senario \\>", "then": "Kemudian\\>", "when": "Apabila\\>"},
\"ca": {"and": "I\\>", "background": "Antecedents\\>\\|Rerefons\\>", "but": "Per\\%u00f2\\>", "examples": "Exemples\\>", "feature": "Caracter\\%u00edstica\\>\\|Funcionalitat\\>", "given": "At\\%u00e8s\\>\\|Donada\\>\\|Donat\\>\\|Atesa\\>", "scenario": "Escenari\\>", "scenario_outline": "Esquema de l'escenari\\>", "then": "Aleshores\\>\\|Cal\\>", "when": "Quan\\>"},
\"cs": {"and": "A tak\\%u00e9\\>\\|A\\>", "background": "Pozad\\%u00ed\\>\\|Kontext\\>", "but": "Ale\\>", "examples": "P\\%u0159\\%u00edklady\\>", "feature": "Po\\%u017eadavek\\>", "given": "Pokud\\>", "scenario": "Sc\\%u00e9n\\%u00e1\\%u0159\\>", "scenario_outline": "N\\%u00e1\\%u010drt Sc\\%u00e9n\\%u00e1\\%u0159e\\>\\|Osnova sc\\%u00e9n\\%u00e1\\%u0159e\\>", "then": "Pak\\>", "when": "Kdy\\%u017e\\>"},
\"cs": {"and": "A tak\\%u00e9\\>\\|A\\>", "background": "Pozad\\%u00ed\\>\\|Kontext\\>", "but": "Ale\\>", "examples": "P\\%u0159\\%u00edklady\\>", "feature": "Po\\%u017eadavek\\>", "given": "Za p\\%u0159edpokladu\\>\\|Pokud\\>", "scenario": "Sc\\%u00e9n\\%u00e1\\%u0159\\>", "scenario_outline": "N\\%u00e1\\%u010drt Sc\\%u00e9n\\%u00e1\\%u0159e\\>\\|Osnova sc\\%u00e9n\\%u00e1\\%u0159e\\>", "then": "Pak\\>", "when": "Kdy\\%u017e\\>"},
\"cy-GB": {"and": "A\\>", "background": "Cefndir\\>", "but": "Ond\\>", "examples": "Enghreifftiau\\>", "feature": "Arwedd\\>", "given": "Anrhegedig a\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Amlinellol\\>", "then": "Yna\\>", "when": "Pryd\\>"},
\"da": {"and": "Og\\>", "background": "Baggrund\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskab\\>", "given": "Givet\\>", "scenario": "Scenarie\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"},
\"de": {"and": "Und\\>", "background": "Grundlage\\>", "but": "Aber\\>", "examples": "Beispiele\\>", "feature": "Funktionalit\\%u00e4t\\>", "given": "Gegeben sei\\>\\|Angenommen\\>", "scenario": "Szenario\\>", "scenario_outline": "Szenariogrundriss\\>", "then": "Dann\\>", "when": "Wenn\\>"},
\"el": {"and": "\\%u039a\\%u03b1\\%u03b9\\>", "background": "\\%u03a5\\%u03c0\\%u03cc\\%u03b2\\%u03b1\\%u03b8\\%u03c1\\%u03bf\\>", "but": "\\%u0391\\%u03bb\\%u03bb\\%u03ac\\>", "examples": "\\%u03a0\\%u03b1\\%u03c1\\%u03b1\\%u03b4\\%u03b5\\%u03af\\%u03b3\\%u03bc\\%u03b1\\%u03c4\\%u03b1\\>\\|\\%u03a3\\%u03b5\\%u03bd\\%u03ac\\%u03c1\\%u03b9\\%u03b1\\>", "feature": "\\%u0394\\%u03c5\\%u03bd\\%u03b1\\%u03c4\\%u03cc\\%u03c4\\%u03b7\\%u03c4\\%u03b1\\>\\|\\%u039b\\%u03b5\\%u03b9\\%u03c4\\%u03bf\\%u03c5\\%u03c1\\%u03b3\\%u03af\\%u03b1\\>", "given": "\\%u0394\\%u03b5\\%u03b4\\%u03bf\\%u03bc\\%u03ad\\%u03bd\\%u03bf\\%u03c5 \\%u03cc\\%u03c4\\%u03b9\\>\\|\\%u0394\\%u03b5\\%u03b4\\%u03bf\\%u03bc\\%u03ad\\%u03bd\\%u03bf\\%u03c5\\>", "scenario": "\\%u03a3\\%u03b5\\%u03bd\\%u03ac\\%u03c1\\%u03b9\\%u03bf\\>", "scenario_outline": "\\%u03a0\\%u03b5\\%u03c1\\%u03b9\\%u03b3\\%u03c1\\%u03b1\\%u03c6\\%u03ae \\%u03a3\\%u03b5\\%u03bd\\%u03b1\\%u03c1\\%u03af\\%u03bf\\%u03c5\\>", "then": "\\%u03a4\\%u03cc\\%u03c4\\%u03b5\\>", "when": "\\%u038c\\%u03c4\\%u03b1\\%u03bd\\>"},
\"en-Scouse": {"and": "An\\>", "background": "Dis is what went down\\>", "but": "Buh\\>", "examples": "Examples\\>", "feature": "Feature\\>", "given": "Youse know when youse got\\>\\|Givun\\>", "scenario": "The thing of it is\\>", "scenario_outline": "Wharrimean is\\>", "then": "Den youse gotta\\>\\|Dun\\>", "when": "Youse know like when\\>\\|Wun\\>"},
\"en-au": {"and": "N\\>", "background": "Background\\>", "but": "Cept\\>", "examples": "Cobber\\>", "feature": "Crikey\\>", "given": "Ya know how\\>", "scenario": "Mate\\>", "scenario_outline": "Blokes\\>", "then": "Ya gotta\\>", "when": "When\\>"},
\"en-au": {"and": "Too right\\>", "background": "First off\\>", "but": "Yeah nah\\>", "examples": "You'll wanna\\>", "feature": "Pretty much\\>", "given": "Y'know\\>", "scenario": "Awww, look mate\\>", "scenario_outline": "Reckon it's like\\>", "then": "But at the end of the day I reckon\\>", "when": "It's just unbelievable\\>"},
\"en-lol": {"and": "AN\\>", "background": "B4\\>", "but": "BUT\\>", "examples": "EXAMPLZ\\>", "feature": "OH HAI\\>", "given": "I CAN HAZ\\>", "scenario": "MISHUN\\>", "scenario_outline": "MISHUN SRSLY\\>", "then": "DEN\\>", "when": "WEN\\>"},
\"en-old": {"and": "Ond\\>\\|7\\>", "background": "\\%u00c6r\\>\\|Aer\\>", "but": "Ac\\>", "examples": "Se \\%u00f0e\\>\\|Se \\%u00fee\\>\\|Se the\\>", "feature": "Hw\\%u00e6t\\>\\|Hwaet\\>", "given": "\\%u00d0urh\\>\\|\\%u00deurh\\>\\|Thurh\\>", "scenario": "Swa\\>", "scenario_outline": "Swa hw\\%u00e6r swa\\>\\|Swa hwaer swa\\>", "then": "\\%u00d0a \\%u00f0e\\>\\|\\%u00dea \\%u00fee\\>\\|\\%u00dea\\>\\|\\%u00d0a\\>\\|Tha the\\>\\|Tha\\>", "when": "\\%u00d0a\\>\\|\\%u00dea\\>\\|Tha\\>"},
\"en-pirate": {"and": "Aye\\>", "background": "Yo-ho-ho\\>", "but": "Avast!\\>", "examples": "Dead men tell no tales\\>", "feature": "Ahoy matey!\\>", "given": "Gangway!\\>", "scenario": "Heave to\\>", "scenario_outline": "Shiver me timbers\\>", "then": "Let go and haul\\>", "when": "Blimey!\\>"},
\"en-tx": {"and": "And y'all\\>", "background": "Background\\>", "but": "But y'all\\>", "examples": "Examples\\>", "feature": "Feature\\>", "given": "Given y'all\\>", "scenario": "Scenario\\>", "scenario_outline": "All y'all\\>", "then": "Then y'all\\>", "when": "When y'all\\>"},
\"eo": {"and": "Kaj\\>", "background": "Fono\\>", "but": "Sed\\>", "examples": "Ekzemploj\\>", "feature": "Trajto\\>", "given": "Donita\\%u0135o\\>", "scenario": "Scenaro\\>", "scenario_outline": "Konturo de la scenaro\\>", "then": "Do\\>", "when": "Se\\>"},
\"es": {"and": "Y\\>", "background": "Antecedentes\\>", "but": "Pero\\>", "examples": "Ejemplos\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Dado\\>", "scenario": "Escenario\\>", "scenario_outline": "Esquema del escenario\\>", "then": "Entonces\\>", "when": "Cuando\\>"},
\"es": {"and": "Y\\>", "background": "Antecedentes\\>", "but": "Pero\\>", "examples": "Ejemplos\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Dadas\\>\\|Dados\\>\\|Dada\\>\\|Dado\\>", "scenario": "Escenario\\>", "scenario_outline": "Esquema del escenario\\>", "then": "Entonces\\>", "when": "Cuando\\>"},
\"et": {"and": "Ja\\>", "background": "Taust\\>", "but": "Kuid\\>", "examples": "Juhtumid\\>", "feature": "Omadus\\>", "given": "Eeldades\\>", "scenario": "Stsenaarium\\>", "scenario_outline": "Raamstsenaarium\\>", "then": "Siis\\>", "when": "Kui\\>"},
\"fa": {"and": "\\%u0648\\>", "background": "\\%u0632\\%u0645\\%u06cc\\%u0646\\%u0647\\>", "but": "\\%u0627\\%u0645\\%u0627\\>", "examples": "\\%u0646\\%u0645\\%u0648\\%u0646\\%u0647 \\%u0647\\%u0627\\>", "feature": "\\%u0648\\%u0650\\%u06cc\\%u0698\\%u06af\\%u06cc\\>", "given": "\\%u0628\\%u0627 \\%u0641\\%u0631\\%u0636\\>", "scenario": "\\%u0633\\%u0646\\%u0627\\%u0631\\%u06cc\\%u0648\\>", "scenario_outline": "\\%u0627\\%u0644\\%u06af\\%u0648\\%u06cc \\%u0633\\%u0646\\%u0627\\%u0631\\%u06cc\\%u0648\\>", "then": "\\%u0622\\%u0646\\%u06af\\%u0627\\%u0647\\>", "when": "\\%u0647\\%u0646\\%u06af\\%u0627\\%u0645\\%u06cc\\>"},
\"fi": {"and": "Ja\\>", "background": "Tausta\\>", "but": "Mutta\\>", "examples": "Tapaukset\\>", "feature": "Ominaisuus\\>", "given": "Oletetaan\\>", "scenario": "Tapaus\\>", "scenario_outline": "Tapausaihio\\>", "then": "Niin\\>", "when": "Kun\\>"},
\"fr": {"and": "Et\\>", "background": "Contexte\\>", "but": "Mais\\>", "examples": "Exemples\\>", "feature": "Fonctionnalit\\%u00e9\\>", "given": "Etant donn\\%u00e9\\>\\|Soit\\>", "scenario": "Sc\\%u00e9nario\\>", "scenario_outline": "Plan du sc\\%u00e9nario\\>\\|Plan du Sc\\%u00e9nario\\>", "then": "Alors\\>", "when": "Lorsqu'\\|Lorsque\\>\\|Quand\\>"},
\"fr": {"and": "Et\\>", "background": "Contexte\\>", "but": "Mais\\>", "examples": "Exemples\\>", "feature": "Fonctionnalit\\%u00e9\\>", "given": "\\%u00c9tant donn\\%u00e9es\\>\\|\\%u00c9tant donn\\%u00e9s\\>\\|\\%u00c9tant donn\\%u00e9e\\>\\|\\%u00c9tant donn\\%u00e9\\>\\|Etant donn\\%u00e9es\\>\\|Etant donn\\%u00e9s\\>\\|Etant donn\\%u00e9e\\>\\|Etant donn\\%u00e9\\>\\|Soit\\>", "scenario": "Sc\\%u00e9nario\\>", "scenario_outline": "Plan du sc\\%u00e9nario\\>\\|Plan du Sc\\%u00e9nario\\>", "then": "Alors\\>", "when": "Lorsqu'\\|Lorsque\\>\\|Quand\\>"},
\"gl": {"and": "E\\>", "background": "Contexto\\>", "but": "Mais\\>\\|Pero\\>", "examples": "Exemplos\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Dadas\\>\\|Dados\\>\\|Dada\\>\\|Dado\\>", "scenario": "Escenario\\>", "scenario_outline": "Esbozo do escenario\\>", "then": "Ent\\%u00f3n\\>\\|Logo\\>", "when": "Cando\\>"},
\"he": {"and": "\\%u05d5\\%u05d2\\%u05dd\\>", "background": "\\%u05e8\\%u05e7\\%u05e2\\>", "but": "\\%u05d0\\%u05d1\\%u05dc\\>", "examples": "\\%u05d3\\%u05d5\\%u05d2\\%u05de\\%u05d0\\%u05d5\\%u05ea\\>", "feature": "\\%u05ea\\%u05db\\%u05d5\\%u05e0\\%u05d4\\>", "given": "\\%u05d1\\%u05d4\\%u05d9\\%u05e0\\%u05ea\\%u05df\\>", "scenario": "\\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9\\>", "scenario_outline": "\\%u05ea\\%u05d1\\%u05e0\\%u05d9\\%u05ea \\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9\\>", "then": "\\%u05d0\\%u05d6\\%u05d9\\>\\|\\%u05d0\\%u05d6\\>", "when": "\\%u05db\\%u05d0\\%u05e9\\%u05e8\\>"},
\"hi": {"and": "\\%u0924\\%u0925\\%u093e\\>\\|\\%u0914\\%u0930\\>", "background": "\\%u092a\\%u0943\\%u0937\\%u094d\\%u0920\\%u092d\\%u0942\\%u092e\\%u093f\\>", "but": "\\%u092a\\%u0930\\>", "examples": "\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923\\>", "feature": "\\%u0930\\%u0942\\%u092a \\%u0932\\%u0947\\%u0916\\>", "given": "\\%u091a\\%u0942\\%u0902\\%u0915\\%u093f\\>\\|\\%u092f\\%u0926\\%u093f\\>\\|\\%u0905\\%u0917\\%u0930\\>", "scenario": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f\\>", "scenario_outline": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f \\%u0930\\%u0942\\%u092a\\%u0930\\%u0947\\%u0916\\%u093e\\>", "then": "\\%u0924\\%u092c\\>", "when": "\\%u091c\\%u092c\\>"},
\"hr": {"and": "I\\>", "background": "Pozadina\\>", "but": "Ali\\>", "examples": "Scenariji\\>\\|Primjeri\\>", "feature": "Mogu\\%u0107nost\\>\\|Mogucnost\\>\\|Osobina\\>", "given": "Zadano\\>\\|Zadani\\>\\|Zadan\\>", "scenario": "Scenarij\\>", "scenario_outline": "Koncept\\>\\|Skica\\>", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"},
\"hu": {"and": "\\%u00c9s\\>", "background": "H\\%u00e1tt\\%u00e9r\\>", "but": "De\\>", "examples": "P\\%u00e9ld\\%u00e1k\\>", "feature": "Jellemz\\%u0151\\>", "given": "Ha\\>", "scenario": "Forgat\\%u00f3k\\%u00f6nyv\\>", "scenario_outline": "Forgat\\%u00f3k\\%u00f6nyv v\\%u00e1zlat\\>", "then": "Akkor\\>", "when": "Majd\\>"},
\"hu": {"and": "\\%u00c9s\\>", "background": "H\\%u00e1tt\\%u00e9r\\>", "but": "De\\>", "examples": "P\\%u00e9ld\\%u00e1k\\>", "feature": "Jellemz\\%u0151\\>", "given": "Amennyiben\\>\\|Adott\\>", "scenario": "Forgat\\%u00f3k\\%u00f6nyv\\>", "scenario_outline": "Forgat\\%u00f3k\\%u00f6nyv v\\%u00e1zlat\\>", "then": "Akkor\\>", "when": "Amikor\\>\\|Majd\\>\\|Ha\\>"},
\"id": {"and": "Dan\\>", "background": "Dasar\\>", "but": "Tapi\\>", "examples": "Contoh\\>", "feature": "Fitur\\>", "given": "Dengan\\>", "scenario": "Skenario\\>", "scenario_outline": "Skenario konsep\\>", "then": "Maka\\>", "when": "Ketika\\>"},
\"it": {"and": "E\\>", "background": "Contesto\\>", "but": "Ma\\>", "examples": "Esempi\\>", "feature": "Funzionalit\\%u00e0\\>", "given": "Dato\\>", "scenario": "Scenario\\>", "scenario_outline": "Schema dello scenario\\>", "then": "Allora\\>", "when": "Quando\\>"},
\"is": {"and": "Og\\>", "background": "Bakgrunnur\\>", "but": "En\\>", "examples": "Atbur\\%u00f0ar\\%u00e1sir\\>\\|D\\%u00e6mi\\>", "feature": "Eiginleiki\\>", "given": "Ef\\>", "scenario": "Atbur\\%u00f0ar\\%u00e1s\\>", "scenario_outline": "L\\%u00fdsing Atbur\\%u00f0ar\\%u00e1sar\\>\\|L\\%u00fdsing D\\%u00e6ma\\>", "then": "\\%u00de\\%u00e1\\>", "when": "\\%u00deegar\\>"},
\"it": {"and": "E\\>", "background": "Contesto\\>", "but": "Ma\\>", "examples": "Esempi\\>", "feature": "Funzionalit\\%u00e0\\>", "given": "Dato\\>\\|Data\\>\\|Dati\\>\\|Date\\>", "scenario": "Scenario\\>", "scenario_outline": "Schema dello scenario\\>", "then": "Allora\\>", "when": "Quando\\>"},
\"ja": {"and": "\\%u304b\\%u3064", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u3057\\%u304b\\%u3057\\|\\%u305f\\%u3060\\%u3057\\|\\%u4f46\\%u3057", "examples": "\\%u30b5\\%u30f3\\%u30d7\\%u30eb\\>\\|\\%u4f8b\\>", "feature": "\\%u30d5\\%u30a3\\%u30fc\\%u30c1\\%u30e3\\>\\|\\%u6a5f\\%u80fd\\>", "given": "\\%u524d\\%u63d0", "scenario": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\>", "scenario_outline": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30a2\\%u30a6\\%u30c8\\%u30e9\\%u30a4\\%u30f3\\>\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\%u30fc\\%u30c8\\>\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\>\\|\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\>", "then": "\\%u306a\\%u3089\\%u3070", "when": "\\%u3082\\%u3057"},
\"ko": {"and": "\\%uadf8\\%ub9ac\\%uace0", "background": "\\%ubc30\\%uacbd\\>", "but": "\\%ud558\\%uc9c0\\%ub9cc\\|\\%ub2e8", "examples": "\\%uc608\\>", "feature": "\\%uae30\\%ub2a5\\>", "given": "\\%uc870\\%uac74\\|\\%uba3c\\%uc800", "scenario": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624\\>", "scenario_outline": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624 \\%uac1c\\%uc694\\>", "then": "\\%uadf8\\%ub7ec\\%uba74", "when": "\\%ub9cc\\%uc77c\\|\\%ub9cc\\%uc57d"},
\"lt": {"and": "Ir\\>", "background": "Kontekstas\\>", "but": "Bet\\>", "examples": "Pavyzd\\%u017eiai\\>\\|Scenarijai\\>\\|Variantai\\>", "feature": "Savyb\\%u0117\\>", "given": "Duota\\>", "scenario": "Scenarijus\\>", "scenario_outline": "Scenarijaus \\%u0161ablonas\\>", "then": "Tada\\>", "when": "Kai\\>"},
\"lu": {"and": "an\\>\\|a\\>", "background": "Hannergrond\\>", "but": "m\\%u00e4\\>\\|awer\\>", "examples": "Beispiller\\>", "feature": "Funktionalit\\%u00e9it\\>", "given": "ugeholl\\>", "scenario": "Szenario\\>", "scenario_outline": "Plang vum Szenario\\>", "then": "dann\\>", "when": "wann\\>"},
\"lv": {"and": "Un\\>", "background": "Situ\\%u0101cija\\>\\|Konteksts\\>", "but": "Bet\\>", "examples": "Piem\\%u0113ri\\>\\|Paraugs\\>", "feature": "Funkcionalit\\%u0101te\\>\\|F\\%u012b\\%u010da\\>", "given": "Kad\\>", "scenario": "Scen\\%u0101rijs\\>", "scenario_outline": "Scen\\%u0101rijs p\\%u0113c parauga\\>", "then": "Tad\\>", "when": "Ja\\>"},
\"nl": {"and": "En\\>", "background": "Achtergrond\\>", "but": "Maar\\>", "examples": "Voorbeelden\\>", "feature": "Functionaliteit\\>", "given": "Gegeven\\>\\|Stel\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstract Scenario\\>", "then": "Dan\\>", "when": "Als\\>"},
\"no": {"and": "Og\\>", "background": "Bakgrunn\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskap\\>", "given": "Gitt\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"},
\"pl": {"and": "Oraz\\>", "background": "Za\\%u0142o\\%u017cenia\\>", "but": "Ale\\>", "examples": "Przyk\\%u0142ady\\>", "feature": "W\\%u0142a\\%u015bciwo\\%u015b\\%u0107\\>", "given": "Zak\\%u0142adaj\\%u0105c\\>", "scenario": "Scenariusz\\>", "scenario_outline": "Szablon scenariusza\\>", "then": "Wtedy\\>", "when": "Je\\%u017celi\\>"},
\"pt": {"and": "E\\>", "background": "Contexto\\>", "but": "Mas\\>", "examples": "Exemplos\\>", "feature": "Funcionalidade\\>", "given": "Dado\\>", "scenario": "Cen\\%u00e1rio\\>\\|Cenario\\>", "scenario_outline": "Esquema do Cen\\%u00e1rio\\>\\|Esquema do Cenario\\>", "then": "Ent\\%u00e3o\\>\\|Entao\\>", "when": "Quando\\>"},
\"ro": {"and": "Si\\>", "background": "Conditii\\>", "but": "Dar\\>", "examples": "Exemplele\\>", "feature": "Functionalitate\\>", "given": "Daca\\>", "scenario": "Scenariu\\>", "scenario_outline": "Scenariul de sablon\\>", "then": "Atunci\\>", "when": "Cand\\>"},
\"ro-RO": {"and": "\\%u0218i\\>", "background": "Condi\\%u0163ii\\>", "but": "Dar\\>", "examples": "Exemplele\\>", "feature": "Func\\%u021bionalitate\\>", "given": "Dac\\%u0103\\>", "scenario": "Scenariu\\>", "scenario_outline": "Scenariul de \\%u015fablon\\>", "then": "Atunci\\>", "when": "C\\%u00e2nd\\>"},
\"ru": {"and": "\\%u041a \\%u0442\\%u043e\\%u043c\\%u0443 \\%u0436\\%u0435\\>\\|\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u044b\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>", "but": "\\%u041d\\%u043e\\>\\|\\%u0410\\>", "examples": "\\%u0417\\%u043d\\%u0430\\%u0447\\%u0435\\%u043d\\%u0438\\%u044f\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>\\|\\%u0424\\%u0438\\%u0447\\%u0430\\>", "given": "\\%u0414\\%u043e\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f\\>", "then": "\\%u0422\\%u043e\\>", "when": "\\%u0415\\%u0441\\%u043b\\%u0438\\>"},
\"sk": {"and": "A\\>", "background": "Pozadie\\>", "but": "Ale\\>", "examples": "Pr\\%u00edklady\\>", "feature": "Po\\%u017eiadavka\\>", "given": "Pokia\\%u013e\\>", "scenario": "Scen\\%u00e1r\\>", "scenario_outline": "N\\%u00e1\\%u010drt Scen\\%u00e1ru\\>", "then": "Tak\\>", "when": "Ke\\%u010f\\>"},
\"no": {"and": "Og\\>", "background": "Bakgrunn\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskap\\>", "given": "Gitt\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>\\|Scenariomal\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"},
\"pl": {"and": "Oraz\\>\\|I\\>", "background": "Za\\%u0142o\\%u017cenia\\>", "but": "Ale\\>", "examples": "Przyk\\%u0142ady\\>", "feature": "W\\%u0142a\\%u015bciwo\\%u015b\\%u0107\\>\\|Potrzeba biznesowa\\>\\|Funkcja\\>\\|Aspekt\\>", "given": "Zak\\%u0142adaj\\%u0105c\\>\\|Maj\\%u0105c\\>", "scenario": "Scenariusz\\>", "scenario_outline": "Szablon scenariusza\\>", "then": "Wtedy\\>", "when": "Je\\%u017celi\\>\\|Je\\%u015bli\\>\\|Kiedy\\>\\|Gdy\\>"},
\"pt": {"and": "E\\>", "background": "Cen\\%u00e1rio de Fundo\\>\\|Cenario de Fundo\\>\\|Contexto\\>\\|Fundo\\>", "but": "Mas\\>", "examples": "Cen\\%u00e1rios\\>\\|Exemplos\\>\\|Cenarios\\>", "feature": "Caracter\\%u00edstica\\>\\|Funcionalidade\\>\\|Caracteristica\\>", "given": "Dadas\\>\\|Dados\\>\\|Dada\\>\\|Dado\\>", "scenario": "Cen\\%u00e1rio\\>\\|Cenario\\>", "scenario_outline": "Delinea\\%u00e7\\%u00e3o do Cen\\%u00e1rio\\>\\|Esquema do Cen\\%u00e1rio\\>\\|Delineacao do Cenario\\>\\|Esquema do Cenario\\>", "then": "Ent\\%u00e3o\\>\\|Entao\\>", "when": "Quando\\>"},
\"ro": {"and": "\\%u015ei\\>\\|\\%u0218i\\>\\|Si\\>", "background": "Context\\>", "but": "Dar\\>", "examples": "Exemple\\>", "feature": "Func\\%u0163ionalitate\\>\\|Func\\%u021bionalitate\\>\\|Functionalitate\\>", "given": "Da\\%u0163i fiind\\>\\|Da\\%u021bi fiind\\>\\|Dati fiind\\>\\|Date fiind\\>\\|Dat fiind\\>", "scenario": "Scenariu\\>", "scenario_outline": "Structur\\%u0103 scenariu\\>\\|Structura scenariu\\>", "then": "Atunci\\>", "when": "C\\%u00e2nd\\>\\|Cand\\>"},
\"ru": {"and": "\\%u041a \\%u0442\\%u043e\\%u043c\\%u0443 \\%u0436\\%u0435\\>\\|\\%u0422\\%u0430\\%u043a\\%u0436\\%u0435\\>\\|\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u044b\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>\\|\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\>", "but": "\\%u041d\\%u043e\\>\\|\\%u0410\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u044b\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>\\|\\%u0421\\%u0432\\%u043e\\%u0439\\%u0441\\%u0442\\%u0432\\%u043e\\>\\|\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u044f\\>", "given": "\\%u0414\\%u043e\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\>\\|\\%u041f\\%u0443\\%u0441\\%u0442\\%u044c\\>\\|\\%u0414\\%u0430\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f\\>", "then": "\\%u0422\\%u043e\\%u0433\\%u0434\\%u0430\\>\\|\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0434\\%u0430\\>\\|\\%u0415\\%u0441\\%u043b\\%u0438\\>"},
\"sk": {"and": "A z\\%u00e1rove\\%u0148\\>\\|A taktie\\%u017e\\>\\|A tie\\%u017e\\>\\|A\\>", "background": "Pozadie\\>", "but": "Ale\\>", "examples": "Pr\\%u00edklady\\>", "feature": "Po\\%u017eiadavka\\>\\|Vlastnos\\%u0165\\>\\|Funkcia\\>", "given": "Za predpokladu\\>\\|Pokia\\%u013e\\>", "scenario": "Scen\\%u00e1r\\>", "scenario_outline": "N\\%u00e1\\%u010drt Scen\\%u00e1ru\\>\\|N\\%u00e1\\%u010drt Scen\\%u00e1ra\\>\\|Osnova Scen\\%u00e1ra\\>", "then": "Potom\\>\\|Tak\\>", "when": "Ke\\%u010f\\>\\|Ak\\>"},
\"sr-Cyrl": {"and": "\\%u0418\\>", "background": "\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\>\\|\\%u041f\\%u043e\\%u0437\\%u0430\\%u0434\\%u0438\\%u043d\\%u0430\\>\\|\\%u041e\\%u0441\\%u043d\\%u043e\\%u0432\\%u0430\\>", "but": "\\%u0410\\%u043b\\%u0438\\>", "examples": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0438\\>\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\>\\|\\%u041c\\%u043e\\%u0433\\%u0443\\%u045b\\%u043d\\%u043e\\%u0441\\%u0442\\>\\|\\%u041e\\%u0441\\%u043e\\%u0431\\%u0438\\%u043d\\%u0430\\>", "given": "\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u043e\\>\\|\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u0435\\>\\|\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u0438\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\>\\|\\%u041a\\%u043e\\%u043d\\%u0446\\%u0435\\%u043f\\%u0442\\>\\|\\%u0421\\%u043a\\%u0438\\%u0446\\%u0430\\>", "then": "\\%u041e\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u041a\\%u0430\\%u0434\\%u0430\\>\\|\\%u041a\\%u0430\\%u0434\\>"},
\"sr-Latn": {"and": "I\\>", "background": "Kontekst\\>\\|Pozadina\\>\\|Osnova\\>", "but": "Ali\\>", "examples": "Scenariji\\>\\|Primeri\\>", "feature": "Mogu\\%u0107nost\\>\\|Funkcionalnost\\>\\|Mogucnost\\>\\|Osobina\\>", "given": "Zadato\\>\\|Zadate\\>\\|Zatati\\>", "scenario": "Scenario\\>\\|Primer\\>", "scenario_outline": "Struktura scenarija\\>\\|Koncept\\>\\|Skica\\>", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"},
\"sv": {"and": "Och\\>", "background": "Bakgrund\\>", "but": "Men\\>", "examples": "Exempel\\>", "feature": "Egenskap\\>", "given": "Givet\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e4r\\>"},
\"sv": {"and": "Och\\>", "background": "Bakgrund\\>", "but": "Men\\>", "examples": "Exempel\\>", "feature": "Egenskap\\>", "given": "Givet\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>\\|Scenariomall\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e4r\\>"},
\"th": {"and": "\\%u0e41\\%u0e25\\%u0e30\\>", "background": "\\%u0e41\\%u0e19\\%u0e27\\%u0e04\\%u0e34\\%u0e14\\>", "but": "\\%u0e41\\%u0e15\\%u0e48\\>", "examples": "\\%u0e0a\\%u0e38\\%u0e14\\%u0e02\\%u0e2d\\%u0e07\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>\\|\\%u0e0a\\%u0e38\\%u0e14\\%u0e02\\%u0e2d\\%u0e07\\%u0e15\\%u0e31\\%u0e27\\%u0e2d\\%u0e22\\%u0e48\\%u0e32\\%u0e07\\>", "feature": "\\%u0e04\\%u0e27\\%u0e32\\%u0e21\\%u0e15\\%u0e49\\%u0e2d\\%u0e07\\%u0e01\\%u0e32\\%u0e23\\%u0e17\\%u0e32\\%u0e07\\%u0e18\\%u0e38\\%u0e23\\%u0e01\\%u0e34\\%u0e08\\>\\|\\%u0e04\\%u0e27\\%u0e32\\%u0e21\\%u0e2a\\%u0e32\\%u0e21\\%u0e32\\%u0e23\\%u0e16\\>\\|\\%u0e42\\%u0e04\\%u0e23\\%u0e07\\%u0e2b\\%u0e25\\%u0e31\\%u0e01\\>", "given": "\\%u0e01\\%u0e33\\%u0e2b\\%u0e19\\%u0e14\\%u0e43\\%u0e2b\\%u0e49\\>", "scenario": "\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>", "scenario_outline": "\\%u0e42\\%u0e04\\%u0e23\\%u0e07\\%u0e2a\\%u0e23\\%u0e49\\%u0e32\\%u0e07\\%u0e02\\%u0e2d\\%u0e07\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>\\|\\%u0e2a\\%u0e23\\%u0e38\\%u0e1b\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>", "then": "\\%u0e14\\%u0e31\\%u0e07\\%u0e19\\%u0e31\\%u0e49\\%u0e19\\>", "when": "\\%u0e40\\%u0e21\\%u0e37\\%u0e48\\%u0e2d\\>"},
\"tl": {"and": "\\%u0c2e\\%u0c30\\%u0c3f\\%u0c2f\\%u0c41\\>", "background": "\\%u0c28\\%u0c47\\%u0c2a\\%u0c25\\%u0c4d\\%u0c2f\\%u0c02\\>", "but": "\\%u0c15\\%u0c3e\\%u0c28\\%u0c3f\\>", "examples": "\\%u0c09\\%u0c26\\%u0c3e\\%u0c39\\%u0c30\\%u0c23\\%u0c32\\%u0c41\\>", "feature": "\\%u0c17\\%u0c41\\%u0c23\\%u0c2e\\%u0c41\\>", "given": "\\%u0c1a\\%u0c46\\%u0c2a\\%u0c4d\\%u0c2a\\%u0c2c\\%u0c21\\%u0c3f\\%u0c28\\%u0c26\\%u0c3f\\>", "scenario": "\\%u0c38\\%u0c28\\%u0c4d\\%u0c28\\%u0c3f\\%u0c35\\%u0c47\\%u0c36\\%u0c02\\>", "scenario_outline": "\\%u0c15\\%u0c25\\%u0c28\\%u0c02\\>", "then": "\\%u0c05\\%u0c2a\\%u0c4d\\%u0c2a\\%u0c41\\%u0c21\\%u0c41\\>", "when": "\\%u0c08 \\%u0c2a\\%u0c30\\%u0c3f\\%u0c38\\%u0c4d\\%u0c25\\%u0c3f\\%u0c24\\%u0c3f\\%u0c32\\%u0c4b\\>"},
\"tr": {"and": "Ve\\>", "background": "Ge\\%u00e7mi\\%u015f\\>", "but": "Fakat\\>\\|Ama\\>", "examples": "\\%u00d6rnekler\\>", "feature": "\\%u00d6zellik\\>", "given": "Diyelim ki\\>", "scenario": "Senaryo\\>", "scenario_outline": "Senaryo tasla\\%u011f\\%u0131\\>", "then": "O zaman\\>", "when": "E\\%u011fer ki\\>"},
\"uk": {"and": "\\%u0406\\>", "background": "\\%u041f\\%u0435\\%u0440\\%u0435\\%u0434\\%u0443\\%u043c\\%u043e\\%u0432\\%u0430\\>", "but": "\\%u0410\\%u043b\\%u0435\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043a\\%u043b\\%u0430\\%u0434\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0456\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e, \\%u0449\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e\\>\\|\\%u041d\\%u0435\\%u0445\\%u0430\\%u0439\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u044e\\>", "then": "\\%u0422\\%u043e\\>", "when": "\\%u042f\\%u043a\\%u0449\\%u043e\\>"},
\"tt": {"and": "\\%u04ba\\%u04d9\\%u043c\\>\\|\\%u0412\\%u04d9\\>", "background": "\\%u041a\\%u0435\\%u0440\\%u0435\\%u0448\\>", "but": "\\%u041b\\%u04d9\\%u043a\\%u0438\\%u043d\\>\\|\\%u04d8\\%u043c\\%u043c\\%u0430\\>", "examples": "\\%u04ae\\%u0440\\%u043d\\%u04d9\\%u043a\\%u043b\\%u04d9\\%u0440\\>\\|\\%u041c\\%u0438\\%u0441\\%u0430\\%u043b\\%u043b\\%u0430\\%u0440\\>", "feature": "\\%u04ae\\%u0437\\%u0435\\%u043d\\%u0447\\%u04d9\\%u043b\\%u0435\\%u043a\\%u043b\\%u0435\\%u043b\\%u0435\\%u043a\\>\\|\\%u041c\\%u04e9\\%u043c\\%u043a\\%u0438\\%u043d\\%u043b\\%u0435\\%u043a\\>", "given": "\\%u04d8\\%u0439\\%u0442\\%u0438\\%u043a\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\%u043d\\%u044b\\%u04a3 \\%u0442\\%u04e9\\%u0437\\%u0435\\%u043b\\%u0435\\%u0448\\%u0435\\>", "then": "\\%u041d\\%u04d9\\%u0442\\%u0438\\%u0497\\%u04d9\\%u0434\\%u04d9\\>", "when": "\\%u04d8\\%u0433\\%u04d9\\%u0440\\>"},
\"uk": {"and": "\\%u0410 \\%u0442\\%u0430\\%u043a\\%u043e\\%u0436\\>\\|\\%u0422\\%u0430\\>\\|\\%u0406\\>", "background": "\\%u041f\\%u0435\\%u0440\\%u0435\\%u0434\\%u0443\\%u043c\\%u043e\\%u0432\\%u0430\\>", "but": "\\%u0410\\%u043b\\%u0435\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043a\\%u043b\\%u0430\\%u0434\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0456\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e, \\%u0449\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e\\>\\|\\%u041d\\%u0435\\%u0445\\%u0430\\%u0439\\>\\|\\%u0414\\%u0430\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u044e\\>", "then": "\\%u0422\\%u043e\\%u0434\\%u0456\\>\\|\\%u0422\\%u043e\\>", "when": "\\%u042f\\%u043a\\%u0449\\%u043e\\>\\|\\%u041a\\%u043e\\%u043b\\%u0438\\>"},
\"uz": {"and": "\\%u0412\\%u0430\\>", "background": "\\%u0422\\%u0430\\%u0440\\%u0438\\%u0445\\>", "but": "\\%u041b\\%u0435\\%u043a\\%u0438\\%u043d\\>\\|\\%u0411\\%u0438\\%u0440\\%u043e\\%u043a\\>\\|\\%u0410\\%u043c\\%u043c\\%u043e\\>", "examples": "\\%u041c\\%u0438\\%u0441\\%u043e\\%u043b\\%u043b\\%u0430\\%u0440\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u0410\\%u0433\\%u0430\\%u0440\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439 \\%u0441\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430\\%u0441\\%u0438\\>", "then": "\\%u0423\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u0410\\%u0433\\%u0430\\%u0440\\>"},
\"vi": {"and": "V\\%u00e0\\>", "background": "B\\%u1ed1i c\\%u1ea3nh\\>", "but": "Nh\\%u01b0ng\\>", "examples": "D\\%u1eef li\\%u1ec7u\\>", "feature": "T\\%u00ednh n\\%u0103ng\\>", "given": "Bi\\%u1ebft\\>\\|Cho\\>", "scenario": "T\\%u00ecnh hu\\%u1ed1ng\\>\\|K\\%u1ecbch b\\%u1ea3n\\>", "scenario_outline": "Khung t\\%u00ecnh hu\\%u1ed1ng\\>\\|Khung k\\%u1ecbch b\\%u1ea3n\\>", "then": "Th\\%u00ec\\>", "when": "Khi\\>"},
\"zh-CN": {"and": "\\%u800c\\%u4e14", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u5982", "scenario": "\\%u573a\\%u666f\\>", "scenario_outline": "\\%u573a\\%u666f\\%u5927\\%u7eb2\\>", "then": "\\%u90a3\\%u4e48", "when": "\\%u5f53"},
\"zh-TW": {"and": "\\%u800c\\%u4e14\\|\\%u4e26\\%u4e14", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u8a2d", "scenario": "\\%u5834\\%u666f\\>\\|\\%u5287\\%u672c\\>", "scenario_outline": "\\%u5834\\%u666f\\%u5927\\%u7db1\\>\\|\\%u5287\\%u672c\\%u5927\\%u7db1\\>", "then": "\\%u90a3\\%u9ebc", "when": "\\%u7576"}}
\"zh-CN": {"and": "\\%u800c\\%u4e14\\|\\%u5e76\\%u4e14\\|\\%u540c\\%u65f6", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u5982\\|\\%u5047\\%u8bbe\\|\\%u5047\\%u5b9a", "scenario": "\\%u573a\\%u666f\\>\\|\\%u5267\\%u672c\\>", "scenario_outline": "\\%u573a\\%u666f\\%u5927\\%u7eb2\\>\\|\\%u5267\\%u672c\\%u5927\\%u7eb2\\>", "then": "\\%u90a3\\%u4e48", "when": "\\%u5f53"},
\"zh-TW": {"and": "\\%u800c\\%u4e14\\|\\%u4e26\\%u4e14\\|\\%u540c\\%u6642", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u5982\\|\\%u5047\\%u8a2d\\|\\%u5047\\%u5b9a", "scenario": "\\%u5834\\%u666f\\>\\|\\%u5287\\%u672c\\>", "scenario_outline": "\\%u5834\\%u666f\\%u5927\\%u7db1\\>\\|\\%u5287\\%u672c\\%u5927\\%u7db1\\>", "then": "\\%u90a3\\%u9ebc", "when": "\\%u7576"}}
function! s:pattern(key)
let language = matchstr(getline(1),'#\s*language:\s*\zs\S\+')
@@ -73,13 +83,15 @@ function! s:pattern(key)
endfunction
function! s:Add(name)
let next = " skipempty skipwhite nextgroup=".join(map(["Region","AndRegion","ButRegion","Comment","Table"],'"cucumber".a:name.v:val'),",")
let next = " skipempty skipwhite nextgroup=".join(map(["Region","AndRegion","ButRegion","Comment","String","Table"],'"cucumber".a:name.v:val'),",")
exe "syn region cucumber".a:name.'Region matchgroup=cucumber'.a:name.' start="\%(^\s*\)\@<=\%('.s:pattern(tolower(a:name)).'\)" end="$"'.next
exe 'syn region cucumber'.a:name.'AndRegion matchgroup=cucumber'.a:name.'And start="\%(^\s*\)\@<='.s:pattern('and').'" end="$" contained'.next
exe 'syn region cucumber'.a:name.'ButRegion matchgroup=cucumber'.a:name.'But start="\%(^\s*\)\@<='.s:pattern('but').'" end="$" contained'.next
exe 'syn match cucumber'.a:name.'Comment "\%(^\s*\)\@<=#.*" contained'.next
exe 'syn region cucumber'.a:name.'String start=+\%(^\s*\)\@<="""+ end=+"""+ contained'.next
exe 'syn match cucumber'.a:name.'Table "\%(^\s*\)\@<=|.*" contained contains=cucumberDelimiter'.next
exe 'hi def link cucumber'.a:name.'Comment cucumberComment'
exe 'hi def link cucumber'.a:name.'String cucumberString'
exe 'hi def link cucumber'.a:name.'But cucumber'.a:name.'And'
exe 'hi def link cucumber'.a:name.'And cucumber'.a:name
exe 'syn cluster cucumberStepRegions add=cucumber'.a:name.'Region,cucumber'.a:name.'AndRegion,cucumber'.a:name.'ButRegion'
@@ -99,9 +111,8 @@ exe 'syn match cucumberExamples "\%(^\s*\)\@<='.s:pattern('examples').':" nextgr
syn match cucumberPlaceholder "<[^<>]*>" contained containedin=@cucumberStepRegions
syn match cucumberExampleTable "\%(^\s*\)\@<=|.*" contains=cucumberDelimiter
syn match cucumberDelimiter "|" contained
syn match cucumberTags "\%(^\s*\)\@<=\%(@[^@[:space:]]\+\s\+\)*@[^@[:space:]]\+\s*$"
syn region cucumberString start=+\%(^\s*\)\@<="""+ end=+"""+
syn match cucumberDelimiter "\\\@<!\%(\\\\\)*\zs|" contained
syn match cucumberTags "\%(^\s*\)\@<=\%(@[^@[:space:]]\+\s\+\)*@[^@[:space:]]\+\s*$" contains=@NoSpell
call s:Add('Then')
call s:Add('When')

View File

@@ -1,22 +1,23 @@
" Vim syntax file for the D programming language (version 1.053 and 2.047).
" Vim syntax file for the D programming language (version 1.076 and 2.063).
"
" Language: D
" Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
" Last Change: 2012 Jan 11
" Version: 0.24
" Last Change: 2013 May 21
" Version: 0.25
"
" Contributors:
" - Jason Mills <jasonmills@nf.sympatico.ca>: original Maintainer
" - Jason Mills: original Maintainer
" - Kirk McDonald
" - Tim Keating
" - Frank Benoit
" - Shougo Matsushita <Shougo.Matsu@gmail.com>
" - Shougo Matsushita
" - Ellery Newcomer
" - Steven N. Oliver
" - Sohgo Takeuchi
" - Robert Clipsham
"
" Please submit bugs/comments/suggestions to the github repo:
" https://github.com/he-the-great/d.vim
" https://github.com/JesseKPhillips/d.vim
"
" Options:
" d_comment_strings - Set to highlight strings and numbers in comments.
@@ -40,7 +41,8 @@ let b:current_syntax = "d"
" Keyword definitions
"
syn keyword dExternal import module
syn keyword dExternal contained import module
syn keyword dAssert assert
syn keyword dConditional if else switch
syn keyword dBranch goto break continue
syn keyword dRepeat while for do foreach foreach_reverse
@@ -48,6 +50,7 @@ syn keyword dBoolean true false
syn keyword dConstant null
syn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__
syn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__
syn keyword dConstant __MODULE__ __FUNCTION__ __PRETTY_FUNCTION__
syn keyword dTypedef alias typedef
syn keyword dStructure template interface class struct union
syn keyword dEnum enum
@@ -58,7 +61,7 @@ if exists("d_hl_operator_overload")
syn keyword dOpOverload opSub opSub_r opMul opDiv opDiv_r opMod
syn keyword dOpOverload opMod_r opAnd opOr opXor opShl opShl_r opShr
syn keyword dOpOverload opShr_r opUShr opUShr_r opCat
syn keyword dOpOverload opCat_r opEquals opEquals opCmp
syn keyword dOpOverload opCat_r opEquals opCmp
syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign
syn keyword dOpOverload opDivAssign opModAssign opAndAssign
syn keyword dOpOverload opOrAssign opXorAssign opShlAssign
@@ -73,7 +76,7 @@ if exists("d_hl_operator_overload")
endif
syn keyword dType byte ubyte short ushort int uint long ulong cent ucent
syn keyword dType void bool bit
syn keyword dType void bool Object
syn keyword dType float double real
syn keyword dType ushort int uint long ulong float
syn keyword dType char wchar dchar string wstring dstring
@@ -94,22 +97,31 @@ syn keyword dDebug deprecated unittest invariant
syn keyword dExceptions throw try catch finally
syn keyword dScopeDecl public protected private export package
syn keyword dStatement debug return with
syn keyword dStatement function delegate __ctfe mixin macro
syn keyword dStorageClass in out inout ref lazy body
syn keyword dStorageClass pure nothrow
syn keyword dStatement function delegate __ctfe mixin macro __simd
syn keyword dStatement in out body
syn keyword dStorageClass contained in out scope
syn keyword dStorageClass inout ref lazy pure nothrow
syn keyword dStorageClass auto static override final abstract volatile
syn keyword dStorageClass __gshared __thread
syn keyword dStorageClass __gshared __vector
syn keyword dStorageClass synchronized shared immutable const lazy
syn keyword dPragma pragma
syn keyword dIdentifier _arguments _argptr __vptr __monitor _ctor _dtor
syn keyword dIdentifier _arguments _argptr __vptr __monitor
syn keyword dIdentifier _ctor _dtor __argTypes __overloadset
syn keyword dScopeIdentifier contained exit success failure
syn keyword dTraitsIdentifier contained isAbstractClass isArithmetic isAssociativeArray
syn keyword dTraitsIdentifier contained isFinalClass isFloating isIntegral isScalar
syn keyword dTraitsIdentifier contained isStaticArray isUnsigned isVirtualFunction
syn keyword dTraitsIdentifier contained isAbstractFunction isFinalFunction isStaticFunction
syn keyword dTraitsIdentifier contained isRef isOut isLazy hasMember identifier getMember
syn keyword dTraitsIdentifier contained getOverloads getVirtualFunctions parent compiles
syn keyword dTraitsIdentifier contained classInstanceSize allMembers derivedMembers isSame
syn keyword dTraitsIdentifier contained isAbstractClass isArithmetic
syn keyword dTraitsIdentifier contained isAssociativeArray isFinalClass
syn keyword dTraitsIdentifier contained isPOD isNested isFloating
syn keyword dTraitsIdentifier contained isIntegral isScalar isStaticArray
syn keyword dTraitsIdentifier contained isUnsigned isVirtualFunction
syn keyword dTraitsIdentifier contained isVirtualMethod isAbstractFunction
syn keyword dTraitsIdentifier contained isFinalFunction isStaticFunction
syn keyword dTraitsIdentifier contained isRef isOut isLazy hasMember
syn keyword dTraitsIdentifier contained identifier getAttributes getMember
syn keyword dTraitsIdentifier contained getOverloads getProtection
syn keyword dTraitsIdentifier contained getVirtualFunctions
syn keyword dTraitsIdentifier contained getVirtualMethods parent
syn keyword dTraitsIdentifier contained classInstanceSize allMembers
syn keyword dTraitsIdentifier contained derivedMembers isSame compiles
syn keyword dPragmaIdentifier contained lib msg startaddress GNU_asm
syn keyword dExternIdentifier contained Windows Pascal Java System D
syn keyword dAttribute contained safe trusted system
syn keyword dAttribute contained property disable
@@ -124,6 +136,8 @@ syn keyword dVersionIdentifier contained D_InlineAsm_X86 D_InlineAsm_X86_64
syn keyword dVersionIdentifier contained D_Version2 D_Coverage D_Ddoc D_LP64 D_PIC
syn keyword dVersionIdentifier contained unittest none all
syn cluster dComment contains=dNestedComment,dBlockComment,dLineComment
" Highlight the sharpbang
syn match dSharpBang "\%^#!.*" display
@@ -131,45 +145,42 @@ syn match dSharpBang "\%^#!.*" display
syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute
" Version Identifiers
syn match dVersion "[^.]\<version\>"hs=s+1 nextgroup=dVersionInside
syn match dVersion "^\<version\>" nextgroup=dVersionInside
syn match dVersionInside "\s*([_a-zA-Z][_a-zA-Z0-9]*\>" transparent contained contains=dVersionIdentifier
" Scope StorageClass
syn match dStorageClass "\<scope\>"
" Traits Expression
syn match dStatement "\<__traits\>"
" Extern Modifier
syn match dExternal "\<extern\>"
syn match dVersion "\<version\>"
syn match dVersion "\<version\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+7 contains=dVersionIdentifier
" Scope Identifiers
syn match dScope "\<scope\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+5 contains=dScopeIdentifier
syn match dStatement "\<scope\>"
syn match dStatement "\<scope\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+5 contains=dScopeIdentifier
" Traits Identifiers
syn match dTraits "\<__traits\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dTraitsIdentifier
" Traits Statement
syn match dStatement "\<__traits\>"
syn match dStatement "\<__traits\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dTraitsIdentifier
" Pragma Statement
syn match dPragma "\<pragma\>"
syn match dPragma "\<pragma\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dPragmaIdentifier
" Necessary to highlight C++ in extern modifiers.
syn match dExternIdentifier "C\(++\)\?" contained
" Extern Identifiers
syn match dExternal "\<extern\>"
syn match dExtern "\<extern\s*([_a-zA-Z][_a-zA-Z0-9\+]*\>"he=s+6 contains=dExternIdentifier
" String is a statement and a module name.
syn match dType "[^.]\<string\>"ms=s+1
syn match dType "^\<string\>"
" Make import a region to prevent highlighting keywords
syn region dImport start="import" end=";" contains=dExternal,@dComment
" Assert is a statement and a module name.
syn match dAssert "[^.]\<assert\>"ms=s+1
syn match dAssert "^\<assert\>"
" Make module a region to prevent highlighting keywords
syn region dImport start="module" 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
syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation,dEnum
" Create a match for parameter lists to identify storage class
syn region paramlist start="(" end=")" contains=@dTokens
" Labels
"
@@ -358,146 +369,192 @@ hi def link dLineComment Comment
hi def link dBlockComment Comment
hi def link dNestedComment Comment
hi def link dExternal Include
hi def link dPragma PreProc
hi def link dAnnotation PreProc
hi def link dSharpBang PreProc
hi def link dAttribute StorageClass
hi def link dIdentifier Identifier
hi def link dVersion dStatement
hi def link dVersionIdentifier Identifier
hi def link dScope dStorageClass
hi def link dScopeIdentifier Identifier
hi def link dTraits dStatement
hi def link dTraitsIdentifier Identifier
hi def link dPragma PreProc
hi def link dPragmaIdentifier Identifier
hi def link dExtern dExternal
hi def link dExternIdentifier Identifier
" Marks contents of the asm statment body as special
syn match dAsmStatement "\<asm\>"
syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode
syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode,@dComment,DUserLabel
hi def link dAsmBody dUnicode
hi def link dAsmStatement dStatement
hi def link dAsmOpCode Identifier
syn keyword dAsmOpCode contained aaa aad aam aas adc
syn keyword dAsmOpCode contained add addpd addps addsd addss
syn keyword dAsmOpCode contained and andnpd andnps andpd andps
syn keyword dAsmOpCode contained arpl bound bsf bsr bswap
syn keyword dAsmOpCode contained bt btc btr bts call
syn keyword dAsmOpCode contained cbw cdq clc cld clflush
syn keyword dAsmOpCode contained cli clts cmc cmova cmovae
syn keyword dAsmOpCode contained cmovb cmovbe cmovc cmove cmovg
syn keyword dAsmOpCode contained cmovge cmovl cmovle cmovna cmovnae
syn keyword dAsmOpCode contained cmovnb cmovnbe cmovnc cmovne cmovng
syn keyword dAsmOpCode contained cmovnge cmovnl cmovnle cmovno cmovnp
syn keyword dAsmOpCode contained cmovns cmovnz cmovo cmovp cmovpe
syn keyword dAsmOpCode contained cmovpo cmovs cmovz cmp cmppd
syn keyword dAsmOpCode contained cmpps cmps cmpsb cmpsd cmpss
syn keyword dAsmOpCode contained cmpsw cmpxch8b cmpxchg comisd comiss
syn keyword dAsmOpCode contained cpuid cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi
syn keyword dAsmOpCode contained cvtpd2ps cvtpi2pd cvtpi2ps cvtps2dq cvtps2pd
syn keyword dAsmOpCode contained cvtps2pi cvtsd2si cvtsd2ss cvtsi2sd cvtsi2ss
syn keyword dAsmOpCode contained cvtss2sd cvtss2si cvttpd2dq cvttpd2pi cvttps2dq
syn keyword dAsmOpCode contained cvttps2pi cvttsd2si cvttss2si cwd cwde
syn keyword dAsmOpCode contained da daa das db dd
syn keyword dAsmOpCode contained de dec df di div
syn keyword dAsmOpCode contained divpd divps divsd divss dl
syn keyword dAsmOpCode contained dq ds dt dw emms
syn keyword dAsmOpCode contained enter f2xm1 fabs fadd faddp
syn keyword dAsmOpCode contained fbld fbstp fchs fclex fcmovb
syn keyword dAsmOpCode contained fcmovbe fcmove fcmovnb fcmovnbe fcmovne
syn keyword dAsmOpCode contained fcmovnu fcmovu fcom fcomi fcomip
syn keyword dAsmOpCode contained fcomp fcompp fcos fdecstp fdisi
syn keyword dAsmOpCode contained fdiv fdivp fdivr fdivrp feni
syn keyword dAsmOpCode contained ffree fiadd ficom ficomp fidiv
syn keyword dAsmOpCode contained fidivr fild fimul fincstp finit
syn keyword dAsmOpCode contained fist fistp fisub fisubr fld
syn keyword dAsmOpCode contained fld1 fldcw fldenv fldl2e fldl2t
syn keyword dAsmOpCode contained fldlg2 fldln2 fldpi fldz fmul
syn keyword dAsmOpCode contained fmulp fnclex fndisi fneni fninit
syn keyword dAsmOpCode contained fnop fnsave fnstcw fnstenv fnstsw
syn keyword dAsmOpCode contained fpatan fprem fprem1 fptan frndint
syn keyword dAsmOpCode contained frstor fsave fscale fsetpm fsin
syn keyword dAsmOpCode contained fsincos fsqrt fst fstcw fstenv
syn keyword dAsmOpCode contained fstp fstsw fsub fsubp fsubr
syn keyword dAsmOpCode contained fsubrp ftst fucom fucomi fucomip
syn keyword dAsmOpCode contained fucomp fucompp fwait fxam fxch
syn keyword dAsmOpCode contained fxrstor fxsave fxtract fyl2x fyl2xp1
syn keyword dAsmOpCode contained hlt idiv imul in inc
syn keyword dAsmOpCode contained ins insb insd insw int
syn keyword dAsmOpCode contained into invd invlpg iret iretd
syn keyword dAsmOpCode contained ja jae jb jbe jc
syn keyword dAsmOpCode contained jcxz je jecxz jg jge
syn keyword dAsmOpCode contained jl jle jmp jna jnae
syn keyword dAsmOpCode contained jnb jnbe jnc jne jng
syn keyword dAsmOpCode contained jnge jnl jnle jno jnp
syn keyword dAsmOpCode contained jns jnz jo jp jpe
syn keyword dAsmOpCode contained jpo js jz lahf lar
syn keyword dAsmOpCode contained ldmxcsr lds lea leave les
syn keyword dAsmOpCode contained lfence lfs lgdt lgs lidt
syn keyword dAsmOpCode contained lldt lmsw lock lods lodsb
syn keyword dAsmOpCode contained lodsd lodsw loop loope loopne
syn keyword dAsmOpCode contained loopnz loopz lsl lss ltr
syn keyword dAsmOpCode contained maskmovdqu maskmovq maxpd maxps maxsd
syn keyword dAsmOpCode contained maxss mfence minpd minps minsd
syn keyword dAsmOpCode contained minss mov movapd movaps movd
syn keyword dAsmOpCode contained movdq2q movdqa movdqu movhlps movhpd
syn keyword dAsmOpCode contained movhps movlhps movlpd movlps movmskpd
syn keyword dAsmOpCode contained movmskps movntdq movnti movntpd movntps
syn keyword dAsmOpCode contained movntq movq movq2dq movs movsb
syn keyword dAsmOpCode contained movsd movss movsw movsx movupd
syn keyword dAsmOpCode contained movups movzx mul mulpd mulps
syn keyword dAsmOpCode contained mulsd mulss neg nop not
syn keyword dAsmOpCode contained or orpd orps out outs
syn keyword dAsmOpCode contained outsb outsd outsw packssdw packsswb
syn keyword dAsmOpCode contained packuswb paddb paddd paddq paddsb
syn keyword dAsmOpCode contained paddsw paddusb paddusw paddw pand
syn keyword dAsmOpCode contained pandn pavgb pavgw pcmpeqb pcmpeqd
syn keyword dAsmOpCode contained pcmpeqw pcmpgtb pcmpgtd pcmpgtw pextrw
syn keyword dAsmOpCode contained pinsrw pmaddwd pmaxsw pmaxub pminsw
syn keyword dAsmOpCode contained pminub pmovmskb pmulhuw pmulhw pmullw
syn keyword dAsmOpCode contained pmuludq pop popa popad popf
syn keyword dAsmOpCode contained popfd por prefetchnta prefetcht0 prefetcht1
syn keyword dAsmOpCode contained prefetcht2 psadbw pshufd pshufhw pshuflw
syn keyword dAsmOpCode contained pshufw pslld pslldq psllq psllw
syn keyword dAsmOpCode contained psrad psraw psrld psrldq psrlq
syn keyword dAsmOpCode contained psrlw psubb psubd psubq psubsb
syn keyword dAsmOpCode contained psubsw psubusb psubusw psubw punpckhbw
syn keyword dAsmOpCode contained punpckhdq punpckhqdq punpckhwd punpcklbw punpckldq
syn keyword dAsmOpCode contained punpcklqdq punpcklwd push pusha pushad
syn keyword dAsmOpCode contained pushf pushfd pxor rcl rcpps
syn keyword dAsmOpCode contained rcpss rcr rdmsr rdpmc rdtsc
syn keyword dAsmOpCode contained rep repe repne repnz repz
syn keyword dAsmOpCode contained ret retf rol ror rsm
syn keyword dAsmOpCode contained rsqrtps rsqrtss sahf sal sar
syn keyword dAsmOpCode contained sbb scas scasb scasd scasw
syn keyword dAsmOpCode contained seta setae setb setbe setc
syn keyword dAsmOpCode contained sete setg setge setl setle
syn keyword dAsmOpCode contained setna setnae setnb setnbe setnc
syn keyword dAsmOpCode contained setne setng setnge setnl setnle
syn keyword dAsmOpCode contained setno setnp setns setnz seto
syn keyword dAsmOpCode contained setp setpe setpo sets setz
syn keyword dAsmOpCode contained sfence sgdt shl shld shr
syn keyword dAsmOpCode contained shrd shufpd shufps sidt sldt
syn keyword dAsmOpCode contained smsw sqrtpd sqrtps sqrtsd sqrtss
syn keyword dAsmOpCode contained stc std sti stmxcsr stos
syn keyword dAsmOpCode contained stosb stosd stosw str sub
syn keyword dAsmOpCode contained subpd subps subsd subss sysenter
syn keyword dAsmOpCode contained sysexit test ucomisd ucomiss ud2
syn keyword dAsmOpCode contained unpckhpd unpckhps unpcklpd unpcklps verr
syn keyword dAsmOpCode contained verw wait wbinvd wrmsr xadd
syn keyword dAsmOpCode contained xchg xlat xlatb xor xorpd
syn keyword dAsmOpCode contained xorps
syn keyword dAsmOpCode contained addsubpd addsubps fisttp haddpd haddps
syn keyword dAsmOpCode contained hsubpd hsubps lddqu monitor movddup
syn keyword dAsmOpCode contained movshdup movsldup mwait
syn keyword dAsmOpCode contained pavgusb pf2id pfacc pfadd pfcmpeq
syn keyword dAsmOpCode contained pfcmpge pfcmpgt pfmax pfmin pfmul
syn keyword dAsmOpCode contained pfnacc pfpnacc pfrcp pfrcpit1 pfrcpit2
syn keyword dAsmOpCode contained pfrsqit1 pfrsqrt pfsub pfsubr pi2fd
syn keyword dAsmOpCode contained pmulhrw pswapd
syn keyword dAsmOpCode contained aaa aad aam aas
syn keyword dAsmOpCode contained add addpd addps addsd
syn keyword dAsmOpCode contained and andnpd andnps andpd
syn keyword dAsmOpCode contained arpl bound bsf bsr
syn keyword dAsmOpCode contained bt btc btr bts
syn keyword dAsmOpCode contained call bswap andps addss
syn keyword dAsmOpCode contained cbw cdq clc cld
syn keyword dAsmOpCode contained cli clts cmc cmova
syn keyword dAsmOpCode contained cmovb cmovbe cmovc cmove
syn keyword dAsmOpCode contained cmovge cmovl cmovle cmovna
syn keyword dAsmOpCode contained cmovnae cmovg cmovae clflush
syn keyword dAsmOpCode contained cmovnb cmovnbe cmovnc cmovne
syn keyword dAsmOpCode contained cmovnge cmovnl cmovnle cmovno
syn keyword dAsmOpCode contained cmovns cmovnz cmovo cmovp
syn keyword dAsmOpCode contained cmovpo cmovs cmovz cmp
syn keyword dAsmOpCode contained cmppd cmovpe cmovnp cmovng
syn keyword dAsmOpCode contained cmpps cmps cmpsb cmpsd
syn keyword dAsmOpCode contained cmpsw cmpxch8b cmpxchg comisd
syn keyword dAsmOpCode contained cpuid cvtdq2pd cvtdq2ps cvtpd2dq
syn keyword dAsmOpCode contained cvtpd2ps cvtpi2pd cvtpi2ps cvtps2dq
syn keyword dAsmOpCode contained cvtps2pd cvtpd2pi comiss cmpss
syn keyword dAsmOpCode contained cvtps2pi cvtsd2si cvtsd2ss cvtsi2sd
syn keyword dAsmOpCode contained cvtss2sd cvtss2si cvttpd2dq cvttpd2pi
syn keyword dAsmOpCode contained cvttps2pi cvttsd2si cvttss2si cwd
syn keyword dAsmOpCode contained da daa das db
syn keyword dAsmOpCode contained dd cwde cvttps2dq cvtsi2ss
syn keyword dAsmOpCode contained de dec df di
syn keyword dAsmOpCode contained divpd divps divsd divss
syn keyword dAsmOpCode contained dq ds dt dw
syn keyword dAsmOpCode contained enter f2xm1 fabs fadd
syn keyword dAsmOpCode contained faddp emms dl div
syn keyword dAsmOpCode contained fbld fbstp fchs fclex
syn keyword dAsmOpCode contained fcmovbe fcmove fcmovnb fcmovnbe
syn keyword dAsmOpCode contained fcmovnu fcmovu fcom fcomi
syn keyword dAsmOpCode contained fcomp fcompp fcos fdecstp
syn keyword dAsmOpCode contained fdisi fcomip fcmovne fcmovb
syn keyword dAsmOpCode contained fdiv fdivp fdivr fdivrp
syn keyword dAsmOpCode contained ffree fiadd ficom ficomp
syn keyword dAsmOpCode contained fidivr fild fimul fincstp
syn keyword dAsmOpCode contained fist fistp fisub fisubr
syn keyword dAsmOpCode contained fld finit fidiv feni
syn keyword dAsmOpCode contained fld1 fldcw fldenv fldl2e
syn keyword dAsmOpCode contained fldlg2 fldln2 fldpi fldz
syn keyword dAsmOpCode contained fmulp fnclex fndisi fneni
syn keyword dAsmOpCode contained fnop fnsave fnstcw fnstenv
syn keyword dAsmOpCode contained fnstsw fninit fmul fldl2t
syn keyword dAsmOpCode contained fpatan fprem fprem1 fptan
syn keyword dAsmOpCode contained frstor fsave fscale fsetpm
syn keyword dAsmOpCode contained fsincos fsqrt fst fstcw
syn keyword dAsmOpCode contained fstp fstsw fsub fsubp
syn keyword dAsmOpCode contained fsubr fstenv fsin frndint
syn keyword dAsmOpCode contained fsubrp ftst fucom fucomi
syn keyword dAsmOpCode contained fucomp fucompp fwait fxam
syn keyword dAsmOpCode contained fxrstor fxsave fxtract fyl2x
syn keyword dAsmOpCode contained hlt idiv imul in
syn keyword dAsmOpCode contained inc fyl2xp1 fxch fucomip
syn keyword dAsmOpCode contained ins insb insd insw
syn keyword dAsmOpCode contained into invd invlpg iret
syn keyword dAsmOpCode contained ja jae jb jbe
syn keyword dAsmOpCode contained jcxz je jecxz jg
syn keyword dAsmOpCode contained jge jc iretd int
syn keyword dAsmOpCode contained jl jle jmp jna
syn keyword dAsmOpCode contained jnb jnbe jnc jne
syn keyword dAsmOpCode contained jnge jnl jnle jno
syn keyword dAsmOpCode contained jns jnz jo jp
syn keyword dAsmOpCode contained jpe jnp jng jnae
syn keyword dAsmOpCode contained jpo js jz lahf
syn keyword dAsmOpCode contained ldmxcsr lds lea leave
syn keyword dAsmOpCode contained lfence lfs lgdt lgs
syn keyword dAsmOpCode contained lldt lmsw lock lods
syn keyword dAsmOpCode contained lodsb lidt les lar
syn keyword dAsmOpCode contained lodsd lodsw loop loope
syn keyword dAsmOpCode contained loopnz loopz lsl lss
syn keyword dAsmOpCode contained maskmovdqu maskmovq maxpd maxps
syn keyword dAsmOpCode contained maxss mfence minpd minps
syn keyword dAsmOpCode contained minsd maxsd ltr loopne
syn keyword dAsmOpCode contained minss mov movapd movaps
syn keyword dAsmOpCode contained movdq2q movdqa movdqu movhlps
syn keyword dAsmOpCode contained movhps movlhps movlpd movlps
syn keyword dAsmOpCode contained movmskps movntdq movnti movntpd
syn keyword dAsmOpCode contained movntps movmskpd movhpd movd
syn keyword dAsmOpCode contained movntq movq movq2dq movs
syn keyword dAsmOpCode contained movsd movss movsw movsx
syn keyword dAsmOpCode contained movups movzx mul mulpd
syn keyword dAsmOpCode contained mulsd mulss neg nop
syn keyword dAsmOpCode contained not mulps movupd movsb
syn keyword dAsmOpCode contained or orpd orps out
syn keyword dAsmOpCode contained outsb outsd outsw packssdw
syn keyword dAsmOpCode contained packuswb paddb paddd paddq
syn keyword dAsmOpCode contained paddsw paddusb paddusw paddw
syn keyword dAsmOpCode contained pand paddsb packsswb outs
syn keyword dAsmOpCode contained pandn pavgb pavgw pcmpeqb
syn keyword dAsmOpCode contained pcmpeqw pcmpgtb pcmpgtd pcmpgtw
syn keyword dAsmOpCode contained pinsrw pmaddwd pmaxsw pmaxub
syn keyword dAsmOpCode contained pminub pmovmskb pmulhuw pmulhw
syn keyword dAsmOpCode contained pmullw pminsw pextrw pcmpeqd
syn keyword dAsmOpCode contained pmuludq pop popa popad
syn keyword dAsmOpCode contained popfd por prefetchnta prefetcht0
syn keyword dAsmOpCode contained prefetcht2 psadbw pshufd pshufhw
syn keyword dAsmOpCode contained pshufw pslld pslldq psllq
syn keyword dAsmOpCode contained psllw pshuflw prefetcht1 popf
syn keyword dAsmOpCode contained psrad psraw psrld psrldq
syn keyword dAsmOpCode contained psrlw psubb psubd psubq
syn keyword dAsmOpCode contained psubsw psubusb psubusw psubw
syn keyword dAsmOpCode contained punpckhdq punpckhqdq punpckhwd punpcklbw
syn keyword dAsmOpCode contained punpckldq punpckhbw psubsb psrlq
syn keyword dAsmOpCode contained punpcklqdq punpcklwd push pusha
syn keyword dAsmOpCode contained pushf pushfd pxor rcl
syn keyword dAsmOpCode contained rcpss rcr rdmsr rdpmc
syn keyword dAsmOpCode contained rep repe repne repnz
syn keyword dAsmOpCode contained repz rdtsc rcpps pushad
syn keyword dAsmOpCode contained ret retf rol ror
syn keyword dAsmOpCode contained rsqrtps rsqrtss sahf sal
syn keyword dAsmOpCode contained sbb scas scasb scasd
syn keyword dAsmOpCode contained seta setae setb setbe
syn keyword dAsmOpCode contained setc scasw sar rsm
syn keyword dAsmOpCode contained sete setg setge setl
syn keyword dAsmOpCode contained setna setnae setnb setnbe
syn keyword dAsmOpCode contained setne setng setnge setnl
syn keyword dAsmOpCode contained setno setnp setns setnz
syn keyword dAsmOpCode contained seto setnle setnc setle
syn keyword dAsmOpCode contained setp setpe setpo sets
syn keyword dAsmOpCode contained sfence sgdt shl shld
syn keyword dAsmOpCode contained shrd shufpd shufps sidt
syn keyword dAsmOpCode contained smsw sqrtpd sqrtps sqrtsd
syn keyword dAsmOpCode contained sqrtss sldt shr setz
syn keyword dAsmOpCode contained stc std sti stmxcsr
syn keyword dAsmOpCode contained stosb stosd stosw str
syn keyword dAsmOpCode contained subpd subps subsd subss
syn keyword dAsmOpCode contained sysexit test ucomisd ucomiss
syn keyword dAsmOpCode contained ud2 sysenter sub stos
syn keyword dAsmOpCode contained unpckhpd unpckhps unpcklpd unpcklps
syn keyword dAsmOpCode contained verw wbinvd wrmsr xadd
syn keyword dAsmOpCode contained xchg xlatb xor xorpd
syn keyword dAsmOpCode contained xorps pfrcpit1 pfmin movddup
syn keyword dAsmOpCode contained addsubpd addsubps fisttp haddps
syn keyword dAsmOpCode contained hsubpd hsubps lddqu monitor
syn keyword dAsmOpCode contained haddpd xlat wait verr
syn keyword dAsmOpCode contained movshdup movsldup mwait pfcmpeq
syn keyword dAsmOpCode contained pavgusb pf2id pfacc pfadd
syn keyword dAsmOpCode contained pfcmpge pfcmpgt pfmax pfmul
syn keyword dAsmOpCode contained pfnacc pfpnacc pfrcp pfrcpit1
syn keyword dAsmOpCode contained pfrsqit1 pfrsqrt pfsub pfsubr
syn keyword dAsmOpCode contained pmulhrw pswapd syscall sysret
syn keyword dAsmOpCode contained vpmuldq xgetbv cmpxchg8b cmpxchg16b
syn keyword dAsmOpCode contained pabsb pabsd pabsw palignr
syn keyword dAsmOpCode contained phaddd phaddsw phaddw phsubd
syn keyword dAsmOpCode contained phsubsw phsubw pmaddubsw pmulhrsw
syn keyword dAsmOpCode contained pshufb psignb psignd psignw
syn keyword dAsmOpCode contained popfq pushfq blendpd blendps
syn keyword dAsmOpCode contained blendvpd blendvps extractps insertps
syn keyword dAsmOpCode contained movntdqa mpsadbw packusdw pblendvb
syn keyword dAsmOpCode contained pblendw pcmpeqq pextrb pextrd
syn keyword dAsmOpCode contained pextrq phminposuw pinsrb pinsrd
syn keyword dAsmOpCode contained pinsrq pmaxsb pmaxsd pmaxud
syn keyword dAsmOpCode contained pmaxuw pminsb pminsd pminud
syn keyword dAsmOpCode contained pminuw pmulld ptest roundpd
syn keyword dAsmOpCode contained roundps roundsd roundss pmuldq
syn keyword dAsmOpCode contained pmovsxbd pmovsxdq pmovzxbq pmovzxdq
syn keyword dAsmOpCode contained pmovsxbq pmovsxwd pmovzxbq pmovzxwd
syn keyword dAsmOpCode contained pmovsxbw pmovsxwq pmovzxbw pmovzxwq
syn keyword dAsmOpCode contained crc32 pcmpestri pcmpestrm pcmpgtq
syn keyword dAsmOpCode contained pcmpistri pcmpistrm popcnt pi2fd
syn keyword dAsmOpCode contained adc
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2013 Jan 03
" Last Change: 2013 May 05
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debchangelog.vim
" Standard syntax initialization
@@ -19,7 +19,7 @@ syn case ignore
" Define some common expressions we can use later on
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
syn match debchangelogUrgency contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(squeeze)-%(backports%(-sloppy)=|volatile)|%(hardy|lucid|oneiric|precise|quantal|raring)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile)|wheezy-backports|%(lucid|precise|quantal|raring|saucy)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogVersion contained "(.\{-})"
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"

View File

@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2012 Dec 31
" Last Change: 2013 May 05
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim
" Standard syntax initialization
@@ -38,7 +38,7 @@ syn match debcontrolDmUpload contained "\cyes"
syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$"
syn match debcontrolVcsGit contained "\v%(git|http)://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
syn match debcontrolVcsGit contained "\v%(git|http)://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?%(\s+-b\s+[^ ~^:?*[\\]+)?$"
" An email address
syn match debcontrolEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"

View File

@@ -2,7 +2,7 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2013 Jan 03
" Last Change: 2013 May 05
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debsources.vim
" Standard syntax initialization
@@ -23,7 +23,7 @@ syn match debsourcesComment /#.*/ contains=@Spell
" Match uri's
syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(squeeze\|wheezy\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|hardy\|lucid\|oneiric\|precise\|quantal\|raring\)\([-[:alnum:]_./]*\)+
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(squeeze\|wheezy\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|lucid\|precise\|quantal\|raring\|saucy\)\([-[:alnum:]_./]*\)+
" Associate our matches and regions with pretty colours
hi def link debsourcesLine Error

View File

@@ -1,126 +1,175 @@
" Vim syntax file
" Language: Erlang
" Author: Oscar Hellström <oscar@oscarh.net> (http://oscar.hellstrom.st)
" Contributors: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
" Language: Erlang (http://www.erlang.org)
" Maintainer: Csaba Hoch <csaba.hoch@gmail.com>
" Former Maintainer: Kreąimir Marľić (Kresimir Marzic) <kmarzic@fly.srk.fer.hr>
" Last Update: 2013-Mar-07
" License: Vim license
" Version: 2011/09/11
" URL: https://github.com/hcs42/vim-erlang
if exists("b:current_syntax")
finish
else
let b:current_syntax = "erlang"
" Customization:
"
" There are two optional sets of highlighting:
"
" 1. The BIFs (built-in functions) are highlighted by default. To disable
" this, put the following line in your vimrc:
"
" let g:erlang_highlight_bifs = 0
"
" 2. To enable highlighting some special atoms, put this in your vimrc:
"
" let g:erlang_highlight_special_atoms = 1
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
if !exists("g:erlang_highlight_bif")
let g:erlang_highlight_bif = 1
endif
" Erlang is case sensitive
" Case sensitive
syn case match
" Match groups
syn match erlangStringModifier /\\./ contained
syn match erlangStringModifier /\~\%(-\?[0-9*]\+\)\?\%(\.[0-9*]\+\..\?\)\?\%(c\|f\|e\|g\|s\|w\|p\|W\|P\|B\|X\|#\|b\|+\|n\|i\)/ contained
syn match erlangModifier /\$\\\?./
syn match erlangInteger /\<\%([0-9]\+#[0-9a-fA-F]\+\|[0-9]\+\)\>/
syn match erlangFloat /\<[0-9]\+\.[0-9]\+\%(e-\?[0-9]\+\)\?\>/
syn keyword erlangTodo TODO FIXME XXX contained
syn match erlangComment /%.*$/ contains=@Spell,erlangTodo,erlangAnnotation
syn match erlangAnnotation /\%(%\s\)\@<=@\%(author\|clear\|copyright\|deprecated\|doc\|docfile\|end\|equiv\|headerfile\|hidden\|private\|reference\|see\|since\|spec\|throws\|title\|todo\|TODO\|type\|version\)/ contained
syn match erlangAnnotation /`[^']\+'/ contained
syn keyword erlangKeyword band bor bnot bsl bsr bxor div rem xor
syn keyword erlangKeyword try catch begin receive after cond fun let query
syn keyword erlangConditional case if of end
syn keyword erlangConditional not and or andalso orelse
syn keyword erlangConditional when
syn keyword erlangBoolean true false
syn keyword erlangGuard is_list is_alive is_atom is_binary is_bitstring is_boolean is_tuple is_number is_integer is_float is_function is_constant is_pid is_port is_reference is_record is_process_alive
syn match erlangOperator /\/\|*\|+\|-\|++\|--/
syn match erlangOperator /->\|<-\|||\||\|!\|=/
syn match erlangOperator /=:=\|==\|\/=\|=\/=\|<\|>\|=<\|>=/
syn keyword erlangOperator div rem
syn region erlangString start=/"/ end=/"/ skip=/\\/ contains=@Spell,erlangStringModifier
syn match erlangVariable /\<[A-Z_]\w*\>/
syn match erlangAtom /\%(\%(^-\)\|#\)\@<!\<[a-z][A-Za-z0-9_]*\>\%(\s*[(:]\)\@!/
syn match erlangAtom /\\\@<!'[^']*\\\@<!'/
syn match erlangRecord /#\w\+/
syn match erlangTuple /{\|}/
syn match erlangList /\[\|\]/
syn match erlangAttribute /^-\%(vsn\|author\|copyright\|compile\|deprecated\|module\|export\|import\|behaviour\|behavior\|export_type\|ignore_xref\|on_load\)\s*(\@=/
syn match erlangInclude /^-include\%(_lib\)\?\s*(\@=/
syn match erlangRecordDef /^-record\s*(\@=/
syn match erlangDefine /^-\%(define\|undef\)\s*(\@=/
syn match erlangPreCondit /^-\%(ifdef\|ifndef\|else\|endif\)\%(\s*(\@=\)\?/
syn match erlangType /^-\%(spec\|type\)[( ]\@=/
syn match erlangMacro /\%(-define(\)\@<=\w\+/
syn match erlangMacro /?\??\w\+/
syn match erlangBitType /\%(\/\|-\)\@<=\%(bits\|bitstring\|binary\|integer\|float\|unit\)\>/
syn match erlangBitSize /:\@<=[0-9]\+/
syn match erlangBinary /<<\|>>/
" BIFs
syn match erlangBIF /\%([^:0-9A-Za-z_]\|\<erlang:\)\@<=\%(abs\|apply\|atom_to_binary\|atom_to_list\|binary_part\|binary_to_atom\|binary_to_existing_atom\|binary_to_list\|binary_to_term\|bit_size\|bitstring_to_list\|byte_size\|check_process_code\|date\|delete_module\|demonitor\|disconnect_node\|element\|erase\|exit\|float\|float_to_list\|garbage_collect\|get\|get_keys\|group_leader\|hd\|integer_to_list\|iolist_size\|iolist_to_binary\|is_alive\|is_atom\|is_binary\|is_bitstring\|is_boolean\|is_float\|is_function\|is_integer\|is_list\|is_number\|is_pid\|is_port\|is_process_alive\|is_record\|is_reference\|is_tuple\|length\|link\|list_to_atom\|list_to_binary\|list_to_bitstring\|list_to_existing_atom\|list_to_float\|list_to_integer\|list_to_pid\|list_to_tuple\|load_module\|make_ref\|max\|min\|module_loaded\|monitor\|monitor_node\|node\|nodes\|now\|open_port\|pid_to_list\|port_close\|port_command\|port_connect\|port_control\|pre_loaded\|processes\|process_flag\|process_info\|purge_module\|put\|register\|registered\|round\|self\|setelement\|size\|spawn\|spawn_link\|spawn_monitor\|spawn_opt\|split_binary\|statistics\|term_to_binary\|time\|tl\|trunc\|tuple_size\|tuple_to_list\|unlink\|unregister\|whereis\)\%((\|\/[0-9]\)\@=/
syn match erlangBIF /\<\%(erlang:\)\@<=\%(append_element\|bump_reductions\|cancel_timer\|decode_packet\|display\|function_exported\|fun_info\|fun_to_list\|get_cookie\|get_stacktrace\|hash\|is_builtin\|loaded\|load_nif\|localtime\|localtime_to_universaltime\|make_tuple\|memory\|monitor_node\|phash\|port_call\|port_info\|ports\|port_to_list\|process_display\|read_timer\|ref_to_list\|resume_process\|send\|send_after\|send_nosuspend\|set_cookie\|start_timer\|suspend_process\|system_flag\|system_info\|system_monitor\|system_profile\|trace\|trace_delivered\|trace_info\|trace_pattern\|universaltime\|universaltime_to_localtime\|yield\)(\@=/
syn match erlangGBIF /erlang\%(:\w\)\@=/
" Link Erlang stuff to Vim groups
hi link erlangTodo Todo
hi link erlangString String
hi link erlangNoSpellString String
hi link erlangModifier SpecialChar
hi link erlangStringModifier SpecialChar
hi link erlangComment Comment
hi link erlangAnnotation Special
hi link erlangVariable Identifier
hi link erlangInclude Include
hi link erlangRecordDef Keyword
hi link erlangAttribute Keyword
hi link erlangKeyword Keyword
hi link erlangMacro Macro
hi link erlangDefine Define
hi link erlangPreCondit PreCondit
hi link erlangPreProc PreProc
hi link erlangDelimiter Delimiter
hi link erlangBitDelimiter Normal
hi link erlangOperator Operator
hi link erlangConditional Conditional
hi link erlangGuard Conditional
hi link erlangBoolean Boolean
hi link erlangAtom Constant
hi link erlangRecord Structure
hi link erlangInteger Number
hi link erlangFloat Number
hi link erlangFloat Number
hi link erlangFloat Number
hi link erlangFloat Number
hi link erlangHex Number
hi link erlangFun Keyword
hi link erlangList Delimiter
hi link erlangTuple Delimiter
hi link erlangBinary Keyword
hi link erlangBitVariable Identifier
hi link erlangBitType Type
hi link erlangType Type
hi link erlangBitSize Number
" Optional highlighting
if g:erlang_highlight_bif
hi link erlangBIF Keyword
hi link erlangGBIF Keyword
if version >= 600
setlocal iskeyword+=$,@-@
endif
" Comments
syn match erlangComment '%.*$' contains=erlangCommentAnnotation,erlangTodo
syn match erlangCommentAnnotation ' \@<=@\%(clear\|docfile\|end\|headerfile\|todo\|TODO\|type\|author\|copyright\|doc\|reference\|see\|since\|title\|version\|deprecated\|hidden\|private\|equiv\|spec\|throws\)' contained
syn match erlangCommentAnnotation /`[^']*'/ contained
syn keyword erlangTodo TODO FIXME XXX contained
" Numbers (minimum base is 2, maximum is 36.)
syn match erlangNumberInteger '\<\d\+\>'
syn match erlangNumberInteger '\<\%([2-9]\|[12]\d\|3[0-6]\)\+#[[:alnum:]]\+\>'
syn match erlangNumberFloat '\<\d\+\.\d\+\%([eE][+-]\=\d\+\)\=\>'
" Strings, atoms, characters
syn region erlangString start=/"/ end=/"/ contains=erlangStringModifier
syn region erlangQuotedAtom start=/'/ end=/'/ contains=erlangQuotedAtomModifier
syn match erlangStringModifier '\~\a\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)' contained
syn match erlangQuotedAtomModifier '\~\a\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)' contained
syn match erlangModifier '\$\%([^\\]\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)\)'
" Operators
syn match erlangOperator '==\|=:=\|/=\|=/=\|<\|=<\|>\|>=\|++\|--\|=\|!\|<-\|+\|-\|\*\|\/'
syn keyword erlangOperator div rem or xor bor bxor bsl bsr and band not bnot andalso orelse
" Separators
syn match erlangSeparator '(\|)\|{\|}\|\[\|]\||\|||\|;\|,\|?\|#'
syn match erlangRightArrow '->'
" Functions call
syn match erlangFCall '\<\%(\a[[:alnum:]@]*\s*\.\s*\)*\a[[:alnum:]@]*\s*:\s*\a[[:alnum:]@]*\>'
" Constants and Directives
syn match erlangDirective '-\%(behaviour\|behavior\|compile\|define\|else\|endif\|export\|file\|ifdef\|ifndef\|import\|include_lib\|include\|module\|record\|undef\|author\|copyright\|doc\|vsn\|on_load\|export_type\)\>'
" Keywords
syn keyword erlangKeyword after begin case catch cond end fun if let of query receive when try
syn keyword erlangExtra true false
if !exists("g:erlang_highlight_bifs") || g:erlang_highlight_bifs == 1
" build-in-functions (BIFs)
syn keyword erlangBIF abs alive apply atom_to_binary atom_to_list binary_part binary_to_atom binary_to_existing_atom binary_to_float binary_to_integer bitstring_to_list binary_to_list binary_to_term bit_size byte_size check_old_code check_process_code concat_binary date delete_module demonitor disconnect_node element erase error exit float float_to_binary float_to_list garbage_collect get get_keys group_leader halt hd integer_to_binary integer_to_list iolist_to_binary iolist_size is_alive is_atom is_binary is_bitstring is_boolean is_float is_function is_integer is_list is_number is_pid is_port is_process_alive is_record is_reference is_tuple length link list_to_atom list_to_binary list_to_bitstring list_to_existing_atom list_to_float list_to_integer list_to_pid list_to_tuple load_module make_ref max min module_loaded monitor monitor_node node nodes now open_port pid_to_list port_close port_command port_connect pre_loaded process_flag process_flag process_info process purge_module put register registered round self setelement size spawn spawn_link spawn_monitor spawn_opt split_binary statistics term_to_binary throw time tl trunc tuple_size tuple_to_list unlink unregister whereis
endif
if exists("g:erlang_highlight_special_atoms") && g:erlang_highlight_special_atoms == 1
" Processes
syn keyword erlangProcess creation current_function dictionary
syn keyword erlangProcess group_leader heap_size high initial_call
syn keyword erlangProcess linked low memory_in_use message_queue
syn keyword erlangProcess net_kernel node normal priority
syn keyword erlangProcess reductions registered_name runnable
syn keyword erlangProcess running stack_trace status timer
syn keyword erlangProcess trap_exit waiting
" Ports
syn keyword erlangPort command count_in count_out creation in
syn keyword erlangPort in_format linked node out owner packeting
" Nodes
syn keyword erlangNode atom_tables communicating creation
syn keyword erlangNode current_gc current_reductions current_runtime
syn keyword erlangNode current_wall_clock distribution_port
syn keyword erlangNode entry_points error_handler friends
syn keyword erlangNode garbage_collection magic_cookie magic_cookies
syn keyword erlangNode module_table monitored_nodes name next_ref
syn keyword erlangNode ports preloaded processes reductions
syn keyword erlangNode ref_state registry runtime wall_clock
" Reserved
syn keyword erlangReserved apply_lambda module_info module_lambdas
syn keyword erlangReserved record record_index record_info
" Extras
syn keyword erlangExtra badarg nocookie
" Signals
syn keyword erlangSignal badsig kill killed exit normal
endif
" Sync at the beginning of functions: if this is not used, multiline string
" are not always recognized
syn sync match erlangSync grouphere NONE "^[a-z]\s*("
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists ("did_erlang_inits")
if version < 508
let did_erlang_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" erlang_characters
HiLink erlangComment Comment
HiLink erlangCommentAnnotation Special
HiLink erlangTodo Todo
HiLink erlangSeparator Normal
HiLink erlangOperator Operator
HiLink erlangRightArrow Operator
HiLink erlangStartString String
HiLink erlangString String
HiLink erlangStringModifier Special
HiLink erlangStartQuotedAtom Type
HiLink erlangQuotedAtom Type
HiLink erlangQuotedAtomModifier Special
HiLink erlangNumberInteger Number
HiLink erlangNumberFloat Float
HiLink erlangNumberHex Number
HiLink erlangModifier Special
" erlang_functions
HiLink erlangFCall Function
HiLink erlangBIF Function
" erlang_keywords
HiLink erlangDirective Type
HiLink erlangKeyword Keyword
HiLink erlangProcess Special
HiLink erlangPort Special
HiLink erlangNode Special
HiLink erlangReserved Statement
HiLink erlangExtra Statement
HiLink erlangSignal Statement
delcommand HiLink
endif
let b:current_syntax = "erlang"
" vim: sw=2 et

View File

@@ -1,9 +1,9 @@
" Vim syntax file
" Language: fstab file
" Maintaner: Radu Dineiu <radu.dineiu@gmail.com>
" URL: http://ld.yi.org/vim/fstab.vim
" Last Change: 2009 Feb 04
" Version: 0.93
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
" URL: https://raw.github.com/rid9/vim-fstab/master/fstab.vim
" Last Change: 2013 May 21
" Version: 1.0
"
" Credits:
" David Necas (Yeti) <yeti@physics.muni.cz>
@@ -11,10 +11,13 @@
" Georgi Georgiev <chutz@gg3.net>
" James Vega <jamessan@debian.org>
" Elias Probst <mail@eliasprobst.eu>
"
" Options:
" let fstab_unknown_fs_errors = 1
" highlight unknown filesystems as errors
"
" let fstab_unknown_device_errors = 0
" do not highlight unknown devices as errors
if version < 600
syntax clear
@@ -22,15 +25,18 @@ elseif exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" General
syn cluster fsGeneralCluster contains=fsComment
syn match fsComment /\s*#.*/
syn match fsComment /\s*#.*/ contains=@Spell
syn match fsOperator /[,=:#]/
" Device
syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError
syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained
syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts sysfs usbfs
syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs
syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel
syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID
syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs
@@ -47,7 +53,7 @@ syn keyword fsMountPointKeyword contained none swap
" Type
syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
syn match fsTypeUnknown /\s\+\zs\w\+/ contained
syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
syn keyword fsTypeKeyword contained adfs ados affs anon_inodefs atfs audiofs auto autofs bdev befs bfs btrfs binfmt_misc cd9660 cfs cgroup cifs coda configfs cpuset cramfs devfs devpts devtmpfs e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse fuseblk fusectl hfs hpfs hugetlbfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix mqueue msdos ncpfs nfs nfsd nilfs2 none ntfs null nwfs overlay ovlfs pipefs portal proc procfs pstore ptyfs qnx4 reiserfs ramfs romfs securityfs shm smbfs squashfs sockfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xenfs xfs zisofs
" Options
" -------
@@ -71,6 +77,11 @@ syn match fsOptionsKeywords contained /\<\%(prefix\|volume\|root\)=/ nextgroup=f
syn match fsOptionsKeywords contained /\<bs=/ nextgroup=fsOptionsSize
syn keyword fsOptionsKeywords contained protect usemp verbose
" Options: btrfs
syn match fsOptionsKeywords contained /\<\%(subvol\|subvolid\|subvolrootid\|device\|compress\|compress-force\|fatal_errors\)=/ nextgroup=fsOptionsString
syn match fsOptionsKeywords contained /\<\%(max_inline\|alloc_start\|thread_pool\|metadata_ratio\|check_int_print_mask\)=/ nextgroup=fsOptionsNumber
syn keyword fsOptionsKeywords contained degraded nodatasum nodatacow nobarrier ssd ssd_spread noacl notreelog flushoncommit space_cache nospace_cache clear_cache user_subvol_rm_allowed autodefrag inode_cache enospc_debug recovery check_int check_int_data skip_balance discard
" Options: cd9660
syn keyword fsOptionsKeywords contained extatt gens norrip nostrictjoilet
@@ -84,7 +95,7 @@ syn match fsOptionsKeywords contained /\<\%(res[gu]id\|sb\)=/ nextgroup=fsOption
syn keyword fsOptionsExt2Check contained none normal strict
syn keyword fsOptionsExt2Errors contained continue panic
syn match fsOptionsExt2Errors contained /\<remount-ro\>/
syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf noacl nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr
syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr
" Options: ext3
syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt3Journal
@@ -92,7 +103,7 @@ syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt3Data
syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
syn keyword fsOptionsExt3Journal contained update inum
syn keyword fsOptionsExt3Data contained journal ordered writeback
syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl noacl
syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl
" Options: ext4
syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt4Journal
@@ -216,7 +227,7 @@ syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptions
syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained
" Whole line comments
syn match fsCommentLine /^#.*$/
syn match fsCommentLine /^#.*$/ contains=@Spell
if version >= 508 || !exists("did_config_syntax_inits")
if version < 508
@@ -241,7 +252,10 @@ if version >= 508 || !exists("did_config_syntax_inits")
HiLink fsTypeUnknown Error
endif
HiLink fsDeviceError Error
if !exists('fstab_unknown_device_errors') || fstab_unknown_device_errors == 1
HiLink fsDeviceError Error
endif
HiLink fsMountPointError Error
HiLink fsMountPointKeyword Keyword
HiLink fsFreqPassError Error
@@ -277,4 +291,7 @@ endif
let b:current_syntax = "fstab"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8 ft=vim

View File

@@ -2,7 +2,7 @@
" Language: git commit file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.git/COMMIT_EDITMSG
" Last Change: 2012 April 7
" Last Change: 2013 May 30
if exists("b:current_syntax")
finish

View File

@@ -2,7 +2,7 @@
" Language: git rebase --interactive
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: git-rebase-todo
" Last Change: 2012 April 7
" Last Change: 2013 May 30
if exists("b:current_syntax")
finish

69
runtime/syntax/gprof.vim Normal file
View File

@@ -0,0 +1,69 @@
" Vim syntax file
" Language: Syntax for Gprof Output
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
" Last Change: 2012 May 20
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
syn case match
syn sync minlines=100
" Flat profile
syn match gprofFlatProfileTitle
\ "^Flat profile:$"
syn region gprofFlatProfileHeader
\ start="^Each sample counts as.*"
\ end="^ time.*name\s*$"
syn region gprofFlatProfileTrailer
\ start="^\s*%\s\+the percentage of the total running time.*"
\ end="^\s*the gprof listing if it were to be printed\."
" Call graph
syn match gprofCallGraphTitle "Call graph (explanation follows)"
syn region gprofCallGraphHeader
\ start="^granularity: each sample hit covers.*"
\ end="^\s*index % time\s\+self\s\+children\s\+called\s\+name$"
syn match gprofCallGraphFunction "\s\+\(\d\+\.\d\+\s\+\)\{3}\([0-9+]\+\)\?\s\+[a-zA-Z_<].*\ze\["
syn match gprofCallGraphSeparator "^-\+$"
syn region gprofCallGraphTrailer
\ start="This table describes the call tree of the program"
\ end="^\s*the cycle.$"
" Index
syn region gprofIndex
\ start="^Index by function name$"
\ end="\%$"
syn match gprofIndexFunctionTitle "^Index by function name$"
syn match gprofNumbers "^\s\+[0-9 ./+]\+"
syn match gprofFunctionIndex "\[\d\+\]"
syn match gprofSpecial "<\(spontaneous\|cycle \d\+\)>"
hi def link gprofFlatProfileTitle Title
hi def link gprofFlatProfileHeader Comment
hi def link gprofFlatProfileFunction Number
hi def link gprofFlatProfileTrailer Comment
hi def link gprofCallGraphTitle Title
hi def link gprofCallGraphHeader Comment
hi def link gprofFlatProfileFunction Number
hi def link gprofCallGraphFunction Special
hi def link gprofCallGraphTrailer Comment
hi def link gprofCallGraphSeparator Label
hi def link gprofFunctionIndex Label
hi def link gprofSpecial SpecialKey
hi def link gprofNumbers Number
hi def link gprofIndexFunctionTitle Title
let b:current_syntax = "gprof"
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@@ -2,7 +2,7 @@
" Language: Liquid
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.liquid
" Last Change: 2010 May 21
" Last Change: 2013 May 30
if exists('b:current_syntax')
finish
@@ -71,8 +71,9 @@ endif
syn region liquidStatement matchgroup=liquidDelimiter start="{%" end="%}" contains=@liquidStatement containedin=ALLBUT,@liquidExempt keepend
syn region liquidExpression matchgroup=liquidDelimiter start="{{" end="}}" contains=@liquidExpression containedin=ALLBUT,@liquidExempt keepend
syn region liquidComment matchgroup=liquidDelimiter start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=liquidTodo,@Spell containedin=ALLBUT,@liquidExempt keepend
syn region liquidRaw matchgroup=liquidDelimiter start="{%\s*raw\s*%}" end="{%\s*endraw\s*%}" contains=TOP,@liquidExempt containedin=ALLBUT,@liquidExempt keepend
syn cluster liquidExempt contains=liquidStatement,liquidExpression,liquidComment,@liquidStatement,liquidYamlHead
syn cluster liquidExempt contains=liquidStatement,liquidExpression,liquidComment,liquidRaw,@liquidStatement,liquidYamlHead
syn cluster liquidStatement contains=liquidConditional,liquidRepeat,liquidKeyword,@liquidExpression
syn cluster liquidExpression contains=liquidOperator,liquidString,liquidNumber,liquidFloat,liquidBoolean,liquidNull,liquidEmpty,liquidPipe,liquidForloop

View File

@@ -2,50 +2,66 @@
" Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.markdown
" Last Change: 2010 May 21
" Last Change: 2013 May 30
if exists("b:current_syntax")
finish
endif
if !exists('main_syntax')
let main_syntax = 'markdown'
endif
runtime! syntax/html.vim
unlet! b:current_syntax
if !exists('g:markdown_fenced_languages')
let g:markdown_fenced_languages = []
endif
for s:type in map(copy(g:markdown_fenced_languages),'matchstr(v:val,"[^=]*$")')
if s:type =~ '\.'
let b:{matchstr(s:type,'[^.]*')}_subtype = matchstr(s:type,'\.\zs.*')
endif
exe 'syn include @markdownHighlight'.substitute(s:type,'\.','','g').' syntax/'.matchstr(s:type,'[^.]*').'.vim'
unlet! b:current_syntax
endfor
unlet! s:type
syn sync minlines=10
syn case ignore
syn match markdownValid '[<>]\S\@!'
syn match markdownValid '[<>]\c[a-z/$!]\@!'
syn match markdownValid '&\%(#\=\w*;\)\@!'
syn match markdownLineStart "^[<@]\@!" nextgroup=@markdownBlock
syn match markdownLineStart "^[<@]\@!" nextgroup=@markdownBlock,htmlSpecialChar
syn cluster markdownBlock contains=markdownH1,markdownH2,markdownH3,markdownH4,markdownH5,markdownH6,markdownBlockquote,markdownListMarker,markdownOrderedListMarker,markdownCodeBlock,markdownRule
syn cluster markdownInline contains=markdownLineBreak,markdownLinkText,markdownItalic,markdownBold,markdownCode,markdownEscape,@htmlTop
syn cluster markdownInline contains=markdownLineBreak,markdownLinkText,markdownItalic,markdownBold,markdownCode,markdownEscape,@htmlTop,markdownError
syn match markdownH1 ".\+\n=\+$" contained contains=@markdownInline,markdownHeadingRule
syn match markdownH2 ".\+\n-\+$" contained contains=@markdownInline,markdownHeadingRule
syn match markdownH1 "^.\+\n=\+$" contained contains=@markdownInline,markdownHeadingRule,markdownAutomaticLink
syn match markdownH2 "^.\+\n-\+$" contained contains=@markdownInline,markdownHeadingRule,markdownAutomaticLink
syn match markdownHeadingRule "^[=-]\+$" contained
syn region markdownH1 matchgroup=markdownHeadingDelimiter start="##\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
syn region markdownH2 matchgroup=markdownHeadingDelimiter start="###\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
syn region markdownH3 matchgroup=markdownHeadingDelimiter start="####\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
syn region markdownH4 matchgroup=markdownHeadingDelimiter start="#####\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
syn region markdownH5 matchgroup=markdownHeadingDelimiter start="######\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
syn region markdownH6 matchgroup=markdownHeadingDelimiter start="#######\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
syn region markdownH1 matchgroup=markdownHeadingDelimiter start="##\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH2 matchgroup=markdownHeadingDelimiter start="###\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH3 matchgroup=markdownHeadingDelimiter start="####\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH4 matchgroup=markdownHeadingDelimiter start="#####\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH5 matchgroup=markdownHeadingDelimiter start="######\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH6 matchgroup=markdownHeadingDelimiter start="#######\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn match markdownBlockquote ">\s" contained nextgroup=@markdownBlock
syn match markdownBlockquote ">\%(\s\|$\)" contained nextgroup=@markdownBlock
syn region markdownCodeBlock start=" \|\t" end="$" contained
" TODO: real nesting
syn match markdownListMarker " \{0,4\}[-*+]\%(\s\+\S\)\@=" contained
syn match markdownOrderedListMarker " \{0,4}\<\d\+\.\%(\s*\S\)\@=" contained
syn match markdownListMarker "\%(\t\| \{0,4\}\)[-*+]\%(\s\+\S\)\@=" contained
syn match markdownOrderedListMarker "\%(\t\| \{0,4}\)\<\d\+\.\%(\s\+\S\)\@=" contained
syn match markdownRule "\* *\* *\*[ *]*$" contained
syn match markdownRule "- *- *-[ -]*$" contained
syn match markdownLineBreak "\s\{2,\}$"
syn match markdownLineBreak " \{2,\}$"
syn region markdownIdDeclaration matchgroup=markdownLinkDelimiter start="^ \{0,3\}!\=\[" end="\]:" oneline keepend nextgroup=markdownUrl skipwhite
syn match markdownUrl "\S\+" nextgroup=markdownUrlTitle skipwhite contained
@@ -61,14 +77,23 @@ syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+
syn region markdownItalic start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart
syn region markdownItalic start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart
syn region markdownBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart
syn region markdownBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart
syn region markdownBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart,markdownItalic
syn region markdownBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart,markdownItalic
syn region markdownBoldItalic start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend contains=markdownLineStart
syn region markdownBoldItalic start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" transparent keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="^\s*```.*$" end="^\s*```\ze\s*$" keepend
if main_syntax ==# 'markdown'
for s:type in g:markdown_fenced_languages
exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*```'.matchstr(s:type,'[^=]*').'\>.*$" end="^\s*```\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
endfor
unlet! s:type
endif
syn match markdownEscape "\\[][\\`*_{}()#+.!-]"
syn match markdownError "\w\@<=_\w\@="
hi def link markdownH1 htmlH1
hi def link markdownH2 htmlH2
@@ -99,7 +124,11 @@ hi def link markdownBoldItalic htmlBoldItalic
hi def link markdownCodeDelimiter Delimiter
hi def link markdownEscape Special
hi def link markdownError Error
let b:current_syntax = "markdown"
if main_syntax ==# 'markdown'
unlet main_syntax
endif
" vim:set sw=2:

View File

@@ -1,22 +1,24 @@
" Vim syntax file
" Language: Perl 5
" Maintainer: Andy Lester <andy@petdance.com>
" URL: http://github.com/petdance/vim-perl/tree/master
" Last Change: 2010-08-10
" Contributors: Andy Lester <andy@petdance.com>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Lukas Mai <l.mai.web.de>
" Nick Hibma <nick@van-laarhoven.org>
" Sonia Heimann <niania@netsurf.org>
" and many others.
" Language: Perl 5
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl/tree/master
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-05-11
" Contributors: Andy Lester <andy@petdance.com>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Lukas Mai <l.mai.web.de>
" Nick Hibma <nick@van-laarhoven.org>
" Sonia Heimann <niania@netsurf.org>
" Rob Hoelz <rob@hoelz.ro>
" and many others.
"
" Please download most recent version first before mailing
" Please download the most recent version first, before mailing
" any comments.
"
" The following parameters are available for tuning the
" perl syntax highlighting, with defaults given:
"
" unlet perl_include_pod
" let perl_include_pod = 1
" unlet perl_no_scope_in_variables
" unlet perl_no_extended_vars
" unlet perl_string_as_statement
@@ -27,21 +29,29 @@
" unlet perl_fold_blocks
" let perl_nofold_packages = 1
" let perl_nofold_subs = 1
" unlet perl_fold_anonymous_subs
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
if exists('&regexpengine')
let s:regexpengine=&regexpengine
set regexpengine=1
endif
" POD starts with ^=<word> and ends with ^=cut
if exists("perl_include_pod")
if !exists("perl_include_pod") || perl_include_pod == 1
" Include a while extra syntax file
syn include @Pod syntax/pod.vim
unlet b:current_syntax
if exists("perl_fold")
syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend fold
syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend fold
syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend fold extend
syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend fold extend
else
syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend
syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend
@@ -63,10 +73,13 @@ syn region perlGenericBlock matchgroup=perlGenericBlock start="{" end="}" conta
" All keywords
"
syn match perlConditional "\<\%(if\|elsif\|unless\|given\|when\|default\)\>"
syn match perlConditional "\<else\>" nextgroup=perlElseIfError skipwhite skipnl skipempty
syn match perlConditional "\<else\%(\%(\_s\*if\>\)\|\>\)" contains=perlElseIfError skipwhite skipnl skipempty
syn match perlRepeat "\<\%(while\|for\%(each\)\=\|do\|until\|continue\)\>"
syn match perlOperator "\<\%(defined\|undef\|eq\|ne\|[gl][et]\|cmp\|not\|and\|or\|xor\|not\|bless\|ref\|do\)\>"
syn match perlControl "\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>"
" for some reason, adding this as the nextgroup for perlControl fixes BEGIN
" folding issues...
syn match perlFakeGroup "" contained
syn match perlControl "\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>\_s*" nextgroup=perlFakeGroup
syn match perlStatementStorage "\<\%(my\|our\|local\|state\)\>"
syn match perlStatementControl "\<\%(return\|last\|next\|redo\|goto\|break\)\>"
@@ -93,9 +106,9 @@ syn match perlStatementTime "\<\%(gmtime\|localtime\|time\)\>"
syn match perlStatementMisc "\<\%(warn\|formline\|reset\|scalar\|prototype\|lock\|tied\=\|untie\)\>"
syn keyword perlTodo TODO TBD FIXME XXX NOTE contained
syn keyword perlTodo TODO TODO: TBD TBD: FIXME FIXME: XXX XXX: NOTE NOTE: contained
syn region perlStatementIndirObjWrap matchgroup=perlStatementIndirObj start="\<\%(map\|grep\|sort\|print\|system\|exec\)\>\s*{" end="}" contains=@perlTop,perlGenericBlock
syn region perlStatementIndirObjWrap matchgroup=perlStatementIndirObj start="\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*{" end="}" contains=@perlTop,perlGenericBlock extend
syn match perlLabel "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!"
@@ -146,14 +159,14 @@ if !exists("perl_no_extended_vars")
syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contains=perlVarSimpleMemberName contained
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contains=perlVarSimpleMemberName contained extend
syn match perlVarSimpleMemberName "\I\i*" contained
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod
syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod
endif
@@ -168,13 +181,13 @@ syn match perlFiledescStatement "\u\w*" contained
" Special characters in strings and matches
syn match perlSpecialString "\\\%(\o\{1,3}\|x\%({\x\+}\|\x\{1,2}\)\|c.\|[^cx]\)" contained extend
syn match perlSpecialStringU2 "\\." extend contained transparent contains=NONE
syn match perlSpecialStringU2 "\\." extend contained contains=NONE
syn match perlSpecialStringU "\\\\" contained
syn match perlSpecialMatch "\\[1-9]" contained extend
syn match perlSpecialMatch "\\g\%(\d\+\|{\%(-\=\d\+\|\h\w*\)}\)" contained
syn match perlSpecialMatch "\\k\%(<\h\w*>\|'\h\w*'\)" contained
syn match perlSpecialMatch "{\d\+\%(,\%(\d\+\)\=\)\=}" contained
syn match perlSpecialMatch "\[[]-]\=[^\[\]]*[]-]\=\]" contained
syn match perlSpecialMatch "\[[]-]\=[^\[\]]*[]-]\=\]" contained extend
syn match perlSpecialMatch "[+*()?.]" contained
syn match perlSpecialMatch "(?[#:=!]" contained
syn match perlSpecialMatch "(?[impsx]*\%(-[imsx]\+\)\=)" contained
@@ -186,10 +199,9 @@ syn match perlSpecialMatch "(\*\%(\%(PRUNE\|SKIP\|THEN\)\%(:[^)]*\)\=\|\%(MARK\
"
" Highlight lines with only whitespace (only in blank delimited here documents) as errors
syn match perlNotEmptyLine "^\s\+$" contained
" Highlight '} else if (...) {', it should be '} else { if (...) { ' or
" '} elsif (...) {'.
syn match perlElseIfError "\s\+if" contained
syn keyword perlElseIfError elseif
" Highlight "} else if (...) {", it should be "} else { if (...) { " or "} elsif (...) {"
syn match perlElseIfError "else\_s*if" containedin=perlConditional
syn keyword perlElseIfError elseif containedin=perlConditional
" Variable interpolation
"
@@ -217,32 +229,32 @@ syn match perlString "\<\%(v\d\+\%(\.\d\+\)*\|\d\+\%(\.\d\+\)\{2,}\)\>" contain
syn match perlVStringV "\<v" contained
syn region perlParensSQ start=+(+ end=+)+ extend contained transparent contains=perlParensSQ,@perlInterpSQ keepend
syn region perlBracketsSQ start=+\[+ end=+\]+ extend contained transparent contains=perlBracketsSQ,@perlInterpSQ keepend
syn region perlBracesSQ start=+{+ end=+}+ extend contained transparent contains=perlBracesSQ,@perlInterpSQ keepend
syn region perlAnglesSQ start=+<+ end=+>+ extend contained transparent contains=perlAnglesSQ,@perlInterpSQ keepend
syn region perlParensSQ start=+(+ end=+)+ extend contained contains=perlParensSQ,@perlInterpSQ keepend
syn region perlBracketsSQ start=+\[+ end=+\]+ extend contained contains=perlBracketsSQ,@perlInterpSQ keepend
syn region perlBracesSQ start=+{+ end=+}+ extend contained contains=perlBracesSQ,@perlInterpSQ keepend
syn region perlAnglesSQ start=+<+ end=+>+ extend contained contains=perlAnglesSQ,@perlInterpSQ keepend
syn region perlParensDQ start=+(+ end=+)+ extend contained transparent contains=perlParensDQ,@perlInterpDQ keepend
syn region perlBracketsDQ start=+\[+ end=+\]+ extend contained transparent contains=perlBracketsDQ,@perlInterpDQ keepend
syn region perlBracesDQ start=+{+ end=+}+ extend contained transparent contains=perlBracesDQ,@perlInterpDQ keepend
syn region perlAnglesDQ start=+<+ end=+>+ extend contained transparent contains=perlAnglesDQ,@perlInterpDQ keepend
syn region perlParensDQ start=+(+ end=+)+ extend contained contains=perlParensDQ,@perlInterpDQ keepend
syn region perlBracketsDQ start=+\[+ end=+\]+ extend contained contains=perlBracketsDQ,@perlInterpDQ keepend
syn region perlBracesDQ start=+{+ end=+}+ extend contained contains=perlBracesDQ,@perlInterpDQ keepend
syn region perlAnglesDQ start=+<+ end=+>+ extend contained contains=perlAnglesDQ,@perlInterpDQ keepend
" Simple version of searches and matches
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[cgimopsx]*+ contains=@perlInterpMatch keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[cgimopsx]*+ contains=@perlInterpMatch keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[cgimopsx]*+ contains=@perlInterpSQ keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[cgimopsx]*+ contains=@perlInterpSlash keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[cgimopsx]*+ contains=@perlInterpMatch,perlParensDQ keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgc]*+ contains=@perlInterpMatch keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgc]*+ contains=@perlInterpMatch keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgc]*+ contains=@perlInterpSQ keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgc]*+ contains=@perlInterpMatch,perlParensDQ keepend
" A special case for m{}, m<> and m[] which allows for comments and extra whitespace in the pattern
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[cgimopsx]*+ contains=@perlInterpMatch,perlComment,perlBracesDQ keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[cgimopsx]*+ contains=@perlInterpMatch,perlAnglesDQ keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][cgimopsx]*+ contains=@perlInterpMatch,perlComment,perlBracketsDQ keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracesDQ
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgc]*+ contains=@perlInterpMatch,perlAnglesDQ keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracketsDQ keepend
" Below some hacks to recognise the // variant. This is virtually impossible to catch in all
" cases as the / is used in so many other ways, but these should be the most obvious ones.
syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[cgimopsx]*+ contains=@perlInterpSlash
syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash
" Substitutions
@@ -254,13 +266,13 @@ syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s#+
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*(+ end=+)+ contains=@perlInterpMatch,perlParensDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[ecgimopsx]*+ keepend contained contains=@perlInterpDQ
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[ecgimopsx]*+ contained contains=@perlInterpDQ,perlParensDQ keepend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][ecgimopsx]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[ecgimopsx]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[ecgimopsx]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend
syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[ecgimopsx]*+ contained contains=@perlInterpSQ keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcer]*+ keepend contained contains=@perlInterpDQ
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlParensDQ keepend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend
syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcer]*+ contained contains=@perlInterpSQ keepend
" Translations
" perlMatch is the first part, perlTranslation* is the second, translator part.
@@ -270,48 +282,48 @@ syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]([{<]\)+ end=+\z1[cds]*+ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+(+ end=+)[cds]*+ contains=perlParensSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][cds]*+ contains=perlBracketsSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+{+ end=+}[cds]*+ contains=perlBracesSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+<+ end=+>[cds]*+ contains=perlAnglesSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]([{<]\)+ end=+\z1[cdsr]*+ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+(+ end=+)[cdsr]*+ contains=perlParensSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][cdsr]*+ contains=perlBracketsSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+{+ end=+}[cdsr]*+ contains=perlBracesSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+<+ end=+>[cdsr]*+ contains=perlAnglesSQ contained
" Strings and q, qq, qw and qr expressions
syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQ keepend
syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@perlInterpDQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q#+ end=+#+ contains=@perlInterpSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend
syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQ keepend extend
syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@perlInterpDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q#+ end=+#+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpDQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]#+ end=+#+ contains=@perlInterpDQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*(+ end=+)+ contains=@perlInterpDQ,perlParensDQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*\[+ end=+\]+ contains=@perlInterpDQ,perlBracketsDQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*{+ end=+}+ contains=@perlInterpDQ,perlBracesDQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*<+ end=+>+ contains=@perlInterpDQ,perlAnglesDQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]#+ end=+#+ contains=@perlInterpDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*(+ end=+)+ contains=@perlInterpDQ,perlParensDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*\[+ end=+\]+ contains=@perlInterpDQ,perlBracketsDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*{+ end=+}+ contains=@perlInterpDQ,perlBracesDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*<+ end=+>+ contains=@perlInterpDQ,perlAnglesDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw#+ end=+#+ contains=@perlInterpSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw#+ end=+#+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosx]*+ contains=@perlInterpMatch keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosx]*+ contains=@perlInterpSlash keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosx]*+ contains=@perlInterpMatch keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosx]*+ contains=@perlInterpSQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosx]*+ contains=@perlInterpMatch,perlParensDQ keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosx]*+ contains=@perlInterpMatch keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosx]*+ contains=@perlInterpSlash keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosx]*+ contains=@perlInterpMatch keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosx]*+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosx]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
" A special case for qr{}, qr<> and qr[] which allows for comments and extra whitespace in the pattern
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosx]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosx]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosx]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosx]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosx]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosx]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend
" Constructs such as print <<EOF [...] EOF, 'here' documents
"
@@ -319,14 +331,14 @@ syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s
" 'if $a' in 'print <<EOF if $a'). This is almost impossible to get right it
" seems due to the 'auto-extending nature' of regions.
if exists("perl_fold")
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ fold
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ fold
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ fold
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL fold
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ fold extend
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ fold extend
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ fold extend
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold extend
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold extend
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL fold extend
else
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine
@@ -349,13 +361,13 @@ if v:version == 701 && !has('patch221') " XXX I hope that's the right one
else
syn match perlSubAttributesCont "\h\w*\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained
syn region perlSubAttributesCont matchgroup=perlSubAttributesCont start="\h\w*(" end=")\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained contains=@perlInterpSQ,perlParensSQ
syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError
syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError,perlFakeGroup
syn match perlSubAttributes "" contained nextgroup=perlSubError
syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
endif
syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
syn match perlSubPrototype +(\_[^)]*)\_s*\|+ nextgroup=perlSubAttributes contained contains=perlSubPrototypeError
syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype
syn match perlSubPrototype +(\_[^)]*)\_s*\|+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlComment
syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
@@ -371,7 +383,7 @@ endif
syn match perlString "\I\@<!-\?\I\i*\%(\s*=>\)\@="
" All other # are comments, except ^#!
syn match perlComment "#.*" contains=perlTodo,@Spell
syn match perlComment "#.*" contains=perlTodo,@Spell extend
syn match perlSharpBang "^#!.*"
" Formats
@@ -385,9 +397,11 @@ syn match perlFormatField "@$" contained
" __END__ and __DATA__ clauses
if exists("perl_fold")
syntax region perlDATA start="^__\%(DATA\|END\)__$" skip="." end="." contains=perlPOD,@perlDATA fold
syntax region perlDATA start="^__DATA__$" skip="." end="." fold
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA fold
else
syntax region perlDATA start="^__\%(DATA\|END\)__$" skip="." end="." contains=perlPOD,@perlDATA
syntax region perlDATA start="^__DATA__$" skip="." end="."
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA
endif
"
@@ -400,8 +414,15 @@ if exists("perl_fold")
syn region perlPackageFold start="^package \S\+;\s*\%(#.*\)\=$" end="^1;\=\s*\%(#.*\)\=$" end="\n\+package"me=s-1 transparent fold keepend
endif
if !exists("perl_nofold_subs")
syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend
syn region perlSubFold start="^\z(\s*\)\<\%(BEGIN\|END\|CHECK\|INIT\|UNITCHECK\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend
if exists("perl_fold_anonymous_subs") && perl_fold_anonymous_subs
syn region perlSubFold start="\<sub\>[^\n;]*{" end="}" transparent fold keepend extend
syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
syn region perlBraces start="{" end="}" transparent extend
else
syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend
syn region perlSubFold start="^\z(\s*\)\<\%(BEGIN\|END\|CHECK\|INIT\|UNITCHECK\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend
endif
endif
if exists("perl_fold_blocks")
@@ -418,6 +439,9 @@ endif
command -nargs=+ HiLink hi def link <args>
" NOTE: If you're linking new highlight groups to perlString, please also put
" them into b:match_skip in ftplugin/perl.vim.
" The default highlighting.
HiLink perlSharpBang PreProc
HiLink perlControl PreProc
@@ -505,6 +529,22 @@ HiLink perlSpecialStringU perlSpecial
HiLink perlSpecialMatch perlSpecial
HiLink perlDATA perlComment
" NOTE: Due to a bug in Vim (or more likely, a misunderstanding on my part),
" I had to remove the transparent property from the following regions
" in order to get them to highlight correctly. Feel free to remove
" these and reinstate the transparent property if you know how.
HiLink perlParensSQ perlString
HiLink perlBracketsSQ perlString
HiLink perlBracesSQ perlString
HiLink perlAnglesSQ perlString
HiLink perlParensDQ perlString
HiLink perlBracketsDQ perlString
HiLink perlBracesDQ perlString
HiLink perlAnglesDQ perlString
HiLink perlSpecialStringU2 perlString
" Possible errors
HiLink perlNotEmptyLine Error
HiLink perlElseIfError Error
@@ -539,5 +579,13 @@ syn sync match perlSyncPOD grouphere NONE "^=cut"
let b:current_syntax = "perl"
if exists('&regexpengine')
let &regexpengine=s:regexpengine
unlet s:regexpengine
endif
let &cpo = s:cpo_save
unlet s:cpo_save
" XXX Change to sts=4:sw=4
" vim:ts=8:sts=2:sw=2:expandtab:ft=vim

View File

@@ -1,12 +1,13 @@
" Vim syntax file
" Language: Perl 6
" Maintainer: Andy Lester <andy@petdance.com>
" Homepage: http://github.com/petdance/vim-perl/tree/master
" Last Change: 2012 Apr 30
" Language: Perl 6
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl/tree/master
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2009-07-04
" Contributors: Luke Palmer <fibonaci@babylonia.flatirons.org>
" Moritz Lenz <moritz@faui2k3.org>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Contributors: Luke Palmer <fibonaci@babylonia.flatirons.org>
" Moritz Lenz <moritz@faui2k3.org>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
"
" This is a big undertaking. Perl 6 is the sort of language that only Perl
" can parse. But I'll do my best to get vim to.
@@ -1023,7 +1024,7 @@ syn match p6PackageScope display "\%(\K\%(\k\|[-']\K\@=\)*\)\?::" nextgroup=p6Pa
" TODO: mostly stolen from perl.vim, might need more work
syn region p6Match
\ matchgroup=p6Quote
\ start="\%([$@%&*]\@<!\%(\<\%(split\|while\|until\|if\|unless\)\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=//\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\%(\<\%(split\|while\|until\|if\|unless\)\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=//\@!"
\ start="^//\@!"
\ start=+\s\@<=/[^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!/\@!+
\ skip="\\/"
@@ -1033,7 +1034,7 @@ syn region p6Match
" m/foo/, mm/foo/, rx/foo/
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=//\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=//\@!"
\ skip="\\/"
\ end="/"
\ keepend
@@ -1042,7 +1043,7 @@ syn region p6Match
" m!foo!, mm!foo!, rx!foo!
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!!\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!!\@!"
\ skip="\\!"
\ end="!"
\ keepend
@@ -1051,7 +1052,7 @@ syn region p6Match
" m$foo$, mm$foo$, rx$foo$, m|foo|, mm|foo|, rx|foo|, etc
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)\$\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)\$\@!"
\ skip="\\\z1"
\ end="\z1"
\ keepend
@@ -1060,7 +1061,7 @@ syn region p6Match
" m (foo), mm (foo), rx (foo)
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!)\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!)\@!"
\ skip="\\)"
\ end=")"
\ contains=@p6Regexen,@p6Variables
@@ -1068,7 +1069,7 @@ syn region p6Match
" m[foo], mm[foo], rx[foo]
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!]\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!]\@!"
\ skip="\\]"
\ end="]"
\ contains=@p6Regexen,@p6Variables
@@ -1076,7 +1077,7 @@ syn region p6Match
" m{foo}, mm{foo}, rx{foo}
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!}\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!}\@!"
\ skip="\\}"
\ end="}"
\ contains=@p6Regexen,@p6Variables
@@ -1084,7 +1085,7 @@ syn region p6Match
" m<foo>, mm<foo>, rx<foo>
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!>\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!>\@!"
\ skip="\\>"
\ end=">"
\ contains=@p6Regexen,@p6Variables
@@ -1092,7 +1093,7 @@ syn region p6Match
" m«foo», mm«foo», rx«foo»
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!»\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!»\@!"
\ skip="\\»"
\ end="»"
\ contains=@p6Regexen,@p6Variables
@@ -1102,7 +1103,7 @@ syn region p6Match
" s/foo/bar/
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=/"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=/"
\ skip="\\/"
\ end="/"me=e-1
\ keepend
@@ -1121,7 +1122,7 @@ syn region p6Substitution
" s!foo!bar!
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!"
\ skip="\\!"
\ end="!"me=e-1
\ keepend
@@ -1140,7 +1141,7 @@ syn region p6Substitution
" s$foo$bar$, s|foo|bar, etc
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)"
\ skip="\\\z1"
\ end="\z1"me=e-1
\ keepend
@@ -1159,7 +1160,7 @@ syn region p6Substitution
" s{foo}
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!"
\ skip="\\}"
\ end="}"
\ contains=@p6Regexen,@p6Variables
@@ -1167,7 +1168,7 @@ syn region p6Match
" s[foo]
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!"
\ skip="\\]"
\ end="]"
\ contains=@p6Regexen,@p6Variables
@@ -1175,7 +1176,7 @@ syn region p6Match
" s<foo>
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!"
\ skip="\\>"
\ end=">"
\ contains=@p6Regexen,@p6Variables
@@ -1183,7 +1184,7 @@ syn region p6Match
" s«foo»
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!"
\ skip="\\»"
\ end="»"
\ contains=@p6Regexen,@p6Variables
@@ -1191,7 +1192,7 @@ syn region p6Match
" s (foo)
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!"
\ skip="\\)"
\ end=")"
\ contains=@p6Regexen,@p6Variables
@@ -1201,7 +1202,7 @@ syn region p6Match
" m:P5//
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=/"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=/"
\ skip="\\/"
\ end="/"
\ contains=@p6RegexP5,p6Variable,p6VarExclam,p6VarMatch,p6VarNum
@@ -1209,7 +1210,7 @@ syn region p6Match
" m:P5!!
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=!"
\ skip="\\!"
\ end="!"
\ contains=@p6RegexP5,p6Variable,p6VarSlash,p6VarMatch,p6VarNum
@@ -1217,7 +1218,7 @@ syn region p6Match
" m:P5$$, m:P5||, etc
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=\z([\"'`|,$]\)"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=\z([\"'`|,$]\)"
\ skip="\\\z1"
\ end="\z1"
\ contains=@p6RegexP5,@p6Variables
@@ -1225,7 +1226,7 @@ syn region p6Match
" m:P5 ()
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s\+\)\@<=()\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s\+\)\@<=()\@!"
\ skip="\\)"
\ end=")"
\ contains=@p6RegexP5,@p6Variables
@@ -1233,7 +1234,7 @@ syn region p6Match
" m:P5[]
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=[]\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=[]\@!"
\ skip="\\]"
\ end="]"
\ contains=@p6RegexP5,@p6Variables
@@ -1241,7 +1242,7 @@ syn region p6Match
" m:P5{}
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<={}\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<={}\@!"
\ skip="\\}"
\ end="}"
\ contains=@p6RegexP5,p6Variables
@@ -1249,7 +1250,7 @@ syn region p6Match
" m:P5<>
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=<>\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=<>\@!"
\ skip="\\>"
\ end=">"
\ contains=@p6RegexP5,p6Variables
@@ -1257,7 +1258,7 @@ syn region p6Match
" m:P5«»
syn region p6Match
\ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=«»\@!"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=«»\@!"
\ skip="\\»"
\ end="»"
\ contains=@p6RegexP5,p6Variables
@@ -1267,7 +1268,7 @@ syn region p6Match
" tr/foo/bar/, tr|foo|bar, etc
syn region p6String
\ matchgroup=p6Quote
\ start="\%(\<tr\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([/\"'`|!,$]\)"
\ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<tr\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([/\"'`|!,$]\)"
\ skip="\\\z1"
\ end="\z1"me=e-1
\ contains=p6RxRange

View File

@@ -1,9 +1,10 @@
" Vim syntax file
" Language: Perl POD format
" Maintainer: Andy Lester <andy@petdance.com>
" Previously: Scott Bigham <dsb@killerbunnies.org>
" URL: http://github.com/petdance/vim-perl
" Last Change: 2009-08-14
" Language: Perl POD format
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Previously: Scott Bigham <dsb@killerbunnies.org>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013 May 30
" To add embedded POD documentation highlighting to your syntax file, add
" the commands:
@@ -26,7 +27,11 @@ elseif exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" POD commands
syn match podCommand "^=encoding" nextgroup=podCmdText contains=@NoSpell
syn match podCommand "^=head[1234]" nextgroup=podCmdText contains=@NoSpell
syn match podCommand "^=item" nextgroup=podCmdText contains=@NoSpell
syn match podCommand "^=over" nextgroup=podOverIndent skipwhite contains=@NoSpell
@@ -85,6 +90,100 @@ if version >= 508 || !exists("did_pod_syntax_inits")
delcommand HiLink
endif
if exists("perl_pod_spellcheck_headings")
" Spell-check headings
syn clear podCmdText
syn match podCmdText ".*$" contained contains=podFormat
endif
if exists("perl_pod_formatting")
" By default, escapes like C<> are not checked for spelling. Remove B<>
" and I<> from the list of escapes.
syn clear podFormat
syn region podFormat start="[CLF]<[^<]"me=e-1 end=">" oneline contains=podFormat,@NoSpell
syn region podFormat start="[CLF]<<\s" end="\s>>" oneline contains=podFormat,@NoSpell
" Don't spell-check inside E<>, but ensure that the E< itself isn't
" marked as a spelling mistake.
syn match podFormat "E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2,@NoSpell
" Z<> is a mock formatting code. Ensure Z<> on its own isn't marked as a
" spelling mistake.
syn match podFormat "Z<>" contains=podEscape,podEscape2,@NoSpell
" These are required so that whatever is *within* B<...>, I<...>, etc. is
" spell-checked, but not the B, I, ... itself.
syn match podBoldOpen "B<" contains=@NoSpell
syn match podItalicOpen "I<" contains=@NoSpell
syn match podNoSpaceOpen "S<" contains=@NoSpell
syn match podIndexOpen "X<" contains=@NoSpell
" Same as above but for the << >> syntax.
syn match podBoldAlternativeDelimOpen "B<< " contains=@NoSpell
syn match podItalicAlternativeDelimOpen "I<< " contains=@NoSpell
syn match podNoSpaceAlternativeDelimOpen "S<< " contains=@NoSpell
syn match podIndexAlternativeDelimOpen "X<< " contains=@NoSpell
" Add support for spell checking text inside B<>, I<>, S<> and X<>.
syn region podBold start="B<[^<]"me=e end=">" oneline contains=podBoldItalic,podBoldOpen
syn region podBoldAlternativeDelim start="B<<\s" end="\s>>" oneline contains=podBoldAlternativeDelimOpen
syn region podItalic start="I<[^<]"me=e end=">" oneline contains=podItalicBold,podItalicOpen
syn region podItalicAlternativeDelim start="I<<\s" end="\s>>" oneline contains=podItalicAlternativeDelimOpen
" Nested bold/italic and vice-versa
syn region podBoldItalic contained start="I<[^<]"me=e end=">" oneline
syn region podItalicBold contained start="B<[^<]"me=e end=">" oneline
syn region podNoSpace start="S<[^<]"ms=s-2 end=">"me=e oneline contains=podNoSpaceOpen
syn region podNoSpaceAlternativeDelim start="S<<\s"ms=s-2 end="\s>>"me=e oneline contains=podNoSpaceAlternativeDelimOpen
syn region podIndex start="X<[^<]"ms=s-2 end=">"me=e oneline contains=podIndexOpen
syn region podIndexAlternativeDelim start="X<<\s"ms=s-2 end="\s>>"me=e oneline contains=podIndexAlternativeDelimOpen
" Restore this (otherwise B<> is shown as bold inside verbatim)
syn match podVerbatimLine "^\s.*$" contains=@NoSpell
" Ensure formatted text can be displayed in headings and items
syn clear podCmdText
if exists("perl_pod_spellcheck_headings")
syn match podCmdText ".*$" contained contains=podFormat,podBold,
\podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim,
\podBoldOpen,podItalicOpen,podBoldAlternativeDelimOpen,
\podItalicAlternativeDelimOpen,podNoSpaceOpen
else
syn match podCmdText ".*$" contained contains=podFormat,podBold,
\podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim,
\@NoSpell
endif
" Specify how to display these
hi def podBold term=bold cterm=bold gui=bold
hi link podBoldAlternativeDelim podBold
hi link podBoldAlternativeDelimOpen podBold
hi link podBoldOpen podBold
hi link podNoSpace Identifier
hi link podNoSpaceAlternativeDelim Identifier
hi link podIndex Identifier
hi link podIndexAlternativeDelim Identifier
hi def podItalic term=italic cterm=italic gui=italic
hi link podItalicAlternativeDelim podItalic
hi link podItalicAlternativeDelimOpen podItalic
hi link podItalicOpen podItalic
hi def podBoldItalic term=italic,bold cterm=italic,bold gui=italic,bold
hi def podItalicBold term=italic,bold cterm=italic,bold gui=italic,bold
endif
let b:current_syntax = "pod"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: PROLOG
" Maintainers: Thomas Koehler <jean-luc@picard.franken.de>
" Last Change: 2009 Dec 04
" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
" Last Change: 2013 May 23
" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
" There are two sets of highlighting in here:
" If the "prolog_highlighting_clean" variable exists, it is rather sparse.
@@ -21,14 +21,14 @@ syn case match
" Very simple highlighting for comments, clause heads and
" character codes. It respects prolog strings and atoms.
syn region prologCComment start=+/\*+ end=+\*/+
syn match prologComment +%.*+
syn region prologCComment start=+/\*+ end=+\*/+
syn match prologComment +%.*+
syn keyword prologKeyword module meta_predicate multifile dynamic
syn match prologCharCode +0'\\\=.+
syn region prologString start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region prologAtom start=+'+ skip=+\\\\\|\\'+ end=+'+
syn region prologClauseHead start=+^[a-z][^(]*(+ skip=+\.[^ ]+ end=+:-\|\.$\|\.[ ]\|-->+ contains=prologComment,prologCComment,prologString
syn keyword prologKeyword module meta_predicate multifile dynamic
syn match prologCharCode +0'\\\=.+
syn region prologString start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region prologAtom start=+'+ skip=+\\\\\|\\'+ end=+'+
syn region prologClause matchgroup=prologClauseHead start=+^\s*[a-z]\w*+ matchgroup=Normal end=+\.\s\|\.$+ contains=ALLBUT,prologClause
if !exists("prolog_highlighting_clean")
@@ -40,12 +40,12 @@ if !exists("prolog_highlighting_clean")
syn keyword prologKeyword arg current_prolog_flag put_char
syn keyword prologKeyword asserta fail put_code
syn keyword prologKeyword assertz findall read
syn keyword prologKeyword at_end_of_stream float read_term
syn keyword prologKeyword at_end_of_stream float read_term
syn keyword prologKeyword atom flush_output repeat
syn keyword prologKeyword atom_chars functor retract
syn keyword prologKeyword atom_codes get_byte set_input
syn keyword prologKeyword atom_concat get_char set_output
syn keyword prologKeyword atom_length get_code set_prolog_flag
syn keyword prologKeyword atom_codes get_byte set_input
syn keyword prologKeyword atom_concat get_char set_output
syn keyword prologKeyword atom_length get_code set_prolog_flag
syn keyword prologKeyword atomic halt set_stream_position
syn keyword prologKeyword bagof integer setof
syn keyword prologKeyword call is stream_property
@@ -54,7 +54,7 @@ if !exists("prolog_highlighting_clean")
syn keyword prologKeyword char_conversion number true
syn keyword prologKeyword clause number_chars unify_with_occurs_check
syn keyword prologKeyword close number_codes var
syn keyword prologKeyword compound once write
syn keyword prologKeyword compound once write
syn keyword prologKeyword copy_term op write_canonical
syn keyword prologKeyword current_char_conversion open write_term
syn keyword prologKeyword current_input peek_byte writeq
@@ -63,11 +63,13 @@ if !exists("prolog_highlighting_clean")
syn match prologOperator "=\\=\|=:=\|\\==\|=<\|==\|>=\|\\=\|\\+\|<\|>\|="
syn match prologAsIs "===\|\\===\|<=\|=>"
syn match prologNumber "\<[0123456789]*\>'\@!"
syn match prologNumber "\<[0123456789]*\>'\@!"
syn match prologCommentError "\*/"
syn match prologSpecialCharacter ";"
syn match prologSpecialCharacter "!"
syn match prologQuestion "?-.*\." contains=prologNumber
syn match prologSpecialCharacter ":-"
syn match prologSpecialCharacter "-->"
syn match prologQuestion "?-.*\." contains=prologNumber
endif
@@ -87,27 +89,29 @@ if version >= 508 || !exists("did_prolog_syn_inits")
endif
" The default highlighting.
HiLink prologComment Comment
HiLink prologCComment Comment
HiLink prologCharCode Special
HiLink prologComment Comment
HiLink prologCComment Comment
HiLink prologCharCode Special
if exists ("prolog_highlighting_clean")
HiLink prologKeyword Statement
HiLink prologClauseHead Statement
HiLink prologKeyword Statement
HiLink prologClauseHead Statement
HiLink prologClause Normal
else
HiLink prologKeyword Keyword
HiLink prologClauseHead Constant
HiLink prologQuestion PreProc
HiLink prologKeyword Keyword
HiLink prologClauseHead Constant
HiLink prologClause Normal
HiLink prologQuestion PreProc
HiLink prologSpecialCharacter Special
HiLink prologNumber Number
HiLink prologAsIs Normal
HiLink prologCommentError Error
HiLink prologAtom String
HiLink prologString String
HiLink prologOperator Operator
HiLink prologNumber Number
HiLink prologAsIs Normal
HiLink prologCommentError Error
HiLink prologAtom String
HiLink prologString String
HiLink prologOperator Operator
endif

View File

@@ -102,12 +102,11 @@ syn match rComplex "\<\d\+[Ee][-+]\=\d\+i"
syn match rOperator "&"
syn match rOperator '-'
syn match rOperator '*'
syn match rOperator '\*'
syn match rOperator '+'
syn match rOperator '='
syn match rOperator "[|!<>^~`/:@]"
syn match rOperator "%\{2}\|%\*%\|%\/%\|%in%\|%o%\|%x%"
syn match rOpError '*\{3}'
syn match rOpError '//'
syn match rOpError '&&&'
syn match rOpError '|||'

View File

@@ -1,10 +1,13 @@
" Vim syntax file
" Language: resolver configuration file
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" Original Maintaner: Radu Dineiu <littledragon@altern.org>
" License: This file can be redistributed and/or modified under the same terms
" as Vim itself.
" Last Change: 2012-05-24
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
" URL: https://raw.github.com/rid9/vim-resolv/master/resolv.vim
" Last Change: 2013 May 21
" Version: 1.0
"
" Credits:
" David Necas (Yeti) <yeti@physics.muni.cz>
" Stefano Zacchiroli <zack@debian.org>
if version < 600
syntax clear
@@ -14,18 +17,18 @@ endif
" Errors, comments and operators
syn match resolvError /./
syn match resolvComment /\s*[#;].*$/ contains=@Spell
syn match resolvOperator /[/:]/ contained
syn match resolvComment /\s*[#;].*$/
syn match resolvOperator /[\/:]/ contained
" IP
syn cluster resolvIPCluster contains=resolvIPError,resolvIPSpecial
syn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[.0-9]*/ contained
syn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained
syn match resolvIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained
" General
syn match resolvIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@resolvIPCluster
syn match resolvIPNetmask contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?/ contains=resolvOperator,@resolvIPCluster
syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_.]*/
syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/
" Particular
syn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster
@@ -41,8 +44,6 @@ syn match resolvSortList /^\s*sortlist\>/ nextgroup=resolvIPNetmaskSortList skip
syn match resolvOptions /^\s*options\>/ nextgroup=resolvOption skipwhite
" Options
" FIXME: The manual page and the source code do not exactly agree on the set
" of allowed options
syn match resolvOption /\<\%(debug\|no_tld_query\|rotate\|no-check-names\|inet6\)\>/ contained nextgroup=resolvOption skipwhite
syn match resolvOption /\<\%(ndots\|timeout\|attempts\):\d\+\>/ contained contains=resolvOperator nextgroup=resolvOption skipwhite

View File

@@ -2,7 +2,7 @@
" Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.sass
" Last Change: 2010 Aug 9
" Last Change: 2013 May 30
if exists("b:current_syntax")
finish
@@ -17,8 +17,8 @@ syn cluster sassCssAttributes contains=css.*Attr,scssComment,cssValue.*,cssColor
syn region sassDefinition matchgroup=cssBraces start="{" end="}" contains=TOP
syn match sassProperty "\%([{};]\s*\|^\)\@<=\%([[:alnum:]-]\|#{[^{}]*}\)\+:" contains=css.*Prop skipwhite nextgroup=sassCssAttribute contained containedin=sassDefinition
syn match sassProperty "^\s*\zs\s\%(\%([[:alnum:]-]\|#{[^{}]*}\)\+:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute
syn match sassProperty "\%([{};]\s*\|^\)\@<=\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:" contains=css.*Prop skipwhite nextgroup=sassCssAttribute contained containedin=sassDefinition
syn match sassProperty "^\s*\zs\s\%(\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute
syn match sassProperty "^\s*\zs\s\%(:\=[[:alnum:]-]\+\s*=\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute
syn match sassCssAttribute +\%("\%([^"]\|\\"\)*"\|'\%([^']\|\\'\)*'\|#{[^{}]*}\|[^{};]\)*+ contained contains=@sassCssAttributes,sassVariable,sassFunction,sassInterpolation
syn match sassDefault "!default\>" contained
@@ -34,14 +34,19 @@ syn match sassFunction "\<\%(unquote\|quote\)\>(\@=" contained
syn match sassFunction "\<\%(percentage\|round\|ceil\|floor\|abs\)\>(\@=" contained
syn match sassFunction "\<\%(type-of\|unit\|unitless\|comparable\)\>(\@=" contained
syn region sassInterpolation matchgroup=sassInterpolationDelimiter start="#{" end="}" contains=@sassCssAttributes,sassVariable,sassFunction containedin=cssStringQ,cssStringQQ,sassProperty
syn region sassInterpolation matchgroup=sassInterpolationDelimiter start="#{" end="}" contains=@sassCssAttributes,sassVariable,sassFunction containedin=cssStringQ,cssStringQQ,cssPseudoClass,sassProperty
syn match sassMixinName "[[:alnum:]_-]\+" contained nextgroup=sassCssAttribute
syn match sassMixin "^=" nextgroup=sassMixinName
syn match sassMixin "^=" nextgroup=sassMixinName skipwhite
syn match sassMixin "\%([{};]\s*\|^\s*\)\@<=@mixin" nextgroup=sassMixinName skipwhite
syn match sassMixing "^\s\+\zs+" nextgroup=sassMixinName
syn match sassMixing "\%([{};]\s*\|^\s*\)\@<=@include" nextgroup=sassMixinName skipwhite
syn match sassExtend "\%([{};]\s*\|^\s*\)\@<=@extend"
syn match sassPlaceholder "\%([{};]\s*\|^\s*\)\@<=%" nextgroup=sassMixinName skipwhite
syn match sassFunctionName "[[:alnum:]_-]\+" contained nextgroup=sassCssAttribute
syn match sassFunctionDecl "\%([{};]\s*\|^\s*\)\@<=@function" nextgroup=sassFunctionName skipwhite
syn match sassReturn "\%([{};]\s*\|^\s*\)\@<=@return"
syn match sassEscape "^\s*\zs\\"
syn match sassIdChar "#[[:alnum:]_-]\@=" nextgroup=sassId
@@ -53,11 +58,11 @@ syn match sassAmpersand "&"
" TODO: Attribute namespaces
" TODO: Arithmetic (including strings and concatenation)
syn region sassInclude start="@import" end=";\|$" contains=scssComment,cssURL,cssUnicodeEscape,cssMediaType
syn region sassInclude start="@import" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType
syn region sassDebugLine end=";\|$" matchgroup=sassDebug start="@debug\>" contains=@sassCssAttributes,sassVariable,sassFunction
syn region sassWarnLine end=";\|$" matchgroup=sassWarn start="@warn\>" contains=@sassCssAttributes,sassVariable,sassFunction
syn region sassControlLine matchgroup=sassControl start="@\%(if\|else\%(\s\+if\)\=\|while\|for\)\>" end="[{};]\@=\|$" contains=sassFor,@sassCssAttributes,sassVariable,sassFunction
syn keyword sassFor from to through contained
syn region sassControlLine matchgroup=sassControl start="@\%(if\|else\%(\s\+if\)\=\|while\|for\|each\)\>" end="[{};]\@=\|$" contains=sassFor,@sassCssAttributes,sassVariable,sassFunction
syn keyword sassFor from to through in contained
syn keyword sassTodo FIXME NOTE TODO OPTIMIZE XXX contained
syn region sassComment start="^\z(\s*\)//" end="^\%(\z1 \)\@!" contains=sassTodo,@Spell
@@ -70,7 +75,10 @@ hi def link sassVariable Identifier
hi def link sassFunction Function
hi def link sassMixing PreProc
hi def link sassMixin PreProc
hi def link sassPlaceholder PreProc
hi def link sassExtend PreProc
hi def link sassFunctionDecl PreProc
hi def link sassReturn PreProc
hi def link sassTodo Todo
hi def link sassInclude Include
hi def link sassDebug sassControl

View File

@@ -1,8 +1,7 @@
" Vim syntax file
" Language: SGML-linuxdoc (supported by old sgmltools-1.x)
" (for more information, visit www.sgmltools.org)
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2008 Sep 17
" Last Change: 2013 May 13
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -29,7 +28,7 @@ syn region sgmllnxSpecial oneline start="&" end=";"
syn keyword sgmllnxTagName contained article author date toc title sect verb
syn keyword sgmllnxTagName contained abstract tscreen p itemize item enum
syn keyword sgmllnxTagName contained descrip quote htmlurl code ref
syn keyword sgmllnxTagName contained tt tag bf
syn keyword sgmllnxTagName contained tt tag bf it url
syn match sgmllnxTagName contained "sect\d\+"
" Comments

View File

@@ -1,8 +1,8 @@
" SiSU Vim syntax file
" SiSU Maintainer: Ralph Amissah <ralph@amissah.com>
" SiSU Markup: SiSU (sisu-3.1.0)
" Last Change: 2011-10-03
" URL: <http://git.sisudoc.org/?p=code/sisu.git;a=blob;f=data/sisu/v3/conf/editor-syntax-etc/vim/syntax/sisu.vim;hb=HEAD>
" SiSU Markup: SiSU (sisu-4.0.9)
" Last Change: 2013-02-22
" URL (sisu-4.1.0): <http://git.sisudoc.org/?p=code/sisu.git;a=blob;f=data/sisu/conf/editor-syntax-etc/vim/syntax/sisu.vim;hb=HEAD>
"(originally looked at Ruby Vim by Mirko Nasato)
if version < 600
@@ -20,14 +20,9 @@ syn match sisu_error contains=sisu_link,sisu_error_wspace "<![^ei]\S\+!>"
"% "Markers Identifiers:
if !exists("sisu_no_identifiers")
syn match sisu_mark_endnote "\~^"
syn match sisu_break contains=@NoSpell " \\\\\( \|$\)"
syn match sisu_break contains=@NoSpell "<br>\|<br />"
syn match sisu_control contains=@NoSpell "^<:p[bn]>\s*$"
"syn match sisu_control contains=@NoSpell "^<\(br\)\?:\(pg\|pgn\|pn\)>\s*$"
"syn match sisu_control contains=@NoSpell "^\[\(br\)\?:\(pg\|pgn\|pn\)\]\s*$"
syn match sisu_break contains=@NoSpell " \\\\\( \|$\)\|<br>\|<br />"
syn match sisu_control contains=@NoSpell "^\(-\\\\-\|=\\\\=\|-\.\.-\|<:p[bn]>\)\s*$"
syn match sisu_control contains=@NoSpell "^<:\(bo\|---\)>\s*$"
"syn match sisu_control contains=@NoSpell "^<\(br\)\?:\(pr\|o\)>\s*$"
"syn match sisu_control contains=@NoSpell "^\[\(br\)\?:\(pr\|o\)\]\s*$"
syn match sisu_marktail "[~-]#"
syn match sisu_control "\""
syn match sisu_underline "\(^\| \)_[a-zA-Z0-9]\+_\([ .,]\|$\)"
@@ -43,11 +38,12 @@ if !exists("sisu_no_identifiers")
syn match sisu_sub_header_title "^\s\+:\(subtitle\|short\|edition\|language\|lang_char\|note\):\s" "group=sisu_header_content
syn match sisu_sub_header_creator "^\s\+:\(author\|editor\|contributor\|illustrator\|photographer\|translator\|digitized_by\|prepared_by\|audio\|video\):\s" " &hon &institution
syn match sisu_sub_header_rights "^\s\+:\(copyright\|text\|translation\|illustrations\|photographs\|preparation\|digitization\|audio\|video\|license\|all\):\s" " access_rights license
syn match sisu_sub_header_classify "^\s\+:\(topic_register\|coverage\|format\|identifier\|keywords\|relation\|subject\|type\|dewey\|loc\|oclc\|pg\|isbn\):\s"
syn match sisu_sub_header_date "^\s\+:\(added_to_site\|available\|created\|issued\|modified\|published\|valid\|translated\|original_publication\):\s"
syn match sisu_sub_header_classify "^\s\+:\(topic_register\|keywords\|subject\|dewey\|loc\):\s"
syn match sisu_sub_header_identifier "^\s\+:\(oclc\|isbn\):\s"
syn match sisu_sub_header_date "^\s\+:\(added_to_site\|available\|created\|issued\|modified\|published\|valid\|translated\|original_publication\):\s"
syn match sisu_sub_header_original "^\s\+:\(publisher\|date\|language\|lang_char\|institution\|nationality\|source\):\s"
syn match sisu_sub_header_make "^\s\+:\(headings\|num_top\|breaks\|language\|italics\|bold\|emphasis\|plaintext_wrap\|texpdf_font_mono\|texpdf_font\|skin\|stamp\|promo\|ad\|manpage\):\s"
syn match sisu_sub_header_notes "^\s\+:\(abstract\|comment\|description\|history\|prefix\|prefix_[ab]\|suffix\):\s"
syn match sisu_sub_header_make "^\s\+:\(headings\|num_top\|breaks\|language\|italics\|bold\|emphasis\|substitute\|omit\|plaintext_wrap\|texpdf_font_mono\|texpdf_font\|stamp\|promo\|ad\|manpage\|home_button_text\|home_button_image\|cover_image\|footer\):\s"
syn match sisu_sub_header_notes "^\s\+:\(description\|abstract\|comment\|coverage\|relation\|source\|history\|type\|format\|prefix\|prefix_[ab]\|suffix\):\s"
"% "semantic markers: (ignore)
syn match sisu_sem_marker ";{\|};[a-z._]*[a-z]"
@@ -85,6 +81,8 @@ syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_rights matchgroup=sisu_header start="^[@]rights:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" classify document
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_classify matchgroup=sisu_header start="^[@]classify:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" identifier document
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_identifier matchgroup=sisu_header start="^[@]identifier:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" original language (depreciated)
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_original matchgroup=sisu_header start="^[@]original:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
" notes
@@ -219,6 +217,7 @@ hi def link sisu_sub_header_date Statement
hi def link sisu_sub_header_publisher Statement
hi def link sisu_sub_header_rights Statement
hi def link sisu_sub_header_classify Statement
hi def link sisu_sub_header_identifier Statement
hi def link sisu_sub_header_original Statement
hi def link sisu_sub_header_links Statement
hi def link sisu_sub_header_notes Statement

View File

@@ -1,11 +1,11 @@
" Vim syntax file
" Language: SQL, Adaptive Server Anywhere
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Last Change: 2012 Jan 23
" Version: 12.0.1
" Last Change: 2013 May 13
" Version: 16.0.0
" Description: Updated to Adaptive Server Anywhere 12.0.1 (including spatial data)
" Description: Updated to Adaptive Server Anywhere 16.0.0
" Updated to Adaptive Server Anywhere 12.0.1 (including spatial data)
" Updated to Adaptive Server Anywhere 11.0.1
" Updated to Adaptive Server Anywhere 10.0.1
" Updated to Adaptive Server Anywhere 9.0.2
@@ -27,33 +27,34 @@ syn case ignore
syn keyword sqlSpecial false null true
" common functions
syn keyword sqlFunction count sum avg min max debug_eng isnull
syn keyword sqlFunction greater lesser argn string ymd todate
syn keyword sqlFunction totimestamp date today now utc_now
syn keyword sqlFunction number identity years months weeks days
syn keyword sqlFunction hours minutes seconds second minute hour
syn keyword sqlFunction day month year dow date_format substr
syn keyword sqlFunction substring byte_substr length byte_length
syn keyword sqlFunction datalength ifnull evaluate list
syn keyword sqlFunction soundex similar difference like_start
syn keyword sqlFunction like_end regexp_compile
syn keyword sqlFunction regexp_compile_patindex remainder abs
syn keyword sqlFunction graphical_plan plan explanation ulplan
syn keyword sqlFunction graphical_ulplan long_ulplan
syn keyword sqlFunction short_ulplan rewrite watcomsql
syn keyword sqlFunction transactsql dialect estimate
syn keyword sqlFunction estimate_source index_estimate
syn keyword sqlFunction experience_estimate traceback wsql_state
syn keyword sqlFunction lang_message dateadd datediff datepart
syn keyword sqlFunction datename dayname monthname quarter
syn keyword sqlFunction tsequal hextoint inttohex rand textptr
syn keyword sqlFunction rowid grouping stddev variance rank
syn keyword sqlFunction dense_rank density percent_rank user_name
syn keyword sqlFunction user_id str stuff char_length nullif
syn keyword sqlFunction sortkey compare ts_index_statistics
syn keyword sqlFunction ts_table_statistics isdate isnumeric
syn keyword sqlFunction get_identity lookup newid uuidtostr
syn keyword sqlFunction strtouuid varexists
syn keyword sqlFunction abs argn avg bintohex bintostr
syn keyword sqlFunction byte_length byte_substr char_length
syn keyword sqlFunction compare count count_big datalength date
syn keyword sqlFunction date_format dateadd datediff datename
syn keyword sqlFunction datepart day dayname days debug_eng
syn keyword sqlFunction dense_rank density dialect difference
syn keyword sqlFunction dow estimate estimate_source evaluate
syn keyword sqlFunction experience_estimate explanation
syn keyword sqlFunction get_identity graphical_plan
syn keyword sqlFunction graphical_ulplan greater grouping
syn keyword sqlFunction hextobin hextoint hour hours identity
syn keyword sqlFunction ifnull index_estimate inttohex isdate
syn keyword sqlFunction isencrypted isnull isnumeric
syn keyword sqlFunction lang_message length lesser like_end
syn keyword sqlFunction like_start list long_ulplan lookup max
syn keyword sqlFunction min minute minutes month monthname
syn keyword sqlFunction months newid now nullif number
syn keyword sqlFunction percent_rank plan quarter rand rank
syn keyword sqlFunction regexp_compile regexp_compile_patindex
syn keyword sqlFunction remainder rewrite rowid second seconds
syn keyword sqlFunction short_ulplan similar sortkey soundex
syn keyword sqlFunction stddev stack_trace str string strtobin strtouuid stuff
syn keyword sqlFunction subpartition substr substring sum switchoffset sysdatetimeoffset
syn keyword sqlFunction textptr todate todatetimeoffset today totimestamp traceback transactsql
syn keyword sqlFunction ts_index_statistics ts_table_statistics
syn keyword sqlFunction tsequal ulplan user_id user_name utc_now
syn keyword sqlFunction uuidtostr varexists variance watcomsql
syn keyword sqlFunction weeks wsql_state year years ymd
" 9.0.1 functions
syn keyword sqlFunction acos asin atan atn2 cast ceiling convert cos cot
@@ -473,31 +474,36 @@ syn keyword sqlFunction ST_ToPoint
syn keyword sqlFunction ST_ToPolygon
syn keyword sqlFunction ST_ToSurface
" Array functions 16.x
syn keyword sqlFunction array array_agg array_max_cardinality trim_array
syn keyword sqlFunction error_line error_message error_procedure
syn keyword sqlFunction error_sqlcode error_sqlstate error_stack_trace
" keywords
syn keyword sqlKeyword absolute accent action active add address admin aes_decrypt
syn keyword sqlKeyword after aggregate algorithm allow_dup_row allow allowed alter
syn keyword sqlKeyword and angular ansi_substring any as append apply
syn keyword sqlKeyword arbiter asc ascii ase
syn keyword sqlKeyword assign at atan2 atomic attended
syn keyword sqlKeyword audit auditing authorization axis
syn keyword sqlKeyword absolute accent access account action active activate add address admin
syn keyword sqlKeyword aes_decrypt after aggregate algorithm allow_dup_row allow allowed alter
syn keyword sqlKeyword always and angular ansi_substring any as append apply
syn keyword sqlKeyword arbiter array asc ascii ase
syn keyword sqlKeyword assign at atan2 atomic attended
syn keyword sqlKeyword audit auditing authentication authorization axis
syn keyword sqlKeyword autoincrement autostop batch bcp before
syn keyword sqlKeyword between bit_and bit_length bit_or bit_substr bit_xor
syn keyword sqlKeyword blank blanks block
syn keyword sqlKeyword both bottom unbounded breaker bufferpool
syn keyword sqlKeyword build bulk by byte bytes cache calibrate calibration
syn keyword sqlKeyword cancel capability cascade cast
syn keyword sqlKeyword catalog ceil change changes char char_convert check checksum
syn keyword sqlKeyword class classes client cmp
syn keyword sqlKeyword cancel capability cardinality cascade cast
syn keyword sqlKeyword catalog catch ceil change changes char char_convert
syn keyword sqlKeyword check checkpointlog checksum class classes client cmp
syn keyword sqlKeyword cluster clustered collation
syn keyword sqlKeyword column columns
syn keyword sqlKeyword command comments committed comparisons
syn keyword sqlKeyword command comments committed commitid comparisons
syn keyword sqlKeyword compatible component compressed compute computes
syn keyword sqlKeyword concat configuration confirm conflict connection
syn keyword sqlKeyword console consolidate consolidated
syn keyword sqlKeyword constraint constraints content
syn keyword sqlKeyword constraint constraints content
syn keyword sqlKeyword convert coordinate coordinator copy count count_set_bits
syn keyword sqlKeyword crc createtime cross cube cume_dist
syn keyword sqlKeyword crc createtime critical cross cube cume_dist
syn keyword sqlKeyword current cursor data data database
syn keyword sqlKeyword current_timestamp current_user cycle
syn keyword sqlKeyword databases datatype dba dbfile
@@ -506,83 +512,86 @@ syn keyword sqlKeyword decrypted default defaults default_dbspace deferred
syn keyword sqlKeyword definer definition
syn keyword sqlKeyword delay deleting delimited dependencies desc
syn keyword sqlKeyword description deterministic directory
syn keyword sqlKeyword disable disabled disallow distinct do domain download duplicate
syn keyword sqlKeyword dsetpass dttm dynamic each earth editproc ejb
syn keyword sqlKeyword elimination ellipsoid
syn keyword sqlKeyword else elseif empty enable encapsulated encrypted end
syn keyword sqlKeyword encoding endif engine environment erase error escape escapes event
syn keyword sqlKeyword disable disabled disallow distinct disksandbox disk_sandbox
syn keyword sqlKeyword dn do domain download duplicate
syn keyword sqlKeyword dsetpass dttm dynamic each earth editproc effective ejb
syn keyword sqlKeyword elimination ellipsoid else elseif
syn keyword sqlKeyword email empty enable encapsulated encrypted encryption end
syn keyword sqlKeyword encoding endif engine environment erase error errors escape escapes event
syn keyword sqlKeyword event_parameter every exception exclude excluded exclusive exec
syn keyword sqlKeyword existing exists expanded expiry express exprtype extended_property
syn keyword sqlKeyword external externlogin factor failover false
syn keyword sqlKeyword fastfirstrow feature fieldproc file files filler
syn keyword sqlKeyword fillfactor final finish first first_keyword first_value
syn keyword sqlKeyword flattening
syn keyword sqlKeyword following force foreign format forxml forxml_sep fp frame
syn keyword sqlKeyword free freepage french fresh full function
syn keyword sqlKeyword following force foreign format forjson forxml forxml_sep fp frame
syn keyword sqlKeyword free freepage french fresh full function
syn keyword sqlKeyword gb generic get_bit go global grid
syn keyword sqlKeyword group handler hash having header hexadecimal
syn keyword sqlKeyword hidden high history hg hng hold holdlock host
syn keyword sqlKeyword hours http_body http_session_timeout id identified identity ignore
syn keyword sqlKeyword ignore_dup_key ignore_dup_row immediate
syn keyword sqlKeyword in inactiv inactive inactivity included increment incremental
syn keyword sqlKeyword index index_enabled index_lparen indexonly info
syn keyword sqlKeyword inline inner inout insensitive inserting
syn keyword sqlKeyword instead integrated
syn keyword sqlKeyword internal intersection into introduced inverse invoker
syn keyword sqlKeyword index index_enabled index_lparen indexonly info information
syn keyword sqlKeyword inheritance inline inner inout insensitive inserting
syn keyword sqlKeyword instead
syn keyword sqlKeyword internal intersection into introduced inverse invoker
syn keyword sqlKeyword iq is isolation
syn keyword sqlKeyword jar java java_location java_main_userid java_vm_options
syn keyword sqlKeyword jconnect jdk join kb key keep kerberos language last
syn keyword sqlKeyword jconnect jdk join json kb key keys keep language last
syn keyword sqlKeyword last_keyword last_value lateral latitude
syn keyword sqlKeyword ld left len linear lf ln level like
syn keyword sqlKeyword limit local location log
syn keyword sqlKeyword ld ldap left len linear lf ln level like
syn keyword sqlKeyword limit local location log
syn keyword sqlKeyword logging logical login logscan long longitude low lru ls
syn keyword sqlKeyword main major manual mark
syn keyword sqlKeyword match matched materialized max maxvalue maximum mb measure membership
syn keyword sqlKeyword merge metadata methods minimum minor minutes minvalue mirror
syn keyword sqlKeyword mode modify monitor move mru multiplex
syn keyword sqlKeyword name named namespaces national native natural new next nextval
syn keyword sqlKeyword main major manage manual mark master
syn keyword sqlKeyword match matched materialized max maxvalue maximum mb measure median membership
syn keyword sqlKeyword merge metadata methods migrate minimum minor minutes minvalue mirror
syn keyword sqlKeyword mode modify monitor move mru multiplex
syn keyword sqlKeyword name named namespaces national native natural new next nextval
syn keyword sqlKeyword ngram no noholdlock nolock nonclustered none normal not
syn keyword sqlKeyword notify null nullable_constant nulls
syn keyword sqlKeyword object oem_string of off offline offset olap
syn keyword sqlKeyword notify null nullable_constant nulls
syn keyword sqlKeyword object objects oem_string of off offline offset olap
syn keyword sqlKeyword old on online only openstring operator
syn keyword sqlKeyword optimization optimizer option
syn keyword sqlKeyword or order organization others out outer over
syn keyword sqlKeyword or order ordinality organization others out outer over owner
syn keyword sqlKeyword package packetsize padding page pages
syn keyword sqlKeyword paglock parallel parameter parent part
syn keyword sqlKeyword partition partitions partner password path pctfree
syn keyword sqlKeyword perms plan planar policy polygon populate port postfilter preceding
syn keyword sqlKeyword paglock parallel parameter parent part partial
syn keyword sqlKeyword partition partitions partner password path pctfree
syn keyword sqlKeyword permissions perms plan planar policy polygon populate port postfilter preceding
syn keyword sqlKeyword precisionprefetch prefilter prefix preserve preview previous
syn keyword sqlKeyword primary prior priority priqty private privileges procedure profile
syn keyword sqlKeyword primary prior priority priqty private privilege privileges procedure profile profiling
syn keyword sqlKeyword property_is_cumulative property_is_numeric public publication publish publisher
syn keyword sqlKeyword quiesce quote quotes range readclientfile readcommitted reader readfile readonly
syn keyword sqlKeyword readpast readuncommitted readwrite rebuild
syn keyword sqlKeyword received recompile recover recursive references
syn keyword sqlKeyword referencing regex regexp regexp_substr relative relocate
syn keyword sqlKeyword rename repeatable repeatableread replicate
syn keyword sqlKeyword rename repeatable repeatableread replicate replication
syn keyword sqlKeyword requests request_timeout required rereceive resend reserve reset
syn keyword sqlKeyword resizing resolve resource respect restart
syn keyword sqlKeyword restrict result retain
syn keyword sqlKeyword returns reverse right role
syn keyword sqlKeyword rollup root row row_number rowlock rows
syn keyword sqlKeyword restrict result retain retries
syn keyword sqlKeyword returns reverse right role roles
syn keyword sqlKeyword rollup root row row_number rowlock rows rowtype
syn keyword sqlKeyword sa_index_hash sa_internal_fk_verify sa_internal_termbreak
syn keyword sqlKeyword sa_order_preserving_hash sa_order_preserving_hash_big sa_order_preserving_hash_prefix
syn keyword sqlKeyword scale schedule schema scope scripted scroll seconds secqty security
syn keyword sqlKeyword sa_file_free_pages sa_internal_type_from_catalog sa_internal_valid_hash
syn keyword sqlKeyword sa_internal_validate_value sa_json_element
syn keyword sqlKeyword scale schedule schema scope script scripted scroll search seconds secqty security
syn keyword sqlKeyword semi send sensitive sent sequence serializable
syn keyword sqlKeyword server server session set_bit set_bits sets
syn keyword sqlKeyword server severity session set_bit set_bits sets
syn keyword sqlKeyword shapefile share side simple since site size skip
syn keyword sqlKeyword snap snapshot soapheader soap_header
syn keyword sqlKeyword snap snapshot soapheader soap_header
syn keyword sqlKeyword spatial split some sorted_data
syn keyword sqlKeyword sql sqlcode sqlid sqlflagger sqlstate sqrt square
syn keyword sqlKeyword stacker stale statement statistics status stddev_pop stddev_samp
syn keyword sqlKeyword stacker stale state statement statistics status stddev_pop stddev_samp
syn keyword sqlKeyword stemmer stogroup stoplist storage store
syn keyword sqlKeyword strip stripesizekb striping subpages subscribe subscription
syn keyword sqlKeyword subtransaction suser_id suser_name synchronization
syn keyword sqlKeyword subtransaction suser_id suser_name suspend synchronization
syn keyword sqlKeyword syntax_error table tables tablock
syn keyword sqlKeyword tablockx tb temp template temporary term then ties
syn keyword sqlKeyword timezone timeout to to_char to_nchar tolerance top
syn keyword sqlKeyword traced_plan tracing
syn keyword sqlKeyword transfer transform transaction transactional treat tries
syn keyword sqlKeyword true tsequal type tune uncommitted unconditionally
syn keyword sqlKeyword tablockx target tb temp template temporary term then ties
syn keyword sqlKeyword timezone timeout tls to to_char to_nchar tolerance top
syn keyword sqlKeyword trace traced_plan tracing
syn keyword sqlKeyword transfer transform transaction transactional treat tries
syn keyword sqlKeyword true try tsequal type tune uncommitted unconditionally
syn keyword sqlKeyword unenforced unicode unique unistr unit unknown unlimited unload
syn keyword sqlKeyword unpartition unquiesce updatetime updating updlock upgrade upload
syn keyword sqlKeyword upper usage use user
@@ -593,14 +602,14 @@ syn keyword sqlKeyword verify versions view virtual wait
syn keyword sqlKeyword warning wd web when where with with_auto
syn keyword sqlKeyword with_auto with_cube with_rollup without
syn keyword sqlKeyword with_lparen within word work workload write writefile
syn keyword sqlKeyword writeclientfile writer writers writeserver xlock
syn keyword sqlKeyword zeros zone
" XML
syn keyword sqlKeyword writeclientfile writer writers writeserver xlock
syn keyword sqlKeyword war xml zeros zone
" XML
syn keyword sqlKeyword raw auto elements explicit
" HTTP support
syn keyword sqlKeyword authorization secure url service next_soap_header
" HTTP 9.0.2 new procedure keywords
syn keyword sqlKeyword namespace certificate clientport proxy
syn keyword sqlKeyword namespace certificate certificates clientport proxy trusted_certificates_file
" OLAP support 9.0.0
syn keyword sqlKeyword covar_pop covar_samp corr regr_slope regr_intercept
syn keyword sqlKeyword regr_count regr_r2 regr_avgx regr_avgy
@@ -610,6 +619,10 @@ syn keyword sqlKeyword regr_sxx regr_syy regr_sxy
syn keyword sqlKeyword character dec options proc reference
syn keyword sqlKeyword subtrans tran syn keyword
" Login Mode Options
syn keyword sqlKeywordLogin standard integrated kerberos LDAPUA
syn keyword sqlKeywordLogin cloudadmin mixed
" Spatial Predicates
syn keyword sqlKeyword ST_Contains
syn keyword sqlKeyword ST_ContainsFilter
@@ -692,9 +705,9 @@ syn keyword sqlKeyword ST_LinearUnHash
syn keyword sqlOperator in any some all between exists
syn keyword sqlOperator like escape not is and or
syn keyword sqlOperator minus
syn keyword sqlOperator prior distinct
syn keyword sqlOperator prior distinct unnest
syn keyword sqlStatement allocate alter attach backup begin break call case
syn keyword sqlStatement allocate alter attach backup begin break call case catch
syn keyword sqlStatement checkpoint clear close comment commit configure connect
syn keyword sqlStatement continue create deallocate declare delete describe
syn keyword sqlStatement detach disconnect drop except execute exit explain fetch
@@ -705,7 +718,7 @@ syn keyword sqlStatement prepare print put raiserror read readtext refresh relea
syn keyword sqlStatement remote remove reorganize resignal restore resume
syn keyword sqlStatement return revoke rollback save savepoint select
syn keyword sqlStatement set setuser signal start stop synchronize
syn keyword sqlStatement system trigger truncate union unload update
syn keyword sqlStatement system trigger truncate try union unload update
syn keyword sqlStatement validate waitfor whenever while window writetext
@@ -715,7 +728,7 @@ syn keyword sqlType float int integer numeric
syn keyword sqlType smallint tinyint real
syn keyword sqlType money smallmoney
syn keyword sqlType date datetime datetimeoffset smalldatetime time timestamp
syn keyword sqlType binary image varbinary uniqueidentifier
syn keyword sqlType binary image varray varbinary uniqueidentifier
syn keyword sqlType unsigned
" Spatial types
syn keyword sqlType st_geometry st_point st_curve st_surface st_geomcollection
@@ -736,8 +749,10 @@ syn keyword sqlOption Ansi_update_constraints
syn keyword sqlOption Ansinull
syn keyword sqlOption Auditing
syn keyword sqlOption Auditing_options
syn keyword sqlOption Auto_commit_on_create_local_temp_index
syn keyword sqlOption Background_priority
syn keyword sqlOption Blocking
syn keyword sqlOption Blocking_others_timeout
syn keyword sqlOption Blocking_timeout
syn keyword sqlOption Chained
syn keyword sqlOption Checkpoint_time
@@ -754,6 +769,7 @@ syn keyword sqlOption Cooperative_commits
syn keyword sqlOption Database_authentication
syn keyword sqlOption Date_format
syn keyword sqlOption Date_order
syn keyword sqlOption db_publisher
syn keyword sqlOption Debug_messages
syn keyword sqlOption Dedicated_task
syn keyword sqlOption Default_dbspace
@@ -764,14 +780,18 @@ syn keyword sqlOption Divide_by_zero_error
syn keyword sqlOption Escape_character
syn keyword sqlOption Exclude_operators
syn keyword sqlOption Extended_join_syntax
syn keyword sqlOption Extern_login_credentials
syn keyword sqlOption Fire_triggers
syn keyword sqlOption First_day_of_week
syn keyword sqlOption For_xml_null_treatment
syn keyword sqlOption Force_view_creation
syn keyword sqlOption Global_database_id
syn keyword sqlOption Http_session_timeout
syn keyword sqlOption Http_connection_pool_basesize
syn keyword sqlOption Http_connection_pool_timeout
syn keyword sqlOption Integrated_server_name
syn keyword sqlOption Isolation_level
syn keyword sqlOption Java_class_path
syn keyword sqlOption Java_location
syn keyword sqlOption Java_main_userid
syn keyword sqlOption Java_vm_options
@@ -790,6 +810,7 @@ syn keyword sqlOption Max_recursive_iterations
syn keyword sqlOption Max_statement_count
syn keyword sqlOption Max_temp_space
syn keyword sqlOption Min_password_length
syn keyword sqlOption Min_role_admins
syn keyword sqlOption Nearest_century
syn keyword sqlOption Non_keywords
syn keyword sqlOption Odbc_describe_binary_as_varbinary
@@ -807,6 +828,7 @@ syn keyword sqlOption Prefetch
syn keyword sqlOption Preserve_source_format
syn keyword sqlOption Prevent_article_pkey_update
syn keyword sqlOption Priority
syn keyword sqlOption Progress_messages
syn keyword sqlOption Query_mem_timeout
syn keyword sqlOption Quoted_identifier
syn keyword sqlOption Read_past_deleted
@@ -814,6 +836,7 @@ syn keyword sqlOption Recovery_time
syn keyword sqlOption Remote_idle_timeout
syn keyword sqlOption Replicate_all
syn keyword sqlOption Request_timeout
syn keyword sqlOption Reserved_keywords
syn keyword sqlOption Return_date_time_as_string
syn keyword sqlOption Rollback_on_deadlock
syn keyword sqlOption Row_counts
@@ -823,6 +846,12 @@ syn keyword sqlOption Sort_collation
syn keyword sqlOption Sql_flagger_error_level
syn keyword sqlOption Sql_flagger_warning_level
syn keyword sqlOption String_rtruncation
syn keyword sqlOption st_geometry_asbinary_format
syn keyword sqlOption st_geometry_astext_format
syn keyword sqlOption st_geometry_asxml_format
syn keyword sqlOption st_geometry_describe_type
syn keyword sqlOption st_geometry_interpolation
syn keyword sqlOption st_geometry_on_invalid
syn keyword sqlOption Subsume_row_locks
syn keyword sqlOption Suppress_tds_debugging
syn keyword sqlOption Synchronize_mirror_on_commit
@@ -831,6 +860,7 @@ syn keyword sqlOption Temp_space_limit_check
syn keyword sqlOption Time_format
syn keyword sqlOption Time_zone_adjustment
syn keyword sqlOption Timestamp_format
syn keyword sqlOption Timestamp_with_time_zone_format
syn keyword sqlOption Truncate_timestamp_values
syn keyword sqlOption Tsql_outer_joins
syn keyword sqlOption Tsql_variables
@@ -842,6 +872,7 @@ syn keyword sqlOption Uuid_has_hyphens
syn keyword sqlOption Verify_password_function
syn keyword sqlOption Wait_for_commit
syn keyword sqlOption Webservice_namespace_host
syn keyword sqlOption Webservice_sessionid_name
" Strings and characters:
syn region sqlString start=+"+ end=+"+ contains=@Spell
@@ -859,32 +890,18 @@ syn sync ccomment sqlComment
syn sync ccomment sqlDashComment
syn sync ccomment sqlSlashComment
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_sql_syn_inits")
if version < 508
let did_sql_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi link <args>
endif
HiLink sqlDashComment Comment
HiLink sqlSlashComment Comment
HiLink sqlMultiComment Comment
HiLink sqlNumber Number
HiLink sqlOperator Operator
HiLink sqlSpecial Special
HiLink sqlKeyword Keyword
HiLink sqlStatement Statement
HiLink sqlString String
HiLink sqlType Type
HiLink sqlFunction Function
HiLink sqlOption PreProc
delcommand HiLink
endif
hi def link sqlDashComment Comment
hi def link sqlSlashComment Comment
hi def link sqlMultiComment Comment
hi def link sqlNumber Number
hi def link sqlOperator Operator
hi def link sqlSpecial Special
hi def link sqlKeyword Keyword
hi def link sqlStatement Statement
hi def link sqlString String
hi def link sqlType Type
hi def link sqlFunction Function
hi def link sqlOption PreProc
let b:current_syntax = "sqlanywhere"

View File

@@ -2,7 +2,7 @@
" Language: TeX
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Mar 11, 2013
" Version: 77
" Version: 78
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
"
" Notes: {{{1
@@ -55,11 +55,20 @@ endif
if exists("g:tex_no_error") && g:tex_no_error
let s:tex_no_error= 1
endif
if exists("g:tex_fast") && g:tex_fast
let s:tex_no_error= 1
endif
if exists("g:tex_tex") && !exists("g:tex_no_error")
" by default, enable all region-based highlighting
let s:tex_fast= "bcmMprsSvV"
if exists("g:tex_fast")
if type(g:tex_fast) != 1
" g:tex_fast exists and is not a string, so
" turn off all optional region-based highighting
let s:tex_fast= ""
else
let s:tex_fast= g:tex_fast
endif
let s:tex_no_error= 1
else
let s:tex_fast= "bcmMprsSvV"
endif
" let user determine which classes of concealment will be supported
@@ -159,7 +168,7 @@ if !exists("tex_no_math")
endif
" Try to flag {} and () mismatches: {{{1
if !exists("g:tex_fast") || g:tex_fast =~ 'm'
if s:tex_fast =~ 'm'
if !exists("s:tex_no_error")
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup,texError
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup,texError,@NoSpell
@@ -176,7 +185,7 @@ endif
if !exists("s:tex_no_error")
syn match texError "[}\])]"
endif
if !exists("g:tex_fast") || g:tex_fast =~ 'M'
if s:tex_fast =~ 'M'
if !exists("tex_no_math")
if !exists("s:tex_no_error")
syn match texMathError "}" contained
@@ -220,14 +229,14 @@ syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)$"
" \begin{}/\end{} section markers: {{{1
syn match texBeginEnd "\\begin\>\|\\end\>" nextgroup=texBeginEndName
if !exists("g:tex_fast") || g:tex_fast =~ 'm'
if s:tex_fast =~ 'm'
syn region texBeginEndName matchgroup=Delimiter start="{" end="}" contained nextgroup=texBeginEndModifier contains=texComment
syn region texBeginEndModifier matchgroup=Delimiter start="\[" end="]" contained contains=texComment,@NoSpell
endif
" \documentclass, \documentstyle, \usepackage: {{{1
syn match texDocType "\\documentclass\>\|\\documentstyle\>\|\\usepackage\>" nextgroup=texBeginEndName,texDocTypeArgs
if !exists("g:tex_fast") || g:tex_fast =~ 'm'
if s:tex_fast =~ 'm'
syn region texDocTypeArgs matchgroup=Delimiter start="\[" end="]" contained nextgroup=texBeginEndName contains=texComment,@NoSpell
endif
@@ -241,7 +250,7 @@ syn match texInput "\\input\s\+[a-zA-Z/.0-9_^]\+"hs=s+7 contains=texStatemen
syn match texInputFile "\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
syn match texInputFile "\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
syn match texInputCurlies "[{}]" contained
if !exists("g:tex_fast") || g:tex_fast =~ 'm'
if s:tex_fast =~ 'm'
syn region texInputFileOpt matchgroup=Delimiter start="\[" end="\]" contained contains=texComment
endif
@@ -309,7 +318,7 @@ syn match texSpaceCode "\\\(math\|cat\|del\|lc\|sf\|uc\)code`"me=e-1 nextgroup=
syn match texSpaceCodeChar "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)" contained
" Sections, subsections, etc: {{{1
if !exists("g:tex_fast") || g:tex_fast =~ 'p'
if s:tex_fast =~ 'p'
if !exists("g:tex_nospell") || !g:tex_nospell
if g:tex_fold_enabled && has("folding")
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold contains=@texFoldGroup,@texDocGroup,@Spell
@@ -362,7 +371,7 @@ if !exists("g:tex_fast") || g:tex_fast =~ 'p'
endif
" particular support for bold and italic {{{1
if !exists("g:tex_fast") || g:tex_fast =~ 'b'
if s:tex_fast =~ 'b'
if s:tex_conceal =~ 'b'
syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" end="}" concealends contains=@texBoldGroup
syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" end="}" concealends contains=@texItalGroup
@@ -372,7 +381,7 @@ if !exists("g:tex_fast") || g:tex_fast =~ 'b'
endif
" Bad Math (mismatched): {{{1
if !exists("tex_no_math")
if !exists("g:tex_no_math") && !exists("s:tex_no_error")
syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|subequations\|smallmatrix\|xxalignat\)\s*}"
syn match texBadMath "\\end\s*{\s*\(align\|alignat\|displaymath\|displaymath\|eqnarray\|equation\|flalign\|gather\|math\|multline\|xalignat\)\*\=\s*}"
syn match texBadMath "\\[\])]"
@@ -393,7 +402,7 @@ if !exists("tex_no_math")
let foldcmd= ""
endif
exe "syn cluster texMathZones add=".grpname
if !exists("g:tex_fast") || g:tex_fast =~ 'M'
if s:tex_fast =~ 'M'
exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
@@ -403,7 +412,7 @@ if !exists("tex_no_math")
let grpname = "texMathZone".a:sfx.'S'
let syncname = "texSyncMathZone".a:sfx.'S'
exe "syn cluster texMathZones add=".grpname
if !exists("g:tex_fast") || g:tex_fast =~ 'M'
if s:tex_fast =~ 'M'
exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
@@ -427,7 +436,7 @@ if !exists("tex_no_math")
call TexNewMathZone("L","xxalignat",0)
" Inline Math Zones: {{{2
if !exists("g:tex_fast") || g:tex_fast =~ 'M'
if s:tex_fast =~ 'M'
if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~ 'd'
syn region texMathZoneV matchgroup=Delimiter start="\\(" matchgroup=Delimiter end="\\)\|%stopzone\>" keepend concealends contains=@texMathZoneGroup
syn region texMathZoneW matchgroup=Delimiter start="\\\[" matchgroup=Delimiter end="\\]\|%stopzone\>" keepend concealends contains=@texMathZoneGroup
@@ -445,7 +454,7 @@ if !exists("tex_no_math")
syn match texMathOper "[_^=]" contained
" Text Inside Math Zones: {{{2
if !exists("g:tex_fast") || g:tex_fast =~ 'M'
if s:tex_fast =~ 'M'
if !exists("g:tex_nospell") || !g:tex_nospell
syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup,@Spell
else
@@ -540,13 +549,13 @@ else
" allows syntax-folding of 2 or more contiguous comment lines
" single-line comments are not folded
syn match texComment "%.*$" contains=@texCommentGroup
if !exists("g:tex_fast") || g:tex_fast =~ 'c'
if s:tex_fast =~ 'c'
syn region texComment start="^\zs\s*%.*\_s*%" skip="^\s*%" end='^\ze\s*[^%]' fold
syn region texNoSpell contained fold matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
endif
else
syn match texComment "%.*$" contains=@texCommentGroup
if !exists("g:tex_fast") || g:tex_fast =~ 'c'
if s:tex_fast =~ 'c'
syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
endif
endif
@@ -555,7 +564,7 @@ endif
" Separate lines used for verb` and verb# so that the end conditions {{{1
" will appropriately terminate.
" If g:tex_verbspell exists, then verbatim texZones will permit spellchecking there.
if !exists("g:tex_fast") || g:tex_fast =~ 'v'
if s:tex_fast =~ 'v'
if exists("g:tex_verbspell") && g:tex_verbspell
syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>" contains=@Spell
" listings package:
@@ -586,7 +595,7 @@ if !exists("g:tex_fast") || g:tex_fast =~ 'v'
endif
" Tex Reference Zones: {{{1
if !exists("g:tex_fast") || g:tex_fast =~ 'r'
if s:tex_fast =~ 'r'
syn region texZone matchgroup=texStatement start="@samp{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\nocite{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\bibliography{" end="}\|%stopzone\>" contains=@texRefGroup
@@ -600,13 +609,13 @@ syn match texRefZone '\\cite\%([tp]\*\=\)\=' nextgroup=texRefOption,texCite
" Handle newcommand, newenvironment : {{{1
syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl
if !exists("g:tex_fast") || g:tex_fast =~ 'V'
if s:tex_fast =~ 'V'
syn region texCmdName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texCmdArgs,texCmdBody skipwhite skipnl
syn region texCmdArgs contained matchgroup=Delimiter start="\["rs=s+1 end="]" nextgroup=texCmdBody skipwhite skipnl
syn region texCmdBody contained matchgroup=Delimiter start="{"rs=s+1 skip="\\\\\|\\[{}]" matchgroup=Delimiter end="}" contains=@texCmdGroup
endif
syn match texNewEnv "\\newenvironment\>" nextgroup=texEnvName skipwhite skipnl
if !exists("g:tex_fast") || g:tex_fast =~ 'V'
if s:tex_fast =~ 'V'
syn region texEnvName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvBgn skipwhite skipnl
syn region texEnvBgn contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvEnd skipwhite skipnl contains=@texEnvGroup
syn region texEnvEnd contained matchgroup=Delimiter start="{"rs=s+1 end="}" skipwhite skipnl contains=@texEnvGroup
@@ -632,11 +641,11 @@ syn match texString "\(``\|''\|,,\)"
" makeatletter -- makeatother sections
if !exists("s:tex_no_error")
if !exists("g:tex_fast") || g:tex_fast =~ 'S'
if s:tex_fast =~ 'S'
syn region texStyle matchgroup=texStatement start='\\makeatletter' end='\\makeatother' contains=@texStyleGroup contained
endif
syn match texStyleStatement "\\[a-zA-Z@]\+" contained
if !exists("g:tex_fast") || g:tex_fast =~ 'S'
if s:tex_fast =~ 'S'
syn region texStyleMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texStyleGroup,texError contained
syn region texStyleMatcher matchgroup=Delimiter start="\[" end="]" contains=@texStyleGroup,texError contained
endif
@@ -1014,7 +1023,7 @@ if has("conceal") && &enc == 'utf-8'
" Superscripts/Subscripts {{{2
if s:tex_conceal =~ 's'
if !exists("g:tex_fast") || g:tex_fast =~ 's'
if s:tex_fast =~ 's'
syn region texSuperscript matchgroup=Delimiter start='\^{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSuperscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
syn region texSubscript matchgroup=Delimiter start='_{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSubscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
endif
@@ -1227,7 +1236,7 @@ if did_tex_syntax_inits == 1
let did_tex_syntax_inits= 2
" TeX highlighting groups which should share similar highlighting
if !exists("s:tex_no_error")
if !exists("tex_no_math")
if !exists("g:tex_no_math")
HiLink texBadMath texError
HiLink texMathDelimBad texError
HiLink texMathError texError

210
runtime/syntax/tt2.vim Normal file
View File

@@ -0,0 +1,210 @@
" Language: TT2 (Perl Template Toolkit)
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-05-12
"
" Instration:
" put tt2.vim and tt2html.vim in to your syntax diretory.
"
" add below in your filetype.vim.
" au BufNewFile,BufRead *.tt2 setf tt2
" or
" au BufNewFile,BufRead *.tt2
" \ if ( getline(1) . getline(2) . getline(3) =~ '<\chtml' |
" \ && getline(1) . getline(2) . getline(3) !~ '<[%?]' ) |
" \ || getline(1) =~ '<!DOCTYPE HTML' |
" \ setf tt2html |
" \ else |
" \ setf tt2 |
" \ endif
"
" define START_TAG, END_TAG
" "ASP"
" :let b:tt2_syn_tags = '<% %>'
" "PHP"
" :let b:tt2_syn_tags = '<? ?>'
" "TT2 and HTML"
" :let b:tt2_syn_tags = '\[% %] <!-- -->'
"
" Changes:
" 0.1.3
" Changed fileformat from 'dos' to 'unix'
" Deleted 'echo' that print obstructive message
" 0.1.2
" Added block comment syntax
" e.g. [%# COMMENT
" COMMENT TOO %]
" [%# IT'S SAFE %] HERE IS OUTSIDE OF TT2 DIRECTIVE
" [% # WRONG!! %] HERE STILL BE COMMENT
" 0.1.1
" Release
" 0.1.0
" Internal
"
" License: follow Vim :help uganda
"
if !exists("b:tt2_syn_tags")
let b:tt2_syn_tags = '\[% %]'
"let b:tt2_syn_tags = '\[% %] \[\* \*]'
endif
if !exists("b:tt2_syn_inc_perl")
let b:tt2_syn_inc_perl = 1
endif
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn case match
syn cluster tt2_top_cluster contains=tt2_perlcode,tt2_tag_region
" TT2 TAG Region
if exists("b:tt2_syn_tags")
let s:str = b:tt2_syn_tags . ' '
let s:str = substitute(s:str,'^ \+','','g')
let s:str = substitute(s:str,' \+',' ','g')
while stridx(s:str,' ') > 0
let s:st = strpart(s:str,0,stridx(s:str,' '))
let s:str = substitute(s:str,'[^ ]* ','',"")
let s:ed = strpart(s:str,0,stridx(s:str,' '))
let s:str = substitute(s:str,'[^ ]* ','',"")
exec 'syn region tt2_tag_region '.
\ 'matchgroup=tt2_tag '.
\ 'start=+\(' . s:st .'\)[-]\=+ '.
\ 'end=+[-]\=\(' . s:ed . '\)+ '.
\ 'contains=@tt2_statement_cluster keepend extend'
exec 'syn region tt2_commentblock_region '.
\ 'matchgroup=tt2_tag '.
\ 'start=+\(' . s:st .'\)[-]\=\(#\)\@=+ '.
\ 'end=+[-]\=\(' . s:ed . '\)+ '.
\ 'keepend extend'
"Include Perl syntax when 'PERL' 'RAWPERL' block
if b:tt2_syn_inc_perl
syn include @Perl $VIMRUNTIME/syntax/perl.vim
exec 'syn region tt2_perlcode '.
\ 'start=+\(\(RAW\)\=PERL\s*[-]\=' . s:ed . '\(\n\)\=\)\@<=+ ' .
\ 'end=+' . s:st . '[-]\=\s*END+me=s-1 contains=@Perl keepend'
endif
"echo 'TAGS ' . s:st . ' ' . s:ed
unlet s:st
unlet s:ed
endwhile
else
syn region tt2_tag_region
\ matchgroup=tt2_tag
\ start=+\(\[%\)[-]\=+
\ end=+[-]\=%\]+
\ contains=@tt2_statement_cluster keepend extend
syn region tt2_commentblock_region
\ matchgroup=tt2_tag
\ start=+\(\[%\)[-]\=#+
\ end=+[-]\=%\]+
\ keepend extend
"Include Perl syntax when 'PERL' 'RAWPERL' block
if b:tt2_syn_inc_perl
syn include @Perl $VIMRUNTIME/syntax/perl.vim
syn region tt2_perlcode
\ start=+\(\(RAW\)\=PERL\s*[-]\=%]\(\n\)\=\)\@<=+
\ end=+\[%[-]\=\s*END+me=s-1
\ contains=@Perl keepend
endif
endif
" Directive
syn keyword tt2_directive contained
\ GET CALL SET DEFAULT DEBUG
\ LAST NEXT BREAK STOP BLOCK
\ IF IN UNLESS ELSIF FOR FOREACH WHILE SWITCH CASE
\ USE PLUGIN MACRO META
\ TRY FINAL RETURN LAST
\ CLEAR TO STEP AND OR NOT MOD DIV
\ ELSE PERL RAWPERL END
syn match tt2_directive +|+ contained
syn keyword tt2_directive contained nextgroup=tt2_string_q,tt2_string_qq,tt2_blockname skipwhite skipempty
\ INSERT INCLUDE PROCESS WRAPPER FILTER
\ THROW CATCH
syn keyword tt2_directive contained nextgroup=tt2_def_tag skipwhite skipempty
\ TAGS
syn match tt2_def_tag "\S\+\s\+\S\+\|\<\w\+\>" contained
syn match tt2_variable +\I\w*+ contained
syn match tt2_operator "[+*/%:?-]" contained
syn match tt2_operator "\<\(mod\|div\|or\|and\|not\)\>" contained
syn match tt2_operator "[!=<>]=\=\|&&\|||" contained
syn match tt2_operator "\(\s\)\@<=_\(\s\)\@=" contained
syn match tt2_operator "=>\|," contained
syn match tt2_deref "\([[:alnum:]_)\]}]\s*\)\@<=\." contained
syn match tt2_comment +#.*$+ contained extend
syn match tt2_func +\<\I\w*\(\s*(\)\@=+ contained nextgroup=tt2_bracket_r skipempty skipwhite
"
syn region tt2_bracket_r start=+(+ end=+)+ contained contains=@tt2_statement_cluster keepend extend
syn region tt2_bracket_b start=+\[+ end=+]+ contained contains=@tt2_statement_cluster keepend extend
syn region tt2_bracket_b start=+{+ end=+}+ contained contains=@tt2_statement_cluster keepend extend
syn region tt2_string_qq start=+"+ end=+"+ skip=+\\"+ contained contains=tt2_ivariable keepend extend
syn region tt2_string_q start=+'+ end=+'+ skip=+\\'+ contained keepend extend
syn match tt2_ivariable +\$\I\w*\>\(\.\I\w*\>\)*+ contained
syn match tt2_ivariable +\${\I\w*\>\(\.\I\w*\>\)*}+ contained
syn match tt2_number "\d\+" contained
syn match tt2_number "\d\+\.\d\+" contained
syn match tt2_number "0x\x\+" contained
syn match tt2_number "0\o\+" contained
syn match tt2_blockname "\f\+" contained nextgroup=tt2_blockname_joint skipwhite skipempty
syn match tt2_blockname "$\w\+" contained contains=tt2_ivariable nextgroup=tt2_blockname_joint skipwhite skipempty
syn region tt2_blockname start=+"+ end=+"+ skip=+\\"+ contained contains=tt2_ivariable nextgroup=tt2_blockname_joint keepend skipwhite skipempty
syn region tt2_blockname start=+'+ end=+'+ skip=+\\'+ contained nextgroup=tt2_blockname_joint keepend skipwhite skipempty
syn match tt2_blockname_joint "+" contained nextgroup=tt2_blockname skipwhite skipempty
syn cluster tt2_statement_cluster contains=tt2_directive,tt2_variable,tt2_operator,tt2_string_q,tt2_string_qq,tt2_deref,tt2_comment,tt2_func,tt2_bracket_b,tt2_bracket_r,tt2_number
" Synchronizing
syn sync minlines=50
hi def link tt2_tag Type
hi def link tt2_tag_region Type
hi def link tt2_commentblock_region Comment
hi def link tt2_directive Statement
hi def link tt2_variable Identifier
hi def link tt2_ivariable Identifier
hi def link tt2_operator Statement
hi def link tt2_string_qq String
hi def link tt2_string_q String
hi def link tt2_blockname String
hi def link tt2_comment Comment
hi def link tt2_func Function
hi def link tt2_number Number
if exists("b:tt2_syn_tags")
unlet b:tt2_syn_tags
endif
let b:current_syntax = "tt2"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:ts=4:sw=4

View File

@@ -0,0 +1,20 @@
" Language: TT2 embedded with HTML
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2010-07-21
if exists("b:current_syntax")
finish
endif
runtime! syntax/html.vim
unlet b:current_syntax
runtime! syntax/tt2.vim
unlet b:current_syntax
syn cluster htmlPreProc add=@tt2_top_cluster
let b:current_syntax = "tt2html"

20
runtime/syntax/tt2js.vim Normal file
View File

@@ -0,0 +1,20 @@
" Language: TT2 embedded with Javascript
" Maintainer: Andy Lester <andy@petdance.com>
" Author: Yates, Peter <pd.yates@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-04-10
if exists("b:current_syntax")
finish
endif
runtime! syntax/javascript.vim
unlet b:current_syntax
runtime! syntax/tt2.vim
unlet b:current_syntax
syn cluster javascriptPreProc add=@tt2_top_cluster
let b:current_syntax = "tt2js"

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Motif UIL (User Interface Language)
" Maintainer: Thomas Koehler <jean-luc@picard.franken.de>
" Last Change: 2012 May 14
" Last Change: 2013 May 23
" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/uil.vim
" Quit when a syntax file was already loaded
@@ -25,11 +25,11 @@ syn keyword uilTodo contained TODO
syn match uilSpecial contained "\\\d\d\d\|\\."
syn region uilString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell,uilSpecial
syn match uilCharacter "'[^\\]'"
syn region uilString start=+'+ skip=+\\\\\|\\"+ end=+'+ contains=@Spell,uilSpecial
syn region uilString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@Spell,uilSpecial
syn match uilSpecialCharacter "'\\.'"
syn match uilSpecialStatement "Xm[^ =(){}]*"
syn match uilSpecialStatement "Xm[^ =(){}:;]*"
syn match uilSpecialFunction "MrmNcreateCallback"
syn match uilRessource "XmN[^ =(){}]*"
syn match uilRessource "XmN[^ =(){}:;]*"
syn match uilNumber "-\=\<\d*\.\=\d\+\(e\=f\=\|[uU]\=[lL]\=\)\>"
syn match uilNumber "0[xX]\x\+\>"

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: February 15, 2013
" Version: 7.3-24
" Last Change: May 29, 2013
" Version: 7.3-25
" Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2
@@ -18,12 +18,12 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
syn cluster vimCommentGroup contains=vimTodo,@Spell
" regular vim commands {{{2
syn keyword vimCommand contained a arga[dd] ar[gs] bar bn[ext] breaka[dd] bu bw[ipeout] caddf[ile] cd cgete[xpr] checkt[ime] cmdname cnf com con[tinue] cq[uit] cw[indow] delc[ommand] diffg[et] diffpu[t] dig[raphs] dr[op] earlier el[se] endfo[r] ene[w] filename fin[d] folddoc[losed] fu[nction] gui helpg[rep] ia in j[oin] kee[pmarks] laddf[ile] lb[uffer] le[ft] lgetb[uffer] l[ist] lN lNf lo[adview] lpf[ile] luado mak[e] menut[ranslate] mks[ession] mod[e] n new noautocmd on[ly] pc[lose] popu p[rint] promptr[epl] ptn pts[elect] py[thon] quote redi[r] res[ize] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sfir[st] sim[alt] sme snoreme spe spellw[rong] star stj[ump] sunme sy t tabe[dit] tabN tabp[revious] tc[l] th[row] tn to[pleft] ts[elect] una[bbreviate] unl ve vie[w] vmapc[lear] wh[ile] win[size] wqa[ll] x xmenu xterm
syn keyword vimCommand contained ab argd[elete] argu[ment] bd[elete] bN[ext] breakd[el] buf c cal[l] ce[nter] cg[etfile] cl cn cNf comc[lear] cope[n] cr[ewind] d d[elete] diffo diffsplit di[splay] ds[earch] ec elsei[f] endfun ex files fini[sh] foldd[oopen] g gvim helpt[ags] iabc[lear] index ju[mps] l lan lc[d] lefta[bove] lgete[xpr] ll lne lnf[ile] locale lp[revious] luafile Man mes mksp[ell] m[ove] N n[ext] noh[lsearch] o[pen] pe popu[p] P[rint] ps[earch] ptN pu[t] python3 r red[o] ret[ab] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sh[ell] sl smenu snoremenu spelld[ump] sp[lit] start st[op] sunmenu syn ta tabf[ind] tabnew tabr[ewind] tcld[o] tj[ump] tN tp[revious] tu u[ndo] unlo[ckvar] verb[ose] vim[grep] vne[w] win wn[ext] w[rite] xa[ll] XMLent xunme
syn keyword vimCommand contained abc[lear] argdo as[cii] bel[owright] bo[tright] breakl[ist] bufdo cabc[lear] cat[ch] cex[pr] c[hange] cla[st] cN cnf[ile] comment co[py] cs de delf diffoff difft dj[ump] dsp[lit] echoe[rr] em[enu] endf[unction] exi[t] filet fir[st] foldo[pen] get h hi if intro k la lan[guage] lch[dir] let@ lg[etfile] lla[st] lnew[er] lNf[ile] loc[kmarks] lr[ewind] lv[imgrep] ma[rk] messages mkv mv nbc[lose] N[ext] nu[mber] opt[ions] ped[it] pp[op] pro pta[g] ptn[ext] pw[d] q re redr[aw] retu[rn] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spe[llgood] spr[evious] startg[replace] stopi[nsert] sus[pend] sync tab tabfir[st] tabn[ext] tabs tclf[ile] tl[ast] tn[ext] tr tu[nmenu] undoj[oin] uns[ilent] ve[rsion] vimgrepa[dd] vs[plit] winc[md] wN[ext] ws[verb] x[it] XMLns xunmenu
syn keyword vimCommand contained abo[veleft] arge[dit] au bf[irst] bp[revious] br[ewind] b[uffer] cad cb[uffer] cf[ile] changes cl[ist] cnew[er] cNf[ile] comp[iler] count cscope debug delf[unction] DiffOrig diffthis dl[ist] dwim echom[sg] emenu* en[dif] exu[sage] filetype fix[del] for go[to] ha[rdcopy] hid[e] ij[ump] is[earch] keepa lad la[st] lcl[ose] lex[pr] lgr[ep] lli[st] lne[xt] lo lockv[ar] ls lvimgrepa[dd] marks mk mkvie[w] mz nb[key] nkf o ownsyntax pe[rl] pr profd[el] ptf[irst] ptN[ext] py qa[ll] r[ead] redraws[tatus] rew[ind] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spelli[nfo] sre[wind] star[tinsert] sts[elect] sv[iew] syncbind tabc[lose] tabl[ast] tabN[ext] ta[g] te[aroff] tm tN[ext] tr[ewind] u undol[ist] up[date] vert[ical] vi[sual] w windo wp[revious] wundo xmapc[lear] xnoreme xwininfo
syn keyword vimCommand contained al[l] argg[lobal] bad[d] bl[ast] br bro[wse] buffers caddb[uffer] cc cfir[st] chd[ir] clo[se] cn[ext] col[der] con cpf[ile] cstag debugg[reedy] delm[arks] diffp diffu[pdate] do e echon en endt[ry] f fin fo[ld] fu gr[ep] h[elp] his[tory] il[ist] isp[lit] keepalt laddb[uffer] lat lcs lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lol[der] lt[ag] lw[indow] mat[ch] mkdir mkv[imrc] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p perld[o] pre[serve] prof[ile] ptj[ump] ptp[revious] py3 q[uit] rec[over] reg[isters] ri[ght] rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spellr[epall] st startr[eplace] sun[hide] sw[apname] synlist tabd[o] tabm[ove] tabo[nly] tags tf[irst] tm[enu] TOhtml try un unh[ide] v vi viu[sage] wa[ll] winp[os] wq wv[iminfo] xme xnoremenu y[ank]
syn keyword vimCommand contained ar argl[ocal] ba[ll] bm[odified] brea[k] browseset bun[load] cad[dexpr] ccl[ose] cgetb[uffer] che[ckpath] cmapc[lear] cN[ext] colo[rscheme] conf[irm] cp[revious] cuna[bbrev] del di diffpatch dig doau ea e[dit] endf endw[hile] f[ile] fina[lly] foldc[lose] fun grepa[dd] helpf[ind] i imapc[lear] iuna[bbrev] keepj[umps] lad[dexpr] later lcscope lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lop[en] lua ma menut mk[exrc] mo mz[scheme] ne noa omapc[lear] P po[p] prev[ious] promptf[ind] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red Ren rightb[elow] ru[ntime] sba[ll] sbp[revious] scs sf[ind] sil[ent] sm[ap] sno[magic] so[urce] spellu[ndo] sta[g]
syn keyword vimCommand contained a arga[dd] ar[gs] bar bn[ext] breaka[dd] bu bw[ipeout] caddf[ile] cd cgete[xpr] checkt[ime] cmdname cnf com con[tinue] cq[uit] cw[indow] delc[ommand] diffg[et] diffpu[t] dig[raphs] dr[op] earlier el[se] endfo[r] ene[w] filename fin[d] folddoc[losed] fu[nction] gui helpg[rep] ia in j[oin] kee[pmarks] laddf[ile] lb[uffer] le[ft] lgetb[uffer] l[ist] lN lNf lo[adview] lpf[ile] luado mak[e] menut[ranslate] mks[ession] mod[e] n new noautocmd on[ly] pc[lose] popu p[rint] promptr[epl] ptn pts[elect] py[thon] quote redi[r] res[ize] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sfir[st] sim[alt] sme snoreme spe spellw[rong] star st[op] sunmenu syn ta tabf[ind] tabnew tabr[ewind] tcld[o] tj[ump] tN tp[revious] tu u[ndo] unlo[ckvar] verb[ose] vim[grep] vne[w] win wn[ext] w[rite] xa[ll] XMLent xunme
syn keyword vimCommand contained ab argd[elete] argu[ment] bd[elete] bN[ext] breakd[el] buf c cal[l] ce[nter] cg[etfile] cl cn cNf comc[lear] cope[n] cr[ewind] d d[elete] diffo diffsplit di[splay] ds[earch] ec elsei[f] endfun ex files fini[sh] foldd[oopen] g gvim helpt[ags] iabc[lear] index ju[mps] l lan lc[d] lefta[bove] lgete[xpr] ll lne lnf[ile] locale lp[revious] luafile Man mes mksp[ell] m[ove] N n[ext] noh[lsearch] o[pen] pe popu[p] P[rint] ps[earch] ptN pu[t] python3 r red[o] ret[ab] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sh[ell] sl smenu snoremenu spelld[ump] sp[lit] start stopi[nsert] sus[pend] sync tab tabfir[st] tabn[ext] tabs tclf[ile] tl[ast] tn[ext] tr tu[nmenu] undoj[oin] uns[ilent] ve[rsion] vimgrepa[dd] vs[plit] winc[md] wN[ext] ws[verb] x[it] XMLns xunmenu
syn keyword vimCommand contained abc[lear] argdo as[cii] bel[owright] bo[tright] breakl[ist] bufdo cabc[lear] cat[ch] cex[pr] c[hange] cla[st] cN cnf[ile] comment co[py] cs de delf diffoff difft dj[ump] dsp[lit] echoe[rr] em[enu] endf[unction] exi[t] filet fir[st] foldo[pen] get h hi if intro k la lan[guage] lch[dir] let@ lg[etfile] lla[st] lnew[er] lNf[ile] loc[kmarks] lr[ewind] lv[imgrep] ma[rk] messages mkv mv nbc[lose] N[ext] nu[mber] opt[ions] ped[it] pp[op] pro pta[g] ptn[ext] pw[d] q re redr[aw] retu[rn] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spe[llgood] spr[evious] startg[replace] sts[elect] sv[iew] syncbind tabc[lose] tabl[ast] tabN[ext] ta[g] te[aroff] tm tN[ext] tr[ewind] u undol[ist] up[date] vert[ical] vi[sual] w windo wp[revious] wundo xmapc[lear] xnoreme xwininfo
syn keyword vimCommand contained abo[veleft] arge[dit] au bf[irst] bp[revious] br[ewind] b[uffer] cad cb[uffer] cf[ile] changes cl[ist] cnew[er] cNf[ile] comp[iler] count cscope debug delf[unction] DiffOrig diffthis dl[ist] dwim echom[sg] emenu* en[dif] exu[sage] filetype fix[del] for go[to] ha[rdcopy] hid[e] ij[ump] is[earch] keepa lad la[st] lcl[ose] lex[pr] lgr[ep] lli[st] lne[xt] lo lockv[ar] ls lvimgrepa[dd] marks mk mkvie[w] mz nb[key] nkf o ownsyntax pe[rl] pr profd[el] ptf[irst] ptN[ext] py qa[ll] r[ead] redraws[tatus] rew[ind] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spelli[nfo] sre[wind] star[tinsert] sun[hide] sw[apname] synlist tabd[o] tabm[ove] tabo[nly] tags tf[irst] tm[enu] TOhtml try un unh[ide] v vi viu[sage] wa[ll] winp[os] wq wv[iminfo] xme xnoremenu y[ank]
syn keyword vimCommand contained al[l] argg[lobal] bad[d] bl[ast] br bro[wse] buffers caddb[uffer] cc cfir[st] chd[ir] clo[se] cn[ext] col[der] con cpf[ile] cstag debugg[reedy] delm[arks] diffp diffu[pdate] do e echon en endt[ry] f fin fo[ld] fu gr[ep] h[elp] his[tory] il[ist] isp[lit] keepalt laddb[uffer] lat lcs lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lol[der] lt[ag] lw[indow] mat[ch] mkdir mkv[imrc] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p perld[o] pre[serve] prof[ile] ptj[ump] ptp[revious] py3 q[uit] rec[over] reg[isters] ri[ght] rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spellr[epall] st startr[eplace] sunme sy t tabe[dit] tabN tabp[revious] tc[l] th[row] tn to[pleft] ts[elect] una[bbreviate] unl ve vie[w] vmapc[lear] wh[ile] win[size] wqa[ll] x xmenu xterm errormsg
syn keyword vimCommand contained ar argl[ocal] ba[ll] bm[odified] brea[k] browseset bun[load] cad[dexpr] ccl[ose] cgetb[uffer] che[ckpath] cmapc[lear] cN[ext] colo[rscheme] conf[irm] cp[revious] cuna[bbrev] del di diffpatch dig doau ea e[dit] endf endw[hile] f[ile] fina[lly] foldc[lose] fun grepa[dd] helpf[ind] i imapc[lear] iuna[bbrev] keepj[umps] lad[dexpr] later lcscope lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lop[en] lua ma menut mk[exrc] mo mz[scheme] ne noa omapc[lear] P po[p] prev[ious] promptf[ind] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red Ren rightb[elow] ru[ntime] sba[ll] sbp[revious] scs sf[ind] sil[ent] sm[ap] sno[magic] so[urce] spellu[ndo] sta[g] stj[ump]
syn match vimCommand contained "\<z[-+^.=]\="
" vimOptions are caught only when contained in a vimSet {{{2
@@ -96,8 +96,8 @@ endif
" Numbers {{{2
" =======
syn match vimNumber "\<\d\+\([lL]\|\.\d\+\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "-\d\+\([lL]\|\.\d\+\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "\<0[xX]\x\+"
syn match vimNumber "#\x\{6}"

View File

@@ -3,7 +3,7 @@
" Maintainer: Johannes Zellner <johannes@zellner.org>
" Author and previous maintainer:
" Paul Siegmann <pauls@euronet.nl>
" Last Change: 2009-07-13 21:26:55
" Last Change: 2013 May 29
" Filenames: *.xml
" $Id: xml.vim,v 1.3 2006/04/11 21:32:00 vimboss Exp $
@@ -81,7 +81,7 @@ syn match xmlEqual +=+ display
" ^^^^^^^^^^^^^
"
syn match xmlAttrib
\ +[-'"<]\@<!\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>\(['">]\@!\|$\)+
\ +[-'"<]\@2<!\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>\(['">]\@!\|$\)+
\ contained
\ contains=xmlAttribPunct,@xmlAttribHook
\ display
@@ -98,14 +98,14 @@ syn match xmlAttrib
"
if exists("g:xml_namespace_transparent")
syn match xmlNamespace
\ +\(<\|</\)\@<=[^ /!?<>"':]\+[:]\@=+
\ +\(<\|</\)\@2<=[^ /!?<>"':]\+[:]\@=+
\ contained
\ contains=@xmlNamespaceHook
\ transparent
\ display
else
syn match xmlNamespace
\ +\(<\|</\)\@<=[^ /!?<>"':]\+[:]\@=+
\ +\(<\|</\)\@2<=[^ /!?<>"':]\+[:]\@=+
\ contained
\ contains=@xmlNamespaceHook
\ display
@@ -122,7 +122,7 @@ endif
" ^^^
"
syn match xmlTagName
\ +[<]\@<=[^ /!?<>"']\++
\ +[<]\@2<=[^ /!?<>"']\++
\ contained
\ contains=xmlNamespace,xmlAttribPunct,@xmlTagHook
\ display

File diff suppressed because it is too large Load Diff

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