{ config, pkgs, nixvim, ... }: { programs.nixvim = { extraConfigLua = '' local map = vim.api.nvim_set_keymap local opts = { noremap = true, silent = true } vim.g.mapleader = " " map('n', '', ":ToggleTerm size=40 direction=float", opts) map('n', '', ":Neotree filesystem reveal right toggle", opts) map('v', '', '>gv', opts) map('v', '', '"] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() else fallback() end end, { "i", "s" }), [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() else fallback() end end, { "i", "s" }), [""] = cmp.mapping.scroll_docs(-4), [""] = cmp.mapping.scroll_docs(4), [""] = cmp.mapping.complete(), [""] = cmp.mapping.abort(), [""] = cmp.mapping.abort(), [""] = cmp.mapping.confirm({ select = false }), }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'luasnip' }, { name = 'buffer' }, { name = 'path' }, { name = 'nvim_lua' }, { name = 'calc' }, { name = 'spell' }, { name = 'emoji' }, { name = 'crates' }, }), highlight = { default = "Subtle" }; }) end }, } ''; }; }