Skip to content

atusy/treemonkey.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 

Repository files navigation

treemonkey.nvim

Yet another label-based node selection plugin.

There are some cases that start or end of the node position overlaps with the other nodes. If labels are overlayed, there is a difficulty on selecting the intended one (e.g., nvim-treehopper or leap-ast.nvim). If labels are inserted inline, your eyes may fail to track the node (e.g., flash.nvim).

Instead, this plugin does...

  1. Label start of nodes with lower case letters and end of nodes with the corresponding upper case letters.
  2. Ask user to input a label.
  3. If there are any labels hidden by the chosen label, then ask again to choose the label from the subset of choises.
  4. Select the node of the choice.

It's like monkey hanging around the Abstract Syntax Tree. Isn't it?

2023-12-29 12-39-32 mkv

Example

vim.keymap.set({"x", "o"}, "m", function()
  require("treemonkey").select({
    ignore_injections = false,
    highlight = { backdrop = "Comment" }
  })
end)

With lazy.nvim, ...

{
  "https://github.com/atusy/treemonkey.nvim",
  init = function()
    vim.keymap.set({"x", "o"}, "m", function()
      require("treemonkey").select({ ignore_injections = false })
    end)
  end
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages