neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 64b53b71ba5d804b2c8cf186be68931b2621f53c
parent 8868ecd401f6a45d005fe68c57fbba79d32af192
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Wed, 29 Nov 2023 12:10:42 +0800

refactor(IWYU): create normal_defs.h (#26293)


Diffstat:
MMakefile | 1-
Msrc/clint.py | 1-
Msrc/nvim/api/vim.c | 1-
Msrc/nvim/bufwrite.c | 1-
Msrc/nvim/drawscreen.c | 1-
Msrc/nvim/ex_cmds_defs.h | 2+-
Msrc/nvim/mouse.h | 9++++-----
Msrc/nvim/normal.h | 81+++++++++----------------------------------------------------------------------
Asrc/nvim/normal_defs.h | 69+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/nvim/option.h | 2+-
Msrc/nvim/os/shell.c | 1-
Msrc/nvim/search.h | 5+++--
Msrc/nvim/spell.c | 1-
Msrc/nvim/spellsuggest.c | 1-
Msrc/nvim/tag.c | 1-
Msrc/nvim/textformat.c | 1-
Msrc/nvim/textformat.h | 2+-
Msrc/nvim/textobject.c | 1-
Msrc/nvim/textobject.h | 4++--
Msrc/nvim/window.c | 1-
20 files changed, 90 insertions(+), 96 deletions(-)

diff --git a/Makefile b/Makefile @@ -224,7 +224,6 @@ iwyu: build/.ran-cmake |src/nvim/search.h\ |src/nvim/spell.h\ |src/nvim/syntax.h\ - |src/nvim/textformat.h\ |src/nvim/textobject.h\ |src/nvim/tui/input.h\ |src/nvim/tui/tui.h\ diff --git a/src/clint.py b/src/clint.py @@ -979,7 +979,6 @@ def CheckIncludes(filename, lines, error): "src/nvim/search.h", "src/nvim/spell.h", "src/nvim/syntax.h", - "src/nvim/textformat.h", "src/nvim/textobject.h", "src/nvim/tui/input.h", "src/nvim/tui/tui.h", diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c @@ -55,7 +55,6 @@ #include "nvim/option_vars.h" #include "nvim/optionstr.h" #include "nvim/os/input.h" -#include "nvim/os/os_defs.h" #include "nvim/os/process.h" #include "nvim/popupmenu.h" #include "nvim/pos_defs.h" diff --git a/src/nvim/bufwrite.c b/src/nvim/bufwrite.c @@ -38,7 +38,6 @@ #include "nvim/option_vars.h" #include "nvim/os/fs.h" #include "nvim/os/input.h" -#include "nvim/os/os.h" #include "nvim/path.h" #include "nvim/pos_defs.h" #include "nvim/sha256.h" diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c @@ -92,7 +92,6 @@ #include "nvim/normal.h" #include "nvim/option.h" #include "nvim/option_vars.h" -#include "nvim/os/os_defs.h" #include "nvim/plines.h" #include "nvim/popupmenu.h" #include "nvim/pos_defs.h" diff --git a/src/nvim/ex_cmds_defs.h b/src/nvim/ex_cmds_defs.h @@ -5,7 +5,7 @@ #include "nvim/eval/typval_defs.h" #include "nvim/ex_eval_defs.h" -#include "nvim/normal.h" +#include "nvim/normal_defs.h" #include "nvim/pos_defs.h" #include "nvim/regexp_defs.h" diff --git a/src/nvim/mouse.h b/src/nvim/mouse.h @@ -1,11 +1,10 @@ #pragma once -#include <stdbool.h> - -#include "nvim/buffer_defs.h" -#include "nvim/normal.h" +#include "nvim/buffer_defs.h" // IWYU pragma: keep +#include "nvim/eval/typval_defs.h" // IWYU pragma: keep +#include "nvim/normal_defs.h" // IWYU pragma: keep +#include "nvim/types_defs.h" // IWYU pragma: keep #include "nvim/vim_defs.h" -#include "nvim/window.h" /// jump_to_mouse() returns one of first five these values, possibly with /// some of the other five added. diff --git a/src/nvim/normal.h b/src/nvim/normal.h @@ -1,81 +1,18 @@ #pragma once -#include <stdbool.h> - #include "nvim/buffer_defs.h" // IWYU pragma: keep #include "nvim/macros_defs.h" -#include "nvim/pos_defs.h" - -// Values for find_ident_under_cursor() -#define FIND_IDENT 1 // find identifier (word) -#define FIND_STRING 2 // find any string (WORD) -#define FIND_EVAL 4 // include "->", "[]" and "." - -/// Motion types, used for operators and for yank/delete registers. -/// -/// The three valid numerical values must not be changed, as they -/// are used in external communication and serialization. -typedef enum { - kMTCharWise = 0, ///< character-wise movement/register - kMTLineWise = 1, ///< line-wise movement/register - kMTBlockWise = 2, ///< block-wise movement/register - kMTUnknown = -1, ///< Unknown or invalid motion type -} MotionType; - -// Arguments for operators. -typedef struct oparg_S { - int op_type; // current pending operator type - int regname; // register to use for the operator - MotionType motion_type; // type of the current cursor motion - int motion_force; // force motion type: 'v', 'V' or CTRL-V - bool use_reg_one; // true if delete uses reg 1 even when not - // linewise - bool inclusive; // true if char motion is inclusive (only - // valid when motion_type is kMTCharWise) - bool end_adjusted; // backuped b_op_end one char (only used by - // do_format()) - pos_T start; // start of the operator - pos_T end; // end of the operator - pos_T cursor_start; // cursor position before motion for "gw" - - linenr_T line_count; // number of lines from op_start to op_end - // (inclusive) - bool empty; // op_start and op_end the same (only used by - // op_change()) - bool is_VIsual; // operator on Visual area - colnr_T start_vcol; // start col for block mode operator - colnr_T end_vcol; // end col for block mode operator - int prev_opcount; // ca.opcount saved for K_EVENT - int prev_count0; // ca.count0 saved for K_EVENT - bool excl_tr_ws; // exclude trailing whitespace for yank of a - // block -} oparg_T; - -// Arguments for Normal mode commands. -typedef struct cmdarg_S { - oparg_T *oap; // Operator arguments - int prechar; // prefix character (optional, always 'g') - int cmdchar; // command character - int nchar; // next command character (optional) - int ncharC1; // first composing character (optional) - int ncharC2; // second composing character (optional) - int extra_char; // yet another character (optional) - int opcount; // count before an operator - int count0; // count before command, default 0 - int count1; // count before command, default 1 - int arg; // extra argument from nv_cmds[] - int retval; // return: CA_* values - char *searchbuf; // return: pointer to search pattern or NULL -} cmdarg_T; +#include "nvim/normal_defs.h" // IWYU pragma: export +#include "nvim/pos_defs.h" // IWYU pragma: keep -// values for retval: -#define CA_COMMAND_BUSY 1 // skip restarting edit() once -#define CA_NO_ADJ_OP_END 2 // don't adjust operator end +/// Values for find_ident_under_cursor() +enum { + FIND_IDENT = 1, ///< find identifier (word) + FIND_STRING = 2, ///< find any string (WORD) + FIND_EVAL = 4, ///< include "->", "[]" and "." +}; -// columns needed by shown command -#define SHOWCMD_COLS 10 -// 'showcmd' buffer shared between normal.c and statusline.c -#define SHOWCMD_BUFLEN (SHOWCMD_COLS + 1 + 30) +/// 'showcmd' buffer shared between normal.c and statusline.c EXTERN char showcmd_buf[SHOWCMD_BUFLEN]; #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/normal_defs.h b/src/nvim/normal_defs.h @@ -0,0 +1,69 @@ +#pragma once + +#include <stdbool.h> + +#include "nvim/pos_defs.h" + +/// Motion types, used for operators and for yank/delete registers. +/// +/// The three valid numerical values must not be changed, as they +/// are used in external communication and serialization. +typedef enum { + kMTCharWise = 0, ///< character-wise movement/register + kMTLineWise = 1, ///< line-wise movement/register + kMTBlockWise = 2, ///< block-wise movement/register + kMTUnknown = -1, ///< Unknown or invalid motion type +} MotionType; + +/// Arguments for operators. +typedef struct oparg_S { + int op_type; ///< current pending operator type + int regname; ///< register to use for the operator + MotionType motion_type; ///< type of the current cursor motion + int motion_force; ///< force motion type: 'v', 'V' or CTRL-V + bool use_reg_one; ///< true if delete uses reg 1 even when not + ///< linewise + bool inclusive; ///< true if char motion is inclusive (only + ///< valid when motion_type is kMTCharWise) + bool end_adjusted; ///< backuped b_op_end one char (only used by + ///< do_format()) + pos_T start; ///< start of the operator + pos_T end; ///< end of the operator + pos_T cursor_start; ///< cursor position before motion for "gw" + + linenr_T line_count; ///< number of lines from op_start to op_end (inclusive) + bool empty; ///< op_start and op_end the same (only used by op_change()) + bool is_VIsual; ///< operator on Visual area + colnr_T start_vcol; ///< start col for block mode operator + colnr_T end_vcol; ///< end col for block mode operator + int prev_opcount; ///< ca.opcount saved for K_EVENT + int prev_count0; ///< ca.count0 saved for K_EVENT + bool excl_tr_ws; ///< exclude trailing whitespace for yank of a block +} oparg_T; + +/// Arguments for Normal mode commands. +typedef struct cmdarg_S { + oparg_T *oap; ///< Operator arguments + int prechar; ///< prefix character (optional, always 'g') + int cmdchar; ///< command character + int nchar; ///< next command character (optional) + int ncharC1; ///< first composing character (optional) + int ncharC2; ///< second composing character (optional) + int extra_char; ///< yet another character (optional) + int opcount; ///< count before an operator + int count0; ///< count before command, default 0 + int count1; ///< count before command, default 1 + int arg; ///< extra argument from nv_cmds[] + int retval; ///< return: CA_* values + char *searchbuf; ///< return: pointer to search pattern or NULL +} cmdarg_T; + +/// values for retval: +enum { + CA_COMMAND_BUSY = 1, ///< skip restarting edit() once + CA_NO_ADJ_OP_END = 2, ///< don't adjust operator end +}; + +/// columns needed by shown command +enum { SHOWCMD_COLS = 10, }; +enum { SHOWCMD_BUFLEN = SHOWCMD_COLS + 1 + 30, }; diff --git a/src/nvim/option.h b/src/nvim/option.h @@ -1,6 +1,7 @@ #pragma once #include <stdint.h> +#include <stdio.h> // IWYU pragma: keep #include "nvim/api/private/defs.h" // IWYU pragma: keep #include "nvim/api/private/helpers.h" @@ -8,7 +9,6 @@ #include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds_defs.h" // IWYU pragma: keep #include "nvim/option_defs.h" // IWYU pragma: export -#include "nvim/search.h" #include "nvim/types_defs.h" // IWYU pragma: keep /// The options that are local to a window or buffer have "indir" set to one of diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c @@ -31,7 +31,6 @@ #include "nvim/message.h" #include "nvim/option_vars.h" #include "nvim/os/fs.h" -#include "nvim/os/os_defs.h" #include "nvim/os/shell.h" #include "nvim/os/signal.h" #include "nvim/os/time.h" diff --git a/src/nvim/search.h b/src/nvim/search.h @@ -5,9 +5,10 @@ #include "nvim/buffer_defs.h" #include "nvim/eval/typval_defs.h" -#include "nvim/normal.h" -#include "nvim/os/time.h" +#include "nvim/normal_defs.h" // IWYU pragma: keep +#include "nvim/os/time_defs.h" #include "nvim/pos_defs.h" +#include "nvim/regexp_defs.h" // IWYU pragma: keep #include "nvim/types_defs.h" #include "nvim/vim_defs.h" diff --git a/src/nvim/spell.c b/src/nvim/spell.c @@ -91,7 +91,6 @@ #include "nvim/option_vars.h" #include "nvim/os/fs.h" #include "nvim/os/input.h" -#include "nvim/os/os_defs.h" #include "nvim/path.h" #include "nvim/pos_defs.h" #include "nvim/regexp.h" diff --git a/src/nvim/spellsuggest.c b/src/nvim/spellsuggest.c @@ -36,7 +36,6 @@ #include "nvim/option_vars.h" #include "nvim/os/fs.h" #include "nvim/os/input.h" -#include "nvim/os/os_defs.h" #include "nvim/pos_defs.h" #include "nvim/profile.h" #include "nvim/spell.h" diff --git a/src/nvim/tag.c b/src/nvim/tag.c @@ -44,7 +44,6 @@ #include "nvim/optionstr.h" #include "nvim/os/fs.h" #include "nvim/os/input.h" -#include "nvim/os/os_defs.h" #include "nvim/os/time.h" #include "nvim/path.h" #include "nvim/pos_defs.h" diff --git a/src/nvim/textformat.c b/src/nvim/textformat.c @@ -26,7 +26,6 @@ #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/move.h" -#include "nvim/normal.h" #include "nvim/ops.h" #include "nvim/option.h" #include "nvim/option_vars.h" diff --git a/src/nvim/textformat.h b/src/nvim/textformat.h @@ -1,6 +1,6 @@ #pragma once -#include "nvim/normal.h" +#include "nvim/normal_defs.h" // IWYU pragma: keep #include "nvim/pos_defs.h" // IWYU pragma: keep #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/textobject.c b/src/nvim/textobject.c @@ -20,7 +20,6 @@ #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/move.h" -#include "nvim/normal.h" #include "nvim/option_vars.h" #include "nvim/pos_defs.h" #include "nvim/search.h" diff --git a/src/nvim/textobject.h b/src/nvim/textobject.h @@ -1,7 +1,7 @@ #pragma once -#include "nvim/normal.h" -#include "nvim/pos_defs.h" +#include "nvim/normal_defs.h" // IWYU pragma: keep +#include "nvim/pos_defs.h" // IWYU pragma: keep #include "nvim/vim_defs.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/window.c b/src/nvim/window.c @@ -57,7 +57,6 @@ #include "nvim/option_defs.h" #include "nvim/option_vars.h" #include "nvim/os/fs.h" -#include "nvim/os/os_defs.h" #include "nvim/path.h" #include "nvim/plines.h" #include "nvim/pos_defs.h"