mirror of
https://github.com/neovim/neovim.git
synced 2026-08-04 06:38:44 +00:00
This variable isn't stateful, and should be passed around instead. Helped-By: Scott Prager <splinterofchaos@gmail.com> Helped-By: Michael Reed <m.reed@mykolab.com>
69 lines
3.0 KiB
C
69 lines
3.0 KiB
C
#ifndef NVIM_OPS_H
|
|
#define NVIM_OPS_H
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "nvim/types.h"
|
|
|
|
typedef int (*Indenter)(void);
|
|
|
|
/* flags for do_put() */
|
|
#define PUT_FIXINDENT 1 /* make indent look nice */
|
|
#define PUT_CURSEND 2 /* leave cursor after end of new text */
|
|
#define PUT_CURSLINE 4 /* leave cursor on last line of new text */
|
|
#define PUT_LINE 8 /* put register as lines */
|
|
#define PUT_LINE_SPLIT 16 /* split line for linewise register */
|
|
#define PUT_LINE_FORWARD 32 /* put linewise register below Visual sel. */
|
|
|
|
/*
|
|
* Operator IDs; The order must correspond to opchars[] in ops.c!
|
|
*/
|
|
#define OP_NOP 0 /* no pending operation */
|
|
#define OP_DELETE 1 /* "d" delete operator */
|
|
#define OP_YANK 2 /* "y" yank operator */
|
|
#define OP_CHANGE 3 /* "c" change operator */
|
|
#define OP_LSHIFT 4 /* "<" left shift operator */
|
|
#define OP_RSHIFT 5 /* ">" right shift operator */
|
|
#define OP_FILTER 6 /* "!" filter operator */
|
|
#define OP_TILDE 7 /* "g~" switch case operator */
|
|
#define OP_INDENT 8 /* "=" indent operator */
|
|
#define OP_FORMAT 9 /* "gq" format operator */
|
|
#define OP_COLON 10 /* ":" colon operator */
|
|
#define OP_UPPER 11 /* "gU" make upper case operator */
|
|
#define OP_LOWER 12 /* "gu" make lower case operator */
|
|
#define OP_JOIN 13 /* "J" join operator, only for Visual mode */
|
|
#define OP_JOIN_NS 14 /* "gJ" join operator, only for Visual mode */
|
|
#define OP_ROT13 15 /* "g?" rot-13 encoding */
|
|
#define OP_REPLACE 16 /* "r" replace chars, only for Visual mode */
|
|
#define OP_INSERT 17 /* "I" Insert column, only for Visual mode */
|
|
#define OP_APPEND 18 /* "A" Append column, only for Visual mode */
|
|
#define OP_FOLD 19 /* "zf" define a fold */
|
|
#define OP_FOLDOPEN 20 /* "zo" open folds */
|
|
#define OP_FOLDOPENREC 21 /* "zO" open folds recursively */
|
|
#define OP_FOLDCLOSE 22 /* "zc" close folds */
|
|
#define OP_FOLDCLOSEREC 23 /* "zC" close folds recursively */
|
|
#define OP_FOLDDEL 24 /* "zd" delete folds */
|
|
#define OP_FOLDDELREC 25 /* "zD" delete folds recursively */
|
|
#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.
|
|
kGRegExprSrc = 2, ///< Return expression itself for "=" register.
|
|
kGRegList = 4 ///< Return list.
|
|
};
|
|
|
|
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
|
# include "ops.h.generated.h"
|
|
#endif
|
|
#endif // NVIM_OPS_H
|