mirror of
https://github.com/neovim/neovim.git
synced 2024-12-31 17:13:26 -07:00
Merge pull request #19415 from zeertzjq/vim-8.1.1076
vim-patch:8.1.{1076,1849}: file for Insert mode is much too big
This commit is contained in:
commit
1ef84547a8
@ -37,6 +37,7 @@
|
|||||||
#include "nvim/highlight.h"
|
#include "nvim/highlight.h"
|
||||||
#include "nvim/highlight_defs.h"
|
#include "nvim/highlight_defs.h"
|
||||||
#include "nvim/highlight_group.h"
|
#include "nvim/highlight_group.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/lua/executor.h"
|
#include "nvim/lua/executor.h"
|
||||||
#include "nvim/mapping.h"
|
#include "nvim/mapping.h"
|
||||||
#include "nvim/mark.h"
|
#include "nvim/mark.h"
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "nvim/ex_getln.h"
|
#include "nvim/ex_getln.h"
|
||||||
#include "nvim/fileio.h"
|
#include "nvim/fileio.h"
|
||||||
#include "nvim/getchar.h"
|
#include "nvim/getchar.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/lua/executor.h"
|
#include "nvim/lua/executor.h"
|
||||||
#include "nvim/map.h"
|
#include "nvim/map.h"
|
||||||
#include "nvim/option.h"
|
#include "nvim/option.h"
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "nvim/fold.h"
|
#include "nvim/fold.h"
|
||||||
#include "nvim/indent.h"
|
#include "nvim/indent.h"
|
||||||
#include "nvim/indent_c.h"
|
#include "nvim/indent_c.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/mark.h"
|
#include "nvim/mark.h"
|
||||||
#include "nvim/memline.h"
|
#include "nvim/memline.h"
|
||||||
#include "nvim/move.h"
|
#include "nvim/move.h"
|
||||||
|
3797
src/nvim/edit.c
3797
src/nvim/edit.c
File diff suppressed because it is too large
Load Diff
@ -1,27 +1,9 @@
|
|||||||
#ifndef NVIM_EDIT_H
|
#ifndef NVIM_EDIT_H
|
||||||
#define NVIM_EDIT_H
|
#define NVIM_EDIT_H
|
||||||
|
|
||||||
|
#include "nvim/autocmd.h"
|
||||||
#include "nvim/vim.h"
|
#include "nvim/vim.h"
|
||||||
|
|
||||||
/*
|
|
||||||
* Array indexes used for cptext argument of ins_compl_add().
|
|
||||||
*/
|
|
||||||
#define CPT_ABBR 0 // "abbr"
|
|
||||||
#define CPT_MENU 1 // "menu"
|
|
||||||
#define CPT_KIND 2 // "kind"
|
|
||||||
#define CPT_INFO 3 // "info"
|
|
||||||
#define CPT_COUNT 4 // Number of entries
|
|
||||||
|
|
||||||
// values for cp_flags
|
|
||||||
typedef enum {
|
|
||||||
CP_ORIGINAL_TEXT = 1, // the original text when the expansion begun
|
|
||||||
CP_FREE_FNAME = 2, // cp_fname is allocated
|
|
||||||
CP_CONT_S_IPOS = 4, // use CONT_S_IPOS for compl_cont_status
|
|
||||||
CP_EQUAL = 8, // ins_compl_equal() always returns true
|
|
||||||
CP_ICASE = 16, // ins_compl_equal ignores case
|
|
||||||
CP_FAST = 32, // use fast_breakcheck instead of os_breakcheck
|
|
||||||
} cp_flags_T;
|
|
||||||
|
|
||||||
typedef int (*IndentGetter)(void);
|
typedef int (*IndentGetter)(void);
|
||||||
|
|
||||||
// Values for in_cinkeys()
|
// Values for in_cinkeys()
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "nvim/indent.h"
|
#include "nvim/indent.h"
|
||||||
#include "nvim/indent_c.h"
|
#include "nvim/indent_c.h"
|
||||||
#include "nvim/input.h"
|
#include "nvim/input.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/lua/executor.h"
|
#include "nvim/lua/executor.h"
|
||||||
#include "nvim/macros.h"
|
#include "nvim/macros.h"
|
||||||
#include "nvim/mapping.h"
|
#include "nvim/mapping.h"
|
||||||
@ -1054,64 +1055,6 @@ static void f_col(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
|||||||
get_col(argvars, rettv, false);
|
get_col(argvars, rettv, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// "complete()" function
|
|
||||||
static void f_complete(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
|
||||||
{
|
|
||||||
if ((State & MODE_INSERT) == 0) {
|
|
||||||
emsg(_("E785: complete() can only be used in Insert mode"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for undo allowed here, because if something was already inserted
|
|
||||||
// the line was already saved for undo and this check isn't done.
|
|
||||||
if (!undo_allowed(curbuf)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (argvars[1].v_type != VAR_LIST) {
|
|
||||||
emsg(_(e_invarg));
|
|
||||||
} else {
|
|
||||||
const colnr_T startcol = tv_get_number_chk(&argvars[0], NULL);
|
|
||||||
if (startcol > 0) {
|
|
||||||
set_completion(startcol - 1, argvars[1].vval.v_list);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// "complete_add()" function
|
|
||||||
static void f_complete_add(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
|
||||||
{
|
|
||||||
rettv->vval.v_number = ins_compl_add_tv(&argvars[0], 0, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// "complete_check()" function
|
|
||||||
static void f_complete_check(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
|
||||||
{
|
|
||||||
int saved = RedrawingDisabled;
|
|
||||||
|
|
||||||
RedrawingDisabled = 0;
|
|
||||||
ins_compl_check_keys(0, true);
|
|
||||||
rettv->vval.v_number = compl_interrupted;
|
|
||||||
RedrawingDisabled = saved;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// "complete_info()" function
|
|
||||||
static void f_complete_info(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
|
||||||
{
|
|
||||||
tv_dict_alloc_ret(rettv);
|
|
||||||
|
|
||||||
list_T *what_list = NULL;
|
|
||||||
|
|
||||||
if (argvars[0].v_type != VAR_UNKNOWN) {
|
|
||||||
if (argvars[0].v_type != VAR_LIST) {
|
|
||||||
emsg(_(e_listreq));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
what_list = argvars[0].vval.v_list;
|
|
||||||
}
|
|
||||||
get_complete_info(what_list, rettv->vval.v_dict);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// "confirm(message, buttons[, default [, type]])" function
|
/// "confirm(message, buttons[, default [, type]])" function
|
||||||
static void f_confirm(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
static void f_confirm(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||||
{
|
{
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "nvim/fileio.h"
|
#include "nvim/fileio.h"
|
||||||
#include "nvim/getchar.h"
|
#include "nvim/getchar.h"
|
||||||
#include "nvim/globals.h"
|
#include "nvim/globals.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/lua/executor.h"
|
#include "nvim/lua/executor.h"
|
||||||
#include "nvim/os/input.h"
|
#include "nvim/os/input.h"
|
||||||
#include "nvim/regexp.h"
|
#include "nvim/regexp.h"
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "nvim/garray.h"
|
#include "nvim/garray.h"
|
||||||
#include "nvim/getchar.h"
|
#include "nvim/getchar.h"
|
||||||
#include "nvim/input.h"
|
#include "nvim/input.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/keycodes.h"
|
#include "nvim/keycodes.h"
|
||||||
#include "nvim/lua/executor.h"
|
#include "nvim/lua/executor.h"
|
||||||
#include "nvim/main.h"
|
#include "nvim/main.h"
|
||||||
|
@ -163,10 +163,6 @@ EXTERN colnr_T dollar_vcol INIT(= -1);
|
|||||||
// by the match.)
|
// by the match.)
|
||||||
EXTERN int compl_length INIT(= 0);
|
EXTERN int compl_length INIT(= 0);
|
||||||
|
|
||||||
// Set when character typed while looking for matches and it means we should
|
|
||||||
// stop looking for matches.
|
|
||||||
EXTERN int compl_interrupted INIT(= false);
|
|
||||||
|
|
||||||
// Set when doing something for completion that may call edit() recursively,
|
// Set when doing something for completion that may call edit() recursively,
|
||||||
// which is not allowed. Also used to disable folding during completion
|
// which is not allowed. Also used to disable folding during completion
|
||||||
EXTERN bool compl_busy INIT(= false);
|
EXTERN bool compl_busy INIT(= false);
|
||||||
|
3886
src/nvim/insexpand.c
Normal file
3886
src/nvim/insexpand.c
Normal file
File diff suppressed because it is too large
Load Diff
18
src/nvim/insexpand.h
Normal file
18
src/nvim/insexpand.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#ifndef NVIM_INSEXPAND_H
|
||||||
|
#define NVIM_INSEXPAND_H
|
||||||
|
|
||||||
|
#include "nvim/eval/funcs.h"
|
||||||
|
#include "nvim/vim.h"
|
||||||
|
|
||||||
|
/// state for pum_ext_select_item.
|
||||||
|
EXTERN struct {
|
||||||
|
bool active;
|
||||||
|
int item;
|
||||||
|
bool insert;
|
||||||
|
bool finish;
|
||||||
|
} pum_want;
|
||||||
|
|
||||||
|
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||||
|
# include "insexpand.h.generated.h"
|
||||||
|
#endif
|
||||||
|
#endif // NVIM_INSEXPAND_H
|
@ -28,6 +28,7 @@
|
|||||||
#include "nvim/highlight_group.h"
|
#include "nvim/highlight_group.h"
|
||||||
#include "nvim/iconv.h"
|
#include "nvim/iconv.h"
|
||||||
#include "nvim/if_cscope.h"
|
#include "nvim/if_cscope.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/lua/executor.h"
|
#include "nvim/lua/executor.h"
|
||||||
#include "nvim/main.h"
|
#include "nvim/main.h"
|
||||||
#include "nvim/mapping.h"
|
#include "nvim/mapping.h"
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
#include "nvim/eval.h"
|
#include "nvim/eval.h"
|
||||||
#include "nvim/highlight.h"
|
#include "nvim/highlight.h"
|
||||||
#include "nvim/highlight_group.h"
|
#include "nvim/highlight_group.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/lua/executor.h"
|
#include "nvim/lua/executor.h"
|
||||||
#include "nvim/mapping.h"
|
#include "nvim/mapping.h"
|
||||||
#include "nvim/memfile.h"
|
#include "nvim/memfile.h"
|
||||||
@ -710,6 +711,7 @@ void free_all_mem(void)
|
|||||||
free_search_patterns();
|
free_search_patterns();
|
||||||
free_old_sub();
|
free_old_sub();
|
||||||
free_last_insert();
|
free_last_insert();
|
||||||
|
free_insexpand_stuff();
|
||||||
free_prev_shellcmd();
|
free_prev_shellcmd();
|
||||||
free_regexp_stuff();
|
free_regexp_stuff();
|
||||||
free_tag_stuff();
|
free_tag_stuff();
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
#include "nvim/highlight.h"
|
#include "nvim/highlight.h"
|
||||||
#include "nvim/highlight_group.h"
|
#include "nvim/highlight_group.h"
|
||||||
#include "nvim/indent_c.h"
|
#include "nvim/indent_c.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/keycodes.h"
|
#include "nvim/keycodes.h"
|
||||||
#include "nvim/macros.h"
|
#include "nvim/macros.h"
|
||||||
#include "nvim/mapping.h"
|
#include "nvim/mapping.h"
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "nvim/edit.h"
|
#include "nvim/edit.h"
|
||||||
#include "nvim/eval/typval.h"
|
#include "nvim/eval/typval.h"
|
||||||
#include "nvim/ex_cmds.h"
|
#include "nvim/ex_cmds.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/memline.h"
|
#include "nvim/memline.h"
|
||||||
#include "nvim/memory.h"
|
#include "nvim/memory.h"
|
||||||
#include "nvim/menu.h"
|
#include "nvim/menu.h"
|
||||||
|
@ -92,6 +92,7 @@
|
|||||||
#include "nvim/highlight.h"
|
#include "nvim/highlight.h"
|
||||||
#include "nvim/highlight_group.h"
|
#include "nvim/highlight_group.h"
|
||||||
#include "nvim/indent.h"
|
#include "nvim/indent.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/lib/kvec.h"
|
#include "nvim/lib/kvec.h"
|
||||||
#include "nvim/log.h"
|
#include "nvim/log.h"
|
||||||
#include "nvim/lua/executor.h"
|
#include "nvim/lua/executor.h"
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#include "nvim/getchar.h"
|
#include "nvim/getchar.h"
|
||||||
#include "nvim/indent.h"
|
#include "nvim/indent.h"
|
||||||
#include "nvim/indent_c.h"
|
#include "nvim/indent_c.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/main.h"
|
#include "nvim/main.h"
|
||||||
#include "nvim/mark.h"
|
#include "nvim/mark.h"
|
||||||
#include "nvim/mbyte.h"
|
#include "nvim/mbyte.h"
|
||||||
@ -5849,7 +5850,7 @@ exit_matched:
|
|||||||
if (action == ACTION_EXPAND) {
|
if (action == ACTION_EXPAND) {
|
||||||
ins_compl_check_keys(30, false);
|
ins_compl_check_keys(30, false);
|
||||||
}
|
}
|
||||||
if (got_int || compl_interrupted) {
|
if (got_int || ins_compl_interrupted()) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5911,7 +5912,7 @@ exit_matched:
|
|||||||
}
|
}
|
||||||
} else if (!found
|
} else if (!found
|
||||||
&& action != ACTION_EXPAND) {
|
&& action != ACTION_EXPAND) {
|
||||||
if (got_int || compl_interrupted) {
|
if (got_int || ins_compl_interrupted()) {
|
||||||
emsg(_(e_interr));
|
emsg(_(e_interr));
|
||||||
} else if (type == FIND_DEFINE) {
|
} else if (type == FIND_DEFINE) {
|
||||||
emsg(_("E388: Couldn't find definition"));
|
emsg(_("E388: Couldn't find definition"));
|
||||||
|
@ -95,6 +95,7 @@
|
|||||||
#include "nvim/getchar.h"
|
#include "nvim/getchar.h"
|
||||||
#include "nvim/hashtab.h"
|
#include "nvim/hashtab.h"
|
||||||
#include "nvim/input.h"
|
#include "nvim/input.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/mark.h"
|
#include "nvim/mark.h"
|
||||||
#include "nvim/mbyte.h"
|
#include "nvim/mbyte.h"
|
||||||
#include "nvim/memline.h"
|
#include "nvim/memline.h"
|
||||||
@ -7012,7 +7013,7 @@ void spell_dump_compl(char_u *pat, int ic, Direction *dir, int dumpflags_arg)
|
|||||||
arridx[0] = 0;
|
arridx[0] = 0;
|
||||||
curi[0] = 1;
|
curi[0] = 1;
|
||||||
while (depth >= 0 && !got_int
|
while (depth >= 0 && !got_int
|
||||||
&& (pat == NULL || !compl_interrupted)) {
|
&& (pat == NULL || !ins_compl_interrupted())) {
|
||||||
if (curi[depth] > byts[arridx[depth]]) {
|
if (curi[depth] > byts[arridx[depth]]) {
|
||||||
// Done all bytes at this node, go up one level.
|
// Done all bytes at this node, go up one level.
|
||||||
--depth;
|
--depth;
|
||||||
|
@ -5,10 +5,10 @@
|
|||||||
|
|
||||||
#include "nvim/ascii.h"
|
#include "nvim/ascii.h"
|
||||||
#include "nvim/autocmd.h"
|
#include "nvim/autocmd.h"
|
||||||
#include "nvim/edit.h"
|
|
||||||
#include "nvim/eval.h"
|
#include "nvim/eval.h"
|
||||||
#include "nvim/ex_docmd.h"
|
#include "nvim/ex_docmd.h"
|
||||||
#include "nvim/getchar.h"
|
#include "nvim/getchar.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/lib/kvec.h"
|
#include "nvim/lib/kvec.h"
|
||||||
#include "nvim/log.h"
|
#include "nvim/log.h"
|
||||||
#include "nvim/main.h"
|
#include "nvim/main.h"
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "nvim/garray.h"
|
#include "nvim/garray.h"
|
||||||
#include "nvim/if_cscope.h"
|
#include "nvim/if_cscope.h"
|
||||||
#include "nvim/input.h"
|
#include "nvim/input.h"
|
||||||
|
#include "nvim/insexpand.h"
|
||||||
#include "nvim/mark.h"
|
#include "nvim/mark.h"
|
||||||
#include "nvim/mbyte.h"
|
#include "nvim/mbyte.h"
|
||||||
#include "nvim/memory.h"
|
#include "nvim/memory.h"
|
||||||
@ -1648,7 +1649,7 @@ int find_tags(char_u *pat, int *num_matches, char_u ***matchesp, int flags, int
|
|||||||
if ((flags & TAG_INS_COMP)) { // Double brackets for gcc
|
if ((flags & TAG_INS_COMP)) { // Double brackets for gcc
|
||||||
ins_compl_check_keys(30, false);
|
ins_compl_check_keys(30, false);
|
||||||
}
|
}
|
||||||
if (got_int || compl_interrupted) {
|
if (got_int || ins_compl_interrupted()) {
|
||||||
stop_searching = true;
|
stop_searching = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user