I recently installed nvf after a long struggle and wanted to install snacks.nvim.
But the options documentation for nvf has only 2 options. enable and setupOps.
nvf/default.nix
{ config, pkgs, … }:
{
vim = {
# Theme settings
theme = {
enable = true;
name = “oxocarbon”;
style = “dark”;
};
# UI enhancements
statusline.lualine.enable = true;
statusline.lualine.theme = "palenight";
binds.whichKey = {
enable = true;
setupOpts.notify = true;
setupOpts.preset = "modern"; # classic, modern, helix
setupOpts.win.border = "rounded";
};
mini.tabline = {
enable = true;
};
telescope.enable = true;
filetree.nvimTree = {
enable = true;
mappings.toggle = " t";
setupOpts.hijack_cursor = true;
};
# Snacks
utility.snacks-nvim = {
enable = true;
setupOpts = {
bigfile.enable = true;
dashboard.enable = true;
};
};
# Editor features
autopairs.nvim-autopairs.enable = true;
comments.comment-nvim.enable = true;
useSystemClipboard = true;
autocomplete.nvim-cmp.enable = true;
git.gitsigns.enable = true;
utility.motion.hop.enable = true; # Quick navigation
utility.surround.enable = true;
# Terminal integration
terminal.toggleterm.enable = true; # might not need afte snacks being used
# Language support
languages = {
enableLSP = true;
enableTreesitter = true;
enableFormat = true;
nix.enable = true;
clang.enable = true;
rust.enable = true;
python.enable = true;
markdown.enable = true;
};
debugger.nvim-dap = {
enable = true; # Enable Debug Adapter Protocol
ui.enable = true; # Enable DAP UI (nvim-dap-ui)
};
};
}
However i could’nt find any documentation on how use setupOpts.
but after rebuilding this nix file, opened nvf and did :checkHealth snacks and noticed something
snacks healthcheck
snacks: require(“snacks.health”).check()
Snacks ~
- OK setup called
Snacks.bigfile ~
- OK setup {enabled}
Snacks.dashboard ~
- OK setup {enabled}
- OK setup ran
- WARNING dashboard did not open:
argc(-1) > 0
Snacks.explorer ~
- WARNING setup {disabled}
Snacks.image ~
- WARNING setup {disabled}
- ERROR None of the tools found: ‘kitty’, ‘wezterm’, ‘ghostty’
- ERROR None of the tools found: ‘magick’, ‘convert’
- ERROR
magickis required to convert images. Only PNG files will be displayed. - OK Terminal Dimensions:
- {size}:
1507x748pixels - {scale}:
1.00 - {cell}:
7x15pixels
- {size}:
- OK Available Treesitter languages:
markdown_inline,markdown - WARNING Missing Treesitter languages:
css,html,javascript,latex,norg,scss,svelte,tsx,typst,vue - WARNING Image rendering in docs with missing treesitter parsers won’t work
- ERROR Tool not found: ‘gs’
- WARNING
gsis required to render PDF files - ERROR None of the tools found: ‘tectonic’, ‘pdflatex’
- WARNING
tectonicorpdflatexis required to render LaTeX math expressions - ERROR Tool not found: ‘mmdc’
- WARNING
mmdcis required to render Mermaid diagrams - ERROR your terminal does not support the kitty graphics protocol
- supported terminals:
kitty,wezterm,ghostty
Snacks.input ~
- WARNING setup {disabled}
Snacks.lazygit ~
- ERROR {lazygit} not installed
Snacks.notifier ~
- WARNING setup {disabled}
- ERROR is not ready
Snacks.picker ~
- WARNING setup {disabled}
- WARNING
vim.ui.selectforSnacks.pickeris not enabled - WARNING Missing Treesitter languages:
regex - OK ‘git’
git version 2.47.2 - ERROR Tool not found: ‘rg’
- ERROR ‘rg’ is required for
Snacks.picker.grep() - ERROR None of the tools found: ‘fd’, ‘fdfind’
- OK ‘find’
- OK
Snacks.picker.files()is available - ERROR ‘fd’
v8.4is required for searching withSnacks.picker.explorer() - WARNING
SQLite3is not available. Frecency and history will be stored in a file instead.
Snacks.quickfile ~
- WARNING setup {disabled}
Snacks.scope ~
- WARNING setup {disabled}
Snacks.scroll ~
- WARNING setup {disabled}
Snacks.statuscolumn ~
- WARNING setup {disabled}
Snacks.terminal ~
- OK shell configured
vim.o.shell: /run/current-system/sw/bin/zshparsed: { “/run/current-system/sw/bin/zsh” }
Snacks.toggle ~
- OK {which-key} is installed
Snacks.words ~
- WARNING setup {disabled}
as and when i added something like dashboard, bigfile , treesitter, whichkey,… the helthcheck report started printing OK.
Question:
- is this the right way to do it. i mean manually add the plugins based on the options from the documentation ?
- how to add ui related changes. im especially looking for debugger related UI
Thanks,