Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

"p" Throws Exception When Valid Node Passed

オープン 初心者向け
#3,362 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
72/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
lua
領域
cli

調査の方向性

まず 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 の本文から書いたものです。

説明

bug
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

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

nvim-tree/nvim-tree.lua のほかの issue

nvim-tree/nvim-tree.lua の issue をすべて見る

似ている issue

Lua の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。