id = "neovim" name = "Neovim" homepage = "https://neovim.io" description = "Vim refactored around Lua configuration, a built-in LSP client and an embeddable core." icon = "theSVG:neovim" executables = ["nvim"] [dotfiles] # :help config, :help base-directories — $XDG_CONFIG_HOME/nvim on Unix, # $LOCALAPPDATA/nvim on Windows. Everything under it is configuration except # the caches plugin managers drop there. paths = ["~/.config/nvim/", "%LOCALAPPDATA%/nvim/"] # The first two repeat under %LOCALAPPDATA%: the Windows config tree grows # the same plugin-manager leftovers, and an exclude that names only the Unix # copy leaves them syncing from a Windows machine. The last three are the Unix # data/state/cache dirs, which have no counterpart under the config path. # # :help base-directories again: those three are $XDG_DATA_HOME, # $XDG_STATE_HOME and $XDG_CACHE_HOME on every Unix, macOS included — # `nvim --headless -c 'echo stdpath("data")'` on a Mac prints # ~/.local/share/nvim. So they are [xdgData] and [xdgCache], not [dataHome] / # [cacheHome], which name ~/Library directories Neovim never writes. The state # directory has no base-directory name in this syntax and stays literal. exclude = [ "~/.config/nvim/spell/", "~/.config/nvim/plugin/packer_compiled.lua", "%LOCALAPPDATA%/nvim/spell/", "%LOCALAPPDATA%/nvim/plugin/packer_compiled.lua", "[xdgData]/nvim/", "~/.local/state/nvim/", "[xdgCache]/nvim/", ] secret = [] # No machine_lines: a Neovim config is arbitrary Lua/Vimscript with no # reserved keyword at the start of a machine-local line. Absolute paths do # show up (provider binaries, LSP roots), but they appear mid-expression # where a prefix match cannot reach them. Left to the consumer's content # heuristics. [commands] format = 1 label = "Open files in Neovim" description = "Start nvim on one or more files with common startup flags. Remote/RPC, --embed and swap-file recovery modes are left out." quality = "ai-draft" base = "fig:nvim" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/nvim.ts" license = "MIT" [[commands.field]] id = "files" label = "Files" type = "path" position = 0 multiple = true path = { kind = "file", role = "input", must_exist = false } sources = ["fig"] [[commands.field]] id = "readonly" label = "Read-only" type = "boolean" option = ["-R"] sources = ["fig"] [[commands.field]] id = "diff" label = "Diff mode" type = "boolean" option = ["-d"] sources = ["fig"] [[commands.field]] id = "no_swap" label = "No swap file" type = "boolean" option = ["-n"] sources = ["fig"] [[commands.field]] id = "no_modify" label = "Disallow writing files" type = "boolean" option = ["-m"] sources = ["fig"] [[commands.field]] id = "command" label = "Command after load" description = "Ex command to run after the config and first file are loaded." type = "string" option = ["-c"] sources = ["fig"] [[commands.field]] id = "config" label = "Config file" type = "path" option = ["-u"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.field]] id = "session" label = "Session to source" type = "path" option = ["-S"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.field]] id = "noplugin" label = "Do not load plugins" type = "boolean" option = ["--noplugin"] sources = ["fig"] [[commands.field]] id = "headless" label = "Headless (no UI)" type = "boolean" option = ["--headless"] sources = ["fig"] [[commands.task]] id = "edit" label = "Edit files" fields = ["files", "command"] required = [] [[commands.task]] id = "view" label = "View read-only" fields = ["files"] required = [] set = { readonly = [true] } [[commands.task]] id = "diff" label = "Diff files" fields = ["files"] required = ["files"] set = { diff = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["files", "readonly", "diff", "no_swap", "command"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["no_modify", "config", "session", "noplugin", "headless"]