{ lib, config, pkgs, ... }: let inherit (lib) types; inherit (lib.nixvim) defaultNullOpts; in lib.nixvim.neovim-plugin.mkNeovimPlugin config { name = "nvim-snippets"; luaName = "snippets"; defaultPackage = pkgs.vimPlugins.nvim-snippets; maintainers = [ lib.maintainers.psfloyd ]; settingsOptions = { create_autocmd = defaultNullOpts.mkBool false '' Optionally load all snippets when opening a file. Only needed if not using nvim-cmp. ''; create_cmp_source = defaultNullOpts.mkBool true '' Optionally create a nvim-cmp source. Source name will be snippets. ''; friendly_snippets = defaultNullOpts.mkBool false '' Set to true if using friendly-snippets. ''; ignored_filetypes = defaultNullOpts.mkListOf types.str null '' Filetypes to ignore when loading snippets. ''; extended_filetypes = defaultNullOpts.mkAttrsOf types.anything null '' Filetypes to load snippets for in addition to the default ones. ex: {typescript = { 'javascript'}}''; global_snippets = defaultNullOpts.mkListOf types.str [ "all" ] '' Snippets to load for all filetypes. ''; search_paths = defaultNullOpts.mkListOf types.str [ { __raw = "vim.fn.stdpath('config') .. '/snippets'"; } ] '' Paths to search for snippets. ''; }; settingsExample = { create_autocmd = true; create_cmp_source = true; friendly_snippets = true; ignored_filetypes = [ "lua" ]; extended_filetypes = { typescript = [ "javascript" ]; }; global_snippets = [ "all" ]; search_paths = [ { __raw = "vim.fn.stdpath('config') .. '/snippets'"; } ]; }; }