Added more editor features to support Golang, sql and git

This commit is contained in:
2026-01-19 19:31:11 -07:00
parent a9b956e141
commit 3b41bd1552
16 changed files with 184 additions and 46 deletions

View File

@@ -1,11 +1,15 @@
{ {
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
"LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" }, "LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" },
"SchemaStore.nvim": { "branch": "main", "commit": "20ee0cad0b25e4a028d355c51b06d41eecb90d91" }, "SchemaStore.nvim": { "branch": "main", "commit": "fb7b9034285a5658c746faa12eff8c1c9d9b11b1" },
"aerial.nvim": { "branch": "master", "commit": "7a6a42791eb2b54a7115c7db4488981f93471770" },
"avante.nvim": { "branch": "main", "commit": "e89eb79abf5754645e20aa6074da10ed20bba33c" }, "avante.nvim": { "branch": "main", "commit": "e89eb79abf5754645e20aa6074da10ed20bba33c" },
"blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" }, "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" }, "catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" },
"conform.nvim": { "branch": "master", "commit": "238f542a118984a88124fc915d5b981680418707" }, "conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" },
"copilot.lua": { "branch": "master", "commit": "2d7511494245129aa6c2176f9c71cc2bc1360ed9" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
@@ -16,15 +20,21 @@
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "fe661093f4b05136437b531e7f959af2a2ae66c8" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "80c0130c5f16b551865a69e832f1feadeedb5fbe" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" },
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
"mini.ai": { "branch": "main", "commit": "bfb26d9072670c3aaefab0f53024b2f3729c8083" }, "mini.ai": { "branch": "main", "commit": "9eae720f2b20f6ad28cbfa0ddc524e10dc2c3201" },
"mini.icons": { "branch": "main", "commit": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c" }, "mini.icons": { "branch": "main", "commit": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c" },
"mini.pairs": { "branch": "main", "commit": "d5a29b6254dad07757832db505ea5aeab9aad43a" }, "mini.pairs": { "branch": "main", "commit": "d5a29b6254dad07757832db505ea5aeab9aad43a" },
"neogit": { "branch": "master", "commit": "d8bf9102692250193b855acd9025a826f1af2729" },
"neotest": { "branch": "master", "commit": "deadfb1af5ce458742671ad3a013acb9a6b41178" },
"neotest-go": { "branch": "main", "commit": "59b50505053f9c45a9febb79e11a56206c3e3901" },
"neotest-golang": { "branch": "main", "commit": "53f06063780b0b244583d3d32b138fc2df21e162" },
"neotest-python": { "branch": "master", "commit": "b0d3a861bd85689d8ed73f0590c47963a7eb1bf9" },
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-colorizer.lua": { "branch": "master", "commit": "81e676d3203c9eb6e4c0ccf1eba1679296ef923f" }, "nvim-colorizer.lua": { "branch": "master", "commit": "81e676d3203c9eb6e4c0ccf1eba1679296ef923f" },
"nvim-coverage": { "branch": "main", "commit": "a939e425e363319d952a6c35fb3f38b34041ded2" },
"nvim-dap": { "branch": "master", "commit": "cdfd55a133f63228c55f91378f12908cb2a78ded" }, "nvim-dap": { "branch": "master", "commit": "cdfd55a133f63228c55f91378f12908cb2a78ded" },
"nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" }, "nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" },
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" }, "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
@@ -32,14 +42,17 @@
"nvim-lint": { "branch": "master", "commit": "ca6ea12daf0a4d92dc24c5c9ae22a1f0418ade37" }, "nvim-lint": { "branch": "master", "commit": "ca6ea12daf0a4d92dc24c5c9ae22a1f0418ade37" },
"nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" }, "nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-treesitter": { "branch": "main", "commit": "5a7e5638e7d220575b1c22c8a2e099b52231886e" }, "nvim-remote-containers": { "branch": "master", "commit": "73c2cbc59b69b4026682aea6bab225831fb8eaa4" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "baa6b4ec28c8be5e4a96f9b1b6ae9db85ec422f8" }, "nvim-treesitter": { "branch": "main", "commit": "e75c007f2747050c2c620dc862c77b8f242551a8" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "4d55f63252e04c5212daed958e4e940915ff16ce" },
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
"nvim-web-devicons": { "branch": "master", "commit": "803353450c374192393f5387b6a0176d0972b848" }, "nvim-web-devicons": { "branch": "master", "commit": "803353450c374192393f5387b6a0176d0972b848" },
"overseer.nvim": { "branch": "master", "commit": "5828bdbd86677497613033c142f0a8624489216f" },
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"render-markdown.nvim": { "branch": "main", "commit": "ae89236e2389836cf1c3787b2b80d5d8685cc13f" }, "render-markdown.nvim": { "branch": "main", "commit": "c54380dd4d8d1738b9691a7c349ecad7967ac12e" },
"snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" }, "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
"telescope.nvim": { "branch": "master", "commit": "0d8b6eaa0b5ae6bb3d9785f7a3ba4a4c6c1b1af2" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" }, "toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
"tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },

View File

@@ -114,3 +114,29 @@ autocmd("DirChanged", {
end end
end, end,
}) })
-- Golang AutoOpen PProf
autocmd("BufRead", {
pattern = { "cpu.out", "mem.out", "trace.out" },
callback = function(args)
local name = vim.fn.fnamemodify(args.file, ":t")
vim.notify(
"Generated " .. name .. ". Use: `go tool pprof -http=:0 " .. name .. "` or `go tool trace " .. name .. "`",
vim.log.levels.INFO)
end,
})
-- SQL files
autocmd("FileType", {
pattern = { "sql", "mysql", "plsql" },
callback = function()
local cmp = require("cmp")
cmp.setup.buffer({
sources = {
{ name = "vim-dadbod" },
{ name = "nvim_lsp" },
{ name = "buffer" },
},
})
end,
})

