mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
updated for version 7.0173
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
" Vim completion script
|
" Vim completion script
|
||||||
" Language: C
|
" Language: C
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2005 Oct 06
|
" Last Change: 2005 Dec 18
|
||||||
|
|
||||||
|
|
||||||
" This function is used for the 'omnifunc' option.
|
" This function is used for the 'omnifunc' option.
|
||||||
@@ -87,7 +87,7 @@ function! ccomplete#Complete(findstart, base)
|
|||||||
if diclist[i]['kind'] == 'v'
|
if diclist[i]['kind'] == 'v'
|
||||||
let line = diclist[i]['cmd']
|
let line = diclist[i]['cmd']
|
||||||
if line[0] == '/' && line[1] == '^'
|
if line[0] == '/' && line[1] == '^'
|
||||||
let col = match(line, items[0])
|
let col = match(line, '\<' . items[0] . '\>')
|
||||||
call extend(res, s:Nextitem(strpart(line, 2, col - 2), items[1:]))
|
call extend(res, s:Nextitem(strpart(line, 2, col - 2), items[1:]))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*autocmd.txt* For Vim version 7.0aa. Last change: 2005 Dec 11
|
*autocmd.txt* For Vim version 7.0aa. Last change: 2005 Dec 18
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -447,6 +447,8 @@ CursorHold When the user doesn't press a key for the time
|
|||||||
make some coffee. :) See |CursorHold-example|
|
make some coffee. :) See |CursorHold-example|
|
||||||
for previewing tags.
|
for previewing tags.
|
||||||
This event is only triggered in Normal mode.
|
This event is only triggered in Normal mode.
|
||||||
|
While recording the CursorHold event is not
|
||||||
|
triggered. |q|
|
||||||
Note: Interactive commands cannot be used for
|
Note: Interactive commands cannot be used for
|
||||||
this event. There is no hit-enter prompt,
|
this event. There is no hit-enter prompt,
|
||||||
the screen is updated directly (when needed).
|
the screen is updated directly (when needed).
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 7.0aa. Last change: 2005 Dec 17
|
*todo.txt* For Vim version 7.0aa. Last change: 2005 Dec 18
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -30,10 +30,6 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
|
|||||||
*known-bugs*
|
*known-bugs*
|
||||||
-------------------- Known bugs and current work -----------------------
|
-------------------- Known bugs and current work -----------------------
|
||||||
|
|
||||||
When 'delcombine' is set in Select mode before a character with a combining
|
|
||||||
char the combining char is deleted when it shouldn't. (Tony Mechelynck, Nov
|
|
||||||
27)
|
|
||||||
|
|
||||||
ccomplete:
|
ccomplete:
|
||||||
- When an option is set: In completion mode and the user types (identifier)
|
- When an option is set: In completion mode and the user types (identifier)
|
||||||
characters, advance to the first match instead of removing the popup menu.
|
characters, advance to the first match instead of removing the popup menu.
|
||||||
@@ -41,10 +37,11 @@ ccomplete:
|
|||||||
- Complete the longest common match instead of the first match?
|
- Complete the longest common match instead of the first match?
|
||||||
For all kinds of completions? Configurable?
|
For all kinds of completions? Configurable?
|
||||||
- !_TAG_FILE_FORMAT and it's ilk are listed in the global completions
|
- !_TAG_FILE_FORMAT and it's ilk are listed in the global completions
|
||||||
- When completing something that is a structure, add the "." or "->".
|
Can't reproduce it right now...
|
||||||
- When a typedef or struct is local to a file only use it in that file?
|
|
||||||
- Window resize when poup is displayed
|
- Window resize when poup is displayed
|
||||||
- page-up / page-down
|
- When completing something that is a structure, add the "." or "->" right
|
||||||
|
away. How to figure out if it's a pointer or not?
|
||||||
|
- When a typedef or struct is local to a file only use it in that file?
|
||||||
|
|
||||||
spelling:
|
spelling:
|
||||||
- Use KEEPCASE instead of "KEP". It applies to the word including affixes
|
- Use KEEPCASE instead of "KEP". It applies to the word including affixes
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*version7.txt* For Vim version 7.0aa. Last change: 2005 Dec 17
|
*version7.txt* For Vim version 7.0aa. Last change: 2005 Dec 18
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1499,4 +1499,11 @@ When inside input(), using "CTRL-R =" and the expression throws an exception
|
|||||||
the command line was not abandoned but it wasn't used either. Now abandon
|
the command line was not abandoned but it wasn't used either. Now abandon
|
||||||
typing the command line.
|
typing the command line.
|
||||||
|
|
||||||
|
'delcombine' was also used in Visual and Select mode and for commands like
|
||||||
|
"cl". That was illogical and has been disabled.
|
||||||
|
|
||||||
|
When recording while a CursorHold autocommand was defined special keys would
|
||||||
|
appear in the register. Now the CursorHold event is not triggered while
|
||||||
|
recording.
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
90
src/edit.c
90
src/edit.c
@@ -121,7 +121,9 @@ static buf_T *ins_compl_next_buf __ARGS((buf_T *buf, int flag));
|
|||||||
static int ins_compl_get_exp __ARGS((pos_T *ini, int dir));
|
static int ins_compl_get_exp __ARGS((pos_T *ini, int dir));
|
||||||
static void ins_compl_delete __ARGS((void));
|
static void ins_compl_delete __ARGS((void));
|
||||||
static void ins_compl_insert __ARGS((void));
|
static void ins_compl_insert __ARGS((void));
|
||||||
static int ins_compl_next __ARGS((int allow_get_expansion));
|
static int ins_compl_next __ARGS((int allow_get_expansion, int count));
|
||||||
|
static int ins_compl_key2dir __ARGS((int c));
|
||||||
|
static int ins_compl_key2count __ARGS((int c));
|
||||||
static int ins_complete __ARGS((int c));
|
static int ins_complete __ARGS((int c));
|
||||||
static int quote_meta __ARGS((char_u *dest, char_u *str, int len));
|
static int quote_meta __ARGS((char_u *dest, char_u *str, int len));
|
||||||
#endif /* FEAT_INS_EXPAND */
|
#endif /* FEAT_INS_EXPAND */
|
||||||
@@ -1043,6 +1045,8 @@ doESCkey:
|
|||||||
case K_S_UP: /* <S-Up> */
|
case K_S_UP: /* <S-Up> */
|
||||||
case K_PAGEUP:
|
case K_PAGEUP:
|
||||||
case K_KPAGEUP:
|
case K_KPAGEUP:
|
||||||
|
if (pum_visible())
|
||||||
|
goto docomplete;
|
||||||
ins_pageup();
|
ins_pageup();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1056,6 +1060,8 @@ doESCkey:
|
|||||||
case K_S_DOWN: /* <S-Down> */
|
case K_S_DOWN: /* <S-Down> */
|
||||||
case K_PAGEDOWN:
|
case K_PAGEDOWN:
|
||||||
case K_KPAGEDOWN:
|
case K_KPAGEDOWN:
|
||||||
|
if (pum_visible())
|
||||||
|
goto docomplete;
|
||||||
ins_pagedown();
|
ins_pagedown();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1819,6 +1825,11 @@ vim_is_ctrl_x_key(c)
|
|||||||
if (c == Ctrl_R)
|
if (c == Ctrl_R)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
/* Accept <PageUp> and <PageDown> if the popup menu is visible. */
|
||||||
|
if (pum_visible() && (c == K_PAGEUP || c == K_KPAGEUP || c == K_S_UP
|
||||||
|
|| c == K_PAGEDOWN || c == K_KPAGEDOWN || c == K_S_DOWN))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
switch (ctrl_x_mode)
|
switch (ctrl_x_mode)
|
||||||
{
|
{
|
||||||
case 0: /* Not in any CTRL-X mode */
|
case 0: /* Not in any CTRL-X mode */
|
||||||
@@ -3272,11 +3283,14 @@ ins_compl_insert()
|
|||||||
* calls this function with "allow_get_expansion" FALSE.
|
* calls this function with "allow_get_expansion" FALSE.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
ins_compl_next(allow_get_expansion)
|
ins_compl_next(allow_get_expansion, count)
|
||||||
int allow_get_expansion;
|
int allow_get_expansion;
|
||||||
|
int count; /* repeat completion this many times; should
|
||||||
|
be at least 1 */
|
||||||
{
|
{
|
||||||
int num_matches = -1;
|
int num_matches = -1;
|
||||||
int i;
|
int i;
|
||||||
|
int todo = count;
|
||||||
|
|
||||||
if (allow_get_expansion)
|
if (allow_get_expansion)
|
||||||
{
|
{
|
||||||
@@ -3284,16 +3298,32 @@ ins_compl_next(allow_get_expansion)
|
|||||||
ins_compl_delete();
|
ins_compl_delete();
|
||||||
}
|
}
|
||||||
compl_pending = FALSE;
|
compl_pending = FALSE;
|
||||||
|
|
||||||
|
/* Repeat this for when <PageUp> or <PageDown> is typed. But don't wrap
|
||||||
|
* around. */
|
||||||
|
while (--todo >= 0)
|
||||||
|
{
|
||||||
if (compl_shows_dir == FORWARD && compl_shown_match->cp_next != NULL)
|
if (compl_shows_dir == FORWARD && compl_shown_match->cp_next != NULL)
|
||||||
|
{
|
||||||
compl_shown_match = compl_shown_match->cp_next;
|
compl_shown_match = compl_shown_match->cp_next;
|
||||||
else if (compl_shows_dir == BACKWARD && compl_shown_match->cp_prev != NULL)
|
if (compl_shown_match->cp_next != NULL
|
||||||
|
&& compl_shown_match->cp_next == compl_first_match)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (compl_shows_dir == BACKWARD
|
||||||
|
&& compl_shown_match->cp_prev != NULL)
|
||||||
|
{
|
||||||
compl_shown_match = compl_shown_match->cp_prev;
|
compl_shown_match = compl_shown_match->cp_prev;
|
||||||
|
if (compl_shown_match == compl_first_match)
|
||||||
|
break;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
compl_pending = TRUE;
|
compl_pending = TRUE;
|
||||||
if (allow_get_expansion)
|
if (allow_get_expansion)
|
||||||
{
|
{
|
||||||
num_matches = ins_compl_get_exp(&compl_startpos, compl_direction);
|
num_matches = ins_compl_get_exp(&compl_startpos,
|
||||||
|
compl_direction);
|
||||||
if (compl_pending)
|
if (compl_pending)
|
||||||
{
|
{
|
||||||
if (compl_direction == compl_shows_dir)
|
if (compl_direction == compl_shows_dir)
|
||||||
@@ -3303,6 +3333,7 @@ ins_compl_next(allow_get_expansion)
|
|||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Insert the text of the new completion */
|
/* Insert the text of the new completion */
|
||||||
ins_compl_insert();
|
ins_compl_insert();
|
||||||
@@ -3376,17 +3407,49 @@ ins_compl_check_keys(frequency)
|
|||||||
if (vim_is_ctrl_x_key(c) && c != Ctrl_X && c != Ctrl_R)
|
if (vim_is_ctrl_x_key(c) && c != Ctrl_X && c != Ctrl_R)
|
||||||
{
|
{
|
||||||
c = safe_vgetc(); /* Eat the character */
|
c = safe_vgetc(); /* Eat the character */
|
||||||
if (c == Ctrl_P || c == Ctrl_L)
|
compl_shows_dir = ins_compl_key2dir(c);
|
||||||
compl_shows_dir = BACKWARD;
|
(void)ins_compl_next(FALSE, ins_compl_key2count(c));
|
||||||
else
|
|
||||||
compl_shows_dir = FORWARD;
|
|
||||||
(void)ins_compl_next(FALSE);
|
|
||||||
}
|
}
|
||||||
else if (c != Ctrl_R)
|
else if (c != Ctrl_R)
|
||||||
compl_interrupted = TRUE;
|
compl_interrupted = TRUE;
|
||||||
}
|
}
|
||||||
if (compl_pending && !got_int)
|
if (compl_pending && !got_int)
|
||||||
(void)ins_compl_next(FALSE);
|
(void)ins_compl_next(FALSE, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Decide the direction of Insert mode complete from the key typed.
|
||||||
|
* Returns BACKWARD or FORWARD.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
ins_compl_key2dir(c)
|
||||||
|
int c;
|
||||||
|
{
|
||||||
|
if (c == Ctrl_P || c == Ctrl_L || (pum_visible()
|
||||||
|
&& (c == K_PAGEUP || c == K_KPAGEUP || c == K_S_UP)))
|
||||||
|
return BACKWARD;
|
||||||
|
return FORWARD;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Decide the number of completions to move forward.
|
||||||
|
* Returns 1 for most keys, height of the popup menu for page-up/down keys.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
ins_compl_key2count(c)
|
||||||
|
int c;
|
||||||
|
{
|
||||||
|
int h;
|
||||||
|
|
||||||
|
if (pum_visible() && (c == K_PAGEUP || c == K_KPAGEUP || c == K_S_UP
|
||||||
|
|| c == K_PAGEDOWN || c == K_KPAGEDOWN || c == K_S_DOWN))
|
||||||
|
{
|
||||||
|
h = pum_get_height();
|
||||||
|
if (h > 3)
|
||||||
|
h -= 2; /* keep some context */
|
||||||
|
return h;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -3403,10 +3466,7 @@ ins_complete(c)
|
|||||||
colnr_T curs_col; /* cursor column */
|
colnr_T curs_col; /* cursor column */
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
if (c == Ctrl_P || c == Ctrl_L)
|
compl_direction = ins_compl_key2dir(c);
|
||||||
compl_direction = BACKWARD;
|
|
||||||
else
|
|
||||||
compl_direction = FORWARD;
|
|
||||||
if (!compl_started)
|
if (!compl_started)
|
||||||
{
|
{
|
||||||
/* First time we hit ^N or ^P (in a row, I mean) */
|
/* First time we hit ^N or ^P (in a row, I mean) */
|
||||||
@@ -3783,7 +3843,7 @@ ins_complete(c)
|
|||||||
/*
|
/*
|
||||||
* Find next match.
|
* Find next match.
|
||||||
*/
|
*/
|
||||||
n = ins_compl_next(TRUE);
|
n = ins_compl_next(TRUE, ins_compl_key2count(c));
|
||||||
|
|
||||||
/* may undisplay the popup menu */
|
/* may undisplay the popup menu */
|
||||||
ins_compl_upd_pum();
|
ins_compl_upd_pum();
|
||||||
|
10
src/misc1.c
10
src/misc1.c
@@ -2110,7 +2110,7 @@ del_char(fixpos)
|
|||||||
return del_chars(1L, fixpos);
|
return del_chars(1L, fixpos);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return del_bytes(1L, fixpos);
|
return del_bytes(1L, fixpos, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(FEAT_MBYTE) || defined(PROTO)
|
#if defined(FEAT_MBYTE) || defined(PROTO)
|
||||||
@@ -2134,7 +2134,7 @@ del_chars(count, fixpos)
|
|||||||
bytes += l;
|
bytes += l;
|
||||||
p += l;
|
p += l;
|
||||||
}
|
}
|
||||||
return del_bytes(bytes, fixpos);
|
return del_bytes(bytes, fixpos, TRUE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2146,9 +2146,10 @@ del_chars(count, fixpos)
|
|||||||
* return FAIL for failure, OK otherwise
|
* return FAIL for failure, OK otherwise
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
del_bytes(count, fixpos)
|
del_bytes(count, fixpos, use_delcombine)
|
||||||
long count;
|
long count;
|
||||||
int fixpos;
|
int fixpos;
|
||||||
|
int use_delcombine; /* 'delcombine' option applies */
|
||||||
{
|
{
|
||||||
char_u *oldp, *newp;
|
char_u *oldp, *newp;
|
||||||
colnr_T oldlen;
|
colnr_T oldlen;
|
||||||
@@ -2169,7 +2170,8 @@ del_bytes(count, fixpos)
|
|||||||
#ifdef FEAT_MBYTE
|
#ifdef FEAT_MBYTE
|
||||||
/* If 'delcombine' is set and deleting (less than) one character, only
|
/* If 'delcombine' is set and deleting (less than) one character, only
|
||||||
* delete the last combining character. */
|
* delete the last combining character. */
|
||||||
if (p_deco && enc_utf8 && utfc_ptr2len(oldp + col) >= count)
|
if (p_deco && use_delcombine && enc_utf8
|
||||||
|
&& utfc_ptr2len(oldp + col) >= count)
|
||||||
{
|
{
|
||||||
int c1, c2;
|
int c1, c2;
|
||||||
int n;
|
int n;
|
||||||
|
@@ -1843,7 +1843,8 @@ op_delete(oap)
|
|||||||
curwin->w_cursor.coladd = 0;
|
curwin->w_cursor.coladd = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
(void)del_bytes((long)n, restart_edit == NUL && !virtual_op);
|
(void)del_bytes((long)n, restart_edit == NUL && !virtual_op,
|
||||||
|
oap->op_type == OP_DELETE && !oap->is_VIsual);
|
||||||
}
|
}
|
||||||
else /* delete characters between lines */
|
else /* delete characters between lines */
|
||||||
{
|
{
|
||||||
@@ -1863,7 +1864,8 @@ op_delete(oap)
|
|||||||
/* delete from start of line until op_end */
|
/* delete from start of line until op_end */
|
||||||
curwin->w_cursor.col = 0;
|
curwin->w_cursor.col = 0;
|
||||||
(void)del_bytes((long)(oap->end.col + 1 - !oap->inclusive),
|
(void)del_bytes((long)(oap->end.col + 1 - !oap->inclusive),
|
||||||
restart_edit == NUL && !virtual_op);
|
restart_edit == NUL && !virtual_op,
|
||||||
|
oap->op_type == OP_DELETE && !oap->is_VIsual);
|
||||||
curwin->w_cursor = curpos; /* restore curwin->w_cursor */
|
curwin->w_cursor = curpos; /* restore curwin->w_cursor */
|
||||||
|
|
||||||
(void)do_join(FALSE);
|
(void)do_join(FALSE);
|
||||||
@@ -4509,7 +4511,7 @@ format_lines(line_count)
|
|||||||
if (line_count < 0 && u_save_cursor() == FAIL)
|
if (line_count < 0 && u_save_cursor() == FAIL)
|
||||||
break;
|
break;
|
||||||
#ifdef FEAT_COMMENTS
|
#ifdef FEAT_COMMENTS
|
||||||
(void)del_bytes((long)next_leader_len, FALSE);
|
(void)del_bytes((long)next_leader_len, FALSE, FALSE);
|
||||||
if (next_leader_len > 0)
|
if (next_leader_len > 0)
|
||||||
mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L,
|
mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L,
|
||||||
(long)-next_leader_len);
|
(long)-next_leader_len);
|
||||||
|
@@ -139,8 +139,7 @@ mch_inchar(buf, maxlen, time, tb_change_cnt)
|
|||||||
if (WaitForChar(raw_in, p_ut * 1000L) == 0)
|
if (WaitForChar(raw_in, p_ut * 1000L) == 0)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
#ifdef FEAT_AUTOCMD
|
||||||
if (!did_cursorhold && has_cursorhold()
|
if (trigger_cursorhold() && maxlen >= 3)
|
||||||
&& get_real_state() == NORMAL_BUSY && maxlen >= 3)
|
|
||||||
{
|
{
|
||||||
buf[0] = K_SPECIAL;
|
buf[0] = K_SPECIAL;
|
||||||
buf[1] = KS_EXTRA;
|
buf[1] = KS_EXTRA;
|
||||||
|
@@ -1037,8 +1037,7 @@ mch_inchar(
|
|||||||
if (WaitForChar(p_ut) == 0)
|
if (WaitForChar(p_ut) == 0)
|
||||||
{
|
{
|
||||||
#ifdef FEAT_AUTOCMD
|
#ifdef FEAT_AUTOCMD
|
||||||
if (!did_cursorhold && has_cursorhold()
|
if (trigger_cursorhold() && maxlen >= 3)
|
||||||
&& get_real_state() == NORMAL_BUSY && maxlen >= 3)
|
|
||||||
{
|
{
|
||||||
buf[0] = K_SPECIAL;
|
buf[0] = K_SPECIAL;
|
||||||
buf[1] = KS_EXTRA;
|
buf[1] = KS_EXTRA;
|
||||||
|
@@ -237,12 +237,28 @@ pum_set_selected(n)
|
|||||||
|
|
||||||
if (pum_selected >= 0)
|
if (pum_selected >= 0)
|
||||||
{
|
{
|
||||||
if (pum_first > pum_selected)
|
if (pum_first > pum_selected - 4)
|
||||||
/* scroll down */
|
{
|
||||||
pum_first = pum_selected;
|
/* scroll down; when we did a jump it's probably a PageUp then
|
||||||
else if (pum_first < pum_selected - pum_height + 1)
|
* scroll to put the selected entry at the bottom */
|
||||||
/* scroll up */
|
if (pum_first > pum_selected - 2)
|
||||||
|
{
|
||||||
pum_first = pum_selected - pum_height + 1;
|
pum_first = pum_selected - pum_height + 1;
|
||||||
|
if (pum_first < 0)
|
||||||
|
pum_first = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
pum_first = pum_selected;
|
||||||
|
}
|
||||||
|
else if (pum_first < pum_selected - pum_height + 5)
|
||||||
|
{
|
||||||
|
/* scroll up; when we did a jump it's probably a PageDown then
|
||||||
|
* scroll to put the selected entry at the top */
|
||||||
|
if (pum_first < pum_selected - pum_height + 1 + 2)
|
||||||
|
pum_first = pum_selected;
|
||||||
|
else
|
||||||
|
pum_first = pum_selected - pum_height + 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (pum_height > 6)
|
if (pum_height > 6)
|
||||||
{
|
{
|
||||||
@@ -298,4 +314,14 @@ pum_visible()
|
|||||||
return pum_array != NULL;
|
return pum_array != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return the height of the popup menu, the number of entries visible.
|
||||||
|
* Only valid when pum_visible() returns TRUE!
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
pum_get_height()
|
||||||
|
{
|
||||||
|
return pum_height;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -36,6 +36,7 @@ void aucmd_restbuf __ARGS((aco_save_T *aco));
|
|||||||
int apply_autocmds __ARGS((EVENT_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf));
|
int apply_autocmds __ARGS((EVENT_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf));
|
||||||
int apply_autocmds_retval __ARGS((EVENT_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf, int *retval));
|
int apply_autocmds_retval __ARGS((EVENT_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf, int *retval));
|
||||||
int has_cursorhold __ARGS((void));
|
int has_cursorhold __ARGS((void));
|
||||||
|
int trigger_cursorhold __ARGS((void));
|
||||||
int has_autocmd __ARGS((EVENT_T event, char_u *sfname, buf_T *buf));
|
int has_autocmd __ARGS((EVENT_T event, char_u *sfname, buf_T *buf));
|
||||||
char_u *get_augroup_name __ARGS((expand_T *xp, int idx));
|
char_u *get_augroup_name __ARGS((expand_T *xp, int idx));
|
||||||
char_u *set_context_in_autocmd __ARGS((expand_T *xp, char_u *arg, int doautocmd));
|
char_u *set_context_in_autocmd __ARGS((expand_T *xp, char_u *arg, int doautocmd));
|
||||||
|
@@ -1,94 +1,94 @@
|
|||||||
/* misc1.c */
|
/* misc1.c */
|
||||||
extern int get_indent __ARGS((void));
|
int get_indent __ARGS((void));
|
||||||
extern int get_indent_lnum __ARGS((linenr_T lnum));
|
int get_indent_lnum __ARGS((linenr_T lnum));
|
||||||
extern int get_indent_buf __ARGS((buf_T *buf, linenr_T lnum));
|
int get_indent_buf __ARGS((buf_T *buf, linenr_T lnum));
|
||||||
extern int get_indent_str __ARGS((char_u *ptr, int ts));
|
int get_indent_str __ARGS((char_u *ptr, int ts));
|
||||||
extern int set_indent __ARGS((int size, int flags));
|
int set_indent __ARGS((int size, int flags));
|
||||||
extern int get_number_indent __ARGS((linenr_T lnum));
|
int get_number_indent __ARGS((linenr_T lnum));
|
||||||
extern int open_line __ARGS((int dir, int flags, int old_indent));
|
int open_line __ARGS((int dir, int flags, int old_indent));
|
||||||
extern int get_leader_len __ARGS((char_u *line, char_u **flags, int backward));
|
int get_leader_len __ARGS((char_u *line, char_u **flags, int backward));
|
||||||
extern int plines __ARGS((linenr_T lnum));
|
int plines __ARGS((linenr_T lnum));
|
||||||
extern int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
|
int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
|
||||||
extern int plines_nofill __ARGS((linenr_T lnum));
|
int plines_nofill __ARGS((linenr_T lnum));
|
||||||
extern int plines_win_nofill __ARGS((win_T *wp, linenr_T lnum, int winheight));
|
int plines_win_nofill __ARGS((win_T *wp, linenr_T lnum, int winheight));
|
||||||
extern int plines_win_nofold __ARGS((win_T *wp, linenr_T lnum));
|
int plines_win_nofold __ARGS((win_T *wp, linenr_T lnum));
|
||||||
extern int plines_win_col __ARGS((win_T *wp, linenr_T lnum, long column));
|
int plines_win_col __ARGS((win_T *wp, linenr_T lnum, long column));
|
||||||
extern int plines_m_win __ARGS((win_T *wp, linenr_T first, linenr_T last));
|
int plines_m_win __ARGS((win_T *wp, linenr_T first, linenr_T last));
|
||||||
extern void ins_bytes __ARGS((char_u *p));
|
void ins_bytes __ARGS((char_u *p));
|
||||||
extern void ins_bytes_len __ARGS((char_u *p, int len));
|
void ins_bytes_len __ARGS((char_u *p, int len));
|
||||||
extern void ins_char __ARGS((int c));
|
void ins_char __ARGS((int c));
|
||||||
extern void ins_char_bytes __ARGS((char_u *buf, int charlen));
|
void ins_char_bytes __ARGS((char_u *buf, int charlen));
|
||||||
extern void ins_str __ARGS((char_u *s));
|
void ins_str __ARGS((char_u *s));
|
||||||
extern int del_char __ARGS((int fixpos));
|
int del_char __ARGS((int fixpos));
|
||||||
extern int del_chars __ARGS((long count, int fixpos));
|
int del_chars __ARGS((long count, int fixpos));
|
||||||
extern int del_bytes __ARGS((long count, int fixpos));
|
int del_bytes __ARGS((long count, int fixpos, int use_delcombine));
|
||||||
extern int truncate_line __ARGS((int fixpos));
|
int truncate_line __ARGS((int fixpos));
|
||||||
extern void del_lines __ARGS((long nlines, int undo));
|
void del_lines __ARGS((long nlines, int undo));
|
||||||
extern int gchar_pos __ARGS((pos_T *pos));
|
int gchar_pos __ARGS((pos_T *pos));
|
||||||
extern int gchar_cursor __ARGS((void));
|
int gchar_cursor __ARGS((void));
|
||||||
extern void pchar_cursor __ARGS((int c));
|
void pchar_cursor __ARGS((int c));
|
||||||
extern int inindent __ARGS((int extra));
|
int inindent __ARGS((int extra));
|
||||||
extern char_u *skip_to_option_part __ARGS((char_u *p));
|
char_u *skip_to_option_part __ARGS((char_u *p));
|
||||||
extern void changed __ARGS((void));
|
void changed __ARGS((void));
|
||||||
extern void changed_bytes __ARGS((linenr_T lnum, colnr_T col));
|
void changed_bytes __ARGS((linenr_T lnum, colnr_T col));
|
||||||
extern void appended_lines __ARGS((linenr_T lnum, long count));
|
void appended_lines __ARGS((linenr_T lnum, long count));
|
||||||
extern void appended_lines_mark __ARGS((linenr_T lnum, long count));
|
void appended_lines_mark __ARGS((linenr_T lnum, long count));
|
||||||
extern void deleted_lines __ARGS((linenr_T lnum, long count));
|
void deleted_lines __ARGS((linenr_T lnum, long count));
|
||||||
extern void deleted_lines_mark __ARGS((linenr_T lnum, long count));
|
void deleted_lines_mark __ARGS((linenr_T lnum, long count));
|
||||||
extern void changed_lines __ARGS((linenr_T lnum, colnr_T col, linenr_T lnume, long xtra));
|
void changed_lines __ARGS((linenr_T lnum, colnr_T col, linenr_T lnume, long xtra));
|
||||||
extern void unchanged __ARGS((buf_T *buf, int ff));
|
void unchanged __ARGS((buf_T *buf, int ff));
|
||||||
extern void check_status __ARGS((buf_T *buf));
|
void check_status __ARGS((buf_T *buf));
|
||||||
extern void change_warning __ARGS((int col));
|
void change_warning __ARGS((int col));
|
||||||
extern int ask_yesno __ARGS((char_u *str, int direct));
|
int ask_yesno __ARGS((char_u *str, int direct));
|
||||||
extern int get_keystroke __ARGS((void));
|
int get_keystroke __ARGS((void));
|
||||||
extern int get_number __ARGS((int colon, int *mouse_used));
|
int get_number __ARGS((int colon, int *mouse_used));
|
||||||
extern int prompt_for_number __ARGS((int *mouse_used));
|
int prompt_for_number __ARGS((int *mouse_used));
|
||||||
extern void msgmore __ARGS((long n));
|
void msgmore __ARGS((long n));
|
||||||
extern void beep_flush __ARGS((void));
|
void beep_flush __ARGS((void));
|
||||||
extern void vim_beep __ARGS((void));
|
void vim_beep __ARGS((void));
|
||||||
extern void init_homedir __ARGS((void));
|
void init_homedir __ARGS((void));
|
||||||
extern void free_homedir __ARGS((void));
|
void free_homedir __ARGS((void));
|
||||||
extern void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
|
void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
|
||||||
extern void expand_env_esc __ARGS((char_u *srcp, char_u *dst, int dstlen, int esc, char_u *startstr));
|
void expand_env_esc __ARGS((char_u *srcp, char_u *dst, int dstlen, int esc, char_u *startstr));
|
||||||
extern char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
|
char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
|
||||||
extern char_u *expand_env_save __ARGS((char_u *src));
|
char_u *expand_env_save __ARGS((char_u *src));
|
||||||
extern void vim_setenv __ARGS((char_u *name, char_u *val));
|
void vim_setenv __ARGS((char_u *name, char_u *val));
|
||||||
extern char_u *get_env_name __ARGS((expand_T *xp, int idx));
|
char_u *get_env_name __ARGS((expand_T *xp, int idx));
|
||||||
extern void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
|
void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
|
||||||
extern char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
|
char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
|
||||||
extern int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
|
int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
|
||||||
extern char_u *gettail __ARGS((char_u *fname));
|
char_u *gettail __ARGS((char_u *fname));
|
||||||
extern char_u *gettail_sep __ARGS((char_u *fname));
|
char_u *gettail_sep __ARGS((char_u *fname));
|
||||||
extern char_u *getnextcomp __ARGS((char_u *fname));
|
char_u *getnextcomp __ARGS((char_u *fname));
|
||||||
extern char_u *get_past_head __ARGS((char_u *path));
|
char_u *get_past_head __ARGS((char_u *path));
|
||||||
extern int vim_ispathsep __ARGS((int c));
|
int vim_ispathsep __ARGS((int c));
|
||||||
extern int vim_ispathlistsep __ARGS((int c));
|
int vim_ispathlistsep __ARGS((int c));
|
||||||
extern int dir_of_file_exists __ARGS((char_u *fname));
|
int dir_of_file_exists __ARGS((char_u *fname));
|
||||||
extern int vim_fnamecmp __ARGS((char_u *x, char_u *y));
|
int vim_fnamecmp __ARGS((char_u *x, char_u *y));
|
||||||
extern int vim_fnamencmp __ARGS((char_u *x, char_u *y, size_t len));
|
int vim_fnamencmp __ARGS((char_u *x, char_u *y, size_t len));
|
||||||
extern char_u *concat_fnames __ARGS((char_u *fname1, char_u *fname2, int sep));
|
char_u *concat_fnames __ARGS((char_u *fname1, char_u *fname2, int sep));
|
||||||
extern char_u *concat_str __ARGS((char_u *str1, char_u *str2));
|
char_u *concat_str __ARGS((char_u *str1, char_u *str2));
|
||||||
extern void add_pathsep __ARGS((char_u *p));
|
void add_pathsep __ARGS((char_u *p));
|
||||||
extern char_u *FullName_save __ARGS((char_u *fname, int force));
|
char_u *FullName_save __ARGS((char_u *fname, int force));
|
||||||
extern pos_T *find_start_comment __ARGS((int ind_maxcomment));
|
pos_T *find_start_comment __ARGS((int ind_maxcomment));
|
||||||
extern void do_c_expr_indent __ARGS((void));
|
void do_c_expr_indent __ARGS((void));
|
||||||
extern int cin_islabel __ARGS((int ind_maxcomment));
|
int cin_islabel __ARGS((int ind_maxcomment));
|
||||||
extern int cin_iscase __ARGS((char_u *s));
|
int cin_iscase __ARGS((char_u *s));
|
||||||
extern int cin_isscopedecl __ARGS((char_u *s));
|
int cin_isscopedecl __ARGS((char_u *s));
|
||||||
extern int get_c_indent __ARGS((void));
|
int get_c_indent __ARGS((void));
|
||||||
extern int get_expr_indent __ARGS((void));
|
int get_expr_indent __ARGS((void));
|
||||||
extern int get_lisp_indent __ARGS((void));
|
int get_lisp_indent __ARGS((void));
|
||||||
extern void prepare_to_exit __ARGS((void));
|
void prepare_to_exit __ARGS((void));
|
||||||
extern void preserve_exit __ARGS((void));
|
void preserve_exit __ARGS((void));
|
||||||
extern int vim_fexists __ARGS((char_u *fname));
|
int vim_fexists __ARGS((char_u *fname));
|
||||||
extern void line_breakcheck __ARGS((void));
|
void line_breakcheck __ARGS((void));
|
||||||
extern void fast_breakcheck __ARGS((void));
|
void fast_breakcheck __ARGS((void));
|
||||||
extern int expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
|
int expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
|
||||||
extern int match_suffix __ARGS((char_u *fname));
|
int match_suffix __ARGS((char_u *fname));
|
||||||
extern int unix_expandpath __ARGS((garray_T *gap, char_u *path, int wildoff, int flags, int didstar));
|
int unix_expandpath __ARGS((garray_T *gap, char_u *path, int wildoff, int flags, int didstar));
|
||||||
extern int gen_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
|
int gen_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
|
||||||
extern void addfile __ARGS((garray_T *gap, char_u *f, int flags));
|
void addfile __ARGS((garray_T *gap, char_u *f, int flags));
|
||||||
extern char_u *get_cmd_output __ARGS((char_u *cmd, char_u *infile, int flags));
|
char_u *get_cmd_output __ARGS((char_u *cmd, char_u *infile, int flags));
|
||||||
extern void FreeWild __ARGS((int count, char_u **files));
|
void FreeWild __ARGS((int count, char_u **files));
|
||||||
extern int goto_im __ARGS((void));
|
int goto_im __ARGS((void));
|
||||||
/* vim: set ft=c : */
|
/* vim: set ft=c : */
|
||||||
|
@@ -36,5 +36,5 @@
|
|||||||
#define VIM_VERSION_NODOT "vim70aa"
|
#define VIM_VERSION_NODOT "vim70aa"
|
||||||
#define VIM_VERSION_SHORT "7.0aa"
|
#define VIM_VERSION_SHORT "7.0aa"
|
||||||
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
|
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
|
||||||
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 17)"
|
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 18)"
|
||||||
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 17, compiled "
|
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 18, compiled "
|
||||||
|
Reference in New Issue
Block a user