Skip to content

Commit 437f2ff

Browse files
committed
fix: lazily require modules
Improves setup time with a couple of milliseconds :)
1 parent 9bf418a commit 437f2ff

File tree

1 file changed

+26
-30
lines changed

1 file changed

+26
-30
lines changed

lua/crates/command.lua

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,37 @@
1-
local actions = require("crates.actions")
2-
local core = require("crates.core")
3-
local popup = require("crates.popup")
4-
51
local M = {}
62

73
---@type {[1]: string, [2]: function}[]
84
local sub_commands = {
9-
{ "hide", core.hide },
10-
{ "show", core.show },
11-
{ "toggle", core.toggle },
12-
{ "update", core.update },
13-
{ "reload", core.reload },
5+
{ "hide", function() return require("crates.core").hide() end },
6+
{ "show", function() return require("crates.core").show() end },
7+
{ "toggle", function() return require("crates.core").toggle() end },
8+
{ "update", function() return require("crates.core").update() end },
9+
{ "reload", function() return require("crates.core").reload() end },
1410

15-
{ "upgrade_crate", actions.upgrade_crate },
16-
{ "upgrade_crates", actions.upgrade_crates },
17-
{ "upgrade_all_crates", actions.upgrade_all_crates },
18-
{ "update_crate", actions.update_crate },
19-
{ "update_crates", actions.update_crates },
20-
{ "update_all_crates", actions.update_all_crates },
21-
{ "use_git_source", actions.use_git_source },
11+
{ "upgrade_crate", function() return require("crates.actions").upgrade_crate() end },
12+
{ "upgrade_crates", function() return require("crates.actions").upgrade_crates() end },
13+
{ "upgrade_all_crates", function() return require("crates.actions").upgrade_all_crates() end },
14+
{ "update_crate", function() return require("crates.actions").update_crate() end },
15+
{ "update_crates", function() return require("crates.actions").update_crates() end },
16+
{ "update_all_crates", function() return require("crates.actions").update_all_crates() end },
17+
{ "use_git_source", function() return require("crates.actions").use_git_source() end },
2218

23-
{ "expand_plain_crate_to_inline_table", actions.expand_plain_crate_to_inline_table },
24-
{ "extract_crate_into_table", actions.extract_crate_into_table },
19+
{ "expand_plain_crate_to_inline_table", function() return require("crates.actions").expand_plain_crate_to_inline_table() end },
20+
{ "extract_crate_into_table", function() return require("crates.actions").extract_crate_into_table() end },
2521

26-
{ "open_homepage", actions.open_homepage },
27-
{ "open_repository", actions.open_repository },
28-
{ "open_documentation", actions.open_documentation },
29-
{ "open_cratesio", actions.open_crates_io },
22+
{ "open_homepage", function() return require("crates.actions").open_homepage() end },
23+
{ "open_repository", function() return require("crates.actions").open_repository() end },
24+
{ "open_documentation", function() return require("crates.actions").open_documentation() end },
25+
{ "open_cratesio", function() return require("crates.actions").open_crates_io() end },
3026

31-
{ "popup_available", popup.available },
32-
{ "show_popup", popup.show },
33-
{ "show_crate_popup", popup.show_crate },
34-
{ "show_versions_popup", popup.show_versions },
35-
{ "show_features_popup", popup.show_features },
36-
{ "show_dependencies_popup", popup.show_dependencies },
37-
{ "focus_popup", popup.focus },
38-
{ "hide_popup", popup.hide },
27+
{ "popup_available", function() return require("crates.popup").available() end },
28+
{ "show_popup", function() return require("crates.popup").show() end },
29+
{ "show_crate_popup", function() return require("crates.popup").show_crate() end },
30+
{ "show_versions_popup", function() return require("crates.popup").show_versions() end },
31+
{ "show_features_popup", function() return require("crates.popup").show_features() end },
32+
{ "show_dependencies_popup", function() return require("crates.popup").show_dependencies() end },
33+
{ "focus_popup", function() return require("crates.popup").focus() end },
34+
{ "hide_popup", function() return require("crates.popup").hide() end },
3935
}
4036

4137
---@param arglead string

0 commit comments

Comments
 (0)