[
  # 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/buffer.h.generated.h"', private, '"nvim/eval/buffer.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: [ '"eval/window.h.generated.h"', private, '"nvim/eval/window.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: [ '"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: [ '"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 ] },
  { include: [ '"ui_events_remote.generated.h"', private, '"nvim/api/ui.h"', public ] },
  { include: [ '"ui_events_remote.h.generated.h"', private, '"nvim/api/ui.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: [ "<bits/types/wint_t.h>", private, "<wchar.h>", public ] },
  { include: [ '<arpa/inet.h>', private, '<uv/unix.h>', private ] },
  { include: [ '<bits/termios-c_cc.h>', private, '<termios.h>', private ] },
  { include: [ '<bits/termios-c_cflag.h>', private, '<termios.h>', private ] },
  { include: [ '<bits/termios-c_iflag.h>', private, '<termios.h>', private ] },
  { include: [ '<bits/termios-c_oflag.h>', private, '<termios.h>', private ] },
  { include: [ '<libintl.h>', private, '"nvim/gettext.h"', public ] },
  { include: [ '<netdb.h>', private, '<uv/unix.h>', private ] },
  { include: [ '<netinet/in.h>', private, '<uv/unix.h>', private ] },
  { include: [ '<pthread.h>', private, '"nvim/os/unix_defs.h"', private ] },
  { include: [ '<sys/socket.h>', private, '<uv/unix.h>', private ] },
  { include: [ '<termios.h>', private, '"nvim/os/unix_defs.h"', private ] },
  { include: [ '<unistd.h>', private, '"nvim/os/unix_defs.h"', private ] },
  { include: [ '<uv/unix.h>', private, '<uv.h>', public ] },

  # Symbols
  { symbol: [ "MAX", private, '"nvim/macros.h"', public ] },
  { symbol: [ "MIN", private, '"nvim/macros.h"', public ] },
  { symbol: [ "SEEK_END", private, '<stdio.h>', public ] },
  { symbol: [ "SEEK_SET", private, '<stdio.h>', public ] },
  { symbol: [ "time_fd", private, '"nvim/globals.h"', public ] },
]

# vim: set ft=toml:
