"p" Throws Exception When Valid Node Passed
还没有人认领这个 Issue。
评估
调研方向
从 lua/nvim-tree/actions/fs/clipboard.lua 的 do_paste(大约第 363 行)开始,这里有一个名为 as 的方法在一个 nil 值上被调用,然后追踪通过 api.fs.paste(lua/nvim-tree/api/impl.lua:165)传递的节点是如何到达该调用的。检查 clipboard.lua 如何区分复制状态与剪切状态,以及它在那里期望节点的哪个字段;issue 正文中的 clean-room 复现是确认修复的最快方式。当通过 api.fs.paste 粘贴有效节点不再抛出 E5108 时即为完成。
由索引模型根据 Issue 内容生成。
描述
Description
When calling paste with a valid {node}
5108: Lua: ...nvim-tree.lua.dev/lua/nvim-tree/actions/fs/clipboard.lua:363: attempt to call method 'as' (a nil value)
stack traceback:
...nvim-tree.lua.dev/lua/nvim-tree/actions/fs/clipboard.lua:363: in function 'do_paste'
...nvim-tree.lua.dev/lua/nvim-tree/actions/fs/clipboard.lua:451: in function 'paste'
...acker/start/nvim-tree.lua.dev/lua/nvim-tree/api/impl.lua:165: in function 'paste'
/tmp/nd/config/nvim/nd.lua:74: in function </tmp/nd/config/nvim/nd.lua:70>
Neovim version
NVIM v0.12.5
Build type: RelWithDebInfo
LuaJIT 2.1.1788856981
Operating system and version
Linux 7.2.8-arch1-2
Windows variant
No response
nvim-tree version
478c69c
Clean room replication
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
vim.cmd([[set runtimepath=$VIMRUNTIME]])
vim.cmd([[set packpath=/tmp/nvt-min/site]])
local package_root = "/tmp/nvt-min/site/pack"
local install_path = package_root .. "/packer/start/packer.nvim"
local function load_plugins()
require("packer").startup({
{
"wbthomason/packer.nvim",
"nvim-tree/nvim-tree.lua",
"nvim-tree/nvim-web-devicons",
-- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
},
config = {
package_root = package_root,
compile_path = install_path .. "/plugin/packer_compiled.lua",
display = { non_interactive = true },
},
})
end
if vim.fn.isdirectory(install_path) == 0 then
print("Installing nvim-tree and dependencies.")
vim.fn.system({ "git", "clone", "--depth=1", "https://github.com/wbthomason/packer.nvim", install_path })
end
load_plugins()
require("packer").sync()
vim.cmd([[autocmd User PackerComplete ++once echo "Ready!" | lua setup()]])
vim.opt.termguicolors = true
vim.opt.cursorline = true
-- MODIFY NVIM-TREE SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
_G.setup = function()
local function on_attach(bufnr)
local function opts(desc)
return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
local api = require("nvim-tree.api")
api.map.on_attach.default(bufnr)
vim.keymap.set("n", "p", function()
local explorer = api.tree.get_nodes()
local node = explorer.nodes[2]
-- print(vim.inspect(node, { depth = 1 }))
api.fs.paste(node)
end, opts("Paste"))
end
require("nvim-tree").setup({
on_attach = on_attach,
})
end
Steps to reproduce
:NvimTreeOpen
c
p
Expected behavior
copied node should be pasted into the node below
Actual behavior
E5108: Lua: ...art/nvim-tree.lua/lua/nvim-tree/actions/fs/clipboard.lua:363: attempt to call method 'as' (a nil value)
stack traceback:
...art/nvim-tree.lua/lua/nvim-tree/actions/fs/clipboard.lua:363: in function 'do_paste'
...art/nvim-tree.lua/lua/nvim-tree/actions/fs/clipboard.lua:451: in function 'paste'
...ck/packer/start/nvim-tree.lua/lua/nvim-tree/api/impl.lua:165: in function 'paste'
...neovim-functionaltest/.github/ISSUE_TEMPLATE/nvt-min.lua:48: in function <...neovim-functionaltest/.github/ISSUE_TEMPLATE/nvt-min.lua:44>
- 主要语言
- Lua
- 星标
- 8.7k
- 派生
- 639
- 平均合并
- 8 小时 25 分钟
- 30 天内合并 PR
- 3
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
nvim-tree/nvim-tree.lua 的其他 Issue
-
documentation
难度 2/5 1-3 小时 新手友好度 72/100
nvim-tree/nvim-tree.lua#3361 ·
-
Use vim.Option getters and setters instead of directly setting可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 75/100
nvim-tree/nvim-tree.lua#3357 · 1 条评论 ·
-
documentation PR please
难度 1/5 1 小时以内 新手友好度 65/100
nvim-tree/nvim-tree.lua#3179 · 6 条评论 ·
-
upstream: neovim
难度 4/5 3-5 天 新手友好度 38/100
nvim-tree/nvim-tree.lua#3344 · 1 条评论 ·
-
Experimental Features: `session_restore_nvim`可能重新可做 @igorlfs 于 90 天前认领,目前没有进行中的 PR。 未关闭
nvim-tree/nvim-tree.lua#3343 · 3 条评论 · 已指派 1 人 ·
查看 nvim-tree/nvim-tree.lua 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
brndnmtthws/conky#2486 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 75/100
folke/snacks.nvim#2970 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
-
Lid close does not lock the session on Apple Silicon (lid-close bind skips omarchy-system-lid-close)未关闭
难度 1/5 1-3 小时 新手友好度 90/100
omacom/omarchy-mac#701 · 1 条评论 ·
维护者通常 1 天内回复
-
import-issue
难度 2/5 1-3 小时 新手友好度 64/100
public-transport/transitous#2553 ·
维护者通常 1 天内回复