Skip to content

Commit 6b2e8b6

Browse files
DenzellceWolf
authored andcommitted
feat(ctest): move last ran test to the top of the list
1 parent 1eaf9c3 commit 6b2e8b6

3 files changed

Lines changed: 18 additions & 1 deletion

File tree

lua/cmake-tools/config.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ local Config = {
1919
configure_preset = nil,
2020
build_preset = nil,
2121
test_preset = nil,
22+
selected_test = nil,
2223
base_settings = {
2324
env = {},
2425
build_dir = "",

lua/cmake-tools/init.lua

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1264,10 +1264,22 @@ function cmake.run_test(opt, callback)
12641264
table.insert(display, test.name)
12651265
end
12661266

1267-
vim.ui.select(display, { prompt = "select test to run" }, function(_, idx)
1267+
-- Move last selected test to front of picker list
1268+
if config.selected_test then
1269+
for idx = 1, #display do
1270+
if display[idx] == config.selected_test then
1271+
table.insert(items, 1, table.remove(items, idx))
1272+
table.insert(display, 1, table.remove(display, idx))
1273+
break
1274+
end
1275+
end
1276+
end
1277+
1278+
vim.ui.select(display, { prompt = "select test to run" }, function(choice, idx)
12681279
if not idx then
12691280
return
12701281
end
1282+
config.selected_test = choice
12711283
local selected = items[idx]
12721284
local run_opt = vim.tbl_extend("force", opt, {
12731285
preset = preset_name,

lua/cmake-tools/session.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ function session.update(config, old_config)
9090
if old_config.build_preset then
9191
config.build_preset = old_config.build_preset
9292
end
93+
if old_config.selected_test then
94+
config.selected_test = old_config.selected_test
95+
end
9396
if old_config.env_script then
9497
config.env_script = old_config.env_script
9598
end
@@ -126,6 +129,7 @@ function session.save(config)
126129
configure_preset = config.configure_preset,
127130
env_script = config.env_script,
128131
build_preset = config.build_preset,
132+
selected_test = config.selected_test,
129133
base_settings = config.base_settings,
130134
target_settings = config.target_settings,
131135
cwd = config.cwd,

0 commit comments

Comments
 (0)