From 7065b85b2a2f2020cd26b3ac5064d4015413e12e Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sat, 3 Oct 2026 12:10:27 +0200 Subject: [PATCH] feat: add useful bind, start neogen integration for ocaml --- nvim/lua/keybinds.lua | 1 + nvim/lua/plugins/style/dms.lua | 5 -- .../testing/debuggers/ocamlearlybird.lua | 21 ++++++++ nvim/lua/plugins/util/neogen.lua | 48 +++++++++++++++++-- 4 files changed, 67 insertions(+), 8 deletions(-) delete mode 100644 nvim/lua/plugins/style/dms.lua create mode 100644 nvim/lua/plugins/testing/debuggers/ocamlearlybird.lua diff --git a/nvim/lua/keybinds.lua b/nvim/lua/keybinds.lua index c99ef8b..6563f96 100755 --- a/nvim/lua/keybinds.lua +++ b/nvim/lua/keybinds.lua @@ -37,6 +37,7 @@ keymap.set("n", "Q", ":q!", opts("quit file")) -- Duplicate line keymap.set("n", "dd", ":t.", opts("Duplicate line")) +keymap.set("n", "yc", "yynormal gccp", opts("Duplicate line, commenting original")) -- LaTeX mappings keymap.set("n", "lc", utils.run_vim_cmd("VimtexCompile"), opts("Compile latex document")) -- Compile LaTeX file diff --git a/nvim/lua/plugins/style/dms.lua b/nvim/lua/plugins/style/dms.lua deleted file mode 100644 index 6da4db9..0000000 --- a/nvim/lua/plugins/style/dms.lua +++ /dev/null @@ -1,5 +0,0 @@ -return { - "AvengeMedia/base46", - lazy = true, - opts = {}, -} diff --git a/nvim/lua/plugins/testing/debuggers/ocamlearlybird.lua b/nvim/lua/plugins/testing/debuggers/ocamlearlybird.lua new file mode 100644 index 0000000..be7919f --- /dev/null +++ b/nvim/lua/plugins/testing/debuggers/ocamlearlybird.lua @@ -0,0 +1,21 @@ +local dap = require("dap") +dap.adapters.ocamlearlybird = { + type = "executable", + command = "ocamlearlybird", + args = { "debug" }, +} + +dap.configurations.ocaml = { + { + name = "OCaml Debug test.bc", + type = "ocamlearlybird", + request = "launch", + program = "${workspaceFolder}/_build/default/test/test.bc", + }, + { + name = "OCaml Debug main.bc", + type = "ocamlearlybird", + request = "launch", + program = "${workspaceFolder}/_build/default/bin/main.bc", + }, +} diff --git a/nvim/lua/plugins/util/neogen.lua b/nvim/lua/plugins/util/neogen.lua index 4819a2b..98669c5 100755 --- a/nvim/lua/plugins/util/neogen.lua +++ b/nvim/lua/plugins/util/neogen.lua @@ -2,13 +2,55 @@ return { "danymat/neogen", opts = { snippet_engine = "luasnip", + template = { + ocamldoc = { + { nil, "(** $1 *)", { no_reults = true, type = { "func", "class", "type", "file" } } }, + }, + }, + languages = { + ocaml = { + template = { + annotation_convention = "ocamldoc", + }, + parent = { + func = { + "value_definition", + }, + type = { + "type_definition", + }, + }, + data = { + func = { + func = { + ["value_definition"] = { + ["0"] = { + extract = function() + return {} + end, + }, + }, + }, + type = { + ["type_definition"] = { + ["0"] = { + extract = function() + return {} + end, + }, + }, + }, + }, + }, + }, + }, }, keys = { - { "gd", ":lua require('neogen').generate()", desc = "Autogenerate docs" }, + { "gd", ":lua require('neogen').generate()", desc = "Autogenerate docs" }, - { "gg", ":lua require('neogen').generate( { type = 'func' } )", desc = "Generate function docs" }, + { "gg", ":lua require('neogen').generate( { type = 'func' } )", desc = "Generate function docs" }, - { "gt", ":lua require('neogen').generate( { type = 'type' } )", desc = "Generate type docs" }, + { "gt", ":lua require('neogen').generate( { type = 'type' } )", desc = "Generate type docs" }, { "gc", ":lua require('neogen').generate( { type = 'class' } )", desc = "Generate class docs" }, },