diff options
Diffstat (limited to 'src/nvim/statusline_defs.h')
-rw-r--r-- | src/nvim/statusline_defs.h | 59 |
1 files changed, 55 insertions, 4 deletions
diff --git a/src/nvim/statusline_defs.h b/src/nvim/statusline_defs.h index eac9dfd690..c1a54f4f54 100644 --- a/src/nvim/statusline_defs.h +++ b/src/nvim/statusline_defs.h @@ -1,9 +1,12 @@ -#ifndef NVIM_STATUSLINE_DEFS_H -#define NVIM_STATUSLINE_DEFS_H +#pragma once +#include <stdbool.h> #include <stddef.h> -#include "nvim/macros.h" +#include "nvim/fold_defs.h" +#include "nvim/macros_defs.h" +#include "nvim/os/os_defs.h" +#include "nvim/sign_defs.h" /// Status line click definition typedef struct { @@ -23,4 +26,52 @@ typedef struct { const char *start; ///< Location where region starts. } StlClickRecord; -#endif // NVIM_STATUSLINE_DEFS_H +/// Used for highlighting in the status line. +typedef struct stl_hlrec stl_hlrec_t; +struct stl_hlrec { + char *start; + int userhl; // 0: no HL, 1-9: User HL, < 0 for syn ID +}; + +/// Used for building the status line. +typedef struct stl_item stl_item_t; +struct stl_item { + // Where the item starts in the status line output buffer + char *start; + // Function to run for ClickFunc items. + char *cmd; + // The minimum width of the item + int minwid; + // The maximum width of the item + int maxwid; + enum { + Normal, + Empty, + Group, + Separate, + Highlight, + TabPage, + ClickFunc, + Trunc, + } type; +}; + +/// Struct to hold info for 'statuscolumn' +typedef struct statuscol statuscol_T; + +struct statuscol { + int width; ///< width of the status column + int cur_attr; ///< current attributes in text + int num_attr; ///< default highlight attr + int sign_cul_id; ///< cursorline sign highlight id + int truncate; ///< truncated width + bool draw; ///< whether to draw the statuscolumn + bool use_cul; ///< whether to use cursorline attrs + char text[MAXPATHL]; ///< text in status column + char *textp; ///< current position in text + char *text_end; ///< end of text (the NUL byte) + stl_hlrec_t *hlrec; ///< highlight groups + stl_hlrec_t *hlrecp; ///< current highlight group + foldinfo_T foldinfo; ///< fold information + SignTextAttrs *sattrs; ///< sign attributes +}; |