From 66360675cf4d091b7460e4a8e1435c13216c1929 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sun, 11 Sep 2022 17:12:44 +0200 Subject: [PATCH] build: allow IWYU to fix includes for all .c files Allow Include What You Use to remove unnecessary includes and only include what is necessary. This helps with reducing compilation times and makes it easier to visualise which dependencies are actually required. Work on https://github.com/neovim/neovim/issues/549, but doesn't close it since this only works fully for .c files and not headers. --- CMakeLists.txt | 14 ++ CMakePresets.json | 15 ++ CONTRIBUTING.md | 10 +- Makefile | 6 + cmake.config/iwyu/gcc.libc.imp | 226 +++++++++++++++++ cmake.config/iwyu/gcc.symbols.imp | 305 +++++++++++++++++++++++ cmake.config/iwyu/mapping.imp | 236 ++++++++++++++++++ src/nvim/api/autocmd.c | 9 + src/nvim/api/buffer.c | 22 +- src/nvim/api/command.c | 21 +- src/nvim/api/deprecated.c | 8 +- src/nvim/api/extmark.c | 13 +- src/nvim/api/extmark.h | 3 + src/nvim/api/options.c | 12 +- src/nvim/api/private/converter.c | 9 +- src/nvim/api/private/dispatch.c | 29 +-- src/nvim/api/private/dispatch.h | 5 + src/nvim/api/private/helpers.c | 18 +- src/nvim/api/private/helpers.h | 6 + src/nvim/api/tabpage.c | 3 +- src/nvim/api/ui.c | 16 +- src/nvim/api/vim.c | 31 +-- src/nvim/api/vimscript.c | 17 +- src/nvim/api/win_config.c | 15 +- src/nvim/api/window.c | 9 +- src/nvim/arabic.c | 5 + src/nvim/arglist.c | 15 +- src/nvim/autocmd.c | 27 +- src/nvim/autocmd.h | 12 + src/nvim/buffer.c | 18 +- src/nvim/buffer.h | 10 +- src/nvim/buffer_defs.h | 47 ++-- src/nvim/buffer_updates.c | 15 +- src/nvim/buffer_updates.h | 4 +- src/nvim/change.c | 23 +- src/nvim/change.h | 4 +- src/nvim/channel.c | 24 +- src/nvim/channel.h | 13 + src/nvim/charset.c | 17 +- src/nvim/charset.h | 2 + src/nvim/cmdexpand.c | 28 ++- src/nvim/cmdhist.c | 18 +- src/nvim/cmdhist.h | 1 + src/nvim/context.c | 14 +- src/nvim/context.h | 2 + src/nvim/cursor.c | 9 +- src/nvim/cursor_shape.c | 10 +- src/nvim/debugger.c | 16 ++ src/nvim/decoration.c | 9 +- src/nvim/decoration.h | 8 + src/nvim/decoration_provider.c | 13 +- src/nvim/decoration_provider.h | 5 + src/nvim/diff.c | 13 + src/nvim/diff.h | 3 + src/nvim/digraph.c | 10 + src/nvim/drawline.c | 23 +- src/nvim/drawline.h | 6 + src/nvim/drawscreen.c | 21 +- src/nvim/drawscreen.h | 3 + src/nvim/edit.c | 19 +- src/nvim/eval.c | 38 ++- src/nvim/eval.h | 13 +- src/nvim/eval/decode.c | 19 +- src/nvim/eval/encode.c | 11 +- src/nvim/eval/encode.h | 5 +- src/nvim/eval/executor.c | 10 +- src/nvim/eval/funcs.c | 57 ++++- src/nvim/eval/funcs.h | 5 + src/nvim/eval/gc.c | 5 +- src/nvim/eval/gc.h | 1 + src/nvim/eval/typval.c | 3 +- src/nvim/eval/typval.h | 5 + src/nvim/eval/userfunc.c | 24 +- src/nvim/eval/userfunc.h | 10 + src/nvim/eval/vars.c | 22 +- src/nvim/eval/vars.h | 2 +- src/nvim/event/libuv_process.c | 6 +- src/nvim/event/libuv_process.h | 1 + src/nvim/event/loop.c | 7 +- src/nvim/event/multiqueue.c | 6 +- src/nvim/event/process.c | 7 +- src/nvim/event/process.h | 9 + src/nvim/event/rstream.c | 9 +- src/nvim/event/signal.c | 1 + src/nvim/event/signal.h | 3 + src/nvim/event/socket.c | 11 +- src/nvim/event/socket.h | 3 + src/nvim/event/stream.c | 4 +- src/nvim/event/stream.h | 3 + src/nvim/event/time.h | 4 + src/nvim/event/wstream.c | 6 +- src/nvim/event/wstream.h | 3 + src/nvim/ex_cmds.c | 28 ++- src/nvim/ex_cmds.h | 1 + src/nvim/ex_cmds2.c | 19 +- src/nvim/ex_cmds_defs.h | 2 +- src/nvim/ex_docmd.c | 41 ++- src/nvim/ex_docmd.h | 3 + src/nvim/ex_eval.c | 11 + src/nvim/ex_eval.h | 2 +- src/nvim/ex_eval_defs.h | 2 +- src/nvim/ex_getln.c | 24 +- src/nvim/ex_getln.h | 6 + src/nvim/ex_session.c | 18 +- src/nvim/extmark.c | 9 +- src/nvim/extmark.h | 7 + src/nvim/file_search.c | 13 +- src/nvim/file_search.h | 6 +- src/nvim/fileio.c | 34 +-- src/nvim/fileio.h | 1 + src/nvim/fold.c | 13 +- src/nvim/fold.h | 1 + src/nvim/garray.c | 9 +- src/nvim/garray.h | 4 +- src/nvim/generators/gen_api_dispatch.lua | 29 +++ src/nvim/generators/gen_eval.lua | 25 ++ src/nvim/generators/gen_ex_cmds.lua | 37 +++ src/nvim/getchar.c | 14 +- src/nvim/grid.c | 10 + src/nvim/grid.h | 3 + src/nvim/hardcopy.c | 12 +- src/nvim/hardcopy.h | 8 +- src/nvim/help.c | 13 + src/nvim/highlight.c | 13 + src/nvim/highlight.h | 1 + src/nvim/highlight_group.c | 26 +- src/nvim/indent.c | 11 +- src/nvim/indent_c.c | 10 +- src/nvim/input.c | 12 +- src/nvim/insexpand.c | 19 +- src/nvim/insexpand.h | 3 + src/nvim/keycodes.c | 11 +- src/nvim/keycodes.h | 4 + src/nvim/linematch.c | 6 + src/nvim/locale.c | 8 +- src/nvim/log.c | 10 +- src/nvim/log.h | 1 + src/nvim/lua/converter.c | 13 +- src/nvim/lua/executor.c | 25 +- src/nvim/lua/executor.h | 4 + src/nvim/lua/spell.c | 14 +- src/nvim/lua/stdlib.c | 37 +-- src/nvim/lua/treesitter.c | 13 +- src/nvim/lua/xdiff.c | 9 +- src/nvim/main.c | 38 +-- src/nvim/main.h | 2 + src/nvim/map.c | 5 +- src/nvim/map.h | 5 + src/nvim/mapping.c | 18 +- src/nvim/mapping.h | 4 + src/nvim/mark.c | 18 +- src/nvim/mark.h | 5 +- src/nvim/marktree.c | 5 + src/nvim/marktree.h | 5 + src/nvim/match.c | 19 +- src/nvim/math.c | 2 +- src/nvim/mbyte.c | 44 +++- src/nvim/mbyte.h | 4 +- src/nvim/memfile.c | 11 +- src/nvim/memline.c | 22 +- src/nvim/memline.h | 4 +- src/nvim/memory.c | 15 +- src/nvim/memory.h | 8 +- src/nvim/menu.c | 17 +- src/nvim/menu.h | 6 +- src/nvim/menu_defs.h | 2 +- src/nvim/message.c | 23 +- src/nvim/mouse.c | 17 +- src/nvim/move.c | 12 +- src/nvim/msgpack_rpc/channel.c | 26 +- src/nvim/msgpack_rpc/channel.h | 2 + src/nvim/msgpack_rpc/helpers.c | 16 +- src/nvim/msgpack_rpc/server.c | 13 +- src/nvim/msgpack_rpc/unpacker.c | 10 +- src/nvim/msgpack_rpc/unpacker.h | 4 + src/nvim/normal.c | 18 +- src/nvim/normal.h | 2 +- src/nvim/ops.c | 17 +- src/nvim/ops.h | 7 +- src/nvim/option.c | 26 +- src/nvim/option.h | 2 +- src/nvim/option_defs.h | 4 +- src/nvim/optionstr.c | 15 +- src/nvim/optionstr.h | 2 +- src/nvim/os/dl.c | 3 +- src/nvim/os/env.c | 13 + src/nvim/os/fileio.c | 13 +- src/nvim/os/fs.c | 20 +- src/nvim/os/fs.h | 4 +- src/nvim/os/input.c | 16 +- src/nvim/os/lang.c | 10 +- src/nvim/os/mem.c | 1 + src/nvim/os/process.c | 24 +- src/nvim/os/pty_process_unix.c | 15 +- src/nvim/os/pty_process_unix.h | 2 + src/nvim/os/shell.c | 21 +- src/nvim/os/signal.c | 7 +- src/nvim/os/stdpaths.c | 1 + src/nvim/os/time.c | 18 +- src/nvim/os/tty.c | 4 +- src/nvim/os/unix_defs.h | 3 + src/nvim/os/users.c | 6 +- src/nvim/os_unix.c | 35 +-- src/nvim/os_unix.h | 2 +- src/nvim/path.c | 19 +- src/nvim/plines.c | 12 +- src/nvim/plines.h | 3 + src/nvim/popupmenu.c | 14 +- src/nvim/popupmenu.h | 2 + src/nvim/profile.c | 20 +- src/nvim/quickfix.c | 19 +- src/nvim/rbuffer.c | 5 +- src/nvim/rbuffer.h | 2 + src/nvim/regexp.c | 15 +- src/nvim/regexp.h | 3 +- src/nvim/regexp_bt.c | 1 + src/nvim/runtime.c | 26 +- src/nvim/runtime.h | 5 + src/nvim/screen.c | 26 +- src/nvim/screen.h | 1 + src/nvim/search.c | 18 +- src/nvim/search.h | 3 + src/nvim/sha256.c | 10 +- src/nvim/sha256.h | 4 +- src/nvim/shada.c | 22 +- src/nvim/sign.c | 24 +- src/nvim/spell.c | 103 ++++---- src/nvim/spellfile.c | 26 +- src/nvim/spellsuggest.c | 20 +- src/nvim/state.c | 21 +- src/nvim/state.h | 2 + src/nvim/statusline.c | 23 +- src/nvim/statusline.h | 4 + src/nvim/strings.c | 37 +-- src/nvim/syntax.c | 25 +- src/nvim/syntax.h | 1 + src/nvim/tag.c | 18 +- src/nvim/terminal.c | 22 +- src/nvim/testing.c | 18 ++ src/nvim/textformat.c | 10 + src/nvim/textformat.h | 4 +- src/nvim/textobject.c | 10 +- src/nvim/textobject.h | 6 +- src/nvim/tui/input.c | 16 +- src/nvim/tui/input.h | 4 + src/nvim/tui/terminfo.c | 6 +- src/nvim/tui/tui.c | 24 +- src/nvim/ugrid.c | 8 +- src/nvim/ugrid.h | 4 + src/nvim/ui.c | 26 +- src/nvim/ui.h | 8 +- src/nvim/ui_bridge.c | 12 +- src/nvim/ui_bridge.h | 3 + src/nvim/ui_client.c | 14 +- src/nvim/ui_client.h | 3 + src/nvim/ui_compositor.c | 15 +- src/nvim/undo.c | 20 +- src/nvim/usercmd.c | 17 +- src/nvim/usercmd.h | 5 + src/nvim/version.c | 22 +- src/nvim/vim.h | 2 +- src/nvim/viml/parser/expressions.c | 6 + src/nvim/viml/parser/expressions.h | 3 + src/nvim/viml/parser/parser.c | 2 +- src/nvim/viml/parser/parser.h | 1 + src/nvim/window.c | 26 +- src/nvim/window.h | 4 + 267 files changed, 3176 insertions(+), 865 deletions(-) create mode 100644 cmake.config/iwyu/gcc.libc.imp create mode 100644 cmake.config/iwyu/gcc.symbols.imp create mode 100644 cmake.config/iwyu/mapping.imp diff --git a/CMakeLists.txt b/CMakeLists.txt index a78b8d5e47..6d5e7a8c1c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,6 +186,20 @@ if(CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES DNDEBUG) string(REPLACE "-DNDEBUG" "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}") endif() +option(ENABLE_IWYU "Run include-what-you-use with the compiler." OFF) +if(ENABLE_IWYU) + find_program(IWYU_PRG NAMES include-what-you-use iwyu) + if(NOT IWYU_PRG) + message(FATAL_ERROR "ENABLE_IWYU is ON but include-what-you-use is not found!") + endif() + set(CMAKE_C_INCLUDE_WHAT_YOU_USE ${IWYU_PRG} + -Xiwyu --mapping_file=${PROJECT_SOURCE_DIR}/cmake.config/iwyu/mapping.imp + -Xiwyu --mapping_file=${PROJECT_SOURCE_DIR}/cmake.config/iwyu/gcc.libc.imp + -Xiwyu --mapping_file=${PROJECT_SOURCE_DIR}/cmake.config/iwyu/gcc.symbols.imp + -Xiwyu --no_default_mappings) + add_definitions(-DEXITFREE) +endif() + # gcc 4.0+ sets _FORTIFY_SOURCE=2 automatically. This currently # does not work with Neovim due to some uses of dynamically-sized structures. # https://github.com/neovim/neovim/issues/223 diff --git a/CMakePresets.json b/CMakePresets.json index b2c93792b0..76e38111ea 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -67,6 +67,17 @@ "inherits": [ "base" ] + }, + { + "name": "iwyu", + "displayName": "IWYU", + "description": "Run include-what-you-use with the compiler", + "cacheVariables": { + "ENABLE_IWYU": "ON" + }, + "inherits": [ + "base" + ] } ], "buildPresets": [ @@ -90,6 +101,10 @@ "lhs": "${hostSystemName}", "rhs": "Windows" } + }, + { + "name": "iwyu", + "configurePreset": "iwyu" } ] } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 50acffbef4..1942ff51f7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -247,9 +247,15 @@ You can lint a single file (but this will _not_ exclude legacy errors): For managing includes in C files, use [include-what-you-use]. - [Install include-what-you-use][include-what-you-use-install] -- Run with: +- To see which includes needs fixing just use the cmake preset `iwyu`: ``` - make CMAKE_EXTRA_FLAGS=-DCMAKE_C_INCLUDE_WHAT_YOU_USE=include-what-you-use | tee iwyu.txt + cmake --preset iwyu + cmake --build --preset iwyu + ``` +- There's also a make target that automatically fixes the suggestions from + IWYU: + ``` + make iwyu ``` See [#549][549] for more details. diff --git a/Makefile b/Makefile index 03a0512ad7..a29fa57e75 100644 --- a/Makefile +++ b/Makefile @@ -135,6 +135,12 @@ lintlua lintsh lintuncrustify lintc lintcfull check-single-includes generated-so test: functionaltest unittest +iwyu: build/.ran-cmake + cmake --preset iwyu + cmake --build --preset iwyu > build/iwyu.log + iwyu-fix-includes --only_re="src/nvim" --ignore_re="src/nvim/(auto|map.h|eval/encode.c)" --safe_headers < build/iwyu.log + cmake -B build -U ENABLE_IWYU + clean: +test -d build && $(BUILD_TOOL) -C build clean || true $(MAKE) -C src/nvim/testdir clean diff --git a/cmake.config/iwyu/gcc.libc.imp b/cmake.config/iwyu/gcc.libc.imp new file mode 100644 index 0000000000..1dd0ad42c7 --- /dev/null +++ b/cmake.config/iwyu/gcc.libc.imp @@ -0,0 +1,226 @@ +# This was initially taken from the IWYU repository: +# github.com/include-what-you-use/include-what-you-use/blob/164b8fe7597805ae55f029ecf6580dc46a74c7ed/gcc.libc.imp +# It has useful mappings that are normally enabled by default, but there are +# other default mappings that conflict with our builds. The best solution seems +# to be to disable all defaults, import the defaults from the IWYU +# repo and modify the rules that conflict with our build. +# +# TODO(dundargoc): Check if there is a way to disable specific builtin maps as +# to avoid this file entirely. + +# Mappings for GNU libc +# ( cd /usr/include && grep '^ *# *include' {sys/,net/,}* | perl -nle 'm/^([^:]+).*<([^>]+)>/ && print qq@ { include: [ "<$2>", private, "<$1>", public ] },@' | grep bits/ | sort ) +# When I saw more than one mapping for these, I typically picked +# what I thought was the "best" one. +[ + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + # Sometimes libc tells you what mapping to do via an '#error': + # # error "Never use directly; include instead." + # or + # # error "Never include directly; use instead." + # ( cd /usr/include && grep -R '^ *# *error "Never use\|include' * | perl -nle 'm/<([^>]+).*directly.*<([^>]+)/ && print qq@ { include: [ "<$1>", private, "<$2>", public ] },@' | sort ) + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + # Top-level #includes that just forward to another file: + # $ for i in /usr/include/*; do [ -f $i ] } && [ `wc -l < $i` = 1 ] } && echo $i; done + # (poll.h, syscall.h, syslog.h, ustat.h, wait.h). + # For each file, I looked at the list of canonical header files -- + # http://www.opengroup.org/onlinepubs/9699919799/idx/head.html -- + # to decide which of the two files is canonical. If neither is + # on the POSIX.1 1998 list, I just choose the top-level one. + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + # These are all files in bits/ that delegate to asm/ and linux/ to + # do all (or lots) of the work. Note these are private->private. + # $ for i in /usr/include/bits/*; do for dir in asm linux; do grep -H -e $dir/`basename $i` $i; done; done + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + # Some asm files have 32- and 64-bit variants: + # $ ls /usr/include/asm/*_{32,64}.h + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", private ] }, + { include: [ "", private, "", private ] }, + # I don't know what grep would have found these. I found them + # via user report. + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, # PATH_MAX + { include: [ "", private, "", public ] }, + { include: [ "", private, "", public ] }, + # Exports guaranteed by the C standard + { include: [ "", public, "", public ] }, +] + +# vim: set ft=toml: diff --git a/cmake.config/iwyu/gcc.symbols.imp b/cmake.config/iwyu/gcc.symbols.imp new file mode 100644 index 0000000000..6066de9d09 --- /dev/null +++ b/cmake.config/iwyu/gcc.symbols.imp @@ -0,0 +1,305 @@ +# This was initially taken from the IWYU repository: +# github.com/include-what-you-use/include-what-you-use/blob/164b8fe7597805ae55f029ecf6580dc46a74c7ed/gcc.symbols.imp +# It has useful mappings that are normally enabled by default, but there are +# other default mappings that conflict with our builds. The best solution seems +# to be to disable all defaults, import the defaults from the IWYU repo and +# modify the rules that conflict with our build. +# +# TODO(dundargoc): Check if there is a way to disable specific builtin maps as +# to avoid this file entirely. + +# For library symbols that can be defined in more than one header +# file, maps from symbol-name to legitimate header files. +# This list was generated via +# grep -R '__.*_defined' /usr/include | perl -nle 'm,/usr/include/([^:]*):#\s*\S+ __(.*)_defined, and print qq@ { symbol: [ "$2", public, "<$1>", public ] },@' | sort -u +# I ignored all entries that only appeared once on the list (eg uint32_t). +# I then added in NULL, which according to [diff.null] C.2.2.3, can +# be defined in , , , , +# , , or . We also allow their C +# equivalents. +# In each case, I ordered them so was first, if it was +# an option for this type. That's the preferred #include all else +# equal. The same goes for . The visibility on the +# symbol-name is ignored; by convention we always set it to private. +[ + { symbol: [ "aiocb", private, "", public ] }, + { symbol: [ "blkcnt_t", private, "", public ] }, + { symbol: [ "blkcnt_t", private, "", public ] }, + { symbol: [ "blksize_t", private, "", public ] }, + { symbol: [ "blksize_t", private, "", public ] }, + { symbol: [ "cc_t", private, "", private ] }, + { symbol: [ "clock_t", private, "", public ] }, + { symbol: [ "clock_t", private, "", public ] }, + { symbol: [ "clock_t", private, "", public ] }, + { symbol: [ "clockid_t", private, "", public ] }, + { symbol: [ "clockid_t", private, "", public ] }, + { symbol: [ "daddr_t", private, "", public ] }, + { symbol: [ "daddr_t", private, "", public ] }, + { symbol: [ "dev_t", private, "", public ] }, + { symbol: [ "dev_t", private, "", public ] }, + { symbol: [ "div_t", private, "", public ] }, + { symbol: [ "double_t", private, "", public ] }, + { symbol: [ "error_t", private, "", public ] }, + { symbol: [ "error_t", private, "", public ] }, + { symbol: [ "error_t", private, "", public ] }, + { symbol: [ "fd_set", private, "", public ] }, + { symbol: [ "fd_set", private, "", public ] }, + { symbol: [ "fenv_t", private, "", public ] }, + { symbol: [ "fexcept_t", private, "", public ] }, + { symbol: [ "FILE", private, "", public ] }, + { symbol: [ "FILE", private, "", public ] }, + { symbol: [ "float_t", private, "", public ] }, + { symbol: [ "fsblkcnt_t", private, "", public ] }, + { symbol: [ "fsblkcnt_t", private, "", public ] }, + { symbol: [ "fsfilcnt_t", private, "", public ] }, + { symbol: [ "fsfilcnt_t", private, "", public ] }, + { symbol: [ "getopt", private, "", private ] }, + { symbol: [ "gid_t", private, "", public ] }, + { symbol: [ "gid_t", private, "", public ] }, + { symbol: [ "gid_t", private, "", public ] }, + { symbol: [ "gid_t", private, "", public ] }, + { symbol: [ "gid_t", private, "", public ] }, + { symbol: [ "gid_t", private, "", public ] }, + { symbol: [ "gid_t", private, "", public ] }, + { symbol: [ "gid_t", private, "", private ] }, + { symbol: [ "htonl", private, "", private ] }, + { symbol: [ "htons", private, "", private ] }, + { symbol: [ "id_t", private, "", public ] }, + { symbol: [ "id_t", private, "", public ] }, + { symbol: [ "imaxdiv_t", private, "", public ] }, + { symbol: [ "intmax_t", private, "", public ] }, + { symbol: [ "uintmax_t", private, "", public ] }, + { symbol: [ "ino64_t", private, "", public ] }, + { symbol: [ "ino64_t", private, "", public ] }, + { symbol: [ "ino_t", private, "", public ] }, + { symbol: [ "ino_t", private, "", public ] }, + { symbol: [ "ino_t", private, "", public ] }, + { symbol: [ "int8_t", private, "", public ] }, + { symbol: [ "int16_t", private, "", public ] }, + { symbol: [ "int32_t", private, "", public ] }, + { symbol: [ "int64_t", private, "", public ] }, + { symbol: [ "uint8_t", private, "", public ] }, + { symbol: [ "uint16_t", private, "", public ] }, + { symbol: [ "uint32_t", private, "", public ] }, + { symbol: [ "uint64_t", private, "", public ] }, + { symbol: [ "intptr_t", private, "", public ] }, + { symbol: [ "uintptr_t", private, "", public ] }, + { symbol: [ "iovec", private, "", public ] }, + { symbol: [ "iovec", private, "", private ] }, + { symbol: [ "itimerspec", private, "", public ] }, + { symbol: [ "itimerspec", private, "", public ] }, + { symbol: [ "key_t", private, "", public ] }, + { symbol: [ "key_t", private, "", public ] }, + { symbol: [ "lconv", private, "", public ] }, + { symbol: [ "ldiv_t", private, "", public ] }, + { symbol: [ "lldiv_t", private, "", public ] }, + { symbol: [ "max_align_t", private, "", public ] }, + { symbol: [ "mode_t", private, "", public ] }, + { symbol: [ "mode_t", private, "", public ] }, + { symbol: [ "mode_t", private, "", public ] }, + { symbol: [ "mode_t", private, "", public ] }, + { symbol: [ "mode_t", private, "", public ] }, + { symbol: [ "mode_t", private, "", public ] }, + { symbol: [ "mode_t", private, "", public ] }, + { symbol: [ "nlink_t", private, "", public ] }, + { symbol: [ "nlink_t", private, "", public ] }, + { symbol: [ "ntohl", private, "", private ] }, + { symbol: [ "ntohs", private, "", private ] }, + { symbol: [ "off64_t", private, "", public ] }, + { symbol: [ "off64_t", private, "", private ] }, + { symbol: [ "off_t", private, "", public ] }, + { symbol: [ "off_t", private, "", public ] }, + { symbol: [ "off_t", private, "", public ] }, + { symbol: [ "off_t", private, "", public ] }, + { symbol: [ "off_t", private, "", public ] }, + { symbol: [ "off_t", private, "", public ] }, + { symbol: [ "off_t", private, "", private ] }, + { symbol: [ "optarg", private, "", private ] }, + { symbol: [ "opterr", private, "", private ] }, + { symbol: [ "optind", private, "", private ] }, + { symbol: [ "optopt", private, "", private ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "pid_t", private, "", private ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "pid_t", private, "", private ] }, + { symbol: [ "pid_t", private, "", public ] }, + { symbol: [ "ptrdiff_t", private, "", public ] }, + { symbol: [ "regex_t", private, "", public ] }, + { symbol: [ "regmatch_t", private, "", public ] }, + { symbol: [ "regoff_t", private, "", public ] }, + { symbol: [ "sigevent", private, "", public ] }, + { symbol: [ "sigevent", private, "", public ] }, + { symbol: [ "sigevent", private, "", public ] }, + { symbol: [ "sigevent", private, "", public ] }, + { symbol: [ "siginfo_t", private, "", public ] }, + { symbol: [ "siginfo_t", private, "", public ] }, + { symbol: [ "sigset_t", private, "", public ] }, + { symbol: [ "sigset_t", private, "", public ] }, + { symbol: [ "sigset_t", private, "", public ] }, + { symbol: [ "sigval", private, "", public ] }, + { symbol: [ "sockaddr", private, "", private ] }, + { symbol: [ "socklen_t", private, "", private ] }, + { symbol: [ "socklen_t", private, "", private ] }, + { symbol: [ "ssize_t", private, "", public ] }, + { symbol: [ "ssize_t", private, "", public ] }, + { symbol: [ "ssize_t", private, "", public ] }, + { symbol: [ "ssize_t", private, "", public ] }, + { symbol: [ "ssize_t", private, "", public ] }, + { symbol: [ "ssize_t", private, "", public ] }, + { symbol: [ "ssize_t", private, "", private ] }, + { symbol: [ "ssize_t", private, "", public ] }, + { symbol: [ "ssize_t", private, "", private ] }, + { symbol: [ "stat", private, "", public ] }, + { symbol: [ "stat", private, "", public ] }, + { symbol: [ "suseconds_t", private, "", public ] }, + { symbol: [ "suseconds_t", private, "", public ] }, + { symbol: [ "suseconds_t", private, "", public ] }, + { symbol: [ "time_t", private, "", public ] }, + { symbol: [ "time_t", private, "", public ] }, + { symbol: [ "time_t", private, "", public ] }, + { symbol: [ "time_t", private, "", public ] }, + { symbol: [ "time_t", private, "", public ] }, + { symbol: [ "time_t", private, "", public ] }, + { symbol: [ "time_t", private, "", public ] }, + { symbol: [ "time_t", private, "", public ] }, + { symbol: [ "time_t", private, "", public ] }, + { symbol: [ "time_t", private, "", public ] }, + { symbol: [ "timer_t", private, "", public ] }, + { symbol: [ "timer_t", private, "", public ] }, + { symbol: [ "timespec", private, "", public ] }, + { symbol: [ "timespec", private, "", public ] }, + { symbol: [ "timespec", private, "", public ] }, + { symbol: [ "timespec", private, "", public ] }, + { symbol: [ "timespec", private, "", public ] }, + { symbol: [ "timespec", private, "", public ] }, + { symbol: [ "timespec", private, "", public ] }, + { symbol: [ "timeval", private, "", public ] }, + { symbol: [ "timeval", private, "", public ] }, + { symbol: [ "timeval", private, "", public ] }, + { symbol: [ "timeval", private, "", public ] }, + { symbol: [ "tm", private, "", public ] }, + { symbol: [ "u_char", private, "", public ] }, + { symbol: [ "u_char", private, "", public ] }, + { symbol: [ "uid_t", private, "", public ] }, + { symbol: [ "uid_t", private, "", public ] }, + { symbol: [ "uid_t", private, "", public ] }, + { symbol: [ "uid_t", private, "", public ] }, + { symbol: [ "uid_t", private, "", public ] }, + { symbol: [ "uid_t", private, "", public ] }, + { symbol: [ "uid_t", private, "", private ] }, + { symbol: [ "useconds_t", private, "", public ] }, + { symbol: [ "useconds_t", private, "", private ] }, + { symbol: [ "wchar_t", private, "", public ] }, + { symbol: [ "wchar_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", private ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", private ] }, + { symbol: [ "size_t", private, "", public ] }, + { symbol: [ "size_t", private, "", public ] }, + # Macros that can be defined in more than one file, don't have the + # same __foo_defined guard that other types do, so the grep above + # doesn't discover them. Until I figure out a better way, I just + # add them in by hand as I discover them. + { symbol: [ "EOF", private, "", public ] }, + { symbol: [ "EOF", private, "", public ] }, + { symbol: [ "FILE", private, "", public ] }, + { symbol: [ "MAP_POPULATE", private, "", public ] }, + { symbol: [ "MAP_POPULATE", private, "", public ] }, + { symbol: [ "MAP_STACK", private, "", public ] }, + { symbol: [ "MAP_STACK", private, "", public ] }, + { symbol: [ "MAXHOSTNAMELEN", private, "", public ] }, + { symbol: [ "MAXHOSTNAMELEN", private, "", public ] }, + { symbol: [ "SIGABRT", private, "", public ] }, + { symbol: [ "SIGCHLD", private, "", public ] }, + { symbol: [ "SIGCHLD", private, "", public ] }, + { symbol: [ "va_list", private, "", public ] }, + { symbol: [ "va_list", private, "", public ] }, + { symbol: [ "va_list", private, "", public ] }, + # These are symbols that could be defined in either stdlib.h or + # malloc.h, but we always want the stdlib location. + { symbol: [ "malloc", private, "", public ] }, + { symbol: [ "calloc", private, "", public ] }, + { symbol: [ "realloc", private, "", public ] }, + { symbol: [ "free", private, "", public ] }, + # Entries for NULL + { symbol: [ "NULL", private, "", public ] }, # 'canonical' location for NULL + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", public ] }, + { symbol: [ "NULL", private, "", private ] }, + { symbol: [ "NULL", private, "", public ] }, + + # Kludge time: almost all STL types take an allocator, but they + # almost always use the default value. Usually we detect that + # and don't try to do IWYU, but sometimes it passes through. + # For instance, when adding two strings, we end up calling + # template<_CharT,_Traits,_Alloc> ... operator+( + # basic_string<_CharT,_Traits,_Alloc>, ...) + # These look like normal template args to us, so we see they're + # used and declare an iwyu dependency, even though we don't need + # to #include the traits or alloc type ourselves. The surest way + # to deal with this is to just say that everyone provides + # std::allocator. We can add more here at need. + { symbol: [ "std::allocator", private, "", public ] }, + { symbol: [ "std::allocator", private, "", public ] }, + { symbol: [ "std::allocator", private, "", public ] }, + { symbol: [ "std::allocator", private, "", public ] }, + { symbol: [ "std::allocator", private, "", public ] }, + # A similar kludge for std::char_traits. basic_string, + # basic_ostream and basic_istream have this as a default template + # argument, and sometimes it bleeds through when clang desugars the + # string/ostream/istream type. + { symbol: [ "std::char_traits", private, "", public ] }, + { symbol: [ "std::char_traits", private, "", public ] }, + { symbol: [ "std::char_traits", private, "", public ] }, + + { symbol: [ "std::size_t", private, "", public ] }, + { symbol: [ "std::size_t", private, "", public ] }, + { symbol: [ "std::size_t", private, "", public ] }, + { symbol: [ "std::size_t", private, "", public ] }, + { symbol: [ "std::size_t", private, "", public ] }, + { symbol: [ "std::size_t", private, "", public ] }, + { symbol: [ "std::size_t", private, "", public ] } +] + +# vim: set ft=toml: diff --git a/cmake.config/iwyu/mapping.imp b/cmake.config/iwyu/mapping.imp new file mode 100644 index 0000000000..f3d20f4918 --- /dev/null +++ b/cmake.config/iwyu/mapping.imp @@ -0,0 +1,236 @@ +[ + # Generated to normal headers: header.h.generated.h -> nvim/header.h + { include: [ '"api/autocmd.h.generated.h"', private, '"nvim/api/autocmd.h"', public ] }, + { include: [ '"api/buffer.h.generated.h"', private, '"nvim/api/buffer.h"', public ] }, + { include: [ '"api/command.h.generated.h"', private, '"nvim/api/command.h"', public ] }, + { include: [ '"api/deprecated.h.generated.h"', private, '"nvim/api/deprecated.h"', public ] }, + { include: [ '"api/extmark.h.generated.h"', private, '"nvim/api/extmark.h"', public ] }, + { include: [ '"api/options.h.generated.h"', private, '"nvim/api/options.h"', public ] }, + { include: [ '"api/private/converter.h.generated.h"', private, '"nvim/api/private/converter.h"', public ] }, + { include: [ '"api/private/dispatch.h.generated.h"', private, '"nvim/api/private/dispatch.h"', public ] }, + { include: [ '"api/private/helpers.h.generated.h"', private, '"nvim/api/private/helpers.h"', public ] }, + { include: [ '"api/tabpage.h.generated.h"', private, '"nvim/api/tabpage.h"', public ] }, + { include: [ '"api/ui.h.generated.h"', private, '"nvim/api/ui.h"', public ] }, + { include: [ '"api/vim.h.generated.h"', private, '"nvim/api/vim.h"', public ] }, + { include: [ '"api/vimscript.h.generated.h"', private, '"nvim/api/vimscript.h"', public ] }, + { include: [ '"api/win_config.h.generated.h"', private, '"nvim/api/win_config.h"', public ] }, + { include: [ '"api/window.h.generated.h"', private, '"nvim/api/window.h"', public ] }, + { include: [ '"arabic.h.generated.h"', private, '"nvim/arabic.h"', public ] }, + { include: [ '"arglist.h.generated.h"', private, '"nvim/arglist.h"', public ] }, + { include: [ '"autocmd.h.generated.h"', private, '"nvim/autocmd.h"', public ] }, + { include: [ '"buffer.h.generated.h"', private, '"nvim/buffer.h"', public ] }, + { include: [ '"buffer_updates.h.generated.h"', private, '"nvim/buffer_updates.h"', public ] }, + { include: [ '"change.h.generated.h"', private, '"nvim/change.h"', public ] }, + { include: [ '"channel.h.generated.h"', private, '"nvim/channel.h"', public ] }, + { include: [ '"charset.h.generated.h"', private, '"nvim/charset.h"', public ] }, + { include: [ '"cmdexpand.h.generated.h"', private, '"nvim/cmdexpand.h"', public ] }, + { include: [ '"cmdhist.h.generated.h"', private, '"nvim/cmdhist.h"', public ] }, + { include: [ '"context.h.generated.h"', private, '"nvim/context.h"', public ] }, + { include: [ '"cursor.h.generated.h"', private, '"nvim/cursor.h"', public ] }, + { include: [ '"cursor_shape.h.generated.h"', private, '"nvim/cursor_shape.h"', public ] }, + { include: [ '"debugger.h.generated.h"', private, '"nvim/debugger.h"', public ] }, + { include: [ '"decoration.h.generated.h"', private, '"nvim/decoration.h"', public ] }, + { include: [ '"decoration_provider.h.generated.h"', private, '"nvim/decoration_provider.h"', public ] }, + { include: [ '"diff.h.generated.h"', private, '"nvim/diff.h"', public ] }, + { include: [ '"digraph.h.generated.h"', private, '"nvim/digraph.h"', public ] }, + { include: [ '"drawline.h.generated.h"', private, '"nvim/drawline.h"', public ] }, + { include: [ '"drawscreen.h.generated.h"', private, '"nvim/drawscreen.h"', public ] }, + { include: [ '"edit.h.generated.h"', private, '"nvim/edit.h"', public ] }, + { include: [ '"eval.h.generated.h"', private, '"nvim/eval.h"', public ] }, + { include: [ '"eval/decode.h.generated.h"', private, '"nvim/eval/decode.h"', public ] }, + { include: [ '"eval/encode.h.generated.h"', private, '"nvim/eval/encode.h"', public ] }, + { include: [ '"eval/executor.h.generated.h"', private, '"nvim/eval/executor.h"', public ] }, + { include: [ '"eval/funcs.h.generated.h"', private, '"nvim/eval/funcs.h"', public ] }, + { include: [ '"eval/typval.h.generated.h"', private, '"nvim/eval/typval.h"', public ] }, + { include: [ '"eval/userfunc.h.generated.h"', private, '"nvim/eval/userfunc.h"', public ] }, + { include: [ '"eval/vars.h.generated.h"', private, '"nvim/eval/vars.h"', public ] }, + { include: [ '"event/libuv_process.h.generated.h"', private, '"nvim/event/libuv_process.h"', public ] }, + { include: [ '"event/loop.h.generated.h"', private, '"nvim/event/loop.h"', public ] }, + { include: [ '"event/multiqueue.h.generated.h"', private, '"nvim/event/multiqueue.h"', public ] }, + { include: [ '"event/process.h.generated.h"', private, '"nvim/event/process.h"', public ] }, + { include: [ '"event/rstream.h.generated.h"', private, '"nvim/event/rstream.h"', public ] }, + { include: [ '"event/signal.h.generated.h"', private, '"nvim/event/signal.h"', public ] }, + { include: [ '"event/socket.h.generated.h"', private, '"nvim/event/socket.h"', public ] }, + { include: [ '"event/stream.h.generated.h"', private, '"nvim/event/stream.h"', public ] }, + { include: [ '"event/time.h.generated.h"', private, '"nvim/event/time.h"', public ] }, + { include: [ '"event/wstream.h.generated.h"', private, '"nvim/event/wstream.h"', public ] }, + { include: [ '"ex_cmds.h.generated.h"', private, '"nvim/ex_cmds.h"', public ] }, + { include: [ '"ex_cmds2.h.generated.h"', private, '"nvim/ex_cmds2.h"', public ] }, + { include: [ '"ex_docmd.h.generated.h"', private, '"nvim/ex_docmd.h"', public ] }, + { include: [ '"ex_eval.h.generated.h"', private, '"nvim/ex_eval.h"', public ] }, + { include: [ '"ex_getln.h.generated.h"', private, '"nvim/ex_getln.h"', public ] }, + { include: [ '"ex_session.h.generated.h"', private, '"nvim/ex_session.h"', public ] }, + { include: [ '"extmark.h.generated.h"', private, '"nvim/extmark.h"', public ] }, + { include: [ '"file_search.h.generated.h"', private, '"nvim/file_search.h"', public ] }, + { include: [ '"fileio.h.generated.h"', private, '"nvim/fileio.h"', public ] }, + { include: [ '"fold.h.generated.h"', private, '"nvim/fold.h"', public ] }, + { include: [ '"garray.h.generated.h"', private, '"nvim/garray.h"', public ] }, + { include: [ '"getchar.h.generated.h"', private, '"nvim/getchar.h"', public ] }, + { include: [ '"grid.h.generated.h"', private, '"nvim/grid.h"', public ] }, + { include: [ '"hardcopy.h.generated.h"', private, '"nvim/hardcopy.h"', public ] }, + { include: [ '"hashtab.h.generated.h"', private, '"nvim/hashtab.h"', public ] }, + { include: [ '"help.h.generated.h"', private, '"nvim/help.h"', public ] }, + { include: [ '"highlight.h.generated.h"', private, '"nvim/highlight.h"', public ] }, + { include: [ '"highlight_group.h.generated.h"', private, '"nvim/highlight_group.h"', public ] }, + { include: [ '"if_cscope.h.generated.h"', private, '"nvim/if_cscope.h"', public ] }, + { include: [ '"indent.h.generated.h"', private, '"nvim/indent.h"', public ] }, + { include: [ '"indent_c.h.generated.h"', private, '"nvim/indent_c.h"', public ] }, + { include: [ '"input.h.generated.h"', private, '"nvim/input.h"', public ] }, + { include: [ '"insexpand.h.generated.h"', private, '"nvim/insexpand.h"', public ] }, + { include: [ '"keycodes.h.generated.h"', private, '"nvim/keycodes.h"', public ] }, + { include: [ '"linematch.h.generated.h"', private, '"nvim/linematch.h"', public ] }, + { include: [ '"locale.h.generated.h"', private, '"nvim/locale.h"', public ] }, + { include: [ '"log.h.generated.h"', private, '"nvim/log.h"', public ] }, + { include: [ '"lua/converter.h.generated.h"', private, '"nvim/lua/converter.h"', public ] }, + { include: [ '"lua/executor.h.generated.h"', private, '"nvim/lua/executor.h"', public ] }, + { include: [ '"lua/spell.h.generated.h"', private, '"nvim/lua/spell.h"', public ] }, + { include: [ '"lua/stdlib.h.generated.h"', private, '"nvim/lua/stdlib.h"', public ] }, + { include: [ '"lua/treesitter.h.generated.h"', private, '"nvim/lua/treesitter.h"', public ] }, + { include: [ '"lua/xdiff.h.generated.h"', private, '"nvim/lua/xdiff.h"', public ] }, + { include: [ '"main.h.generated.h"', private, '"nvim/main.h"', public ] }, + { include: [ '"mapping.h.generated.h"', private, '"nvim/mapping.h"', public ] }, + { include: [ '"mark.h.generated.h"', private, '"nvim/mark.h"', public ] }, + { include: [ '"marktree.h.generated.h"', private, '"nvim/marktree.h"', public ] }, + { include: [ '"match.h.generated.h"', private, '"nvim/match.h"', public ] }, + { include: [ '"math.h.generated.h"', private, '"nvim/math.h"', public ] }, + { include: [ '"mbyte.h.generated.h"', private, '"nvim/mbyte.h"', public ] }, + { include: [ '"memfile.h.generated.h"', private, '"nvim/memfile.h"', public ] }, + { include: [ '"memline.h.generated.h"', private, '"nvim/memline.h"', public ] }, + { include: [ '"memory.h.generated.h"', private, '"nvim/memory.h"', public ] }, + { include: [ '"menu.h.generated.h"', private, '"nvim/menu.h"', public ] }, + { include: [ '"message.h.generated.h"', private, '"nvim/message.h"', public ] }, + { include: [ '"mouse.h.generated.h"', private, '"nvim/mouse.h"', public ] }, + { include: [ '"move.h.generated.h"', private, '"nvim/move.h"', public ] }, + { include: [ '"msgpack_rpc/channel.h.generated.h"', private, '"nvim/msgpack_rpc/channel.h"', public ] }, + { include: [ '"msgpack_rpc/helpers.h.generated.h"', private, '"nvim/msgpack_rpc/helpers.h"', public ] }, + { include: [ '"msgpack_rpc/server.h.generated.h"', private, '"nvim/msgpack_rpc/server.h"', public ] }, + { include: [ '"msgpack_rpc/unpacker.h.generated.h"', private, '"nvim/msgpack_rpc/unpacker.h"', public ] }, + { include: [ '"normal.h.generated.h"', private, '"nvim/normal.h"', public ] }, + { include: [ '"ops.h.generated.h"', private, '"nvim/ops.h"', public ] }, + { include: [ '"option.h.generated.h"', private, '"nvim/option.h"', public ] }, + { include: [ '"optionstr.h.generated.h"', private, '"nvim/optionstr.h"', public ] }, + { include: [ '"os/dl.h.generated.h"', private, '"nvim/os/dl.h"', public ] }, + { include: [ '"os/fileio.h.generated.h"', private, '"nvim/os/fileio.h"', public ] }, + { include: [ '"os/fs.h.generated.h"', private, '"nvim/os/fs.h"', public ] }, + { include: [ '"os/input.h.generated.h"', private, '"nvim/os/input.h"', public ] }, + { include: [ '"os/lang.h.generated.h"', private, '"nvim/os/lang.h"', public ] }, + { include: [ '"os/process.h.generated.h"', private, '"nvim/os/process.h"', public ] }, + { include: [ '"os/pty_process_unix.h.generated.h"', private, '"nvim/os/pty_process_unix.h"', private ] }, + { include: [ '"os/shell.h.generated.h"', private, '"nvim/os/shell.h"', public ] }, + { include: [ '"os/signal.h.generated.h"', private, '"nvim/os/signal.h"', public ] }, + { include: [ '"os/time.h.generated.h"', private, '"nvim/os/time.h"', public ] }, + { include: [ '"os_unix.h.generated.h"', private, '"nvim/os_unix.h"', public ] }, + { include: [ '"path.h.generated.h"', private, '"nvim/path.h"', public ] }, + { include: [ '"plines.h.generated.h"', private, '"nvim/plines.h"', public ] }, + { include: [ '"popupmenu.h.generated.h"', private, '"nvim/popupmenu.h"', public ] }, + { include: [ '"profile.h.generated.h"', private, '"nvim/profile.h"', public ] }, + { include: [ '"quickfix.h.generated.h"', private, '"nvim/quickfix.h"', public ] }, + { include: [ '"rbuffer.h.generated.h"', private, '"nvim/rbuffer.h"', public ] }, + { include: [ '"regexp.h.generated.h"', private, '"nvim/regexp.h"', public ] }, + { include: [ '"runtime.h.generated.h"', private, '"nvim/runtime.h"', public ] }, + { include: [ '"screen.h.generated.h"', private, '"nvim/screen.h"', public ] }, + { include: [ '"search.h.generated.h"', private, '"nvim/search.h"', public ] }, + { include: [ '"sha256.h.generated.h"', private, '"nvim/sha256.h"', public ] }, + { include: [ '"shada.h.generated.h"', private, '"nvim/shada.h"', public ] }, + { include: [ '"sign.h.generated.h"', private, '"nvim/sign.h"', public ] }, + { include: [ '"spell.h.generated.h"', private, '"nvim/spell.h"', public ] }, + { include: [ '"spellfile.h.generated.h"', private, '"nvim/spellfile.h"', public ] }, + { include: [ '"spellsuggest.h.generated.h"', private, '"nvim/spellsuggest.h"', public ] }, + { include: [ '"state.h.generated.h"', private, '"nvim/state.h"', public ] }, + { include: [ '"statusline.h.generated.h"', private, '"nvim/statusline.h"', public ] }, + { include: [ '"strings.h.generated.h"', private, '"nvim/strings.h"', public ] }, + { include: [ '"syntax.h.generated.h"', private, '"nvim/syntax.h"', public ] }, + { include: [ '"tag.h.generated.h"', private, '"nvim/tag.h"', public ] }, + { include: [ '"terminal.h.generated.h"', private, '"nvim/terminal.h"', public ] }, + { include: [ '"testing.h.generated.h"', private, '"nvim/testing.h"', public ] }, + { include: [ '"textformat.h.generated.h"', private, '"nvim/textformat.h"', public ] }, + { include: [ '"textobject.h.generated.h"', private, '"nvim/textobject.h"', public ] }, + { include: [ '"tui/input.h.generated.h"', private, '"nvim/tui/input.h"', public ] }, + { include: [ '"tui/terminfo.h.generated.h"', private, '"nvim/tui/terminfo.h"', public ] }, + { include: [ '"tui/tui.h.generated.h"', private, '"nvim/tui/tui.h"', public ] }, + { include: [ '"ugrid.h.generated.h"', private, '"nvim/ugrid.h"', public ] }, + { include: [ '"ui.h.generated.h"', private, '"nvim/ui.h"', public ] }, + { include: [ '"ui_bridge.h.generated.h"', private, '"nvim/ui_bridge.h"', public ] }, + { include: [ '"ui_client.h.generated.h"', private, '"nvim/ui_client.h"', public ] }, + { include: [ '"ui_compositor.h.generated.h"', private, '"nvim/ui_compositor.h"', public ] }, + { include: [ '"undo.h.generated.h"', private, '"nvim/undo.h"', public ] }, + { include: [ '"usercmd.h.generated.h"', private, '"nvim/usercmd.h"', public ] }, + { include: [ '"version.h.generated.h"', private, '"nvim/version.h"', public ] }, + { include: [ '"viml/parser/expressions.h.generated.h"', private, '"nvim/viml/parser/expressions.h"', public ] }, + { include: [ '"viml/parser/parser.h.generated.h"', private, '"nvim/viml/parser/parser.h"', public ] }, + { include: [ '"window.h.generated.h"', private, '"nvim/window.h"', public ] }, + + # Generated to normal headers with a different name: header.h.generated.h -> nvim/some_other_header.h + { include: [ '"api/private/dispatch_wrappers.h.generated.h"', private, '"nvim/api/private/dispatch.h"', public ] }, + { include: [ '"auevents_enum.generated.h"', private, '"nvim/autocmd.h"', public ] }, + { include: [ '"ex_cmds_enum.generated.h"', private, '"nvim/ex_cmds_defs.h"', public ] }, + { include: [ '"keysets.h.generated.h"', private, '"nvim/api/private/helpers.h"', public ] }, + { include: [ '"keysets_defs.generated.h"', private, '"nvim/api/private/defs.h"', public ] }, + { include: [ '"nvim/os/pty_process_unix.h"', private, '"nvim/os/pty_process.h"', public ] }, + { include: [ '"nvim/os/pty_process_win.h"', private, '"nvim/os/pty_process.h"', public ] }, + { include: [ '"nvim/os/unix_defs.h"', private, '"nvim/os/os_defs.h"', public ] }, + { include: [ '"nvim/os/win_defs.h"', private, '"nvim/os/os_defs.h"', public ] }, + { include: [ '"os/env.h.generated.h"', private, '"nvim/os/os.h"', public ] }, + { include: [ '"os/fs.h.generated.h"', private, '"nvim/os/os.h"', public ] }, + { include: [ '"os/mem.h.generated.h"', private, '"nvim/os/os.h"', public ] }, + { include: [ '"os/stdpaths.h.generated.h"', private, '"nvim/os/os.h"', public ] }, + { include: [ '"os/users.h.generated.h"', private, '"nvim/os/os.h"', public ] }, + { include: [ '"regexp_bt.h.generated.h"', private, '"nvim/regexp.h"', public ] }, + { include: [ '"ui_events_call.h.generated.h"', private, '"nvim/ui.h"', public ] }, + { include: [ '"ui_events_client.h.generated.h"', private, '"nvim/ui_client.h"', public ] }, + + # Def to normal headers: nvim/header_defs.h -> nvim/header.h + # + # This is a public to public mapping, meaning that while IWYU can use the + # headers on the left, it will use the headers on the right if possible. This + # isn't explicitly mentioned in the IWYU docs, this is just my interpretation + # of its behavior. + { include: [ '"nvim/buffer_defs.h"', public, '"nvim/buffer.h"', public ] }, + { include: [ '"nvim/ex_cmds_defs.h"', public, '"nvim/ex_cmds.h"', public ] }, + { include: [ '"nvim/ex_eval_defs.h"', public, '"nvim/ex_eval.h"', public ] }, + { include: [ '"nvim/extmark_defs.h"', public, '"nvim/extmark.h"', public ] }, + { include: [ '"nvim/grid_defs.h"', public, '"nvim/grid.h"', public ] }, + { include: [ '"nvim/highlight_defs.h"', public, '"nvim/highlight.h"', public ] }, + { include: [ '"nvim/map_defs.h"', public, '"nvim/map.h"', public ] }, + { include: [ '"nvim/mark_defs.h"', public, '"nvim/mark.h"', public ] }, + { include: [ '"nvim/mbyte_defs.h"', public, '"nvim/mbyte.h"', public ] }, + { include: [ '"nvim/memfile_defs.h"', public, '"nvim/memfile.h"', public ] }, + { include: [ '"nvim/memline_defs.h"', public, '"nvim/memline.h"', public ] }, + { include: [ '"nvim/menu_defs.h"', public, '"nvim/menu.h"', public ] }, + { include: [ '"nvim/msgpack/channel_defs.h"', public, '"nvim/msgpack/channel.h"', public ] }, + { include: [ '"nvim/option_defs.h"', public, '"nvim/option.h"', public ] }, + { include: [ '"nvim/os/fs_defs.h"', public, '"nvim/os/fs.h"', public ] }, + { include: [ '"nvim/os/os_defs.h"', public, '"nvim/os/os.h"', public ] }, + { include: [ '"nvim/regexp_defs.h"', public, '"nvim/regexp.h"', public ] }, + { include: [ '"nvim/sign_defs.h"', public, '"nvim/sign.h"', public ] }, + { include: [ '"nvim/spell_defs.h"', public, '"nvim/spell.h"', public ] }, + { include: [ '"nvim/statusline_defs.h"', public, '"nvim/statusline.h"', public ] }, + { include: [ '"nvim/syntax_defs.h"', public, '"nvim/syntax.h"', public ] }, + { include: [ '"nvim/tui/input_defs.h"', public, '"nvim/tui/input.h"', public ] }, + { include: [ '"nvim/undo_defs.h"', public, '"nvim/undo.h"', public ] }, + + # Third party headers + { include: [ "", private, "", public ] }, + { include: [ '', private, '', private ] }, + { include: [ '', private, '', private ] }, + { include: [ '', private, '', private ] }, + { include: [ '', private, '', private ] }, + { include: [ '', private, '', private ] }, + { include: [ '', private, '"nvim/gettext.h"', public ] }, + { include: [ '', private, '', private ] }, + { include: [ '', private, '', private ] }, + { include: [ '', private, '"nvim/os/unix_defs.h"', private ] }, + { include: [ '', private, '', private ] }, + { include: [ '', private, '"nvim/os/unix_defs.h"', private ] }, + { include: [ '', private, '"nvim/os/unix_defs.h"', private ] }, + { include: [ '', private, '', public ] }, + + # Symbols + { symbol: [ "MAX", private, '"nvim/macros.h"', public ] }, + { symbol: [ "MIN", private, '"nvim/macros.h"', public ] }, + { symbol: [ "SEEK_END", private, '', public ] }, + { symbol: [ "SEEK_SET", private, '', public ] }, + { symbol: [ "time_fd", private, '"nvim/globals.h"', public ] }, +] + +# vim: set ft=toml: diff --git a/src/nvim/api/autocmd.c b/src/nvim/api/autocmd.c index 3dfe77ba38..af185c50c9 100644 --- a/src/nvim/api/autocmd.c +++ b/src/nvim/api/autocmd.c @@ -1,8 +1,12 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include #include +#include #include +#include +#include #include "lauxlib.h" #include "nvim/api/autocmd.h" @@ -12,7 +16,12 @@ #include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" +#include "nvim/globals.h" #include "nvim/lua/executor.h" +#include "nvim/memory.h" +#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "api/autocmd.c.generated.h" diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c index 29c2ed6028..1101689391 100644 --- a/src/nvim/api/buffer.c +++ b/src/nvim/api/buffer.c @@ -3,25 +3,30 @@ // Some of this code was adapted from 'if_py_both.h' from the original // vim source -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include + +#include "klib/kvec.h" +#include "lua.h" #include "nvim/api/buffer.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" +#include "nvim/ascii.h" #include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/buffer_updates.h" #include "nvim/change.h" #include "nvim/cursor.h" -#include "nvim/decoration.h" #include "nvim/drawscreen.h" #include "nvim/ex_cmds.h" -#include "nvim/ex_docmd.h" #include "nvim/extmark.h" +#include "nvim/globals.h" #include "nvim/lua/executor.h" #include "nvim/mapping.h" #include "nvim/mark.h" @@ -29,9 +34,10 @@ #include "nvim/memory.h" #include "nvim/move.h" #include "nvim/ops.h" +#include "nvim/pos.h" +#include "nvim/types.h" #include "nvim/undo.h" #include "nvim/vim.h" -#include "nvim/window.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "api/buffer.c.generated.h" diff --git a/src/nvim/api/command.c b/src/nvim/api/command.c index 752d3868d5..8a7abf0845 100644 --- a/src/nvim/api/command.c +++ b/src/nvim/api/command.c @@ -1,21 +1,36 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include #include -#include -#include +#include +#include +#include "klib/kvec.h" +#include "lauxlib.h" #include "nvim/api/command.h" -#include "nvim/api/private/converter.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" +#include "nvim/ascii.h" #include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" +#include "nvim/decoration.h" +#include "nvim/ex_cmds.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" +#include "nvim/garray.h" +#include "nvim/globals.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" +#include "nvim/memory.h" #include "nvim/ops.h" +#include "nvim/pos.h" #include "nvim/regexp.h" +#include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/usercmd.h" +#include "nvim/vim.h" #include "nvim/window.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/api/deprecated.c b/src/nvim/api/deprecated.c index 8e1a615bbb..332e2b5fc3 100644 --- a/src/nvim/api/deprecated.c +++ b/src/nvim/api/deprecated.c @@ -1,7 +1,6 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include #include #include #include @@ -11,10 +10,15 @@ #include "nvim/api/extmark.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" -#include "nvim/api/vim.h" #include "nvim/api/vimscript.h" +#include "nvim/buffer_defs.h" +#include "nvim/decoration.h" #include "nvim/extmark.h" +#include "nvim/globals.h" #include "nvim/lua/executor.h" +#include "nvim/memory.h" +#include "nvim/pos.h" +#include "nvim/types.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "api/deprecated.c.generated.h" diff --git a/src/nvim/api/extmark.c b/src/nvim/api/extmark.c index 54eb7d9b6b..3a96c42dba 100644 --- a/src/nvim/api/extmark.c +++ b/src/nvim/api/extmark.c @@ -1,20 +1,29 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include #include #include -#include +#include +#include "klib/kvec.h" +#include "lauxlib.h" #include "nvim/api/extmark.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" +#include "nvim/decoration.h" #include "nvim/decoration_provider.h" #include "nvim/drawscreen.h" #include "nvim/extmark.h" #include "nvim/highlight_group.h" -#include "nvim/lua/executor.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" +#include "nvim/memory.h" +#include "nvim/pos.h" +#include "nvim/strings.h" +#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "api/extmark.c.generated.h" diff --git a/src/nvim/api/extmark.h b/src/nvim/api/extmark.h index 74802c6efb..0a627a889c 100644 --- a/src/nvim/api/extmark.h +++ b/src/nvim/api/extmark.h @@ -3,7 +3,10 @@ #include "nvim/api/private/defs.h" #include "nvim/decoration.h" +#include "nvim/macros.h" #include "nvim/map.h" +#include "nvim/map_defs.h" +#include "nvim/types.h" EXTERN Map(String, handle_T) namespace_ids INIT(= MAP_INIT); EXTERN handle_T next_namespace_id INIT(= 1); diff --git a/src/nvim/api/options.c b/src/nvim/api/options.c index 1b04392d47..d705636479 100644 --- a/src/nvim/api/options.c +++ b/src/nvim/api/options.c @@ -1,20 +1,20 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include #include +#include #include -#include -#include #include #include "nvim/api/options.h" -#include "nvim/api/private/converter.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/autocmd.h" -#include "nvim/buffer.h" +#include "nvim/buffer_defs.h" +#include "nvim/globals.h" +#include "nvim/memory.h" #include "nvim/option.h" -#include "nvim/option_defs.h" +#include "nvim/vim.h" #include "nvim/window.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/api/private/converter.c b/src/nvim/api/private/converter.c index b6b3c83f3c..7770ba39d8 100644 --- a/src/nvim/api/private/converter.c +++ b/src/nvim/api/private/converter.c @@ -2,17 +2,24 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include +#include #include +#include #include +#include "klib/kvec.h" #include "nvim/api/private/converter.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/assert.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" -#include "nvim/lua/converter.h" +#include "nvim/garray.h" #include "nvim/lua/executor.h" +#include "nvim/memory.h" +#include "nvim/types.h" +#include "nvim/vim.h" /// Helper structure for vim_to_object typedef struct { diff --git a/src/nvim/api/private/dispatch.c b/src/nvim/api/private/dispatch.c index d6a6fc1219..f427bba00e 100644 --- a/src/nvim/api/private/dispatch.c +++ b/src/nvim/api/private/dispatch.c @@ -1,38 +1,11 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include -#include -#include -#include +#include -#include "nvim/api/deprecated.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/dispatch.h" #include "nvim/api/private/helpers.h" -#include "nvim/log.h" -#include "nvim/map.h" -#include "nvim/msgpack_rpc/helpers.h" -#include "nvim/vim.h" - -// =========================================================================== -// NEW API FILES MUST GO HERE. -// -// When creating a new API file, you must include it here, -// so that the dispatcher can find the C functions that you are creating! -// =========================================================================== -#include "nvim/api/autocmd.h" -#include "nvim/api/buffer.h" -#include "nvim/api/command.h" -#include "nvim/api/extmark.h" -#include "nvim/api/options.h" -#include "nvim/api/tabpage.h" -#include "nvim/api/ui.h" -#include "nvim/api/vim.h" -#include "nvim/api/vimscript.h" -#include "nvim/api/win_config.h" -#include "nvim/api/window.h" -#include "nvim/ui_client.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "api/private/dispatch_wrappers.generated.h" diff --git a/src/nvim/api/private/dispatch.h b/src/nvim/api/private/dispatch.h index f0161a53a8..4ae61b2bfb 100644 --- a/src/nvim/api/private/dispatch.h +++ b/src/nvim/api/private/dispatch.h @@ -1,7 +1,12 @@ #ifndef NVIM_API_PRIVATE_DISPATCH_H #define NVIM_API_PRIVATE_DISPATCH_H +#include +#include + #include "nvim/api/private/defs.h" +#include "nvim/memory.h" +#include "nvim/types.h" typedef Object (*ApiDispatchWrapper)(uint64_t channel_id, Array args, Arena *arena, Error *error); diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c index d10d17c88d..b7cd0c82fb 100644 --- a/src/nvim/api/private/helpers.c +++ b/src/nvim/api/private/helpers.c @@ -3,8 +3,12 @@ #include #include +#include +#include +#include #include #include +#include #include #include @@ -12,28 +16,24 @@ #include "nvim/api/private/converter.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" -#include "nvim/api/vim.h" #include "nvim/ascii.h" -#include "nvim/assert.h" -#include "nvim/buffer.h" -#include "nvim/charset.h" -#include "nvim/eval.h" +#include "nvim/buffer_defs.h" #include "nvim/eval/typval.h" -#include "nvim/ex_cmds_defs.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_eval.h" -#include "nvim/extmark.h" +#include "nvim/garray.h" #include "nvim/highlight_group.h" #include "nvim/lua/executor.h" #include "nvim/map.h" -#include "nvim/map_defs.h" #include "nvim/mark.h" #include "nvim/memline.h" #include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/msgpack_rpc/helpers.h" +#include "nvim/pos.h" #include "nvim/ui.h" #include "nvim/version.h" #include "nvim/vim.h" -#include "nvim/window.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "api/private/funcs_metadata.generated.h" diff --git a/src/nvim/api/private/helpers.h b/src/nvim/api/private/helpers.h index 65215fa8c8..ec97ba9ec6 100644 --- a/src/nvim/api/private/helpers.h +++ b/src/nvim/api/private/helpers.h @@ -1,11 +1,17 @@ #ifndef NVIM_API_PRIVATE_HELPERS_H #define NVIM_API_PRIVATE_HELPERS_H +#include +#include + #include "klib/kvec.h" #include "nvim/api/private/defs.h" #include "nvim/decoration.h" #include "nvim/ex_eval_defs.h" #include "nvim/getchar.h" +#include "nvim/globals.h" +#include "nvim/macros.h" +#include "nvim/map.h" #include "nvim/memory.h" #include "nvim/vim.h" diff --git a/src/nvim/api/tabpage.c b/src/nvim/api/tabpage.c index 31f9fab82a..21eb326c3b 100644 --- a/src/nvim/api/tabpage.c +++ b/src/nvim/api/tabpage.c @@ -2,13 +2,14 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include -#include #include #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/api/tabpage.h" #include "nvim/api/vim.h" +#include "nvim/buffer_defs.h" +#include "nvim/globals.h" #include "nvim/memory.h" #include "nvim/window.h" diff --git a/src/nvim/api/ui.c b/src/nvim/api/ui.c index f251e0043f..aeccddb9ea 100644 --- a/src/nvim/api/ui.c +++ b/src/nvim/api/ui.c @@ -2,26 +2,34 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include +#include +#include #include -#include #include +#include +#include +#include "klib/kvec.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/api/ui.h" #include "nvim/channel.h" -#include "nvim/cursor_shape.h" +#include "nvim/event/loop.h" +#include "nvim/event/wstream.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" +#include "nvim/main.h" #include "nvim/map.h" +#include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/msgpack_rpc/channel.h" +#include "nvim/msgpack_rpc/channel_defs.h" #include "nvim/msgpack_rpc/helpers.h" #include "nvim/option.h" -#include "nvim/popupmenu.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/vim.h" -#include "nvim/window.h" typedef struct { uint64_t channel_id; diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index d3f8c768a0..7a5ea7aa95 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -5,9 +5,13 @@ #include #include #include +#include +#include #include #include +#include "klib/kvec.h" +#include "lauxlib.h" #include "nvim/api/buffer.h" #include "nvim/api/deprecated.h" #include "nvim/api/private/converter.h" @@ -15,55 +19,52 @@ #include "nvim/api/private/dispatch.h" #include "nvim/api/private/helpers.h" #include "nvim/api/vim.h" -#include "nvim/api/window.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" -#include "nvim/buffer_defs.h" -#include "nvim/charset.h" +#include "nvim/channel.h" #include "nvim/context.h" -#include "nvim/decoration.h" -#include "nvim/decoration_provider.h" #include "nvim/drawscreen.h" -#include "nvim/edit.h" #include "nvim/eval.h" #include "nvim/eval/typval.h" -#include "nvim/eval/userfunc.h" -#include "nvim/ex_cmds_defs.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" -#include "nvim/file_search.h" -#include "nvim/fileio.h" #include "nvim/getchar.h" #include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" -#include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" -#include "nvim/insexpand.h" +#include "nvim/keycodes.h" +#include "nvim/log.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" #include "nvim/mapping.h" #include "nvim/mark.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/move.h" #include "nvim/msgpack_rpc/channel.h" -#include "nvim/msgpack_rpc/helpers.h" +#include "nvim/msgpack_rpc/channel_defs.h" #include "nvim/msgpack_rpc/unpacker.h" #include "nvim/ops.h" #include "nvim/option.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.h" #include "nvim/runtime.h" #include "nvim/state.h" #include "nvim/statusline.h" +#include "nvim/strings.h" +#include "nvim/terminal.h" #include "nvim/types.h" #include "nvim/ui.h" #include "nvim/vim.h" -#include "nvim/viml/parser/expressions.h" -#include "nvim/viml/parser/parser.h" #include "nvim/window.h" #define LINE_BUFFER_MIN_SIZE 4096 diff --git a/src/nvim/api/vimscript.c b/src/nvim/api/vimscript.c index dccc2d42d8..af1b23b712 100644 --- a/src/nvim/api/vimscript.c +++ b/src/nvim/api/vimscript.c @@ -2,26 +2,31 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include -#include -#include +#include +#include +#include +#include +#include "klib/kvec.h" #include "nvim/api/private/converter.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/api/vimscript.h" #include "nvim/ascii.h" -#include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" #include "nvim/eval.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" #include "nvim/ex_docmd.h" -#include "nvim/ops.h" +#include "nvim/garray.h" +#include "nvim/globals.h" +#include "nvim/memory.h" +#include "nvim/pos.h" #include "nvim/runtime.h" -#include "nvim/strings.h" #include "nvim/vim.h" #include "nvim/viml/parser/expressions.h" #include "nvim/viml/parser/parser.h" -#include "nvim/window.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "api/vimscript.c.generated.h" diff --git a/src/nvim/api/win_config.c b/src/nvim/api/win_config.c index 648048e970..532052f9b0 100644 --- a/src/nvim/api/win_config.c +++ b/src/nvim/api/win_config.c @@ -1,22 +1,27 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include -#include #include -#include -#include +#include +#include "klib/kvec.h" #include "nvim/api/extmark.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/api/win_config.h" #include "nvim/ascii.h" #include "nvim/buffer_defs.h" +#include "nvim/decoration.h" #include "nvim/drawscreen.h" +#include "nvim/extmark_defs.h" +#include "nvim/globals.h" +#include "nvim/grid_defs.h" #include "nvim/highlight_group.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" +#include "nvim/memory.h" #include "nvim/option.h" -#include "nvim/strings.h" +#include "nvim/pos.h" #include "nvim/syntax.h" #include "nvim/ui.h" #include "nvim/window.h" diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c index 08dcc113da..3f7c734cd1 100644 --- a/src/nvim/api/window.c +++ b/src/nvim/api/window.c @@ -10,16 +10,17 @@ #include "nvim/api/private/helpers.h" #include "nvim/api/window.h" #include "nvim/ascii.h" -#include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" #include "nvim/ex_docmd.h" +#include "nvim/gettext.h" #include "nvim/globals.h" #include "nvim/lua/executor.h" +#include "nvim/memline_defs.h" #include "nvim/move.h" -#include "nvim/option.h" -#include "nvim/syntax.h" -#include "nvim/vim.h" +#include "nvim/pos.h" +#include "nvim/types.h" #include "nvim/window.h" /// Gets the current buffer in a window diff --git a/src/nvim/arabic.c b/src/nvim/arabic.c index ac6269493d..41024cafda 100644 --- a/src/nvim/arabic.c +++ b/src/nvim/arabic.c @@ -21,9 +21,14 @@ /// Stand-Alone - unicode form-B isolated char denoted with a_s_* (NOT USED) #include +#include +#include #include "nvim/arabic.h" #include "nvim/ascii.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" +#include "nvim/option_defs.h" #include "nvim/vim.h" // Unicode values for Arabic characters. diff --git a/src/nvim/arglist.c b/src/nvim/arglist.c index bd49bc8a36..73c86addac 100644 --- a/src/nvim/arglist.c +++ b/src/nvim/arglist.c @@ -5,23 +5,36 @@ #include #include +#include +#include +#include "auto/config.h" #include "nvim/arglist.h" +#include "nvim/ascii.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds.h" #include "nvim/ex_cmds2.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_getln.h" #include "nvim/fileio.h" #include "nvim/garray.h" +#include "nvim/gettext.h" #include "nvim/globals.h" +#include "nvim/macros.h" #include "nvim/mark.h" +#include "nvim/memline_defs.h" #include "nvim/memory.h" +#include "nvim/message.h" +#include "nvim/option_defs.h" #include "nvim/os/input.h" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/regexp.h" -#include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/undo.h" #include "nvim/version.h" #include "nvim/vim.h" diff --git a/src/nvim/autocmd.c b/src/nvim/autocmd.c index 9845e6be13..4df14411c5 100644 --- a/src/nvim/autocmd.c +++ b/src/nvim/autocmd.c @@ -2,9 +2,13 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com // autocmd.c: Autocommand related functions -#include -#include "lauxlib.h" +#include +#include +#include +#include +#include + #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" @@ -12,26 +16,43 @@ #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" -#include "nvim/edit.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" #include "nvim/eval/userfunc.h" #include "nvim/eval/vars.h" +#include "nvim/event/defs.h" +#include "nvim/event/loop.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/ex_getln.h" #include "nvim/fileio.h" +#include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" #include "nvim/grid.h" +#include "nvim/hashtab.h" +#include "nvim/highlight_defs.h" #include "nvim/insexpand.h" #include "nvim/lua/executor.h" +#include "nvim/main.h" #include "nvim/map.h" +#include "nvim/memline_defs.h" +#include "nvim/memory.h" +#include "nvim/message.h" +#include "nvim/option_defs.h" #include "nvim/optionstr.h" #include "nvim/os/input.h" +#include "nvim/os/os.h" +#include "nvim/os/time.h" +#include "nvim/path.h" #include "nvim/profile.h" #include "nvim/regexp.h" #include "nvim/runtime.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/state.h" +#include "nvim/strings.h" +#include "nvim/ui.h" #include "nvim/ui_compositor.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/autocmd.h b/src/nvim/autocmd.h index 75a8a7aaa1..c159254c29 100644 --- a/src/nvim/autocmd.h +++ b/src/nvim/autocmd.h @@ -1,8 +1,20 @@ #ifndef NVIM_AUTOCMD_H #define NVIM_AUTOCMD_H +#include +#include + +#include "nvim/api/private/defs.h" #include "nvim/buffer_defs.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds_defs.h" +#include "nvim/macros.h" +#include "nvim/regexp_defs.h" +#include "nvim/types.h" + +struct AutoCmd_S; +struct AutoPatCmd_S; +struct AutoPat_S; // event_T definition #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 78b058ea9a..485a6669ef 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -20,10 +20,16 @@ // #include +#include #include #include +#include #include +#include +#include +#include "auto/config.h" +#include "klib/kvec.h" #include "nvim/api/private/helpers.h" #include "nvim/arglist.h" #include "nvim/ascii.h" @@ -44,6 +50,7 @@ #include "nvim/eval/vars.h" #include "nvim/ex_cmds.h" #include "nvim/ex_cmds2.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/ex_getln.h" @@ -53,21 +60,25 @@ #include "nvim/fold.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/hashtab.h" #include "nvim/help.h" -#include "nvim/highlight_group.h" #include "nvim/indent.h" #include "nvim/indent_c.h" #include "nvim/main.h" +#include "nvim/map.h" #include "nvim/mapping.h" #include "nvim/mark.h" -#include "nvim/mark_defs.h" #include "nvim/mbyte.h" +#include "nvim/memline_defs.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/move.h" +#include "nvim/normal.h" #include "nvim/option.h" #include "nvim/optionstr.h" +#include "nvim/os/fs_defs.h" #include "nvim/os/input.h" #include "nvim/os/os.h" #include "nvim/os/time.h" @@ -76,11 +87,14 @@ #include "nvim/quickfix.h" #include "nvim/regexp.h" #include "nvim/runtime.h" +#include "nvim/screen.h" #include "nvim/sign.h" #include "nvim/spell.h" #include "nvim/statusline.h" #include "nvim/strings.h" #include "nvim/syntax.h" +#include "nvim/terminal.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/usercmd.h" diff --git a/src/nvim/buffer.h b/src/nvim/buffer.h index 84c402d782..610d9e37ec 100644 --- a/src/nvim/buffer.h +++ b/src/nvim/buffer.h @@ -1,12 +1,20 @@ #ifndef NVIM_BUFFER_H #define NVIM_BUFFER_H +#include +#include +#include + +#include "nvim/buffer_defs.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds_defs.h" #include "nvim/func_attr.h" +#include "nvim/grid_defs.h" // for StlClickRecord #include "nvim/macros.h" #include "nvim/memline.h" -#include "nvim/pos.h" // for linenr_T +#include "nvim/memline_defs.h" +#include "nvim/pos.h" // Values for buflist_getfile() enum getf_values { diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h index 96cf352067..8b01e23afd 100644 --- a/src/nvim/buffer_defs.h +++ b/src/nvim/buffer_defs.h @@ -3,7 +3,6 @@ #include #include -// for FILE #include typedef struct file_buffer buf_T; // Forward declaration @@ -16,36 +15,23 @@ typedef struct { int br_buf_free_count; } bufref_T; -// for garray_T -#include "nvim/garray.h" -// for ScreenGrid -#include "nvim/grid_defs.h" -// for HLF_COUNT -#include "nvim/highlight_defs.h" -// for pos_T, lpos_T and linenr_T -#include "nvim/pos.h" -// for the number window-local and buffer-local options -#include "nvim/option_defs.h" -// for jump list and tag stack sizes in a buffer and mark types -#include "nvim/mark_defs.h" -// for u_header_T -#include "nvim/undo_defs.h" -// for hashtab_T -#include "nvim/hashtab.h" -// for dict_T -#include "nvim/eval/typval.h" -// for String -#include "nvim/api/private/defs.h" -// for Map(K, V) -#include "nvim/map.h" -// for kvec #include "klib/kvec.h" -// for marktree +#include "nvim/api/private/defs.h" +#include "nvim/eval/typval.h" +#include "nvim/garray.h" +#include "nvim/grid_defs.h" +#include "nvim/hashtab.h" +#include "nvim/highlight_defs.h" +#include "nvim/map.h" +#include "nvim/mark_defs.h" #include "nvim/marktree.h" // for float window title #include "nvim/extmark_defs.h" // for click definitions +#include "nvim/option_defs.h" +#include "nvim/pos.h" #include "nvim/statusline_defs.h" +#include "nvim/undo_defs.h" #define GETFILE_SUCCESS(x) ((x) <= 0) #define MODIFIABLE(buf) (buf->b_p_ma) @@ -100,17 +86,12 @@ typedef struct wininfo_S wininfo_T; typedef struct frame_S frame_T; typedef uint64_t disptick_T; // display tick type -// for struct memline (it needs memfile_T) #include "nvim/memline_defs.h" - -// for regprog_T. Needs win_T and buf_T. +#include "nvim/os/fs_defs.h" #include "nvim/regexp_defs.h" -// for synstate_T (needs reg_extmatch_T, win_T, buf_T) -#include "nvim/syntax_defs.h" -// for sign_entry_T -#include "nvim/os/fs_defs.h" // for FileID #include "nvim/sign_defs.h" -#include "nvim/terminal.h" // for Terminal +#include "nvim/syntax_defs.h" +#include "nvim/terminal.h" // The taggy struct is used to store the information about a :tag command. typedef struct taggy { diff --git a/src/nvim/buffer_updates.c b/src/nvim/buffer_updates.c index 681d5df047..bee7db1e98 100644 --- a/src/nvim/buffer_updates.c +++ b/src/nvim/buffer_updates.c @@ -1,18 +1,31 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include +#include +#include + +#include "klib/kvec.h" +#include "lauxlib.h" #include "nvim/api/buffer.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/assert.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/buffer_updates.h" #include "nvim/extmark.h" +#include "nvim/globals.h" +#include "nvim/log.h" #include "nvim/lua/executor.h" #include "nvim/memline.h" +#include "nvim/memory.h" #include "nvim/msgpack_rpc/channel.h" +#include "nvim/pos.h" +#include "nvim/types.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "buffer_updates.c.generated.h" +# include "buffer_updates.c.generated.h" // IWYU pragma: export #endif // Register a channel. Return True if the channel was added, or already added. diff --git a/src/nvim/buffer_updates.h b/src/nvim/buffer_updates.h index 3c2635be71..961fec879b 100644 --- a/src/nvim/buffer_updates.h +++ b/src/nvim/buffer_updates.h @@ -1,8 +1,8 @@ #ifndef NVIM_BUFFER_UPDATES_H #define NVIM_BUFFER_UPDATES_H -#include "nvim/buffer_defs.h" // for buf_T -#include "nvim/extmark.h" // for bcount_t +#include "nvim/buffer_defs.h" +#include "nvim/extmark.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "buffer_updates.h.generated.h" diff --git a/src/nvim/change.c b/src/nvim/change.c index a62880dfc1..461034ba36 100644 --- a/src/nvim/change.c +++ b/src/nvim/change.c @@ -3,8 +3,16 @@ /// change.c: functions related to changing text +#include +#include +#include +#include + +#include "nvim/ascii.h" #include "nvim/assert.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/buffer_updates.h" #include "nvim/change.h" #include "nvim/charset.h" @@ -13,22 +21,35 @@ #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/extmark.h" -#include "nvim/fileio.h" #include "nvim/fold.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/grid_defs.h" +#include "nvim/highlight_defs.h" #include "nvim/indent.h" #include "nvim/indent_c.h" #include "nvim/insexpand.h" +#include "nvim/macros.h" #include "nvim/mark.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/move.h" #include "nvim/option.h" +#include "nvim/os/time.h" #include "nvim/plines.h" +#include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/state.h" +#include "nvim/strings.h" #include "nvim/textformat.h" #include "nvim/ui.h" #include "nvim/undo.h" +#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "change.c.generated.h" diff --git a/src/nvim/change.h b/src/nvim/change.h index fdfa8a29ec..d1d016c630 100644 --- a/src/nvim/change.h +++ b/src/nvim/change.h @@ -1,8 +1,8 @@ #ifndef NVIM_CHANGE_H #define NVIM_CHANGE_H -#include "nvim/buffer_defs.h" // for buf_T -#include "nvim/pos.h" // for linenr_T +#include "nvim/buffer_defs.h" +#include "nvim/pos.h" // flags for open_line() #define OPENLINE_DELSPACES 0x01 // delete spaces after cursor diff --git a/src/nvim/channel.c b/src/nvim/channel.c index 7c5bc1c410..f2e5a37b34 100644 --- a/src/nvim/channel.c +++ b/src/nvim/channel.c @@ -1,24 +1,42 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include +#include +#include +#include +#include + +#include "lauxlib.h" #include "nvim/api/private/converter.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" -#include "nvim/api/ui.h" #include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" #include "nvim/channel.h" #include "nvim/eval.h" #include "nvim/eval/encode.h" +#include "nvim/eval/typval.h" +#include "nvim/event/loop.h" +#include "nvim/event/rstream.h" #include "nvim/event/socket.h" +#include "nvim/event/wstream.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/log.h" #include "nvim/lua/executor.h" +#include "nvim/main.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/msgpack_rpc/channel.h" #include "nvim/msgpack_rpc/server.h" -#include "nvim/os/fs.h" +#include "nvim/os/os_defs.h" #include "nvim/os/shell.h" +#include "nvim/rbuffer.h" #ifdef MSWIN # include "nvim/os/os_win_console.h" # include "nvim/os/pty_conpty_win.h" #endif -#include "nvim/ascii.h" #include "nvim/path.h" static bool did_stdio = false; diff --git a/src/nvim/channel.h b/src/nvim/channel.h index 0f1b481792..d7f32d8988 100644 --- a/src/nvim/channel.h +++ b/src/nvim/channel.h @@ -1,13 +1,26 @@ #ifndef NVIM_CHANNEL_H #define NVIM_CHANNEL_H +#include +#include +#include + #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/event/libuv_process.h" +#include "nvim/event/multiqueue.h" #include "nvim/event/process.h" #include "nvim/event/socket.h" +#include "nvim/event/stream.h" +#include "nvim/garray.h" +#include "nvim/macros.h" #include "nvim/main.h" +#include "nvim/map.h" +#include "nvim/map_defs.h" #include "nvim/msgpack_rpc/channel_defs.h" #include "nvim/os/pty_process.h" +#include "nvim/terminal.h" +#include "nvim/types.h" #define CHAN_STDIO 1 #define CHAN_STDERR 2 diff --git a/src/nvim/charset.c b/src/nvim/charset.c index f5db03b0b4..82a4698058 100644 --- a/src/nvim/charset.c +++ b/src/nvim/charset.c @@ -6,28 +6,35 @@ /// Code related to character sets. #include +#include #include +#include +#include #include -#include +#include "auto/config.h" #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor.h" -#include "nvim/func_attr.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/garray.h" +#include "nvim/globals.h" +#include "nvim/grid_defs.h" #include "nvim/indent.h" -#include "nvim/main.h" +#include "nvim/keycodes.h" +#include "nvim/macros.h" #include "nvim/mark.h" #include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/move.h" #include "nvim/option.h" -#include "nvim/os_unix.h" #include "nvim/path.h" #include "nvim/plines.h" +#include "nvim/pos.h" #include "nvim/state.h" -#include "nvim/strings.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/charset.h b/src/nvim/charset.h index c4e5d9522b..978a357aa7 100644 --- a/src/nvim/charset.h +++ b/src/nvim/charset.h @@ -1,6 +1,8 @@ #ifndef NVIM_CHARSET_H #define NVIM_CHARSET_H +#include + #include "nvim/buffer_defs.h" #include "nvim/eval/typval.h" #include "nvim/option_defs.h" diff --git a/src/nvim/cmdexpand.c b/src/nvim/cmdexpand.c index e0bf562bb8..39865d7508 100644 --- a/src/nvim/cmdexpand.c +++ b/src/nvim/cmdexpand.c @@ -3,9 +3,20 @@ // cmdexpand.c: functions for command-line completion +#include +#include +#include +#include +#include +#include +#include + +#include "auto/config.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/arglist.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/cmdexpand.h" @@ -13,26 +24,39 @@ #include "nvim/drawscreen.h" #include "nvim/eval.h" #include "nvim/eval/funcs.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" #include "nvim/ex_cmds.h" -#include "nvim/ex_cmds2.h" #include "nvim/ex_docmd.h" #include "nvim/ex_getln.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/grid.h" +#include "nvim/hashtab.h" #include "nvim/help.h" +#include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" +#include "nvim/keycodes.h" #include "nvim/locale.h" +#include "nvim/log.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" #include "nvim/mapping.h" +#include "nvim/mbyte.h" +#include "nvim/memory.h" #include "nvim/menu.h" +#include "nvim/message.h" #include "nvim/option.h" #include "nvim/os/os.h" +#include "nvim/path.h" #include "nvim/popupmenu.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/regexp.h" -#include "nvim/screen.h" +#include "nvim/runtime.h" #include "nvim/search.h" #include "nvim/sign.h" #include "nvim/statusline.h" diff --git a/src/nvim/cmdhist.c b/src/nvim/cmdhist.c index 0ae586743f..1253f9cc2a 100644 --- a/src/nvim/cmdhist.c +++ b/src/nvim/cmdhist.c @@ -3,14 +3,30 @@ // cmdhist.c: Functions for the history of the command-line. +#include +#include +#include +#include +#include +#include + #include "nvim/ascii.h" #include "nvim/charset.h" #include "nvim/cmdhist.h" +#include "nvim/eval/typval.h" #include "nvim/ex_cmds.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_getln.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/macros.h" +#include "nvim/memory.h" +#include "nvim/message.h" +#include "nvim/option_defs.h" +#include "nvim/pos.h" #include "nvim/regexp.h" #include "nvim/strings.h" -#include "nvim/ui.h" +#include "nvim/types.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/cmdhist.h b/src/nvim/cmdhist.h index 8b7bb7ac24..f86a2f855c 100644 --- a/src/nvim/cmdhist.h +++ b/src/nvim/cmdhist.h @@ -2,6 +2,7 @@ #define NVIM_CMDHIST_H #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds_defs.h" #include "nvim/os/time.h" diff --git a/src/nvim/context.c b/src/nvim/context.c index c765b95733..5ea843e023 100644 --- a/src/nvim/context.c +++ b/src/nvim/context.c @@ -3,16 +3,28 @@ // Context: snapshot of the entire editor state as one big object/map +#include +#include +#include + #include "nvim/api/private/converter.h" #include "nvim/api/private/helpers.h" -#include "nvim/api/vim.h" #include "nvim/api/vimscript.h" #include "nvim/context.h" #include "nvim/eval/encode.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" #include "nvim/ex_docmd.h" +#include "nvim/gettext.h" +#include "nvim/hashtab.h" +#include "nvim/keycodes.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/option.h" #include "nvim/shada.h" +#include "nvim/types.h" +#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "context.c.generated.h" diff --git a/src/nvim/context.h b/src/nvim/context.h index ae77e66516..7a1224d876 100644 --- a/src/nvim/context.h +++ b/src/nvim/context.h @@ -2,6 +2,8 @@ #define NVIM_CONTEXT_H #include +#include +#include #include "klib/kvec.h" #include "nvim/api/private/defs.h" diff --git a/src/nvim/cursor.c b/src/nvim/cursor.c index 6c0475822b..811f397cb8 100644 --- a/src/nvim/cursor.c +++ b/src/nvim/cursor.c @@ -1,24 +1,31 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include #include #include +#include #include "nvim/ascii.h" #include "nvim/assert.h" +#include "nvim/buffer_defs.h" #include "nvim/change.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" -#include "nvim/extmark.h" #include "nvim/fold.h" +#include "nvim/globals.h" +#include "nvim/macros.h" #include "nvim/mark.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/move.h" #include "nvim/option.h" #include "nvim/plines.h" +#include "nvim/pos.h" #include "nvim/state.h" +#include "nvim/types.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/cursor_shape.c b/src/nvim/cursor_shape.c index 68522bdaa0..f21e632036 100644 --- a/src/nvim/cursor_shape.c +++ b/src/nvim/cursor_shape.c @@ -1,15 +1,23 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include +#include #include +#include +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" #include "nvim/charset.h" #include "nvim/cursor_shape.h" #include "nvim/ex_getln.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/highlight_group.h" +#include "nvim/log.h" +#include "nvim/macros.h" +#include "nvim/memory.h" +#include "nvim/option_defs.h" #include "nvim/strings.h" #include "nvim/ui.h" #include "nvim/vim.h" diff --git a/src/nvim/debugger.c b/src/nvim/debugger.c index e7c376621b..71959cfa29 100644 --- a/src/nvim/debugger.c +++ b/src/nvim/debugger.c @@ -5,17 +5,33 @@ /// /// Vim script debugger functions +#include +#include +#include +#include + #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/debugger.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_getln.h" #include "nvim/fileio.h" +#include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" #include "nvim/globals.h" +#include "nvim/keycodes.h" +#include "nvim/macros.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/os/os.h" +#include "nvim/path.h" #include "nvim/pos.h" #include "nvim/regexp.h" #include "nvim/runtime.h" diff --git a/src/nvim/decoration.c b/src/nvim/decoration.c index 230d96a15f..037eb9f0d9 100644 --- a/src/nvim/decoration.c +++ b/src/nvim/decoration.c @@ -1,16 +1,17 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include "nvim/api/ui.h" +#include + #include "nvim/buffer.h" #include "nvim/decoration.h" #include "nvim/drawscreen.h" #include "nvim/extmark.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" -#include "nvim/lua/executor.h" -#include "nvim/move.h" -#include "nvim/vim.h" +#include "nvim/memory.h" +#include "nvim/pos.h" +#include "nvim/sign_defs.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "decoration.c.generated.h" diff --git a/src/nvim/decoration.h b/src/nvim/decoration.h index 8f016c103b..cee1eb2f94 100644 --- a/src/nvim/decoration.h +++ b/src/nvim/decoration.h @@ -1,9 +1,17 @@ #ifndef NVIM_DECORATION_H #define NVIM_DECORATION_H +#include +#include +#include + +#include "klib/kvec.h" #include "nvim/buffer_defs.h" #include "nvim/extmark_defs.h" +#include "nvim/macros.h" +#include "nvim/marktree.h" #include "nvim/pos.h" +#include "nvim/types.h" // actual Decoration data is in extmark_defs.h diff --git a/src/nvim/decoration_provider.c b/src/nvim/decoration_provider.c index f356efffdc..ed21474935 100644 --- a/src/nvim/decoration_provider.c +++ b/src/nvim/decoration_provider.c @@ -1,14 +1,23 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include +#include +#include + #include "klib/kvec.h" +#include "lauxlib.h" #include "nvim/api/extmark.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" -#include "nvim/buffer.h" -#include "nvim/decoration.h" +#include "nvim/buffer_defs.h" #include "nvim/decoration_provider.h" +#include "nvim/globals.h" #include "nvim/highlight.h" +#include "nvim/log.h" #include "nvim/lua/executor.h" +#include "nvim/memory.h" +#include "nvim/pos.h" static kvec_t(DecorProvider) decor_providers = KV_INITIAL_VALUE; diff --git a/src/nvim/decoration_provider.h b/src/nvim/decoration_provider.h index 852b1583b9..b91ddabdfd 100644 --- a/src/nvim/decoration_provider.h +++ b/src/nvim/decoration_provider.h @@ -1,7 +1,12 @@ #ifndef NVIM_DECORATION_PROVIDER_H #define NVIM_DECORATION_PROVIDER_H +#include + +#include "klib/kvec.h" #include "nvim/buffer_defs.h" +#include "nvim/macros.h" +#include "nvim/types.h" typedef struct { NS ns_id; diff --git a/src/nvim/diff.c b/src/nvim/diff.c index b20d0976e4..4b71142c11 100644 --- a/src/nvim/diff.c +++ b/src/nvim/diff.c @@ -10,9 +10,15 @@ /// - Use the compiled-in xdiff library. /// - Let 'diffexpr' do the work, using files. +#include +#include #include #include +#include +#include +#include +#include "auto/config.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" #include "nvim/buffer.h" @@ -23,10 +29,14 @@ #include "nvim/drawscreen.h" #include "nvim/eval.h" #include "nvim/ex_cmds.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" +#include "nvim/extmark_defs.h" #include "nvim/fileio.h" #include "nvim/fold.h" #include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/linematch.h" #include "nvim/mark.h" #include "nvim/mbyte.h" @@ -37,10 +47,13 @@ #include "nvim/normal.h" #include "nvim/option.h" #include "nvim/optionstr.h" +#include "nvim/os/fs_defs.h" #include "nvim/os/os.h" #include "nvim/os/shell.h" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/vim.h" diff --git a/src/nvim/diff.h b/src/nvim/diff.h index 53fc5aa077..1f64465336 100644 --- a/src/nvim/diff.h +++ b/src/nvim/diff.h @@ -1,7 +1,10 @@ #ifndef NVIM_DIFF_H #define NVIM_DIFF_H +#include + #include "nvim/ex_cmds_defs.h" +#include "nvim/macros.h" #include "nvim/pos.h" // Value set from 'diffopt'. diff --git a/src/nvim/digraph.c b/src/nvim/digraph.c index c4a36e783f..2ca608ad93 100644 --- a/src/nvim/digraph.c +++ b/src/nvim/digraph.c @@ -8,24 +8,34 @@ #include #include #include +#include #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/digraph.h" #include "nvim/drawscreen.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_getln.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" +#include "nvim/keycodes.h" #include "nvim/mapping.h" #include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/normal.h" +#include "nvim/option_defs.h" #include "nvim/os/input.h" #include "nvim/runtime.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/vim.h" typedef int result_T; diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c index 6d42b91507..9d6c95e20a 100644 --- a/src/nvim/drawline.c +++ b/src/nvim/drawline.c @@ -5,37 +5,50 @@ // This is the middle level, drawscreen.c is the top and grid.c/screen.c the lower level. #include -#include +#include #include +#include +#include #include #include "nvim/arabic.h" +#include "nvim/ascii.h" #include "nvim/buffer.h" -#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/cursor_shape.h" #include "nvim/decoration.h" +#include "nvim/decoration_provider.h" #include "nvim/diff.h" #include "nvim/drawline.h" +#include "nvim/extmark_defs.h" #include "nvim/fold.h" +#include "nvim/garray.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" #include "nvim/indent.h" +#include "nvim/mark.h" #include "nvim/match.h" +#include "nvim/mbyte.h" +#include "nvim/memline.h" +#include "nvim/memory.h" #include "nvim/move.h" #include "nvim/option.h" #include "nvim/plines.h" +#include "nvim/pos.h" #include "nvim/quickfix.h" -#include "nvim/search.h" +#include "nvim/screen.h" #include "nvim/sign.h" #include "nvim/spell.h" #include "nvim/state.h" +#include "nvim/strings.h" #include "nvim/syntax.h" +#include "nvim/terminal.h" #include "nvim/types.h" -#include "nvim/undo.h" -#include "nvim/window.h" +#include "nvim/ui.h" +#include "nvim/vim.h" #define MB_FILLER_CHAR '<' // character used when a double-width character // doesn't fit. diff --git a/src/nvim/drawline.h b/src/nvim/drawline.h index e50969983e..9f60b46e1b 100644 --- a/src/nvim/drawline.h +++ b/src/nvim/drawline.h @@ -1,9 +1,15 @@ #ifndef NVIM_DRAWLINE_H #define NVIM_DRAWLINE_H +#include +#include + +#include "klib/kvec.h" #include "nvim/decoration_provider.h" #include "nvim/fold.h" +#include "nvim/macros.h" #include "nvim/screen.h" +#include "nvim/types.h" // Maximum columns for terminal highlight attributes #define TERM_ATTRS_MAX 1024 diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c index fe2c9c3801..4a300384e7 100644 --- a/src/nvim/drawscreen.c +++ b/src/nvim/drawscreen.c @@ -59,30 +59,47 @@ #include #include +#include "klib/kvec.h" +#include "nvim/api/private/defs.h" +#include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" -#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cmdexpand.h" +#include "nvim/decoration.h" +#include "nvim/decoration_provider.h" #include "nvim/diff.h" +#include "nvim/drawline.h" #include "nvim/drawscreen.h" #include "nvim/ex_getln.h" #include "nvim/extmark_defs.h" +#include "nvim/fold.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" #include "nvim/insexpand.h" #include "nvim/match.h" +#include "nvim/mbyte.h" +#include "nvim/memline.h" +#include "nvim/message.h" #include "nvim/move.h" +#include "nvim/normal.h" #include "nvim/option.h" #include "nvim/plines.h" #include "nvim/popupmenu.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/regexp.h" +#include "nvim/screen.h" #include "nvim/statusline.h" #include "nvim/syntax.h" +#include "nvim/terminal.h" +#include "nvim/types.h" +#include "nvim/ui.h" #include "nvim/ui_compositor.h" -#include "nvim/undo.h" #include "nvim/version.h" +#include "nvim/vim.h" #include "nvim/window.h" /// corner value flags for hsep_connected and vsep_connected diff --git a/src/nvim/drawscreen.h b/src/nvim/drawscreen.h index ef99899581..c14703dfa9 100644 --- a/src/nvim/drawscreen.h +++ b/src/nvim/drawscreen.h @@ -1,7 +1,10 @@ #ifndef NVIM_DRAWSCREEN_H #define NVIM_DRAWSCREEN_H +#include + #include "nvim/drawline.h" +#include "nvim/macros.h" /// flags for update_screen() /// The higher the value, the higher the priority diff --git a/src/nvim/edit.c b/src/nvim/edit.c index 4540ddf4fe..91a67c7c50 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -4,11 +4,14 @@ // edit.c: functions for Insert mode #include +#include #include #include #include +#include #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/change.h" #include "nvim/charset.h" @@ -17,20 +20,23 @@ #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval.h" -#include "nvim/event/loop.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" -#include "nvim/ex_getln.h" #include "nvim/extmark.h" #include "nvim/fileio.h" #include "nvim/fold.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/grid.h" +#include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" #include "nvim/indent.h" #include "nvim/indent_c.h" #include "nvim/insexpand.h" #include "nvim/keycodes.h" -#include "nvim/main.h" +#include "nvim/macros.h" #include "nvim/mapping.h" #include "nvim/mark.h" #include "nvim/mbyte.h" @@ -43,19 +49,18 @@ #include "nvim/ops.h" #include "nvim/option.h" #include "nvim/os/input.h" -#include "nvim/os/time.h" -#include "nvim/path.h" #include "nvim/plines.h" #include "nvim/popupmenu.h" -#include "nvim/quickfix.h" +#include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/search.h" -#include "nvim/spell.h" #include "nvim/state.h" #include "nvim/strings.h" #include "nvim/syntax.h" #include "nvim/terminal.h" #include "nvim/textformat.h" #include "nvim/textobject.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/vim.h" diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 89569e9714..4b52cae777 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -3,12 +3,19 @@ // eval.c: Expression evaluation. +#include +#include +#include #include +#include #include +#include +#include "auto/config.h" +#include "nvim/api/private/defs.h" #include "nvim/ascii.h" -#include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/change.h" #include "nvim/channel.h" #include "nvim/charset.h" @@ -22,39 +29,60 @@ #include "nvim/eval/typval.h" #include "nvim/eval/userfunc.h" #include "nvim/eval/vars.h" +#include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" +#include "nvim/event/process.h" #include "nvim/ex_cmds.h" -#include "nvim/ex_cmds2.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/ex_getln.h" #include "nvim/ex_session.h" +#include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/grid_defs.h" #include "nvim/highlight_group.h" #include "nvim/insexpand.h" +#include "nvim/keycodes.h" +#include "nvim/lib/queue.h" #include "nvim/locale.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" +#include "nvim/main.h" +#include "nvim/map.h" #include "nvim/mark.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/move.h" +#include "nvim/msgpack_rpc/channel_defs.h" #include "nvim/ops.h" #include "nvim/option.h" #include "nvim/optionstr.h" -#include "nvim/os/input.h" +#include "nvim/os/fileio.h" +#include "nvim/os/fs_defs.h" +#include "nvim/os/os.h" #include "nvim/os/shell.h" +#include "nvim/os/stdpaths_defs.h" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/quickfix.h" #include "nvim/regexp.h" #include "nvim/runtime.h" -#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/sign.h" -#include "nvim/syntax.h" +#include "nvim/strings.h" #include "nvim/tag.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/ui_compositor.h" #include "nvim/undo.h" +#include "nvim/usercmd.h" #include "nvim/version.h" +#include "nvim/vim.h" #include "nvim/window.h" // TODO(ZyX-I): Remove DICT_MAXNEST, make users be non-recursive instead diff --git a/src/nvim/eval.h b/src/nvim/eval.h index afebdf5acb..61c1363d54 100644 --- a/src/nvim/eval.h +++ b/src/nvim/eval.h @@ -1,12 +1,17 @@ #ifndef NVIM_EVAL_H #define NVIM_EVAL_H +#include +#include + #include "nvim/buffer_defs.h" #include "nvim/channel.h" -#include "nvim/event/time.h" // For TimeWatcher -#include "nvim/ex_cmds_defs.h" // For exarg_T -#include "nvim/os/fileio.h" // For FileDescriptor -#include "nvim/os/stdpaths_defs.h" // For XDGVarType +#include "nvim/eval/typval_defs.h" +#include "nvim/event/time.h" +#include "nvim/ex_cmds_defs.h" +#include "nvim/hashtab.h" +#include "nvim/os/fileio.h" +#include "nvim/os/stdpaths_defs.h" #define COPYID_INC 2 #define COPYID_MASK (~0x1) diff --git a/src/nvim/eval/decode.c b/src/nvim/eval/decode.c index f677148e08..cd1479f150 100644 --- a/src/nvim/eval/decode.c +++ b/src/nvim/eval/decode.c @@ -1,20 +1,31 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include +#include +#include +#include #include +#include +#include +#include #include "klib/kvec.h" #include "nvim/ascii.h" -#include "nvim/charset.h" // vim_str2nr +#include "nvim/charset.h" #include "nvim/eval.h" #include "nvim/eval/decode.h" #include "nvim/eval/encode.h" #include "nvim/eval/typval.h" -#include "nvim/globals.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/hashtab.h" #include "nvim/macros.h" +#include "nvim/mbyte.h" +#include "nvim/memory.h" #include "nvim/message.h" -#include "nvim/vim.h" // OK, FAIL +#include "nvim/types.h" +#include "nvim/vim.h" /// Helper structure for container_struct typedef struct { diff --git a/src/nvim/eval/encode.c b/src/nvim/eval/encode.c index 82c9f04f8f..3e002ef52c 100644 --- a/src/nvim/eval/encode.c +++ b/src/nvim/eval/encode.c @@ -10,23 +10,28 @@ #include #include #include -#include +#include #include +#include +#include #include "klib/kvec.h" +#include "msgpack/pack.h" #include "nvim/ascii.h" -#include "nvim/buffer_defs.h" -#include "nvim/charset.h" // vim_isprintc() #include "nvim/eval.h" #include "nvim/eval/encode.h" #include "nvim/eval/typval.h" #include "nvim/eval/typval_encode.h" #include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/hashtab.h" #include "nvim/macros.h" #include "nvim/math.h" #include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/message.h" +#include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/vim.h" // For _() const char *const encode_bool_var_names[] = { diff --git a/src/nvim/eval/encode.h b/src/nvim/eval/encode.h index c0c98e0990..5c217abb5a 100644 --- a/src/nvim/eval/encode.h +++ b/src/nvim/eval/encode.h @@ -2,11 +2,14 @@ #define NVIM_EVAL_ENCODE_H #include +#include #include #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/garray.h" -#include "nvim/vim.h" // For STRLEN +#include "nvim/vim.h" /// Convert VimL value to msgpack string /// diff --git a/src/nvim/eval/executor.c b/src/nvim/eval/executor.c index e253098df5..86d6063b01 100644 --- a/src/nvim/eval/executor.c +++ b/src/nvim/eval/executor.c @@ -1,15 +1,23 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include +#include + #include "nvim/eval.h" #include "nvim/eval/executor.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/garray.h" +#include "nvim/gettext.h" #include "nvim/globals.h" #include "nvim/message.h" +#include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "eval/executor.c.generated.h" +# include "eval/executor.c.generated.h" // IWYU pragma: export #endif char *e_listidx = N_("E684: list index out of range: %" PRId64); diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index 8acdc3256c..244802a183 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -1,25 +1,42 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include +#include #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "auto/config.h" #include "nvim/api/private/converter.h" +#include "nvim/api/private/defs.h" +#include "nvim/api/private/dispatch.h" #include "nvim/api/private/helpers.h" #include "nvim/api/vim.h" -#include "nvim/arglist.h" #include "nvim/ascii.h" #include "nvim/assert.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/change.h" #include "nvim/channel.h" #include "nvim/charset.h" #include "nvim/cmdexpand.h" -#include "nvim/cmdhist.h" #include "nvim/context.h" #include "nvim/cursor.h" #include "nvim/diff.h" -#include "nvim/digraph.h" #include "nvim/edit.h" #include "nvim/eval.h" #include "nvim/eval/decode.h" @@ -29,54 +46,71 @@ #include "nvim/eval/typval.h" #include "nvim/eval/userfunc.h" #include "nvim/eval/vars.h" +#include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" +#include "nvim/event/process.h" +#include "nvim/event/time.h" #include "nvim/ex_cmds.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/ex_getln.h" #include "nvim/file_search.h" #include "nvim/fileio.h" -#include "nvim/fold.h" +#include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" #include "nvim/globals.h" +#include "nvim/grid_defs.h" +#include "nvim/hashtab.h" +#include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" #include "nvim/indent.h" #include "nvim/indent_c.h" #include "nvim/input.h" -#include "nvim/insexpand.h" +#include "nvim/keycodes.h" #include "nvim/lua/executor.h" #include "nvim/macros.h" -#include "nvim/mapping.h" +#include "nvim/main.h" #include "nvim/mark.h" -#include "nvim/match.h" #include "nvim/math.h" +#include "nvim/mbyte.h" +#include "nvim/memfile_defs.h" #include "nvim/memline.h" +#include "nvim/memory.h" #include "nvim/menu.h" +#include "nvim/message.h" #include "nvim/mouse.h" #include "nvim/move.h" #include "nvim/msgpack_rpc/channel.h" +#include "nvim/msgpack_rpc/channel_defs.h" #include "nvim/msgpack_rpc/server.h" +#include "nvim/normal.h" #include "nvim/ops.h" #include "nvim/option.h" #include "nvim/optionstr.h" #include "nvim/os/dl.h" +#include "nvim/os/fileio.h" +#include "nvim/os/fs_defs.h" +#include "nvim/os/os.h" +#include "nvim/os/pty_process.h" #include "nvim/os/shell.h" +#include "nvim/os/stdpaths_defs.h" +#include "nvim/os/time.h" #include "nvim/path.h" #include "nvim/plines.h" #include "nvim/popupmenu.h" +#include "nvim/pos.h" #include "nvim/profile.h" -#include "nvim/quickfix.h" #include "nvim/regexp.h" #include "nvim/runtime.h" -#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/sha256.h" -#include "nvim/sign.h" #include "nvim/spell.h" #include "nvim/spellsuggest.h" #include "nvim/state.h" +#include "nvim/strings.h" #include "nvim/syntax.h" #include "nvim/tag.h" -#include "nvim/testing.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/version.h" @@ -105,6 +139,7 @@ typedef enum { PRAGMA_DIAG_PUSH_IGNORE_MISSING_PROTOTYPES PRAGMA_DIAG_PUSH_IGNORE_IMPLICIT_FALLTHROUGH # include "funcs.generated.h" + PRAGMA_DIAG_POP PRAGMA_DIAG_POP #endif diff --git a/src/nvim/eval/funcs.h b/src/nvim/eval/funcs.h index adff0b2441..1ae031a952 100644 --- a/src/nvim/eval/funcs.h +++ b/src/nvim/eval/funcs.h @@ -1,9 +1,14 @@ #ifndef NVIM_EVAL_FUNCS_H #define NVIM_EVAL_FUNCS_H +#include +#include + #include "nvim/api/private/dispatch.h" #include "nvim/buffer_defs.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/types.h" /// Prototype of C function that implements VimL function typedef void (*VimLFunc)(typval_T *args, typval_T *rvar, EvalFuncData data); diff --git a/src/nvim/eval/gc.c b/src/nvim/eval/gc.c index 633e6abacf..6a54c4ddc1 100644 --- a/src/nvim/eval/gc.c +++ b/src/nvim/eval/gc.c @@ -1,11 +1,12 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include + #include "nvim/eval/gc.h" -#include "nvim/eval/typval.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "eval/gc.c.generated.h" +# include "eval/gc.c.generated.h" // IWYU pragma: export #endif /// Head of list of all dictionaries diff --git a/src/nvim/eval/gc.h b/src/nvim/eval/gc.h index c2e862e469..3185750c3b 100644 --- a/src/nvim/eval/gc.h +++ b/src/nvim/eval/gc.h @@ -2,6 +2,7 @@ #define NVIM_EVAL_GC_H #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" extern dict_T *gc_first_dict; extern list_T *gc_first_list; diff --git a/src/nvim/eval/typval.c b/src/nvim/eval/typval.c index 7e4066adb7..f38e07f09d 100644 --- a/src/nvim/eval/typval.c +++ b/src/nvim/eval/typval.c @@ -28,9 +28,9 @@ #include "nvim/lua/executor.h" #include "nvim/macros.h" #include "nvim/mbyte.h" +#include "nvim/mbyte_defs.h" #include "nvim/memory.h" #include "nvim/message.h" -#include "nvim/os/fileio.h" #include "nvim/os/input.h" #include "nvim/pos.h" #include "nvim/types.h" @@ -3150,6 +3150,7 @@ static inline void _nothing_conv_dict_end(typval_T *const tv, dict_T **const dic #define TYPVAL_ENCODE_FIRST_ARG_TYPE const void *const #define TYPVAL_ENCODE_FIRST_ARG_NAME ignored #include "nvim/eval/typval_encode.c.h" + #undef TYPVAL_ENCODE_SCOPE #undef TYPVAL_ENCODE_NAME #undef TYPVAL_ENCODE_FIRST_ARG_TYPE diff --git a/src/nvim/eval/typval.h b/src/nvim/eval/typval.h index 6757d058ef..8ff7f7f43a 100644 --- a/src/nvim/eval/typval.h +++ b/src/nvim/eval/typval.h @@ -4,14 +4,19 @@ #include #include #include +#include #include #include "nvim/eval/typval_defs.h" #include "nvim/func_attr.h" +#include "nvim/garray.h" #include "nvim/gettext.h" +#include "nvim/hashtab.h" +#include "nvim/lib/queue.h" #include "nvim/macros.h" #include "nvim/mbyte_defs.h" #include "nvim/message.h" +#include "nvim/types.h" #ifdef LOG_LIST_ACTIONS # include "nvim/memory.h" diff --git a/src/nvim/eval/userfunc.c b/src/nvim/eval/userfunc.c index c01bd1e3df..2210a61d7c 100644 --- a/src/nvim/eval/userfunc.c +++ b/src/nvim/eval/userfunc.c @@ -3,28 +3,48 @@ // User defined function support +#include +#include +#include +#include +#include +#include + +#include "lauxlib.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/debugger.h" -#include "nvim/edit.h" #include "nvim/eval.h" #include "nvim/eval/encode.h" #include "nvim/eval/funcs.h" +#include "nvim/eval/typval.h" #include "nvim/eval/userfunc.h" #include "nvim/eval/vars.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/ex_getln.h" -#include "nvim/fileio.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" #include "nvim/globals.h" #include "nvim/insexpand.h" +#include "nvim/keycodes.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" +#include "nvim/memline_defs.h" +#include "nvim/memory.h" +#include "nvim/message.h" +#include "nvim/option_defs.h" #include "nvim/os/input.h" +#include "nvim/path.h" #include "nvim/profile.h" #include "nvim/regexp.h" #include "nvim/runtime.h" #include "nvim/search.h" +#include "nvim/strings.h" #include "nvim/ui.h" #include "nvim/vim.h" diff --git a/src/nvim/eval/userfunc.h b/src/nvim/eval/userfunc.h index ca09c2a6ec..1255f86103 100644 --- a/src/nvim/eval/userfunc.h +++ b/src/nvim/eval/userfunc.h @@ -1,8 +1,18 @@ #ifndef NVIM_EVAL_USERFUNC_H #define NVIM_EVAL_USERFUNC_H +#include +#include + #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds_defs.h" +#include "nvim/garray.h" +#include "nvim/hashtab.h" +#include "nvim/pos.h" +#include "nvim/types.h" + +struct funccal_entry; // From user function to hashitem and back. #define UF2HIKEY(fp) ((fp)->uf_name) diff --git a/src/nvim/eval/vars.c b/src/nvim/eval/vars.c index 3a625df988..54ff0a53d3 100644 --- a/src/nvim/eval/vars.c +++ b/src/nvim/eval/vars.c @@ -3,24 +3,42 @@ // eval/vars.c: functions for dealing with variables +#include +#include +#include +#include +#include +#include + #include "nvim/ascii.h" #include "nvim/autocmd.h" -#include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" #include "nvim/eval/encode.h" #include "nvim/eval/funcs.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" #include "nvim/eval/vars.h" #include "nvim/ex_cmds.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/hashtab.h" +#include "nvim/macros.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/ops.h" #include "nvim/option.h" -#include "nvim/screen.h" +#include "nvim/os/os.h" #include "nvim/search.h" +#include "nvim/strings.h" +#include "nvim/types.h" +#include "nvim/vim.h" #include "nvim/window.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/eval/vars.h b/src/nvim/eval/vars.h index 73efc4938a..b87c9d62cb 100644 --- a/src/nvim/eval/vars.h +++ b/src/nvim/eval/vars.h @@ -1,7 +1,7 @@ #ifndef NVIM_EVAL_VARS_H #define NVIM_EVAL_VARS_H -#include "nvim/ex_cmds_defs.h" // For exarg_T +#include "nvim/ex_cmds_defs.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "eval/vars.h.generated.h" diff --git a/src/nvim/event/libuv_process.c b/src/nvim/event/libuv_process.c index f012bacdd9..c5d3b94c95 100644 --- a/src/nvim/event/libuv_process.c +++ b/src/nvim/event/libuv_process.c @@ -1,14 +1,14 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include +#include #include +#include "nvim/eval/typval.h" #include "nvim/event/libuv_process.h" #include "nvim/event/loop.h" #include "nvim/event/process.h" -#include "nvim/event/rstream.h" -#include "nvim/event/wstream.h" +#include "nvim/event/stream.h" #include "nvim/log.h" #include "nvim/macros.h" #include "nvim/os/os.h" diff --git a/src/nvim/event/libuv_process.h b/src/nvim/event/libuv_process.h index 1132ce79ca..8f987847d8 100644 --- a/src/nvim/event/libuv_process.h +++ b/src/nvim/event/libuv_process.h @@ -3,6 +3,7 @@ #include +#include "nvim/event/loop.h" #include "nvim/event/process.h" typedef struct libuv_process { diff --git a/src/nvim/event/loop.c b/src/nvim/event/loop.c index 3329cbd574..934f5fc69a 100644 --- a/src/nvim/event/loop.c +++ b/src/nvim/event/loop.c @@ -1,13 +1,16 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include +#include #include +#include #include +#include "nvim/event/defs.h" #include "nvim/event/loop.h" -#include "nvim/event/process.h" #include "nvim/log.h" +#include "nvim/memory.h" +#include "nvim/os/time.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "event/loop.c.generated.h" diff --git a/src/nvim/event/multiqueue.c b/src/nvim/event/multiqueue.c index 40d20033e0..e05084b656 100644 --- a/src/nvim/event/multiqueue.c +++ b/src/nvim/event/multiqueue.c @@ -46,14 +46,14 @@ // other sources and focus on a specific channel. #include -#include #include -#include +#include #include +#include "nvim/event/defs.h" #include "nvim/event/multiqueue.h" +#include "nvim/lib/queue.h" #include "nvim/memory.h" -#include "nvim/os/time.h" typedef struct multiqueue_item MultiQueueItem; struct multiqueue_item { diff --git a/src/nvim/event/process.c b/src/nvim/event/process.c index e029f778f6..e74e95669d 100644 --- a/src/nvim/event/process.c +++ b/src/nvim/event/process.c @@ -2,20 +2,23 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include +#include +#include #include #include +#include "klib/klist.h" #include "nvim/event/libuv_process.h" #include "nvim/event/loop.h" #include "nvim/event/process.h" -#include "nvim/event/rstream.h" -#include "nvim/event/wstream.h" #include "nvim/globals.h" #include "nvim/log.h" #include "nvim/macros.h" #include "nvim/os/process.h" #include "nvim/os/pty_process.h" #include "nvim/os/shell.h" +#include "nvim/os/time.h" +#include "nvim/rbuffer.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "event/process.c.generated.h" diff --git a/src/nvim/event/process.h b/src/nvim/event/process.h index 30254bfe07..26e03ff4f3 100644 --- a/src/nvim/event/process.h +++ b/src/nvim/event/process.h @@ -1,11 +1,20 @@ #ifndef NVIM_EVENT_PROCESS_H #define NVIM_EVENT_PROCESS_H +#include +#include +#include + #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" #include "nvim/event/rstream.h" +#include "nvim/event/stream.h" #include "nvim/event/wstream.h" +struct process; + typedef enum { kProcessTypeUv, kProcessTypePty, diff --git a/src/nvim/event/rstream.c b/src/nvim/event/rstream.c index 2847788ef8..a88d62fd6b 100644 --- a/src/nvim/event/rstream.c +++ b/src/nvim/event/rstream.c @@ -3,17 +3,18 @@ #include #include +#include #include -#include #include -#include "nvim/ascii.h" #include "nvim/event/loop.h" #include "nvim/event/rstream.h" +#include "nvim/event/stream.h" #include "nvim/log.h" +#include "nvim/macros.h" #include "nvim/main.h" -#include "nvim/memory.h" -#include "nvim/vim.h" +#include "nvim/os/os_defs.h" +#include "nvim/rbuffer.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "event/rstream.c.generated.h" diff --git a/src/nvim/event/signal.c b/src/nvim/event/signal.c index 4a45a2ec2f..8256ca2091 100644 --- a/src/nvim/event/signal.c +++ b/src/nvim/event/signal.c @@ -1,6 +1,7 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include #include #include "nvim/event/loop.h" diff --git a/src/nvim/event/signal.h b/src/nvim/event/signal.h index 7fe352edef..f9adf62c20 100644 --- a/src/nvim/event/signal.h +++ b/src/nvim/event/signal.h @@ -4,6 +4,9 @@ #include #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" + +struct signal_watcher; typedef struct signal_watcher SignalWatcher; typedef void (*signal_cb)(SignalWatcher *watcher, int signum, void *data); diff --git a/src/nvim/event/socket.c b/src/nvim/event/socket.c index 9ca3dcc276..10756015ad 100644 --- a/src/nvim/event/socket.c +++ b/src/nvim/event/socket.c @@ -2,23 +2,24 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include -#include +#include +#include +#include +#include #include #include "nvim/ascii.h" #include "nvim/charset.h" #include "nvim/event/loop.h" -#include "nvim/event/rstream.h" #include "nvim/event/socket.h" -#include "nvim/event/wstream.h" +#include "nvim/event/stream.h" +#include "nvim/gettext.h" #include "nvim/log.h" #include "nvim/macros.h" #include "nvim/main.h" #include "nvim/memory.h" #include "nvim/os/os.h" #include "nvim/path.h" -#include "nvim/strings.h" -#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "event/socket.c.generated.h" diff --git a/src/nvim/event/socket.h b/src/nvim/event/socket.h index d30ae45502..c6fcdec4bb 100644 --- a/src/nvim/event/socket.h +++ b/src/nvim/event/socket.h @@ -4,9 +4,12 @@ #include #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" #include "nvim/event/rstream.h" #include "nvim/event/wstream.h" +struct socket_watcher; + #define ADDRESS_MAX_SIZE 256 typedef struct socket_watcher SocketWatcher; diff --git a/src/nvim/event/stream.c b/src/nvim/event/stream.c index bfb7a551b9..0a4918636a 100644 --- a/src/nvim/event/stream.c +++ b/src/nvim/event/stream.c @@ -3,9 +3,11 @@ #include #include -#include +#include #include +#include +#include "nvim/event/loop.h" #include "nvim/event/stream.h" #include "nvim/log.h" #include "nvim/macros.h" diff --git a/src/nvim/event/stream.h b/src/nvim/event/stream.h index f2858f0b6d..33d2d6e775 100644 --- a/src/nvim/event/stream.h +++ b/src/nvim/event/stream.h @@ -6,8 +6,11 @@ #include #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" #include "nvim/rbuffer.h" +struct stream; + typedef struct stream Stream; /// Type of function called when the Stream buffer is filled with data /// diff --git a/src/nvim/event/time.h b/src/nvim/event/time.h index a6de89ad6e..e84488fdd6 100644 --- a/src/nvim/event/time.h +++ b/src/nvim/event/time.h @@ -1,9 +1,13 @@ #ifndef NVIM_EVENT_TIME_H #define NVIM_EVENT_TIME_H +#include #include #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" + +struct time_watcher; typedef struct time_watcher TimeWatcher; typedef void (*time_cb)(TimeWatcher *watcher, void *data); diff --git a/src/nvim/event/wstream.c b/src/nvim/event/wstream.c index d81ffa5c15..65391ba5cf 100644 --- a/src/nvim/event/wstream.c +++ b/src/nvim/event/wstream.c @@ -3,15 +3,13 @@ #include #include -#include -#include #include #include "nvim/event/loop.h" +#include "nvim/event/stream.h" #include "nvim/event/wstream.h" -#include "nvim/log.h" +#include "nvim/macros.h" #include "nvim/memory.h" -#include "nvim/vim.h" #define DEFAULT_MAXMEM 1024 * 1024 * 2000 diff --git a/src/nvim/event/wstream.h b/src/nvim/event/wstream.h index d599d29913..ef1311c619 100644 --- a/src/nvim/event/wstream.h +++ b/src/nvim/event/wstream.h @@ -2,12 +2,15 @@ #define NVIM_EVENT_WSTREAM_H #include +#include #include #include #include "nvim/event/loop.h" #include "nvim/event/stream.h" +struct wbuffer; + typedef struct wbuffer WBuffer; typedef void (*wbuffer_data_finalizer)(void *data); diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c index c22f22366a..04af13e55c 100644 --- a/src/nvim/ex_cmds.c +++ b/src/nvim/ex_cmds.c @@ -4,20 +4,27 @@ // ex_cmds.c: some functions for command line commands #include +#include #include #include #include #include +#include +#include #include #include +#include -#include "nvim/api/buffer.h" -#include "nvim/api/private/defs.h" +#include "auto/config.h" +#include "klib/kvec.h" #include "nvim/arglist.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/buffer_updates.h" #include "nvim/change.h" +#include "nvim/channel.h" #include "nvim/charset.h" #include "nvim/cmdhist.h" #include "nvim/cursor.h" @@ -27,22 +34,26 @@ #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" #include "nvim/ex_cmds.h" #include "nvim/ex_cmds2.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/ex_getln.h" #include "nvim/extmark.h" #include "nvim/fileio.h" #include "nvim/fold.h" -#include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/grid_defs.h" #include "nvim/help.h" -#include "nvim/highlight.h" +#include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" #include "nvim/indent.h" #include "nvim/input.h" -#include "nvim/log.h" +#include "nvim/macros.h" #include "nvim/main.h" #include "nvim/mark.h" #include "nvim/mbyte.h" @@ -55,21 +66,22 @@ #include "nvim/ops.h" #include "nvim/option.h" #include "nvim/optionstr.h" +#include "nvim/os/fs_defs.h" #include "nvim/os/input.h" #include "nvim/os/os.h" #include "nvim/os/shell.h" #include "nvim/os/time.h" -#include "nvim/os_unix.h" #include "nvim/path.h" #include "nvim/plines.h" #include "nvim/profile.h" #include "nvim/quickfix.h" #include "nvim/regexp.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/spell.h" #include "nvim/strings.h" -#include "nvim/syntax.h" -#include "nvim/tag.h" +#include "nvim/terminal.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/vim.h" diff --git a/src/nvim/ex_cmds.h b/src/nvim/ex_cmds.h index 3aaba9ce42..39bff3e35d 100644 --- a/src/nvim/ex_cmds.h +++ b/src/nvim/ex_cmds.h @@ -5,6 +5,7 @@ #include "nvim/buffer_defs.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds_defs.h" #include "nvim/os/time.h" #include "nvim/pos.h" diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index 1248251556..b6489e97b2 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -6,9 +6,9 @@ /// Some more functions for command line commands #include -#include #include #include +#include #include #include "nvim/arglist.h" @@ -16,30 +16,33 @@ #include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/change.h" -#include "nvim/charset.h" +#include "nvim/channel.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/vars.h" #include "nvim/ex_cmds.h" #include "nvim/ex_cmds2.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" -#include "nvim/ex_eval.h" #include "nvim/ex_getln.h" #include "nvim/fileio.h" +#include "nvim/gettext.h" #include "nvim/globals.h" +#include "nvim/highlight_defs.h" +#include "nvim/macros.h" #include "nvim/mark.h" -#include "nvim/mbyte.h" +#include "nvim/memline_defs.h" #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/os/fs_defs.h" -#include "nvim/os_unix.h" +#include "nvim/os/os_defs.h" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/quickfix.h" #include "nvim/runtime.h" -#include "nvim/strings.h" #include "nvim/undo.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/ex_cmds_defs.h b/src/nvim/ex_cmds_defs.h index 378271c107..629aaf14cf 100644 --- a/src/nvim/ex_cmds_defs.h +++ b/src/nvim/ex_cmds_defs.h @@ -6,7 +6,7 @@ #include "nvim/eval/typval.h" #include "nvim/normal.h" -#include "nvim/pos.h" // for linenr_T +#include "nvim/pos.h" #include "nvim/regexp_defs.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index b875aafaad..8e1e5afb2b 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -4,58 +4,57 @@ // ex_docmd.c: functions for executing an Ex command line. #include +#include #include +#include #include +#include +#include #include #include +#include "auto/config.h" #include "nvim/arglist.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/change.h" #include "nvim/charset.h" #include "nvim/cmdexpand.h" -#include "nvim/cmdhist.h" #include "nvim/cursor.h" #include "nvim/debugger.h" -#include "nvim/diff.h" #include "nvim/digraph.h" #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" -#include "nvim/eval/vars.h" -#include "nvim/event/rstream.h" -#include "nvim/event/wstream.h" +#include "nvim/event/loop.h" #include "nvim/ex_cmds.h" #include "nvim/ex_cmds2.h" #include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/ex_getln.h" -#include "nvim/ex_session.h" #include "nvim/file_search.h" #include "nvim/fileio.h" #include "nvim/fold.h" -#include "nvim/func_attr.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" #include "nvim/globals.h" -#include "nvim/hardcopy.h" -#include "nvim/help.h" +#include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" #include "nvim/input.h" #include "nvim/keycodes.h" -#include "nvim/locale.h" -#include "nvim/lua/executor.h" +#include "nvim/macros.h" #include "nvim/main.h" -#include "nvim/mapping.h" #include "nvim/mark.h" -#include "nvim/match.h" #include "nvim/mbyte.h" +#include "nvim/memfile_defs.h" #include "nvim/memline.h" #include "nvim/memory.h" -#include "nvim/menu.h" #include "nvim/message.h" #include "nvim/mouse.h" #include "nvim/move.h" @@ -65,29 +64,25 @@ #include "nvim/optionstr.h" #include "nvim/os/input.h" #include "nvim/os/os.h" -#include "nvim/os/time.h" -#include "nvim/os_unix.h" +#include "nvim/os/shell.h" #include "nvim/path.h" #include "nvim/popupmenu.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/quickfix.h" #include "nvim/regexp.h" +#include "nvim/runtime.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/shada.h" -#include "nvim/sign.h" -#include "nvim/spell.h" -#include "nvim/spellfile.h" #include "nvim/state.h" #include "nvim/statusline.h" #include "nvim/strings.h" -#include "nvim/syntax.h" #include "nvim/tag.h" -#include "nvim/terminal.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" -#include "nvim/undo_defs.h" #include "nvim/usercmd.h" -#include "nvim/version.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/ex_docmd.h b/src/nvim/ex_docmd.h index 283501cf76..19dd9e96ca 100644 --- a/src/nvim/ex_docmd.h +++ b/src/nvim/ex_docmd.h @@ -1,6 +1,9 @@ #ifndef NVIM_EX_DOCMD_H #define NVIM_EX_DOCMD_H +#include + +#include "nvim/buffer_defs.h" #include "nvim/ex_cmds_defs.h" #include "nvim/globals.h" diff --git a/src/nvim/ex_eval.c b/src/nvim/ex_eval.c index bde2f3c801..cd80da729b 100644 --- a/src/nvim/ex_eval.c +++ b/src/nvim/ex_eval.c @@ -10,19 +10,30 @@ #include #include #include +#include +#include #include "nvim/ascii.h" #include "nvim/charset.h" #include "nvim/debugger.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" +#include "nvim/ex_eval_defs.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/memory.h" #include "nvim/message.h" +#include "nvim/option_defs.h" +#include "nvim/pos.h" #include "nvim/regexp.h" #include "nvim/runtime.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/ex_eval.h b/src/nvim/ex_eval.h index 9e3ac5e9c1..d3053ae0d4 100644 --- a/src/nvim/ex_eval.h +++ b/src/nvim/ex_eval.h @@ -1,7 +1,7 @@ #ifndef NVIM_EX_EVAL_H #define NVIM_EX_EVAL_H -#include "nvim/ex_cmds_defs.h" // for exarg_T +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_eval_defs.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/ex_eval_defs.h b/src/nvim/ex_eval_defs.h index 9da0c9ad12..6b3c426722 100644 --- a/src/nvim/ex_eval_defs.h +++ b/src/nvim/ex_eval_defs.h @@ -1,7 +1,7 @@ #ifndef NVIM_EX_EVAL_DEFS_H #define NVIM_EX_EVAL_DEFS_H -#include "nvim/pos.h" // for linenr_T +#include "nvim/pos.h" /// There is no CSF_IF, the lack of CSF_WHILE, CSF_FOR and CSF_TRY means ":if" /// was used. diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 1d242e4ed2..0520c0e4a0 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -5,44 +5,45 @@ #include #include +#include #include #include #include +#include #include "klib/kvec.h" #include "nvim/api/extmark.h" +#include "nvim/api/private/defs.h" +#include "nvim/api/private/helpers.h" #include "nvim/api/vim.h" #include "nvim/arabic.h" #include "nvim/ascii.h" -#include "nvim/assert.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/cmdexpand.h" #include "nvim/cmdhist.h" #include "nvim/cursor.h" -#include "nvim/cursor_shape.h" #include "nvim/digraph.h" #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval.h" -#include "nvim/event/loop.h" +#include "nvim/eval/typval.h" #include "nvim/ex_cmds.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/ex_getln.h" -#include "nvim/fileio.h" -#include "nvim/func_attr.h" +#include "nvim/extmark.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" #include "nvim/globals.h" #include "nvim/grid.h" -#include "nvim/highlight.h" #include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" -#include "nvim/indent.h" #include "nvim/keycodes.h" -#include "nvim/log.h" -#include "nvim/main.h" +#include "nvim/macros.h" #include "nvim/mapping.h" #include "nvim/mark.h" #include "nvim/mbyte.h" @@ -51,15 +52,18 @@ #include "nvim/message.h" #include "nvim/mouse.h" #include "nvim/move.h" +#include "nvim/normal.h" #include "nvim/ops.h" #include "nvim/option.h" #include "nvim/optionstr.h" #include "nvim/os/input.h" -#include "nvim/os/time.h" +#include "nvim/os/os.h" #include "nvim/path.h" #include "nvim/popupmenu.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/regexp.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/state.h" #include "nvim/strings.h" diff --git a/src/nvim/ex_getln.h b/src/nvim/ex_getln.h index 919a6c8f11..916b695a35 100644 --- a/src/nvim/ex_getln.h +++ b/src/nvim/ex_getln.h @@ -1,10 +1,16 @@ #ifndef NVIM_EX_GETLN_H #define NVIM_EX_GETLN_H +#include + +#include "klib/kvec.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds_defs.h" #include "nvim/types.h" +struct cmdline_info; + /// Command-line colors: one chunk /// /// Defines a region which has the same highlighting. diff --git a/src/nvim/ex_session.c b/src/nvim/ex_session.c index 887ba5400a..2a80537a50 100644 --- a/src/nvim/ex_session.c +++ b/src/nvim/ex_session.c @@ -9,32 +9,36 @@ #include #include +#include #include -#include +#include #include #include "nvim/arglist.h" #include "nvim/ascii.h" #include "nvim/buffer.h" -#include "nvim/cursor.h" -#include "nvim/edit.h" #include "nvim/eval.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_getln.h" #include "nvim/ex_session.h" #include "nvim/file_search.h" #include "nvim/fileio.h" #include "nvim/fold.h" +#include "nvim/garray.h" +#include "nvim/gettext.h" #include "nvim/globals.h" -#include "nvim/keycodes.h" +#include "nvim/macros.h" #include "nvim/mapping.h" -#include "nvim/move.h" +#include "nvim/mark_defs.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/option.h" -#include "nvim/os/input.h" #include "nvim/os/os.h" -#include "nvim/os/time.h" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/runtime.h" +#include "nvim/types.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/extmark.c b/src/nvim/extmark.c index 015799be06..3e059bcc6c 100644 --- a/src/nvim/extmark.c +++ b/src/nvim/extmark.c @@ -29,20 +29,21 @@ // code for redrawing the line with the deleted decoration. #include +#include -#include "klib/kbtree.h" -#include "nvim/api/extmark.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/buffer_updates.h" -#include "nvim/charset.h" #include "nvim/decoration.h" #include "nvim/extmark.h" +#include "nvim/extmark_defs.h" #include "nvim/globals.h" #include "nvim/map.h" +#include "nvim/marktree.h" #include "nvim/memline.h" +#include "nvim/memory.h" #include "nvim/pos.h" #include "nvim/undo.h" -#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "extmark.c.generated.h" diff --git a/src/nvim/extmark.h b/src/nvim/extmark.h index c144504076..657e99a938 100644 --- a/src/nvim/extmark.h +++ b/src/nvim/extmark.h @@ -1,11 +1,18 @@ #ifndef NVIM_EXTMARK_H #define NVIM_EXTMARK_H +#include +#include +#include + +#include "klib/kvec.h" #include "nvim/buffer_defs.h" #include "nvim/decoration.h" #include "nvim/extmark_defs.h" +#include "nvim/macros.h" #include "nvim/marktree.h" #include "nvim/pos.h" +#include "nvim/types.h" EXTERN int extmark_splice_pending INIT(= 0); diff --git a/src/nvim/file_search.c b/src/nvim/file_search.c index 1434ba415b..1d891799a5 100644 --- a/src/nvim/file_search.c +++ b/src/nvim/file_search.c @@ -47,25 +47,30 @@ #include #include #include +#include +#include #include #include "nvim/ascii.h" #include "nvim/autocmd.h" -#include "nvim/charset.h" +#include "nvim/buffer_defs.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/file_search.h" -#include "nvim/fileio.h" +#include "nvim/gettext.h" #include "nvim/globals.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/option.h" #include "nvim/os/fs_defs.h" #include "nvim/os/input.h" #include "nvim/os/os.h" -#include "nvim/os_unix.h" #include "nvim/path.h" #include "nvim/strings.h" -#include "nvim/tag.h" +#include "nvim/types.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/file_search.h b/src/nvim/file_search.h index 4d4e723922..b69a6fa154 100644 --- a/src/nvim/file_search.h +++ b/src/nvim/file_search.h @@ -1,10 +1,10 @@ #ifndef NVIM_FILE_SEARCH_H #define NVIM_FILE_SEARCH_H -#include // for size_t +#include -#include "nvim/globals.h" // for CdScope -#include "nvim/types.h" // for char_u +#include "nvim/globals.h" +#include "nvim/types.h" // Flags for find_file_*() functions. #define FINDFILE_FILE 0 // only files diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c index e1ffc27d5b..6c5469d020 100644 --- a/src/nvim/fileio.c +++ b/src/nvim/fileio.c @@ -6,62 +6,68 @@ #include #include #include +#include #include +#include #include +#include #include +#include +#include -#include "nvim/api/private/helpers.h" +#include "auto/config.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/buffer_updates.h" #include "nvim/change.h" -#include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/diff.h" #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval.h" -#include "nvim/eval/typval.h" -#include "nvim/eval/userfunc.h" #include "nvim/ex_cmds.h" -#include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/fileio.h" #include "nvim/fold.h" -#include "nvim/func_attr.h" #include "nvim/garray.h" #include "nvim/getchar.h" -#include "nvim/hashtab.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" #include "nvim/iconv.h" #include "nvim/input.h" +#include "nvim/log.h" +#include "nvim/macros.h" #include "nvim/mbyte.h" #include "nvim/memfile.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/move.h" -#include "nvim/normal.h" #include "nvim/option.h" #include "nvim/optionstr.h" +#include "nvim/os/fs_defs.h" #include "nvim/os/input.h" #include "nvim/os/os.h" -#include "nvim/os/os_defs.h" #include "nvim/os/time.h" #include "nvim/os_unix.h" #include "nvim/path.h" -#include "nvim/quickfix.h" +#include "nvim/pos.h" #include "nvim/regexp.h" -#include "nvim/search.h" +#include "nvim/screen.h" #include "nvim/sha256.h" #include "nvim/shada.h" -#include "nvim/state.h" #include "nvim/strings.h" #include "nvim/types.h" #include "nvim/ui.h" -#include "nvim/ui_compositor.h" #include "nvim/undo.h" #include "nvim/vim.h" -#include "nvim/window.h" + +#ifdef OPEN_CHR_FILES +# include "nvim/charset.h" +#endif #define BUFSIZE 8192 // size of normal write buffer #define SMBUFSIZE 256 // size of emergency write buffer diff --git a/src/nvim/fileio.h b/src/nvim/fileio.h index ae3c51f1bc..dabcda5bf2 100644 --- a/src/nvim/fileio.h +++ b/src/nvim/fileio.h @@ -3,6 +3,7 @@ #include "nvim/buffer_defs.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/garray.h" #include "nvim/os/os.h" diff --git a/src/nvim/fold.c b/src/nvim/fold.c index dd74971ab5..940c26ad02 100644 --- a/src/nvim/fold.c +++ b/src/nvim/fold.c @@ -5,10 +5,15 @@ // fold.c: code for folding +#include #include +#include +#include +#include #include #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/buffer_updates.h" #include "nvim/change.h" #include "nvim/charset.h" @@ -16,14 +21,17 @@ #include "nvim/diff.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" -#include "nvim/ex_docmd.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_session.h" #include "nvim/extmark.h" #include "nvim/fold.h" -#include "nvim/func_attr.h" #include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/indent.h" #include "nvim/mark.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" @@ -35,6 +43,7 @@ #include "nvim/search.h" #include "nvim/strings.h" #include "nvim/syntax.h" +#include "nvim/types.h" #include "nvim/undo.h" #include "nvim/vim.h" diff --git a/src/nvim/fold.h b/src/nvim/fold.h index 395cd8e30a..9c3a34ab31 100644 --- a/src/nvim/fold.h +++ b/src/nvim/fold.h @@ -5,6 +5,7 @@ #include "nvim/buffer_defs.h" #include "nvim/garray.h" +#include "nvim/macros.h" #include "nvim/pos.h" #include "nvim/types.h" diff --git a/src/nvim/garray.c b/src/nvim/garray.c index eefbfed3ef..0f11868031 100644 --- a/src/nvim/garray.c +++ b/src/nvim/garray.c @@ -5,22 +5,17 @@ /// /// Functions for handling growing arrays. -#include #include -#include "nvim/ascii.h" #include "nvim/garray.h" #include "nvim/log.h" #include "nvim/memory.h" #include "nvim/path.h" #include "nvim/strings.h" -#include "nvim/vim.h" - -// #include "nvim/globals.h" -#include "nvim/memline.h" +#include "nvim/types.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "garray.c.generated.h" +# include "garray.c.generated.h" // IWYU pragma: export #endif /// Clear an allocated growing array. diff --git a/src/nvim/garray.h b/src/nvim/garray.h index 0281678925..3e2650b410 100644 --- a/src/nvim/garray.h +++ b/src/nvim/garray.h @@ -1,9 +1,11 @@ #ifndef NVIM_GARRAY_H #define NVIM_GARRAY_H -#include // for size_t +#include +#include #include "nvim/log.h" +#include "nvim/memory.h" #include "nvim/types.h" /// Structure used for growing arrays. diff --git a/src/nvim/generators/gen_api_dispatch.lua b/src/nvim/generators/gen_api_dispatch.lua index 6894b7a6df..d4fe455f82 100644 --- a/src/nvim/generators/gen_api_dispatch.lua +++ b/src/nvim/generators/gen_api_dispatch.lua @@ -189,6 +189,35 @@ funcs_metadata_output:close() -- start building the dispatch wrapper output local output = io.open(dispatch_outputf, 'wb') + +-- =========================================================================== +-- NEW API FILES MUST GO HERE. +-- +-- When creating a new API file, you must include it here, +-- so that the dispatcher can find the C functions that you are creating! +-- =========================================================================== +output:write([[ +#include "nvim/log.h" +#include "nvim/map.h" +#include "nvim/msgpack_rpc/helpers.h" +#include "nvim/vim.h" + +#include "nvim/api/autocmd.h" +#include "nvim/api/buffer.h" +#include "nvim/api/command.h" +#include "nvim/api/deprecated.h" +#include "nvim/api/extmark.h" +#include "nvim/api/options.h" +#include "nvim/api/tabpage.h" +#include "nvim/api/ui.h" +#include "nvim/api/vim.h" +#include "nvim/api/vimscript.h" +#include "nvim/api/win_config.h" +#include "nvim/api/window.h" +#include "nvim/ui_client.h" + +]]) + local function real_type(type) local rv = type local rmatch = string.match(type, "Dict%(([_%w]+)%)") diff --git a/src/nvim/generators/gen_eval.lua b/src/nvim/generators/gen_eval.lua index 8e6d1f2634..9159a3a200 100644 --- a/src/nvim/generators/gen_eval.lua +++ b/src/nvim/generators/gen_eval.lua @@ -27,6 +27,31 @@ local hashy = require'generators.hashy' local hashpipe = io.open(funcsfname, 'wb') +hashpipe:write([[ +#include "nvim/arglist.h" +#include "nvim/cmdexpand.h" +#include "nvim/cmdhist.h" +#include "nvim/digraph.h" +#include "nvim/eval/funcs.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/vars.h" +#include "nvim/ex_docmd.h" +#include "nvim/ex_getln.h" +#include "nvim/fold.h" +#include "nvim/getchar.h" +#include "nvim/insexpand.h" +#include "nvim/mapping.h" +#include "nvim/match.h" +#include "nvim/mbyte.h" +#include "nvim/menu.h" +#include "nvim/move.h" +#include "nvim/quickfix.h" +#include "nvim/search.h" +#include "nvim/sign.h" +#include "nvim/testing.h" + +]]) + local funcs = require('eval').funcs for _, func in pairs(funcs) do if func.float_func then diff --git a/src/nvim/generators/gen_ex_cmds.lua b/src/nvim/generators/gen_ex_cmds.lua index 255c415a4d..ac60b9f8e9 100644 --- a/src/nvim/generators/gen_ex_cmds.lua +++ b/src/nvim/generators/gen_ex_cmds.lua @@ -49,6 +49,43 @@ enumfile:write([[ typedef enum CMD_index { ]]) defsfile:write(string.format([[ +#include "nvim/arglist.h" +#include "nvim/autocmd.h" +#include "nvim/buffer.h" +#include "nvim/cmdhist.h" +#include "nvim/debugger.h" +#include "nvim/diff.h" +#include "nvim/digraph.h" +#include "nvim/eval.h" +#include "nvim/eval/userfunc.h" +#include "nvim/eval/vars.h" +#include "nvim/ex_cmds.h" +#include "nvim/ex_cmds2.h" +#include "nvim/ex_docmd.h" +#include "nvim/ex_eval.h" +#include "nvim/ex_session.h" +#include "nvim/hardcopy.h" +#include "nvim/help.h" +#include "nvim/locale.h" +#include "nvim/lua/executor.h" +#include "nvim/mapping.h" +#include "nvim/mark.h" +#include "nvim/match.h" +#include "nvim/menu.h" +#include "nvim/message.h" +#include "nvim/ops.h" +#include "nvim/option.h" +#include "nvim/profile.h" +#include "nvim/quickfix.h" +#include "nvim/runtime.h" +#include "nvim/sign.h" +#include "nvim/spell.h" +#include "nvim/spellfile.h" +#include "nvim/syntax.h" +#include "nvim/undo.h" +#include "nvim/usercmd.h" +#include "nvim/version.h" + static const int command_count = %u; static CommandDefinition cmdnames[%u] = { ]], #defs, #defs)) diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c index f76107c401..bd83624185 100644 --- a/src/nvim/getchar.c +++ b/src/nvim/getchar.c @@ -7,11 +7,15 @@ #include #include #include +#include +#include +#include #include +#include "lauxlib.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" -#include "nvim/assert.h" #include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor.h" @@ -19,16 +23,21 @@ #include "nvim/edit.h" #include "nvim/eval.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" #include "nvim/ex_cmds.h" #include "nvim/ex_docmd.h" #include "nvim/ex_getln.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/input.h" #include "nvim/insexpand.h" #include "nvim/keycodes.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" #include "nvim/main.h" #include "nvim/mapping.h" #include "nvim/mbyte.h" @@ -44,8 +53,11 @@ #include "nvim/os/input.h" #include "nvim/os/os.h" #include "nvim/plines.h" +#include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/state.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/vim.h" diff --git a/src/nvim/grid.c b/src/nvim/grid.c index 2b73ff895d..0320360cd8 100644 --- a/src/nvim/grid.c +++ b/src/nvim/grid.c @@ -11,9 +11,19 @@ // // The grid_*() functions write to the screen and handle updating grid->lines[]. +#include +#include +#include + #include "nvim/arabic.h" +#include "nvim/buffer_defs.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" +#include "nvim/log.h" +#include "nvim/message.h" +#include "nvim/option_defs.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/vim.h" diff --git a/src/nvim/grid.h b/src/nvim/grid.h index 0e79183c14..deb3d3785d 100644 --- a/src/nvim/grid.h +++ b/src/nvim/grid.h @@ -2,11 +2,14 @@ #define NVIM_GRID_H #include +#include #include "nvim/ascii.h" #include "nvim/buffer_defs.h" #include "nvim/grid_defs.h" +#include "nvim/macros.h" #include "nvim/mbyte.h" +#include "nvim/memory.h" /// By default, all windows are drawn on a single rectangular grid, represented by /// this ScreenGrid instance. In multigrid mode each window will have its own diff --git a/src/nvim/hardcopy.c b/src/nvim/hardcopy.c index b769f6215c..93976542f7 100644 --- a/src/nvim/hardcopy.c +++ b/src/nvim/hardcopy.c @@ -4,20 +4,28 @@ // hardcopy.c: printing to paper #include -#include +#include +#include +#include +#include #include #include "nvim/ascii.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/eval.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/fileio.h" #include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/hardcopy.h" +#include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" #include "nvim/indent.h" +#include "nvim/macros.h" #include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" @@ -25,7 +33,9 @@ #include "nvim/option.h" #include "nvim/os/input.h" #include "nvim/os/os.h" +#include "nvim/os/time.h" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/runtime.h" #include "nvim/statusline.h" #include "nvim/strings.h" diff --git a/src/nvim/hardcopy.h b/src/nvim/hardcopy.h index ce562cd3e6..673d559ecf 100644 --- a/src/nvim/hardcopy.h +++ b/src/nvim/hardcopy.h @@ -2,11 +2,11 @@ #define NVIM_HARDCOPY_H #include -#include // for size_t +#include -#include "nvim/ex_cmds_defs.h" // for exarg_T -#include "nvim/globals.h" // for TriState -#include "nvim/types.h" // for char_u +#include "nvim/ex_cmds_defs.h" +#include "nvim/globals.h" +#include "nvim/types.h" // Structure to hold printing color and font attributes. typedef struct { diff --git a/src/nvim/help.c b/src/nvim/help.c index 5cc2cda52b..7ea7dfb709 100644 --- a/src/nvim/help.c +++ b/src/nvim/help.c @@ -3,26 +3,39 @@ // help.c: functions for Vim help +#include #include #include +#include +#include "nvim/ascii.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/cmdexpand.h" #include "nvim/ex_cmds.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/fileio.h" #include "nvim/garray.h" +#include "nvim/gettext.h" #include "nvim/globals.h" #include "nvim/help.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" +#include "nvim/memline.h" #include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/option.h" #include "nvim/optionstr.h" #include "nvim/os/input.h" +#include "nvim/os/os.h" #include "nvim/path.h" +#include "nvim/pos.h" +#include "nvim/runtime.h" #include "nvim/strings.h" #include "nvim/syntax.h" #include "nvim/tag.h" +#include "nvim/types.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/highlight.c b/src/nvim/highlight.c index c992731ee3..774551242f 100644 --- a/src/nvim/highlight.c +++ b/src/nvim/highlight.c @@ -3,18 +3,31 @@ // highlight.c: low level code for UI and syntax highlighting +#include +#include +#include +#include + +#include "klib/kvec.h" +#include "lauxlib.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/decoration_provider.h" #include "nvim/drawscreen.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/highlight.h" #include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" +#include "nvim/log.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" #include "nvim/map.h" +#include "nvim/memory.h" #include "nvim/message.h" #include "nvim/option.h" #include "nvim/popupmenu.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/vim.h" diff --git a/src/nvim/highlight.h b/src/nvim/highlight.h index e85e3859e2..4da7dd65bb 100644 --- a/src/nvim/highlight.h +++ b/src/nvim/highlight.h @@ -6,6 +6,7 @@ #include "nvim/api/private/defs.h" #include "nvim/buffer_defs.h" #include "nvim/highlight_defs.h" +#include "nvim/option_defs.h" #include "nvim/ui.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/highlight_group.c b/src/nvim/highlight_group.c index 65e3073303..0c7ff39197 100644 --- a/src/nvim/highlight_group.c +++ b/src/nvim/highlight_group.c @@ -3,23 +3,45 @@ // highlight_group.c: code for managing highlight groups +#include #include +#include +#include +#include +#include +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" +#include "nvim/ascii.h" #include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor_shape.h" +#include "nvim/decoration_provider.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/vars.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" -#include "nvim/fold.h" +#include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/grid_defs.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" #include "nvim/lua/executor.h" -#include "nvim/match.h" +#include "nvim/macros.h" +#include "nvim/map.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/option.h" +#include "nvim/os/time.h" #include "nvim/runtime.h" +#include "nvim/strings.h" +#include "nvim/types.h" +#include "nvim/ui.h" +#include "nvim/vim.h" /// \addtogroup SG_SET /// @{ diff --git a/src/nvim/indent.c b/src/nvim/indent.c index 0bf36c42f4..f6b1b81780 100644 --- a/src/nvim/indent.c +++ b/src/nvim/indent.c @@ -2,8 +2,10 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include -#include +#include #include +#include +#include #include "nvim/ascii.h" #include "nvim/assert.h" @@ -13,21 +15,28 @@ #include "nvim/cursor.h" #include "nvim/edit.h" #include "nvim/eval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/extmark.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/indent.h" #include "nvim/indent_c.h" #include "nvim/mark.h" #include "nvim/memline.h" #include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/move.h" #include "nvim/option.h" #include "nvim/plines.h" +#include "nvim/pos.h" #include "nvim/regexp.h" #include "nvim/screen.h" #include "nvim/search.h" #include "nvim/strings.h" #include "nvim/textformat.h" +#include "nvim/types.h" #include "nvim/undo.h" +#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "indent.c.generated.h" diff --git a/src/nvim/indent_c.c b/src/nvim/indent_c.c index 5a38fb5aae..77fe176de1 100644 --- a/src/nvim/indent_c.c +++ b/src/nvim/indent_c.c @@ -1,21 +1,29 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include #include +#include +#include +#include +#include #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/edit.h" +#include "nvim/globals.h" #include "nvim/indent.h" #include "nvim/indent_c.h" +#include "nvim/macros.h" #include "nvim/mark.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/option.h" +#include "nvim/pos.h" #include "nvim/search.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/vim.h" // Find result cache for cpp_baseclass diff --git a/src/nvim/input.c b/src/nvim/input.c index 681d9d5f9c..0f0af9d5f0 100644 --- a/src/nvim/input.c +++ b/src/nvim/input.c @@ -4,21 +4,29 @@ // input.c: high level functions for prompting the user or input // like yes/no or number prompts. -#include #include +#include +#include "nvim/ascii.h" +#include "nvim/event/multiqueue.h" #include "nvim/func_attr.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" #include "nvim/input.h" +#include "nvim/keycodes.h" #include "nvim/mbyte.h" #include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/mouse.h" #include "nvim/os/input.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "input.c.generated.h" +# include "input.c.generated.h" // IWYU pragma: export #endif /// Ask for a reply from the user, 'y' or 'n' diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c index bc10785152..ed851683fd 100644 --- a/src/nvim/insexpand.c +++ b/src/nvim/insexpand.c @@ -4,11 +4,15 @@ // insexpand.c: functions for Insert mode completion #include -#include +#include #include +#include +#include +#include #include #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/change.h" #include "nvim/charset.h" @@ -18,37 +22,48 @@ #include "nvim/edit.h" #include "nvim/eval.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/ex_getln.h" #include "nvim/fileio.h" +#include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" #include "nvim/indent.h" #include "nvim/indent_c.h" #include "nvim/insexpand.h" #include "nvim/keycodes.h" +#include "nvim/macros.h" +#include "nvim/mark.h" #include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/move.h" #include "nvim/option.h" +#include "nvim/os/fs.h" #include "nvim/os/input.h" #include "nvim/os/time.h" #include "nvim/path.h" #include "nvim/popupmenu.h" +#include "nvim/pos.h" #include "nvim/regexp.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/spell.h" #include "nvim/state.h" #include "nvim/strings.h" #include "nvim/tag.h" #include "nvim/textformat.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/vim.h" -#include "nvim/window.h" // Definitions used for CTRL-X submode. // Note: If you change CTRL-X submode, you must also maintain ctrl_x_msgs[] diff --git a/src/nvim/insexpand.h b/src/nvim/insexpand.h index c394468a45..83ba14e0d2 100644 --- a/src/nvim/insexpand.h +++ b/src/nvim/insexpand.h @@ -1,6 +1,9 @@ #ifndef NVIM_INSEXPAND_H #define NVIM_INSEXPAND_H +#include + +#include "nvim/macros.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/keycodes.c b/src/nvim/keycodes.c index de3c1dbf84..cec8d1e603 100644 --- a/src/nvim/keycodes.c +++ b/src/nvim/keycodes.c @@ -4,16 +4,25 @@ #include #include #include +#include +#include +#include #include "nvim/ascii.h" #include "nvim/charset.h" -#include "nvim/edit.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/vars.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/keycodes.h" +#include "nvim/log.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/mouse.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/keycodes.h b/src/nvim/keycodes.h index c4d984ee17..7842dee92c 100644 --- a/src/nvim/keycodes.h +++ b/src/nvim/keycodes.h @@ -1,6 +1,10 @@ #ifndef NVIM_KEYCODES_H #define NVIM_KEYCODES_H +#include + +#include "nvim/ascii.h" +#include "nvim/option_defs.h" #include "nvim/strings.h" // Keycode definitions for special keys. diff --git a/src/nvim/linematch.c b/src/nvim/linematch.c index 04209bb836..9897c92ac5 100644 --- a/src/nvim/linematch.c +++ b/src/nvim/linematch.c @@ -1,4 +1,10 @@ +#include +#include +#include +#include + #include "nvim/linematch.h" +#include "nvim/macros.h" #include "nvim/memory.h" #include "nvim/vim.h" diff --git a/src/nvim/locale.c b/src/nvim/locale.c index f2db9fcc59..c07420be1d 100644 --- a/src/nvim/locale.c +++ b/src/nvim/locale.c @@ -3,8 +3,10 @@ // locale.c: functions for language/locale configuration -#include "auto/config.h" +#include +#include +#include "auto/config.h" #ifdef HAVE_LOCALE_H # include #endif @@ -13,8 +15,11 @@ #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/eval.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/garray.h" +#include "nvim/gettext.h" #include "nvim/locale.h" +#include "nvim/macros.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/option.h" @@ -23,6 +28,7 @@ #include "nvim/path.h" #include "nvim/profile.h" #include "nvim/types.h" +#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "locale.c.generated.h" diff --git a/src/nvim/log.c b/src/nvim/log.c index 9bdf327430..2c214aa32d 100644 --- a/src/nvim/log.c +++ b/src/nvim/log.c @@ -9,21 +9,27 @@ // #include +#include #include #include #include #include +#include +#include +#include #include #include "auto/config.h" +#include "nvim/ascii.h" #include "nvim/eval.h" +#include "nvim/globals.h" #include "nvim/log.h" -#include "nvim/main.h" +#include "nvim/memory.h" #include "nvim/message.h" #include "nvim/os/os.h" +#include "nvim/os/stdpaths_defs.h" #include "nvim/os/time.h" #include "nvim/path.h" -#include "nvim/types.h" /// Cached location of the expanded log file path decided by log_path_init(). static char log_file_path[MAXPATHL + 1] = { 0 }; diff --git a/src/nvim/log.h b/src/nvim/log.h index cbee0e0f81..14d46c2ea7 100644 --- a/src/nvim/log.h +++ b/src/nvim/log.h @@ -11,6 +11,7 @@ // NVIM_PROBE(nvim_foo_bar, 1, string.data); #if defined(HAVE_SYS_SDT_H) # include // NOLINT + # define NVIM_PROBE(name, n, ...) STAP_PROBE##n(neovim, name, __VA_ARGS__) #else # define NVIM_PROBE(name, n, ...) diff --git a/src/nvim/lua/converter.c b/src/nvim/lua/converter.c index d7881350aa..3c129fe7ce 100644 --- a/src/nvim/lua/converter.c +++ b/src/nvim/lua/converter.c @@ -4,14 +4,14 @@ #include #include #include -#include #include +#include #include +#include +#include #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" -#include "nvim/assert.h" -#include "nvim/func_attr.h" #include "nvim/memory.h" // FIXME: vim.h is not actually needed, but otherwise it states MAXPATHL is // redefined @@ -19,12 +19,16 @@ #include "nvim/ascii.h" #include "nvim/eval/decode.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/eval/typval_encode.h" #include "nvim/eval/userfunc.h" -#include "nvim/globals.h" +#include "nvim/garray.h" +#include "nvim/gettext.h" #include "nvim/lua/converter.h" #include "nvim/lua/executor.h" #include "nvim/macros.h" #include "nvim/message.h" +#include "nvim/types.h" #include "nvim/vim.h" /// Determine, which keys lua table contains @@ -565,6 +569,7 @@ static bool typval_conv_special = false; #define TYPVAL_ENCODE_FIRST_ARG_TYPE lua_State *const #define TYPVAL_ENCODE_FIRST_ARG_NAME lstate #include "nvim/eval/typval_encode.c.h" + #undef TYPVAL_ENCODE_SCOPE #undef TYPVAL_ENCODE_NAME #undef TYPVAL_ENCODE_FIRST_ARG_TYPE diff --git a/src/nvim/lua/executor.c b/src/nvim/lua/executor.c index 9cb42a81d3..d2c2f932ec 100644 --- a/src/nvim/lua/executor.c +++ b/src/nvim/lua/executor.c @@ -1,18 +1,22 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include +#include #include #include #include +#include +#include #include +#include +#include "klib/kvec.h" #include "luv/luv.h" #include "nvim/api/extmark.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" -#include "nvim/api/vim.h" #include "nvim/ascii.h" -#include "nvim/assert.h" #include "nvim/buffer_defs.h" #include "nvim/change.h" #include "nvim/cursor.h" @@ -20,28 +24,37 @@ #include "nvim/eval.h" #include "nvim/eval/funcs.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" +#include "nvim/event/defs.h" #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" #include "nvim/event/time.h" #include "nvim/ex_cmds.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_getln.h" -#include "nvim/extmark.h" -#include "nvim/func_attr.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/keycodes.h" #include "nvim/lua/converter.h" #include "nvim/lua/executor.h" #include "nvim/lua/stdlib.h" #include "nvim/lua/treesitter.h" #include "nvim/macros.h" -#include "nvim/map.h" +#include "nvim/main.h" #include "nvim/memline.h" +#include "nvim/memory.h" #include "nvim/message.h" #include "nvim/msgpack_rpc/channel.h" +#include "nvim/option_defs.h" #include "nvim/os/os.h" +#include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/runtime.h" -#include "nvim/screen.h" +#include "nvim/strings.h" #include "nvim/ui.h" #include "nvim/ui_compositor.h" #include "nvim/undo.h" diff --git a/src/nvim/lua/executor.h b/src/nvim/lua/executor.h index 78346fd81f..c6747833e5 100644 --- a/src/nvim/lua/executor.h +++ b/src/nvim/lua/executor.h @@ -3,13 +3,17 @@ #include #include +#include #include "nvim/api/private/defs.h" +#include "nvim/api/private/helpers.h" #include "nvim/assert.h" #include "nvim/eval/typval.h" #include "nvim/ex_cmds_defs.h" #include "nvim/func_attr.h" #include "nvim/lua/converter.h" +#include "nvim/macros.h" +#include "nvim/types.h" #include "nvim/usercmd.h" // Generated by msgpack-gen.lua diff --git a/src/nvim/lua/spell.c b/src/nvim/lua/spell.c index 31a2b2d19f..0a566b2f86 100644 --- a/src/nvim/lua/spell.c +++ b/src/nvim/lua/spell.c @@ -1,15 +1,25 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include #include +#include #include +#include +#include +#include "nvim/ascii.h" +#include "nvim/buffer_defs.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" #include "nvim/lua/spell.h" +#include "nvim/message.h" #include "nvim/spell.h" -#include "nvim/vim.h" +#include "nvim/types.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "lua/spell.c.generated.h" +# include "lua/spell.c.generated.h" // IWYU pragma: export #endif int nlua_spell_check(lua_State *lstate) diff --git a/src/nvim/lua/stdlib.c b/src/nvim/lua/stdlib.c index 54e2c24523..813f86eeee 100644 --- a/src/nvim/lua/stdlib.c +++ b/src/nvim/lua/stdlib.c @@ -1,50 +1,39 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include #include #include -#include +#include +#include +#include +#include +#include +#include +#include "auto/config.h" #include "cjson/lua_cjson.h" -#include "luv/luv.h" #include "mpack/lmpack.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" -#include "nvim/api/vim.h" #include "nvim/ascii.h" -#include "nvim/assert.h" #include "nvim/buffer_defs.h" -#include "nvim/change.h" -#include "nvim/cursor.h" #include "nvim/eval.h" -#include "nvim/eval/userfunc.h" -#include "nvim/event/loop.h" -#include "nvim/event/time.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_eval.h" -#include "nvim/ex_getln.h" -#include "nvim/extmark.h" -#include "nvim/func_attr.h" -#include "nvim/garray.h" -#include "nvim/getchar.h" #include "nvim/globals.h" #include "nvim/lua/converter.h" -#include "nvim/lua/executor.h" #include "nvim/lua/spell.h" #include "nvim/lua/stdlib.h" -#include "nvim/lua/treesitter.h" #include "nvim/lua/xdiff.h" -#include "nvim/macros.h" #include "nvim/map.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" -#include "nvim/message.h" -#include "nvim/msgpack_rpc/channel.h" -#include "nvim/os/os.h" +#include "nvim/memory.h" +#include "nvim/pos.h" #include "nvim/regexp.h" -#include "nvim/regexp_defs.h" -#include "nvim/screen.h" #include "nvim/types.h" -#include "nvim/undo.h" -#include "nvim/version.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/lua/treesitter.c b/src/nvim/lua/treesitter.c index 9d871939f8..d77e210c6a 100644 --- a/src/nvim/lua/treesitter.c +++ b/src/nvim/lua/treesitter.c @@ -6,23 +6,28 @@ // trees and nodes, and could be broken out as a reusable lua package #include -#include #include +#include #include -#include #include #include +#include #include #include #include #include "klib/kvec.h" #include "nvim/api/private/helpers.h" -#include "nvim/buffer.h" -#include "nvim/log.h" +#include "nvim/buffer_defs.h" +#include "nvim/globals.h" #include "nvim/lua/treesitter.h" +#include "nvim/macros.h" #include "nvim/map.h" #include "nvim/memline.h" +#include "nvim/memory.h" +#include "nvim/pos.h" +#include "nvim/strings.h" +#include "nvim/types.h" #include "tree_sitter/api.h" #define TS_META_PARSER "treesitter_parser" diff --git a/src/nvim/lua/xdiff.c b/src/nvim/lua/xdiff.c index cd542b0e00..857b159af5 100644 --- a/src/nvim/lua/xdiff.c +++ b/src/nvim/lua/xdiff.c @@ -1,19 +1,20 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include #include #include -#include -#include -#include +#include #include +#include "luaconf.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/linematch.h" #include "nvim/lua/converter.h" #include "nvim/lua/executor.h" #include "nvim/lua/xdiff.h" +#include "nvim/macros.h" +#include "nvim/memory.h" #include "nvim/vim.h" #include "xdiff/xdiff.h" diff --git a/src/nvim/main.c b/src/nvim/main.c index e395f8dc78..a74e145eef 100644 --- a/src/nvim/main.c +++ b/src/nvim/main.c @@ -3,41 +3,52 @@ #define EXTERN #include -#include +#include +#include #include #include +#include +#include #include +#include +#include "auto/config.h" #include "nvim/arglist.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/channel.h" -#include "nvim/charset.h" #include "nvim/decoration.h" #include "nvim/decoration_provider.h" #include "nvim/diff.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/event/multiqueue.h" +#include "nvim/event/stream.h" #include "nvim/ex_cmds.h" -#include "nvim/ex_cmds2.h" #include "nvim/ex_docmd.h" #include "nvim/ex_getln.h" #include "nvim/fileio.h" #include "nvim/fold.h" #include "nvim/garray.h" +#include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/hashtab.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" -#include "nvim/iconv.h" +#include "nvim/keycodes.h" #include "nvim/locale.h" #include "nvim/log.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" #include "nvim/main.h" -#include "nvim/mapping.h" #include "nvim/mark.h" -#include "nvim/mbyte.h" +#include "nvim/memfile_defs.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" @@ -46,24 +57,27 @@ #include "nvim/normal.h" #include "nvim/ops.h" #include "nvim/option.h" +#include "nvim/option_defs.h" #include "nvim/optionstr.h" #include "nvim/os/fileio.h" #include "nvim/os/input.h" #include "nvim/os/os.h" -#include "nvim/os/os_defs.h" +#include "nvim/os/pty_process.h" +#include "nvim/os/stdpaths_defs.h" #include "nvim/os/time.h" -#include "nvim/os_unix.h" #include "nvim/path.h" #include "nvim/popupmenu.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/quickfix.h" #include "nvim/runtime.h" #include "nvim/shada.h" #include "nvim/sign.h" -#include "nvim/state.h" #include "nvim/statusline.h" #include "nvim/strings.h" #include "nvim/syntax.h" +#include "nvim/terminal.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/ui_client.h" #include "nvim/ui_compositor.h" @@ -73,8 +87,8 @@ #ifdef MSWIN # include "nvim/os/os_win_console.h" #endif +#include "nvim/api/extmark.h" #include "nvim/api/private/defs.h" -#include "nvim/api/private/dispatch.h" #include "nvim/api/private/helpers.h" #include "nvim/api/ui.h" #include "nvim/event/loop.h" @@ -83,10 +97,6 @@ #include "nvim/msgpack_rpc/helpers.h" #include "nvim/msgpack_rpc/server.h" #include "nvim/os/signal.h" -#ifndef MSWIN -# include "nvim/os/pty_process_unix.h" -#endif -#include "nvim/api/extmark.h" // values for "window_layout" enum { diff --git a/src/nvim/main.h b/src/nvim/main.h index 0c497a7c0e..780022a9b1 100644 --- a/src/nvim/main.h +++ b/src/nvim/main.h @@ -1,6 +1,8 @@ #ifndef NVIM_MAIN_H #define NVIM_MAIN_H +#include + #include "nvim/event/loop.h" // Maximum number of commands from + or -c arguments. diff --git a/src/nvim/map.c b/src/nvim/map.c index 24478c6091..191a459863 100644 --- a/src/nvim/map.c +++ b/src/nvim/map.c @@ -8,17 +8,16 @@ // khash.h does not make its own copy of the key or value. // -#include -#include #include #include #include +#include "auto/config.h" #include "klib/khash.h" +#include "nvim/gettext.h" #include "nvim/map.h" #include "nvim/map_defs.h" #include "nvim/memory.h" -#include "nvim/vim.h" #define cstr_t_hash kh_str_hash_func #define cstr_t_eq kh_str_hash_equal diff --git a/src/nvim/map.h b/src/nvim/map.h index f5f30f5a85..92f0b32255 100644 --- a/src/nvim/map.h +++ b/src/nvim/map.h @@ -2,12 +2,17 @@ #define NVIM_MAP_H #include +#include +#include +#include "klib/khash.h" #include "nvim/api/private/defs.h" #include "nvim/extmark_defs.h" +#include "nvim/gettext.h" #include "nvim/highlight_defs.h" #include "nvim/map_defs.h" #include "nvim/tui/input_defs.h" +#include "nvim/types.h" #include "nvim/ui_client.h" #if defined(__NetBSD__) diff --git a/src/nvim/mapping.c b/src/nvim/mapping.c index 0fff48019b..9b10ea901e 100644 --- a/src/nvim/mapping.c +++ b/src/nvim/mapping.c @@ -5,32 +5,40 @@ #include #include +#include #include +#include +#include #include #include "nvim/api/private/converter.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" -#include "nvim/assert.h" #include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/eval.h" #include "nvim/eval/typval.h" -#include "nvim/ex_docmd.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_session.h" -#include "nvim/func_attr.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" #include "nvim/keycodes.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" #include "nvim/mapping.h" #include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/message.h" -#include "nvim/option.h" +#include "nvim/option_defs.h" +#include "nvim/pos.h" #include "nvim/regexp.h" #include "nvim/runtime.h" -#include "nvim/ui.h" +#include "nvim/strings.h" #include "nvim/vim.h" /// List used for abbreviations. diff --git a/src/nvim/mapping.h b/src/nvim/mapping.h index 156187b5d8..7053aa814d 100644 --- a/src/nvim/mapping.h +++ b/src/nvim/mapping.h @@ -1,6 +1,10 @@ #ifndef NVIM_MAPPING_H #define NVIM_MAPPING_H +#include +#include + +#include "lauxlib.h" #include "nvim/buffer_defs.h" #include "nvim/ex_cmds_defs.h" #include "nvim/types.h" diff --git a/src/nvim/mark.c b/src/nvim/mark.c index f9ed80e3ce..ad325ae057 100644 --- a/src/nvim/mark.c +++ b/src/nvim/mark.c @@ -4,20 +4,26 @@ // mark.c: functions for setting marks and jumping to them #include -#include #include +#include #include #include "nvim/ascii.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/diff.h" #include "nvim/edit.h" -#include "nvim/eval.h" -#include "nvim/ex_cmds.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/extmark.h" +#include "nvim/extmark_defs.h" #include "nvim/fold.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" #include "nvim/mark.h" #include "nvim/mbyte.h" #include "nvim/memline.h" @@ -25,16 +31,16 @@ #include "nvim/message.h" #include "nvim/move.h" #include "nvim/normal.h" -#include "nvim/option.h" +#include "nvim/option_defs.h" #include "nvim/os/input.h" #include "nvim/os/os.h" -#include "nvim/os/time.h" #include "nvim/path.h" #include "nvim/quickfix.h" #include "nvim/sign.h" #include "nvim/strings.h" #include "nvim/textobject.h" -#include "nvim/ui.h" +#include "nvim/types.h" +#include "nvim/undo_defs.h" #include "nvim/vim.h" // This file contains routines to maintain and manipulate marks. diff --git a/src/nvim/mark.h b/src/nvim/mark.h index a3fcf6d7e7..af0abba864 100644 --- a/src/nvim/mark.h +++ b/src/nvim/mark.h @@ -1,9 +1,12 @@ #ifndef NVIM_MARK_H #define NVIM_MARK_H +#include +#include + #include "nvim/ascii.h" #include "nvim/buffer_defs.h" -#include "nvim/ex_cmds_defs.h" // for exarg_T +#include "nvim/ex_cmds_defs.h" #include "nvim/extmark_defs.h" #include "nvim/func_attr.h" #include "nvim/macros.h" diff --git a/src/nvim/marktree.c b/src/nvim/marktree.c index ad1680322c..2036ddd21d 100644 --- a/src/nvim/marktree.c +++ b/src/nvim/marktree.c @@ -48,10 +48,15 @@ // at the repo root. #include +#include +#include +#include #include "klib/kvec.h" #include "nvim/garray.h" #include "nvim/marktree.h" +#include "nvim/memory.h" +#include "nvim/pos.h" #define T MT_BRANCH_FACTOR #define ILEN (sizeof(mtnode_t) + (2 * T) * sizeof(void *)) diff --git a/src/nvim/marktree.h b/src/nvim/marktree.h index e2e05eebd5..5ce4b2cd24 100644 --- a/src/nvim/marktree.h +++ b/src/nvim/marktree.h @@ -2,14 +2,19 @@ #define NVIM_MARKTREE_H #include +#include +#include #include #include "nvim/assert.h" #include "nvim/garray.h" #include "nvim/map.h" +#include "nvim/map_defs.h" #include "nvim/pos.h" #include "nvim/types.h" +struct mtnode_s; + #define MT_MAX_DEPTH 20 #define MT_BRANCH_FACTOR 10 diff --git a/src/nvim/match.c b/src/nvim/match.c index 1e77dc3e91..fc98ad8396 100644 --- a/src/nvim/match.c +++ b/src/nvim/match.c @@ -3,22 +3,39 @@ // match.c: functions for highlighting matches +#include +#include #include +#include +#include +#include "nvim/ascii.h" #include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" #include "nvim/eval/funcs.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/fold.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" +#include "nvim/macros.h" #include "nvim/match.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" +#include "nvim/memory.h" +#include "nvim/message.h" +#include "nvim/option_defs.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/regexp.h" -#include "nvim/runtime.h" +#include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/math.c b/src/nvim/math.c index b427688083..31c6b5af69 100644 --- a/src/nvim/math.c +++ b/src/nvim/math.c @@ -10,7 +10,7 @@ #include "nvim/math.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "math.c.generated.h" +# include "math.c.generated.h" // IWYU pragma: export #endif int xfpclassify(double d) diff --git a/src/nvim/mbyte.c b/src/nvim/mbyte.c index 848b0f29d0..42b3ec0202 100644 --- a/src/nvim/mbyte.c +++ b/src/nvim/mbyte.c @@ -25,36 +25,55 @@ /// Vim scripts may contain an ":scriptencoding" command. This has an effect /// for some commands, like ":menutrans". -#include +#include +#include +#include +#include #include +#include +#include #include #include #include -#include "nvim/ascii.h" -#include "nvim/vim.h" -#ifdef HAVE_LOCALE_H -# include -#endif +#include "auto/config.h" #include "nvim/arabic.h" +#include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" -#include "nvim/eval.h" -#include "nvim/fileio.h" -#include "nvim/func_attr.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/grid_defs.h" #include "nvim/iconv.h" +#include "nvim/keycodes.h" +#include "nvim/macros.h" #include "nvim/mark.h" #include "nvim/mbyte.h" +#include "nvim/mbyte_defs.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" +#include "nvim/option_defs.h" #include "nvim/os/os.h" -#include "nvim/path.h" +#include "nvim/os/os_defs.h" +#include "nvim/pos.h" #include "nvim/screen.h" -#include "nvim/spell.h" #include "nvim/strings.h" +#include "nvim/types.h" +#include "nvim/vim.h" + +#ifdef HAVE_LOCALE_H +# include +#endif + +#ifdef __STDC_ISO_10646__ +# include +#endif typedef struct { int rangeStart; @@ -68,11 +87,12 @@ struct interval { long last; }; +// uncrustify:off #ifdef INCLUDE_GENERATED_DECLARATIONS # include "mbyte.c.generated.h" - # include "unicode_tables.generated.h" #endif +// uncrustify:on static char e_list_item_nr_is_not_list[] = N_("E1109: List item %d is not a List"); diff --git a/src/nvim/mbyte.h b/src/nvim/mbyte.h index b499f33cc6..780f33e05b 100644 --- a/src/nvim/mbyte.h +++ b/src/nvim/mbyte.h @@ -8,8 +8,8 @@ #include "nvim/eval/typval.h" #include "nvim/func_attr.h" #include "nvim/mbyte_defs.h" -#include "nvim/os/os_defs.h" // For indirect -#include "nvim/types.h" // for char_u +#include "nvim/os/os_defs.h" +#include "nvim/types.h" // Return byte length of character that starts with byte "b". // Returns 1 for a single-byte character. diff --git a/src/nvim/memfile.c b/src/nvim/memfile.c index 608d194cad..f88e51bd83 100644 --- a/src/nvim/memfile.c +++ b/src/nvim/memfile.c @@ -43,19 +43,26 @@ #include #include #include +#include #include -#include "nvim/ascii.h" #include "nvim/assert.h" +#include "nvim/buffer_defs.h" #include "nvim/fileio.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/macros.h" #include "nvim/memfile.h" +#include "nvim/memfile_defs.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" +#include "nvim/os/fs_defs.h" #include "nvim/os/input.h" #include "nvim/os/os.h" -#include "nvim/os_unix.h" #include "nvim/path.h" +#include "nvim/pos.h" +#include "nvim/types.h" #include "nvim/vim.h" #define MEMFILE_PAGE_SIZE 4096 /// default page size diff --git a/src/nvim/memline.c b/src/nvim/memline.c index 1826e5935e..1f601f0668 100644 --- a/src/nvim/memline.c +++ b/src/nvim/memline.c @@ -39,19 +39,31 @@ #include #include #include +#include #include +#include +#include +#include "auto/config.h" +#include "klib/kvec.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/change.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/fileio.h" -#include "nvim/func_attr.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" #include "nvim/input.h" +#include "nvim/macros.h" #include "nvim/main.h" #include "nvim/mark.h" #include "nvim/mbyte.h" @@ -60,19 +72,21 @@ #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/option.h" +#include "nvim/os/fs_defs.h" #include "nvim/os/input.h" #include "nvim/os/os.h" #include "nvim/os/process.h" -#include "nvim/os_unix.h" +#include "nvim/os/time.h" #include "nvim/path.h" -#include "nvim/sha256.h" +#include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/spell.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/version.h" #include "nvim/vim.h" -#include "nvim/window.h" #ifndef UNIX // it's in os/unix_defs.h for Unix # include diff --git a/src/nvim/memline.h b/src/nvim/memline.h index 441adf3e87..f4190f0210 100644 --- a/src/nvim/memline.h +++ b/src/nvim/memline.h @@ -1,8 +1,8 @@ #ifndef NVIM_MEMLINE_H #define NVIM_MEMLINE_H -#include "nvim/buffer_defs.h" // for buf_T -#include "nvim/pos.h" // for pos_T, linenr_T, colnr_T +#include "nvim/buffer_defs.h" +#include "nvim/pos.h" #include "nvim/types.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/memory.c b/src/nvim/memory.c index 81299d3e25..60c29492bb 100644 --- a/src/nvim/memory.c +++ b/src/nvim/memory.c @@ -7,17 +7,23 @@ #include #include #include +#include #include +#include #include "nvim/api/extmark.h" #include "nvim/arglist.h" +#include "nvim/ascii.h" #include "nvim/context.h" #include "nvim/decoration_provider.h" #include "nvim/eval.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" #include "nvim/insexpand.h" #include "nvim/lua/executor.h" +#include "nvim/main.h" #include "nvim/mapping.h" #include "nvim/memfile.h" #include "nvim/memory.h" @@ -25,6 +31,7 @@ #include "nvim/sign.h" #include "nvim/ui.h" #include "nvim/ui_compositor.h" +#include "nvim/usercmd.h" #include "nvim/vim.h" #ifdef UNIT_TESTING @@ -653,7 +660,6 @@ char *arena_memdupz(Arena *arena, const char *buf, size_t size) # include "nvim/autocmd.h" # include "nvim/buffer.h" -# include "nvim/charset.h" # include "nvim/cmdhist.h" # include "nvim/diff.h" # include "nvim/edit.h" @@ -662,23 +668,16 @@ char *arena_memdupz(Arena *arena, const char *buf, size_t size) # include "nvim/ex_docmd.h" # include "nvim/ex_getln.h" # include "nvim/file_search.h" -# include "nvim/fold.h" # include "nvim/getchar.h" # include "nvim/grid.h" # include "nvim/mark.h" -# include "nvim/mbyte.h" -# include "nvim/memline.h" -# include "nvim/move.h" # include "nvim/ops.h" # include "nvim/option.h" # include "nvim/os/os.h" -# include "nvim/os_unix.h" -# include "nvim/path.h" # include "nvim/quickfix.h" # include "nvim/regexp.h" # include "nvim/search.h" # include "nvim/spell.h" -# include "nvim/syntax.h" # include "nvim/tag.h" # include "nvim/window.h" diff --git a/src/nvim/memory.h b/src/nvim/memory.h index 5c3d18ac93..5b9798dc0d 100644 --- a/src/nvim/memory.h +++ b/src/nvim/memory.h @@ -1,10 +1,10 @@ #ifndef NVIM_MEMORY_H #define NVIM_MEMORY_H -#include // for bool -#include // for size_t -#include // for uint8_t -#include // for time_t +#include +#include +#include +#include #include "nvim/macros.h" diff --git a/src/nvim/menu.c b/src/nvim/menu.c index 57116170aa..7d16ab01d0 100644 --- a/src/nvim/menu.c +++ b/src/nvim/menu.c @@ -5,29 +5,40 @@ // GUI/Motif support by Robert Webb #include -#include +#include #include #include "nvim/ascii.h" #include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/eval.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" #include "nvim/keycodes.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/menu.h" +#include "nvim/menu_defs.h" #include "nvim/message.h" +#include "nvim/option_defs.h" #include "nvim/popupmenu.h" -#include "nvim/screen.h" +#include "nvim/pos.h" #include "nvim/state.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/ui.h" +#include "nvim/undo_defs.h" #include "nvim/vim.h" -#include "nvim/window.h" #define MENUDEPTH 10 // maximum depth of menus diff --git a/src/nvim/menu.h b/src/nvim/menu.h index be294a1831..32959cf35f 100644 --- a/src/nvim/menu.h +++ b/src/nvim/menu.h @@ -1,11 +1,11 @@ #ifndef NVIM_MENU_H #define NVIM_MENU_H -#include // for bool +#include -#include "nvim/ex_cmds_defs.h" // for exarg_T +#include "nvim/ex_cmds_defs.h" #include "nvim/menu_defs.h" -#include "nvim/types.h" // for char_u and expand_T +#include "nvim/types.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "menu.h.generated.h" diff --git a/src/nvim/menu_defs.h b/src/nvim/menu_defs.h index 5fdb222bde..79b267ae49 100644 --- a/src/nvim/menu_defs.h +++ b/src/nvim/menu_defs.h @@ -1,7 +1,7 @@ #ifndef NVIM_MENU_DEFS_H #define NVIM_MENU_DEFS_H -#include // for bool +#include /// Indices into vimmenu_T->strings[] and vimmenu_T->noremap[] for each mode /// \addtogroup MENU_INDEX diff --git a/src/nvim/message.c b/src/nvim/message.c index 538bcde6a5..01f4612026 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -7,41 +7,50 @@ #include #include #include +#include +#include +#include #include #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" -#include "nvim/assert.h" +#include "nvim/buffer_defs.h" +#include "nvim/channel.h" #include "nvim/charset.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" -#include "nvim/ex_docmd.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/event/defs.h" +#include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_eval.h" -#include "nvim/ex_getln.h" #include "nvim/fileio.h" -#include "nvim/func_attr.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" #include "nvim/indent.h" #include "nvim/input.h" #include "nvim/keycodes.h" +#include "nvim/log.h" #include "nvim/main.h" #include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/mouse.h" -#include "nvim/normal.h" #include "nvim/ops.h" #include "nvim/option.h" #include "nvim/os/input.h" #include "nvim/os/os.h" -#include "nvim/os/time.h" +#include "nvim/pos.h" #include "nvim/regexp.h" #include "nvim/runtime.h" +#include "nvim/screen.h" #include "nvim/strings.h" -#include "nvim/syntax.h" #include "nvim/ui.h" #include "nvim/ui_compositor.h" #include "nvim/vim.h" diff --git a/src/nvim/mouse.c b/src/nvim/mouse.c index fd1eec692a..479ffde705 100644 --- a/src/nvim/mouse.c +++ b/src/nvim/mouse.c @@ -1,33 +1,46 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include #include +#include +#include #include "nvim/ascii.h" #include "nvim/buffer.h" #include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor.h" -#include "nvim/diff.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_docmd.h" #include "nvim/fold.h" #include "nvim/getchar.h" +#include "nvim/globals.h" #include "nvim/grid.h" +#include "nvim/keycodes.h" +#include "nvim/macros.h" +#include "nvim/mark.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/menu.h" +#include "nvim/message.h" #include "nvim/mouse.h" #include "nvim/move.h" +#include "nvim/normal.h" #include "nvim/ops.h" #include "nvim/option.h" -#include "nvim/os_unix.h" #include "nvim/plines.h" +#include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/state.h" #include "nvim/statusline.h" #include "nvim/strings.h" #include "nvim/syntax.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/ui_compositor.h" #include "nvim/vim.h" diff --git a/src/nvim/move.c b/src/nvim/move.c index b79edb50f9..df79b169b8 100644 --- a/src/nvim/move.c +++ b/src/nvim/move.c @@ -11,8 +11,9 @@ // The 'scrolloff' option makes this a bit complicated. #include -#include +#include #include +#include #include "nvim/ascii.h" #include "nvim/buffer.h" @@ -23,19 +24,26 @@ #include "nvim/edit.h" #include "nvim/eval.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/fold.h" #include "nvim/getchar.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" +#include "nvim/macros.h" #include "nvim/mbyte.h" -#include "nvim/memline.h" +#include "nvim/memline_defs.h" #include "nvim/mouse.h" #include "nvim/move.h" #include "nvim/option.h" #include "nvim/plines.h" #include "nvim/popupmenu.h" +#include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/strings.h" +#include "nvim/types.h" +#include "nvim/vim.h" #include "nvim/window.h" typedef struct { diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c index 71ed5ccf81..516af20fe9 100644 --- a/src/nvim/msgpack_rpc/channel.c +++ b/src/nvim/msgpack_rpc/channel.c @@ -1,36 +1,42 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include #include -#include +#include +#include +#include +#include #include -#include +#include +#include #include #include "klib/kvec.h" +#include "nvim/api/private/defs.h" +#include "nvim/api/private/dispatch.h" #include "nvim/api/private/helpers.h" #include "nvim/api/ui.h" -#include "nvim/api/vim.h" -#include "nvim/ascii.h" #include "nvim/channel.h" -#include "nvim/eval.h" -#include "nvim/event/libuv_process.h" +#include "nvim/event/defs.h" #include "nvim/event/loop.h" #include "nvim/event/rstream.h" -#include "nvim/event/socket.h" +#include "nvim/event/stream.h" #include "nvim/event/wstream.h" +#include "nvim/globals.h" #include "nvim/log.h" #include "nvim/main.h" #include "nvim/map.h" #include "nvim/memory.h" -#include "nvim/message.h" #include "nvim/msgpack_rpc/channel.h" +#include "nvim/msgpack_rpc/channel_defs.h" #include "nvim/msgpack_rpc/helpers.h" #include "nvim/msgpack_rpc/unpacker.h" #include "nvim/os/input.h" -#include "nvim/os_unix.h" +#include "nvim/rbuffer.h" +#include "nvim/types.h" #include "nvim/ui.h" -#include "nvim/vim.h" +#include "nvim/ui_client.h" #if MIN_LOG_LEVEL > LOGLVL_DBG # define log_client_msg(...) diff --git a/src/nvim/msgpack_rpc/channel.h b/src/nvim/msgpack_rpc/channel.h index ac7911bb2c..ce5806930c 100644 --- a/src/nvim/msgpack_rpc/channel.h +++ b/src/nvim/msgpack_rpc/channel.h @@ -6,8 +6,10 @@ #include "nvim/api/private/defs.h" #include "nvim/channel.h" +#include "nvim/event/multiqueue.h" #include "nvim/event/process.h" #include "nvim/event/socket.h" +#include "nvim/macros.h" #include "nvim/vim.h" #define METHOD_MAXLEN 512 diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c index 86babd1c36..609fef37d0 100644 --- a/src/nvim/msgpack_rpc/helpers.c +++ b/src/nvim/msgpack_rpc/helpers.c @@ -1,21 +1,25 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include -#include +#include +#include +#include +#include #include +#include +#include #include "klib/kvec.h" -#include "nvim/api/private/dispatch.h" +#include "msgpack/pack.h" #include "nvim/api/private/helpers.h" #include "nvim/assert.h" -#include "nvim/log.h" +#include "nvim/event/wstream.h" #include "nvim/memory.h" #include "nvim/msgpack_rpc/helpers.h" -#include "nvim/vim.h" +#include "nvim/types.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "keysets.generated.h" +# include "keysets.generated.h" // IWYU pragma: export # include "msgpack_rpc/helpers.c.generated.h" #endif diff --git a/src/nvim/msgpack_rpc/server.c b/src/nvim/msgpack_rpc/server.c index 81b58764d7..b1e033d9f1 100644 --- a/src/nvim/msgpack_rpc/server.c +++ b/src/nvim/msgpack_rpc/server.c @@ -1,25 +1,22 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include #include -#include +#include +#include #include +#include -#include "nvim/ascii.h" +#include "nvim/channel.h" #include "nvim/eval.h" #include "nvim/event/socket.h" -#include "nvim/fileio.h" #include "nvim/garray.h" #include "nvim/log.h" #include "nvim/main.h" #include "nvim/memory.h" -#include "nvim/msgpack_rpc/channel.h" #include "nvim/msgpack_rpc/server.h" #include "nvim/os/os.h" -#include "nvim/path.h" -#include "nvim/strings.h" -#include "nvim/vim.h" +#include "nvim/os/stdpaths_defs.h" #define MAX_CONNECTIONS 32 #define ENV_LISTEN "NVIM_LISTEN_ADDRESS" // deprecated diff --git a/src/nvim/msgpack_rpc/unpacker.c b/src/nvim/msgpack_rpc/unpacker.c index 24480835a1..e5583cf91b 100644 --- a/src/nvim/msgpack_rpc/unpacker.c +++ b/src/nvim/msgpack_rpc/unpacker.c @@ -1,9 +1,17 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include +#include +#include + +#include "klib/kvec.h" +#include "mpack/conv.h" #include "nvim/api/private/helpers.h" -#include "nvim/log.h" +#include "nvim/ascii.h" +#include "nvim/macros.h" #include "nvim/memory.h" +#include "nvim/msgpack_rpc/channel_defs.h" #include "nvim/msgpack_rpc/helpers.h" #include "nvim/msgpack_rpc/unpacker.h" #include "nvim/ui_client.h" diff --git a/src/nvim/msgpack_rpc/unpacker.h b/src/nvim/msgpack_rpc/unpacker.h index 35048fb877..b8b2d38d3b 100644 --- a/src/nvim/msgpack_rpc/unpacker.h +++ b/src/nvim/msgpack_rpc/unpacker.h @@ -7,10 +7,14 @@ #include "mpack/mpack_core.h" #include "mpack/object.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/dispatch.h" #include "nvim/api/private/helpers.h" +#include "nvim/grid_defs.h" #include "nvim/memory.h" #include "nvim/msgpack_rpc/channel_defs.h" +#include "nvim/types.h" +#include "nvim/ui_client.h" struct Unpacker { mpack_parser_t parser; diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 27a7b1ae04..ed689df91c 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -8,14 +8,21 @@ // #include +#include #include +#include #include +#include #include #include +#include +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/change.h" #include "nvim/charset.h" #include "nvim/cmdhist.h" @@ -25,8 +32,6 @@ #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval.h" -#include "nvim/eval/userfunc.h" -#include "nvim/event/loop.h" #include "nvim/ex_cmds.h" #include "nvim/ex_cmds2.h" #include "nvim/ex_docmd.h" @@ -34,15 +39,16 @@ #include "nvim/fileio.h" #include "nvim/fold.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" #include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/help.h" -#include "nvim/indent.h" +#include "nvim/highlight_defs.h" #include "nvim/keycodes.h" -#include "nvim/log.h" -#include "nvim/main.h" +#include "nvim/macros.h" #include "nvim/mapping.h" #include "nvim/mark.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" @@ -56,6 +62,7 @@ #include "nvim/plines.h" #include "nvim/profile.h" #include "nvim/quickfix.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/spell.h" #include "nvim/spellfile.h" @@ -66,6 +73,7 @@ #include "nvim/tag.h" #include "nvim/textformat.h" #include "nvim/textobject.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/vim.h" diff --git a/src/nvim/normal.h b/src/nvim/normal.h index 0317080f4f..43d892e49a 100644 --- a/src/nvim/normal.h +++ b/src/nvim/normal.h @@ -3,7 +3,7 @@ #include -#include "nvim/buffer_defs.h" // for win_T +#include "nvim/buffer_defs.h" #include "nvim/pos.h" // Values for find_ident_under_cursor() diff --git a/src/nvim/ops.c b/src/nvim/ops.c index 8656b4265d..f61c978f3c 100644 --- a/src/nvim/ops.c +++ b/src/nvim/ops.c @@ -5,13 +5,18 @@ // op_change, op_yank, do_put, do_join #include +#include #include +#include #include +#include +#include #include -#include "klib/kvec.h" +#include "nvim/api/private/defs.h" #include "nvim/ascii.h" #include "nvim/assert.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/change.h" #include "nvim/charset.h" @@ -20,16 +25,19 @@ #include "nvim/edit.h" #include "nvim/eval.h" #include "nvim/eval/typval.h" -#include "nvim/ex_cmds.h" #include "nvim/ex_cmds2.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_getln.h" #include "nvim/extmark.h" #include "nvim/fold.h" +#include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" #include "nvim/globals.h" +#include "nvim/highlight_defs.h" #include "nvim/indent.h" #include "nvim/indent_c.h" -#include "nvim/log.h" +#include "nvim/keycodes.h" #include "nvim/macros.h" #include "nvim/mark.h" #include "nvim/mbyte.h" @@ -43,13 +51,14 @@ #include "nvim/option.h" #include "nvim/os/input.h" #include "nvim/os/time.h" -#include "nvim/path.h" #include "nvim/plines.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/state.h" #include "nvim/strings.h" #include "nvim/terminal.h" #include "nvim/textformat.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/vim.h" diff --git a/src/nvim/ops.h b/src/nvim/ops.h index 840e33a48c..75ea1853a0 100644 --- a/src/nvim/ops.h +++ b/src/nvim/ops.h @@ -2,14 +2,17 @@ #define NVIM_OPS_H #include +#include #include "nvim/ascii.h" #include "nvim/eval/typval.h" -#include "nvim/ex_cmds_defs.h" // for exarg_T +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/extmark.h" #include "nvim/macros.h" -#include "nvim/normal.h" // for MotionType and oparg_T +#include "nvim/normal.h" #include "nvim/os/time.h" +#include "nvim/pos.h" #include "nvim/types.h" typedef int (*Indenter)(void); diff --git a/src/nvim/option.c b/src/nvim/option.c index 330900a9d6..827b755ce8 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -21,14 +21,18 @@ #define IN_OPTION_C #include +#include #include #include #include +#include #include #include -#include "nvim/arglist.h" +#include "auto/config.h" +#include "nvim/api/private/defs.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/change.h" #include "nvim/charset.h" @@ -36,16 +40,18 @@ #include "nvim/decoration_provider.h" #include "nvim/diff.h" #include "nvim/drawscreen.h" -#include "nvim/edit.h" #include "nvim/eval.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_getln.h" #include "nvim/ex_session.h" -#include "nvim/fileio.h" #include "nvim/fold.h" #include "nvim/garray.h" -#include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/grid_defs.h" #include "nvim/hardcopy.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" @@ -54,6 +60,7 @@ #include "nvim/insexpand.h" #include "nvim/keycodes.h" #include "nvim/locale.h" +#include "nvim/log.h" #include "nvim/macros.h" #include "nvim/mapping.h" #include "nvim/mbyte.h" @@ -66,22 +73,24 @@ #include "nvim/normal.h" #include "nvim/ops.h" #include "nvim/option.h" +#include "nvim/option_defs.h" #include "nvim/optionstr.h" #include "nvim/os/os.h" -#include "nvim/os_unix.h" #include "nvim/path.h" #include "nvim/popupmenu.h" +#include "nvim/pos.h" #include "nvim/regexp.h" +#include "nvim/runtime.h" #include "nvim/screen.h" -#include "nvim/search.h" +#include "nvim/sign_defs.h" #include "nvim/spell.h" #include "nvim/spellfile.h" #include "nvim/spellsuggest.h" #include "nvim/strings.h" -#include "nvim/syntax.h" #include "nvim/tag.h" +#include "nvim/terminal.h" +#include "nvim/types.h" #include "nvim/ui.h" -#include "nvim/ui_compositor.h" #include "nvim/undo.h" #include "nvim/vim.h" #include "nvim/window.h" @@ -90,7 +99,6 @@ #endif #include "nvim/api/extmark.h" #include "nvim/api/private/helpers.h" -#include "nvim/api/vim.h" #include "nvim/lua/executor.h" #include "nvim/os/input.h" #include "nvim/os/lang.h" diff --git a/src/nvim/option.h b/src/nvim/option.h index c65d2ee182..6744678044 100644 --- a/src/nvim/option.h +++ b/src/nvim/option.h @@ -1,7 +1,7 @@ #ifndef NVIM_OPTION_H #define NVIM_OPTION_H -#include "nvim/ex_cmds_defs.h" // for exarg_T +#include "nvim/ex_cmds_defs.h" /// Returned by get_option_value(). typedef enum { diff --git a/src/nvim/option_defs.h b/src/nvim/option_defs.h index 8f7e44d23d..c60925d485 100644 --- a/src/nvim/option_defs.h +++ b/src/nvim/option_defs.h @@ -1,8 +1,8 @@ #ifndef NVIM_OPTION_DEFS_H #define NVIM_OPTION_DEFS_H -#include "eval/typval.h" // For scid_T -#include "nvim/macros.h" // For EXTERN +#include "nvim/eval/typval.h" +#include "nvim/macros.h" #include "nvim/types.h" // option_defs.h: definition of global variables for settable options diff --git a/src/nvim/optionstr.c b/src/nvim/optionstr.c index b088a4c8c7..5022334582 100644 --- a/src/nvim/optionstr.c +++ b/src/nvim/optionstr.c @@ -2,14 +2,13 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include -#include #include -#include #include #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/cursor_shape.h" @@ -17,23 +16,35 @@ #include "nvim/digraph.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/vars.h" #include "nvim/ex_getln.h" +#include "nvim/fold.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/hardcopy.h" #include "nvim/highlight_group.h" #include "nvim/indent.h" #include "nvim/indent_c.h" #include "nvim/insexpand.h" #include "nvim/keycodes.h" +#include "nvim/macros.h" #include "nvim/mapping.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/mouse.h" #include "nvim/move.h" #include "nvim/ops.h" #include "nvim/option.h" +#include "nvim/option_defs.h" #include "nvim/optionstr.h" +#include "nvim/os/os.h" +#include "nvim/pos.h" #include "nvim/quickfix.h" #include "nvim/runtime.h" +#include "nvim/screen.h" #include "nvim/spell.h" #include "nvim/spellfile.h" #include "nvim/spellsuggest.h" diff --git a/src/nvim/optionstr.h b/src/nvim/optionstr.h index ac8d90e10e..3520cc2061 100644 --- a/src/nvim/optionstr.h +++ b/src/nvim/optionstr.h @@ -1,7 +1,7 @@ #ifndef NVIM_OPTIONSTR_H #define NVIM_OPTIONSTR_H -#include "nvim/buffer_defs.h" // for buf_T, win_T +#include "nvim/buffer_defs.h" #include "nvim/option_defs.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/os/dl.c b/src/nvim/os/dl.c index 7d095d31e3..519cef7876 100644 --- a/src/nvim/os/dl.c +++ b/src/nvim/os/dl.c @@ -4,13 +4,14 @@ /// Functions for using external native libraries #include +#include #include #include +#include "nvim/gettext.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/os/dl.h" -#include "nvim/os/os.h" /// possible function prototypes that can be called by os_libcall() /// int -> int diff --git a/src/nvim/os/env.c b/src/nvim/os/env.c index ca6bff662d..8f58f5217e 100644 --- a/src/nvim/os/env.c +++ b/src/nvim/os/env.c @@ -4,19 +4,32 @@ // Environment inspection #include +#include +#include +#include +#include +#include #include +#include "auto/config.h" #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cmdexpand.h" #include "nvim/eval.h" +#include "nvim/ex_cmds_defs.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/log.h" #include "nvim/macros.h" #include "nvim/map.h" #include "nvim/memory.h" #include "nvim/message.h" +#include "nvim/option_defs.h" #include "nvim/os/os.h" #include "nvim/path.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/version.h" #include "nvim/vim.h" diff --git a/src/nvim/os/fileio.c b/src/nvim/os/fileio.c index 280a9c2bee..bdea82f1ff 100644 --- a/src/nvim/os/fileio.c +++ b/src/nvim/os/fileio.c @@ -11,22 +11,19 @@ #include #include #include - -#include "auto/config.h" - -#ifdef HAVE_SYS_UIO_H -# include -#endif - +#include #include -#include "nvim/globals.h" +#include "auto/config.h" +#include "nvim/gettext.h" #include "nvim/macros.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/os/fileio.h" #include "nvim/os/os.h" +#include "nvim/os/os_defs.h" #include "nvim/rbuffer.h" +#include "nvim/types.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "os/fileio.c.generated.h" diff --git a/src/nvim/os/fs.c b/src/nvim/os/fs.c index 0cadabbb47..2ae0a81e3d 100644 --- a/src/nvim/os/fs.c +++ b/src/nvim/os/fs.c @@ -5,11 +5,23 @@ #include #include #include -#include #include #include +#include +#include +#include +#include +#include #include "auto/config.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/log.h" +#include "nvim/macros.h" +#include "nvim/option_defs.h" +#include "nvim/os/fs_defs.h" +#include "nvim/types.h" +#include "nvim/vim.h" #ifdef HAVE_SYS_UIO_H # include @@ -18,14 +30,12 @@ #include #include "nvim/ascii.h" -#include "nvim/assert.h" #include "nvim/memory.h" #include "nvim/message.h" -#include "nvim/option.h" #include "nvim/os/os.h" -#include "nvim/os/os_defs.h" #include "nvim/path.h" -#include "nvim/strings.h" + +struct iovec; #ifdef MSWIN # include "nvim/mbyte.h" // for utf8_to_utf16, utf16_to_utf8 diff --git a/src/nvim/os/fs.h b/src/nvim/os/fs.h index c68081da02..75c24b8db2 100644 --- a/src/nvim/os/fs.h +++ b/src/nvim/os/fs.h @@ -1,8 +1,8 @@ #ifndef NVIM_OS_FS_H #define NVIM_OS_FS_H -#include "nvim/os/fs_defs.h" // for uv_* -#include "nvim/types.h" // for char_u +#include "nvim/os/fs_defs.h" +#include "nvim/types.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "os/fs.h.generated.h" diff --git a/src/nvim/os/input.c b/src/nvim/os/input.c index f8c1ee57ea..d6afb1b62a 100644 --- a/src/nvim/os/input.c +++ b/src/nvim/os/input.c @@ -3,25 +3,33 @@ #include #include +#include +#include #include #include #include "nvim/api/private/defs.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" #include "nvim/event/rstream.h" +#include "nvim/event/stream.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/keycodes.h" +#include "nvim/log.h" +#include "nvim/macros.h" #include "nvim/main.h" -#include "nvim/mbyte.h" -#include "nvim/memory.h" #include "nvim/msgpack_rpc/channel.h" +#include "nvim/option_defs.h" #include "nvim/os/input.h" +#include "nvim/os/time.h" #include "nvim/profile.h" -#include "nvim/screen.h" +#include "nvim/rbuffer.h" #include "nvim/state.h" -#include "nvim/ui.h" #include "nvim/vim.h" #define READ_BUFFER_SIZE 0xfff diff --git a/src/nvim/os/lang.c b/src/nvim/os/lang.c index 28f43ff3af..57c82bba86 100644 --- a/src/nvim/os/lang.c +++ b/src/nvim/os/lang.c @@ -7,16 +7,16 @@ # include # undef Boolean # undef FileInfo -#endif -#include "auto/config.h" +# include "auto/config.h" +# ifdef HAVE_LOCALE_H +# include +# endif +# include "nvim/os/os.h" -#ifdef HAVE_LOCALE_H -# include #endif #include "nvim/os/lang.h" -#include "nvim/os/os.h" void lang_init(void) { diff --git a/src/nvim/os/mem.c b/src/nvim/os/mem.c index eccb3c97e5..0b7e8065ef 100644 --- a/src/nvim/os/mem.c +++ b/src/nvim/os/mem.c @@ -3,6 +3,7 @@ /// Functions for accessing system memory information. +#include #include #include "nvim/os/os.h" diff --git a/src/nvim/os/process.c b/src/nvim/os/process.c index 28aea08595..d9273e69da 100644 --- a/src/nvim/os/process.c +++ b/src/nvim/os/process.c @@ -6,10 +6,21 @@ /// psutil is a good reference for cross-platform syscall voodoo: /// https://github.com/giampaolo/psutil/tree/master/psutil/arch -#include // for HANDLE (win32) +#include +#include +#include +#include +#include +#include + +#include "nvim/log.h" +#include "nvim/memory.h" +#include "nvim/os/process.h" #ifdef MSWIN -# include // for CreateToolhelp32Snapshot +# include + +# include "nvim/api/private/helpers.h" #endif #if defined(__FreeBSD__) // XXX: OpenBSD ? @@ -27,15 +38,8 @@ # include #endif -#include "nvim/api/private/helpers.h" -#include "nvim/globals.h" -#include "nvim/log.h" -#include "nvim/os/os.h" -#include "nvim/os/os_defs.h" -#include "nvim/os/process.h" - #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "os/process.c.generated.h" +# include "os/process.c.generated.h" // IWYU pragma: export #endif #ifdef MSWIN diff --git a/src/nvim/os/pty_process_unix.c b/src/nvim/os/pty_process_unix.c index 0b7af87267..143f0b3900 100644 --- a/src/nvim/os/pty_process_unix.c +++ b/src/nvim/os/pty_process_unix.c @@ -2,13 +2,15 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com // Some of the code came from pangoterm and libuv -#include + +#include +#include +#include +#include #include #include #include -#include #include -#include // forkpty is not in POSIX, so headers are platform-specific #if defined(__FreeBSD__) || defined(__DragonFly__) @@ -31,13 +33,16 @@ #include +#include "auto/config.h" #include "klib/klist.h" +#include "nvim/eval/typval.h" #include "nvim/event/loop.h" #include "nvim/event/process.h" -#include "nvim/event/rstream.h" -#include "nvim/event/wstream.h" +#include "nvim/event/stream.h" #include "nvim/log.h" #include "nvim/os/os.h" +#include "nvim/os/os_defs.h" +#include "nvim/os/pty_process.h" #include "nvim/os/pty_process_unix.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/os/pty_process_unix.h b/src/nvim/os/pty_process_unix.h index 765490b92b..0cc68cf3e9 100644 --- a/src/nvim/os/pty_process_unix.h +++ b/src/nvim/os/pty_process_unix.h @@ -1,8 +1,10 @@ #ifndef NVIM_OS_PTY_PROCESS_UNIX_H #define NVIM_OS_PTY_PROCESS_UNIX_H +#include #include +#include "nvim/event/loop.h" #include "nvim/event/process.h" typedef struct pty_process { diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c index 750d2f342f..b4bee6e550 100644 --- a/src/nvim/os/shell.c +++ b/src/nvim/os/shell.c @@ -3,30 +3,45 @@ #include #include -#include +#include +#include #include #include +#include "auto/config.h" #include "klib/kvec.h" #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/eval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/event/libuv_process.h" #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" +#include "nvim/event/process.h" #include "nvim/event/rstream.h" +#include "nvim/event/stream.h" +#include "nvim/event/wstream.h" #include "nvim/ex_cmds.h" #include "nvim/fileio.h" -#include "nvim/log.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/macros.h" #include "nvim/main.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/option_defs.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" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/profile.h" -#include "nvim/screen.h" +#include "nvim/rbuffer.h" #include "nvim/strings.h" #include "nvim/tag.h" #include "nvim/types.h" diff --git a/src/nvim/os/signal.c b/src/nvim/os/signal.c index 9aa8d8051b..08d24d47e2 100644 --- a/src/nvim/os/signal.c +++ b/src/nvim/os/signal.c @@ -3,23 +3,20 @@ #include #include -#include +#include #ifndef MSWIN # include // for sigset_t #endif -#include "nvim/ascii.h" #include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" #include "nvim/eval.h" -#include "nvim/event/loop.h" #include "nvim/event/signal.h" #include "nvim/globals.h" #include "nvim/log.h" #include "nvim/main.h" #include "nvim/memline.h" -#include "nvim/memory.h" #include "nvim/os/signal.h" -#include "nvim/vim.h" static SignalWatcher spipe, shup, squit, sterm, susr1, swinch; #ifdef SIGPWR diff --git a/src/nvim/os/stdpaths.c b/src/nvim/os/stdpaths.c index 2aaf776fc6..a99a8d25ce 100644 --- a/src/nvim/os/stdpaths.c +++ b/src/nvim/os/stdpaths.c @@ -2,6 +2,7 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include +#include #include "nvim/ascii.h" #include "nvim/fileio.h" diff --git a/src/nvim/os/time.c b/src/nvim/os/time.c index 161c8d28b8..7ba2bd155e 100644 --- a/src/nvim/os/time.c +++ b/src/nvim/os/time.c @@ -1,22 +1,34 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include +#include #include +#include +#include +#include +#include + #include -#include "nvim/assert.h" +#include "auto/config.h" #include "nvim/event/loop.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/log.h" +#include "nvim/macros.h" #include "nvim/main.h" +#include "nvim/memory.h" #include "nvim/os/input.h" #include "nvim/os/os.h" #include "nvim/os/time.h" +struct tm; + static uv_mutex_t delay_mutex; static uv_cond_t delay_cond; #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "os/time.c.generated.h" +# include "os/time.c.generated.h" // IWYU pragma: export #endif /// Initializes the time module diff --git a/src/nvim/os/tty.c b/src/nvim/os/tty.c index 1b15613a93..b5124bd83a 100644 --- a/src/nvim/os/tty.c +++ b/src/nvim/os/tty.c @@ -5,11 +5,11 @@ // Terminal/console utils // -#include "nvim/os/os.h" +#include "nvim/os/os.h" // IWYU pragma: keep (Windows) #include "nvim/os/tty.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "os/tty.c.generated.h" +# include "os/tty.c.generated.h" // IWYU pragma: export #endif #ifdef MSWIN diff --git a/src/nvim/os/unix_defs.h b/src/nvim/os/unix_defs.h index 4ed3b51694..8d002fc5e9 100644 --- a/src/nvim/os/unix_defs.h +++ b/src/nvim/os/unix_defs.h @@ -3,6 +3,9 @@ #include #include +#if defined(HAVE_TERMIOS_H) +# include +#endif // POSIX.1-2008 says that NAME_MAX should be in here #include diff --git a/src/nvim/os/users.c b/src/nvim/os/users.c index 33e6563c4c..1865d6789e 100644 --- a/src/nvim/os/users.c +++ b/src/nvim/os/users.c @@ -3,6 +3,9 @@ // users.c -- operating system user information +#include +#include +#include #include #include "auto/config.h" @@ -10,7 +13,8 @@ #include "nvim/garray.h" #include "nvim/memory.h" #include "nvim/os/os.h" -#include "nvim/strings.h" +#include "nvim/types.h" +#include "nvim/vim.h" #ifdef HAVE_PWD_H # include #endif diff --git a/src/nvim/os_unix.c b/src/nvim/os_unix.c index 473bf5072c..3521703fba 100644 --- a/src/nvim/os_unix.c +++ b/src/nvim/os_unix.c @@ -1,43 +1,12 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include -#include -#include -#include -#include - -#include "nvim/ascii.h" -#include "nvim/buffer.h" -#include "nvim/charset.h" -#include "nvim/eval.h" -#include "nvim/ex_cmds.h" -#include "nvim/fileio.h" -#include "nvim/garray.h" -#include "nvim/getchar.h" -#include "nvim/main.h" -#include "nvim/mbyte.h" -#include "nvim/memline.h" -#include "nvim/memory.h" -#include "nvim/message.h" -#include "nvim/mouse.h" -#include "nvim/msgpack_rpc/helpers.h" -#include "nvim/os/input.h" -#include "nvim/os/os.h" -#include "nvim/os/shell.h" -#include "nvim/os/signal.h" -#include "nvim/os/time.h" +#include "nvim/os/os_defs.h" #include "nvim/os_unix.h" -#include "nvim/path.h" -#include "nvim/screen.h" -#include "nvim/strings.h" -#include "nvim/syntax.h" #include "nvim/types.h" -#include "nvim/ui.h" -#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "os_unix.c.generated.h" +# include "os_unix.c.generated.h" // IWYU pragma: export #endif #if defined(HAVE_ACL) diff --git a/src/nvim/os_unix.h b/src/nvim/os_unix.h index aae05f7fcc..31430ee23a 100644 --- a/src/nvim/os_unix.h +++ b/src/nvim/os_unix.h @@ -2,7 +2,7 @@ #define NVIM_OS_UNIX_H #include "nvim/os/shell.h" -#include "nvim/types.h" // for vim_acl_T +#include "nvim/types.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "os_unix.h.generated.h" diff --git a/src/nvim/path.c b/src/nvim/path.c index 1413000680..33f352d163 100644 --- a/src/nvim/path.c +++ b/src/nvim/path.c @@ -2,11 +2,16 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include -#include +#include +#include #include +#include #include +#include +#include "auto/config.h" #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cmdexpand.h" #include "nvim/eval.h" @@ -14,21 +19,21 @@ #include "nvim/file_search.h" #include "nvim/fileio.h" #include "nvim/garray.h" -#include "nvim/memfile.h" -#include "nvim/memline.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/option.h" +#include "nvim/os/fs_defs.h" #include "nvim/os/input.h" #include "nvim/os/os.h" #include "nvim/os/shell.h" -#include "nvim/os_unix.h" #include "nvim/path.h" -#include "nvim/quickfix.h" +#include "nvim/pos.h" #include "nvim/regexp.h" -#include "nvim/screen.h" #include "nvim/strings.h" -#include "nvim/tag.h" #include "nvim/types.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/plines.c b/src/nvim/plines.c index 268e57927b..20a6855a16 100644 --- a/src/nvim/plines.c +++ b/src/nvim/plines.c @@ -10,25 +10,21 @@ #include #include "nvim/ascii.h" -#include "nvim/buffer.h" #include "nvim/charset.h" -#include "nvim/cursor.h" #include "nvim/decoration.h" #include "nvim/diff.h" #include "nvim/fold.h" -#include "nvim/func_attr.h" +#include "nvim/globals.h" #include "nvim/indent.h" -#include "nvim/main.h" +#include "nvim/macros.h" #include "nvim/mbyte.h" #include "nvim/memline.h" -#include "nvim/memory.h" #include "nvim/move.h" #include "nvim/option.h" #include "nvim/plines.h" -#include "nvim/screen.h" -#include "nvim/strings.h" +#include "nvim/pos.h" +#include "nvim/types.h" #include "nvim/vim.h" -#include "nvim/window.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "plines.c.generated.h" diff --git a/src/nvim/plines.h b/src/nvim/plines.h index f463d82f10..808f6d284e 100644 --- a/src/nvim/plines.h +++ b/src/nvim/plines.h @@ -1,6 +1,9 @@ #ifndef NVIM_PLINES_H #define NVIM_PLINES_H +#include + +#include "nvim/buffer_defs.h" #include "nvim/vim.h" // Argument for lbr_chartabsize(). diff --git a/src/nvim/popupmenu.c b/src/nvim/popupmenu.c index 234ce5fcba..567230fab4 100644 --- a/src/nvim/popupmenu.c +++ b/src/nvim/popupmenu.c @@ -6,27 +6,35 @@ /// Popup menu (PUM) #include -#include +#include #include +#include +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/drawscreen.h" -#include "nvim/edit.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds.h" +#include "nvim/getchar.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" #include "nvim/insexpand.h" +#include "nvim/keycodes.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/menu.h" +#include "nvim/message.h" #include "nvim/move.h" #include "nvim/option.h" #include "nvim/popupmenu.h" -#include "nvim/search.h" +#include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/strings.h" #include "nvim/ui.h" #include "nvim/ui_compositor.h" diff --git a/src/nvim/popupmenu.h b/src/nvim/popupmenu.h index 20b24fc219..2190c560b7 100644 --- a/src/nvim/popupmenu.h +++ b/src/nvim/popupmenu.h @@ -1,6 +1,8 @@ #ifndef NVIM_POPUPMENU_H #define NVIM_POPUPMENU_H +#include + #include "nvim/grid_defs.h" #include "nvim/macros.h" #include "nvim/types.h" diff --git a/src/nvim/profile.c b/src/nvim/profile.c index b588431bda..d54deaf983 100644 --- a/src/nvim/profile.c +++ b/src/nvim/profile.c @@ -3,20 +3,34 @@ #include #include +#include +#include #include +#include +#include -#include "nvim/assert.h" +#include "nvim/ascii.h" #include "nvim/charset.h" #include "nvim/debugger.h" #include "nvim/eval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/fileio.h" -#include "nvim/func_attr.h" -#include "nvim/globals.h" // for the global `time_fd` (startuptime) +#include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/hashtab.h" +#include "nvim/keycodes.h" +#include "nvim/memory.h" +#include "nvim/message.h" +#include "nvim/option_defs.h" #include "nvim/os/os.h" #include "nvim/os/time.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/runtime.h" +#include "nvim/types.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c index 9fdf7b348c..d7590f6f57 100644 --- a/src/nvim/quickfix.c +++ b/src/nvim/quickfix.c @@ -4,30 +4,43 @@ // quickfix.c: functions for quickfix mode, using a file with error messages #include +#include #include +#include #include +#include +#include #include +#include -#include "nvim/api/private/helpers.h" #include "nvim/arglist.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds.h" #include "nvim/ex_cmds2.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" #include "nvim/ex_getln.h" #include "nvim/fileio.h" #include "nvim/fold.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/help.h" +#include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" +#include "nvim/macros.h" #include "nvim/mark.h" #include "nvim/mbyte.h" +#include "nvim/memfile_defs.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" @@ -35,14 +48,16 @@ #include "nvim/normal.h" #include "nvim/option.h" #include "nvim/optionstr.h" +#include "nvim/os/fs_defs.h" #include "nvim/os/input.h" #include "nvim/os/os.h" -#include "nvim/os_unix.h" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/quickfix.h" #include "nvim/regexp.h" #include "nvim/search.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/rbuffer.c b/src/nvim/rbuffer.c index 2f718e9c2e..dde6e32306 100644 --- a/src/nvim/rbuffer.c +++ b/src/nvim/rbuffer.c @@ -2,15 +2,16 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include +#include #include #include +#include "nvim/macros.h" #include "nvim/memory.h" #include "nvim/rbuffer.h" -#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "rbuffer.c.generated.h" +# include "rbuffer.c.generated.h" // IWYU pragma: export #endif /// Creates a new `RBuffer` instance. diff --git a/src/nvim/rbuffer.h b/src/nvim/rbuffer.h index 3ebbc9d82c..63d5119004 100644 --- a/src/nvim/rbuffer.h +++ b/src/nvim/rbuffer.h @@ -17,6 +17,8 @@ #include #include +struct rbuffer; + // Macros that simplify working with the read/write pointers directly by hiding // ring buffer wrap logic. Some examples: // diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c index 27b5d198ac..1aa78a3cba 100644 --- a/src/nvim/regexp.c +++ b/src/nvim/regexp.c @@ -13,21 +13,34 @@ #include #include #include +#include #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/userfunc.h" #include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/keycodes.h" +#include "nvim/macros.h" #include "nvim/mark.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" +#include "nvim/option_defs.h" #include "nvim/os/input.h" #include "nvim/plines.h" -#include "nvim/profile.h" +#include "nvim/pos.h" #include "nvim/regexp.h" +#include "nvim/regexp_defs.h" #include "nvim/strings.h" +#include "nvim/types.h" +#include "nvim/undo_defs.h" #include "nvim/vim.h" #ifdef REGEXP_DEBUG diff --git a/src/nvim/regexp.h b/src/nvim/regexp.h index 085f78af54..dcc58fa34c 100644 --- a/src/nvim/regexp.h +++ b/src/nvim/regexp.h @@ -17,10 +17,11 @@ #define REX_ALL (REX_SET | REX_USE) // regexp.c +// uncrustify:off #ifdef INCLUDE_GENERATED_DECLARATIONS # include "regexp.h.generated.h" - # include "regexp_bt.h.generated.h" #endif +// uncrustify:on #endif // NVIM_REGEXP_H diff --git a/src/nvim/regexp_bt.c b/src/nvim/regexp_bt.c index 7b5f4cd12a..2ac96997fc 100644 --- a/src/nvim/regexp_bt.c +++ b/src/nvim/regexp_bt.c @@ -132,6 +132,7 @@ #include #include "nvim/garray.h" +#include "nvim/profile.h" #include "nvim/regexp.h" // The opcodes are: diff --git a/src/nvim/runtime.c b/src/nvim/runtime.c index 6becd50910..e1a2483438 100644 --- a/src/nvim/runtime.c +++ b/src/nvim/runtime.c @@ -5,25 +5,47 @@ /// /// Management of runtime files (including packages) +#include +#include +#include +#include +#include +#include +#include +#include + +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cmdexpand.h" #include "nvim/debugger.h" #include "nvim/eval.h" #include "nvim/eval/userfunc.h" -#include "nvim/ex_cmds.h" -#include "nvim/ex_cmds2.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/ex_eval.h" +#include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" +#include "nvim/map.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/option.h" #include "nvim/os/input.h" #include "nvim/os/os.h" +#include "nvim/os/stdpaths_defs.h" +#include "nvim/path.h" #include "nvim/profile.h" #include "nvim/runtime.h" +#include "nvim/strings.h" +#include "nvim/usercmd.h" #include "nvim/vim.h" /// Structure used to store info for each sourced file. diff --git a/src/nvim/runtime.h b/src/nvim/runtime.h index 053c71212e..d40bb6c1c1 100644 --- a/src/nvim/runtime.h +++ b/src/nvim/runtime.h @@ -3,10 +3,15 @@ #include +#include "klib/kvec.h" #include "nvim/autocmd.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds_defs.h" #include "nvim/ex_eval_defs.h" +#include "nvim/garray.h" +#include "nvim/pos.h" +#include "nvim/types.h" typedef enum { ETYPE_TOP, ///< toplevel diff --git a/src/nvim/screen.c b/src/nvim/screen.c index cbd5b96bef..3957cec316 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -10,32 +10,44 @@ #include #include +#include #include +#include +#include #include +#include "nvim/ascii.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/eval.h" -#include "nvim/extmark.h" -#include "nvim/fileio.h" #include "nvim/fold.h" -#include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/grid.h" +#include "nvim/grid_defs.h" #include "nvim/highlight.h" -#include "nvim/highlight_group.h" +#include "nvim/mbyte.h" +#include "nvim/memline_defs.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/move.h" +#include "nvim/normal.h" #include "nvim/option.h" -#include "nvim/optionstr.h" +#include "nvim/os/os.h" +#include "nvim/os/time.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/regexp.h" #include "nvim/screen.h" #include "nvim/search.h" #include "nvim/state.h" #include "nvim/statusline.h" -#include "nvim/ui_compositor.h" -#include "nvim/undo.h" +#include "nvim/strings.h" +#include "nvim/types.h" +#include "nvim/ui.h" +#include "nvim/vim.h" #include "nvim/window.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/screen.h b/src/nvim/screen.h index 5cee708bd1..1d8de8ca21 100644 --- a/src/nvim/screen.h +++ b/src/nvim/screen.h @@ -6,6 +6,7 @@ #include "nvim/buffer_defs.h" #include "nvim/fold.h" #include "nvim/grid_defs.h" +#include "nvim/macros.h" EXTERN match_T screen_search_hl; // used for 'hlsearch' highlight matching diff --git a/src/nvim/search.c b/src/nvim/search.c index 2f3e5a2cb6..378306b8d7 100644 --- a/src/nvim/search.c +++ b/src/nvim/search.c @@ -5,31 +5,35 @@ #include #include -#include // for INT_MAX on MSVC +#include #include +#include +#include #include #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/change.h" #include "nvim/charset.h" #include "nvim/cmdhist.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" -#include "nvim/edit.h" #include "nvim/eval.h" -#include "nvim/eval/funcs.h" +#include "nvim/eval/typval.h" #include "nvim/ex_cmds.h" #include "nvim/ex_docmd.h" #include "nvim/ex_getln.h" #include "nvim/fileio.h" #include "nvim/fold.h" -#include "nvim/func_attr.h" #include "nvim/getchar.h" -#include "nvim/indent.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" #include "nvim/indent_c.h" #include "nvim/insexpand.h" -#include "nvim/main.h" +#include "nvim/macros.h" #include "nvim/mark.h" #include "nvim/mbyte.h" #include "nvim/memline.h" @@ -39,11 +43,13 @@ #include "nvim/move.h" #include "nvim/normal.h" #include "nvim/option.h" +#include "nvim/os/fs.h" #include "nvim/os/input.h" #include "nvim/os/time.h" #include "nvim/path.h" #include "nvim/profile.h" #include "nvim/regexp.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/strings.h" #include "nvim/ui.h" diff --git a/src/nvim/search.h b/src/nvim/search.h index ff843bb59e..cd8431c916 100644 --- a/src/nvim/search.h +++ b/src/nvim/search.h @@ -6,8 +6,11 @@ #include "nvim/buffer_defs.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/normal.h" #include "nvim/os/time.h" +#include "nvim/pos.h" +#include "nvim/types.h" #include "nvim/vim.h" // Values for the find_pattern_in_path() function args 'type' and 'action': diff --git a/src/nvim/sha256.c b/src/nvim/sha256.c index 6522158f12..72ef74b46c 100644 --- a/src/nvim/sha256.c +++ b/src/nvim/sha256.c @@ -13,11 +13,13 @@ /// Vim specific notes: /// sha256_self_test() is implicitly called once. -#include // for size_t -#include // for snprintf(). +#include +#include +#include +#include -#include "nvim/sha256.h" // for context_sha256_T -#include "nvim/vim.h" // for STRCPY()/strlen(). +#include "nvim/sha256.h" +#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "sha256.c.generated.h" diff --git a/src/nvim/sha256.h b/src/nvim/sha256.h index b52d300de6..a1d8f670d5 100644 --- a/src/nvim/sha256.h +++ b/src/nvim/sha256.h @@ -2,9 +2,9 @@ #define NVIM_SHA256_H #include -#include // for uint32_t +#include -#include "nvim/types.h" // for char_u +#include "nvim/types.h" #define SHA256_BUFFER_SIZE 64 #define SHA256_SUM_SIZE 32 diff --git a/src/nvim/shada.c b/src/nvim/shada.c index 64029e0799..42f5e3456d 100644 --- a/src/nvim/shada.c +++ b/src/nvim/shada.c @@ -2,48 +2,58 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include -#include #include -#include +#include +#include +#include +#include #include #include +#include #include #include +#include #include +#include "auto/config.h" #include "klib/khash.h" -#include "klib/kvec.h" #include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" #include "nvim/buffer.h" -#include "nvim/buffer_defs.h" #include "nvim/cmdhist.h" +#include "nvim/eval.h" #include "nvim/eval/decode.h" #include "nvim/eval/encode.h" #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds.h" #include "nvim/ex_docmd.h" #include "nvim/fileio.h" #include "nvim/garray.h" +#include "nvim/gettext.h" #include "nvim/globals.h" +#include "nvim/hashtab.h" #include "nvim/macros.h" #include "nvim/mark.h" +#include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/msgpack_rpc/helpers.h" +#include "nvim/normal.h" #include "nvim/ops.h" #include "nvim/option.h" #include "nvim/os/fileio.h" +#include "nvim/os/fs_defs.h" #include "nvim/os/os.h" #include "nvim/os/time.h" #include "nvim/path.h" #include "nvim/pos.h" -#include "nvim/quickfix.h" #include "nvim/regexp.h" #include "nvim/search.h" #include "nvim/shada.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/version.h" #include "nvim/vim.h" @@ -288,8 +298,6 @@ typedef struct { } data; } ShadaEntry; -struct hm_llist_entry; - /// One entry in sized linked list typedef struct hm_llist_entry { ShadaEntry data; ///< Entry data. diff --git a/src/nvim/sign.c b/src/nvim/sign.c index 8c0ae6dca8..2453e6f766 100644 --- a/src/nvim/sign.c +++ b/src/nvim/sign.c @@ -5,20 +5,42 @@ // sign.c: functions for managing with signs // +#include +#include +#include +#include +#include + #include "nvim/ascii.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval/funcs.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" #include "nvim/fold.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/hashtab.h" +#include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" +#include "nvim/memline_defs.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/move.h" #include "nvim/option.h" +#include "nvim/pos.h" #include "nvim/sign.h" -#include "nvim/syntax.h" +#include "nvim/sign_defs.h" +#include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/spell.c b/src/nvim/spell.c index b9ea7557c4..8ee28fea34 100644 --- a/src/nvim/spell.c +++ b/src/nvim/spell.c @@ -56,61 +56,58 @@ // Use DEBUG_TRIEWALK to print the changes made in suggest_trie_walk() for a // specific word. -#include // for assert -#include // for uint32_t, uint16_t, uint8_t -#include // for INT_MAX -#include // for false, true, bool -#include // for NULL, size_t, ptrdiff_t -#include // for snprintf -#include // for memmove, strstr, memcpy, memset +#include +#include +#include +#include +#include +#include +#include -#include "nvim/ascii.h" // for NUL, ascii_isdigit, ascii_iswhite -#include "nvim/autocmd.h" // for apply_autocmds -#include "nvim/buffer.h" // for bufref_valid, set_bufref, buf_is_empty -#include "nvim/buffer_defs.h" // for win_T, synblock_T, buf_T, w_p_... -#include "nvim/change.h" // for changed_bytes -#include "nvim/charset.h" // for skipwhite, getwhitecols, skipbin -#include "nvim/cursor.h" // for get_cursor_line_ptr +#include "nvim/ascii.h" +#include "nvim/autocmd.h" +#include "nvim/buffer.h" +#include "nvim/change.h" +#include "nvim/charset.h" +#include "nvim/cursor.h" #include "nvim/decoration.h" -#include "nvim/drawscreen.h" // for NOT_VALID, redraw_later -#include "nvim/eval/typval.h" // for semsg -#include "nvim/ex_cmds.h" // for do_sub_msg -#include "nvim/ex_cmds_defs.h" // for exarg_T -#include "nvim/ex_docmd.h" // for do_cmdline_cmd -#include "nvim/garray.h" // for garray_T, GA_EMPTY, GA_APPEND_... -#include "nvim/gettext.h" // for _, N_ -#include "nvim/hashtab.h" // for hash_clear_all, hash_init, has... -#include "nvim/highlight_defs.h" // for HLF_COUNT, hlf_T, HLF_SPB, HLF... -#include "nvim/insexpand.h" // for ins_compl_add_infercase, ins_c... -#include "nvim/log.h" // for ELOG -#include "nvim/macros.h" // for MB_PTR_ADV, MB_PTR_BACK, ASCII... -#include "nvim/mark.h" // for clearpos -#include "nvim/mbyte.h" // for utf_ptr2char, utf_char2bytes -#include "nvim/memline.h" // for ml_append, ml_get_buf, ml_close -#include "nvim/memline_defs.h" // for memline_T -#include "nvim/memory.h" // for xfree, xmalloc, xcalloc, xstrdup -#include "nvim/message.h" // for emsg, msg_puts, give_warning -#include "nvim/option.h" // for copy_option_part, set_option_v... -#include "nvim/option_defs.h" // for p_ws, OPT_LOCAL, p_enc, SHM_SE... -#include "nvim/os/fs.h" // for os_remove -#include "nvim/os/input.h" // for line_breakcheck -#include "nvim/os/os_defs.h" // for MAXPATHL -#include "nvim/path.h" // for path_full_compare, path_tail... -#include "nvim/pos.h" // for pos_T, colnr_T, linenr_T -#include "nvim/regexp.h" // for vim_regfree, vim_regexec, vim_... -#include "nvim/regexp_defs.h" // for regmatch_T, regprog_T -#include "nvim/runtime.h" // for DIP_ALL, do_in_runtimepath -#include "nvim/search.h" // for SEARCH_KEEP, for do_search -#include "nvim/spell.h" // for FUNC_ATTR_NONNULL_ALL, FUNC_AT... -#include "nvim/spell_defs.h" // for slang_T, langp_T, MAXWLEN, sal... -#include "nvim/spellfile.h" // for spell_load_file -#include "nvim/spellsuggest.h" // for spell_suggest_list -#include "nvim/strings.h" // for vim_strchr, vim_snprintf, conc... -#include "nvim/syntax.h" // for syn_get_id, syntax_present -#include "nvim/types.h" // for char_u -#include "nvim/undo.h" // for u_save_cursor -#include "nvim/vim.h" // for curwin, strlen, STRLCPY, STRNCMP -#include "nvim/window.h" // for win_valid_any_tab +#include "nvim/decoration_provider.h" +#include "nvim/drawscreen.h" +#include "nvim/ex_cmds.h" +#include "nvim/ex_cmds_defs.h" +#include "nvim/ex_docmd.h" +#include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/hashtab.h" +#include "nvim/highlight_defs.h" +#include "nvim/insexpand.h" +#include "nvim/log.h" +#include "nvim/macros.h" +#include "nvim/mark.h" +#include "nvim/mbyte.h" +#include "nvim/memline.h" +#include "nvim/memory.h" +#include "nvim/message.h" +#include "nvim/option.h" +#include "nvim/os/fs.h" +#include "nvim/os/input.h" +#include "nvim/os/os_defs.h" +#include "nvim/path.h" +#include "nvim/pos.h" +#include "nvim/regexp.h" +#include "nvim/runtime.h" +#include "nvim/search.h" +#include "nvim/spell.h" +#include "nvim/spell_defs.h" +#include "nvim/spellfile.h" +#include "nvim/spellsuggest.h" +#include "nvim/strings.h" +#include "nvim/syntax.h" +#include "nvim/types.h" +#include "nvim/undo.h" +#include "nvim/vim.h" +#include "nvim/window.h" // Result values. Lower number is accepted over higher one. enum { diff --git a/src/nvim/spellfile.c b/src/nvim/spellfile.c index d483863fa8..395051453a 100644 --- a/src/nvim/spellfile.c +++ b/src/nvim/spellfile.c @@ -226,34 +226,52 @@ // stored as an offset to the previous number in as // few bytes as possible, see offset2bytes()) -#include +#include +#include +#include +#include +#include #include -#include +#include +#include +#include +#include "auto/config.h" #include "nvim/arglist.h" #include "nvim/ascii.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/drawscreen.h" -#include "nvim/ex_cmds2.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/fileio.h" +#include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/hashtab.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/option.h" #include "nvim/os/input.h" #include "nvim/os/os.h" +#include "nvim/os/time.h" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/regexp.h" #include "nvim/runtime.h" #include "nvim/spell.h" #include "nvim/spell_defs.h" #include "nvim/spellfile.h" +#include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/vim.h" #ifndef UNIX // it's in os/unix_defs.h for Unix -# include // for time_t +# include #endif // Special byte values for . Some are only used in the tree for diff --git a/src/nvim/spellsuggest.c b/src/nvim/spellsuggest.c index 28bc77c1e5..355233fc5b 100644 --- a/src/nvim/spellsuggest.c +++ b/src/nvim/spellsuggest.c @@ -3,30 +3,48 @@ // spellsuggest.c: functions for spelling suggestions +#include +#include +#include +#include +#include +#include +#include + #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/change.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/fileio.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/hashtab.h" +#include "nvim/highlight_defs.h" #include "nvim/input.h" +#include "nvim/macros.h" #include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" +#include "nvim/normal.h" #include "nvim/option.h" #include "nvim/os/fs.h" #include "nvim/os/input.h" +#include "nvim/os/os_defs.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/screen.h" #include "nvim/spell.h" -#include "nvim/spell_defs.h" #include "nvim/spellfile.h" #include "nvim/spellsuggest.h" #include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/vim.h" diff --git a/src/nvim/state.c b/src/nvim/state.c index 460a9dd637..9ba5f81776 100644 --- a/src/nvim/state.c +++ b/src/nvim/state.c @@ -1,27 +1,38 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include +#include +#include +#include -#include "klib/kvec.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" +#include "nvim/buffer_defs.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" -#include "nvim/ex_docmd.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/event/defs.h" +#include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" #include "nvim/getchar.h" +#include "nvim/globals.h" #include "nvim/insexpand.h" +#include "nvim/keycodes.h" #include "nvim/log.h" +#include "nvim/macros.h" #include "nvim/main.h" #include "nvim/option.h" -#include "nvim/option_defs.h" #include "nvim/os/input.h" +#include "nvim/screen.h" #include "nvim/state.h" +#include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "state.c.generated.h" +# include "state.c.generated.h" // IWYU pragma: export #endif void state_enter(VimState *s) diff --git a/src/nvim/state.h b/src/nvim/state.h index b93d57d035..76a38b0dab 100644 --- a/src/nvim/state.h +++ b/src/nvim/state.h @@ -3,6 +3,8 @@ #include +struct vim_state; + typedef struct vim_state VimState; typedef int (*state_check_callback)(VimState *state); diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c index 93334a1d75..9b9daa3883 100644 --- a/src/nvim/statusline.c +++ b/src/nvim/statusline.c @@ -5,22 +5,41 @@ #include #include #include +#include +#include +#include #include -#include "nvim/assert.h" -#include "nvim/autocmd.h" +#include "nvim/api/private/defs.h" +#include "nvim/api/private/helpers.h" +#include "nvim/ascii.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/vars.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" +#include "nvim/memline.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/move.h" #include "nvim/option.h" #include "nvim/optionstr.h" +#include "nvim/os/os.h" +#include "nvim/path.h" +#include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/statusline.h" +#include "nvim/strings.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/undo.h" #include "nvim/vim.h" diff --git a/src/nvim/statusline.h b/src/nvim/statusline.h index dc25dd5e67..f7e36f138c 100644 --- a/src/nvim/statusline.h +++ b/src/nvim/statusline.h @@ -1,7 +1,11 @@ #ifndef NVIM_STATUSLINE_H #define NVIM_STATUSLINE_H +#include + #include "nvim/buffer_defs.h" +#include "nvim/macros.h" +#include "nvim/statusline_defs.h" /// Array defining what should be done when tabline is clicked EXTERN StlClickDefinition *tab_page_click_defs INIT(= NULL); diff --git a/src/nvim/strings.c b/src/nvim/strings.c index dc48273c8e..7fdcaaa355 100644 --- a/src/nvim/strings.c +++ b/src/nvim/strings.c @@ -6,48 +6,29 @@ #include #include #include +#include +#include +#include #include +#include "auto/config.h" #include "nvim/ascii.h" #include "nvim/assert.h" -#include "nvim/buffer.h" #include "nvim/charset.h" -#include "nvim/diff.h" -#include "nvim/edit.h" -#include "nvim/eval.h" #include "nvim/eval/encode.h" -#include "nvim/ex_cmds.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_docmd.h" -#include "nvim/ex_getln.h" -#include "nvim/file_search.h" -#include "nvim/fileio.h" -#include "nvim/fold.h" -#include "nvim/func_attr.h" -#include "nvim/getchar.h" -#include "nvim/mark.h" +#include "nvim/gettext.h" +#include "nvim/macros.h" #include "nvim/math.h" #include "nvim/mbyte.h" -#include "nvim/memfile.h" -#include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" -#include "nvim/move.h" -#include "nvim/ops.h" #include "nvim/option.h" -#include "nvim/os/os.h" -#include "nvim/os/shell.h" -#include "nvim/os_unix.h" -#include "nvim/path.h" -#include "nvim/quickfix.h" -#include "nvim/regexp.h" -#include "nvim/screen.h" -#include "nvim/search.h" -#include "nvim/spell.h" #include "nvim/strings.h" -#include "nvim/syntax.h" -#include "nvim/tag.h" +#include "nvim/types.h" #include "nvim/vim.h" -#include "nvim/window.h" /// Copy up to `len` bytes of `string` into newly allocated memory and /// terminate with a NUL. The allocated memory always has size `len + 1`, even diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c index fe1bdf12b1..cafcc4f508 100644 --- a/src/nvim/syntax.c +++ b/src/nvim/syntax.c @@ -4,51 +4,46 @@ // syntax.c: code for syntax highlighting #include -#include #include #include #include #include -#include "nvim/api/private/helpers.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" -#include "nvim/cursor_shape.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/vars.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" -#include "nvim/fileio.h" #include "nvim/fold.h" #include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/hashtab.h" -#include "nvim/highlight.h" +#include "nvim/highlight_defs.h" #include "nvim/highlight_group.h" #include "nvim/indent_c.h" -#include "nvim/keycodes.h" -#include "nvim/lua/executor.h" #include "nvim/macros.h" #include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" -#include "nvim/option.h" +#include "nvim/option_defs.h" #include "nvim/optionstr.h" #include "nvim/os/input.h" -#include "nvim/os/os.h" -#include "nvim/os/time.h" -#include "nvim/os_unix.h" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/profile.h" #include "nvim/regexp.h" -#include "nvim/sign.h" +#include "nvim/runtime.h" #include "nvim/strings.h" #include "nvim/syntax.h" -#include "nvim/syntax_defs.h" -#include "nvim/terminal.h" -#include "nvim/ui.h" +#include "nvim/types.h" #include "nvim/vim.h" static bool did_syntax_onoff = false; diff --git a/src/nvim/syntax.h b/src/nvim/syntax.h index 0d890314c5..0a63392a04 100644 --- a/src/nvim/syntax.h +++ b/src/nvim/syntax.h @@ -6,6 +6,7 @@ #include "nvim/buffer_defs.h" #include "nvim/ex_cmds_defs.h" #include "nvim/globals.h" +#include "nvim/macros.h" #define HL_CONTAINED 0x01 // not used on toplevel #define HL_TRANSP 0x02 // has no highlighting diff --git a/src/nvim/tag.c b/src/nvim/tag.c index b6b8f5c959..35b9d71ea3 100644 --- a/src/nvim/tag.c +++ b/src/nvim/tag.c @@ -4,28 +4,38 @@ // Code to handle tags and the tag stack #include +#include #include #include +#include +#include #include #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/cmdexpand.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" -#include "nvim/edit.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_docmd.h" -#include "nvim/ex_getln.h" #include "nvim/file_search.h" #include "nvim/fileio.h" #include "nvim/fold.h" #include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/hashtab.h" #include "nvim/help.h" +#include "nvim/highlight_defs.h" #include "nvim/input.h" #include "nvim/insexpand.h" +#include "nvim/macros.h" #include "nvim/mark.h" #include "nvim/mbyte.h" #include "nvim/memory.h" @@ -35,15 +45,17 @@ #include "nvim/optionstr.h" #include "nvim/os/input.h" #include "nvim/os/os.h" +#include "nvim/os/os_defs.h" #include "nvim/os/time.h" -#include "nvim/os_unix.h" #include "nvim/path.h" +#include "nvim/pos.h" #include "nvim/quickfix.h" #include "nvim/regexp.h" #include "nvim/runtime.h" #include "nvim/search.h" #include "nvim/strings.h" #include "nvim/tag.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c index 890b04a614..206d9ac836 100644 --- a/src/nvim/terminal.c +++ b/src/nvim/terminal.c @@ -37,45 +37,57 @@ // Some code from pangoterm http://www.leonerd.org.uk/code/pangoterm #include +#include #include #include #include +#include +#include #include +#include +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" #include "nvim/buffer.h" +#include "nvim/buffer_defs.h" #include "nvim/change.h" +#include "nvim/channel.h" #include "nvim/cursor.h" +#include "nvim/drawline.h" #include "nvim/drawscreen.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" #include "nvim/event/time.h" -#include "nvim/ex_cmds.h" #include "nvim/ex_docmd.h" #include "nvim/getchar.h" +#include "nvim/globals.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" #include "nvim/keycodes.h" -#include "nvim/log.h" #include "nvim/macros.h" #include "nvim/main.h" #include "nvim/map.h" #include "nvim/mbyte.h" #include "nvim/memline.h" #include "nvim/memory.h" -#include "nvim/message.h" #include "nvim/mouse.h" #include "nvim/move.h" +#include "nvim/msgpack_rpc/channel_defs.h" +#include "nvim/normal.h" #include "nvim/option.h" #include "nvim/optionstr.h" -#include "nvim/os/input.h" +#include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/state.h" #include "nvim/terminal.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/vim.h" -#include "nvim/window.h" typedef struct terminal_state { VimState state; diff --git a/src/nvim/testing.c b/src/nvim/testing.c index a37ceeb86b..f4ff27c9bc 100644 --- a/src/nvim/testing.c +++ b/src/nvim/testing.c @@ -3,14 +3,32 @@ // testing.c: Support for tests +#include +#include +#include +#include +#include + +#include "nvim/ascii.h" #include "nvim/eval.h" #include "nvim/eval/encode.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/ex_docmd.h" +#include "nvim/garray.h" +#include "nvim/gettext.h" #include "nvim/globals.h" +#include "nvim/hashtab.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" +#include "nvim/memory.h" #include "nvim/message.h" #include "nvim/os/os.h" #include "nvim/runtime.h" +#include "nvim/strings.h" #include "nvim/testing.h" +#include "nvim/types.h" +#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "testing.c.generated.h" diff --git a/src/nvim/textformat.c b/src/nvim/textformat.c index 61949fec6a..56efd4cc45 100644 --- a/src/nvim/textformat.c +++ b/src/nvim/textformat.c @@ -4,20 +4,29 @@ // textformat.c: text formatting functions #include +#include +#include #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/change.h" #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/getchar.h" #include "nvim/globals.h" #include "nvim/indent.h" #include "nvim/indent_c.h" +#include "nvim/macros.h" +#include "nvim/mark.h" #include "nvim/mbyte.h" #include "nvim/memline.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/move.h" #include "nvim/normal.h" #include "nvim/ops.h" @@ -28,6 +37,7 @@ #include "nvim/strings.h" #include "nvim/textformat.h" #include "nvim/textobject.h" +#include "nvim/types.h" #include "nvim/undo.h" #include "nvim/vim.h" #include "nvim/window.h" diff --git a/src/nvim/textformat.h b/src/nvim/textformat.h index 3c918a028b..fcc9c2d6f4 100644 --- a/src/nvim/textformat.h +++ b/src/nvim/textformat.h @@ -1,8 +1,8 @@ #ifndef NVIM_TEXTFORMAT_H #define NVIM_TEXTFORMAT_H -#include "nvim/normal.h" // for oparg_T -#include "nvim/pos.h" // for linenr_T +#include "nvim/normal.h" +#include "nvim/pos.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "textformat.h.generated.h" diff --git a/src/nvim/textobject.c b/src/nvim/textobject.c index 8290fe14e5..b9b4d0dfe3 100644 --- a/src/nvim/textobject.c +++ b/src/nvim/textobject.c @@ -4,8 +4,11 @@ // textobject.c: functions for text objects #include +#include +#include #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" #include "nvim/edit.h" @@ -13,14 +16,19 @@ #include "nvim/fold.h" #include "nvim/globals.h" #include "nvim/indent.h" +#include "nvim/macros.h" #include "nvim/mark.h" #include "nvim/mbyte.h" #include "nvim/memline.h" +#include "nvim/memory.h" #include "nvim/normal.h" +#include "nvim/option_defs.h" #include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/search.h" -#include "nvim/textformat.h" +#include "nvim/strings.h" #include "nvim/textobject.h" +#include "nvim/types.h" #include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/textobject.h b/src/nvim/textobject.h index 26f88613fd..e31557f297 100644 --- a/src/nvim/textobject.h +++ b/src/nvim/textobject.h @@ -1,9 +1,9 @@ #ifndef NVIM_TEXTOBJECT_H #define NVIM_TEXTOBJECT_H -#include "nvim/normal.h" // for oparg_T -#include "nvim/pos.h" // for linenr_T -#include "nvim/vim.h" // for Direction +#include "nvim/normal.h" +#include "nvim/pos.h" +#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "textobject.h.generated.h" diff --git a/src/nvim/tui/input.c b/src/nvim/tui/input.c index 2089686e5e..9171f79c37 100644 --- a/src/nvim/tui/input.c +++ b/src/nvim/tui/input.c @@ -1,20 +1,32 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +#include +#include +#include +#include + +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/api/vim.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" #include "nvim/charset.h" -#include "nvim/ex_docmd.h" +#include "nvim/event/defs.h" +#include "nvim/event/multiqueue.h" +#include "nvim/globals.h" +#include "nvim/log.h" #include "nvim/macros.h" #include "nvim/main.h" +#include "nvim/map.h" +#include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/option.h" #include "nvim/os/input.h" #include "nvim/os/os.h" #include "nvim/tui/input.h" +#include "nvim/tui/input_defs.h" #include "nvim/tui/tui.h" -#include "nvim/vim.h" #ifdef MSWIN # include "nvim/os/os_win_console.h" #endif diff --git a/src/nvim/tui/input.h b/src/nvim/tui/input.h index 0b60394850..5df108b107 100644 --- a/src/nvim/tui/input.h +++ b/src/nvim/tui/input.h @@ -2,10 +2,14 @@ #define NVIM_TUI_INPUT_H #include +#include #include +#include +#include "nvim/event/loop.h" #include "nvim/event/stream.h" #include "nvim/event/time.h" +#include "nvim/rbuffer.h" #include "nvim/tui/input_defs.h" #include "nvim/tui/tui.h" diff --git a/src/nvim/tui/terminfo.c b/src/nvim/tui/terminfo.c index 229e340dc3..0f6ae03d35 100644 --- a/src/nvim/tui/terminfo.c +++ b/src/nvim/tui/terminfo.c @@ -8,14 +8,16 @@ #include #include "nvim/globals.h" -#include "nvim/log.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/option.h" -#include "nvim/os/os.h" #include "nvim/tui/terminfo.h" #include "nvim/tui/terminfo_defs.h" +#ifdef __FreeBSD__ +# include "nvim/os/os.h" +#endif + #ifdef INCLUDE_GENERATED_DECLARATIONS # include "tui/terminfo.c.generated.h" #endif diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index e2d37860c4..be7658616f 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -4,31 +4,35 @@ // Terminal UI functions. Invoked (by ui_bridge.c) on the TUI thread. #include -#include +#include #include #include +#include +#include #include #include -#if defined(HAVE_TERMIOS_H) -# include -#endif +#include "auto/config.h" #include "klib/kvec.h" -#include "nvim/api/private/helpers.h" -#include "nvim/api/vim.h" +#include "nvim/api/private/defs.h" #include "nvim/ascii.h" +#include "nvim/event/defs.h" #include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" #include "nvim/event/signal.h" -#include "nvim/highlight.h" +#include "nvim/event/stream.h" +#include "nvim/globals.h" +#include "nvim/grid_defs.h" +#include "nvim/highlight_defs.h" #include "nvim/log.h" #include "nvim/main.h" -#include "nvim/map.h" +#include "nvim/mbyte.h" #include "nvim/memory.h" +#include "nvim/message.h" #include "nvim/option.h" #include "nvim/os/input.h" #include "nvim/os/os.h" #include "nvim/os/signal.h" -#include "nvim/os/tty.h" #include "nvim/ui.h" #include "nvim/vim.h" #ifdef MSWIN @@ -36,8 +40,6 @@ #endif #include "nvim/cursor_shape.h" #include "nvim/macros.h" -#include "nvim/strings.h" -#include "nvim/syntax.h" #include "nvim/tui/input.h" #include "nvim/tui/terminfo.h" #include "nvim/tui/tui.h" diff --git a/src/nvim/ugrid.c b/src/nvim/ugrid.c index d96da3f2bb..be1746983c 100644 --- a/src/nvim/ugrid.c +++ b/src/nvim/ugrid.c @@ -2,14 +2,10 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include -#include -#include -#include +#include -#include "nvim/assert.h" +#include "nvim/memory.h" #include "nvim/ugrid.h" -#include "nvim/ui.h" -#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "ugrid.c.generated.h" diff --git a/src/nvim/ugrid.h b/src/nvim/ugrid.h index ae11153c61..a85a6fb4a8 100644 --- a/src/nvim/ugrid.h +++ b/src/nvim/ugrid.h @@ -2,8 +2,12 @@ #define NVIM_UGRID_H #include "nvim/globals.h" +#include "nvim/grid_defs.h" #include "nvim/ui.h" +struct ucell; +struct ugrid; + typedef struct ucell UCell; typedef struct ugrid UGrid; diff --git a/src/nvim/ui.c b/src/nvim/ui.c index bee8d461a7..4beb4b344a 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -2,37 +2,35 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include -#include #include #include -#include +#include +#include +#include +#include "auto/config.h" +#include "klib/kvec.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" -#include "nvim/charset.h" -#include "nvim/cursor.h" +#include "nvim/buffer_defs.h" #include "nvim/cursor_shape.h" -#include "nvim/diff.h" #include "nvim/drawscreen.h" +#include "nvim/event/defs.h" #include "nvim/event/loop.h" #include "nvim/ex_getln.h" -#include "nvim/fold.h" -#include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" +#include "nvim/highlight_defs.h" #include "nvim/log.h" #include "nvim/main.h" -#include "nvim/mbyte.h" #include "nvim/memory.h" -#include "nvim/move.h" +#include "nvim/message.h" #include "nvim/msgpack_rpc/channel.h" -#include "nvim/normal.h" #include "nvim/option.h" -#include "nvim/os/input.h" -#include "nvim/os/signal.h" #include "nvim/os/time.h" -#include "nvim/os_unix.h" -#include "nvim/popupmenu.h" +#include "nvim/strings.h" #include "nvim/ui.h" #include "nvim/ui_compositor.h" #include "nvim/vim.h" diff --git a/src/nvim/ui.h b/src/nvim/ui.h index 9034e7b764..c28393476e 100644 --- a/src/nvim/ui.h +++ b/src/nvim/ui.h @@ -6,9 +6,14 @@ #include #include "nvim/api/private/defs.h" +#include "nvim/event/multiqueue.h" #include "nvim/globals.h" #include "nvim/highlight_defs.h" +#include "nvim/macros.h" #include "nvim/memory.h" +#include "nvim/types.h" + +struct ui_t; typedef enum { kUICmdline = 0, @@ -74,11 +79,12 @@ typedef struct ui_event_callback { bool ext_widgets[kUIGlobalCount]; } UIEventCallback; +// uncrustify:off #ifdef INCLUDE_GENERATED_DECLARATIONS # include "ui.h.generated.h" - # include "ui_events_call.h.generated.h" #endif +// uncrustify:on EXTERN MultiQueue *resize_events; #endif // NVIM_UI_H diff --git a/src/nvim/ui_bridge.c b/src/nvim/ui_bridge.c index 809d278029..25c230a941 100644 --- a/src/nvim/ui_bridge.c +++ b/src/nvim/ui_bridge.c @@ -4,19 +4,19 @@ // UI wrapper that sends requests to the UI thread. // Used by the built-in TUI and libnvim-based UIs. -#include -#include #include -#include +#include +#include +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" -#include "nvim/log.h" +#include "nvim/event/loop.h" +#include "nvim/grid_defs.h" +#include "nvim/highlight_defs.h" #include "nvim/main.h" #include "nvim/memory.h" -#include "nvim/ugrid.h" #include "nvim/ui.h" #include "nvim/ui_bridge.h" -#include "nvim/vim.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "ui_bridge.c.generated.h" diff --git a/src/nvim/ui_bridge.h b/src/nvim/ui_bridge.h index c18600a857..094367126a 100644 --- a/src/nvim/ui_bridge.h +++ b/src/nvim/ui_bridge.h @@ -3,11 +3,14 @@ #ifndef NVIM_UI_BRIDGE_H #define NVIM_UI_BRIDGE_H +#include #include #include "nvim/event/defs.h" #include "nvim/ui.h" +struct ui_bridge_data; + typedef struct ui_bridge_data UIBridgeData; typedef void (*ui_main_fn)(UIBridgeData *bridge, UI *ui); struct ui_bridge_data { diff --git a/src/nvim/ui_client.c b/src/nvim/ui_client.c index 265c54f72d..27c63433a7 100644 --- a/src/nvim/ui_client.c +++ b/src/nvim/ui_client.c @@ -1,26 +1,28 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com -#include #include #include +#include -#include "nvim/api/private/dispatch.h" #include "nvim/api/private/helpers.h" +#include "nvim/event/loop.h" +#include "nvim/event/multiqueue.h" +#include "nvim/globals.h" #include "nvim/highlight.h" #include "nvim/log.h" -#include "nvim/map.h" +#include "nvim/main.h" +#include "nvim/memory.h" #include "nvim/msgpack_rpc/channel.h" -#include "nvim/screen.h" #include "nvim/ui.h" #include "nvim/ui_client.h" -#include "nvim/vim.h" +// uncrustify:off #ifdef INCLUDE_GENERATED_DECLARATIONS # include "ui_client.c.generated.h" - # include "ui_events_client.generated.h" #endif +// uncrustify:on void ui_client_init(uint64_t chan) { diff --git a/src/nvim/ui_client.h b/src/nvim/ui_client.h index 311dafaa0b..bed73d83d3 100644 --- a/src/nvim/ui_client.h +++ b/src/nvim/ui_client.h @@ -1,8 +1,11 @@ #ifndef NVIM_UI_CLIENT_H #define NVIM_UI_CLIENT_H +#include + #include "nvim/api/private/defs.h" #include "nvim/grid_defs.h" +#include "nvim/macros.h" typedef struct { const char *name; diff --git a/src/nvim/ui_compositor.c b/src/nvim/ui_compositor.c index 84e1a5e513..32bdb7d273 100644 --- a/src/nvim/ui_compositor.c +++ b/src/nvim/ui_compositor.c @@ -7,25 +7,30 @@ // Layer-based compositing: https://en.wikipedia.org/wiki/Digital_compositing #include +#include #include #include #include +#include +#include #include "klib/kvec.h" -#include "nvim/api/private/helpers.h" +#include "nvim/api/private/defs.h" #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" +#include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/highlight.h" #include "nvim/highlight_group.h" #include "nvim/log.h" #include "nvim/lua/executor.h" -#include "nvim/main.h" +#include "nvim/macros.h" #include "nvim/map.h" #include "nvim/memory.h" #include "nvim/message.h" -#include "nvim/os/os.h" -#include "nvim/popupmenu.h" -#include "nvim/ugrid.h" +#include "nvim/option_defs.h" +#include "nvim/os/time.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/ui_compositor.h" #include "nvim/vim.h" diff --git a/src/nvim/undo.c b/src/nvim/undo.c index d450043d2a..054dcfa8d0 100644 --- a/src/nvim/undo.c +++ b/src/nvim/undo.c @@ -76,41 +76,57 @@ #include #include #include -#include #include +#include +#include #include +#include +#include #include "auto/config.h" #include "klib/kvec.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/buffer_updates.h" #include "nvim/change.h" #include "nvim/cursor.h" #include "nvim/drawscreen.h" #include "nvim/edit.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" +#include "nvim/ex_cmds_defs.h" #include "nvim/ex_getln.h" #include "nvim/extmark.h" #include "nvim/fileio.h" #include "nvim/fold.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" +#include "nvim/macros.h" #include "nvim/mark.h" #include "nvim/memline.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/option.h" +#include "nvim/os/fs_defs.h" #include "nvim/os/input.h" #include "nvim/os/os.h" +#include "nvim/os/os_defs.h" #include "nvim/os/time.h" #include "nvim/os_unix.h" #include "nvim/path.h" -#include "nvim/pos.h" // MAXLNUM +#include "nvim/pos.h" +#include "nvim/screen.h" #include "nvim/sha256.h" #include "nvim/state.h" #include "nvim/strings.h" #include "nvim/types.h" #include "nvim/undo.h" +#include "nvim/undo_defs.h" +#include "nvim/vim.h" /// Structure passed around between undofile functions. typedef struct { diff --git a/src/nvim/usercmd.c b/src/nvim/usercmd.c index 21a433d855..ebb7c9d6ca 100644 --- a/src/nvim/usercmd.c +++ b/src/nvim/usercmd.c @@ -6,19 +6,34 @@ #include #include #include -#include +#include #include +#include "auto/config.h" +#include "lauxlib.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" +#include "nvim/buffer_defs.h" #include "nvim/charset.h" #include "nvim/eval.h" #include "nvim/ex_docmd.h" #include "nvim/garray.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" +#include "nvim/highlight_defs.h" +#include "nvim/keycodes.h" #include "nvim/lua/executor.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" +#include "nvim/memory.h" +#include "nvim/message.h" +#include "nvim/option_defs.h" #include "nvim/os/input.h" #include "nvim/runtime.h" +#include "nvim/strings.h" #include "nvim/usercmd.h" +#include "nvim/vim.h" #include "nvim/window.h" #ifdef INCLUDE_GENERATED_DECLARATIONS diff --git a/src/nvim/usercmd.h b/src/nvim/usercmd.h index 4d2cf0d9de..b6bf6c1e33 100644 --- a/src/nvim/usercmd.h +++ b/src/nvim/usercmd.h @@ -1,7 +1,12 @@ #ifndef NVIM_USERCMD_H #define NVIM_USERCMD_H +#include + +#include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds_defs.h" +#include "nvim/garray.h" +#include "nvim/types.h" typedef struct ucmd { char *uc_name; // The command name diff --git a/src/nvim/version.c b/src/nvim/version.c index 98f34ca11f..6b3279a990 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -7,27 +7,35 @@ /// Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred). #include -#include #include +#include +#include +#include +#include +#include "auto/config.h" +#include "auto/versiondef.h" // version info generated by the build system +#include "auto/versiondef_git.h" +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" #include "nvim/ascii.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/drawscreen.h" +#include "nvim/ex_cmds_defs.h" +#include "nvim/gettext.h" +#include "nvim/globals.h" #include "nvim/grid.h" -#include "nvim/iconv.h" +#include "nvim/highlight_defs.h" #include "nvim/lua/executor.h" -#include "nvim/memline.h" -#include "nvim/memory.h" +#include "nvim/mbyte.h" #include "nvim/message.h" +#include "nvim/option_defs.h" +#include "nvim/os/os_defs.h" #include "nvim/strings.h" #include "nvim/version.h" #include "nvim/vim.h" -// version info generated by the build system -#include "auto/versiondef.h" - // for ":version", ":intro", and "nvim --version" #ifndef NVIM_VERSION_MEDIUM # define NVIM_VERSION_MEDIUM "v" STR(NVIM_VERSION_MAJOR) \ diff --git a/src/nvim/vim.h b/src/nvim/vim.h index 4bcda9fc4f..7ac359da9a 100644 --- a/src/nvim/vim.h +++ b/src/nvim/vim.h @@ -1,7 +1,7 @@ #ifndef NVIM_VIM_H #define NVIM_VIM_H -#include "nvim/pos.h" // for linenr_T, MAXCOL, etc... +#include "nvim/pos.h" #include "nvim/types.h" // Some defines from the old feature.h diff --git a/src/nvim/viml/parser/expressions.c b/src/nvim/viml/parser/expressions.c index 77f85b5d2d..24dfb38ae0 100644 --- a/src/nvim/viml/parser/expressions.c +++ b/src/nvim/viml/parser/expressions.c @@ -53,6 +53,8 @@ #include #include #include +#include +#include #include #include "klib/kvec.h" @@ -60,6 +62,10 @@ #include "nvim/assert.h" #include "nvim/charset.h" #include "nvim/eval/typval.h" +#include "nvim/gettext.h" +#include "nvim/keycodes.h" +#include "nvim/macros.h" +#include "nvim/mbyte.h" #include "nvim/memory.h" #include "nvim/types.h" #include "nvim/vim.h" diff --git a/src/nvim/viml/parser/expressions.h b/src/nvim/viml/parser/expressions.h index 77fbfa615f..6fe6a784a0 100644 --- a/src/nvim/viml/parser/expressions.h +++ b/src/nvim/viml/parser/expressions.h @@ -6,9 +6,12 @@ #include #include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/types.h" #include "nvim/viml/parser/parser.h" +struct expr_ast_node; + // Defines whether to ignore case: // == kCCStrategyUseOption // ==# kCCStrategyMatchCase diff --git a/src/nvim/viml/parser/parser.c b/src/nvim/viml/parser/parser.c index a41b750e76..1547feba90 100644 --- a/src/nvim/viml/parser/parser.c +++ b/src/nvim/viml/parser/parser.c @@ -4,7 +4,7 @@ #include "nvim/viml/parser/parser.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "viml/parser/parser.c.generated.h" +# include "viml/parser/parser.c.generated.h" // IWYU pragma: export #endif void parser_simple_get_line(void *cookie, ParserLine *ret_pline) diff --git a/src/nvim/viml/parser/parser.h b/src/nvim/viml/parser/parser.h index 56e8b2d32b..f387301c2d 100644 --- a/src/nvim/viml/parser/parser.h +++ b/src/nvim/viml/parser/parser.h @@ -8,6 +8,7 @@ #include "klib/kvec.h" #include "nvim/func_attr.h" #include "nvim/mbyte.h" +#include "nvim/mbyte_defs.h" #include "nvim/memory.h" /// One parsed line diff --git a/src/nvim/window.c b/src/nvim/window.c index de5bcb40ea..54ab9a0471 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -2,21 +2,30 @@ // it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com #include +#include #include +#include #include +#include +#include +#include #include +#include "nvim/api/private/defs.h" #include "nvim/api/private/helpers.h" -#include "nvim/api/vim.h" #include "nvim/arglist.h" #include "nvim/ascii.h" +#include "nvim/autocmd.h" #include "nvim/buffer.h" #include "nvim/charset.h" #include "nvim/cursor.h" +#include "nvim/decoration.h" #include "nvim/diff.h" #include "nvim/drawscreen.h" #include "nvim/edit.h" #include "nvim/eval.h" +#include "nvim/eval/typval.h" +#include "nvim/eval/typval_defs.h" #include "nvim/eval/vars.h" #include "nvim/ex_cmds.h" #include "nvim/ex_cmds2.h" @@ -28,15 +37,19 @@ #include "nvim/fold.h" #include "nvim/garray.h" #include "nvim/getchar.h" +#include "nvim/gettext.h" #include "nvim/globals.h" #include "nvim/grid.h" #include "nvim/hashtab.h" -#include "nvim/highlight.h" +#include "nvim/keycodes.h" +#include "nvim/macros.h" #include "nvim/main.h" -#include "nvim/mapping.h" +#include "nvim/map.h" +#include "nvim/mapping.h" // IWYU pragma: keep (langmap_adjust_mb) #include "nvim/mark.h" #include "nvim/match.h" -#include "nvim/memline.h" +#include "nvim/mbyte.h" +#include "nvim/memline_defs.h" #include "nvim/memory.h" #include "nvim/message.h" #include "nvim/mouse.h" @@ -45,17 +58,18 @@ #include "nvim/option.h" #include "nvim/optionstr.h" #include "nvim/os/os.h" -#include "nvim/os_unix.h" #include "nvim/path.h" #include "nvim/plines.h" +#include "nvim/pos.h" #include "nvim/quickfix.h" -#include "nvim/regexp.h" +#include "nvim/screen.h" #include "nvim/search.h" #include "nvim/state.h" #include "nvim/statusline.h" #include "nvim/strings.h" #include "nvim/syntax.h" #include "nvim/terminal.h" +#include "nvim/types.h" #include "nvim/ui.h" #include "nvim/ui_compositor.h" #include "nvim/undo.h" diff --git a/src/nvim/window.h b/src/nvim/window.h index a564a0cfad..8fd11d1ce9 100644 --- a/src/nvim/window.h +++ b/src/nvim/window.h @@ -2,10 +2,14 @@ #define NVIM_WINDOW_H #include +#include +#include "nvim/buffer.h" #include "nvim/buffer_defs.h" #include "nvim/mark.h" #include "nvim/os/os.h" +#include "nvim/os/os_defs.h" +#include "nvim/vim.h" // Values for file_name_in_line() #define FNAME_MESS 1 // give error message