aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAriel D'Alessandro <dalessandro.ariel@gmail.com>2023-09-01 14:00:10 +0200
committerAriel D'Alessandro <dalessandro.ariel@gmail.com>2023-09-01 14:00:10 +0200
commit96c4f3ca9c9836ff926ec5969d29007e725ee68b (patch)
treea3669f45e80ebc8644506c476125515f810edf2e
parentf4fe416201cc9d1cba5dfa3fec0879601fb85ae7 (diff)
downloadnvim-conf-96c4f3ca9c9836ff926ec5969d29007e725ee68b.tar.gz
nvim-conf-96c4f3ca9c9836ff926ec5969d29007e725ee68b.zip
change test strategies
-rw-r--r--lazy-lock.json10
-rw-r--r--lua/alpha/test_menu.lua4
-rw-r--r--lua/alpha/test_strategy.lua65
-rw-r--r--lua/plugins/gitsigns.lua1
-rw-r--r--lua/plugins/test.lua2
5 files changed, 76 insertions, 6 deletions
diff --git a/lazy-lock.json b/lazy-lock.json
index 94729af..1a4ef40 100644
--- a/lazy-lock.json
+++ b/lazy-lock.json
@@ -18,10 +18,10 @@
"copilot-cmp": { "branch": "master", "commit": "11eb015fbf9f07ad1c72dbdc9d830ebac610b5cd" },
"copilot.lua": { "branch": "master", "commit": "0fa30d6846aae1af1c94a9ead93fa7dcf8affbe6" },
"dressing.nvim": { "branch": "master", "commit": "c7b035de7f91bb6b62b4308f105c56d1a968b8c5" },
- "fzf": { "branch": "master", "commit": "58835e40f35fd1007de9bf607e06d555f085354c" },
+ "fzf": { "branch": "master", "commit": "f50a7058d6734b8213fb8bbe6a293b2ffd485eed" },
"fzf.vim": { "branch": "master", "commit": "811f34b70b60b4df2997e3ba8cd109e7d06d683b" },
"git-worktree.nvim": { "branch": "master", "commit": "d7f4e2584e81670154f07ca9fa5dd791d9c1b458" },
- "gitsigns.nvim": { "branch": "main", "commit": "d8b52fc95e3d424e5c09b287ee2c293dcb4e26fb" },
+ "gitsigns.nvim": { "branch": "main", "commit": "44adf808ace6cb65a3353bd61fa585a2d8fe0db3" },
"harpoon": { "branch": "master", "commit": "21f4c47c6803d64ddb934a5b314dcb1b8e7365dc" },
"hydra.nvim": { "branch": "master", "commit": "3ced42c0b6a6c85583ff0f221635a7f4c1ab0dd0" },
"icon-picker.nvim": { "branch": "master", "commit": "e6dca182518eeb7a51470c13605a5bce08a816e4" },
@@ -45,7 +45,7 @@
"nvim-autopairs": { "branch": "master", "commit": "ae5b41ce880a6d850055e262d6dfebd362bb276e" },
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
- "nvim-dap": { "branch": "master", "commit": "4377a05b9476587b7b485d6a9d9745768c4e4b37" },
+ "nvim-dap": { "branch": "master", "commit": "31e1ece773e10448dcb616d5144290946a6264b7" },
"nvim-dap-go": { "branch": "main", "commit": "1b508e9db330108d3b5d62a6d9cc01fe6bbdd4e0" },
"nvim-dap-ui": { "branch": "master", "commit": "85b16ac2309d85c88577cd8ee1733ce52be8227e" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "57f1dbd0458dd84a286b27768c142e1567f3ce3b" },
@@ -55,7 +55,7 @@
"nvim-projectconfig": { "branch": "master", "commit": "05fd34831e170db269d1b84597615bcdcdde930e" },
"nvim-spectre": { "branch": "master", "commit": "411cee67fe3f8242023eb8d9edafefbbfb2d06f1" },
"nvim-transparent": { "branch": "main", "commit": "4cf97fc0b1c4a88cf246b2f6facb735a536a558e" },
- "nvim-treesitter": { "branch": "master", "commit": "4a9adef71061a883c81f79862ee1f4bf100a2ddd" },
+ "nvim-treesitter": { "branch": "master", "commit": "691d73287a94e8ed82a383df82aabfe77ab4bcaa" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "bd103502252027434ec42f628d2dbf54821d4ce6" },
"nvim-web-devicons": { "branch": "master", "commit": "cfc8824cc1db316a276b36517f093baccb8e799a" },
"php-code-actions.nvim": { "branch": "main", "commit": "31831cb7c3227ac00ddc7590b31f11148ff4a81c" },
@@ -63,7 +63,7 @@
"playground": { "branch": "master", "commit": "429f3e76cbb1c59fe000b690f7a5bea617b890c0" },
"plenary.nvim": { "branch": "master", "commit": "0dbe561ae023f02c2fb772b879e905055b939ce3" },
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
- "refactoring.nvim": { "branch": "master", "commit": "2cfd6ddb0acece95d9658560ae9740b98ef70dbb" },
+ "refactoring.nvim": { "branch": "master", "commit": "2ec9bc0fb5f3c8c6a0f776f0159dd2a3b1663554" },
"smart-splits.nvim": { "branch": "master", "commit": "7aad6019dee974a01333523a5b8e122b7e7da454" },
"telescope-dap.nvim": { "branch": "master", "commit": "313d2ea12ae59a1ca51b62bf01fc941a983d9c9c" },
"telescope-file-browser.nvim": { "branch": "master", "commit": "ad7b637c72549713b9aaed7c4f9c79c62bcbdff0" },
diff --git a/lua/alpha/test_menu.lua b/lua/alpha/test_menu.lua
index 5b3e5a5..afe3a9e 100644
--- a/lua/alpha/test_menu.lua
+++ b/lua/alpha/test_menu.lua
@@ -2,7 +2,8 @@ local hydra = require "hydra"
local hint = [[
Vim Tests
- _n_: Near test _f_: Current file _s_: Test Suit ^
+ _n_: Near test _h_: Harpoon ^
+ _f_: Current file _s_: Test Suit ^
_l_: Test Last _g_: Visit
_w_: Watch last Test _p_: stop watch
^ ^ _<Esc>_ ^
@@ -37,6 +38,7 @@ hydra {
body = "<leader>t",
heads = {
{ "n", ":TestNearest<CR>" },
+ { "h", ":TestNearest -strategy=harpoon<CR>" },
{ "f", ":TestFile<CR>" },
{ "s", ":TestSuit<CR>" },
{ "l", ":TestLast<CR>" },
diff --git a/lua/alpha/test_strategy.lua b/lua/alpha/test_strategy.lua
new file mode 100644
index 0000000..46aae3c
--- /dev/null
+++ b/lua/alpha/test_strategy.lua
@@ -0,0 +1,65 @@
+local Job = require "plenary.job"
+
+local function splitString(input_string)
+ local parts = {}
+ local in_quote = false
+ local part_start = 1
+
+ for i = 1, #input_string do
+ local char = input_string:sub(i, i)
+
+ if char == "'" then
+ in_quote = not in_quote
+ elseif char == " " and not in_quote then
+ local part = input_string:sub(part_start, i - 1)
+ -- Remove surrounding quotes if they exist
+ if part:sub(1, 1) == "'" and part:sub(-1) == "'" then
+ part = part:sub(2, -2)
+ end
+ table.insert(parts, part)
+ part_start = i + 1
+ end
+ end
+
+ -- Add the last part (and remove surrounding quotes if they exist)
+ local part = input_string:sub(part_start)
+ if part:sub(1, 1) == "'" and part:sub(-1) == "'" then
+ part = part:sub(2, -2)
+ end
+ table.insert(parts, part)
+
+ return parts
+end
+
+local function myStrategy(cmd)
+ --convert cmd from string to table
+ if type(cmd) == "string" then
+ -- do not split quoted parts of the string
+ cmd = splitString(cmd)
+ end
+
+ -- get first element of cmd and remove from the cmd
+ local cmd_name = table.remove(cmd, 1)
+
+ ---@diagnostic disable-next-line: missing-fields
+ Job:new({
+ command = cmd_name,
+ args = cmd,
+ on_exit = function(j, return_val)
+ -- in case of result val 0 show success message
+ if return_val == 0 then
+ vim.notify("Test run successfully", vim.log.levels.INFO, { title = "Test" })
+ return
+ end
+ local result = j:stderr_result()
+ -- join result in a single string
+ result = table.concat(result, "\n")
+ -- escape / characters
+ result = result:gsub("/", "\\/")
+ vim.notify(result, vim.log.levels.ERROR, { title = "Test" })
+ end,
+ }):start()
+end
+
+vim.g["test#custom_strategies"] = { myStrategy = myStrategy }
+vim.g["test#strategy"] = "myStrategy"
diff --git a/lua/plugins/gitsigns.lua b/lua/plugins/gitsigns.lua
index 62d9ab4..251ab40 100644
--- a/lua/plugins/gitsigns.lua
+++ b/lua/plugins/gitsigns.lua
@@ -1,5 +1,6 @@
return {
"lewis6991/gitsigns.nvim",
+ event = "VeryLazy",
opts = {
signcolumn = false,
numhl = true,
diff --git a/lua/plugins/test.lua b/lua/plugins/test.lua
index fd1f9bc..5c8c218 100644
--- a/lua/plugins/test.lua
+++ b/lua/plugins/test.lua
@@ -47,6 +47,8 @@ return {
end
end
+ require "alpha.test_strategy"
+
require "alpha.test_menu"
end,
}