add view.indent_markers (#1134)
This commit is contained in:
committed by
GitHub
parent
83fe370d52
commit
d5e4f0655b
13
README.md
13
README.md
@@ -38,7 +38,6 @@ Note that options under the `g:` command should be set **BEFORE** running the se
|
|||||||
These are being migrated to the setup function incrementally, check [this issue](https://github.com/kyazdani42/nvim-tree.lua/issues/674) if you encounter any problems related to configs not working after update.
|
These are being migrated to the setup function incrementally, check [this issue](https://github.com/kyazdani42/nvim-tree.lua/issues/674) if you encounter any problems related to configs not working after update.
|
||||||
```vim
|
```vim
|
||||||
" vimrc
|
" vimrc
|
||||||
let g:nvim_tree_indent_markers = 1 "0 by default, this option shows indent markers when folders are open
|
|
||||||
let g:nvim_tree_git_hl = 1 "0 by default, will enable file highlight for git attributes (can be used without the icons).
|
let g:nvim_tree_git_hl = 1 "0 by default, will enable file highlight for git attributes (can be used without the icons).
|
||||||
let g:nvim_tree_highlight_opened_files = 1 "0 by default, will enable folder and file icon highlight for opened files/directories.
|
let g:nvim_tree_highlight_opened_files = 1 "0 by default, will enable folder and file icon highlight for opened files/directories.
|
||||||
let g:nvim_tree_root_folder_modifier = ':~' "This is the default. See :help filename-modifiers for more options
|
let g:nvim_tree_root_folder_modifier = ':~' "This is the default. See :help filename-modifiers for more options
|
||||||
@@ -59,7 +58,7 @@ let g:nvim_tree_show_icons = {
|
|||||||
"1 by default, notice that if 'files' is 1, it will only display
|
"1 by default, notice that if 'files' is 1, it will only display
|
||||||
"if nvim-web-devicons is installed and on your runtimepath.
|
"if nvim-web-devicons is installed and on your runtimepath.
|
||||||
"if folder is 1, you can also tell folder_arrows 1 to show small arrows next to the folder icons.
|
"if folder is 1, you can also tell folder_arrows 1 to show small arrows next to the folder icons.
|
||||||
"but this will not work when you set indent_markers (because of UI conflict)
|
"but this will not work when you set renderer.indent_markers.enable (because of UI conflict)
|
||||||
|
|
||||||
" default will show icon by default if no icon is provided
|
" default will show icon by default if no icon is provided
|
||||||
" default shows no icon by default
|
" default shows no icon by default
|
||||||
@@ -144,6 +143,16 @@ require'nvim-tree'.setup { -- BEGIN_DEFAULT_OPTS
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
renderer = {
|
||||||
|
indent_markers = {
|
||||||
|
enable = false,
|
||||||
|
icons = {
|
||||||
|
corner = "└ ",
|
||||||
|
edge = "│ ",
|
||||||
|
none = " ",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
hijack_directories = {
|
hijack_directories = {
|
||||||
enable = true,
|
enable = true,
|
||||||
auto_open = true,
|
auto_open = true,
|
||||||
|
|||||||
@@ -111,6 +111,16 @@ function.
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
renderer = {
|
||||||
|
indent_markers = {
|
||||||
|
enable = false,
|
||||||
|
icons = {
|
||||||
|
corner = "└ ",
|
||||||
|
edge = "│ ",
|
||||||
|
none = " ",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
hijack_directories = {
|
hijack_directories = {
|
||||||
enable = true,
|
enable = true,
|
||||||
auto_open = true,
|
auto_open = true,
|
||||||
@@ -408,6 +418,19 @@ Here is a list of the options available in the setup call:
|
|||||||
type: list of `{ key: table of strings or string, mode: string (vim-mode), cb: callback function as a string }`
|
type: list of `{ key: table of strings or string, mode: string (vim-mode), cb: callback function as a string }`
|
||||||
default: `{}`
|
default: `{}`
|
||||||
|
|
||||||
|
*nvim-tree.renderer*
|
||||||
|
- |renderer|: UI rendering setup
|
||||||
|
|
||||||
|
- |renderer.indent_markers|: configuration options for tree indent markers
|
||||||
|
|
||||||
|
- |renderer.indent_markers.enable|: display indent markers when folders are open
|
||||||
|
type: `boolean`
|
||||||
|
default: `false`
|
||||||
|
|
||||||
|
- |renderer.indent_markers.icons|: icons shown before the file/directory
|
||||||
|
type: `table`
|
||||||
|
default: `{ corner = "└ ", edge = "│ ", none = " ", }`
|
||||||
|
|
||||||
*nvim-tree.filters*
|
*nvim-tree.filters*
|
||||||
|filters|: filtering options
|
|filters|: filtering options
|
||||||
|
|
||||||
@@ -543,7 +566,7 @@ is installed and in your |runtimepath|
|
|||||||
(https://github.com/kyazdani42/nvim-web-devicons)
|
(https://github.com/kyazdani42/nvim-web-devicons)
|
||||||
if folder is 1, you can also set `folder_arrows = 1` to show small arrows
|
if folder is 1, you can also set `folder_arrows = 1` to show small arrows
|
||||||
next to the folder icons but this will not work when you set
|
next to the folder icons but this will not work when you set
|
||||||
|g:nvim_tree_indent_markers| (because of UI conflict).
|
|renderer.indent_markers.enable| (because of UI conflict).
|
||||||
|
|
||||||
|g:nvim_tree_highlight_opened_files| *g:nvim_tree_highlight_opened_files*
|
|g:nvim_tree_highlight_opened_files| *g:nvim_tree_highlight_opened_files*
|
||||||
|
|
||||||
@@ -599,11 +622,6 @@ You can set icons for:
|
|||||||
You can enable file highlight for git attributes by setting this property.
|
You can enable file highlight for git attributes by setting this property.
|
||||||
This can be used with or without the icons.
|
This can be used with or without the icons.
|
||||||
|
|
||||||
|g:nvim_tree_indent_markers| *g:nvim_tree_indent_markers*
|
|
||||||
|
|
||||||
Can be `0` or `1`. When `1`, will display indent markers when folders are open
|
|
||||||
Default is 0
|
|
||||||
|
|
||||||
|g:nvim_tree_root_folder_modifier| *g:nvim_tree_root_folder_modifier*
|
|g:nvim_tree_root_folder_modifier| *g:nvim_tree_root_folder_modifier*
|
||||||
|
|
||||||
In what format to show root folder. See `:help filename-modifiers` for
|
In what format to show root folder. See `:help filename-modifiers` for
|
||||||
|
|||||||
@@ -336,6 +336,16 @@ local DEFAULT_OPTS = { -- BEGIN_DEFAULT_OPTS
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
renderer = {
|
||||||
|
indent_markers = {
|
||||||
|
enable = false,
|
||||||
|
icons = {
|
||||||
|
corner = "└ ",
|
||||||
|
edge = "│ ",
|
||||||
|
none = " ",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
hijack_directories = {
|
hijack_directories = {
|
||||||
enable = true,
|
enable = true,
|
||||||
auto_open = true,
|
auto_open = true,
|
||||||
@@ -446,6 +456,7 @@ function M.setup(conf)
|
|||||||
require("nvim-tree.git").setup(opts)
|
require("nvim-tree.git").setup(opts)
|
||||||
require("nvim-tree.view").setup(opts)
|
require("nvim-tree.view").setup(opts)
|
||||||
require("nvim-tree.lib").setup(opts)
|
require("nvim-tree.lib").setup(opts)
|
||||||
|
require("nvim-tree.renderer").setup(opts)
|
||||||
|
|
||||||
setup_vim_commands()
|
setup_vim_commands()
|
||||||
setup_autocommands(opts)
|
setup_autocommands(opts)
|
||||||
|
|||||||
@@ -169,6 +169,13 @@ local migrations = {
|
|||||||
o.actions.change_dir.global = vim.g.nvim_tree_change_dir_global == 1
|
o.actions.change_dir.global = vim.g.nvim_tree_change_dir_global == 1
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
nvim_tree_indent_markers = function(o)
|
||||||
|
utils.table_create_missing(o, "renderer.indent_markers")
|
||||||
|
if o.renderer.indent_markers.enable == nil then
|
||||||
|
o.renderer.indent_markers.enable = vim.g.nvim_tree_indent_markers == 1
|
||||||
|
end
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
function M.migrate_legacy_options(opts)
|
function M.migrate_legacy_options(opts)
|
||||||
|
|||||||
@@ -256,7 +256,7 @@ function M.draw()
|
|||||||
hl = {}
|
hl = {}
|
||||||
|
|
||||||
icon_state = _icons.get_config()
|
icon_state = _icons.get_config()
|
||||||
local show_arrows = vim.g.nvim_tree_indent_markers ~= 1
|
local show_arrows = not M.config.indent_markers.enable
|
||||||
and icon_state.show_folder_icon
|
and icon_state.show_folder_icon
|
||||||
and icon_state.show_folder_arrows
|
and icon_state.show_folder_arrows
|
||||||
_padding.reload_padding_function()
|
_padding.reload_padding_function()
|
||||||
@@ -289,4 +289,12 @@ function M.render_hl(bufnr)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function M.setup(opts)
|
||||||
|
M.config = {
|
||||||
|
indent_markers = opts.renderer.indent_markers,
|
||||||
|
}
|
||||||
|
|
||||||
|
require("nvim-tree.renderer.padding").setup(opts)
|
||||||
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ local function get_padding_indent_markers(depth, idx, tree, _, markers)
|
|||||||
markers[rdepth] = idx ~= #tree.nodes
|
markers[rdepth] = idx ~= #tree.nodes
|
||||||
for i = 1, rdepth do
|
for i = 1, rdepth do
|
||||||
if idx == #tree.nodes and i == rdepth then
|
if idx == #tree.nodes and i == rdepth then
|
||||||
padding = padding .. "└ "
|
padding = padding .. M.config.indent_markers.icons.corner
|
||||||
elseif markers[i] then
|
elseif markers[i] then
|
||||||
padding = padding .. "│ "
|
padding = padding .. M.config.indent_markers.icons.edge
|
||||||
else
|
else
|
||||||
padding = padding .. " "
|
padding = padding .. M.config.indent_markers.icons.none
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -39,9 +39,15 @@ function M.reload_padding_function()
|
|||||||
M.get_padding = get_padding_arrows(icon_state)
|
M.get_padding = get_padding_arrows(icon_state)
|
||||||
end
|
end
|
||||||
|
|
||||||
if vim.g.nvim_tree_indent_markers == 1 then
|
if M.config.indent_markers.enable then
|
||||||
M.get_padding = get_padding_indent_markers
|
M.get_padding = get_padding_indent_markers
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function M.setup(opts)
|
||||||
|
M.config = {
|
||||||
|
indent_markers = opts.renderer.indent_markers,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|||||||
Reference in New Issue
Block a user