diff --git a/plugins/by-name/iron/default.nix b/plugins/by-name/iron/default.nix new file mode 100644 index 00000000..b84d7f7a --- /dev/null +++ b/plugins/by-name/iron/default.nix @@ -0,0 +1,35 @@ +{ lib, ... }: + +lib.nixvim.plugins.mkNeovimPlugin { + name = "iron"; + moduleName = "iron.core"; + packPathName = "iron.nvim"; + package = "iron-nvim"; + description = '' + Interactive Repls Over Neovim. + ''; + + maintainers = [ lib.maintainers.jolars ]; + + settingsExample = { + scratch_repl = true; + repl_definition = { + sh = { + command = [ "zsh" ]; + }; + python = { + command = [ "python3" ]; + format.__raw = "require('iron.fts.common').bracketed_paste_python"; + }; + }; + repl_open_cmd.__raw = ''require("iron.view").bottom(40)''; + keymaps = { + send_motion = "sc"; + visual_send = "sc"; + send_line = "sl"; + }; + highlight = { + italic = true; + }; + }; +} diff --git a/tests/test-sources/plugins/by-name/iron/default.nix b/tests/test-sources/plugins/by-name/iron/default.nix new file mode 100644 index 00000000..ae017471 --- /dev/null +++ b/tests/test-sources/plugins/by-name/iron/default.nix @@ -0,0 +1,66 @@ +{ + empty = { + plugins.iron.enable = true; + }; + + defaults = { + plugins.iron = { + enable = true; + + settings = { + scratch_repl = false; + repl_definition = { }; + repl_open_cmd.__raw = '' + require("iron.view").split.botright(40) + ''; + highlight = { }; + highlight_last = "IronLastSent"; + ignore_blank_lines = true; + should_map_plug = false; + bufListed = false; + keymaps = { + send_motion = null; + visual_send = null; + send_file = null; + send_paragraph = null; + send_until_cursor = null; + send_mark = null; + mark_motion = null; + remove_mark = null; + cr = null; + interrupt = null; + exit = null; + clear = null; + }; + }; + }; + }; + + example = { + plugins.iron = { + enable = true; + + settings = { + scratch_repl = true; + repl_definition = { + sh = { + command = [ "zsh" ]; + }; + python = { + command = [ "python3" ]; + format.__raw = "require('iron.fts.common').bracketed_paste_python"; + }; + }; + repl_open_cmd.__raw = ''require("iron.view").bottom(40)''; + keymaps = { + send_motion = "sc"; + visual_send = "sc"; + send_line = "sl"; + }; + highlight = { + italic = true; + }; + }; + }; + }; +}