File: //home/ubuntu/neovim/build/src/nvim/auto/insexpand.c.generated.h
#define DEFINE_FUNC_ATTRIBUTES
#include "nvim/func_attr.h"
#undef DEFINE_FUNC_ATTRIBUTES
static _Bool ctrl_x_mode_eval(void) FUNC_ATTR_PURE;
static _Bool compl_dir_forward(void);
static _Bool compl_shows_dir_forward(void);
static _Bool compl_shows_dir_backward(void);
static _Bool match_at_original_text(const compl_T *const match);
static _Bool is_first_match(const compl_T *const match);
static void do_autocmd_completedone(int c);
static char *ins_compl_infercase_gettext(const char *str, int char_len, int compl_char_len, int min_len, char **tofree);
static inline void free_cptext(char *const *const cptext);
static int ins_compl_add(char *const str, int len, char *const fname, char *const *const cptext, const _Bool cptext_allocated, typval_T *user_data, const Direction cdir, int flags_arg, const _Bool adup, int user_hlattr, int user_kind_hlattr) FUNC_ATTR_NONNULL_ARG(1);
static _Bool ins_compl_equal(compl_T *match, char *str, size_t len) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL;
static void ins_compl_longest_match(compl_T *match);
static void ins_compl_add_matches(int num_matches, char **matches, int icase);
static int ins_compl_make_cyclic(void);
static void ins_compl_del_pum(void);
static _Bool pum_enough_matches(void) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT;
static dict_T *ins_compl_dict_alloc(compl_T *match);
static void trigger_complete_changed_event(int cur);
static int ins_compl_fuzzy_cmp(const void *a, const void *b);
static int ins_compl_build_pum(void);
static void ins_compl_dictionaries(char *dict_start, char *pat, int flags, _Bool thesaurus);
static int thesaurus_add_words_in_line(char *fname, char **buf_arg, int dir, const char *skip_word);
static void ins_compl_files(int count, char **files, _Bool thesaurus, int flags, regmatch_T *regmatch, char *buf, Direction *dir) FUNC_ATTR_NONNULL_ARG(2, 7);
static char *find_line_end(char *ptr);
static void ins_compl_free(void);
static _Bool ins_compl_need_restart(void) FUNC_ATTR_PURE;
static void ins_compl_new_leader(void);
static int get_compl_len(void);
static void ins_compl_restart(void);
static void ins_compl_set_original_text(char *str) FUNC_ATTR_NONNULL_ALL;
static _Bool set_ctrl_x_mode(const int c);
static _Bool ins_compl_stop(const int c, const int prev_mode, _Bool retval);
static void ins_compl_fixRedoBufForLeader(char *ptr_arg);
static buf_T *ins_compl_next_buf(buf_T *buf, int flag);
static void copy_global_to_buflocal_cb(Callback *globcb, Callback *bufcb);
static char *get_complete_funcname(int type);
static Callback *get_insert_callback(int type);
static void expand_by_function(int type, char *base);
static inline int get_user_highlight_attr(const char *hlname);
static int ins_compl_add_tv(typval_T *const tv, const Direction dir, _Bool fast) FUNC_ATTR_NONNULL_ALL;
static void ins_compl_add_list(list_T *const list);
static void ins_compl_add_dict(dict_T *dict);
static void save_orig_extmarks(void);
static void restore_orig_extmarks(void);
static void set_completion(colnr_T startcol, list_T *list);
static char *ins_compl_mode(void);
static void ins_compl_update_sequence_numbers(void);
static void get_complete_info(list_T *what_list, dict_T *retdict);
static _Bool thesaurus_func_complete(int type);
static int process_next_cpt_value(ins_compl_next_state_T *st, int *compl_type_arg, pos_T *start_match_pos);
static void get_next_include_file_completion(int compl_type);
static void get_next_dict_tsr_completion(int compl_type, char *dict, int dict_f);
static void get_next_tag_completion(void);
static void get_next_filename_completion(void);
static void get_next_cmdline_completion(void);
static void get_next_spell_completion(linenr_T lnum);
static char *ins_compl_get_next_word_or_line(buf_T *ins_buf, pos_T *cur_match_pos, int *match_len, _Bool *cont_s_ipos);
static int get_next_default_completion(ins_compl_next_state_T *st, pos_T *start_pos);
static _Bool get_next_completion_match(int type, ins_compl_next_state_T *st, pos_T *ini);
static void get_next_bufname_token(void);
static int ins_compl_get_exp(pos_T *ini);
static void ins_compl_update_shown_match(void);
static void ins_compl_show_filename(void);
static compl_T *find_comp_when_fuzzy(void);
static int find_next_completion_match(_Bool allow_get_expansion, int todo, _Bool advance, int *num_matches);
static int ins_compl_next(_Bool allow_get_expansion, int count, _Bool insert_match, _Bool in_compl_func);
static int ins_compl_key2dir(int c);
static _Bool ins_compl_pum_key(int c) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT;
static int ins_compl_key2count(int c);
static _Bool ins_compl_use_match(int c) FUNC_ATTR_CONST FUNC_ATTR_WARN_UNUSED_RESULT;
static int get_normal_compl_info(char *line, int startcol, colnr_T curs_col);
static int get_wholeline_compl_info(char *line, colnr_T curs_col);
static int get_filename_compl_info(char *line, int startcol, colnr_T curs_col);
static int get_cmdline_compl_info(char *line, colnr_T curs_col);
static int get_userdefined_compl_info(colnr_T curs_col);
static int get_spell_compl_info(int startcol, colnr_T curs_col);
static int compl_get_info(char *line, int startcol, colnr_T curs_col, _Bool *line_invalid);
static void ins_compl_continue_search(char *line);
static int ins_compl_start(void);
static void ins_compl_show_statusmsg(void);
static void show_pum(int prev_w_wrow, int prev_w_leftcol);
static unsigned quote_meta(char *dest, char *src, int len);
static void spell_back_to_badword(void);
#define DEFINE_EMPTY_ATTRIBUTES
#include "nvim/func_attr.h" // IWYU pragma: export