mirror of
https://github.com/neovim/neovim.git
synced 2025-10-14 13:56:05 +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:
@@ -1,6 +1,9 @@
|
||||
#ifndef NVIM_SEARCH_H
|
||||
#define NVIM_SEARCH_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/* Values for the find_pattern_in_path() function args 'type' and 'action': */
|
||||
#define FIND_ANY 1
|
||||
#define FIND_DEFINE 2
|
||||
@@ -39,6 +42,27 @@
|
||||
#define RE_BOTH 2 /* save pat in both patterns */
|
||||
#define RE_LAST 2 /* use last used pattern if "pat" is NULL */
|
||||
|
||||
/// Structure containing offset definition for the last search pattern
|
||||
///
|
||||
/// @note Only offset for the last search pattern is used, not for the last
|
||||
/// substitute pattern.
|
||||
typedef struct soffset {
|
||||
char dir; ///< Search direction: forward ('/') or backward ('?')
|
||||
bool line; ///< True if search has line offset.
|
||||
bool end; ///< True if search sets cursor at the end.
|
||||
int64_t off; ///< Actual offset value.
|
||||
} SearchOffset;
|
||||
|
||||
/// Structure containing last search pattern and its attributes.
|
||||
typedef struct spat {
|
||||
char_u *pat; ///< The pattern (in allocated memory) or NULL.
|
||||
bool magic; ///< Magicness of the pattern.
|
||||
bool no_scs; ///< No smartcase for this pattern.
|
||||
Timestamp timestamp; ///< Time of the last change.
|
||||
SearchOffset off; ///< Pattern offset.
|
||||
Dictionary *additional_data; ///< Additional data from ShaDa file.
|
||||
} SearchPattern;
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "search.h.generated.h"
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user