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