View File

@@ -83,11 +83,17 @@ map("n", "<leader>tc", "<cmd>Coverage<cr>", { desc = "Show coverage" })
-- Go benchmark -- Go benchmark
map("n", "<leader>gb", function() map("n", "<leader>gb", function()
vim.cmd("!go test -bench . ./...") vim.cmd("!go test -bench=. -benchmem ./...")
end, { desc = "Go benchmarks" }) end, { desc = "Go benchmarks" })
map("n", "<leader>gp", function() map("n", "<leader>gpc", function()
vim.cmd("!go test -cpuprofile cpu.out && go tool pprof cpu.out") vim.cmd("!go test -run=^$ -bench=. -cpuprofile cpu.out ./...")
end, { desc = "Go CPU profile" }) end, { desc = "Go CPU profile" })
map("n", "<leadger>gpm", function()
vim.cmd("!go test -run=^$ -bench=. -memprofile mem.out ./...")
end, { desc = "Go memory profile" })
map("n", "<leader>gpt", function()
vim.cmd("!go test -run=^$ -bench. -trace trace.out ./...")
end, { desc = "Go trace profile" })
-- Overseer -- Overseer
map("n", "<leader>or", "<cmd>OverseerRun<cr>", { desc = "Run task" }) map("n", "<leader>or", "<cmd>OverseerRun<cr>", { desc = "Run task" })
@@ -102,3 +108,6 @@ map("n", "<leader>sc", vim.lsp.buf.outgoing_calls, { desc = "Outgoing calls" })
map("n", "<leader>xx", "<cmd>Trouble diagnostics toggle<cr>") map("n", "<leader>xx", "<cmd>Trouble diagnostics toggle<cr>")
map("n", "<leader>xw", "<cmd>Trouble workspace_diagnostics<cr>") map("n", "<leader>xw", "<cmd>Trouble workspace_diagnostics<cr>")
map("n", "<leader>xt", "<cmd>Trouble todo<cr>") map("n", "<leader>xt", "<cmd>Trouble todo<cr>")
-- Git Support
map("n", "<leader>gg", "<cmd>Neogit<cr>", { desc = "Neogit"})

View File

@@ -1,8 +0,0 @@
return {
name = "go test",
builder = function()
return {
cmd = { "go", "test", "./..." },
}
end,
}

View File

@@ -0,0 +1,15 @@
return {
name = "go: benchmarks",
desc = "Run Go benchmarks with memory stats",
builder = function()
return {
cmd = { "go", "test" },
args = { "-bench=.", "-benchmem", "./..." },
components = {
"default",
"on_output_quickfix",
{ "on_complete_notify", statuses = { "SUCCESS", "FAILURE" } },
},
}
end,
}

