From c9cd0464d2bce2ba9be1bdd903722b4070d6b8eb Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 13:40:17 +0200 Subject: [PATCH 01/15] updated for version 7.3.316 Problem: Crash when 'colorcolumn' is set and closing buffer. Solution: Check for w_buffer to be NULL. (Yasuhiro Matsumoto) --- src/option.c | 3 +++ src/version.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/option.c b/src/option.c index 4db302714a..977d83802b 100644 --- a/src/option.c +++ b/src/option.c @@ -7036,6 +7036,9 @@ check_colorcolumn(wp) int i; int j = 0; + if (wp->w_buffer == NULL) + return NULL; /* buffer was closed */ + for (s = wp->w_p_cc; *s != NUL && count < 255;) { if (*s == '-' || *s == '+') diff --git a/src/version.c b/src/version.c index d0e649c33c..d67e8d845f 100644 --- a/src/version.c +++ b/src/version.c @@ -709,6 +709,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 316, /**/ 315, /**/ From c972a5f2f6395d517e478551bf38e63810ffe70f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 13:40:17 +0200 Subject: [PATCH 02/15] Added tag v7-3-316 for changeset 33c140e4664d --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 51a38d7170..368207fac0 100644 --- a/.hgtags +++ b/.hgtags @@ -1650,3 +1650,4 @@ b3a523ced6bd1173e4c17611559c173094830d43 v7-3-304 dc60200a16b21c3e4157708bb825ea61b9e5bdc1 v7-3-313 6ab1b45cc95ed56105b2130dc9938bb8344ff903 v7-3-314 3ecf9e91d88acdb5eaaf93cc15a18914b60e0eb3 v7-3-315 +33c140e4664d102c34ec3ec5a17318f75cf475d7 v7-3-316 From 21743328d5a8f4b392ceff55faa9025bd5d08107 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 17:15:39 +0200 Subject: [PATCH 03/15] updated for version 7.3.317 Problem: Calling debug.debug() in Lua may cause Vim to hang. Solution: Add a better debug method. (Rob Hoelz, Luis Carvalho) --- src/if_lua.c | 33 +++++++++++++++++++++++++++++++++ src/version.c | 2 ++ 2 files changed, 35 insertions(+) diff --git a/src/if_lua.c b/src/if_lua.c index d3c6a42201..5e669045c0 100644 --- a/src/if_lua.c +++ b/src/if_lua.c @@ -100,6 +100,7 @@ static const char LUAVIM_FREE[] = "luaV_free"; #define lua_setfield dll_lua_setfield #define lua_rawset dll_lua_rawset #define lua_rawseti dll_lua_rawseti +#define lua_remove dll_lua_remove #define lua_setmetatable dll_lua_setmetatable #define lua_call dll_lua_call #define lua_pcall dll_lua_pcall @@ -161,6 +162,7 @@ int (*dll_lua_getmetatable) (lua_State *L, int objindex); void (*dll_lua_setfield) (lua_State *L, int idx, const char *k); void (*dll_lua_rawset) (lua_State *L, int idx); void (*dll_lua_rawseti) (lua_State *L, int idx, int n); +void (*dll_lua_remove) (lua_State *L, int idx); int (*dll_lua_setmetatable) (lua_State *L, int objindex); void (*dll_lua_call) (lua_State *L, int nargs, int nresults); int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc); @@ -229,6 +231,7 @@ static const luaV_Reg luaV_dll[] = { {"lua_setfield", (luaV_function) &dll_lua_setfield}, {"lua_rawset", (luaV_function) &dll_lua_rawset}, {"lua_rawseti", (luaV_function) &dll_lua_rawseti}, + {"lua_remove", (luaV_function) &dll_lua_remove}, {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable}, {"lua_call", (luaV_function) &dll_lua_call}, {"lua_pcall", (luaV_function) &dll_lua_pcall}, @@ -923,6 +926,31 @@ luaV_print(lua_State *L) return 0; } + static int +luaV_debug(lua_State *L) +{ + lua_settop(L, 0); + lua_getglobal(L, "vim"); + lua_getfield(L, -1, "eval"); + lua_remove(L, -2); /* vim.eval at position 1 */ + for (;;) + { + const char *input; + size_t l; + lua_pushvalue(L, 1); /* vim.eval */ + lua_pushliteral(L, "input('lua_debug> ')"); + lua_call(L, 1, 1); /* return string */ + input = lua_tolstring(L, -1, &l); + if (l == 0 || strcmp(input, "cont") == 0) + return 0; + msg_putchar('\n'); /* avoid outputting on input line */ + if (luaL_loadbuffer(L, input, l, "=(debug command)") + || lua_pcall(L, 0, 0, 0)) + luaV_emsg(L); + lua_settop(L, 1); /* remove eventual returns, but keep vim.eval */ + } +} + static int luaV_command(lua_State *L) { @@ -1082,6 +1110,11 @@ luaopen_vim(lua_State *L) /* print */ lua_pushcfunction(L, luaV_print); lua_setglobal(L, "print"); + /* debug.debug */ + lua_getglobal(L, "debug"); + lua_pushcfunction(L, luaV_debug); + lua_setfield(L, -2, "debug"); + lua_pop(L, 1); /* free */ lua_pushlightuserdata(L, (void *) LUAVIM_FREE); lua_pushcfunction(L, luaV_free); diff --git a/src/version.c b/src/version.c index d67e8d845f..35ed103da0 100644 --- a/src/version.c +++ b/src/version.c @@ -709,6 +709,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 317, /**/ 316, /**/ From ff682f824037fecb1067e37e06affef83f27e0d4 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 17:15:39 +0200 Subject: [PATCH 04/15] Added tag v7-3-317 for changeset 92a181a1cec3 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 368207fac0..95e099379b 100644 --- a/.hgtags +++ b/.hgtags @@ -1651,3 +1651,4 @@ dc60200a16b21c3e4157708bb825ea61b9e5bdc1 v7-3-313 6ab1b45cc95ed56105b2130dc9938bb8344ff903 v7-3-314 3ecf9e91d88acdb5eaaf93cc15a18914b60e0eb3 v7-3-315 33c140e4664d102c34ec3ec5a17318f75cf475d7 v7-3-316 +92a181a1cec3fec52cde1b3d71f628a3a2dc53c6 v7-3-317 From 811ca114411d47dc6d4b5455242bb64ec57c2d7e Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 17:33:53 +0200 Subject: [PATCH 05/15] updated for version 7.3.318 Problem: "C" on the last line deletes that line if it's blank. Solution: Only delete the last line for a delete operation. (James Vega) --- src/ops.c | 10 ++++++---- src/version.c | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ops.c b/src/ops.c index 41193566db..656285a50f 100644 --- a/src/ops.c +++ b/src/ops.c @@ -1922,7 +1922,9 @@ op_delete(oap) curwin->w_cursor.coladd = 0; } #endif - if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count + if (oap->op_type == OP_DELETE + && oap->inclusive + && oap->end.lnum == curbuf->b_ml.ml_line_count && n > (int)STRLEN(ml_get(oap->end.lnum))) { /* Special case: gH deletes the last line. */ @@ -3331,8 +3333,8 @@ do_put(regname, dir, count, flags) if (regname == '=') { /* For the = register we need to split the string at NL - * characters. */ - /* Loop twice: count the number of lines and save them. */ + * characters. + * Loop twice: count the number of lines and save them. */ for (;;) { y_size = 0; @@ -3348,7 +3350,7 @@ do_put(regname, dir, count, flags) if (y_array != NULL) *ptr = NUL; ++ptr; - /* A trailing '\n' makes the string linewise */ + /* A trailing '\n' makes the register linewise. */ if (*ptr == NUL) { y_type = MLINE; diff --git a/src/version.c b/src/version.c index 35ed103da0..a22a46048d 100644 --- a/src/version.c +++ b/src/version.c @@ -709,6 +709,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 318, /**/ 317, /**/ From 43dc546e051e198e30c1b4a803cb188c4a5e6de2 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 17:33:53 +0200 Subject: [PATCH 06/15] Added tag v7-3-318 for changeset d68f20a86a3e --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 95e099379b..1db3766d01 100644 --- a/.hgtags +++ b/.hgtags @@ -1652,3 +1652,4 @@ dc60200a16b21c3e4157708bb825ea61b9e5bdc1 v7-3-313 3ecf9e91d88acdb5eaaf93cc15a18914b60e0eb3 v7-3-315 33c140e4664d102c34ec3ec5a17318f75cf475d7 v7-3-316 92a181a1cec3fec52cde1b3d71f628a3a2dc53c6 v7-3-317 +d68f20a86a3ec75d927955be5d31983b6c37eb1d v7-3-318 From 9484026b5fbb3139f800ae908c3fdca719ff8426 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 18:23:05 +0200 Subject: [PATCH 07/15] updated for version 7.3.319 Problem: Redobuff doesn't always include changes of the completion leader. Solution: Insert backspaces as needed. (idea by Taro Muraoka) --- src/edit.c | 66 +++++++++++++++++++++++++++++++++++---------------- src/version.c | 2 ++ 2 files changed, 47 insertions(+), 21 deletions(-) diff --git a/src/edit.c b/src/edit.c index f072986f23..913a488151 100644 --- a/src/edit.c +++ b/src/edit.c @@ -163,6 +163,7 @@ static void ins_compl_restart __ARGS((void)); static void ins_compl_set_original_text __ARGS((char_u *str)); static void ins_compl_addfrommatch __ARGS((void)); static int ins_compl_prep __ARGS((int c)); +static void ins_compl_fixRedoBufForLeader __ARGS((char_u *ptr_arg)); static buf_T *ins_compl_next_buf __ARGS((buf_T *buf, int flag)); #if defined(FEAT_COMPL_FUNC) || defined(FEAT_EVAL) static void ins_compl_add_list __ARGS((list_T *list)); @@ -3713,9 +3714,6 @@ ins_compl_prep(c) * memory that was used, and make sure we can redo the insert. */ if (compl_curr_match != NULL || compl_leader != NULL || c == Ctrl_E) { - char_u *p; - int temp = 0; - /* * If any of the original typed text has been changed, eg when * ignorecase is set, we must add back-spaces to the redo @@ -3726,25 +3724,9 @@ ins_compl_prep(c) */ if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E) ptr = compl_curr_match->cp_str; - else if (compl_leader != NULL) - ptr = compl_leader; else - ptr = compl_orig_text; - if (compl_orig_text != NULL) - { - p = compl_orig_text; - for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp]; - ++temp) - ; -#ifdef FEAT_MBYTE - if (temp > 0) - temp -= (*mb_head_off)(compl_orig_text, p + temp); -#endif - for (p += temp; *p != NUL; mb_ptr_adv(p)) - AppendCharToRedobuff(K_BS); - } - if (ptr != NULL) - AppendToRedobuffLit(ptr + temp, -1); + ptr = NULL; + ins_compl_fixRedoBufForLeader(ptr); } #ifdef FEAT_CINDENT @@ -3833,6 +3815,44 @@ ins_compl_prep(c) return retval; } +/* + * Fix the redo buffer for the completion leader replacing some of the typed + * text. This inserts backspaces and appends the changed text. + * "ptr" is the known leader text or NUL. + */ + static void +ins_compl_fixRedoBufForLeader(ptr_arg) + char_u *ptr_arg; +{ + int len; + char_u *p; + char_u *ptr = ptr_arg; + + if (ptr == NULL) + { + if (compl_leader != NULL) + ptr = compl_leader; + else + return; /* nothing to do */ + } + if (compl_orig_text != NULL) + { + p = compl_orig_text; + for (len = 0; p[len] != NUL && p[len] == ptr[len]; ++len) + ; +#ifdef FEAT_MBYTE + if (len > 0) + len -= (*mb_head_off)(p, p + len); +#endif + for (p += len; *p != NUL; mb_ptr_adv(p)) + AppendCharToRedobuff(K_BS); + } + else + len = 0; + if (ptr != NULL) + AppendToRedobuffLit(ptr + len, -1); +} + /* * Loops through the list of windows, loaded-buffers or non-loaded-buffers * (depending on flag) starting from buf and looking for a non-scanned @@ -5241,6 +5261,10 @@ ins_complete(c) else edit_submode = (char_u *)_(CTRL_X_MSG(ctrl_x_mode)); + /* If any of the original typed text has been changed we need to fix + * the redo buffer. */ + ins_compl_fixRedoBufForLeader(NULL); + /* Always add completion for the original text. */ vim_free(compl_orig_text); compl_orig_text = vim_strnsave(line + compl_col, compl_length); diff --git a/src/version.c b/src/version.c index a22a46048d..24d98bb103 100644 --- a/src/version.c +++ b/src/version.c @@ -709,6 +709,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 319, /**/ 318, /**/ From 7b667285229eeda69bdb173fa9a8cf3cd44299ef Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 18:23:05 +0200 Subject: [PATCH 08/15] Added tag v7-3-319 for changeset dc7f2f975920 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 1db3766d01..839db4ff15 100644 --- a/.hgtags +++ b/.hgtags @@ -1653,3 +1653,4 @@ dc60200a16b21c3e4157708bb825ea61b9e5bdc1 v7-3-313 33c140e4664d102c34ec3ec5a17318f75cf475d7 v7-3-316 92a181a1cec3fec52cde1b3d71f628a3a2dc53c6 v7-3-317 d68f20a86a3ec75d927955be5d31983b6c37eb1d v7-3-318 +dc7f2f9759208aa07bf136deca661fd080a1ee68 v7-3-319 From ce41316357fa43f475ac0a54acf58d1e7a201e9d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 19:10:46 +0200 Subject: [PATCH 09/15] updated for version 7.3.320 Problem: When a 0xa0 character is in a sourced file the error message for unrecognized command does not show the problem. Solution: Display 0xa0 as . --- src/ex_docmd.c | 45 +++++++++++++++++++++++++++++++++++++++------ src/version.c | 2 ++ 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/src/ex_docmd.c b/src/ex_docmd.c index a6fa374bc2..9b5a5b164d 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -61,6 +61,7 @@ static char_u *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(* static char_u *do_one_cmd __ARGS((char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie)); static int if_level = 0; /* depth in :if */ #endif +static void append_command __ARGS((char_u *cmd)); static char_u *find_command __ARGS((exarg_T *eap, int *full)); static void ex_abbreviate __ARGS((exarg_T *eap)); @@ -2136,10 +2137,7 @@ do_one_cmd(cmdlinep, sourcing, { STRCPY(IObuff, _("E492: Not an editor command")); if (!sourcing) - { - STRCAT(IObuff, ": "); - STRNCAT(IObuff, *cmdlinep, 40); - } + append_command(*cmdlinep); errormsg = IObuff; } goto doend; @@ -2708,8 +2706,7 @@ doend: STRCPY(IObuff, errormsg); errormsg = IObuff; } - STRCAT(errormsg, ": "); - STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff) - 1); + append_command(*cmdlinep); } emsg(errormsg); } @@ -2796,6 +2793,42 @@ checkforcmd(pp, cmd, len) return FALSE; } +/* + * Append "cmd" to the error message in IObuff. + * Takes care of limiting the length and handling 0xa0, which would be + * invisible otherwise. + */ + static void +append_command(cmd) + char_u *cmd; +{ + char_u *s = cmd; + char_u *d; + + STRCAT(IObuff, ": "); + d = IObuff + STRLEN(IObuff); + while (*s != NUL && d - IObuff < IOSIZE - 7) + { + if ( +#ifdef FEAT_MBYTE + enc_utf8 ? (s[0] == 0xc2 && s[1] == 0xa0) : +#endif + *s == 0xa0) + { + s += +#ifdef FEAT_MBYTE + enc_utf8 ? 2 : +#endif + 1; + STRCPY(d, ""); + d += 4; + } + else + MB_COPY_CHAR(s, d); + } + *d = NUL; +} + /* * Find an Ex command by its name, either built-in or user. * Start of the name can be found at eap->cmd. diff --git a/src/version.c b/src/version.c index 24d98bb103..5bae7d85b6 100644 --- a/src/version.c +++ b/src/version.c @@ -709,6 +709,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 320, /**/ 319, /**/ From 922ae9bb15599fc5948f5c9a5d9c1024ebd11351 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 19:10:46 +0200 Subject: [PATCH 10/15] Added tag v7-3-320 for changeset 738ea87c1964 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 839db4ff15..cdf341d932 100644 --- a/.hgtags +++ b/.hgtags @@ -1654,3 +1654,4 @@ dc60200a16b21c3e4157708bb825ea61b9e5bdc1 v7-3-313 92a181a1cec3fec52cde1b3d71f628a3a2dc53c6 v7-3-317 d68f20a86a3ec75d927955be5d31983b6c37eb1d v7-3-318 dc7f2f9759208aa07bf136deca661fd080a1ee68 v7-3-319 +738ea87c196431c452bd499c5a9849597ac938de v7-3-320 From 456ae485bf7201ea5b818a15cdfc2d63af284391 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 21 Sep 2011 19:22:10 +0200 Subject: [PATCH 11/15] Updated a few runtime files. --- runtime/doc/syntax.txt | 42 +++++++- runtime/doc/todo.txt | 41 +++++++- runtime/indent/awk.vim | 3 + runtime/syntax/debcontrol.vim | 4 +- runtime/syntax/sh.vim | 81 +++++++++----- runtime/syntax/tex.vim | 191 +++++++++++++++++++++++++--------- runtime/syntax/vim.vim | 61 ++++++----- runtime/syntax/yacc.vim | 10 -- 8 files changed, 311 insertions(+), 122 deletions(-) diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index ad3cccc61e..6d14f617fe 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 7.3. Last change: 2011 Jul 18 +*syntax.txt* For Vim version 7.3. Last change: 2011 Sep 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -2605,8 +2605,41 @@ reduce this, the "sh_maxlines" internal variable can be set. Example: > The default is to use the twice sh_minlines. Set it to a smaller number to speed up displaying. The disadvantage is that highlight errors may appear. + *g:sh_isk* *g:sh_noisk* +The shell languages appear to let "." be part of words, commands, etc; +consequently it should be in the isk for sh.vim. As of v116 of syntax/sh.vim, +syntax/sh.vim will append the "." to |'iskeyword'| by default; you may control +this behavior with: > + let g:sh_isk = '..whatever characters you want as part of iskeyword' + let g:sh_noisk= 1 " otherwise, if this exists, the isk will NOT chg +< + *sh-embed* *sh-awk* + Sh: EMBEDDING LANGUAGES~ -SPEEDUP (AspenTech plant simulator) *spup.vim* *ft-spup-syntax* +You may wish to embed languages into sh. I'll give an example courtesy of +Lorance Stinson on how to do this with awk as an example. Put the following +file into $HOME/.vim/after/syntax/sh/awkembed.vim: > + + " AWK Embedding: {{{1 + " ============== + " Shamelessly ripped from aspperl.vim by Aaron Hope. + if exists("b:current_syntax") + unlet b:current_syntax + endif + syn include @AWKScript syntax/awk.vim + syn region AWKScriptCode matchgroup=AWKCommand start=+[=\\]\@+ skip=+\\$+ end=+[=\\]\@ + awk '...awk code here...' +be highlighted using the awk highlighting syntax. Clearly this may be +extended to other languages. + + +SPEEDUP *spup.vim* *ft-spup-syntax* +(AspenTech plant simulator) The Speedup syntax file has some options: @@ -2689,6 +2722,8 @@ sections, subsections, etc are supported. Put > in your <.vimrc>, and :set fdm=syntax. I suggest doing the latter via a modeline at the end of your LaTeX file: > % vim: fdm=syntax +If your system becomes too slow, then you might wish to look into > + https://vimhelp.appspot.com/vim_faq.txt.html#faq-29.7 < *tex-nospell* Tex: Don't Want Spell Checking In Comments? ~ @@ -2729,6 +2764,9 @@ If you have a slow computer, you may wish to reduce the values for > increase them. This primarily affects synchronizing (i.e. just what group, if any, is the text at the top of the screen supposed to be in?). +Another cause of slow highlighting is due to syntax-driven folding; see +|tex-folding| for a way around this. + *tex-morecommands* *tex-package* Tex: Want To Highlight More Commands? ~ diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 6f508faf71..cfc3eab848 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.3. Last change: 2011 Sep 14 +*todo.txt* For Vim version 7.3. Last change: 2011 Sep 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -34,12 +34,37 @@ not be repeated below, unless there is extra information. *known-bugs* -------------------- Known bugs and current work ----------------------- -Patch to start GTK only after forking. (Tim Starling, 2011 Sep 12) +Patch for redirection. (Yasuhiro Matsumoto, 2011 Sep 15) 2nd patch. +Another on Sep 15? -Patch for Lua debug(). (Rob Hoelz, 2011 Sep 12) +Patch for DFLT_EFM. (Ben Boeckel, 2011 Sep 14) + +Code style patch. (Elias Diem, 2011 Sep 19) + +Patch for 'transparency' option. (Ben Boeckel, 2011 Sep 14) +Do we want this? Also Sergiu Dotenco, 2011 Sep 17. + +Patch for gui_w32.c: call DefWindowProc(). (Sergiu Dotenco, 2011 Sep 15, 17) + +Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 15, 17) +Addition Sep 16. + +Patch for alpha-blended icons and toolbar height. (Sergiu Dotenco, 2011 Sep 15, 17) + +Change to #ifdef for PDP_RETVAL. (Sergiu Dotenco, 2011 Sep 17, patch 2) + +Patch for phpcomplete.vim (Benjamin Haskell) picked up by maintainer? + +Add voting item: modern plugin management (automatic updates, handle +dependencies). +Add links to http://vimcasts.org/ and http://vimgolf.com/ +Read http://www.charlietanksley.net/philtex/sane-vim-plugin-management/ Go through more coverity reports. +Patch for Issue #9: http://code.google.com/p/vim/issues/detail?id=9 +C++ indenting. martin.gieseking + Using "." to repeat a Visual delete counts bytes, not characters. Can this be fixed? (Connor Lane Smith, 2011 Sep 1) @@ -67,6 +92,9 @@ Patch for: (Christian Brabandt, 2011 Aug 24, updated patch) 8 ":sign unplace * file={filename}" should work. Also: ":sign unplace * buffer={bufnr}". So one can remove all signs for one file/buffer. +Problem with winfixheight and resizing. (Yukihiro Nakadaira, 2011 Sep 17) +Patch Sep 18. + Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21) 'cursorline' is displayed too short when there are concealed characters and @@ -138,9 +166,14 @@ string() can't parse back "inf" and "nan". Fix documentation or fix code? Make 'formatprg' global-local. (Sung Pae) +v:register doesn't work exactly as expected. (David Fishburn, 2011 Sep 20) + 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. +When setqflist() uses a filename that triggers a BufReadCmd autocommand Vim +doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18) + 7 Make "ga" show the digraph for a character, if it exists. Patch from Christian Brabandt, 2011 Aug 19. @@ -420,6 +453,8 @@ it. Caused by "syntax sync fromstart" in combination with patch 7.2.274. 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. Disable updating folds while completion is active? (Peter Odding, 2010 Jun 9) diff --git a/runtime/indent/awk.vim b/runtime/indent/awk.vim index edc7acac48..6f6b70cc4e 100644 --- a/runtime/indent/awk.vim +++ b/runtime/indent/awk.vim @@ -189,6 +189,9 @@ endfunction function! s:Seems_continuing( line ) " Unfinished lines + if a:line =~ '\(--\|++\)\s*$' + return 0 + endif if a:line =~ '[\\,\|\&\+\-\*\%\^]\s*$' return 1 endif diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim index 6912548774..20f1a3d7b6 100644 --- a/runtime/syntax/debcontrol.vim +++ b/runtime/syntax/debcontrol.vim @@ -3,7 +3,7 @@ " Maintainer: Debian Vim Maintainers " Former Maintainers: Gerfried Fuchs " Wichert Akkerman -" Last Change: 2011 June 01 +" Last Change: 2011 Sep 17 " URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim " Standard syntax initialization @@ -24,7 +24,7 @@ syn match debControlComma ", *" syn match debControlSpace " " " Define some common expressions we can use later on -syn match debcontrolArchitecture contained "\%(all\|any\|linux-any\|\%(any-\)\=\%(alpha\|amd64\|arm\%(e[bl]\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\)\|hurd-\%(i386\|any\)\|kfreebsd-\%(i386\|amd64\|any\)\|knetbsd-\%(i386\|any\)\|kopensolaris-\%(i386\|any\)\|netbsd-\%(alpha\|i386\|any\)\)" +syn match debcontrolArchitecture contained "\%(all\|linux-any\|\%(any-\)\=\%(alpha\|amd64\|arm\%(e[bl]\|hf\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\)\|hurd-\%(i386\|any\)\|kfreebsd-\%(i386\|amd64\|any\)\|knetbsd-\%(i386\|any\)\|kopensolaris-\%(i386\|any\)\|netbsd-\%(alpha\|i386\|any\)\|any\)" syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)" syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+" syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)" diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim index 4370d6788f..73eebc3888 100644 --- a/runtime/syntax/sh.vim +++ b/runtime/syntax/sh.vim @@ -2,8 +2,8 @@ " Language: shell (sh) Korn shell (ksh) bash (sh) " Maintainer: Dr. Charles E. Campbell, Jr. " Previous Maintainer: Lennart Schultz -" Last Change: Feb 11, 2011 -" Version: 115 +" Last Change: Aug 16, 2011 +" Version: 118 " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax " For options and settings, please use: :help ft-sh-syntax " This file includes many ideas from ?ric Brunet (eric.brunet@ens.fr) @@ -16,12 +16,38 @@ elseif exists("b:current_syntax") finish endif +" AFAICT "." should be considered part of the iskeyword. Using iskeywords in +" syntax is dicey, so the following code permits the user to prevent/override +" its setting. +if exists("g:sh_isk") " override support + exe "setlocal isk=".g:sh_isk +elseif !exists("g:sh_noisk") " prevent modification support + setlocal isk+=. +endif + +" trying to answer the question: which shell is /bin/sh, really? +if !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh") + if executable("/bin/sh") + if resolve("/bin/sh") =~ 'bash$' + let g:is_bash= 1 + elseif resolve("/bin/sh") =~ 'ksh$' + let g:is_ksh = 1 + endif + elseif executable("/usr/bin/sh") + if resolve("/usr/bin//sh") =~ 'bash$' + let g:is_bash= 1 + elseif resolve("/usr/bin//sh") =~ 'ksh$' + let g:is_ksh = 1 + endif + endif +endif + " handling /bin/sh with is_kornshell/is_sh {{{1 " b:is_sh is set when "#! /bin/sh" is found; " However, it often is just a masquerade by bash (typically Linux) " or kornshell (typically workstations with Posix "sh"). -" So, when the user sets "is_bash" or "is_kornshell", -" a b:is_sh is converted into b:is_bash/b:is_kornshell, +" So, when the user sets "g:is_bash", "g:is_kornshell", +" or "g:is_posix", a b:is_sh is converted into b:is_bash/b:is_kornshell, " respectively. if !exists("b:is_kornshell") && !exists("b:is_bash") if exists("g:is_posix") && !exists("g:is_kornshell") @@ -74,7 +100,7 @@ endif syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shDeref,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement syn cluster shArithList contains=@shArithParenList,shParenError syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange -syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq +syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq syn cluster shColonList contains=@shCaseList syn cluster shCommandSubList contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq,shSpecial syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial @@ -84,7 +110,7 @@ syn cluster shDerefVarList contains=shDerefOp,shDerefVarArray,shDerefOpError syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shExpr,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest -syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq +syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq if exists("b:is_kornshell") || exists("b:is_bash") syn cluster shFunctionList add=shRepeat syn cluster shFunctionList add=shDblBrace,shDblParen @@ -94,8 +120,8 @@ syn cluster shHereList contains=shBeginHere,shHerePayload syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial syn cluster shLoopList contains=@shCaseList,shTestOpr,shExpr,shDblBrace,shConditional,shCaseEsac,shTest,@shErrorList,shSet -syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator -syn cluster shTestList contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shExDoubleQuote,shDoubleQuote,shExpr,shExpr,shNumber,shOperator,shExSingleQuote,shSingleQuote,shTestOpr,shTest,shCtrlSeq +syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator +syn cluster shTestList contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shExDoubleQuote,shDoubleQuote,shExpr,shNumber,shOperator,shExSingleQuote,shSingleQuote,shTestOpr,shTest,shCtrlSeq " Echo: {{{1 " ==== @@ -111,8 +137,8 @@ syn region shEmbeddedEcho contained matchgroup=shStatement start="\" ski " ===== if exists("b:is_kornshell") || exists("b:is_bash") syn match shStatement "\" - syn region shAlias matchgroup=shStatement start="\\s\+\(\w\+\)\@=" skip="\\$" end="\>\|`" - syn region shAlias matchgroup=shStatement start="\\s\+\(\w\+=\)\@=" skip="\\$" end="=" + syn region shAlias matchgroup=shStatement start="\\s\+\(\h[-._[:alnum:]]\+\)\@=" skip="\\$" end="\>\|`" + syn region shAlias matchgroup=shStatement start="\\s\+\(\h[-._[:alnum:]]\+=\)\@=" skip="\\$" end="=" endif " Error Codes: {{{1 @@ -152,8 +178,8 @@ syn match shPattern "\<\S\+\())\)\@=" contained contains=shExSingleQuote,shSin " Subshells: {{{1 " ========== -syn region shExpr transparent matchgroup=shExprRegion start="{" end="}" contains=@shExprList2 nextgroup=shMoreSpecial -syn region shSubSh transparent matchgroup=shSubShRegion start="(" end=")" contains=@shSubShList nextgroup=shMoreSpecial +syn region shExpr transparent matchgroup=shExprRegion start="{" end="}" contains=@shExprList2 nextgroup=shMoreSpecial +syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")" contains=@shSubShList nextgroup=shMoreSpecial " Tests: {{{1 "======= @@ -162,7 +188,7 @@ syn region shTest transparent matchgroup=shStatement start="\=\|!=\|==\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]" syn match shTestOpr contained '=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern syn match shTestPattern contained '\w\+' -syn match shTestDoubleQuote contained '"[^"]*"' +syn match shTestDoubleQuote contained '\%(\%(\\\\\)*\\\)\@" matchgroup=shConditional end="\" contains=@shLoopList - syn region shIf fold transparent matchgroup=shConditional start="\ -" Last Change: Dec 07, 2010 -" Version: 64 +" Last Change: Aug 22, 2011 +" Version: 68 " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax " " Notes: {{{1 @@ -101,6 +101,9 @@ endif if b:tex_stylish setlocal isk+=@-@ endif +if exists("g:tex_nospell") && g:tex_nospell && !exists("g:tex_comment_nospell") + let g:tex_comment_nospell= 1 +endif " Clusters: {{{1 " -------- @@ -110,8 +113,13 @@ if !exists("g:tex_no_error") endif syn cluster texEnvGroup contains=texMatcher,texMathDelim,texSpecialChar,texStatement syn cluster texFoldGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texSectionMarker,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract -syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell -syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,@Spell,texStyleMatcher +if !exists("g:tex_nospell") || !g:tex_nospell + syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell + syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,@Spell,texStyleMatcher +else + syn cluster texMatchGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption + syn cluster texStyleGroup contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,texStyleMatcher +endif syn cluster texRefGroup contains=texMatcher,texComment,texDelimiter if !exists("tex_no_math") syn cluster texMathZones contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ @@ -147,7 +155,11 @@ else syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup endif -syn region texParen start="(" end=")" contains=@texMatchGroup,@Spell +if !exists("g:tex_nospell") || !g:tex_nospell + syn region texParen start="(" end=")" contains=@texMatchGroup,@Spell +else + syn region texParen start="(" end=")" contains=@texMatchGroup +endif if !exists("g:tex_no_error") syn match texError "[}\])]" endif @@ -155,7 +167,8 @@ if !exists("tex_no_math") if !exists("g:tex_no_error") syn match texMathError "}" contained endif - syn region texMathMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\}" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup + syn region texMathMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\}" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup +" syn region texMathMatcher matchgroup=Unique start="[^\\]\zs{" skip="\\\\\|\\[{}]" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup endif " TeX/LaTeX keywords: {{{1 @@ -173,6 +186,7 @@ endif " TeX/LaTeX delimiters: {{{1 syn match texDelimiter "&" syn match texDelimiter "\\\\" +syn match texDelimiter "[{}]" " Tex/Latex Options: {{{1 syn match texOption "[^\\]\zs#\d\+\|^#\d\+" @@ -273,33 +287,59 @@ 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 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 - syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texPartGroup,@Spell - syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texChapterGroup,@Spell - syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSectionGroup,@Spell - syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSectionGroup,@Spell - syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSubSectionGroup,@Spell - syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texParaGroup,@Spell - syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@Spell - syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' fold contains=@texFoldGroup,@Spell - syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup,@Spell +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 + syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texPartGroup,@Spell + syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texChapterGroup,@Spell + syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSectionGroup,@Spell + syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSectionGroup,@Spell + syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSubSectionGroup,@Spell + syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texParaGroup,@Spell + syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@Spell + syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' fold contains=@texFoldGroup,@Spell + syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup,@Spell + else + syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell + syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell + syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup,@Spell + syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup,@Spell + syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup,@Spell + syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup,@Spell + syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup,@Spell + syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@Spell + syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup,@Spell + syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup,@Spell + endif else - syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell - syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell - syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup,@Spell - syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup,@Spell - syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup,@Spell - syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup,@Spell - syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup,@Spell - syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@Spell - syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup,@Spell - syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup,@Spell + 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 + syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texPartGroup + syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texChapterGroup + syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSectionGroup + syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSectionGroup + syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSubSectionGroup + syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texParaGroup + syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup + syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' fold contains=@texFoldGroup + syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup + else + syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup + syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup + syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup + syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup + syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup + syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup + syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup + syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup + syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup + syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup + endif endif " Bad Math (mismatched): {{{1 if !exists("tex_no_math") - syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|smallmatrix\|xxalignat\)\s*}" + 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 "\\[\])]" endif @@ -344,6 +384,7 @@ if !exists("tex_no_math") call TexNewMathZone("G","gather",1) call TexNewMathZone("H","math",1) call TexNewMathZone("I","multline",1) + call TexNewMathZone("J","subequations",0) call TexNewMathZone("K","xalignat",1) call TexNewMathZone("L","xxalignat",0) @@ -364,7 +405,11 @@ if !exists("tex_no_math") syn match texMathOper "[_^=]" contained " Text Inside Math Zones: {{{2 - syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup,@Spell + if !exists("g:tex_nospell") || !g:tex_nospell + syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup,@Spell + else + syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup + endif " \left..something.. and \right..something.. support: {{{2 syn match texMathDelimBad contained "\S" @@ -501,16 +546,15 @@ else endif " Tex Reference Zones: {{{1 -syn match texRefZone '\\@samp\>' skipwhite nextgroup=texRefLabel -syn match texRefZone '\\nocite\>' skipwhite nextgroup=texRefLabel -syn match texRefZone '\\bibliography\>' skipwhite nextgroup=texRefLabel -syn match texRefZone '\\label\>' skipwhite nextgroup=texRefLabel -syn match texRefZone '\\\(page\|eq\)ref\>' skipwhite nextgroup=texRefLabel -syn match texRefZone '\\v\=ref' skipwhite nextgroup=texRefLabel -syn match texRefZone '\\cite\%([tp]\*\=\)\=' skipwhite nextgroup=texCiteOption,texCite -syn region texRefLabel contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup -syn region texCiteOption contained matchgroup=Delimiter start='\[' end=']' contains=@Spell,@texRefGroup,@texMathZones,texRefZone nextgroup=texCiteOption,texCite -syn region texCite contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup,texCite +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 +syn region texRefZone matchgroup=texStatement start="\\label{" end="}\|%stopzone\>" contains=@texRefGroup +syn region texRefZone matchgroup=texStatement start="\\\(page\|eq\)ref{" end="}\|%stopzone\>" contains=@texRefGroup +syn region texRefZone matchgroup=texStatement start="\\v\=ref{" end="}\|%stopzone\>" contains=@texRefGroup +syn match texRefZone '\\cite\%([tp]\*\=\)\=' nextgroup=texRefOption,texCite +syn region texRefOption contained matchgroup=Delimiter start='\[' end=']' contains=@texRefGroup,texRefZone nextgroup=texRefOption,texCite +syn region texCite contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup,texRefZone,texCite " Handle newcommand, newenvironment : {{{1 syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl @@ -556,12 +600,14 @@ if has("conceal") && &enc == 'utf-8' if s:tex_conceal =~ 'm' let s:texMathList=[ \ ['|' , '‖'], + \ ['aleph' , 'ℵ'], \ ['angle' , '∠'], \ ['approx' , '≈'], \ ['ast' , '∗'], \ ['asymp' , '≍'], \ ['backepsilon' , '∍'], \ ['backsimeq' , '≃'], + \ ['backslash' , '∖'], \ ['barwedge' , '⊼'], \ ['because' , '∵'], \ ['between' , '≬'], @@ -592,9 +638,11 @@ if has("conceal") && &enc == 'utf-8' \ ['circlearrowright', '↻'], \ ['circledast' , '⊛'], \ ['circledcirc' , '⊚'], + \ ['clubsuit' , '♣'], \ ['complement' , '∁'], \ ['cong' , '≅'], \ ['coprod' , '∐'], + \ ['copyright' , '©'], \ ['cup' , '∪'], \ ['Cup' , '⋓'], \ ['curlyeqprec' , '⋞'], @@ -603,6 +651,7 @@ if has("conceal") && &enc == 'utf-8' \ ['curlywedge' , '⋏'], \ ['dashv' , '⊣'], \ ['diamond' , '⋄'], + \ ['diamondsuit' , '♢'], \ ['div' , '÷'], \ ['doteq' , '≐'], \ ['doteqdot' , '≑'], @@ -621,8 +670,10 @@ if has("conceal") && &enc == 'utf-8' \ ['eqslantgtr' , '⪖'], \ ['eqslantless' , '⪕'], \ ['equiv' , '≡'], + \ ['ell' , 'ℓ'], \ ['exists' , '∃'], \ ['fallingdotseq' , '≒'], + \ ['flat' , '♭'], \ ['forall' , '∀'], \ ['ge' , '≥'], \ ['geq' , '≥'], @@ -633,11 +684,14 @@ if has("conceal") && &enc == 'utf-8' \ ['gtreqless' , '⋛'], \ ['gtrless' , '≷'], \ ['gtrsim' , '≳'], + \ ['hbar' , 'ℏ'], + \ ['heartsuit' , '♡'], \ ['hookleftarrow' , '↩'], \ ['hookrightarrow' , '↪'], \ ['iiint' , '∭'], \ ['iint' , '∬'], \ ['Im' , 'ℑ'], + \ ['imath' , 'ɩ'], \ ['in' , '∈'], \ ['infty' , '∞'], \ ['int' , '∫'], @@ -650,7 +704,7 @@ if has("conceal") && &enc == 'utf-8' \ ['left(' , '('], \ ['left\[' , '['], \ ['left\\{' , '{'], - \ ['Leftrightarrow' , '⇔'], + \ ['leftrightarrow' , '⇔'], \ ['leftrightsquigarrow', '↭'], \ ['leftthreetimes' , '⋋'], \ ['leq' , '≤'], @@ -667,6 +721,7 @@ if has("conceal") && &enc == 'utf-8' \ ['mid' , '∣'], \ ['mp' , '∓'], \ ['nabla' , '∇'], + \ ['natural' , '♮'], \ ['ncong' , '≇'], \ ['nearrow' , '↗'], \ ['ne' , '≠'], @@ -705,6 +760,7 @@ if has("conceal") && &enc == 'utf-8' \ ['oslash' , '⊘'], \ ['otimes' , '⊗'], \ ['owns' , '∋'], + \ ['P' , '¶'], \ ['partial' , '∂'], \ ['perp' , '⊥'], \ ['pitchfork' , '⋔'], @@ -716,6 +772,7 @@ if has("conceal") && &enc == 'utf-8' \ ['precnapprox' , '⪹'], \ ['precneqq' , '⪵'], \ ['precsim' , '≾'], + \ ['prime' , '′'], \ ['prod' , '∏'], \ ['propto' , '∝'], \ ['rceil' , '⌉'], @@ -732,9 +789,12 @@ if has("conceal") && &enc == 'utf-8' \ ['risingdotseq' , '≓'], \ ['rmoustache' , '╮'], \ ['rtimes' , '⋊'], + \ ['S' , '§'], \ ['searrow' , '↘'], \ ['setminus' , '∖'], + \ ['sharp' , '♯'], \ ['sim' , '∼'], + \ ['spadesuit' , '♠'], \ ['sphericalangle' , '∢'], \ ['sqcap' , '⊓'], \ ['sqcup' , '⊔'], @@ -767,6 +827,7 @@ if has("conceal") && &enc == 'utf-8' \ ['times' , '×'], \ ['to' , '→'], \ ['top' , '⊤'], + \ ['triangle' , '∆'], \ ['triangleleft' , '⊲'], \ ['trianglelefteq' , '⊴'], \ ['triangleq' , '≜'], @@ -788,6 +849,7 @@ if has("conceal") && &enc == 'utf-8' \ ['vee' , '∨'], \ ['Vvdash' , '⊪'], \ ['wedge' , '∧'], + \ ['wp' , '℘'], \ ['wr' , '≀']] for texmath in s:texMathList if texmath[0] =~ '\w$' @@ -804,6 +866,27 @@ if has("conceal") && &enc == 'utf-8' syn match texMathSymbol '\\gg\>' contained conceal cchar=⟫ syn match texMathSymbol '\\ll\>' contained conceal cchar=⟪ endif + + syn match texMathSymbol '\\hat{a}' contained conceal cchar=â + syn match texMathSymbol '\\hat{A}' contained conceal cchar=Â + syn match texMathSymbol '\\hat{c}' contained conceal cchar=ĉ + syn match texMathSymbol '\\hat{C}' contained conceal cchar=Ĉ + syn match texMathSymbol '\\hat{e}' contained conceal cchar=ê + syn match texMathSymbol '\\hat{E}' contained conceal cchar=Ê + syn match texMathSymbol '\\hat{g}' contained conceal cchar=ĝ + syn match texMathSymbol '\\hat{G}' contained conceal cchar=Ĝ + syn match texMathSymbol '\\hat{i}' contained conceal cchar=î + syn match texMathSymbol '\\hat{I}' contained conceal cchar=Î + syn match texMathSymbol '\\hat{o}' contained conceal cchar=ô + syn match texMathSymbol '\\hat{O}' contained conceal cchar=Ô + syn match texMathSymbol '\\hat{s}' contained conceal cchar=ŝ + syn match texMathSymbol '\\hat{S}' contained conceal cchar=Ŝ + syn match texMathSymbol '\\hat{u}' contained conceal cchar=û + syn match texMathSymbol '\\hat{U}' contained conceal cchar=Û + syn match texMathSymbol '\\hat{w}' contained conceal cchar=ŵ + syn match texMathSymbol '\\hat{W}' contained conceal cchar=Ŵ + syn match texMathSymbol '\\hat{y}' contained conceal cchar=ŷ + syn match texMathSymbol '\\hat{Y}' contained conceal cchar=Ŷ endif " Greek {{{2 @@ -855,8 +938,8 @@ if has("conceal") && &enc == 'utf-8' " Superscripts/Subscripts {{{2 if s:tex_conceal =~ 's' - syn region texSuperscript matchgroup=Delimiter start='\^{' end='}' contained concealends contains=texSuperscripts,texStatement,texSubscript,texSuperscript,texMathMatcher - syn region texSubscript matchgroup=Delimiter start='_{' end='}' contained concealends contains=texSubscripts,texStatement,texSubscript,texSuperscript,texMathMatcher + 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 fun! s:SuperSub(group,leader,pat,cchar) exe 'syn match '.a:group." '".a:leader.a:pat."' contained conceal cchar=".a:cchar exe 'syn match '.a:group."s '".a:pat."' contained conceal cchar=".a:cchar.' nextgroup='.a:group.'s' @@ -980,18 +1063,23 @@ if has("conceal") && &enc == 'utf-8' endfor endfun " \` \' \^ \" \~ \. \c \H \k \r \u \v - call s:Accents('a','à','á','â','ä','ã',' ',' ',' ','ą','å','ă','ă') - call s:Accents('A','À','Á','Â','Ä','Ã',' ',' ',' ','Ą','Å','Ă','Ă') + call s:Accents('a','à','á','â','ä','ã','ȧ',' ',' ','ą','å','ă','ă') + call s:Accents('A','À','Á','Â','Ä','Ã','Ȧ',' ',' ','Ą','Å','Ă','Ă') call s:Accents('c',' ','ć','ĉ',' ',' ','ċ','ç',' ',' ',' ',' ','č') call s:Accents('C',' ','Ć','Ĉ',' ',' ','Ċ','Ç',' ',' ',' ',' ','Č') call s:Accents('d',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','ď') call s:Accents('D',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','Ď') call s:Accents('e','è','é','ê','ë','ẽ','ė','ȩ',' ','ę',' ','ĕ','ě') call s:Accents('E','È','É','Ê','Ë','Ẽ','Ė','Ȩ',' ','Ę',' ','Ĕ','Ě') - call s:Accents('g',' ',' ',' ',' ',' ','ġ','ģ',' ',' ',' ','ğ',' ') - call s:Accents('G',' ',' ',' ',' ',' ','Ġ','Ģ',' ',' ',' ','Ğ',' ') + call s:Accents('g',' ','ǵ','ĝ',' ',' ','ġ','ģ',' ',' ',' ','ğ',' ') + call s:Accents('G',' ','Ǵ','Ĝ',' ',' ','Ġ','Ģ',' ',' ',' ','Ğ',' ') + call s:Accents('h',' ',' ','ĥ',' ',' ',' ',' ',' ',' ',' ',' ','ȟ') + call s:Accents('H',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','Ȟ') call s:Accents('i','ì','í','î','ï','ĩ','į',' ',' ',' ',' ','ĭ',' ') call s:Accents('I','Ì','Í','Î','Ï','Ĩ','İ',' ',' ',' ',' ','Ĭ',' ') + call s:Accents('J',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','ǰ') + call s:Accents('k',' ',' ',' ',' ',' ',' ','ķ',' ',' ',' ',' ',' ') + call s:Accents('K',' ',' ',' ',' ',' ',' ','Ķ',' ',' ',' ',' ',' ') call s:Accents('l',' ','ĺ','ľ',' ',' ',' ','ļ',' ',' ',' ',' ','ľ') call s:Accents('L',' ','Ĺ','Ľ',' ',' ',' ','Ļ',' ',' ',' ',' ','Ľ') call s:Accents('n',' ','ń',' ',' ','ñ',' ','ņ',' ',' ',' ',' ','ň') @@ -1000,12 +1088,12 @@ if has("conceal") && &enc == 'utf-8' call s:Accents('O','Ò','Ó','Ô','Ö','Õ','Ȯ',' ','Ő','Ǫ',' ','Ŏ',' ') call s:Accents('r',' ','ŕ',' ',' ',' ',' ','ŗ',' ',' ',' ',' ','ř') call s:Accents('R',' ','Ŕ',' ',' ',' ',' ','Ŗ',' ',' ',' ',' ','Ř') - call s:Accents('s',' ','ś','ŝ',' ',' ',' ','ş',' ',' ',' ',' ','š') + call s:Accents('s',' ','ś','ŝ',' ',' ',' ','ş',' ','ȿ',' ',' ','š') call s:Accents('S',' ','Ś','Ŝ',' ',' ',' ','Ş',' ',' ',' ',' ','Š') call s:Accents('t',' ',' ',' ',' ',' ',' ','ţ',' ',' ',' ',' ','ť') call s:Accents('T',' ',' ',' ',' ',' ',' ','Ţ',' ',' ',' ',' ','Ť') - call s:Accents('u','ù','ú','û','ü','ũ',' ',' ','ű',' ','ů','ŭ',' ') - call s:Accents('U','Ù','Ú','Û','Ü','Ũ',' ',' ','Ű',' ','Ů','Ŭ',' ') + call s:Accents('u','ù','ú','û','ü','ũ',' ',' ','ű','ų','ů','ŭ','ǔ') + call s:Accents('U','Ù','Ú','Û','Ü','Ũ',' ',' ','Ű','Ų','Ů','Ŭ','Ǔ') call s:Accents('w',' ',' ','ŵ',' ',' ',' ',' ',' ',' ',' ',' ',' ') call s:Accents('W',' ',' ','Ŵ',' ',' ',' ',' ',' ',' ',' ',' ',' ') call s:Accents('y','ỳ','ý','ŷ','ÿ','ỹ',' ',' ',' ',' ',' ',' ',' ') @@ -1068,6 +1156,7 @@ if did_tex_syntax_inits == 1 HiLink texError Error endif + HiLink texCite texRefZone HiLink texDefCmd texDef HiLink texDefName texDef HiLink texDocType texCmdName @@ -1092,7 +1181,6 @@ if did_tex_syntax_inits == 1 HiLink texMathZoneV texMath HiLink texMathZoneZ texMath endif - HiLink texRefZone Identifier HiLink texSectionMarker texCmdName HiLink texSectionName texSection HiLink texSpaceCode texStatement @@ -1101,7 +1189,6 @@ if did_tex_syntax_inits == 1 HiLink texTypeStyle texType " Basic TeX highlighting groups - HiLink texCite Special HiLink texCmdArgs Number HiLink texCmdName Statement HiLink texComment Comment @@ -1117,7 +1204,7 @@ if did_tex_syntax_inits == 1 HiLink texNewCmd Statement HiLink texNewEnv Statement HiLink texOption Number - HiLink texRefLabel Special + HiLink texRefZone Special HiLink texSection PreCondit HiLink texSpaceCodeChar Special HiLink texSpecialChar SpecialChar diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 46b3919f70..a439fb0158 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -1,8 +1,8 @@ " Vim syntax file " Language: Vim 7.3 script " Maintainer: Dr. Charles E. Campbell, Jr. -" Last Change: Jan 10, 2011 -" Version: 7.3-07 +" Last Change: Jul 18, 2011 +" Version: 7.3-08 " Automatically generated keyword lists: {{{1 " Quit when a syntax file was already loaded {{{2 @@ -22,31 +22,31 @@ syn keyword vimCommand contained abc[lear] argdo au bf[irst] bp[revious] br[ewin syn keyword vimCommand contained abo[veleft] arge[dit] 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 elsei[f] endfun Error filename fin[d] folddoc[losed] fu[nction] gs?pat?sub? 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 nb[key] nkf o ownsyntax pe p:h:h p:r profd[el] pta[g] ptn[ext] pw[d] python3 r redi[r] Rena ri[ght] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spelld[ump] sp[lit] start stopi[nsert] s?version?main? sync tabc[lose] tabm[ove] tabp[revious] tcld[o] tl[ast] tN[ext] tr[ewind] un unl verb[ose] vimgrepa[dd] w winp[os] wqa[ll] X XMLent xunmenu syn keyword vimCommand contained al[l] argg[lobal] 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] em[enu] endf[unction] ex files fini[sh] foldd[oopen] g 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] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p ped[it] po[p] pre[serve] prof[ile] ptf[irst] ptN[ext] py q re red[o] Renu rightb[elow] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spe[llgood] spr[evious] startg[replace] sts[elect] s?version?main?:p syncbind tabd[o] tabN tabr[ewind] tclf[ile] tm TOhtml try una[bbreviate] unlo[ckvar] ve[rsion] vi[sual] wa[ll] win[size] w[rite] xa[ll] XMLns xwininfo syn keyword vimCommand contained Allargs argl[ocal] 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 e:e emenu* en[dif] exi[t] filet fir[st] foldo[pen] get 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] mz[scheme] ne noa omapc[lear] p: pe[rl] popu prev[ious] promptf[ind] ptj[ump] ptp[revious] py3 qa[ll] r:e redr[aw] res[ize] r:r rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spelli[nfo] sre[wind] star[tinsert] sun[hide] sv[iew] synlist tabe[dit] tabnew tabs te[aroff] tm[enu] to[pleft] ts[elect] u[ndo] uns[ilent] vert[ical] viu[sage] wh[ile] wn[ext] ws[verb] x[it] xnoreme y[ank] -syn keyword vimCommand contained ar ar[gs] +syn keyword vimCommand contained ar ar[gs] syn match vimCommand contained "\