Files
lux/modules/capabilities/neovim/lua-config/lua/plugins/database.lua
T
kiri d81a59b9cb feat: persist working queries and show HTTP and database context
Keep Dadbod working queries under its data directory and expose native Kulala and Dadbod statusline components. No service requests or runtime validation performed during cleanup.
2026-09-09 17:31:25 +02:00

104 lines
2.4 KiB
Lua

local commands = {
"DBUI",
"DBUIToggle",
"DBUIAddConnection",
"DBUIFindBuffer",
"DBUIRenameBuffer",
"DBUILastQueryInfo",
}
local sql_filetypes = { "sql", "mysql", "plsql" }
local query_filetypes = { "sql", "mysql", "plsql", "javascript" }
require("lz.n").load({
{ "vim-dadbod" },
{ "vim-dadbod-completion", ft = sql_filetypes },
{
"vim-dadbod-ui",
cmd = commands,
ft = query_filetypes,
keys = {
{ "<leader>qo", "<cmd>DBUIToggle<cr>", desc = "Toggle database workspace" },
{
"<localleader>r",
"<Plug>(DBUI_ExecuteQuery)",
mode = { "n", "x" },
ft = query_filetypes,
remap = true,
desc = "Execute database query",
},
{
"<localleader>s",
"<Plug>(DBUI_SaveQuery)",
ft = query_filetypes,
remap = true,
desc = "Save database query",
},
{
"<localleader>p",
"<Plug>(DBUI_EditBindParameters)",
ft = query_filetypes,
remap = true,
desc = "Edit query parameters",
},
{ "<CR>", "<Plug>(DBUI_SelectLine)", ft = "dbui", remap = true, desc = "Open database item" },
{
"<localleader>a",
"<Plug>(DBUI_AddConnection)",
ft = "dbui",
remap = true,
desc = "Add database connection",
},
{
"<localleader>d",
"<Plug>(DBUI_DeleteLine)",
ft = "dbui",
remap = true,
desc = "Delete database item",
},
{
"<localleader>n",
"<Plug>(DBUI_RenameLine)",
ft = "dbui",
remap = true,
desc = "Rename database item",
},
{
"<localleader>r",
"<Plug>(DBUI_Redraw)",
ft = "dbui",
remap = true,
desc = "Refresh database workspace",
},
{
"<localleader>f",
"<Plug>(DBUI_JumpToForeignKey)",
ft = "dbout",
remap = true,
desc = "Follow foreign key",
},
{
"<localleader>l",
"<Plug>(DBUI_ToggleResultLayout)",
ft = "dbout",
remap = true,
desc = "Toggle result layout",
},
},
before = function()
vim.g.db_ui_execute_on_save = 0
vim.g.db_ui_tmp_query_location = vim.fn.stdpath("data") .. "/db_ui/working"
vim.g.db_ui_disable_mappings = 1
vim.g.db_ui_show_help = 0
vim.g.dbs = {
["MySQL — TEST"] = vim.env.YOOKR_MYSQL_TEST_DATABASE_URL,
["MySQL — LIVE"] = vim.env.YOOKR_MYSQL_LIVE_DATABASE_URL,
["MongoDB — TEST"] = vim.env.YOOKR_MONGODB_TEST_DATABASE_URL,
["MongoDB — LIVE"] = vim.env.YOOKR_MONGODB_LIVE_DATABASE_URL,
}
if vim.env.DATABASE_URL and vim.env.DATABASE_URL ~= "" then
vim.g.db = vim.env.DATABASE_URL
end
end,
},
})