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が入っています。

試行錯誤メモ

参考資料