From ef124ea808bbd4c49bfe53661666793056a0811b Mon Sep 17 00:00:00 2001 From: sudacode Date: Sun, 16 Feb 2025 13:39:54 -0800 Subject: [PATCH] update codecompanion fidget spinner --- lazy-lock.json | 8 +- lua/plugins/codecompanion.lua | 33 +- lua/plugins/codecompanion/fidget-spinner.lua | 55 +- lua/plugins/nvim-cmp.lua | 504 +++++++++---------- lua/plugins/obsidian.lua | 2 +- 5 files changed, 322 insertions(+), 280 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 13c6a27..90deb98 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -2,7 +2,7 @@ "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, "any-jump.vim": { "branch": "master", "commit": "f95674d9a4251ac02f452d5f1861e4422f4652c7" }, "auto-format.nvim": { "branch": "main", "commit": "1e3c069753d4b0960b351292c1a01af1b122907c" }, - "blink.cmp": { "branch": "main", "commit": "cc2f10e9d8b6420324d4743a4d9a428de427e2cf" }, + "blink.cmp": { "branch": "main", "commit": "93052a80660d741a051d43dc487c8bf7a2530b11" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "catppuccin": { "branch": "main", "commit": "0b2437bcc12b4021614dc41fcea9d0f136d94063" }, "cmp-async-path": { "branch": "main", "commit": "d6d1ffa2075039632a2d71e8fa139818e15ac757" }, @@ -11,7 +11,7 @@ "cmp-nvim-lsp-document-symbol": { "branch": "main", "commit": "f94f7ba948e32cd302caba1c2ca3f7c697fb4fcf" }, "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "codecompanion.nvim": { "branch": "main", "commit": "f1f05fa75dcb6016b2f2af121f1558ebcaf35ef9" }, + "codecompanion.nvim": { "branch": "main", "commit": "0ec5921712a426607be0c3c9f0a54b2c86467d4f" }, "copilot-cmp": { "branch": "master", "commit": "15fc12af3d0109fa76b60b5cffa1373697e261d1" }, "copilot-lualine": { "branch": "main", "commit": "dc4b8ed0f75bc2557b3158c526624bf04ad233ea" }, "copilot.lua": { "branch": "master", "commit": "30321e33b03cb924fdcd6a806a0dc6fa0b0eafb9" }, @@ -19,7 +19,7 @@ "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, "gitsigns.nvim": { "branch": "main", "commit": "8b00147519d6f8353867d5d0b55f587306b0cfb6" }, - "goto-preview": { "branch": "main", "commit": "4972fcd01c568c2ae981f3f48182e7832ed544ec" }, + "goto-preview": { "branch": "main", "commit": "4751e70a6ebce4fb78327b097cb8fdff55f38f3a" }, "image.nvim": { "branch": "master", "commit": "6ffafab2e98b5bda46bf227055aa84b90add8cdc" }, "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, "lazy.nvim": { "branch": "main", "commit": "e5e9bf48211a13d9ee6c1077c88327c49c1ab4a0" }, @@ -39,7 +39,7 @@ "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, "nvim-tree.lua": { "branch": "master", "commit": "d529a99f88e0dff02e0aa275db2f595cd252a2c8" }, - "nvim-treesitter": { "branch": "master", "commit": "38e46a6d7ade5c8718f77b2b9fd98a0f7ab32c1e" }, + "nvim-treesitter": { "branch": "master", "commit": "2cade9e3d105732b794bc37e7cb2dc53b1cf99dc" }, "nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" }, "obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, diff --git a/lua/plugins/codecompanion.lua b/lua/plugins/codecompanion.lua index 259715c..3b432ba 100644 --- a/lua/plugins/codecompanion.lua +++ b/lua/plugins/codecompanion.lua @@ -6,6 +6,26 @@ return { "j-hui/fidget.nvim", }, opts = { + log_level = "DEBUG", + adapters = { + copilot = function() + return require("codecompanion.adapters").extend("copilot", { + schema = { + model = { + default = "o3-mini-2025-01-31", + choices = { + ["o3-mini-2025-01-31"] = { opts = { can_reason = true } }, + ["o1-2024-12-17"] = { opts = { can_reason = true } }, + ["o1-mini-2024-09-12"] = { opts = { can_reason = true } }, + "claude-3.5-sonnet", + "gpt-4o-2024-08-06", + "gemini-2.0-flash-001", + }, + }, + }, + }) + end, + }, strategies = { chat = { adapter = "copilot", @@ -16,13 +36,20 @@ return { }, display = { action_palette = { - provider = "default", - width = 150, - heigth = 85, + provider = "telescope", + width = 75, + heigth = 45, }, chat = { layout = "vertical", border = "single", + intro_message = "Welcome to CodeCompanion ✨! Press ? for options", + show_header_separator = false, -- Show header separators in the chat buffer? Set this to false if you're using an external markdown formatting plugin + separator = "─", -- The separator between the different messages in the chat buffer + show_references = true, -- Show references (from slash commands and variables) in the chat buffer? + show_settings = true, -- Show LLM settings at the top of the chat buffer? + show_token_count = true, -- Show the token count for each response? + start_in_insert_mode = false, -- Open the chat buffer in insert mode? }, diff = { enabled = true, diff --git a/lua/plugins/codecompanion/fidget-spinner.lua b/lua/plugins/codecompanion/fidget-spinner.lua index 05066e2..87ee898 100644 --- a/lua/plugins/codecompanion/fidget-spinner.lua +++ b/lua/plugins/codecompanion/fidget-spinner.lua @@ -1,5 +1,5 @@ -local progress = require("fidget.progress") - +local notify = require("notify") +local spinner_frames = { "⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏" } local M = {} function M:init() @@ -40,31 +40,46 @@ function M:pop_progress_handle(id) end function M:create_progress_handle(request) - return progress.handle.create({ - title = " Requesting assistance (" .. request.data.strategy .. ")", - message = "In progress...", - lsp_client = { - name = M:llm_role_title(request.data.adapter), - }, - }) -end - -function M:llm_role_title(adapter) - local parts = {} - table.insert(parts, adapter.formatted_name) - if adapter.model and adapter.model ~= "" then - table.insert(parts, "(" .. adapter.model .. ")") + local title = " Requesting assistance (" .. request.data.strategy .. ")" + local idx = 1 + local notification_id = notify(spinner_frames[idx] .. " In progress...", "info", { title = title, timeout = false }) + local handle = { notification_id = notification_id, title = title } + local timer = vim.loop.new_timer() + if timer == nil then + return end - return table.concat(parts, " ") + timer:start( + 0, + 100, + vim.schedule_wrap(function() + idx = idx % #spinner_frames + 1 + local new_id = notify( + spinner_frames[idx] .. " In progress...", + "info", + { replace = handle.notification_id, title = title, timeout = false } + ) + handle.notification_id = new_id + end) + ) + handle.timer = timer + handle.finish = function() + if handle.timer then + handle.timer:stop() + handle.timer:close() + handle.timer = nil + end + end + return handle end function M:report_exit_status(handle, request) + local title = handle.title or (" Requesting assistance (" .. request.data.strategy .. ")") if request.data.status == "success" then - handle.message = "Completed" + notify("Completed", "info", { replace = handle.notification_id, title = title }) elseif request.data.status == "error" then - handle.message = " Error" + notify(" Error", "error", { replace = handle.notification_id, title = title }) else - handle.message = "󰜺 Cancelled" + notify("󰜺 Cancelled", "warn", { replace = handle.notification_id, title = title }) end end diff --git a/lua/plugins/nvim-cmp.lua b/lua/plugins/nvim-cmp.lua index 2436215..6036b76 100644 --- a/lua/plugins/nvim-cmp.lua +++ b/lua/plugins/nvim-cmp.lua @@ -1,263 +1,263 @@ return { - "hrsh7th/nvim-cmp", - dependencies = { - "saadparwaiz1/cmp_luasnip", - "hrsh7th/cmp-buffer", - "hrsh7th/cmp-cmdline", - "hrsh7th/cmp-nvim-lsp-signature-help", - "hrsh7th/cmp-nvim-lsp-document-symbol", - -- "hrsh7th/cmp-nvim-lsp", - -- "hrsh7th/cmp-path", - "rafamadriz/friendly-snippets", - "Jezda1337/nvim-html-css", - "https://codeberg.org/FelipeLema/cmp-async-path", - }, - config = function() - -- Setup nvim-cmp. - local cmp = require("cmp") - local lspkind = require("lspkind") - -- luasnip setup - local luasnip = require("luasnip") + "hrsh7th/nvim-cmp", + dependencies = { + "saadparwaiz1/cmp_luasnip", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-cmdline", + "hrsh7th/cmp-nvim-lsp-signature-help", + "hrsh7th/cmp-nvim-lsp-document-symbol", + -- "hrsh7th/cmp-nvim-lsp", + -- "hrsh7th/cmp-path", + "rafamadriz/friendly-snippets", + "Jezda1337/nvim-html-css", + "https://codeberg.org/FelipeLema/cmp-async-path", + }, + config = function() + -- Setup nvim-cmp. + local cmp = require("cmp") + local lspkind = require("lspkind") + -- luasnip setup + local luasnip = require("luasnip") - local cmp_autopairs = require("nvim-autopairs.completion.cmp") + local cmp_autopairs = require("nvim-autopairs.completion.cmp") - local has_words_before = function() - if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then - return false - end - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_text(0, line - 1, 0, line - 1, col, {})[1]:match("^%s*$") == nil - end - require("luasnip.loaders.from_vscode").lazy_load() + local has_words_before = function() + if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then + return false + end + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_text(0, line - 1, 0, line - 1, col, {})[1]:match("^%s*$") == nil + end + require("luasnip.loaders.from_vscode").lazy_load() - lspkind.init({ symbol_map = { Copilot = "" } }) + lspkind.init({ symbol_map = { Copilot = "" } }) - cmp.setup.cmdline("/", { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = "nvim_lsp_document_symbol" }, - }, { - { name = "buffer" }, - }), - }) + cmp.setup.cmdline("/", { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = "nvim_lsp_document_symbol" }, + }, { + { name = "buffer" }, + }), + }) - cmp.setup.cmdline(":", { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ { name = "path" } }, { - { name = "cmdline", option = { ignore_cmds = { "Man", "!" } } }, - }), - matching = { disallow_symbol_nonprefix_matching = false }, - }) + cmp.setup.cmdline(":", { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ { name = "path" } }, { + { name = "cmdline", option = { ignore_cmds = { "Man", "!" } } }, + }), + matching = { disallow_symbol_nonprefix_matching = false }, + }) - cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) + cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) - require('cmp').setup({ - snippet = { - expand = function(args) - -- vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. - luasnip.lsp_expand(args.body) -- For `luasnip` users. - -- require('snippy').expand_snippet(args.body) -- For `snippy` users. - -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. - end, - }, - mapping = { - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.abort(), - [""] = cmp.mapping.confirm({ - behavior = cmp.ConfirmBehavior.Replace, - select = false, - }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() and has_words_before() then - cmp.select_next_item({ behavior = cmp.SelectBehavior.Select }) - elseif luasnip.locally_jumpable(1) then - luasnip.jump(1) - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.locally_jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { "i", "s" }), - }, - window = { - completion = { - -- winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None", - col_offset = 0, - side_padding = 0, - border = "rounded", - borderchars = { - "─", - "│", - "─", - "│", - "╭", - "╮", - "╯", - "╰", - }, - }, - documentation = { - border = "rounded", - borderchars = { - "─", - "│", - "─", - "│", - "╭", - "╮", - "╯", - "╰", - }, - -- padding = 15, - }, - }, - formatting = { - -- options: 'text', 'text_symbol', 'symbol_text', 'symbol' - -- mode = 'symbol_text', - fields = { "kind", "abbr", "menu" }, - expandable_indicator = true, - format = function(entry, vim_item) - local kind = require("lspkind").cmp_format({ - mode = "symbol_text", - -- mode = "symbol", - maxwidth = 75, - symbol_map = { - Copilot = " ", - Text = " ", - Method = " ", - Function = " ", - Constructor = " ", - Field = " ", - Variable = " ", - Class = " ", - Interface = " ", - Module = " ", - Property = " ", - Unit = " ", - Value = " ", - Enum = " ", - Keyword = " ", - Snippet = " ", - Color = " ", - File = " ", - Reference = " ", - Folder = " ", - EnumMember = " ", - Constant = " ", - Struct = " ", - Event = " ", - Operator = " ", - TypeParameter = " ", - }, - })(entry, vim_item) - local strings = vim.split(kind.kind, "%s", { trimempty = true }) - kind.kind = " " .. strings[1] .. " " - kind.menu = " (" .. strings[2] .. ")" + require("cmp").setup({ + snippet = { + expand = function(args) + -- vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. + luasnip.lsp_expand(args.body) -- For `luasnip` users. + -- require('snippy').expand_snippet(args.body) -- For `snippy` users. + -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. + end, + }, + mapping = { + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Replace, + select = false, + }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() and has_words_before() then + cmp.select_next_item({ behavior = cmp.SelectBehavior.Select }) + elseif luasnip.locally_jumpable(1) then + luasnip.jump(1) + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.locally_jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }, + window = { + completion = { + -- winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None", + col_offset = 0, + side_padding = 0, + border = "rounded", + borderchars = { + "─", + "│", + "─", + "│", + "╭", + "╮", + "╯", + "╰", + }, + }, + documentation = { + border = "rounded", + borderchars = { + "─", + "│", + "─", + "│", + "╭", + "╮", + "╯", + "╰", + }, + -- padding = 15, + }, + }, + formatting = { + -- options: 'text', 'text_symbol', 'symbol_text', 'symbol' + -- mode = 'symbol_text', + fields = { "kind", "abbr", "menu" }, + expandable_indicator = true, + format = function(entry, vim_item) + local kind = require("lspkind").cmp_format({ + mode = "symbol_text", + -- mode = "symbol", + maxwidth = 75, + symbol_map = { + Copilot = " ", + Text = " ", + Method = " ", + Function = " ", + Constructor = " ", + Field = " ", + Variable = " ", + Class = " ", + Interface = " ", + Module = " ", + Property = " ", + Unit = " ", + Value = " ", + Enum = " ", + Keyword = " ", + Snippet = " ", + Color = " ", + File = " ", + Reference = " ", + Folder = " ", + EnumMember = " ", + Constant = " ", + Struct = " ", + Event = " ", + Operator = " ", + TypeParameter = " ", + }, + })(entry, vim_item) + local strings = vim.split(kind.kind, "%s", { trimempty = true }) + kind.kind = " " .. strings[1] .. " " + kind.menu = " (" .. strings[2] .. ")" - return kind - end, - }, - sources = cmp.config.sources({ - { name = "nvim_lsp_signature_help", group_index = 0 }, - { name = "lazydev", group_index = 0 }, - { name = "nvim_lsp", group_index = 1 }, - { name = "copilot", group_index = 1 }, - { name = "codecompanion", group_index = 1 }, - { name = "async_path", group_index = 2 }, - -- { name = "path", group_index = 2 }, - -- { name = "cmdline", option = { ignore_cmds = { "Man", "!" } } }, - { name = "nvim_lsp_document_symbol", group_index = 2 }, - { name = "luasnip", group_index = 2 }, -- For luasnip users. - { name = "render-markdown", group_index = 2 }, - { - name = "html-css", - group_indx = 2, - option = { - enable_on = { "html", "jsx", "tsx", "typescript", "typescriptreact" }, -- html is enabled by default - notify = false, - documentation = { - auto_show = true, -- show documentation on select - }, - -- add any external scss like one below - style_sheets = { - "https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css", - "https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css", - }, - }, - }, - { - name = "buffer", - option = { - get_bufnrs = function() - local bufs = {} - for _, win in ipairs(vim.api.nvim_list_wins()) do - bufs[vim.api.nvim_win_get_buf(win)] = true - end - return vim.tbl_keys(bufs) - end, - }, - }, - -- { name = 'ultisnips' }, -- For ultisnips users. - -- { name = 'snippy' }, -- For snippy users. - }, { { name = "buffer" } }), - sorting = { - priority_weight = 2, - comparators = { - require("copilot_cmp.comparators").prioritize, - cmp.config.compare.offset, - cmp.config.compare.exact, - require("copilot_cmp.comparators").score, - require("copilot_cmp.comparators").recently_used, - cmp.config.compare.locality, - require("copilot_cmp.comparators").kind, - require("copilot_cmp.comparators").sort_text, - require("copilot_cmp.comparators").length, - require("copilot_cmp.comparators").order, + return kind + end, + }, + sources = cmp.config.sources({ + { name = "nvim_lsp_signature_help", group_index = 0 }, + { name = "lazydev", group_index = 0 }, + { name = "nvim_lsp", group_index = 1 }, + { name = "copilot", group_index = 1 }, + { name = "codecompanion", group_index = 2 }, + { name = "async_path", group_index = 2 }, + -- { name = "path", group_index = 2 }, + -- { name = "cmdline", option = { ignore_cmds = { "Man", "!" } } }, + { name = "nvim_lsp_document_symbol", group_index = 2 }, + { name = "luasnip", group_index = 2 }, -- For luasnip users. + { name = "render-markdown", group_index = 2 }, + { + name = "html-css", + group_indx = 2, + option = { + enable_on = { "html", "jsx", "tsx", "typescript", "typescriptreact" }, -- html is enabled by default + notify = false, + documentation = { + auto_show = true, -- show documentation on select + }, + -- add any external scss like one below + style_sheets = { + "https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css", + "https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css", + }, + }, + }, + { + name = "buffer", + option = { + get_bufnrs = function() + local bufs = {} + for _, win in ipairs(vim.api.nvim_list_wins()) do + bufs[vim.api.nvim_win_get_buf(win)] = true + end + return vim.tbl_keys(bufs) + end, + }, + }, + -- { name = 'ultisnips' }, -- For ultisnips users. + -- { name = 'snippy' }, -- For snippy users. + }, { { name = "buffer" } }), + sorting = { + priority_weight = 2, + comparators = { + require("copilot_cmp.comparators").prioritize, + cmp.config.compare.offset, + cmp.config.compare.exact, + require("copilot_cmp.comparators").score, + require("copilot_cmp.comparators").recently_used, + cmp.config.compare.locality, + require("copilot_cmp.comparators").kind, + require("copilot_cmp.comparators").sort_text, + require("copilot_cmp.comparators").length, + require("copilot_cmp.comparators").order, - -- Below is the default comparitor list and order for nvim-cmp - cmp.config.compare.offset, - -- cmp.config.compare.scopes, --this is commented in nvim-cmp too - cmp.config.compare.exact, - cmp.config.compare.score, - cmp.config.compare.recently_used, - cmp.config.compare.locality, - cmp.config.compare.kind, - cmp.config.compare.sort_text, - cmp.config.compare.length, - cmp.config.compare.order, - }, - }, - }) - end + -- Below is the default comparitor list and order for nvim-cmp + cmp.config.compare.offset, + -- cmp.config.compare.scopes, --this is commented in nvim-cmp too + cmp.config.compare.exact, + cmp.config.compare.score, + cmp.config.compare.recently_used, + cmp.config.compare.locality, + cmp.config.compare.kind, + cmp.config.compare.sort_text, + cmp.config.compare.length, + cmp.config.compare.order, + }, + }, + }) + end, } diff --git a/lua/plugins/obsidian.lua b/lua/plugins/obsidian.lua index 748cf54..9e653f5 100644 --- a/lua/plugins/obsidian.lua +++ b/lua/plugins/obsidian.lua @@ -93,7 +93,7 @@ return { -- Optional, by default when you use `:ObsidianFollowLink` on a link to an image -- file it will be ignored but you can customize this behavior here. ---@param img string - follow_img_func = function(img) + follow_img_func = function(url) -- vim.fn.jobstart({ "qlmanage", "-p", img }) -- Mac OS quick look preview vim.fn.jobstart({ "xdg-open", url }) -- linux -- vim.cmd(':silent exec "!start ' .. url .. '"') -- Windows