diff options
Diffstat (limited to 'src/nvim/buffer_defs.h')
-rw-r--r-- | src/nvim/buffer_defs.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h index 3b12925119..de1b0985bb 100644 --- a/src/nvim/buffer_defs.h +++ b/src/nvim/buffer_defs.h @@ -880,6 +880,28 @@ typedef struct { proftime_T tm; /* for a time limit */ } match_T; +/// number of positions supported by matchaddpos() +#define MAXPOSMATCH 8 + +/// Same as lpos_T, but with additional field len. +typedef struct +{ + linenr_T lnum; ///< line number + colnr_T col; ///< column number + int len; ///< length: 0 - to the end of line +} llpos_T; + +/// posmatch_T provides an array for storing match items for matchaddpos() +/// function. +typedef struct posmatch posmatch_T; +struct posmatch +{ + llpos_T pos[MAXPOSMATCH]; ///< array of positions + int cur; ///< internal position counter + linenr_T toplnum; ///< top buffer line + linenr_T botlnum; ///< bottom buffer line +}; + /* * matchitem_T provides a linked list for storing match items for ":match" and * the match functions. @@ -892,6 +914,7 @@ struct matchitem { char_u *pattern; /* pattern to highlight */ int hlg_id; /* highlight group ID */ regmmatch_T match; /* regexp program for pattern */ + posmatch_T pos; // position matches match_T hl; /* struct for doing the actual highlighting */ }; |