aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ops.h
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2023-01-25 18:46:52 +0000
committerJosh Rahm <joshuarahm@gmail.com>2023-01-25 18:46:52 +0000
commitd6ccb60a1c75f49255940009abd3bb740bb461af (patch)
tree88f3dfe9c58e0475bbc69eb085565919a9e4ea8e /src/nvim/ops.h
parent9243becbedbb6a1592208051f8fa2b090dcc5e7d (diff)
parent142d9041391780ac15b89886a54015fdc5c73995 (diff)
downloadrneovim-d6ccb60a1c75f49255940009abd3bb740bb461af.tar.gz
rneovim-d6ccb60a1c75f49255940009abd3bb740bb461af.tar.bz2
rneovim-d6ccb60a1c75f49255940009abd3bb740bb461af.zip
Merge branch 'userreg' into 20230125_mix
Diffstat (limited to 'src/nvim/ops.h')
-rw-r--r--src/nvim/ops.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/nvim/ops.h b/src/nvim/ops.h
index 75ea1853a0..bffb692d00 100644
--- a/src/nvim/ops.h
+++ b/src/nvim/ops.h
@@ -25,6 +25,7 @@ typedef int (*Indenter)(void);
#define PUT_LINE_SPLIT 16 // split line for linewise register
#define PUT_LINE_FORWARD 32 // put linewise register below Visual sel.
#define PUT_BLOCK_INNER 64 // in block mode, do not add trailing spaces
+#define ITER_REGISTER_NULL 0
// Registers:
// 0 = register for latest (unnamed) yank
@@ -38,7 +39,8 @@ typedef int (*Indenter)(void);
// The following registers should not be saved in ShaDa file:
#define STAR_REGISTER 37
#define PLUS_REGISTER 38
-#define NUM_REGISTERS 39
+#define USER_REGISTERS_START 39
+#define NUM_REGISTERS USER_REGISTERS_START
// Operator IDs; The order must correspond to opchars[] in ops.c!
#define OP_NOP 0 // no pending operation
@@ -97,6 +99,8 @@ typedef enum {
YREG_YANK,
YREG_PUT,
} yreg_mode_t;
+/// Returns a reference to a user-defined register.
+int get_userreg(const int regname);
/// Convert register name into register index
///
@@ -119,10 +123,15 @@ static inline int op_reg_index(const int regname)
} else if (regname == '+') {
return PLUS_REGISTER;
} else {
- return -1;
+ return get_userreg(regname);
}
}
+struct yank_registers;
+typedef struct yank_registers yank_registers_T;
+
+typedef size_t iter_register_T;
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "ops.h.generated.h"
#endif