feat: add useful bind, start neogen integration for ocaml

This commit is contained in:
janishutz committed 2026-10-03 12:10:27 +02:00
1 parent 0f16e5c642
commit 7065b85b2a
4 files changed
+67 -8

No files matched your search

+1
View File
@@ -37,6 +37,7 @@ keymap.set("n", "Q", ":q!<CR>", opts("quit file"))
-- Duplicate line -- Duplicate line
keymap.set("n", "<leader>dd", ":t.<CR>", opts("Duplicate line")) keymap.set("n", "<leader>dd", ":t.<CR>", opts("Duplicate line"))
keymap.set("n", "yc", "yy<cmd>normal gcc<CR>p", opts("Duplicate line, commenting original"))
-- LaTeX mappings -- LaTeX mappings
keymap.set("n", "<leader>lc", utils.run_vim_cmd("VimtexCompile"), opts("Compile latex document")) -- Compile LaTeX file keymap.set("n", "<leader>lc", utils.run_vim_cmd("VimtexCompile"), opts("Compile latex document")) -- Compile LaTeX file
-5
View File
@@ -1,5 +0,0 @@
return {
"AvengeMedia/base46",
lazy = true,
opts = {},
}
@@ -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",
},
}
+45 -3
View File
@@ -2,13 +2,55 @@ return {
"danymat/neogen", "danymat/neogen",
opts = { opts = {
snippet_engine = "luasnip", 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 = { keys = {
{ "<leader>gd", ":lua require('neogen').generate()<CR>", desc = "Autogenerate docs" }, { "<leader>gd", ":lua require('neogen').generate()<CR>", desc = "Autogenerate docs" },
{ "<leader>gg", ":lua require('neogen').generate( { type = 'func' } )<CR>", desc = "Generate function docs" }, { "<leader>gg", ":lua require('neogen').generate( { type = 'func' } )<CR>", desc = "Generate function docs" },
{ "<leader>gt", ":lua require('neogen').generate( { type = 'type' } )<CR>", desc = "Generate type docs" }, { "<leader>gt", ":lua require('neogen').generate( { type = 'type' } )<CR>", desc = "Generate type docs" },
{ "<leader>gc", ":lua require('neogen').generate( { type = 'class' } )<CR>", desc = "Generate class docs" }, { "<leader>gc", ":lua require('neogen').generate( { type = 'class' } )<CR>", desc = "Generate class docs" },
}, },