"p" Throws Exception When Valid Node Passed
まだ誰も着手していません。
評価
調査の方向性
まず lua/nvim-tree/actions/fs/clipboard.lua の do_paste(363 行付近)から始め、ここで nil 値に対して as というメソッドが呼び出されている点を確認します。次に、api.fs.paste(lua/nvim-tree/api/impl.lua:165)を通じて渡されたノードがその呼び出しまでにどう到達するかを追跡します。clipboard.lua がコピー状態とカット状態をどう区別しているか、そしてそこではノードのどのフィールドを想定しているかを確認してください。issue 本文のクリーンルーム再現が修正を確認する最速の方法です。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分
- マージ済み PR(30日)
- 3
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- 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対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
nvim-tree/nvim-tree.lua#3357 · コメント 1 件 ·
-
Migrate To vim.packオープン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 が 91 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
nvim-tree/nvim-tree.lua#3343 · コメント 3 件 · 担当者 1 名 ·
nvim-tree/nvim-tree.lua の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
[Operation Enhancement]: .editorconfigと.gitattributesでdictionaryとLuaファイルの編集・改行設定を統一する対応中かも @5kdn が今日担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 80/100
5kdn/DCS-Translation-Japanese#163 ·
メンテナーはふだん 1 日以内に返信
-
[Bug Report]オープンarea/Cubelet area/CubeNet bug needs-triage needs:compliance
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
TencentCloud/CubeSandbox#1917 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100