buffer_defs.h
Go to the documentation of this file.
1 #ifndef NVIM_BUFFER_DEFS_H
2 #define NVIM_BUFFER_DEFS_H
3 
4 #include <stdbool.h>
5 #include <stdint.h>
6 // for FILE
7 #include <stdio.h>
8 
9 typedef struct file_buffer buf_T; // Forward declaration
10 
11 // Reference to a buffer that stores the value of buf_free_count.
12 // bufref_valid() only needs to check "buf" when the count differs.
13 typedef struct {
15  int br_fnum;
17 } bufref_T;
18 
19 // for garray_T
20 #include "nvim/garray.h"
21 // for ScreenGrid
22 #include "nvim/grid_defs.h"
23 // for HLF_COUNT
24 #include "nvim/highlight_defs.h"
25 // for pos_T, lpos_T and linenr_T
26 #include "nvim/pos.h"
27 // for the number window-local and buffer-local options
28 #include "nvim/option_defs.h"
29 // for jump list and tag stack sizes in a buffer and mark types
30 #include "nvim/mark_defs.h"
31 // for u_header_T; needs buf_T.
32 #include "nvim/undo_defs.h"
33 // for hashtab_T
34 #include "nvim/hashtab.h"
35 // for dict_T
36 #include "nvim/eval/typval.h"
37 // for proftime_T
38 #include "nvim/profile.h"
39 // for String
40 #include "nvim/api/private/defs.h"
41 // for Map(K, V)
42 #include "nvim/map.h"
43 // for kvec
44 #include "nvim/lib/kvec.h"
45 // for marktree
46 #include "nvim/marktree.h"
47 
48 #define GETFILE_SUCCESS(x) ((x) <= 0)
49 #define MODIFIABLE(buf) (buf->b_p_ma)
50 
51 /*
52  * Flags for w_valid.
53  * These are set when something in a window structure becomes invalid, except
54  * when the cursor is moved. Call check_cursor_moved() before testing one of
55  * the flags.
56  * These are reset when that thing has been updated and is valid again.
57  *
58  * Every function that invalidates one of these must call one of the
59  * invalidate_* functions.
60  *
61  * w_valid is supposed to be used only in screen.c. From other files, use the
62  * functions that set or reset the flags.
63  *
64  * VALID_BOTLINE VALID_BOTLINE_AP
65  * on on w_botline valid
66  * off on w_botline approximated
67  * off off w_botline not valid
68  * on off not possible
69  */
70 #define VALID_WROW 0x01 // w_wrow (window row) is valid
71 #define VALID_WCOL 0x02 // w_wcol (window col) is valid
72 #define VALID_VIRTCOL 0x04 // w_virtcol (file col) is valid
73 #define VALID_CHEIGHT 0x08 // w_cline_height and w_cline_folded valid
74 #define VALID_CROW 0x10 // w_cline_row is valid
75 #define VALID_BOTLINE 0x20 // w_botine and w_empty_rows are valid
76 #define VALID_BOTLINE_AP 0x40 // w_botine is approximated
77 #define VALID_TOPLINE 0x80 // w_topline is valid (for cursor position)
78 
79 // flags for b_flags
80 #define BF_RECOVERED 0x01 // buffer has been recovered
81 #define BF_CHECK_RO 0x02 // need to check readonly when loading file
82  // into buffer (set by ":e", may be reset by
83  // ":buf")
84 #define BF_NEVERLOADED 0x04 // file has never been loaded into buffer,
85  // many variables still need to be set
86 #define BF_NOTEDITED 0x08 // Set when file name is changed after
87  // starting to edit, reset when file is
88  // written out.
89 #define BF_NEW 0x10 // file didn't exist when editing started
90 #define BF_NEW_W 0x20 // Warned for BF_NEW and file created
91 #define BF_READERR 0x40 // got errors while reading the file
92 #define BF_DUMMY 0x80 // dummy buffer, only used internally
93 #define BF_SYN_SET 0x200 // 'syntax' option was set
94 
95 // Mask to check for flags that prevent normal writing
96 #define BF_WRITE_MASK (BF_NOTEDITED + BF_NEW + BF_READERR)
97 
98 typedef struct window_S win_T;
99 typedef struct wininfo_S wininfo_T;
100 typedef struct frame_S frame_T;
101 typedef uint64_t disptick_T; // display tick type
102 
103 // for struct memline (it needs memfile_T)
104 #include "nvim/memline_defs.h"
105 
106 // for regprog_T. Needs win_T and buf_T.
107 #include "nvim/regexp_defs.h"
108 // for synstate_T (needs reg_extmatch_T, win_T, buf_T)
109 #include "nvim/syntax_defs.h"
110 // for sign_entry_T
111 #include "nvim/os/fs_defs.h" // for FileID
112 #include "nvim/sign_defs.h"
113 #include "nvim/terminal.h" // for Terminal
114 
115 /*
116  * The taggy struct is used to store the information about a :tag command.
117  */
118 typedef struct taggy {
119  char_u *tagname; // tag name
120  fmark_T fmark; // cursor position BEFORE ":tag"
121  int cur_match; // match number
122  int cur_fnum; // buffer number used for cur_match
123  char_u *user_data; // used with tagfunc
124 } taggy_T;
125 
126 typedef struct buffblock buffblock_T;
127 typedef struct buffheader buffheader_T;
128 
129 /*
130  * structure used to store one block of the stuff/redo/recording buffers
131  */
132 struct buffblock {
133  buffblock_T *b_next; // pointer to next buffblock
134  char_u b_str[1]; // contents (actually longer)
135 };
136 
137 /*
138  * header used for the stuff buffer and the redo buffer
139  */
140 struct buffheader {
141  buffblock_T bh_first; // first (dummy) block of list
142  buffblock_T *bh_curr; // buffblock for appending
143  size_t bh_index; // index for reading
144  size_t bh_space; // space in bh_curr for appending
145 };
146 
147 typedef struct {
150 } save_redo_T;
151 
152 /*
153  * Structure that contains all options that are local to a window.
154  * Used twice in a window: for the current buffer and for all buffers.
155  * Also used in wininfo_T.
156  */
157 typedef struct {
158  int wo_arab;
159 #define w_p_arab w_onebuf_opt.wo_arab // 'arabic'
160  int wo_bri;
161 #define w_p_bri w_onebuf_opt.wo_bri // 'breakindent'
163 #define w_p_briopt w_onebuf_opt.wo_briopt // 'breakindentopt'
164  int wo_diff;
165 #define w_p_diff w_onebuf_opt.wo_diff // 'diff'
167 #define w_p_fdc w_onebuf_opt.wo_fdc // 'foldcolumn'
169 #define w_p_fdc_save w_onebuf_opt.wo_fdc_save // 'fdc' saved for diff mode
170  int wo_fen;
171 #define w_p_fen w_onebuf_opt.wo_fen // 'foldenable'
173  // 'foldenable' saved for diff mode
174 #define w_p_fen_save w_onebuf_opt.wo_fen_save
176 #define w_p_fdi w_onebuf_opt.wo_fdi // 'foldignore'
177  long wo_fdl;
178 #define w_p_fdl w_onebuf_opt.wo_fdl // 'foldlevel'
180  // 'foldlevel' state saved for diff mode
181 #define w_p_fdl_save w_onebuf_opt.wo_fdl_save
183 #define w_p_fdm w_onebuf_opt.wo_fdm // 'foldmethod'
185 #define w_p_fdm_save w_onebuf_opt.wo_fdm_save // 'fdm' saved for diff mode
186  long wo_fml;
187 #define w_p_fml w_onebuf_opt.wo_fml // 'foldminlines'
188  long wo_fdn;
189 #define w_p_fdn w_onebuf_opt.wo_fdn // 'foldnestmax'
191 #define w_p_fde w_onebuf_opt.wo_fde // 'foldexpr'
193 #define w_p_fdt w_onebuf_opt.wo_fdt // 'foldtext'
195 #define w_p_fmr w_onebuf_opt.wo_fmr // 'foldmarker'
196  int wo_lbr;
197 #define w_p_lbr w_onebuf_opt.wo_lbr // 'linebreak'
198  int wo_list;
199 #define w_p_list w_onebuf_opt.wo_list // 'list'
200  int wo_nu;
201 #define w_p_nu w_onebuf_opt.wo_nu // 'number'
202  int wo_rnu;
203 #define w_p_rnu w_onebuf_opt.wo_rnu // 'relativenumber'
205 #define w_p_ve w_onebuf_opt.wo_ve // 'virtualedit'
206  unsigned wo_ve_flags;
207 #define w_ve_flags w_onebuf_opt.wo_ve_flags // flags for 'virtualedit'
208  long wo_nuw;
209 #define w_p_nuw w_onebuf_opt.wo_nuw // 'numberwidth'
210  int wo_wfh;
211 #define w_p_wfh w_onebuf_opt.wo_wfh // 'winfixheight'
212  int wo_wfw;
213 #define w_p_wfw w_onebuf_opt.wo_wfw // 'winfixwidth'
214  int wo_pvw;
215 #define w_p_pvw w_onebuf_opt.wo_pvw // 'previewwindow'
216  int wo_rl;
217 #define w_p_rl w_onebuf_opt.wo_rl // 'rightleft'
219 #define w_p_rlc w_onebuf_opt.wo_rlc // 'rightleftcmd'
220  long wo_scr;
221 #define w_p_scr w_onebuf_opt.wo_scr // 'scroll'
222  int wo_spell;
223 #define w_p_spell w_onebuf_opt.wo_spell // 'spell'
224  int wo_cuc;
225 #define w_p_cuc w_onebuf_opt.wo_cuc // 'cursorcolumn'
226  int wo_cul;
227 #define w_p_cul w_onebuf_opt.wo_cul // 'cursorline'
229 #define w_p_culopt w_onebuf_opt.wo_culopt // 'cursorlineopt'
231 #define w_p_cc w_onebuf_opt.wo_cc // 'colorcolumn'
233 #define w_p_sbr w_onebuf_opt.wo_sbr // 'showbreak'
235 #define w_p_stl w_onebuf_opt.wo_stl // 'statusline'
236  int wo_scb;
237 #define w_p_scb w_onebuf_opt.wo_scb // 'scrollbind'
238  int wo_diff_saved; // options were saved for starting diff mode
239 #define w_p_diff_saved w_onebuf_opt.wo_diff_saved
240  int wo_scb_save; // 'scrollbind' saved for diff mode
241 #define w_p_scb_save w_onebuf_opt.wo_scb_save
242  int wo_wrap;
243 #define w_p_wrap w_onebuf_opt.wo_wrap // 'wrap'
244  int wo_wrap_save; // 'wrap' state saved for diff mode
245 #define w_p_wrap_save w_onebuf_opt.wo_wrap_save
246  char_u *wo_cocu; // 'concealcursor'
247 #define w_p_cocu w_onebuf_opt.wo_cocu
248  long wo_cole; // 'conceallevel'
249 #define w_p_cole w_onebuf_opt.wo_cole
250  int wo_crb;
251 #define w_p_crb w_onebuf_opt.wo_crb // 'cursorbind'
252  int wo_crb_save; // 'cursorbind' state saved for diff mode
253 #define w_p_crb_save w_onebuf_opt.wo_crb_save
255 #define w_p_scl w_onebuf_opt.wo_scl // 'signcolumn'
257 #define w_p_winhl w_onebuf_opt.wo_winhl // 'winhighlight'
259 #define w_p_fcs w_onebuf_opt.wo_fcs // 'fillchars'
261 #define w_p_lcs w_onebuf_opt.wo_lcs // 'listchars'
262  long wo_winbl;
263 #define w_p_winbl w_onebuf_opt.wo_winbl // 'winblend'
264 
265  LastSet wo_script_ctx[WV_COUNT]; // SCTXs for window-local options
266 #define w_p_script_ctx w_onebuf_opt.wo_script_ctx
267 } winopt_T;
268 
269 /*
270  * Window info stored with a buffer.
271  *
272  * Two types of info are kept for a buffer which are associated with a
273  * specific window:
274  * 1. Each window can have a different line number associated with a buffer.
275  * 2. The window-local options for a buffer work in a similar way.
276  * The window-info is kept in a list at b_wininfo. It is kept in
277  * most-recently-used order.
278  */
279 struct wininfo_S {
280  wininfo_T *wi_next; // next entry or NULL for last entry
281  wininfo_T *wi_prev; // previous entry or NULL for first entry
282  win_T *wi_win; // pointer to window that did set wi_fpos
283  pos_T wi_fpos; // last cursor position in the file
284  bool wi_optset; // true when wi_opt has useful values
285  winopt_T wi_opt; // local window options
286  bool wi_fold_manual; // copy of w_fold_manual
287  garray_T wi_folds; // clone of w_folds
288 };
289 
290 /*
291  * Argument list: Array of file names.
292  * Used for the global argument list and the argument lists local to a window.
293  *
294  * TODO: move struct arglist to another header
295  */
296 typedef struct arglist {
297  garray_T al_ga; // growarray with the array of file names
298  int al_refcount; // number of windows using this arglist
299  int id;
300 } alist_T;
301 
302 // For each argument remember the file name as it was given, and the buffer
303 // number that contains the expanded file name (required for when ":cd" is
304 // used).
305 //
306 // TODO(Felipe): move aentry_T to another header
307 typedef struct argentry {
308  char_u *ae_fname; // file name as specified
309  int ae_fnum; // buffer number with expanded file name
310 } aentry_T;
311 
312 #define ALIST(win) (win)->w_alist
313 #define GARGLIST ((aentry_T *)global_alist.al_ga.ga_data)
314 #define ARGLIST ((aentry_T *)ALIST(curwin)->al_ga.ga_data)
315 #define WARGLIST(wp) ((aentry_T *)ALIST(wp)->al_ga.ga_data)
316 #define AARGLIST(al) ((aentry_T *)((al)->al_ga.ga_data))
317 #define GARGCOUNT (global_alist.al_ga.ga_len)
318 #define ARGCOUNT (ALIST(curwin)->al_ga.ga_len)
319 #define WARGCOUNT(wp) (ALIST(wp)->al_ga.ga_len)
320 
321 /*
322  * Used for the typeahead buffer: typebuf.
323  */
324 typedef struct {
325  char_u *tb_buf; // buffer for typed characters
326  char_u *tb_noremap; // mapping flags for characters in tb_buf[]
327  int tb_buflen; // size of tb_buf[]
328  int tb_off; // current position in tb_buf[]
329  int tb_len; // number of valid bytes in tb_buf[]
330  int tb_maplen; // nr of mapped bytes in tb_buf[]
331  int tb_silent; // nr of silently mapped bytes in tb_buf[]
332  int tb_no_abbr_cnt; // nr of bytes without abbrev. in tb_buf[]
333  int tb_change_cnt; // nr of time tb_buf was changed; never zero
334 } typebuf_T;
335 
336 // Struct to hold the saved typeahead for save_typeahead().
337 typedef struct {
339  bool typebuf_valid; // true when save_typebuf valid
340  int old_char;
345 } tasave_T;
346 
347 /*
348  * Structure used for mappings and abbreviations.
349  */
350 typedef struct mapblock mapblock_T;
351 struct mapblock {
352  mapblock_T *m_next; // next mapblock in list
353  char_u *m_keys; // mapped from, lhs
354  char_u *m_str; // mapped to, rhs
355  char_u *m_orig_str; // rhs as entered by the user
356  LuaRef m_luaref; // lua function reference as rhs
357  int m_keylen; // strlen(m_keys)
358  int m_mode; // valid mode
359  int m_simplified; // m_keys was simplified, do no use this map
360  // if keys are typed
361  int m_noremap; // if non-zero no re-mapping for m_str
362  char m_silent; // <silent> used, don't echo commands
363  char m_nowait; // <nowait> used
364  char m_expr; // <expr> used, m_str is an expression
365  sctx_T m_script_ctx; // SCTX where map was defined
366  char *m_desc; // description of keymap
367 };
368 
370 typedef struct stl_hlrec stl_hlrec_t;
371 struct stl_hlrec {
373  int userhl; // 0: no HL, 1-9: User HL, < 0 for syn ID
374 };
375 
377 typedef struct stl_item stl_item_t;
378 struct stl_item {
379  // Where the item starts in the status line output buffer
381  // Function to run for ClickFunc items.
382  char *cmd;
383  // The minimum width of the item
384  int minwid;
385  // The maximum width of the item
386  int maxwid;
387  enum {
396  } type;
397 };
398 
399 // values for b_syn_spell: what to do with toplevel text
400 #define SYNSPL_DEFAULT 0 // spell check if @Spell not defined
401 #define SYNSPL_TOP 1 // spell check toplevel text
402 #define SYNSPL_NOTOP 2 // don't spell check toplevel text
403 
404 // values for b_syn_foldlevel: how to compute foldlevel on a line
405 #define SYNFLD_START 0 // use level of item at start of line
406 #define SYNFLD_MINIMUM 1 // use lowest local minimum level on line
407 
408 // avoid #ifdefs for when b_spell is not available
409 #define B_SPELL(buf) ((buf)->b_spell)
410 
411 typedef struct qf_info_S qf_info_T;
412 
413 /*
414  * Used for :syntime: timing of executing a syntax pattern.
415  */
416 typedef struct {
417  proftime_T total; // total time used
418  proftime_T slowest; // time of slowest call
419  long count; // nr of times used
420  long match; // nr of times matched
421 } syn_time_T;
422 
423 /*
424  * These are items normally related to a buffer. But when using ":ownsyntax"
425  * a window may have its own instance.
426  */
427 typedef struct {
428  hashtab_T b_keywtab; // syntax keywords hash table
429  hashtab_T b_keywtab_ic; // idem, ignore case
430  int b_syn_error; // TRUE when error occurred in HL
431  bool b_syn_slow; // true when 'redrawtime' reached
432  int b_syn_ic; // ignore case for :syn cmds
433  int b_syn_foldlevel; // how to compute foldlevel on a line
434  int b_syn_spell; // SYNSPL_ values
435  garray_T b_syn_patterns; // table for syntax patterns
436  garray_T b_syn_clusters; // table for syntax clusters
437  int b_spell_cluster_id; // @Spell cluster ID or 0
438  int b_nospell_cluster_id; // @NoSpell cluster ID or 0
439  int b_syn_containedin; // TRUE when there is an item with a
440  // "containedin" argument
441  int b_syn_sync_flags; // flags about how to sync
442  int16_t b_syn_sync_id; // group to sync on
443  long b_syn_sync_minlines; // minimal sync lines offset
444  long b_syn_sync_maxlines; // maximal sync lines offset
445  long b_syn_sync_linebreaks; // offset for multi-line pattern
446  char_u *b_syn_linecont_pat; // line continuation pattern
447  regprog_T *b_syn_linecont_prog; // line continuation program
449  int b_syn_linecont_ic; // ignore-case flag for above
450  int b_syn_topgrp; // for ":syntax include"
451  int b_syn_conceal; // auto-conceal for :syn cmds
452  int b_syn_folditems; // number of patterns with the HL_FOLD
453  // flag set
454  // b_sst_array[] contains the state stack for a number of lines, for the
455  // start of that line (col == 0). This avoids having to recompute the
456  // syntax state too often.
457  // b_sst_array[] is allocated to hold the state for all displayed lines,
458  // and states for 1 out of about 20 other lines.
459  // b_sst_array pointer to an array of synstate_T
460  // b_sst_len number of entries in b_sst_array[]
461  // b_sst_first pointer to first used entry in b_sst_array[] or NULL
462  // b_sst_firstfree pointer to first free entry in b_sst_array[] or NULL
463  // b_sst_freecount number of free entries in b_sst_array[]
464  // b_sst_check_lnum entries after this lnum need to be checked for
465  // validity (MAXLNUM means no check needed)
472  disptick_T b_sst_lasttick; // last display tick
473 
474  // for spell checking
475  garray_T b_langp; // list of pointers to slang_T, see spell.c
476  bool b_spell_ismw[256]; // flags: is midword char
477  char_u *b_spell_ismw_mb; // multi-byte midword chars
478  char_u *b_p_spc; // 'spellcapcheck'
479  regprog_T *b_cap_prog; // program for 'spellcapcheck'
480  char_u *b_p_spf; // 'spellfile'
481  char_u *b_p_spl; // 'spelllang'
482  char_u *b_p_spo; // 'spelloptions'
483  int b_cjk; // all CJK letters as OK
484  char_u b_syn_chartab[32]; // syntax iskeyword option
485  char_u *b_syn_isk; // iskeyword option
486 } synblock_T;
487 
491 typedef TV_DICTITEM_STRUCT(sizeof("changedtick")) ChangedtickDictItem;
492 
493 typedef struct {
499  bool utf_sizes;
500  bool preview;
502 #define BUF_UPDATE_CALLBACKS_INIT { LUA_NOREF, LUA_NOREF, LUA_NOREF, \
503  LUA_NOREF, LUA_NOREF, false, false }
504 
505 EXTERN int curbuf_splice_pending INIT(= 0);
506 
507 #define BUF_HAS_QF_ENTRY 1
508 #define BUF_HAS_LL_ENTRY 2
509 
510 // Maximum number of maphash blocks we will have
511 #define MAX_MAPHASH 256
512 
513 /*
514  * buffer: structure that holds information about one file
515  *
516  * Several windows can share a single Buffer
517  * A buffer is unallocated if there is no memfile for it.
518  * A buffer is new if the associated file has never been loaded yet.
519  */
520 
521 struct file_buffer {
522  handle_T handle; // unique id for the buffer (buffer number)
523 #define b_fnum handle
524 
525  memline_T b_ml; // associated memline (also contains line count
526 
527  buf_T *b_next; // links in list of buffers
529 
530  int b_nwindows; // nr of windows open on this buffer
531 
532  int b_flags; // various BF_ flags
533  int b_locked; // Buffer is being closed or referenced, don't
534  // let autocommands wipe it out.
535  int b_locked_split; // Buffer is being closed, don't allow opening
536  // a new window with it.
537  int b_ro_locked; // Non-zero when the buffer can't be changed.
538  // Used for FileChangedRO
539 
540  //
541  // b_ffname has the full path of the file (NULL for no name).
542  // b_sfname is the name as the user typed it (or NULL).
543  // b_fname is the same as b_sfname, unless ":cd" has been done,
544  // then it is the same as b_ffname (NULL for no name).
545  //
546  char_u *b_ffname; // full path file name, allocated
547  char_u *b_sfname; // short file name, allocated, may be equal to
548  // b_ffname
549  char_u *b_fname; // current file name, points to b_ffname or
550  // b_sfname
551 
554 
555  int b_changed; // 'modified': Set to true if something in the
556  // file has been changed and not written out.
557  bool b_changed_invalid; // Set if BufModified autocmd has not been
558  // triggered since the last time b_changed was
559  // modified.
560 
564  ChangedtickDictItem changedtick_di;
565 
566  varnumber_T b_last_changedtick; // b:changedtick when TextChanged or
567  // TextChangedI was last triggered.
568  varnumber_T b_last_changedtick_pum; // b:changedtick when TextChangedP was
569  // last triggered.
570 
571  bool b_saving; /* Set to true if we are in the middle of
572  saving the buffer. */
573 
574  /*
575  * Changes to a buffer require updating of the display. To minimize the
576  * work, remember changes made and update everything at once.
577  */
578  bool b_mod_set; /* true when there are changes since the last
579  time the display was updated */
580  linenr_T b_mod_top; // topmost lnum that was changed
581  linenr_T b_mod_bot; // lnum below last changed line, AFTER the
582  // change
583  long b_mod_xlines; // number of extra buffer lines inserted;
584  // negative when lines were deleted
585  wininfo_T *b_wininfo; // list of last used info for each window
586  disptick_T b_mod_tick_syn; // last display tick syntax was updated
587  disptick_T b_mod_tick_decor; // last display tick decoration providers
588  // where invoked
589 
590  long b_mtime; // last change time of original file
591  long b_mtime_ns; // nanoseconds of last change time
592  long b_mtime_read; // last change time when reading
593  long b_mtime_read_ns; // nanoseconds of last read time
594  uint64_t b_orig_size; // size of original file in bytes
595  int b_orig_mode; // mode of original file
596  time_t b_last_used; // time when the buffer was last used; used
597  // for viminfo
598 
599  fmark_T b_namedm[NMARKS]; // current named marks (mark.c)
600 
601  // These variables are set when VIsual_active becomes FALSE
603  int b_visual_mode_eval; // b_visual.vi_mode for visualmode()
604 
605  fmark_T b_last_cursor; // cursor position when last unloading this
606  // buffer
607  fmark_T b_last_insert; // where Insert mode was left
608  fmark_T b_last_change; // position of last change: '. mark
609 
610  /*
611  * the changelist contains old change positions
612  */
614  int b_changelistlen; // number of active entries
615  bool b_new_change; // set by u_savecommon()
616 
617  /*
618  * Character table, only used in charset.c for 'iskeyword'
619  * bitset with 4*64=256 bits: 1 bit per character 0-255.
620  */
621  uint64_t b_chartab[4];
622 
623  // Table used for mappings local to a buffer.
625 
626  // First abbreviation local to a buffer.
628  // User commands local to the buffer.
630  /*
631  * start and end of an operator, also used for '[ and ']
632  */
634  pos_T b_op_start_orig; // used for Insstart_orig
636 
637  bool b_marks_read; // Have we read ShaDa marks yet?
638 
639  /*
640  * The following only used in undo.c.
641  */
642  u_header_T *b_u_oldhead; // pointer to oldest header
643  u_header_T *b_u_newhead; // pointer to newest header; may not be valid
644  // if b_u_curhead is not NULL
645  u_header_T *b_u_curhead; // pointer to current header
646  int b_u_numhead; // current number of headers
647  bool b_u_synced; // entry lists are synced
648  long b_u_seq_last; // last used undo sequence number
649  long b_u_save_nr_last; // counter for last file write
650  long b_u_seq_cur; // hu_seq of header below which we are now
651  time_t b_u_time_cur; // uh_time of header below which we are now
652  long b_u_save_nr_cur; // file write nr after which we are now
653 
654  /*
655  * variables for "U" command in undo.c
656  */
657  char_u *b_u_line_ptr; // saved line for "U" command
658  linenr_T b_u_line_lnum; // line number of line in u_line
659  colnr_T b_u_line_colnr; // optional column number
660 
661  bool b_scanned; // ^N/^P have scanned this buffer
662 
663  // flags for use of ":lmap" and IM control
664  long b_p_iminsert; // input mode for insert
665  long b_p_imsearch; // input mode for search
666 #define B_IMODE_USE_INSERT (-1) // Use b_p_iminsert value for search
667 #define B_IMODE_NONE 0 // Input via none
668 #define B_IMODE_LMAP 1 // Input via langmap
669 #define B_IMODE_LAST 1
670 
671  int16_t b_kmap_state; // using "lmap" mappings
672 #define KEYMAP_INIT 1 // 'keymap' was set, call keymap_init()
673 #define KEYMAP_LOADED 2 // 'keymap' mappings have been loaded
674  garray_T b_kmap_ga; // the keymap table
675 
676  /*
677  * Options local to a buffer.
678  * They are here because their value depends on the type of file
679  * or contents of the file being edited.
680  */
681  bool b_p_initialized; // set when options initialized
682 
683  LastSet b_p_script_ctx[BV_COUNT]; // SCTXs for buffer-local options
684 
685  int b_p_ai;
688  unsigned int b_bkc_flags;
689  int b_p_ci;
690  int b_p_bin;
691  int b_p_bomb;
695  int b_p_bl;
696  long b_p_channel;
697  int b_p_cin;
705 #ifdef BACKSLASH_IN_FILENAME
706  char_u *b_p_csl;
707 #endif
711  int b_p_eol;
713  int b_p_et;
721  int b_p_inf;
726  uint32_t b_p_inex_flags;
728  uint32_t b_p_inde_flags;
732  uint32_t b_p_fex_flags;
734  int b_p_lisp;
737  int b_p_ml;
739  int b_p_ma;
741  int b_p_pi;
743  int b_p_ro;
744  long b_p_sw;
745  long b_p_scbk;
746  int b_p_si;
747  long b_p_sts;
750  int b_p_swf;
751  long b_p_smc;
753  long b_p_ts;
754  long b_p_tw;
757  long b_p_wm;
766 
767  // local values for options which are normally global
773  int b_p_ar;
776  unsigned b_tc_flags;
780  long b_p_ul;
781  int b_p_udf;
783 
784  // end of buffer options
785 
786  // values set from b_p_cino
817  int b_ind_js;
824 
825  linenr_T b_no_eol_lnum; /* non-zero lnum when last line of next binary
826  * write should not have an end-of-line */
827 
828  int b_start_eol; // last line had eol when it was read
829  int b_start_ffc; // first char of 'ff' when edit started
830  char_u *b_start_fenc; // 'fileencoding' when edit started or NULL
831  int b_bad_char; // "++bad=" argument when edit started or 0
832  int b_start_bomb; // 'bomb' when it was read
833 
834  ScopeDictDictItem b_bufvar;
836 
837  /* When a buffer is created, it starts without a swap file. b_may_swap is
838  * then set to indicate that a swap file may be opened later. It is reset
839  * if a swap file could not be opened.
840  */
842  bool b_did_warn; /* Set to true if user has been warned on first
843  change of a read-only file */
844 
845  /* Two special kinds of buffers:
846  * help buffer - used for help files, won't use a swap file.
847  * spell buffer - used for spell info, never displayed and doesn't have a
848  * file name.
849  */
850  bool b_help; // TRUE for help file buffer (when set b_p_bt
851  // is "help")
852  bool b_spell; // True for a spell file buffer, most fields
853  // are not used! Use the B_SPELL macro to
854  // access b_spell without #ifdef.
855 
856  char_u *b_prompt_text; // set by prompt_setprompt()
857  Callback b_prompt_callback; // set by prompt_setcallback()
858  Callback b_prompt_interrupt; // set by prompt_setinterrupt()
859  int b_prompt_insert; // value for restart_edit when entering
860  // a prompt buffer window.
861 
862  synblock_T b_s; // Info related to syntax highlighting. w_s
863  // normally points to this, but some windows
864  // may use a different synblock_T.
865 
866  sign_entry_T *b_signlist; // list of placed signs
867  struct {
868  int size; // last calculated number of sign columns
869  bool valid; // calculated sign columns is valid
870  linenr_T sentinel; // a line number which is holding up the signcolumn
871  int max; // Maximum value size is valid for.
872  } b_signcols;
873 
874  Terminal *terminal; // Terminal instance associated with the buffer
875 
876  dict_T *additional_data; // Additional data from shada file if any.
877 
878  int b_mapped_ctrl_c; // modes where CTRL-C is mapped
879 
881  Map(uint32_t, uint32_t) b_extmark_ns[1]; // extmark namespaces
882  size_t b_virt_line_blocks; // number of virt_line blocks
883  size_t b_signs; // number of sign extmarks
884 
885  // array of channel_id:s which have asked to receive updates for this
886  // buffer.
887  kvec_t(uint64_t) update_channels;
888  // array of lua callbacks for buffer updates.
889  kvec_t(BufUpdateCallbacks) update_callbacks;
890 
891  // whether an update callback has requested codepoint size of deleted regions.
893 
894  // Measurements of the deleted or replaced region since the last update
895  // event. Some consumers of buffer changes need to know the byte size (like
896  // tree-sitter) or the corresponding UTF-32/UTF-16 size (like LSP) of the
897  // deleted text.
902 
903  // The number for times the current line has been flushed in the memline.
905 
906  int b_diff_failed; // internal diff failed for this buffer
907 };
908 
909 /*
910  * Stuff for diff mode.
911  */
912 #define DB_COUNT 8 // up to four buffers can be diff'ed
913 
914 /*
915  * Each diffblock defines where a block of lines starts in each of the buffers
916  * and how many lines it occupies in that buffer. When the lines are missing
917  * in the buffer the df_count[] is zero. This is all counted in
918  * buffer lines.
919  * There is always at least one unchanged line in between the diffs.
920  * Otherwise it would have been included in the diff above or below it.
921  * df_lnum[] + df_count[] is the lnum below the change. When in one buffer
922  * lines have been inserted, in the other buffer df_lnum[] is the line below
923  * the insertion and df_count[] is zero. When appending lines at the end of
924  * the buffer, df_lnum[] is one beyond the end!
925  * This is using a linked list, because the number of differences is expected
926  * to be reasonable small. The list is sorted on lnum.
927  */
928 typedef struct diffblock_S diff_T;
929 struct diffblock_S {
931  linenr_T df_lnum[DB_COUNT]; // line number in buffer
932  linenr_T df_count[DB_COUNT]; // nr of inserted/changed lines
933 };
934 
935 #define SNAP_HELP_IDX 0
936 #define SNAP_AUCMD_IDX 1
937 #define SNAP_COUNT 2
938 
943 typedef struct tabpage_S tabpage_T;
944 struct tabpage_S {
952  long tp_old_Rows;
954  long tp_ch_used;
955 
962  ScopeDictDictItem tp_winvar;
966 };
967 
968 /*
969  * Structure to cache info for displayed lines in w_lines[].
970  * Each logical line has one entry.
971  * The entry tells how the logical line is currently displayed in the window.
972  * This is updated when displaying the window.
973  * When the display is changed (e.g., when clearing the screen) w_lines_valid
974  * is changed to exclude invalid entries.
975  * When making changes to the buffer, wl_valid is reset to indicate wl_size
976  * may not reflect what is actually in the buffer. When wl_valid is FALSE,
977  * the entries can only be used to count the number of displayed lines used.
978  * wl_lnum and wl_lastlnum are invalid too.
979  */
980 typedef struct w_line {
981  linenr_T wl_lnum; // buffer line number for logical line
982  uint16_t wl_size; // height in screen lines
983  char wl_valid; // TRUE values are valid for text in buffer
984  char wl_folded; // TRUE when this is a range of folded lines
985  linenr_T wl_lastlnum; // last buffer line number for logical line
986 } wline_T;
987 
988 /*
989  * Windows are kept in a tree of frames. Each frame has a column (FR_COL)
990  * or row (FR_ROW) layout or is a leaf, which has a window.
991  */
992 struct frame_S {
993  char fr_layout; // FR_LEAF, FR_COL or FR_ROW
994  int fr_width;
995  int fr_newwidth; // new width used in win_equal_rec()
997  int fr_newheight; // new height used in win_equal_rec()
998  frame_T *fr_parent; // containing frame or NULL
999  frame_T *fr_next; // frame right or below in same parent, NULL
1000  // for last
1001  frame_T *fr_prev; // frame left or above in same parent, NULL
1002  // for first
1003  // fr_child and fr_win are mutually exclusive
1004  frame_T *fr_child; // first contained frame
1005  win_T *fr_win; // window that fills this frame
1006 };
1007 
1008 #define FR_LEAF 0 // frame is a leaf
1009 #define FR_ROW 1 // frame with a row of windows
1010 #define FR_COL 2 // frame with a column of windows
1011 
1012 /*
1013  * Struct used for highlighting 'hlsearch' matches, matches defined by
1014  * ":match" and matches defined by match functions.
1015  * For 'hlsearch' there is one pattern for all windows. For ":match" and the
1016  * match functions there is a different pattern for each window.
1017  */
1018 typedef struct {
1019  regmmatch_T rm; // points to the regexp program; contains last found
1020  // match (may continue in next line)
1021  buf_T *buf; // the buffer to search for a match
1022  linenr_T lnum; // the line to search for a match
1023  int attr; // attributes to be used for a match
1024  int attr_cur; // attributes currently active in win_line()
1025  linenr_T first_lnum; // first lnum to search for multi-line pat
1026  colnr_T startcol; // in win_line() points to char where HL starts
1027  colnr_T endcol; // in win_line() points to char where HL ends
1028  bool is_addpos; // position specified directly by matchaddpos()
1029  bool has_cursor; // true if the cursor is inside the match, used for CurSearch
1030  proftime_T tm; // for a time limit
1031 } match_T;
1032 
1034 #define MAXPOSMATCH 8
1035 
1037 typedef struct {
1040  int len;
1041 } llpos_T;
1042 
1045 typedef struct posmatch posmatch_T;
1046 struct posmatch {
1048  int cur;
1051 };
1052 
1053 /*
1054  * matchitem_T provides a linked list for storing match items for ":match" and
1055  * the match functions.
1056  */
1057 typedef struct matchitem matchitem_T;
1058 struct matchitem {
1060  int id;
1061  int priority;
1066  int hlg_id;
1068 };
1069 
1070 typedef int FloatAnchor;
1071 
1072 enum {
1075 };
1076 
1077 // NW -> 0
1078 // NE -> kFloatAnchorEast
1079 // SW -> kFloatAnchorSouth
1080 // SE -> kFloatAnchorSouth | kFloatAnchorEast
1081 EXTERN const char *const float_anchor_str[] INIT(= { "NW", "NE", "SW", "SE" });
1082 
1083 typedef enum {
1087 } FloatRelative;
1088 
1089 EXTERN const char *const float_relative_str[] INIT(= { "editor", "win",
1090  "cursor" });
1091 
1092 typedef enum {
1095 } WinStyle;
1096 
1097 typedef struct {
1098  Window window;
1100  int height, width;
1101  double row, col;
1104  bool external;
1106  int zindex;
1108  bool border;
1109  bool shadow;
1110  schar_T border_chars[8];
1111  int border_hl_ids[8];
1112  int border_attr[8];
1114 } FloatConfig;
1115 
1116 #define FLOAT_CONFIG_INIT ((FloatConfig){ .height = 0, .width = 0, \
1117  .bufpos = { -1, 0 }, \
1118  .row = 0, .col = 0, .anchor = 0, \
1119  .relative = 0, .external = false, \
1120  .focusable = true, \
1121  .zindex = kZIndexFloatDefault, \
1122  .style = kWinStyleUnused, \
1123  .noautocmd = false })
1124 
1125 // Structure to store last cursor position and topline. Used by check_lnums()
1126 // and reset_lnums().
1127 typedef struct {
1128  int w_topline_save; // original topline value
1129  int w_topline_corr; // corrected topline value
1130  pos_T w_cursor_save; // original cursor position
1131  pos_T w_cursor_corr; // corrected cursor position
1132 } pos_save_T;
1133 
1137 enum {
1147 };
1148 
1149 typedef struct VimMenu vimmenu_T;
1150 
1151 struct VimMenu {
1152  int modes;
1153  int enabled;
1154  char *name;
1155  char *dname;
1156  char *en_name;
1157  char *en_dname;
1159  int mnemonic;
1160  char *actext;
1161  long priority;
1168 };
1169 
1173 struct window_S {
1175 
1177 
1180 
1183 
1186 
1188 
1191  bool w_closing;
1192 
1195 
1197 
1199 
1202  int w_set_curswant; // If set, then update w_curswant the next
1203  // time through cursupdate() to the
1204  // current virtual column
1205 
1208 
1209  // the next seven are used to update the visual part
1217 
1219 
1220  // 'listchars' characters. Defaults set in set_chars_option().
1221  struct {
1222  int eol;
1223  int ext;
1224  int prec;
1225  int nbsp;
1226  int space;
1227  int tab1;
1228  int tab2;
1229  int tab3;
1230  int lead;
1231  int trail;
1233  int conceal;
1234  } w_p_lcs_chars;
1235 
1236  // 'fillchars' characters. Defaults set in set_chars_option().
1237  struct {
1238  int stl;
1239  int stlnc;
1240  int horiz;
1241  int horizup;
1243  int vert;
1247  int fold;
1248  int foldopen;
1250  int foldsep;
1251  int diff;
1252  int msgsep;
1253  int eob;
1254  } w_p_fcs_chars;
1255 
1256  /*
1257  * "w_topline", "w_leftcol" and "w_skipcol" specify the offsets for
1258  * displaying the buffer.
1259  */
1260  linenr_T w_topline; /* buffer line number of the line at the
1261  top of the window */
1262  char w_topline_was_set; /* flag set to TRUE when topline is set,
1263  e.g. by winrestview() */
1264  int w_topfill; // number of filler lines above w_topline
1265  int w_old_topfill; // w_topfill at last redraw
1266  bool w_botfill; // true when filler lines are actually
1267  // below w_topline (at end of file)
1268  bool w_old_botfill; // w_botfill at last redraw
1269  colnr_T w_leftcol; // window column number of the left most
1270  // character in the window; used when
1271  // 'wrap' is off
1272  colnr_T w_skipcol; // starting column when a single line
1273  // doesn't fit in the window
1274 
1275  // four fields that are only used when there is a WinScrolled autocommand
1280 
1281  //
1282  // Layout of the window in the screen.
1283  // May need to add "msg_scrolled" to "w_winrow" in rare situations.
1284  //
1285  int w_winrow; // first row of window in screen
1286  int w_height; // number of rows in window, excluding
1287  // status/command/winbar line(s)
1288  int w_status_height; // number of status lines (0 or 1)
1289  int w_wincol; // Leftmost column of window in screen.
1290  int w_width; // Width of window, excluding separation.
1291  int w_hsep_height; // Number of horizontal separator rows (0 or 1)
1292  int w_vsep_width; // Number of vertical separator columns (0 or 1).
1293  pos_save_T w_save_cursor; // backup of cursor pos and topline
1294 
1295  // inner size of window, which can be overridden by external UI
1298  // external UI request. If non-zero, the inner size will use this.
1301 
1302  int w_border_adj[4]; // top, right, bottom, left
1303  // outer size of window grid, including border
1306 
1307  /*
1308  * === start of cached values ====
1309  */
1310  /*
1311  * Recomputing is minimized by storing the result of computations.
1312  * Use functions in screen.c to check if they are valid and to update.
1313  * w_valid is a bitfield of flags, which indicate if specific values are
1314  * valid or need to be recomputed.
1315  */
1316  int w_valid;
1317  pos_T w_valid_cursor; /* last known position of w_cursor, used
1318  to adjust w_valid */
1319  colnr_T w_valid_leftcol; // last known w_leftcol
1320 
1322 
1323  /*
1324  * w_cline_height is the number of physical lines taken by the buffer line
1325  * that the cursor is on. We use this to avoid extra calls to plines_win().
1326  */
1327  int w_cline_height; // current size of cursor line
1328  bool w_cline_folded; // cursor line is folded
1329 
1330  int w_cline_row; // starting row of the cursor line
1331 
1332  colnr_T w_virtcol; // column number of the cursor in the
1333  // buffer line, as opposed to the column
1334  // number we're at on the screen. This
1335  // makes a difference on lines which span
1336  // more than one screen line or when
1337  // w_leftcol is non-zero
1338 
1339  /*
1340  * w_wrow and w_wcol specify the cursor position in the window.
1341  * This is related to positions in the window, not in the display or
1342  * buffer, thus w_wrow is relative to w_winrow.
1343  */
1344  int w_wrow, w_wcol; // cursor position in window
1345 
1346  linenr_T w_botline; // number of the line below the bottom of
1347  // the window
1348  int w_empty_rows; // number of ~ rows in window
1349  int w_filler_rows; // number of filler rows at the end of the
1350  // window
1351 
1352  /*
1353  * Info about the lines currently in the window is remembered to avoid
1354  * recomputing it every time. The allocated size of w_lines[] is Rows.
1355  * Only the w_lines_valid entries are actually valid.
1356  * When the display is up-to-date w_lines[0].wl_lnum is equal to w_topline
1357  * and w_lines[w_lines_valid - 1].wl_lnum is equal to w_botline.
1358  * Between changing text and updating the display w_lines[] represents
1359  * what is currently displayed. wl_valid is reset to indicated this.
1360  * This is used for efficient redrawing.
1361  */
1362  int w_lines_valid; // number of valid entries
1364 
1365  garray_T w_folds; // array of nested folds
1366  bool w_fold_manual; // when true: some folds are opened/closed
1367  // manually
1368  bool w_foldinvalid; // when true: folding needs to be
1369  // recomputed
1370  int w_nrwidth; // width of 'number' and 'relativenumber'
1371  // column being used
1372  int w_scwidth; // width of 'signcolumn'
1373 
1374  /*
1375  * === end of cached values ===
1376  */
1377 
1378  int w_redr_type; // type of redraw to be performed on win
1379  int w_upd_rows; // number of window lines to update when
1380  // w_redr_type is REDRAW_TOP
1381  linenr_T w_redraw_top; // when != 0: first line needing redraw
1382  linenr_T w_redraw_bot; // when != 0: last line needing redraw
1383  bool w_redr_status; // if true status line must be redrawn
1384  bool w_redr_border; // if true border must be redrawn
1385 
1386  // remember what is shown in the ruler for this window (if 'ruler' set)
1387  pos_T w_ru_cursor; // cursor position shown in ruler
1388  colnr_T w_ru_virtcol; // virtcol shown in ruler
1389  linenr_T w_ru_topline; // topline shown in ruler
1390  linenr_T w_ru_line_count; // line count used for ruler
1391  int w_ru_topfill; // topfill shown in ruler
1392  char w_ru_empty; // TRUE if ruler shows 0-1 (empty line)
1393 
1394  int w_alt_fnum; // alternate file (for # and CTRL-^)
1395 
1396  alist_T *w_alist; // pointer to arglist for this window
1397  int w_arg_idx; // current index in argument list (can be
1398  // out of range!)
1399  int w_arg_idx_invalid; // editing another file than w_arg_idx
1400 
1401  char_u *w_localdir; // absolute path of local directory or NULL
1402  char_u *w_prevdir; // previous directory
1403  // Options local to a window.
1404  // They are local because they influence the layout of the window or
1405  // depend on the window layout.
1406  // There are two values: w_onebuf_opt is local to the buffer currently in
1407  // this window, w_allbuf_opt is for all buffers in this window.
1410 
1411  // A few options have local flags for P_INSECURE.
1412  uint32_t w_p_stl_flags; // flags for 'statusline'
1413  uint32_t w_p_fde_flags; // flags for 'foldexpr'
1414  uint32_t w_p_fdt_flags; // flags for 'foldtext'
1415  int *w_p_cc_cols; // array of columns to highlight or NULL
1416  char_u w_p_culopt_flags; // flags for cursorline highlighting
1417  long w_p_siso; // 'sidescrolloff' local value
1418  long w_p_so; // 'scrolloff' local value
1419 
1420  int w_briopt_min; // minimum width for breakindent
1421  int w_briopt_shift; // additional shift for breakindent
1422  bool w_briopt_sbr; // sbr in 'briopt'
1423  int w_briopt_list; // additional indent for lists
1424 
1425  // transform a pointer to a "onebuf" option into a "allbuf" option
1426 #define GLOBAL_WO(p) ((char *)(p) + sizeof(winopt_T))
1427 
1429 
1430  ScopeDictDictItem w_winvar;
1432 
1433  /*
1434  * The w_prev_pcmark field is used to check whether we really did jump to
1435  * a new line after setting the w_pcmark. If not, then we revert to
1436  * using the previous w_pcmark.
1437  */
1438  pos_T w_pcmark; // previous context mark
1439  pos_T w_prev_pcmark; // previous w_pcmark
1440 
1441  /*
1442  * the jumplist contains old cursor positions
1443  */
1445  int w_jumplistlen; // number of active entries
1446  int w_jumplistidx; // current position
1447 
1448  int w_changelistidx; // current position in b_changelist
1449 
1450  matchitem_T *w_match_head; // head of match list
1451  int w_next_match_id; // next match ID
1452 
1453  /*
1454  * the tagstack grows from 0 upwards:
1455  * entry 0: older
1456  * entry 1: newer
1457  * entry 2: newest
1458  */
1459  taggy_T w_tagstack[TAGSTACKSIZE]; // the tag stack
1460  int w_tagstackidx; // idx just below active entry
1461  int w_tagstacklen; // number of tags on stack
1462 
1463  ScreenGrid w_grid; // the grid specific to the window
1464  ScreenGrid w_grid_alloc; // the grid specific to the window
1465  bool w_pos_changed; // true if window position changed
1466  bool w_floating;
1468 
1469  /*
1470  * w_fraction is the fractional row of the cursor within the window, from
1471  * 0 at the top row to FRACTION_MULT at the last row.
1472  * w_prev_fraction_row was the actual cursor row when w_fraction was last
1473  * calculated.
1474  */
1477 
1478  linenr_T w_nrwidth_line_count; /* line count when ml_nrwidth_width
1479  * was computed. */
1480  int w_nrwidth_width; // nr of chars to print line count.
1481 
1482  qf_info_T *w_llist; // Location list for this window
1483  // Location list reference used in the location list window.
1484  // In a non-location list window, w_llist_ref is NULL.
1486 };
1487 
1488 static inline int win_hl_attr(win_T *wp, int hlf)
1489 {
1490  return wp->w_hl_attrs[hlf];
1491 }
1492 
1494 #define CHANGEDTICK(buf) \
1495  (=== Include buffer.h & use buf_(get|set|inc) _changedtick ===)
1496 
1497 #endif // NVIM_BUFFER_DEFS_H
file_buffer::b_p_tw_nopaste
long b_p_tw_nopaste
b_p_tw saved for paste mode
Definition: buffer_defs.h:756
file_buffer::b_start_ffc
int b_start_ffc
Definition: buffer_defs.h:829
file_buffer::b_ind_paren_prev
int b_ind_paren_prev
Definition: buffer_defs.h:811
synblock_T::b_p_spf
char_u * b_p_spf
Definition: buffer_defs.h:480
save_redo_T
Definition: buffer_defs.h:147
file_buffer::b_p_tsrfu
char_u * b_p_tsrfu
'thesaurusfunc' local value
Definition: buffer_defs.h:779
buffblock::b_str
char_u b_str[1]
Definition: buffer_defs.h:134
mapblock::m_keys
char_u * m_keys
Definition: buffer_defs.h:353
file_buffer::b_diff_failed
int b_diff_failed
Definition: buffer_defs.h:906
profile.h
synblock_T::b_sst_freecount
int b_sst_freecount
Definition: buffer_defs.h:470
winopt_T::wo_fdn
long wo_fdn
Definition: buffer_defs.h:188
wininfo_S
Definition: buffer_defs.h:279
window_S
Definition: buffer_defs.h:1173
window_S::w_valid_cursor
pos_T w_valid_cursor
Definition: buffer_defs.h:1317
file_buffer::b_ind_jump_label
int b_ind_jump_label
Definition: buffer_defs.h:794
synblock_T::b_cap_prog
regprog_T * b_cap_prog
Definition: buffer_defs.h:479
xfilemark
Structure defining extended mark (mark with file name attached)
Definition: mark_defs.h:43
window_S::w_grid_alloc
ScreenGrid w_grid_alloc
Definition: buffer_defs.h:1464
window_S::w_status_height
int w_status_height
Definition: buffer_defs.h:1288
winopt_T::wo_ve
char_u * wo_ve
Definition: buffer_defs.h:204
window_S::w_folds
garray_T w_folds
Definition: buffer_defs.h:1365
VimMenu::enabled
int enabled
for which modes the menu is enabled
Definition: buffer_defs.h:1153
file_buffer::b_ind_cpp_baseclass
int b_ind_cpp_baseclass
Definition: buffer_defs.h:803
stl_item::Empty
@ Empty
Definition: buffer_defs.h:389
file_buffer::b_last_used
time_t b_last_used
Definition: buffer_defs.h:596
tabpage_S::tp_localdir
char_u * tp_localdir
Absolute path of local cwd or NULL.
Definition: buffer_defs.h:964
file_buffer::b_p_vsts
char_u * b_p_vsts
'varsofttabstop'
Definition: buffer_defs.h:760
tasave_T::save_readbuf1
buffheader_T save_readbuf1
Definition: buffer_defs.h:342
MENU_INDEX_SELECT
@ MENU_INDEX_SELECT
Definition: buffer_defs.h:1141
file_buffer::b_p_tfu
char_u * b_p_tfu
'tagfunc'
Definition: buffer_defs.h:710
file_buffer::b_changelist
fmark_T b_changelist[JUMPLISTSIZE]
Definition: buffer_defs.h:613
matchitem::hl
match_T hl
struct for doing the actual highlighting
Definition: buffer_defs.h:1065
mapblock::m_noremap
int m_noremap
Definition: buffer_defs.h:361
syn_time_T::count
long count
Definition: buffer_defs.h:419
window_S::w_height_request
int w_height_request
Definition: buffer_defs.h:1299
synblock_T::b_syn_containedin
int b_syn_containedin
Definition: buffer_defs.h:439
file_buffer::b_p_inex_flags
uint32_t b_p_inex_flags
flags for 'includeexpr'
Definition: buffer_defs.h:726
lpos_T
position in file or buffer, but without coladd
Definition: pos.h:36
file_buffer::b_next
buf_T * b_next
Definition: buffer_defs.h:527
SNAP_COUNT
#define SNAP_COUNT
Definition: buffer_defs.h:937
tabpage_S
Definition: buffer_defs.h:944
kWinStyleMinimal
@ kWinStyleMinimal
Definition: buffer_defs.h:1094
mapblock::m_desc
char * m_desc
Definition: buffer_defs.h:366
winopt_T::wo_rl
int wo_rl
Definition: buffer_defs.h:216
wininfo_S::wi_folds
garray_T wi_folds
Definition: buffer_defs.h:287
window_S::w_last_cursor_lnum_rnu
linenr_T w_last_cursor_lnum_rnu
cursor lnum when 'rnu' was last redrawn
Definition: buffer_defs.h:1218
stl_item::Trunc
@ Trunc
Definition: buffer_defs.h:395
window_S::@13::space
int space
Definition: buffer_defs.h:1226
file_buffer::b_p_tc
char_u * b_p_tc
'tagcase' local value
Definition: buffer_defs.h:775
wline_T
struct w_line wline_T
file_buffer::b_p_iminsert
long b_p_iminsert
Definition: buffer_defs.h:664
file_buffer::b_spell
bool b_spell
Definition: buffer_defs.h:852
file_buffer::b_p_tags
char_u * b_p_tags
'tags' local value
Definition: buffer_defs.h:774
match_T::is_addpos
bool is_addpos
Definition: buffer_defs.h:1028
wininfo_S::wi_fold_manual
bool wi_fold_manual
Definition: buffer_defs.h:286
file_buffer::b_p_bh
char_u * b_p_bh
'bufhidden'
Definition: buffer_defs.h:692
file_buffer::b_p_inde_flags
uint32_t b_p_inde_flags
flags for 'indentexpr'
Definition: buffer_defs.h:728
sign_defs.h
file_buffer::b_p_vts
char_u * b_p_vts
'vartabstop'
Definition: buffer_defs.h:763
mapblock::m_silent
char m_silent
Definition: buffer_defs.h:362
file_buffer::b_bufvar
ScopeDictDictItem b_bufvar
Variable for "b:" Dictionary.
Definition: buffer_defs.h:834
file_buffer::b_u_synced
bool b_u_synced
Definition: buffer_defs.h:647
tabpage_S::tp_curwin
win_T * tp_curwin
current window in this Tab page
Definition: buffer_defs.h:948
file_buffer::b_p_scbk
long b_p_scbk
'scrollback'
Definition: buffer_defs.h:745
BufUpdateCallbacks::on_bytes
LuaRef on_bytes
Definition: buffer_defs.h:495
tabpage_S::tp_ch_used
long tp_ch_used
Definition: buffer_defs.h:954
window_S::w_redr_type
int w_redr_type
Definition: buffer_defs.h:1378
file_buffer::b_may_swap
bool b_may_swap
Definition: buffer_defs.h:841
file_buffer::b_p_ro
int b_p_ro
'readonly'
Definition: buffer_defs.h:743
file_buffer::b_u_newhead
u_header_T * b_u_newhead
Definition: buffer_defs.h:643
TV_DICTITEM_STRUCT
typedef TV_DICTITEM_STRUCT(sizeof("changedtick")) ChangedtickDictItem
file_buffer::b_ind_case_break
int b_ind_case_break
Definition: buffer_defs.h:797
regmmatch_T
Definition: regexp_defs.h:55
FloatRelative
FloatRelative
Definition: buffer_defs.h:1083
window_S::w_grid
ScreenGrid w_grid
Definition: buffer_defs.h:1463
file_buffer::b_p_fo
char_u * b_p_fo
'formatoptions'
Definition: buffer_defs.h:719
window_S::w_wrow
int w_wrow
Definition: buffer_defs.h:1344
highlight_defs.h
file_buffer::b_p_ul
long b_p_ul
'undolevels' local value
Definition: buffer_defs.h:780
window_S::w_old_cursor_lcol
colnr_T w_old_cursor_lcol
last column for block visual part
Definition: buffer_defs.h:1213
window_S::w_cursor
pos_T w_cursor
cursor position in buffer
Definition: buffer_defs.h:1196
window_S::w_save_cursor
pos_save_T w_save_cursor
Definition: buffer_defs.h:1293
file_buffer::b_p_sts_nopaste
long b_p_sts_nopaste
b_p_sts saved for paste mode
Definition: buffer_defs.h:748
col
col
Definition: normal.c:2401
stl_item::maxwid
int maxwid
Definition: buffer_defs.h:386
synblock_T::b_nospell_cluster_id
int b_nospell_cluster_id
Definition: buffer_defs.h:438
winopt_T::wo_spell
int wo_spell
Definition: buffer_defs.h:222
FloatConfig::row
double row
Definition: buffer_defs.h:1101
file_buffer::b_u_line_colnr
colnr_T b_u_line_colnr
Definition: buffer_defs.h:659
FloatConfig::window
Window window
Definition: buffer_defs.h:1098
memline_defs.h
window_S::@13::prec
int prec
Definition: buffer_defs.h:1224
file_buffer::b_p_menc
char_u * b_p_menc
'makeencoding'
Definition: buffer_defs.h:735
frame_S::fr_win
win_T * fr_win
Definition: buffer_defs.h:1005
w_line::wl_valid
char wl_valid
Definition: buffer_defs.h:983
mapblock::m_script_ctx
sctx_T m_script_ctx
Definition: buffer_defs.h:365
file_buffer::b_kmap_ga
garray_T b_kmap_ga
Definition: buffer_defs.h:674
file_buffer::b_bkc_flags
unsigned int b_bkc_flags
flags for 'backupco
Definition: buffer_defs.h:688
MENU_INDEX_INVALID
@ MENU_INDEX_INVALID
Definition: buffer_defs.h:1138
file_buffer::b_p_et_nopaste
int b_p_et_nopaste
b_p_et saved for paste mode
Definition: buffer_defs.h:715
stl_item::start
char_u * start
Definition: buffer_defs.h:380
LastSet
Stores an identifier of a script or channel that last set an option.
Definition: option_defs.h:911
tabpage_S::tp_first_diff
diff_T * tp_first_diff
Definition: buffer_defs.h:957
diffblock_S
Definition: buffer_defs.h:929
tasave_T
Definition: buffer_defs.h:337
window_S::w_valid
int w_valid
Definition: buffer_defs.h:1316
match_T::endcol
colnr_T endcol
Definition: buffer_defs.h:1027
taggy::cur_match
int cur_match
Definition: buffer_defs.h:121
file_buffer::b_p_ff
char_u * b_p_ff
'fileformat'
Definition: buffer_defs.h:717
file_buffer::b_u_save_nr_last
long b_u_save_nr_last
Definition: buffer_defs.h:649
file_buffer::b_ffname
char_u * b_ffname
Definition: buffer_defs.h:546
winopt_T::wo_crb_save
int wo_crb_save
Definition: buffer_defs.h:252
file_buffer::b_p_flp
char_u * b_p_flp
'formatlistpat'
Definition: buffer_defs.h:720
file_buffer::b_ind_keep_case_label
int b_ind_keep_case_label
Definition: buffer_defs.h:818
arglist::id
int id
id of this arglist
Definition: buffer_defs.h:299
winopt_T::wo_briopt
char_u * wo_briopt
Definition: buffer_defs.h:162
tabpage_S::tp_prevwin
win_T * tp_prevwin
previous window in this Tab page
Definition: buffer_defs.h:949
winopt_T::wo_fdl
long wo_fdl
Definition: buffer_defs.h:177
file_buffer::b_ind_unclosed
int b_ind_unclosed
Definition: buffer_defs.h:805
BufUpdateCallbacks::on_reload
LuaRef on_reload
Definition: buffer_defs.h:498
window_S::@13::tab2
int tab2
second tab character
Definition: buffer_defs.h:1228
window_S::w_topline
linenr_T w_topline
Definition: buffer_defs.h:1260
window_S::@14::stl
int stl
Definition: buffer_defs.h:1238
window_S::@14::vert
int vert
Definition: buffer_defs.h:1243
FileID
Struct which encapsulates inode/dev_id information.
Definition: fs_defs.h:12
file_buffer::b_changed
int b_changed
Definition: buffer_defs.h:555
file_buffer::b_p_nf
char_u * b_p_nf
'nrformats'
Definition: buffer_defs.h:740
file_buffer::b_ind_unclosed_wrapped
int b_ind_unclosed_wrapped
Definition: buffer_defs.h:808
synblock_T::b_keywtab
hashtab_T b_keywtab
Definition: buffer_defs.h:428
synblock_T::b_sst_array
synstate_T * b_sst_array
Definition: buffer_defs.h:466
WinStyle
WinStyle
Definition: buffer_defs.h:1092
winopt_T::wo_fde
char_u * wo_fde
Definition: buffer_defs.h:190
visualinfo_T
Definition: undo_defs.h:13
file_buffer::b_start_eol
int b_start_eol
Definition: buffer_defs.h:828
posmatch::botlnum
linenr_T botlnum
bottom buffer line
Definition: buffer_defs.h:1050
posmatch::cur
int cur
internal position counter
Definition: buffer_defs.h:1048
file_buffer::b_p_cfu
char_u * b_p_cfu
'completefunc'
Definition: buffer_defs.h:708
diffblock_S::df_lnum
linenr_T df_lnum[DB_COUNT]
Definition: buffer_defs.h:931
window_S::w_scwidth
int w_scwidth
Definition: buffer_defs.h:1372
file_buffer::b_ucmds
garray_T b_ucmds
Definition: buffer_defs.h:629
w_line::wl_folded
char wl_folded
Definition: buffer_defs.h:984
window_S::@13::lead
int lead
Definition: buffer_defs.h:1230
window_S::@14::horizdown
int horizdown
Definition: buffer_defs.h:1242
file_buffer::b_p_ai_nopaste
int b_p_ai_nopaste
b_p_ai saved for paste mode
Definition: buffer_defs.h:686
kFloatRelativeEditor
@ kFloatRelativeEditor
Definition: buffer_defs.h:1084
window_S::w_s
synblock_T * w_s
for :ownsyntax
Definition: buffer_defs.h:1179
file_buffer::b_locked_split
int b_locked_split
Definition: buffer_defs.h:535
file_buffer::b_p_swf
int b_p_swf
'swapfile'
Definition: buffer_defs.h:750
FloatConfig::width
int width
Definition: buffer_defs.h:1100
stl_item::minwid
int minwid
Definition: buffer_defs.h:384
synblock_T::b_syn_conceal
int b_syn_conceal
Definition: buffer_defs.h:451
winopt_T::wo_fcs
char_u * wo_fcs
Definition: buffer_defs.h:258
tasave_T::save_typebuf
typebuf_T save_typebuf
Definition: buffer_defs.h:338
VimMenu::en_dname
char * en_dname
NULL when "dname" untranslated.
Definition: buffer_defs.h:1158
file_buffer::b_ind_scopedecl
int b_ind_scopedecl
Definition: buffer_defs.h:814
tabpage_S::tp_diffbuf
buf_T * tp_diffbuf[DB_COUNT]
Definition: buffer_defs.h:958
winopt_T::wo_stl
char_u * wo_stl
Definition: buffer_defs.h:234
file_buffer::b_saving
bool b_saving
Definition: buffer_defs.h:571
taggy::tagname
char_u * tagname
Definition: buffer_defs.h:119
winopt_T::wo_list
int wo_list
Definition: buffer_defs.h:198
file_buffer::b_ind_open_left_imag
int b_ind_open_left_imag
Definition: buffer_defs.h:793
window_S::handle
handle_T handle
unique identifier for the window
Definition: buffer_defs.h:1174
file_buffer::b_last_changedtick_pum
varnumber_T b_last_changedtick_pum
Definition: buffer_defs.h:568
window_S::w_ru_cursor
pos_T w_ru_cursor
Definition: buffer_defs.h:1387
window_S::w_alist
alist_T * w_alist
Definition: buffer_defs.h:1396
file_buffer::b_p_dict
char_u * b_p_dict
'dictionary' local value
Definition: buffer_defs.h:777
file_buffer::b_ind_maxcomment
int b_ind_maxcomment
Definition: buffer_defs.h:813
window_S::@14::horiz
int horiz
Definition: buffer_defs.h:1240
wininfo_S::wi_prev
wininfo_T * wi_prev
Definition: buffer_defs.h:281
file_buffer::b_mod_top
linenr_T b_mod_top
Definition: buffer_defs.h:580
match_T::attr
int attr
Definition: buffer_defs.h:1023
file_buffer::b_p_keymap
char_u * b_p_keymap
'keymap'
Definition: buffer_defs.h:765
tabpage_S::tp_old_Columns
long tp_old_Columns
Columns when Tab page was left.
Definition: buffer_defs.h:953
file_buffer::b_chartab
uint64_t b_chartab[4]
Definition: buffer_defs.h:621
VimMenu::children
vimmenu_T * children
Children of sub-menu.
Definition: buffer_defs.h:1165
stl_hlrec::start
char_u * start
Definition: buffer_defs.h:372
arglist
Definition: buffer_defs.h:296
synblock_T::b_syn_linecont_time
syn_time_T b_syn_linecont_time
Definition: buffer_defs.h:448
window_S::w_hsep_height
int w_hsep_height
Definition: buffer_defs.h:1291
marktree.h
file_buffer::b_p_eol
int b_p_eol
'endofline'
Definition: buffer_defs.h:711
window_S::@13::tab1
int tab1
first tab character
Definition: buffer_defs.h:1227
wininfo_S::wi_next
wininfo_T * wi_next
Definition: buffer_defs.h:280
file_buffer::b_ind_continuation
int b_ind_continuation
Definition: buffer_defs.h:804
BufUpdateCallbacks
Definition: buffer_defs.h:493
file_buffer::b_p_cin
int b_p_cin
'cindent'
Definition: buffer_defs.h:697
hashtable_S
Definition: hashtab.h:63
mapblock::m_simplified
int m_simplified
Definition: buffer_defs.h:359
file_buffer::b_p_tw_nobin
long b_p_tw_nobin
b_p_tw saved for binary mode
Definition: buffer_defs.h:755
match_T::rm
regmmatch_T rm
Definition: buffer_defs.h:1019
file_buffer::b_ind_java
int b_ind_java
Definition: buffer_defs.h:816
regprog
Definition: regexp_defs.h:70
file_buffer::b_p_inex
char_u * b_p_inex
'includeexpr'
Definition: buffer_defs.h:725
file_buffer::b_p_sua
char_u * b_p_sua
'suffixesadd'
Definition: buffer_defs.h:749
FloatConfig::border
bool border
Definition: buffer_defs.h:1108
tasave_T::old_mod_mask
int old_mod_mask
Definition: buffer_defs.h:341
window_S::@14::horizup
int horizup
Definition: buffer_defs.h:1241
pos_save_T::w_cursor_corr
pos_T w_cursor_corr
Definition: buffer_defs.h:1131
taggy::cur_fnum
int cur_fnum
Definition: buffer_defs.h:122
BufUpdateCallbacks::on_detach
LuaRef on_detach
Definition: buffer_defs.h:497
window_S::w_redraw_bot
linenr_T w_redraw_bot
Definition: buffer_defs.h:1382
file_buffer::b_u_numhead
int b_u_numhead
Definition: buffer_defs.h:646
llpos_T::col
colnr_T col
column number
Definition: buffer_defs.h:1039
window_S::w_old_visual_lnum
linenr_T w_old_visual_lnum
last known start of visual part
Definition: buffer_defs.h:1214
window_S::w_cline_row
int w_cline_row
Definition: buffer_defs.h:1330
file_buffer::b_visual
visualinfo_T b_visual
Definition: buffer_defs.h:602
window_S::w_border_adj
int w_border_adj[4]
Definition: buffer_defs.h:1302
window_S::w_llist
qf_info_T * w_llist
Definition: buffer_defs.h:1482
FloatConfig::focusable
bool focusable
Definition: buffer_defs.h:1105
winopt_T::wo_fdl_save
long wo_fdl_save
Definition: buffer_defs.h:179
synblock_T::b_p_spo
char_u * b_p_spo
Definition: buffer_defs.h:482
file_buffer::b_p_wm_nobin
long b_p_wm_nobin
b_p_wm saved for binary mode
Definition: buffer_defs.h:758
file_buffer::b_signlist
sign_entry_T * b_signlist
Definition: buffer_defs.h:866
window_S::@14::vertright
int vertright
Definition: buffer_defs.h:1245
FloatConfig::bufpos
lpos_T bufpos
Definition: buffer_defs.h:1099
file_buffer::b_kmap_state
int16_t b_kmap_state
Definition: buffer_defs.h:671
grid_defs.h
file_buffer::b_p_indk
char_u * b_p_indk
'indentkeys'
Definition: buffer_defs.h:729
window_S::w_old_visual_mode
char w_old_visual_mode
last known VIsual_mode
Definition: buffer_defs.h:1210
file_buffer::b_signcols
struct file_buffer::@12 b_signcols
file_buffer::b_wininfo
wininfo_T * b_wininfo
Definition: buffer_defs.h:585
stl_item::Highlight
@ Highlight
Definition: buffer_defs.h:392
file_buffer::b_p_isk
char_u * b_p_isk
'iskeyword'
Definition: buffer_defs.h:722
disptick_T
uint64_t disptick_T
Definition: buffer_defs.h:101
MENU_INDEX_NORMAL
@ MENU_INDEX_NORMAL
Definition: buffer_defs.h:1139
kFloatAnchorSouth
@ kFloatAnchorSouth
Definition: buffer_defs.h:1074
file_buffer::b_p_ft
char_u * b_p_ft
'filetype'
Definition: buffer_defs.h:718
syn_time_T::match
long match
Definition: buffer_defs.h:420
window_S::w_last_cursormoved
pos_T w_last_cursormoved
for CursorMoved event
Definition: buffer_defs.h:1207
matchitem::conceal_char
int conceal_char
cchar for Conceal highlighting
Definition: buffer_defs.h:1067
hashtab.h
VimMenu::strings
char * strings[MENU_MODES]
Mapped string for each mode.
Definition: buffer_defs.h:1162
window_S::@14::msgsep
int msgsep
Definition: buffer_defs.h:1252
file_buffer::b_p_cpt
char_u * b_p_cpt
'complete'
Definition: buffer_defs.h:704
tabpage_S::tp_vars
dict_T * tp_vars
Internal variables, local to tab page.
Definition: buffer_defs.h:963
file_buffer::b_locked
int b_locked
Definition: buffer_defs.h:533
file_buffer::b_prev
buf_T * b_prev
Definition: buffer_defs.h:528
window_S::w_valid_leftcol
colnr_T w_valid_leftcol
Definition: buffer_defs.h:1319
file_buffer::terminal
Terminal * terminal
Definition: buffer_defs.h:874
window_S::w_vsep_width
int w_vsep_width
Definition: buffer_defs.h:1292
synblock_T::b_p_spc
char_u * b_p_spc
Definition: buffer_defs.h:478
stl_item::Separate
@ Separate
Definition: buffer_defs.h:391
file_buffer::b_ind_maxparen
int b_ind_maxparen
Definition: buffer_defs.h:812
window_S::w_width
int w_width
Definition: buffer_defs.h:1290
window_S::@14::vertleft
int vertleft
Definition: buffer_defs.h:1244
file_buffer::b_p_et
int b_p_et
'expandtab'
Definition: buffer_defs.h:713
tasave_T::typebuf_valid
bool typebuf_valid
Definition: buffer_defs.h:339
option_defs.h
synblock_T::b_syn_sync_minlines
long b_syn_sync_minlines
Definition: buffer_defs.h:443
synblock_T::b_sst_len
int b_sst_len
Definition: buffer_defs.h:467
file_buffer::b_prompt_text
char_u * b_prompt_text
Definition: buffer_defs.h:856
window_S::w_nrwidth_line_count
linenr_T w_nrwidth_line_count
Definition: buffer_defs.h:1478
window_S::w_jumplistlen
int w_jumplistlen
Definition: buffer_defs.h:1445
typebuf_T::tb_off
int tb_off
Definition: buffer_defs.h:328
window_S::w_p_culopt_flags
char_u w_p_culopt_flags
Definition: buffer_defs.h:1416
window_S::w_prevdir
char_u * w_prevdir
Definition: buffer_defs.h:1402
file_buffer::b_p_com
char_u * b_p_com
'comments'
Definition: buffer_defs.h:702
match_T::tm
proftime_T tm
Definition: buffer_defs.h:1030
window_S::@14::foldsep
int foldsep
continuous fold marker
Definition: buffer_defs.h:1250
window_S::w_p_siso
long w_p_siso
Definition: buffer_defs.h:1417
tabpage_S::tp_topframe
frame_T * tp_topframe
topframe for the windows
Definition: buffer_defs.h:947
winopt_T::wo_crb
int wo_crb
Definition: buffer_defs.h:250
sctx_T
Definition: typval.h:280
winopt_T::wo_lcs
char_u * wo_lcs
Definition: buffer_defs.h:260
kWinStyleUnused
@ kWinStyleUnused
Definition: buffer_defs.h:1093
LuaRef
int LuaRef
Definition: types.h:23
file_buffer::b_p_cinsd
char_u * b_p_cinsd
'cinscopedecls'
Definition: buffer_defs.h:701
undo_defs.h
file_buffer::b_ml
memline_T b_ml
Definition: buffer_defs.h:525
taggy::fmark
fmark_T fmark
Definition: buffer_defs.h:120
BufUpdateCallbacks::preview
bool preview
Definition: buffer_defs.h:500
syntax_defs.h
window_S::w_old_visual_col
colnr_T w_old_visual_col
last known start of visual part
Definition: buffer_defs.h:1215
window_S::w_lines_valid
int w_lines_valid
Definition: buffer_defs.h:1362
tabpage_S::tp_snapshot
frame_T * tp_snapshot[SNAP_COUNT]
window layout snapshots
Definition: buffer_defs.h:961
file_buffer::b_p_bl
int b_p_bl
'buflisted'
Definition: buffer_defs.h:695
frame_S::fr_prev
frame_T * fr_prev
Definition: buffer_defs.h:1001
matchitem::match
regmmatch_T match
regexp program for pattern
Definition: buffer_defs.h:1063
growarray
Definition: garray.h:12
defs.h
window_S::w_p_fdt_flags
uint32_t w_p_fdt_flags
Definition: buffer_defs.h:1414
BufUpdateCallbacks::on_changedtick
LuaRef on_changedtick
Definition: buffer_defs.h:496
file_buffer::b_ind_unclosed_noignore
int b_ind_unclosed_noignore
Definition: buffer_defs.h:807
stl_item::Group
@ Group
Definition: buffer_defs.h:390
VimMenu::noremap
int noremap[MENU_MODES]
A REMAP_VALUES flag for each mode.
Definition: buffer_defs.h:1163
FloatConfig::zindex
int zindex
Definition: buffer_defs.h:1106
match_T::first_lnum
linenr_T first_lnum
Definition: buffer_defs.h:1025
window_S::w_old_curswant
colnr_T w_old_curswant
last known value of Curswant
Definition: buffer_defs.h:1216
synblock_T::b_cjk
int b_cjk
Definition: buffer_defs.h:483
window_S::w_lines
wline_T * w_lines
Definition: buffer_defs.h:1363
file_buffer::handle
handle_T handle
Definition: buffer_defs.h:522
bufref_T::br_fnum
int br_fnum
Definition: buffer_defs.h:15
file_buffer::b_help
bool b_help
Definition: buffer_defs.h:850
file_buffer::b_p_vts_array
long * b_p_vts_array
'vartabstop' in internal format
Definition: buffer_defs.h:764
match_T::startcol
colnr_T startcol
Definition: buffer_defs.h:1026
frame_S::fr_next
frame_T * fr_next
Definition: buffer_defs.h:999
mark_defs.h
window_S::w_last_height
int w_last_height
last known value for w_height
Definition: buffer_defs.h:1279
winopt_T::wo_diff_saved
int wo_diff_saved
Definition: buffer_defs.h:238
matchitem::pattern
char_u * pattern
pattern to highlight
Definition: buffer_defs.h:1062
winopt_T::wo_nu
int wo_nu
Definition: buffer_defs.h:200
kFloatAnchorEast
@ kFloatAnchorEast
Definition: buffer_defs.h:1073
file_buffer::b_scanned
bool b_scanned
Definition: buffer_defs.h:661
winopt_T::wo_cole
long wo_cole
Definition: buffer_defs.h:248
winopt_T::wo_fmr
char_u * wo_fmr
Definition: buffer_defs.h:194
argentry
Definition: buffer_defs.h:307
frame_S::fr_height
int fr_height
Definition: buffer_defs.h:996
file_buffer::b_changed_invalid
bool b_changed_invalid
Definition: buffer_defs.h:557
file_buffer::b_p_ml_nobin
int b_p_ml_nobin
b_p_ml saved for binary mode
Definition: buffer_defs.h:738
llpos_T::len
int len
length: 0 - to the end of line
Definition: buffer_defs.h:1040
winopt_T::wo_cuc
int wo_cuc
Definition: buffer_defs.h:224
buffheader
Definition: buffer_defs.h:140
file_buffer::b_mod_tick_decor
disptick_T b_mod_tick_decor
Definition: buffer_defs.h:587
file_buffer::b_ind_open_imag
int b_ind_open_imag
Definition: buffer_defs.h:788
window_S::w_hl_ids
int w_hl_ids[HLF_COUNT]
'winhighlight' id
Definition: buffer_defs.h:1184
file_buffer::b_ind_case_code
int b_ind_case_code
Definition: buffer_defs.h:796
stl_hlrec::userhl
int userhl
Definition: buffer_defs.h:373
match_T::buf
buf_T * buf
Definition: buffer_defs.h:1021
window_S::w_winrow
int w_winrow
Definition: buffer_defs.h:1285
file_buffer::b_ind_level
int b_ind_level
Definition: buffer_defs.h:787
window_S::w_viewport_invalid
bool w_viewport_invalid
Definition: buffer_defs.h:1321
file_buffer::b_u_save_nr_cur
long b_u_save_nr_cur
Definition: buffer_defs.h:652
arglist::al_ga
garray_T al_ga
Definition: buffer_defs.h:297
VimMenu::name
char * name
Name of menu, possibly translated.
Definition: buffer_defs.h:1154
window_S::w_llist_ref
qf_info_T * w_llist_ref
Definition: buffer_defs.h:1485
file_buffer::b_mtime_ns
long b_mtime_ns
Definition: buffer_defs.h:591
file_buffer::file_id_valid
bool file_id_valid
Definition: buffer_defs.h:552
window_S::w_briopt_list
int w_briopt_list
Definition: buffer_defs.h:1423
file_buffer::b_marks_read
bool b_marks_read
Definition: buffer_defs.h:637
bufref_T::br_buf
buf_T * br_buf
Definition: buffer_defs.h:14
synblock_T::b_syn_foldlevel
int b_syn_foldlevel
Definition: buffer_defs.h:433
posmatch
Definition: buffer_defs.h:1046
MENU_INDEX_INSERT
@ MENU_INDEX_INSERT
Definition: buffer_defs.h:1143
file_buffer::b_ind_matching_paren
int b_ind_matching_paren
Definition: buffer_defs.h:810
qf_info_S
Definition: quickfix.c:119
file_buffer::b_p_bin
int b_p_bin
'binary'
Definition: buffer_defs.h:690
stl_item::ClickFunc
@ ClickFunc
Definition: buffer_defs.h:394
winopt_T::wo_fen_save
int wo_fen_save
Definition: buffer_defs.h:172
colnr_T
int colnr_T
Column number type.
Definition: pos.h:10
file_buffer::b_p_syn
char_u * b_p_syn
'syntax'
Definition: buffer_defs.h:752
winopt_T::wo_cocu
char_u * wo_cocu
Definition: buffer_defs.h:246
file_buffer::b_prompt_insert
int b_prompt_insert
Definition: buffer_defs.h:859
file_buffer::b_p_inf
int b_p_inf
'infercase'
Definition: buffer_defs.h:721
file_buffer::b_ind_param
int b_ind_param
Definition: buffer_defs.h:798
file_buffer::b_p_bt
char_u * b_p_bt
'buftype'
Definition: buffer_defs.h:693
winopt_T::wo_fdt
char_u * wo_fdt
Definition: buffer_defs.h:192
synblock_T::b_syn_error
int b_syn_error
Definition: buffer_defs.h:430
window_S::w_ru_topline
linenr_T w_ru_topline
Definition: buffer_defs.h:1389
FloatConfig::style
WinStyle style
Definition: buffer_defs.h:1107
window_S::w_cline_height
int w_cline_height
Definition: buffer_defs.h:1327
file_buffer::b_p_ts
long b_p_ts
'tabstop'
Definition: buffer_defs.h:753
file_buffer::b_ind_close_extra
int b_ind_close_extra
Definition: buffer_defs.h:792
file_buffer::b_p_path
char_u * b_p_path
'path' local value
Definition: buffer_defs.h:772
file_buffer::b_mod_set
bool b_mod_set
Definition: buffer_defs.h:578
tasave_T::save_readbuf2
buffheader_T save_readbuf2
Definition: buffer_defs.h:343
synblock_T::b_sst_first
synstate_T * b_sst_first
Definition: buffer_defs.h:468
file_buffer::file_id
FileID file_id
Definition: buffer_defs.h:553
window_S::w_briopt_min
int w_briopt_min
Definition: buffer_defs.h:1420
winopt_T::wo_culopt
char_u * wo_culopt
Definition: buffer_defs.h:228
file_buffer::b_p_fex
char_u * b_p_fex
'formatexpr'
Definition: buffer_defs.h:731
pos_T
position in file or buffer
Definition: pos.h:29
window_S::w_float_config
FloatConfig w_float_config
Definition: buffer_defs.h:1467
window_S::w_filler_rows
int w_filler_rows
Definition: buffer_defs.h:1349
file_buffer::b_ind_hash_comment
int b_ind_hash_comment
Definition: buffer_defs.h:819
window_S::w_buffer
buf_T * w_buffer
Definition: buffer_defs.h:1176
file_buffer::deleted_codepoints
size_t deleted_codepoints
Definition: buffer_defs.h:900
winopt_T::wo_sbr
char_u * wo_sbr
Definition: buffer_defs.h:232
file_buffer::b_p_sts
long b_p_sts
'softtabstop'
Definition: buffer_defs.h:747
file_buffer::b_ind_comment
int b_ind_comment
Definition: buffer_defs.h:800
winopt_T::wo_fdc
char_u * wo_fdc
Definition: buffer_defs.h:166
window_S::w_last_width
int w_last_width
last known value for w_width
Definition: buffer_defs.h:1278
window_S::w_leftcol
colnr_T w_leftcol
Definition: buffer_defs.h:1269
winopt_T::wo_winhl
char_u * wo_winhl
Definition: buffer_defs.h:256
window_S::@14::diff
int diff
Definition: buffer_defs.h:1251
window_S::@14::verthoriz
int verthoriz
Definition: buffer_defs.h:1246
tabpage_S::tp_old_Rows
long tp_old_Rows
Rows when Tab page was left.
Definition: buffer_defs.h:952
frame_S::fr_layout
char fr_layout
Definition: buffer_defs.h:993
typebuf_T::tb_maplen
int tb_maplen
Definition: buffer_defs.h:330
synblock_T::b_syn_linecont_ic
int b_syn_linecont_ic
Definition: buffer_defs.h:449
window_S::w_redr_border
bool w_redr_border
Definition: buffer_defs.h:1384
INIT
EXTERN int curbuf_splice_pending INIT(=0)
window_S::w_briopt_sbr
bool w_briopt_sbr
Definition: buffer_defs.h:1422
file_buffer::b_p_script_ctx
LastSet b_p_script_ctx[BV_COUNT]
Definition: buffer_defs.h:683
FloatConfig::external
bool external
Definition: buffer_defs.h:1104
window_S::w_p_fde_flags
uint32_t w_p_fde_flags
Definition: buffer_defs.h:1413
filemark
Structure defining single local mark.
Definition: mark_defs.h:35
file_buffer::b_p_channel
long b_p_channel
'channel'
Definition: buffer_defs.h:696
file_buffer::b_ind_pragma
int b_ind_pragma
Definition: buffer_defs.h:823
matchitem
Definition: buffer_defs.h:1058
file_buffer::b_p_fp
char_u * b_p_fp
'formatprg'
Definition: buffer_defs.h:730
file_buffer::b_nwindows
int b_nwindows
Definition: buffer_defs.h:530
file_buffer::b_p_tsr
char_u * b_p_tsr
'thesaurus' local value
Definition: buffer_defs.h:778
window_S::w_fold_manual
bool w_fold_manual
Definition: buffer_defs.h:1366
file_buffer::b_p_cino
char_u * b_p_cino
'cinoptions'
Definition: buffer_defs.h:698
window_S::w_hl_attr_normal
int w_hl_attr_normal
'winhighlight' normal final attrs
Definition: buffer_defs.h:1182
file_buffer::update_need_codepoints
bool update_need_codepoints
Definition: buffer_defs.h:892
kvec.h
synblock_T::b_syn_isk
char_u * b_syn_isk
Definition: buffer_defs.h:485
winopt_T::wo_fen
int wo_fen
Definition: buffer_defs.h:170
synblock_T
Definition: buffer_defs.h:427
winopt_T::wo_fdc_save
char_u * wo_fdc_save
Definition: buffer_defs.h:168
synblock_T::b_syn_ic
int b_syn_ic
Definition: buffer_defs.h:432
file_buffer::b_p_ci
int b_p_ci
'copyindent'
Definition: buffer_defs.h:689
file_buffer::b_p_fenc
char_u * b_p_fenc
'fileencoding'
Definition: buffer_defs.h:716
file_buffer::b_changelistlen
int b_changelistlen
Definition: buffer_defs.h:614
tabpage_S::tp_firstwin
win_T * tp_firstwin
first window in this Tab page
Definition: buffer_defs.h:950
pos_save_T::w_topline_save
int w_topline_save
Definition: buffer_defs.h:1128
stl_item::TabPage
@ TabPage
Definition: buffer_defs.h:393
file_buffer::b_ind_cpp_extern_c
int b_ind_cpp_extern_c
Definition: buffer_defs.h:822
kFloatRelativeCursor
@ kFloatRelativeCursor
Definition: buffer_defs.h:1086
file_buffer::b_op_end
pos_T b_op_end
Definition: buffer_defs.h:635
window_S::w_p_stl_flags
uint32_t w_p_stl_flags
Definition: buffer_defs.h:1412
file_buffer::b_ind_cpp_namespace
int b_ind_cpp_namespace
Definition: buffer_defs.h:820
argentry::ae_fname
char_u * ae_fname
Definition: buffer_defs.h:308
file_buffer::@12::size
int size
Definition: buffer_defs.h:868
file_buffer::b_fname
char_u * b_fname
Definition: buffer_defs.h:549
syn_time_T::total
proftime_T total
Definition: buffer_defs.h:417
mapblock::m_nowait
char m_nowait
Definition: buffer_defs.h:363
file_buffer::b_new_change
bool b_new_change
Definition: buffer_defs.h:615
file_buffer::b_has_qf_entry
int b_has_qf_entry
quickfix exists for buffer
Definition: buffer_defs.h:694
stl_item::cmd
char * cmd
Definition: buffer_defs.h:382
String
Definition: defs.h:77
tabpage_S::tp_lastwin
win_T * tp_lastwin
last window in this Tab page
Definition: buffer_defs.h:951
file_buffer::@12::valid
bool valid
Definition: buffer_defs.h:869
window_S::w_height_inner
int w_height_inner
Definition: buffer_defs.h:1296
file_buffer::b_p_ep
char_u * b_p_ep
'equalprg' local value
Definition: buffer_defs.h:771
mapblock::m_luaref
LuaRef m_luaref
Definition: buffer_defs.h:356
tabpage_S::tp_next
tabpage_T * tp_next
next tabpage or NULL
Definition: buffer_defs.h:946
VimMenu::parent
vimmenu_T * parent
Parent of menu.
Definition: buffer_defs.h:1166
pos_save_T
Definition: buffer_defs.h:1127
taggy::user_data
char_u * user_data
Definition: buffer_defs.h:123
VimMenu::actext
char * actext
accelerator text (after TAB)
Definition: buffer_defs.h:1160
window_S::w_topline_was_set
char w_topline_was_set
Definition: buffer_defs.h:1262
file_buffer::b_ind_open_extra
int b_ind_open_extra
Definition: buffer_defs.h:791
llpos_T::lnum
linenr_T lnum
line number
Definition: buffer_defs.h:1038
mapblock::m_orig_str
char_u * m_orig_str
Definition: buffer_defs.h:355
FloatAnchor
int FloatAnchor
Definition: buffer_defs.h:1070
file_buffer::b_p_fixeol
int b_p_fixeol
'fixendofline'
Definition: buffer_defs.h:712
map.h
window_S::@13::ext
int ext
Definition: buffer_defs.h:1223
file_buffer::b_ind_unclosed2
int b_ind_unclosed2
Definition: buffer_defs.h:806
window_S::w_cline_folded
bool w_cline_folded
Definition: buffer_defs.h:1328
file_buffer::b_u_line_lnum
linenr_T b_u_line_lnum
Definition: buffer_defs.h:658
wininfo_S::wi_win
win_T * wi_win
Definition: buffer_defs.h:282
matchitem::hlg_id
int hlg_id
highlight group ID
Definition: buffer_defs.h:1066
mapblock::m_mode
int m_mode
Definition: buffer_defs.h:358
varnumber_T
int64_t varnumber_T
Type used for VimL VAR_NUMBER values.
Definition: typval.h:26
pos_save_T::w_topline_corr
int w_topline_corr
Definition: buffer_defs.h:1129
window_S::w_redraw_top
linenr_T w_redraw_top
Definition: buffer_defs.h:1381
synblock_T::b_syn_clusters
garray_T b_syn_clusters
Definition: buffer_defs.h:436
winopt_T::wo_wfh
int wo_wfh
Definition: buffer_defs.h:210
file_buffer::b_last_changedtick
varnumber_T b_last_changedtick
Definition: buffer_defs.h:566
window_S::w_width_inner
int w_width_inner
Definition: buffer_defs.h:1297
window_S::w_p_cc_cols
int * w_p_cc_cols
Definition: buffer_defs.h:1415
winopt_T::wo_wfw
int wo_wfw
Definition: buffer_defs.h:212
stl_item
Definition: buffer_defs.h:378
window_S::w_height
int w_height
Definition: buffer_defs.h:1286
schar_T
char_u schar_T[(MAX_MCO+1) *4+1]
Definition: grid_defs.h:13
regexp_defs.h
window_S::w_last_leftcol
colnr_T w_last_leftcol
last known value for w_leftcol
Definition: buffer_defs.h:1277
syn_time_T
Definition: buffer_defs.h:416
typval.h
synblock_T::b_sst_firstfree
synstate_T * b_sst_firstfree
Definition: buffer_defs.h:469
window_S::@14::eob
int eob
Definition: buffer_defs.h:1253
file_buffer::b_mtime_read
long b_mtime_read
Definition: buffer_defs.h:592
MAX_MAPHASH
#define MAX_MAPHASH
Definition: buffer_defs.h:511
tabpage_S::tp_diff_update
int tp_diff_update
update diffs before redrawing
Definition: buffer_defs.h:960
match_T
Definition: buffer_defs.h:1018
frame_S::fr_newwidth
int fr_newwidth
Definition: buffer_defs.h:995
window_S::w_width_request
int w_width_request
Definition: buffer_defs.h:1300
file_buffer::b_mtime
long b_mtime
Definition: buffer_defs.h:590
MENU_INDEX_VISUAL
@ MENU_INDEX_VISUAL
Definition: buffer_defs.h:1140
file_buffer::b_p_vsts_array
long * b_p_vsts_array
'varsofttabstop' in internal format
Definition: buffer_defs.h:761
window_S::w_topfill
int w_topfill
Definition: buffer_defs.h:1264
window_S::w_vars
dict_T * w_vars
Dictionary with w: variables.
Definition: buffer_defs.h:1431
frame_S::fr_child
frame_T * fr_child
Definition: buffer_defs.h:1004
window_S::w_briopt_shift
int w_briopt_shift
Definition: buffer_defs.h:1421
window_S::w_prev
win_T * w_prev
link to previous window
Definition: buffer_defs.h:1189
file_buffer::b_u_time_cur
time_t b_u_time_cur
Definition: buffer_defs.h:651
file_buffer::b_u_seq_cur
long b_u_seq_cur
Definition: buffer_defs.h:650
MENU_INDEX_OP_PENDING
@ MENU_INDEX_OP_PENDING
Definition: buffer_defs.h:1142
synblock_T::b_langp
garray_T b_langp
Definition: buffer_defs.h:475
window_S::@13::multispace
int * multispace
Definition: buffer_defs.h:1232
window_S::w_hl_attrs
int w_hl_attrs[HLF_COUNT]
'winhighlight' final attrs
Definition: buffer_defs.h:1185
file_buffer::b_p_tw
long b_p_tw
'textwidth'
Definition: buffer_defs.h:754
file_buffer::b_p_ar
int b_p_ar
'autoread' local value
Definition: buffer_defs.h:773
window_S::@13::nbsp
int nbsp
Definition: buffer_defs.h:1225
window_S::w_closing
bool w_closing
Definition: buffer_defs.h:1191
w_line::wl_lastlnum
linenr_T wl_lastlnum
Definition: buffer_defs.h:985
file_buffer::b_p_bomb
int b_p_bomb
'bomb'
Definition: buffer_defs.h:691
file_buffer::b_p_pi
int b_p_pi
'preserveindent'
Definition: buffer_defs.h:741
window_S::w_tagstackidx
int w_tagstackidx
Definition: buffer_defs.h:1460
winopt_T::wo_fdm
char_u * wo_fdm
Definition: buffer_defs.h:182
file_buffer::b_mtime_read_ns
long b_mtime_read_ns
Definition: buffer_defs.h:593
window_S::w_arg_idx
int w_arg_idx
Definition: buffer_defs.h:1397
winopt_T::wo_ve_flags
unsigned wo_ve_flags
Definition: buffer_defs.h:206
syn_state
Definition: syntax_defs.h:47
window_S::w_pos_changed
bool w_pos_changed
Definition: buffer_defs.h:1465
winopt_T::wo_scr
long wo_scr
Definition: buffer_defs.h:220
winopt_T::wo_cul
int wo_cul
Definition: buffer_defs.h:226
WV_COUNT
@ WV_COUNT
Definition: option_defs.h:900
w_line::wl_size
uint16_t wl_size
Definition: buffer_defs.h:982
window_S::@13::eol
int eol
Definition: buffer_defs.h:1222
u_header
Definition: undo_defs.h:35
VimMenu::modes
int modes
Which modes is this menu visible for.
Definition: buffer_defs.h:1152
window_S::w_changelistidx
int w_changelistidx
Definition: buffer_defs.h:1448
file_buffer::b_p_inde
char_u * b_p_inde
'indentexpr'
Definition: buffer_defs.h:727
VimMenu::en_name
char * en_name
Definition: buffer_defs.h:1156
window_S::w_nrwidth
int w_nrwidth
Definition: buffer_defs.h:1370
tabpage_S::tp_diff_invalid
int tp_diff_invalid
list of diffs is outdated
Definition: buffer_defs.h:959
DB_COUNT
#define DB_COUNT
Definition: buffer_defs.h:912
typebuf_T::tb_len
int tb_len
Definition: buffer_defs.h:329
EXTERN
#define EXTERN
Definition: macros.h:9
FloatConfig::relative
FloatRelative relative
Definition: buffer_defs.h:1103
matchitem::next
matchitem_T * next
Definition: buffer_defs.h:1059
window_S::w_fraction
int w_fraction
Definition: buffer_defs.h:1475
synblock_T::b_spell_ismw_mb
char_u * b_spell_ismw_mb
Definition: buffer_defs.h:477
file_buffer::additional_data
dict_T * additional_data
Definition: buffer_defs.h:876
file_buffer::b_orig_mode
int b_orig_mode
Definition: buffer_defs.h:595
file_buffer::changedtick_di
ChangedtickDictItem changedtick_di
Definition: buffer_defs.h:564
mapblock::m_keylen
int m_keylen
Definition: buffer_defs.h:357
file_buffer::b_p_sw
long b_p_sw
'shiftwidth'
Definition: buffer_defs.h:744
window_S::w_width_outer
int w_width_outer
Definition: buffer_defs.h:1305
file_buffer::b_p_wm_nopaste
long b_p_wm_nopaste
b_p_wm saved for paste mode
Definition: buffer_defs.h:759
file_buffer::b_ind_if_for_while
int b_ind_if_for_while
Definition: buffer_defs.h:821
buffblock
Definition: buffer_defs.h:132
window_S::w_jumplistidx
int w_jumplistidx
Definition: buffer_defs.h:1446
buffheader::bh_curr
buffblock_T * bh_curr
Definition: buffer_defs.h:142
file_buffer::b_p_initialized
bool b_p_initialized
Definition: buffer_defs.h:681
buffheader::bh_space
size_t bh_space
Definition: buffer_defs.h:144
winopt_T::wo_rlc
char_u * wo_rlc
Definition: buffer_defs.h:218
window_S::w_last_topline
linenr_T w_last_topline
last known value for w_topline
Definition: buffer_defs.h:1276
file_buffer::b_signs
size_t b_signs
Definition: buffer_defs.h:883
file_buffer::b_p_inc
char_u * b_p_inc
'include'
Definition: buffer_defs.h:724
sign_entry
Definition: sign_defs.h:24
window_S::w_localdir
char_u * w_localdir
Definition: buffer_defs.h:1401
window_S::@14::stlnc
int stlnc
Definition: buffer_defs.h:1239
window_S::w_hl_id_normal
int w_hl_id_normal
'winhighlight' normal id
Definition: buffer_defs.h:1181
file_buffer::b_p_fex_flags
uint32_t b_p_fex_flags
flags for 'formatexpr'
Definition: buffer_defs.h:732
window_S::w_redr_status
bool w_redr_status
Definition: buffer_defs.h:1383
file_buffer::b_p_def
char_u * b_p_def
'define' local value
Definition: buffer_defs.h:723
winopt_T::wo_fml
long wo_fml
Definition: buffer_defs.h:186
winopt_T::wo_scb
int wo_scb
Definition: buffer_defs.h:236
file_buffer::b_first_abbr
mapblock_T * b_first_abbr
Definition: buffer_defs.h:627
file_buffer::b_p_bkc
char_u * b_p_bkc
'backupco
Definition: buffer_defs.h:687
taggy
Definition: buffer_defs.h:118
proftime_T
uint64_t proftime_T
Definition: profile.h:7
window_S::w_p_fcs_chars
struct window_S::@14 w_p_fcs_chars
synblock_T::b_syn_spell
int b_syn_spell
Definition: buffer_defs.h:434
file_buffer::b_p_et_nobin
int b_p_et_nobin
b_p_et saved for binary mode
Definition: buffer_defs.h:714
FloatConfig::noautocmd
bool noautocmd
Definition: buffer_defs.h:1113
file_buffer::b_flags
int b_flags
Definition: buffer_defs.h:532
VimMenu::silent
bool silent[MENU_MODES]
A silent flag for each mode.
Definition: buffer_defs.h:1164
window_S::w_match_head
matchitem_T * w_match_head
Definition: buffer_defs.h:1450
MENU_MODES
@ MENU_MODES
Definition: buffer_defs.h:1146
typebuf_T::tb_no_abbr_cnt
int tb_no_abbr_cnt
Definition: buffer_defs.h:332
file_buffer::b_mod_tick_syn
disptick_T b_mod_tick_syn
Definition: buffer_defs.h:586
window_S::w_ru_line_count
linenr_T w_ru_line_count
Definition: buffer_defs.h:1390
window_S::w_set_curswant
int w_set_curswant
Definition: buffer_defs.h:1202
file_buffer::b_p_cms
char_u * b_p_cms
'commentstring'
Definition: buffer_defs.h:703
file_buffer::b_p_mps
char_u * b_p_mps
'matchpairs'
Definition: buffer_defs.h:736
window_S::@14::foldclosed
int foldclosed
when fold is closed
Definition: buffer_defs.h:1249
tabpage_S::tp_prevdir
char_u * tp_prevdir
Previous directory.
Definition: buffer_defs.h:965
file_buffer::b_ind_js
int b_ind_js
Definition: buffer_defs.h:817
BufUpdateCallbacks::on_lines
LuaRef on_lines
Definition: buffer_defs.h:494
syn_time_T::slowest
proftime_T slowest
Definition: buffer_defs.h:418
window_S::w_hl_needs_update
int w_hl_needs_update
attrs need to be recalculated
Definition: buffer_defs.h:1187
window_S::w_scbind_pos
long w_scbind_pos
Definition: buffer_defs.h:1428
winopt_T::wo_bri
int wo_bri
Definition: buffer_defs.h:160
typebuf_T::tb_buf
char_u * tb_buf
Definition: buffer_defs.h:325
window_S::w_wincol
int w_wincol
Definition: buffer_defs.h:1289
file_buffer::b_last_insert
fmark_T b_last_insert
Definition: buffer_defs.h:607
winopt_T::wo_pvw
int wo_pvw
Definition: buffer_defs.h:214
file_buffer::Map
Map(uint32_t, uint32_t) b_extmark_ns[1]
JUMPLISTSIZE
#define JUMPLISTSIZE
Maximum number of marks in jump list.
Definition: mark_defs.h:29
alist_T
struct arglist alist_T
MENU_INDEX_CMDLINE
@ MENU_INDEX_CMDLINE
Definition: buffer_defs.h:1144
typebuf_T::tb_silent
int tb_silent
Definition: buffer_defs.h:331
BV_COUNT
@ BV_COUNT
Definition: option_defs.h:846
winopt_T::wo_rnu
int wo_rnu
Definition: buffer_defs.h:202
window_S::w_old_cursor_lnum
linenr_T w_old_cursor_lnum
last known end of visual part
Definition: buffer_defs.h:1211
window_S::w_frame
frame_T * w_frame
frame containing this window
Definition: buffer_defs.h:1194
file_buffer::b_p_vsts_nopaste
char_u * b_p_vsts_nopaste
b_p_vsts saved for paste mode
Definition: buffer_defs.h:762
file_buffer::b_visual_mode_eval
int b_visual_mode_eval
Definition: buffer_defs.h:603
synblock_T::b_syn_patterns
garray_T b_syn_patterns
Definition: buffer_defs.h:435
typebuf_T::tb_change_cnt
int tb_change_cnt
Definition: buffer_defs.h:333
matchitem::pos
posmatch_T pos
position matches
Definition: buffer_defs.h:1064
synblock_T::b_sst_lasttick
disptick_T b_sst_lasttick
Definition: buffer_defs.h:472
pos_save_T::w_cursor_save
pos_T w_cursor_save
Definition: buffer_defs.h:1130
file_buffer::@12::sentinel
linenr_T sentinel
Definition: buffer_defs.h:870
file_buffer::b_did_warn
bool b_did_warn
Definition: buffer_defs.h:842
file_buffer::b_u_curhead
u_header_T * b_u_curhead
Definition: buffer_defs.h:645
file_buffer::b_p_udf
int b_p_udf
'undofile'
Definition: buffer_defs.h:781
char_u
unsigned char char_u
Definition: types.h:12
mapblock::m_expr
char m_expr
Definition: buffer_defs.h:364
frame_S
Definition: buffer_defs.h:992
synblock_T::b_syn_slow
bool b_syn_slow
Definition: buffer_defs.h:431
window_S::w_pcmark
pos_T w_pcmark
Definition: buffer_defs.h:1438
file_buffer::b_p_mp
char_u * b_p_mp
'makeprg' local value
Definition: buffer_defs.h:769
match_T::attr_cur
int attr_cur
Definition: buffer_defs.h:1024
file_buffer::b_p_ml
int b_p_ml
'modeline'
Definition: buffer_defs.h:737
typebuf_T::tb_buflen
int tb_buflen
Definition: buffer_defs.h:327
bufref_T
Definition: buffer_defs.h:13
window_S::@14::foldopen
int foldopen
when fold is open
Definition: buffer_defs.h:1248
ScreenGrid
Definition: grid_defs.h:48
VimMenu::priority
long priority
Menu order priority.
Definition: buffer_defs.h:1161
file_buffer::b_last_cursor
fmark_T b_last_cursor
Definition: buffer_defs.h:605
file_buffer::b_op_start
pos_T b_op_start
Definition: buffer_defs.h:633
file_buffer::b_p_ai
int b_p_ai
'autoindent'
Definition: buffer_defs.h:685
file_buffer::b_p_smc
long b_p_smc
'synmaxcol'
Definition: buffer_defs.h:751
buffheader::bh_index
size_t bh_index
Definition: buffer_defs.h:143
file_buffer::b_last_change
fmark_T b_last_change
Definition: buffer_defs.h:608
window_S::w_alt_fnum
int w_alt_fnum
Definition: buffer_defs.h:1394
FloatConfig::anchor
FloatAnchor anchor
Definition: buffer_defs.h:1102
typebuf_T
Definition: buffer_defs.h:324
MarkTree
Definition: marktree.h:125
winopt_T::wo_arab
int wo_arab
Definition: buffer_defs.h:158
Callback
Definition: typval.h:78
file_buffer::b_ind_in_comment2
int b_ind_in_comment2
Definition: buffer_defs.h:802
window_S::w_allbuf_opt
winopt_T w_allbuf_opt
Definition: buffer_defs.h:1409
typebuf_T::tb_noremap
char_u * tb_noremap
Definition: buffer_defs.h:326
synblock_T::b_syn_sync_flags
int b_syn_sync_flags
Definition: buffer_defs.h:441
handle_T
int handle_T
Definition: types.h:18
garray.h
taggy_T
struct taggy taggy_T
wininfo_S::wi_optset
bool wi_optset
Definition: buffer_defs.h:284
file_buffer
Definition: buffer_defs.h:521
synblock_T::b_syn_folditems
int b_syn_folditems
Definition: buffer_defs.h:452
file_buffer::b_op_start_orig
pos_T b_op_start_orig
Definition: buffer_defs.h:634
file_buffer::b_marktree
MarkTree b_marktree[1]
Definition: buffer_defs.h:880
TAGSTACKSIZE
#define TAGSTACKSIZE
Maximum number of tags in tag stack.
Definition: mark_defs.h:32
mapblock::m_str
char_u * m_str
Definition: buffer_defs.h:354
tasave_T::save_inputbuf
String save_inputbuf
Definition: buffer_defs.h:344
file_buffer::b_bad_char
int b_bad_char
Definition: buffer_defs.h:831
file_buffer::b_p_lisp
int b_p_lisp
'lisp'
Definition: buffer_defs.h:734
file_buffer::b_sfname
char_u * b_sfname
Definition: buffer_defs.h:547
window_S::w_p_lcs_chars
struct window_S::@13 w_p_lcs_chars
matchitem::id
int id
match ID
Definition: buffer_defs.h:1060
matchitem::priority
int priority
match priority
Definition: buffer_defs.h:1061
window_S::w_virtcol
colnr_T w_virtcol
Definition: buffer_defs.h:1332
file_buffer::b_start_bomb
int b_start_bomb
Definition: buffer_defs.h:832
BufUpdateCallbacks::utf_sizes
bool utf_sizes
Definition: buffer_defs.h:499
synblock_T::b_syn_sync_linebreaks
long b_syn_sync_linebreaks
Definition: buffer_defs.h:445
buffblock::b_next
buffblock_T * b_next
Definition: buffer_defs.h:133
file_buffer::b_u_oldhead
u_header_T * b_u_oldhead
Definition: buffer_defs.h:642
file_buffer::b_orig_size
uint64_t b_orig_size
Definition: buffer_defs.h:594
file_buffer::b_ind_first_open
int b_ind_first_open
Definition: buffer_defs.h:790
tabpage_S::tp_winvar
ScopeDictDictItem tp_winvar
Variable for "t:" Dictionary.
Definition: buffer_defs.h:962
file_buffer::b_maphash
mapblock_T * b_maphash[MAX_MAPHASH]
Definition: buffer_defs.h:624
winopt_T::wo_cc
char_u * wo_cc
Definition: buffer_defs.h:230
VimMenu::mnemonic
int mnemonic
mnemonic key (after '&')
Definition: buffer_defs.h:1159
winopt_T::wo_fdm_save
char_u * wo_fdm_save
Definition: buffer_defs.h:184
tabpage_S::handle
handle_T handle
Definition: buffer_defs.h:945
window_S::w_arg_idx_invalid
int w_arg_idx_invalid
Definition: buffer_defs.h:1399
file_buffer::b_p_lw
char_u * b_p_lw
'lispwords' local value
Definition: buffer_defs.h:782
window_S::w_botfill
bool w_botfill
Definition: buffer_defs.h:1266
file_buffer::b_virt_line_blocks
size_t b_virt_line_blocks
Definition: buffer_defs.h:882
buffheader::bh_first
buffblock_T bh_first
Definition: buffer_defs.h:141
mapblock
Definition: buffer_defs.h:351
window_S::w_tagstacklen
int w_tagstacklen
Definition: buffer_defs.h:1461
winopt_T::wo_diff
int wo_diff
Definition: buffer_defs.h:164
file_buffer::b_p_si
int b_p_si
'smartindent'
Definition: buffer_defs.h:746
file_buffer::deleted_bytes
size_t deleted_bytes
Definition: buffer_defs.h:898
window_S::w_tagstack
taggy_T w_tagstack[TAGSTACKSIZE]
Definition: buffer_defs.h:1459
mapblock::m_next
mapblock_T * m_next
Definition: buffer_defs.h:352
file_buffer::b_prompt_interrupt
Callback b_prompt_interrupt
Definition: buffer_defs.h:858
match_T::lnum
linenr_T lnum
Definition: buffer_defs.h:1022
file_buffer::b_mapped_ctrl_c
int b_mapped_ctrl_c
Definition: buffer_defs.h:878
winopt_T::wo_nuw
long wo_nuw
Definition: buffer_defs.h:208
frame_S::fr_width
int fr_width
Definition: buffer_defs.h:994
synblock_T::b_syn_sync_id
int16_t b_syn_sync_id
Definition: buffer_defs.h:442
file_buffer::b_namedm
fmark_T b_namedm[NMARKS]
Definition: buffer_defs.h:599
argentry::ae_fnum
int ae_fnum
Definition: buffer_defs.h:309
window_S::w_onebuf_opt
winopt_T w_onebuf_opt
Definition: buffer_defs.h:1408
window_S::w_curswant
colnr_T w_curswant
Definition: buffer_defs.h:1198
dict_T
Definition: coverity-model.c:40
file_buffer::flush_count
int flush_count
Definition: buffer_defs.h:904
winopt_T::wo_wrap
int wo_wrap
Definition: buffer_defs.h:242
w_line
Definition: buffer_defs.h:980
MAXPOSMATCH
#define MAXPOSMATCH
number of positions supported by matchaddpos()
Definition: buffer_defs.h:1034
window_S::@13::tab3
int tab3
third tab character
Definition: buffer_defs.h:1229
stl_hlrec
Definition: buffer_defs.h:371
posmatch::pos
llpos_T pos[MAXPOSMATCH]
array of positions
Definition: buffer_defs.h:1047
synblock_T::b_spell_cluster_id
int b_spell_cluster_id
Definition: buffer_defs.h:437
diffblock_S::df_count
linenr_T df_count[DB_COUNT]
Definition: buffer_defs.h:932
diffblock_S::df_next
diff_T * df_next
Definition: buffer_defs.h:930
wininfo_S::wi_fpos
pos_T wi_fpos
Definition: buffer_defs.h:283
file_buffer::b_start_fenc
char_u * b_start_fenc
Definition: buffer_defs.h:830
winopt_T::wo_scb_save
int wo_scb_save
Definition: buffer_defs.h:240
window_S::w_upd_rows
int w_upd_rows
Definition: buffer_defs.h:1379
window_S::w_height_outer
int w_height_outer
Definition: buffer_defs.h:1304
wininfo_S::wi_opt
winopt_T wi_opt
Definition: buffer_defs.h:285
file_buffer::b_u_line_ptr
char_u * b_u_line_ptr
Definition: buffer_defs.h:657
file_buffer::b_vars
dict_T * b_vars
b: scope dictionary.
Definition: buffer_defs.h:835
synblock_T::b_syn_sync_maxlines
long b_syn_sync_maxlines
Definition: buffer_defs.h:444
window_S::w_ru_empty
char w_ru_empty
Definition: buffer_defs.h:1392
window_S::w_next
win_T * w_next
link to next window
Definition: buffer_defs.h:1190
terminal.h
file_buffer::b_no_eol_lnum
linenr_T b_no_eol_lnum
Definition: buffer_defs.h:825
file_buffer::b_prompt_callback
Callback b_prompt_callback
Definition: buffer_defs.h:857
file_buffer::b_p_kp
char_u * b_p_kp
'keywordprg'
Definition: buffer_defs.h:733
window_S::w_ru_topfill
int w_ru_topfill
Definition: buffer_defs.h:1391
window_S::w_prev_pcmark
pos_T w_prev_pcmark
Definition: buffer_defs.h:1439
file_buffer::b_p_cinw
char_u * b_p_cinw
'cinwords'
Definition: buffer_defs.h:700
window_S::w_ru_virtcol
colnr_T w_ru_virtcol
Definition: buffer_defs.h:1388
synblock_T::b_sst_check_lnum
linenr_T b_sst_check_lnum
Definition: buffer_defs.h:471
file_buffer::deleted_bytes2
size_t deleted_bytes2
Definition: buffer_defs.h:899
llpos_T
Same as lpos_T, but with additional field len.
Definition: buffer_defs.h:1037
file_buffer::b_ind_unclosed_whiteok
int b_ind_unclosed_whiteok
Definition: buffer_defs.h:809
file_buffer::deleted_codeunits
size_t deleted_codeunits
Definition: buffer_defs.h:901
VimMenu::dname
char * dname
Displayed Name ("name" without '&')
Definition: buffer_defs.h:1155
window_S::w_old_botfill
bool w_old_botfill
Definition: buffer_defs.h:1268
HLF_COUNT
@ HLF_COUNT
Definition: highlight_defs.h:114
file_buffer::b_p_ma
int b_p_ma
'modifiable'
Definition: buffer_defs.h:739
winopt_T
Definition: buffer_defs.h:157
FloatConfig
Definition: buffer_defs.h:1097
fs_defs.h
frame_S::fr_newheight
int fr_newheight
Definition: buffer_defs.h:997
aentry_T
struct argentry aentry_T
winopt_T::wo_scl
char_u * wo_scl
Definition: buffer_defs.h:254
memline
Definition: memline_defs.h:43
kFloatRelativeWindow
@ kFloatRelativeWindow
Definition: buffer_defs.h:1085
synblock_T::b_keywtab_ic
hashtab_T b_keywtab_ic
Definition: buffer_defs.h:429
window_S::w_p_so
long w_p_so
Definition: buffer_defs.h:1418
linenr_T
long linenr_T
Line number type.
Definition: pos.h:5
window_S::w_skipcol
colnr_T w_skipcol
Definition: buffer_defs.h:1272
file_buffer::b_p_efm
char_u * b_p_efm
'errorformat' local value
Definition: buffer_defs.h:770
NMARKS
#define NMARKS
Maximum possible number of letter marks.
Definition: mark_defs.h:17
stl_item::type
enum stl_item::@11 type
file_buffer::b_ind_scopedecl_code
int b_ind_scopedecl_code
Definition: buffer_defs.h:815
file_buffer::b_u_seq_last
long b_u_seq_last
Definition: buffer_defs.h:648
window_S::w_foldinvalid
bool w_foldinvalid
Definition: buffer_defs.h:1368
match_T::has_cursor
bool has_cursor
Definition: buffer_defs.h:1029
synblock_T::b_syn_linecont_prog
regprog_T * b_syn_linecont_prog
Definition: buffer_defs.h:447
file_buffer::b_s
synblock_T b_s
Definition: buffer_defs.h:862
save_redo_T::sr_redobuff
buffheader_T sr_redobuff
Definition: buffer_defs.h:148
file_buffer::b_p_gp
char_u * b_p_gp
'grepprg' local value
Definition: buffer_defs.h:768
window_S::w_jumplist
xfmark_T w_jumplist[JUMPLISTSIZE]
Definition: buffer_defs.h:1444
file_buffer::b_ind_case
int b_ind_case
Definition: buffer_defs.h:795
VimMenu
Definition: buffer_defs.h:1151
MENU_INDEX_TIP
@ MENU_INDEX_TIP
Definition: buffer_defs.h:1145
window_S::w_old_cursor_fcol
colnr_T w_old_cursor_fcol
first column for block visual part
Definition: buffer_defs.h:1212
file_buffer::b_ind_no_brace
int b_ind_no_brace
Definition: buffer_defs.h:789
stl_item::Normal
@ Normal
Definition: buffer_defs.h:388
window_S::w_next_match_id
int w_next_match_id
Definition: buffer_defs.h:1451
window_S::w_floating
bool w_floating
whether the window is floating
Definition: buffer_defs.h:1466
file_buffer::b_p_imsearch
long b_p_imsearch
Definition: buffer_defs.h:665
FloatConfig::shadow
bool shadow
Definition: buffer_defs.h:1109
file_buffer::b_ind_in_comment
int b_ind_in_comment
Definition: buffer_defs.h:801
file_buffer::b_ro_locked
int b_ro_locked
Definition: buffer_defs.h:537
winopt_T::wo_winbl
long wo_winbl
Definition: buffer_defs.h:262
file_buffer::b_tc_flags
unsigned b_tc_flags
flags for 'tagcase'
Definition: buffer_defs.h:776
file_buffer::b_ind_func_type
int b_ind_func_type
Definition: buffer_defs.h:799
window_S::w_old_topfill
int w_old_topfill
Definition: buffer_defs.h:1265
file_buffer::b_p_qe
char_u * b_p_qe
'quoteescape'
Definition: buffer_defs.h:742
synblock_T::b_p_spl
char_u * b_p_spl
Definition: buffer_defs.h:481
arglist::al_refcount
int al_refcount
Definition: buffer_defs.h:298
bufref_T::br_buf_free_count
int br_buf_free_count
Definition: buffer_defs.h:16
file_buffer::b_p_ofu
char_u * b_p_ofu
'omnifunc'
Definition: buffer_defs.h:709
window_S::@13::trail
int trail
Definition: buffer_defs.h:1231
file_buffer::b_p_cink
char_u * b_p_cink
'cinkeys'
Definition: buffer_defs.h:699
file_buffer::b_mod_xlines
long b_mod_xlines
Definition: buffer_defs.h:583
window_S::@13::conceal
int conceal
Definition: buffer_defs.h:1233
file_buffer::@12::max
int max
Definition: buffer_defs.h:871
terminal
Definition: terminal.c:103
tasave_T::old_char
int old_char
Definition: buffer_defs.h:340
w_line::wl_lnum
linenr_T wl_lnum
Definition: buffer_defs.h:981
winopt_T::wo_wrap_save
int wo_wrap_save
Definition: buffer_defs.h:244
window_S::w_winvar
ScopeDictDictItem w_winvar
Variable for "w:" dictionary.
Definition: buffer_defs.h:1430
window_S::w_wcol
int w_wcol
Definition: buffer_defs.h:1344
posmatch::toplnum
linenr_T toplnum
top buffer line
Definition: buffer_defs.h:1049
pos.h
window_S::w_last_cursorline
linenr_T w_last_cursorline
where last 'cursorline' was drawn
Definition: buffer_defs.h:1206
save_redo_T::sr_old_redobuff
buffheader_T sr_old_redobuff
Definition: buffer_defs.h:149
synblock_T::b_syn_topgrp
int b_syn_topgrp
Definition: buffer_defs.h:450
file_buffer::b_mod_bot
linenr_T b_mod_bot
Definition: buffer_defs.h:581
winopt_T::wo_lbr
int wo_lbr
Definition: buffer_defs.h:196
file_buffer::b_p_wm
long b_p_wm
'wrapmargin'
Definition: buffer_defs.h:757
winopt_T::wo_fdi
char_u * wo_fdi
Definition: buffer_defs.h:175
window_S::w_nrwidth_width
int w_nrwidth_width
Definition: buffer_defs.h:1480
window_S::w_empty_rows
int w_empty_rows
Definition: buffer_defs.h:1348
frame_S::fr_parent
frame_T * fr_parent
Definition: buffer_defs.h:998
window_S::w_prev_fraction_row
int w_prev_fraction_row
Definition: buffer_defs.h:1476
VimMenu::next
vimmenu_T * next
Next item in menu.
Definition: buffer_defs.h:1167
window_S::@14::fold
int fold
Definition: buffer_defs.h:1247
window_S::w_botline
linenr_T w_botline
Definition: buffer_defs.h:1346
synblock_T::b_syn_linecont_pat
char_u * b_syn_linecont_pat
Definition: buffer_defs.h:446
file_buffer::kvec_t
kvec_t(uint64_t) update_channels