diff options
Diffstat (limited to 'src/nvim/mark_defs.h')
-rw-r--r-- | src/nvim/mark_defs.h | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/src/nvim/mark_defs.h b/src/nvim/mark_defs.h index 67392234d3..720b2475ed 100644 --- a/src/nvim/mark_defs.h +++ b/src/nvim/mark_defs.h @@ -2,25 +2,47 @@ #define NVIM_MARK_DEFS_H #include "nvim/pos.h" +#include "nvim/os/time.h" +#include "nvim/eval_defs.h" /* * marks: positions in a file * (a normal mark is a lnum/col pair, the same as a file position) */ -#define NMARKS ('z' - 'a' + 1) /* max. # of named marks */ -#define JUMPLISTSIZE 100 /* max. # of marks in jump list */ -#define TAGSTACKSIZE 20 /* max. # of tags in tag stack */ +/// Number of possible numbered global marks +#define EXTRA_MARKS ('9' - '0' + 1) +/// Maximum possible number of letter marks +#define NMARKS ('z' - 'a' + 1) + +/// Total possible number of global marks +#define NGLOBALMARKS (NMARKS + EXTRA_MARKS) + +/// Total possible number of local marks +/// +/// That are uppercase marks plus '"', '^' and '.'. There are other local marks, +/// but they are not saved in ShaDa files. +#define NLOCALMARKS (NMARKS + 3) + +/// Maximum number of marks in jump list +#define JUMPLISTSIZE 100 + +/// Maximum number of tags in tag stack +#define TAGSTACKSIZE 20 + +/// Structure defining single local mark typedef struct filemark { - pos_T mark; /* cursor position */ - int fnum; /* file number */ + pos_T mark; ///< Cursor position. + int fnum; ///< File number. + Timestamp timestamp; ///< Time when this mark was last set. + dict_T *additional_data; ///< Additional data from ShaDa file. } fmark_T; -/* Xtended file mark: also has a file name */ +/// Structure defining extended mark (mark with file name attached) typedef struct xfilemark { - fmark_T fmark; - char_u *fname; /* file name, used when fnum == 0 */ + fmark_T fmark; ///< Actual mark. + char_u *fname; ///< File name, used when fnum == 0. } xfmark_T; #endif // NVIM_MARK_DEFS_H |