{ pkgs, lib, ... }: { programs.nixvim = { # TODO: package debugprint though a module extraConfigLuaPost = '' ${lib.strings.fileContents ./lua/debugprint.lua} ''; extraPlugins = [ pkgs.vimExtraPlugins.debugprint-nvim ]; keymaps = [ { key = "g?v"; mode = ["v" "n"]; action.__raw = '' function() return require('debugprint').debugprint({variable = true;}); end ''; options.expr = true; options.desc = '' 'variable' debug line below the current line ''; } { key = "g?V"; mode = ["v" "n"]; action.__raw = '' function() return require('debugprint').debugprint({above = true; variable = true;}) ; end ''; options.expr = true; options.desc = '' 'variable' debug line above the current line ''; } { key = "g?p"; mode = "n"; action.__raw = '' function() return require('debugprint').debugprint(); end ''; options.expr = true; options.desc = '' 'plain' debug line below the current line ''; } { key = "g?P"; mode = "n"; action.__raw = '' function() return require('debugprint').debugprint({above = true;}); end ''; options.expr = true; options.desc = '' 'plain' debug line above the current line ''; } ]; }; }