obsidian.nvim icon indicating copy to clipboard operation
obsidian.nvim copied to clipboard

"Attempt to concatenate local 'note_path' (a table value)" upon "ObsidianOpen <char>"

Open mdietrich16 opened this issue 1 year ago ‱ 2 comments

🐛 Describe the bug

I get the following error when trying to get cmdline completion for ObsidianOpen when inside my Vault or not. I am using cmp and have noice (with cmdline UI) installed, though I don't think that interferes here. With Noice disabled, I get the same error.

 îȘ‡  Error  11:50:43 msg_show.lua_error   ObsidianOpen N Error executing vim.schedule lua callback: Vim:E5108: Error executing Lua function: ...kages/start/obsidian.nvim/lua/obsidian/commands/init.lua:117: attempt to concatenate local 'note_path' (a table value)
stack traceback:
	...kages/start/obsidian.nvim/lua/obsidian/commands/init.lua:117: in function <...kages/start/obsidian.nvim/lua/obsidian/commands/init.lua:85>
	[C]: in function 'getcompletion'
	...eovimPackages/start/cmp-cmdline/lua/cmp_cmdline/init.lua:136: in function 'exec'
	...eovimPackages/start/cmp-cmdline/lua/cmp_cmdline/init.lua:202: in function 'complete'
	.../pack/myNeovimPackages/start/nvim-cmp/lua/cmp/source.lua:326: in function 'complete'
	...ir/pack/myNeovimPackages/start/nvim-cmp/lua/cmp/core.lua:299: in function 'complete'
	...ir/pack/myNeovimPackages/start/nvim-cmp/lua/cmp/core.lua:169: in function 'autoindent'
	...ir/pack/myNeovimPackages/start/nvim-cmp/lua/cmp/core.lua:161: in function 'on_change'
	...ir/pack/myNeovimPackages/start/nvim-cmp/lua/cmp/init.lua:346: in function 'callback'
	.../myNeovimPackages/start/nvim-cmp/lua/cmp/utils/async.lua:165: in function <.../myNeovimPackages/start/nvim-cmp/lua/cmp/utils/async.lua:163>
stack traceback:
	[C]: in function 'getcompletion'
	...eovimPackages/start/cmp-cmdline/lua/cmp_cmdline/init.lua:136: in function 'exec'
	...eovimPackages/start/cmp-cmdline/lua/cmp_cmdline/init.lua:202: in function 'complete'
	.../pack/myNeovimPackages/start/nvim-cmp/lua/cmp/source.lua:326: in function 'complete'
	...ir/pack/myNeovimPackages/start/nvim-cmp/lua/cmp/core.lua:299: in function 'complete'
	...ir/pack/myNeovimPackages/start/nvim-cmp/lua/cmp/core.lua:169: in function 'autoindent'
	...ir/pack/myNeovimPackages/start/nvim-cmp/lua/cmp/core.lua:161: in function 'on_change'
	...ir/pack/myNeovimPackages/start/nvim-cmp/lua/cmp/init.lua:346: in function 'callback'
	.../myNeovimPackages/start/nvim-cmp/lua/cmp/utils/async.lua:165: in function <.../myNeovimPackages/start/nvim-cmp/lua/cmp/utils/async.lua:163>

Config

require("obsidian").setup({
  workspaces = {
    {
      name = "notes",
      path = "~/Documents/Vaults/notes",
    },
  },
  completion = {
    nvim_cmp = true,
  },
})

and

-- ftplugin/markdown.lua
vim.opt_local.conceallevel = 2

Environment

NVIM v0.10.2
Build type: Release
LuaJIT 2.1.1713773202
Run "nvim -V1 -v" for more info

Obsidian.nvim v3.9.0 (unknown commit)
Status:
  ‱ buffer directory: nil
  ‱ working directory: /home/max/Projects/nvim
Workspaces:
  ✓ active workspace: Workspace(name='notes', path='/home/max/Documents/Vaults/notes', root='/home/max/Documents/Vaults/notes')
Dependencies:
  ✓ plenary.nvim: unknown
  ✓ nvim-cmp: unknown
  ✓ telescope.nvim: unknown
Integrations:
  ✓ picker: TelescopePicker()
  ✓ completion: enabled (nvim-cmp) ✗ refs, ✗ tags, ✗ new
    all sources:
      ‱ nvim_lsp
      ‱ nvim_lsp_signature_help
      ‱ luasnip_choice
      ‱ luasnip
      ‱ async_path
Tools:
  ✓ rg: ripgrep 14.1.1
Environment:
  ‱ operating system: Linux
Config:
  ‱ notes_subdir: nil

The commit is 14e0427bef6c55da0d63f9a313fd9941be3a2479 (from nixpkgs-unstable) and I can assure you that all dependencies are installed.

mdietrich16 avatar Oct 17 '24 10:10 mdietrich16

Same behavior on ObsidianLink completion seems cmp-cmdline or nvim-cmp updates broke something ObsidianNew completion works fine

major-sam avatar Jan 15 '25 11:01 major-sam

ensuring note_path is a string and not a table solved this problem for me, about line 117 of lua/obsidian/commands/init.lua

    local note_path = assert(tostring(client:vault_relative_path(note.path, { strict = true })))

jetsgit avatar Apr 23 '25 07:04 jetsgit