vim-patch:8.1.2057: the screen.c file is much too big

Problem:    The screen.c file is much too big.
Solution:   Split it in three parts. (Yegappan Lakshmanan, closes vim/vim#4943)
7528d1f6b5

This is an approximation vim-patch 8.1.2057. Applying the patch directly
isn't feasible since our version of screen.c has diverged too much,
however we still introduce drawscreen.c and drawline.c:
- screen.c is now a much smaller file used for low level screen functions
- drawline.c contains everything needed for win_line()
- drawscreen.c contains everything needed for update_screen()

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
This commit is contained in:
Lewis Russell
2022-08-16 12:27:07 +01:00
parent a5ed89c972
commit 51063a90df
57 changed files with 5308 additions and 5258 deletions

24
src/nvim/drawline.h Normal file
View File

@@ -0,0 +1,24 @@
#ifndef NVIM_DRAWLINE_H
#define NVIM_DRAWLINE_H
#include "nvim/decoration_provider.h"
#include "nvim/fold.h"
#include "nvim/screen.h"
// Maximum columns for terminal highlight attributes
#define TERM_ATTRS_MAX 1024
typedef struct {
NS ns_id;
uint64_t mark_id;
int win_row;
int win_col;
} WinExtmark;
EXTERN kvec_t(WinExtmark) win_extmark_arr INIT(= KV_INITIAL_VALUE);
EXTERN bool conceal_cursor_used INIT(= false);
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "drawline.h.generated.h"
#endif
#endif // NVIM_DRAWLINE_H