blink.nvimでobsidian.nvimの補完を利用する方法
投稿日: 2025-02-12 09:08
blink.nvimでobsidian.nvimの補完を利用する方法
obsidian.nvimではリンク先ファイルの補完にnvim-cmpの補完ソースを提供していて、それ以外の保管ソースは用意されていません。
ただ、blink.nvimでは、saghen/blink.compatを利用する事でnvim-cmp補完ソースを使えるので、obsidian.nvimの補完が使えます。
どう設定すれば良いかわからず、しばらく試行錯誤したのでメモとして置いておきます。
設定例
最終的に下記設定にすれば、いい感じになります。
return {  {    'saghen/blink.cmp',    version = false,    dependencies = {      { "rafamadriz/friendly-snippets" },      { "saghen/blink.compat", lazy = true, version = false },      { "https://github.com/epwalsh/obsidian.nvim" },    },
    ---@module 'blink.cmp'    ---@type blink.cmp.Config    opts = {      -- 'default' for mappings similar to built-in completion      -- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate)      -- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept      -- See the full "keymap" documentation for information on defining your own keymap.      keymap = { preset = 'super-tab' },      completion = { list = { selection = { preselect = false, auto_insert = false } } },      appearance = {        -- Sets the fallback highlight groups to nvim-cmp's highlight groups        -- Useful for when your theme doesn't support blink.cmp        -- Will be removed in a future release        use_nvim_cmp_as_default = true,        -- Set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font'        -- Adjusts spacing to ensure icons are aligned        nerd_font_variant = 'mono'      },
      -- Default list of enabled providers defined so that you can extend it      -- elsewhere in your config, without redefining it, due to `opts_extend`      sources = {        default = { "obsidian", "obsidian_new", "obsidian_tags", "lsp", "path", "snippets", "buffer" },        providers = {          obsidian = {            name = "obsidian",            module = "blink.compat.source",          },          obsidian_new = {            name = "obsidian_new",            module = "blink.compat.source",          },          obsidian_tags = {            name = "obsidian_tags",            module = "blink.compat.source",          },        },      },    },    opts_extend = { "sources.default" }  }}saghen/blink.compat をdependenciesに入れて、sourcesのprovidersにobsidianのソースを定義、それをsources.defaultに入れてあげればOKでした。
obsidian.nvimのこのIssueにQ&Aと関連する修正commitが入っています。