nvim-tree / nvim-tree/nvim-tree.lua

Move Renderer's Builder To A Member, Instantiated Once

Open
#2,985 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

performance
Dominant language
Lua
Stars
8.6k
Forks
639
Avg merge
1d 14h
Merged PRs (30d)
2

Description

Builder is currently constructed every renderer:draw() which is expensive.

Change it to a member of Renderer

It currently appears to retain state, which will need to be cleared.

Rename it to something more meaningful: LineRenderer, LineBuilder or fold it into Renderer

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the Renderer and Builder definitions and the renderer:draw() entry point. Trace which Builder state persists between draws and identify how it can be cleared when the instance is reused. Done means Builder is no longer constructed on every draw, its state is reset safely, and it has a more meaningful name or is folded into Renderer.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
performance
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.