0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

updated for version 7.1-219

This commit is contained in:
Bram Moolenaar
2008-01-12 15:47:10 +00:00
parent 81993f4744
commit 56cefaf15a
8 changed files with 31 additions and 23 deletions

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.1. Last change: 2008 Jan 10
*eval.txt* For Vim version 7.1. Last change: 2008 Jan 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -4967,10 +4967,6 @@ synstack({lnum}, {col}) *synstack()*
Return a |List|, which is the stack of syntax items at the
position {lnum} and {col} in the current window. Each item in
the List is an ID like what |synID()| returns.
The stack is the situation in between the character at "col"
and the next character. Note that a region of only one
character will not show up, it only exists inside that
character, not in between characters.
The first item in the List is the outer region, following are
items contained in that one. The last one is what |synID()|
returns, unless not the whole item is highlighted or it is a

View File

@@ -15725,7 +15725,7 @@ f_synID(argvars, rettv)
if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
&& col >= 0 && col < (long)STRLEN(ml_get(lnum)))
id = syn_get_id(curwin, lnum, (colnr_T)col, trans, NULL);
id = syn_get_id(curwin, lnum, (colnr_T)col, trans, NULL, FALSE);
#endif
rettv->vval.v_number = id;
@@ -15874,7 +15874,7 @@ f_synstack(argvars, rettv)
&& col >= 0 && col < (long)STRLEN(ml_get(lnum))
&& rettv_list_alloc(rettv) != FAIL)
{
(void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL);
(void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE);
for (i = 0; ; ++i)
{
id = syn_get_stack_item(i);

View File

@@ -876,7 +876,7 @@ hardcopy_line(psettings, page_line, ppos)
*/
if (psettings->do_syntax)
{
id = syn_get_id(curwin, ppos->file_line, col, 1, NULL);
id = syn_get_id(curwin, ppos->file_line, col, 1, NULL, FALSE);
if (id > 0)
id = syn_get_final_id(id);
else

View File

@@ -4,7 +4,7 @@ void syn_stack_free_all __ARGS((buf_T *buf));
void syn_stack_apply_changes __ARGS((buf_T *buf));
void syntax_end_parsing __ARGS((linenr_T lnum));
int syntax_check_changed __ARGS((linenr_T lnum));
int get_syntax_attr __ARGS((colnr_T col, int *can_spell));
int get_syntax_attr __ARGS((colnr_T col, int *can_spell, int keep_state));
void syntax_clear __ARGS((buf_T *buf));
void ex_syntax __ARGS((exarg_T *eap));
int syntax_present __ARGS((buf_T *buf));
@@ -12,7 +12,7 @@ void reset_expand_highlight __ARGS((void));
void set_context_in_echohl_cmd __ARGS((expand_T *xp, char_u *arg));
void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp, int keep_state));
int syn_get_stack_item __ARGS((int i));
int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
void init_highlight __ARGS((int both, int reset));

View File

@@ -3885,7 +3885,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
# ifdef FEAT_SPELL
has_spell ? &can_spell :
# endif
NULL);
NULL, FALSE);
if (did_emsg)
{

View File

@@ -2146,7 +2146,7 @@ spell_move_to(wp, dir, allwords, curline, attrp)
{
col = (int)(p - buf);
(void)syn_get_id(wp, lnum, (colnr_T)col,
FALSE, &can_spell);
FALSE, &can_spell, FALSE);
if (!can_spell)
attr = HLF_COUNT;
}

View File

@@ -378,7 +378,7 @@ static void invalidate_current_state __ARGS((void));
static int syn_stack_equal __ARGS((synstate_T *sp));
static void validate_current_state __ARGS((void));
static int syn_finish_line __ARGS((int syncing));
static int syn_current_attr __ARGS((int syncing, int displaying, int *can_spell));
static int syn_current_attr __ARGS((int syncing, int displaying, int *can_spell, int keep_state));
static int did_match_already __ARGS((int idx, garray_T *gap));
static stateitem_T *push_next_match __ARGS((stateitem_T *cur_si));
static void check_state_ends __ARGS((void));
@@ -1691,7 +1691,7 @@ syn_finish_line(syncing)
{
while (!current_finished)
{
(void)syn_current_attr(syncing, FALSE, NULL);
(void)syn_current_attr(syncing, FALSE, NULL, FALSE);
/*
* When syncing, and found some item, need to check the item.
*/
@@ -1731,9 +1731,10 @@ syn_finish_line(syncing)
* done.
*/
int
get_syntax_attr(col, can_spell)
get_syntax_attr(col, can_spell, keep_state)
colnr_T col;
int *can_spell;
int keep_state; /* keep state of char at "col" */
{
int attr = 0;
@@ -1768,7 +1769,8 @@ get_syntax_attr(col, can_spell)
*/
while (current_col <= col)
{
attr = syn_current_attr(FALSE, TRUE, can_spell);
attr = syn_current_attr(FALSE, TRUE, can_spell,
current_col == col ? keep_state : FALSE);
++current_col;
}
@@ -1779,10 +1781,11 @@ get_syntax_attr(col, can_spell)
* Get syntax attributes for current_lnum, current_col.
*/
static int
syn_current_attr(syncing, displaying, can_spell)
syn_current_attr(syncing, displaying, can_spell, keep_state)
int syncing; /* When 1: called for syncing */
int displaying; /* result will be displayed */
int *can_spell; /* return: do spell checking */
int keep_state; /* keep syntax stack afterwards */
{
int syn_id;
lpos_T endpos; /* was: char_u *endp; */
@@ -2298,7 +2301,7 @@ syn_current_attr(syncing, displaying, can_spell)
* may be for an empty match and a containing item might end in the
* current column.
*/
if (!syncing)
if (!syncing && !keep_state)
{
check_state_ends();
if (current_state.ga_len > 0
@@ -6086,12 +6089,13 @@ get_syntax_name(xp, idx)
* Function called for expression evaluation: get syntax ID at file position.
*/
int
syn_get_id(wp, lnum, col, trans, spellp)
syn_get_id(wp, lnum, col, trans, spellp, keep_state)
win_T *wp;
long lnum;
colnr_T col;
int trans; /* remove transparancy */
int *spellp; /* return: can do spell checking */
int trans; /* remove transparancy */
int *spellp; /* return: can do spell checking */
int keep_state; /* keep state of char at "col" */
{
/* When the position is not after the current position and in the same
* line of the same buffer, need to restart parsing. */
@@ -6100,7 +6104,7 @@ syn_get_id(wp, lnum, col, trans, spellp)
|| col < current_col)
syntax_start(wp, lnum);
(void)get_syntax_attr(col, spellp);
(void)get_syntax_attr(col, spellp, keep_state);
return (trans ? current_trans_id : current_id);
}
@@ -6115,8 +6119,14 @@ syn_get_id(wp, lnum, col, trans, spellp)
syn_get_stack_item(i)
int i;
{
if (i >= current_state.ga_len )
if (i >= current_state.ga_len)
{
/* Need to invalidate the state, because we didn't properly finish it
* for the last character, "keep_state" was TRUE. */
invalidate_current_state();
current_col = MAXCOL;
return -1;
}
return CUR_STATE(i).si_id;
}
#endif

View File

@@ -666,6 +666,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
219,
/**/
218,
/**/