From fb057c44f03dfae70be28625dddb0e2dcfa73597 Mon Sep 17 00:00:00 2001 From: gwbeip Date: Sat, 30 May 2026 15:40:54 +0800 Subject: [PATCH] fix(profile): guard plugin setup when modules are unavailable --- lua/profiles/native.lua | 47 +++++++++++++++++++++++++++++++---------- lua/profiles/vscode.lua | 31 ++++++++++++++++++++------- 2 files changed, 59 insertions(+), 19 deletions(-) diff --git a/lua/profiles/native.lua b/lua/profiles/native.lua index 762e044..b6c9ea7 100644 --- a/lua/profiles/native.lua +++ b/lua/profiles/native.lua @@ -1,5 +1,14 @@ local M = {} +local function safe_setup(label, fn) + local ok, err = pcall(fn) + if not ok then + vim.schedule(function() + vim.notify("Skipping " .. label .. ": " .. tostring(err), vim.log.levels.WARN) + end) + end +end + local function setup_flash(keys) require("flash").setup({ modes = { @@ -65,17 +74,33 @@ function M.setup() return end - setup_flash({ - jump_key = "s", - treesitter_key = "S", - }) - require("nvim-surround").setup({}) - require("plugins.native.git").setup() - require("plugins.native.tree").setup() - require("plugins.native.statusline").setup() - require("plugins.native.treesitter").setup() - require("plugins.native.which_key").setup() - require("plugins.native.window").setup() + safe_setup("flash", function() + setup_flash({ + jump_key = "s", + treesitter_key = "S", + }) + end) + safe_setup("nvim-surround", function() + require("nvim-surround").setup({}) + end) + safe_setup("plugins.native.git", function() + require("plugins.native.git").setup() + end) + safe_setup("plugins.native.tree", function() + require("plugins.native.tree").setup() + end) + safe_setup("plugins.native.statusline", function() + require("plugins.native.statusline").setup() + end) + safe_setup("plugins.native.treesitter", function() + require("plugins.native.treesitter").setup() + end) + safe_setup("plugins.native.which_key", function() + require("plugins.native.which_key").setup() + end) + safe_setup("plugins.native.window", function() + require("plugins.native.window").setup() + end) end return M diff --git a/lua/profiles/vscode.lua b/lua/profiles/vscode.lua index 5ea1bcb..6a35466 100644 --- a/lua/profiles/vscode.lua +++ b/lua/profiles/vscode.lua @@ -1,5 +1,14 @@ local M = {} +local function safe_setup(label, fn) + local ok, err = pcall(fn) + if not ok then + vim.schedule(function() + vim.notify("Skipping " .. label .. ": " .. tostring(err), vim.log.levels.WARN) + end) + end +end + local function setup_flash(keys) require("flash").setup({ modes = { @@ -40,14 +49,20 @@ function M.setup() local vscode = require("vscode") vim.notify = vscode.notify - setup_flash({ - toggle_search_key = "/", - treesitter_key = "ct", - search = true, - char = false, - }) - require("nvim-surround").setup({}) - require("plugins.vscode.actions").setup(vscode) + safe_setup("flash", function() + setup_flash({ + toggle_search_key = "/", + treesitter_key = "ct", + search = true, + char = false, + }) + end) + safe_setup("nvim-surround", function() + require("nvim-surround").setup({}) + end) + safe_setup("plugins.vscode.actions", function() + require("plugins.vscode.actions").setup(vscode) + end) end return M