mirror of
https://github.com/cap153/nvim.git
synced 2025-12-27 03:34:57 +08:00
79 lines
2.3 KiB
Lua
79 lines
2.3 KiB
Lua
-- ===
|
||
-- === 运行代码
|
||
-- ===
|
||
|
||
-- 定义一个映射表,key 是文件类型(或包含多个类型的 table),value 是要绑定的命令
|
||
-- 可以通过`echo &filetype`或者`lua= vim.bo.filetype`或者`lua print(vim.bo.filetype)`来获取当前打开文件的文件类型
|
||
local keymaps = {
|
||
[{
|
||
"rust",
|
||
"python",
|
||
}] = { cmd = ":wall<cr>:RunCode<cr>", desc = "Save and Run Code" },
|
||
markdown = { cmd = ":PeekClose<cr>:PeekOpen<cr>", desc = "Reload Markdown Preview" },
|
||
dart = { cmd = ":wall<cr>:Telescope flutter commands<cr>", desc = "Save and Open Flutter Commands" },
|
||
go = { cmd = ":wall<cr>:set splitbelow<cr>:sp<cr>:term go run %<cr>", desc = "Save and Run Go file" },
|
||
}
|
||
-- 创建自动命令组
|
||
local ft_group = vim.api.nvim_create_augroup("FileTypeKeymaps", { clear = true })
|
||
-- 遍历上面的表,为每个条目创建自动命令
|
||
for filetype, mapping in pairs(keymaps) do
|
||
vim.api.nvim_create_autocmd("FileType", {
|
||
pattern = filetype,
|
||
group = ft_group,
|
||
callback = function(args)
|
||
vim.keymap.set("n", "r", mapping.cmd, {
|
||
noremap = true,
|
||
silent = true,
|
||
buffer = args.buf,
|
||
desc = mapping.desc,
|
||
})
|
||
end,
|
||
})
|
||
end
|
||
|
||
return {
|
||
"CRAG666/code_runner.nvim",
|
||
dependencies = {},
|
||
config = function()
|
||
require("code_runner").setup({
|
||
-- project = {
|
||
-- ["~/sixsixsix"] = {
|
||
-- name = "sixsixsix",
|
||
-- description = "六爻网页排盘",
|
||
-- command = "cargo run --release"
|
||
-- },
|
||
-- },
|
||
filetype = {
|
||
python = "uv run $fileName",
|
||
rust = {
|
||
"cargo run --release",
|
||
-- "cd $dir &&",
|
||
-- "rustc $fileName &&",
|
||
-- "$dir/$fileNameWithoutExt",
|
||
},
|
||
-- typescript = "deno run",
|
||
-- java = {
|
||
-- "cd $dir &&",
|
||
-- "javac $fileName &&",
|
||
-- "java $fileNameWithoutExt",
|
||
-- },
|
||
-- c = function(...)
|
||
-- c_base = {
|
||
-- "cd $dir &&",
|
||
-- "gcc $fileName -o",
|
||
-- "/tmp/$fileNameWithoutExt",
|
||
-- }
|
||
-- local c_exec = {
|
||
-- "&& /tmp/$fileNameWithoutExt &&",
|
||
-- "rm /tmp/$fileNameWithoutExt",
|
||
-- }
|
||
-- vim.ui.input({ prompt = "Add more args:" }, function(input)
|
||
-- c_base[4] = input
|
||
-- vim.print(vim.tbl_extend("force", c_base, c_exec))
|
||
-- require("code_runner.commands").run_from_fn(vim.list_extend(c_base, c_exec))
|
||
-- end)
|
||
-- end,
|
||
},
|
||
})
|
||
end,
|
||
}
|