View File

@@ -0,0 +1,20 @@
return {
name = "go: cpu profile",
desc = "Generate CPU profile (cpu.out)",
builder = function()
return {
cmd = { "go", "test" },
args = {
"-run=^$",
"-bench=.",
"-cpuprofile=cpu.out",
"./...",
},
components = {
"default",
"on_output_quickfix",
{ "on_complete_notify", statuses = { "SUCCESS" } },
},
}
end,
}

View File

@@ -0,0 +1,20 @@
return {
name = "go: mem profile",
desc = "Generate heap profile (mem.out)",
builder = function()
return {
cmd = { "go", "test" },
args = {
"-run=^$",
"-bench=.",
"-memprofile=mem.out",
"./...",
},
components = {
"default",
"on_output_quickfix",
{ "on_complete_notify", statuses = { "SUCCESS" } },
},
}
end,
}

View File

@@ -0,0 +1,10 @@
return {
name = "go test",
desc = "Run all tests",
builder = function()
return {
cmd = { "go", "test" },
args = { "./..." },
}
end,
}

View File

@@ -0,0 +1,20 @@
return {
name = "go: trace",
desc = "Generate execution trace (trace.out)",
builder = function()
return {
cmd = { "go", "test" },
args = {
"-run=^$",
"-bench=.",
"-trace=trace.out",
"./...",
},
components = {
"default",
"on_output_quickfix",
{ "on_complete_notify", statuses = { "SUCCESS" } },
},
}
end,
}

View File

@@ -74,6 +74,7 @@ return {
optional = true, optional = true,
dependencies = { dependencies = {
"kristijanhusak/vim-dadbod-completion", "kristijanhusak/vim-dadbod-completion",
"nvim-cmp",
}, },
opts = function(_, opts) opts = function(_, opts)
opts.sources = opts.sources or {} opts.sources = opts.sources or {}

View File

@@ -46,9 +46,9 @@ return {
["markdown.mdx"] = { "prettier" }, ["markdown.mdx"] = { "prettier" },
-- SQL -- SQL
sql = { "sql_formatter" }, sql = { "sql_formatter", "sqlfluff", "pg_format" },
mysql = { "sql_formatter" }, mysql = { "sql_formatter", "sqlfluff" },
plsql = { "sql_formatter" }, plsql = { "sql_formatter", "sqlfluff", "pg_format" },
-- Makefile (no formatter - they require tabs) -- Makefile (no formatter - they require tabs)
-- make = {}, -- make = {},

15
lua/plugins/git.lua Normal file
View File

@@ -0,0 +1,15 @@
return {
{
"NeogitOrg/neogit",
dependencies = {
"nvim-lua/plenary.nvim",
"sindrets/diffview.nvim",
},
cmd = "Neogit",
opts = {
integrations = {
diffview = true,
},
},
},
}

View File

@@ -1,10 +0,0 @@
return {
{
"davecheney/profile",
ft = "go",
},
{
"rbong/vim-flog",
cmd = { "Flog" },
},
}

View File

@@ -1,6 +0,0 @@
return {
{
"nvim-neotest/neotest-python",
dependencies = { "nvim-neotest/neotest" },
},
}

View File

@@ -5,15 +5,28 @@ return {
"nvim-neotest/nvim-nio", "nvim-neotest/nvim-nio",
"nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",
"antoinemadec/FixCursorHold.nvim", "antoinemadec/FixCursorHold.nvim",
-- Adapters
"nvim-neotest/neotest-go", "nvim-neotest/neotest-go",
"nvim-neotest/neotest-python",
}, },
opts = { config = function()
adapters = { require("neotest").setup({
require("neotest-go"), adapters = {
require("neotest-python")({ require("neotest-go")({
dap = { justMyCode = false }, experimental = {
}), test_table = true,
}, },
}, args = { "-count=1", "-race" },
}),
require("neotest-python")({
dap = { justMyCode = false },
args = { "--disable-warnings", "-q" },
}),
},
})
end,
}, },
} }

View File

@@ -2,7 +2,7 @@ return {
{ {
"stevearc/overseer.nvim", "stevearc/overseer.nvim",
opts = { opts = {
templates = { "builtin", "user.go", "user.npm" } templates = { "builtin", "user" }
}, },
}, },
} }