mirror of
https://github.com/neovim/neovim.git
synced 2025-09-12 06:18:16 +00:00
viminfo: First version of ShaDa file dumping
What works: 1. ShaDa file dumping: header, registers, jump list, history, search patterns, substitute strings, variables. 2. ShaDa file reading: registers, global marks, variables. Most was not tested. TODO: 1. Merging. 2. Reading history, local marks, jump and buffer lists. 3. Documentation update. 4. Converting some data from &encoding. 5. Safer variant of dumping viminfo (dump to temporary file then rename). 6. Removing old viminfo code (currently masked with `#if 0` in a ShaDa file for reference).
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "nvim/types.h"
|
||||
#include "nvim/api/private/defs.h"
|
||||
#include "nvim/os/time.h"
|
||||
|
||||
typedef int (*Indenter)(void);
|
||||
|
||||
@@ -47,14 +49,6 @@ typedef int (*Indenter)(void);
|
||||
#define OP_FORMAT2 26 /* "gw" format operator, keeps cursor pos */
|
||||
#define OP_FUNCTION 27 /* "g@" call 'operatorfunc' */
|
||||
|
||||
/// Contents of a yank (read-write) register
|
||||
typedef struct yankreg {
|
||||
char_u **y_array; ///< pointer to array of line pointers
|
||||
linenr_T y_size; ///< number of lines in y_array
|
||||
char_u y_type; ///< MLINE, MCHAR or MBLOCK
|
||||
colnr_T y_width; ///< only set if y_type == MBLOCK
|
||||
} yankreg_T;
|
||||
|
||||
/// Flags for get_reg_contents().
|
||||
enum GRegFlags {
|
||||
kGRegNoExpr = 1, ///< Do not allow expression register.
|
||||
@@ -62,6 +56,16 @@ enum GRegFlags {
|
||||
kGRegList = 4 ///< Return list.
|
||||
};
|
||||
|
||||
/// Definition of one register
|
||||
typedef struct yankreg {
|
||||
char_u **y_array; ///< Pointer to an array of line pointers.
|
||||
linenr_T y_size; ///< Number of lines in y_array.
|
||||
char_u y_type; ///< Register type: MLINE, MCHAR or MBLOCK.
|
||||
colnr_T y_width; ///< Register width (only valid for y_type == MBLOCK).
|
||||
Timestamp timestamp; ///< Time when register was last modified.
|
||||
Dictionary *additional_data; ///< Additional data from ShaDa file.
|
||||
} yankreg_T;
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "ops.h.generated.h"
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user