Files
vern-nvim/lua/vern/attach/c.lua
T
DarthMooMancer 685a711644 REFACTOR: Annotations for autocompletion, reworked how projects are made
and handled, wrote the c file replacing the copied python code.
2026-10-22 04:29:52 -04:00

48 lines
1.5 KiB
Lua

local actions = require("vern.actions.python")
local config = require("vern.configs.python")
---@param bufnr integer Buffer to activate on : defaults to 0
---@param user_opts? VernPythonConfig
return function(bufnr, user_opts)
---@type VernPythonConfig
local opts = vim.tbl_deep_extend("force", {}, config, user_opts or {})
vim.api.nvim_buf_create_user_command(bufnr, "CRun", function()
if type(actions.run) == "function" then
actions.run(opts)
end
end, { desc = "Run c project" })
-- vim.api.nvim_buf_create_user_command(bufnr, "Pythonpip", function(cmd_args)
-- if actions.pip_install then
-- actions.pip_install()
-- end
-- end, { nargs = "*", desc = "Install python packages" })
for key, def in pairs(opts.python.keybinds or {}) do
if type(def.action) == "function" then
vim.keymap.set("n", key, function()
def.action(opts)
end, {
buffer = bufnr,
silent = true,
desc = def.desc,
})
end
end
local root = require("vern.utils").proj_root()
if not root then
return
end
local venv_dir = nil
if vim.uv.fs_stat(root .. "/venv/bin/python") then
venv_dir = root .. "/venv"
elseif vim.uv.fs_stat(root .. "/.venv/bin/python") then
venv_dir = root .. "/.venv"
end
if venv_dir then
vim.env.VIRTUAL_ENV = venv_dir
vim.env.PATH = venv_dir .. "/bin:" .. vim.env.PATH
end
end