Como extrair o melhor do nvim-tree no NeoVim
Hoje a minha dica são alguns detalhes que vão deixar o uso do nvim-tree simplesmente maravilhoso.
O que é nvim tree?
Ele é um plugin para NeoVim, que fornece várias customizações e melhora muito a experiência de navegação em arquivos no editor.
Instalação
Mais a frente iremos configurar alguns ícones, para que eles funcionem corretamente em seu terminal, você precisa estar usando uma NerdFont. Esse é o motivo de os ícones de posts como esse não serem rederizados no TabNews, GitHub e outros sites. Eles necessitam de uma fonte específica.
Com vim-plug:
Plug 'kyazdani42/nvim-web-devicons' " optional, for file icons
Plug 'kyazdani42/nvim-tree.lua'
Com packer:
use {
'kyazdani42/nvim-tree.lua',
requires = {
'kyazdani42/nvim-web-devicons', -- optional, for file icons
},
tag = 'nightly' -- optional, updated every week.
}
Configurações úteis
Quando você importar o plugin com usando require'nvim-tree'.setup{}
, considere usar as seguintes configurações:
Tamanho adaptável
Ajusta o seu tamanho automaticamente com base no tamanho do nome dos arquivos do projeto.
view = {
adaptive_size = true,
}
Marcas de identação
renderer = {
indent_markers = {
enable = true,
icons = {
corner = "└ ",
edge = "│ ",
item = "│ ",
none = " ",
},
},
}
Ícones
Configura os ícones para pastas, links simbólicos, e arquivos trackeados pelo git.
renderer = {
icons = {
webdev_colors = false,
show = {
file = false,
folder = true,
folder_arrow = false,
git = true
},
glyphs = {
default = "",
symlink = "",
folder = {
arrow_closed = "",
arrow_open = "",
default = "",
open = "",
empty = "",
empty_open = "",
symlink = "",
symlink_open = "",
},
git = {
unstaged = "", --
staged = "",
unmerged = "",
renamed = "➜",
untracked = "",
deleted = "",
ignored = "◌",
},
},
}
}
Foco no arquivo aberto (igual ao VSCode)
renderer = {
update_focused_file = {
enable = true,
update_cwd = false,
ignore_list = {},
},
}
Exibição de diagnósticos
Usa as informações do lsp (language-server) para renderizar diagnósticos na árvore de arquivos.
diagnostics = {
enable = true,
show_on_dirs = false,
icons = {
hint = "",
info = "",
warning = "",
error = "",
},
}