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
magick
is required to convert images. Only PNG files will be displayed. - OK Terminal Dimensions:
- {size}:
1507
x748
pixels - {scale}:
1.00
- {cell}:
7
x15
pixels
- {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
gs
is required to render PDF files - ERROR None of the tools found: ‘tectonic’, ‘pdflatex’
- WARNING
tectonic
orpdflatex
is required to render LaTeX math expressions - ERROR Tool not found: ‘mmdc’
- WARNING
mmdc
is 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.select
forSnacks.picker
is 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.4
is required for searching withSnacks.picker.explorer()
- WARNING
SQLite3
is 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,