chore: move code around
- deprecate config.lua file - move icon config code into renderer/icons - move file opening config in open-file.lua
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
local utils = require'nvim-tree.utils'
|
local utils = require'nvim-tree.utils'
|
||||||
local view = require'nvim-tree.view'
|
local view = require'nvim-tree.view'
|
||||||
local diagnostics = require'nvim-tree.diagnostics'
|
local diagnostics = require'nvim-tree.diagnostics'
|
||||||
local config = require"nvim-tree.config"
|
local icons = require"nvim-tree.renderer.icons"
|
||||||
local renderer = require"nvim-tree.renderer"
|
local renderer = require"nvim-tree.renderer"
|
||||||
local lib = function() return require'nvim-tree.lib' end
|
local lib = function() return require'nvim-tree.lib' end
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ function M.sibling(direction)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function M.find_git_item(where)
|
function M.find_git_item(where)
|
||||||
local icon_state = config.get_icon_state()
|
local icon_state = icons.get_config()
|
||||||
local flags = where == 'next' and 'b' or ''
|
local flags = where == 'next' and 'b' or ''
|
||||||
local icons = table.concat(vim.tbl_values(icon_state.icons.git_icons), '\\|')
|
local icons = table.concat(vim.tbl_values(icon_state.icons.git_icons), '\\|')
|
||||||
return function()
|
return function()
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
local api = vim.api
|
local api = vim.api
|
||||||
|
|
||||||
local config = require'nvim-tree.config'
|
|
||||||
local lib = require'nvim-tree.lib'
|
local lib = require'nvim-tree.lib'
|
||||||
local utils = require'nvim-tree.utils'
|
local utils = require'nvim-tree.utils'
|
||||||
local view = require'nvim-tree.view'
|
local view = require'nvim-tree.view'
|
||||||
@@ -9,6 +8,33 @@ local M = {
|
|||||||
quit_on_open = false,
|
quit_on_open = false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local function get_split_cmd()
|
||||||
|
local side = view.View.side
|
||||||
|
if side == 'right' then
|
||||||
|
return 'aboveleft'
|
||||||
|
end
|
||||||
|
if side == "left" then
|
||||||
|
return 'belowright'
|
||||||
|
end
|
||||||
|
if side == "top" then
|
||||||
|
return 'bot'
|
||||||
|
end
|
||||||
|
return 'top'
|
||||||
|
end
|
||||||
|
|
||||||
|
local function window_picker_exclude()
|
||||||
|
if type(vim.g.nvim_tree_window_picker_exclude) == "table" then
|
||||||
|
return vim.g.nvim_tree_window_picker_exclude
|
||||||
|
end
|
||||||
|
return {
|
||||||
|
filetype = {
|
||||||
|
"notify",
|
||||||
|
"packer",
|
||||||
|
"qf"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
---Get user to pick a window. Selectable windows are all windows in the current
|
---Get user to pick a window. Selectable windows are all windows in the current
|
||||||
---tabpage that aren't NvimTree.
|
---tabpage that aren't NvimTree.
|
||||||
---@return integer|nil -- If a valid window was picked, return its id. If an
|
---@return integer|nil -- If a valid window was picked, return its id. If an
|
||||||
@@ -18,7 +44,7 @@ local function pick_window()
|
|||||||
local tabpage = api.nvim_get_current_tabpage()
|
local tabpage = api.nvim_get_current_tabpage()
|
||||||
local win_ids = api.nvim_tabpage_list_wins(tabpage)
|
local win_ids = api.nvim_tabpage_list_wins(tabpage)
|
||||||
local tree_winid = view.get_winnr(tabpage)
|
local tree_winid = view.get_winnr(tabpage)
|
||||||
local exclude = config.window_picker_exclude()
|
local exclude = window_picker_exclude()
|
||||||
|
|
||||||
local selectable = vim.tbl_filter(function (id)
|
local selectable = vim.tbl_filter(function (id)
|
||||||
local bufid = api.nvim_win_get_buf(id)
|
local bufid = api.nvim_win_get_buf(id)
|
||||||
@@ -160,9 +186,9 @@ function M.fn(mode, filename)
|
|||||||
if not target_winid or not vim.tbl_contains(win_ids, target_winid) then
|
if not target_winid or not vim.tbl_contains(win_ids, target_winid) then
|
||||||
-- Target is invalid, or window does not exist in current tabpage: create
|
-- Target is invalid, or window does not exist in current tabpage: create
|
||||||
-- new window
|
-- new window
|
||||||
local window_opts = config.window_options()
|
local split_cmd = get_split_cmd()
|
||||||
local splitside = view.is_vertical() and "vsp" or "sp"
|
local splitside = view.is_vertical() and "vsp" or "sp"
|
||||||
vim.cmd(window_opts.split_command .. " " .. splitside)
|
vim.cmd(split_cmd .. " " .. splitside)
|
||||||
target_winid = api.nvim_get_current_win()
|
target_winid = api.nvim_get_current_win()
|
||||||
lib.target_winid = target_winid
|
lib.target_winid = target_winid
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
local api = vim.api
|
local api = vim.api
|
||||||
local config = require'nvim-tree.config'
|
local icons = require'nvim-tree.renderer.icons'
|
||||||
|
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ local function get_links()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function M.setup()
|
function M.setup()
|
||||||
if config.get_icon_state().show_file_icon and config.get_icon_state().has_devicons then
|
if icons.get_config().show_file_icon and icons.get_config().has_devicons then
|
||||||
require'nvim-web-devicons'.setup()
|
require'nvim-web-devicons'.setup()
|
||||||
end
|
end
|
||||||
local higlight_groups = get_hl_groups()
|
local higlight_groups = get_hl_groups()
|
||||||
|
|||||||
@@ -1,103 +1,10 @@
|
|||||||
|
-- INFO: DEPRECATED FILE, DO NOT ADD ANYTHING IN THERE
|
||||||
|
-- keeping to avoid breaking user configs. Will remove during a weekend.
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
function M.get_icon_state()
|
|
||||||
local show_icons = vim.g.nvim_tree_show_icons or { git = 1, folders = 1, files = 1, folder_arrows = 1 }
|
|
||||||
local icons = {
|
|
||||||
default = "",
|
|
||||||
symlink = "",
|
|
||||||
git_icons = {
|
|
||||||
unstaged = "✗",
|
|
||||||
staged = "✓",
|
|
||||||
unmerged = "",
|
|
||||||
renamed = "➜",
|
|
||||||
untracked = "★",
|
|
||||||
deleted = "",
|
|
||||||
ignored = "◌"
|
|
||||||
},
|
|
||||||
folder_icons = {
|
|
||||||
arrow_closed = "",
|
|
||||||
arrow_open = "",
|
|
||||||
default = "",
|
|
||||||
open = "",
|
|
||||||
empty = "",
|
|
||||||
empty_open = "",
|
|
||||||
symlink = "",
|
|
||||||
symlink_open = "",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
local user_icons = vim.g.nvim_tree_icons
|
|
||||||
if user_icons then
|
|
||||||
if user_icons.default then
|
|
||||||
icons.default = user_icons.default
|
|
||||||
icons.symlink = user_icons.default
|
|
||||||
end
|
|
||||||
if user_icons.symlink then
|
|
||||||
icons.symlink = user_icons.symlink
|
|
||||||
end
|
|
||||||
for key, val in pairs(user_icons.git or {}) do
|
|
||||||
if icons.git_icons[key] then
|
|
||||||
icons.git_icons[key] = val
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for key, val in pairs(user_icons.folder or {}) do
|
|
||||||
if icons.folder_icons[key] then
|
|
||||||
icons.folder_icons[key] = val
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local has_devicons = pcall(require, 'nvim-web-devicons')
|
|
||||||
return {
|
|
||||||
show_file_icon = show_icons.files == 1,
|
|
||||||
show_folder_icon = show_icons.folders == 1,
|
|
||||||
show_git_icon = show_icons.git == 1,
|
|
||||||
show_folder_arrows = show_icons.folder_arrows == 1,
|
|
||||||
has_devicons = has_devicons,
|
|
||||||
icons = icons
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
-- TODO: remove this once the cb property is not supported in mappings
|
-- TODO: remove this once the cb property is not supported in mappings
|
||||||
function M.nvim_tree_callback(callback_name)
|
function M.nvim_tree_callback(callback_name)
|
||||||
return string.format(":lua require'nvim-tree.actions'.on_keypress('%s')<CR>", callback_name)
|
return string.format(":lua require'nvim-tree.actions'.on_keypress('%s')<CR>", callback_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
function M.window_options()
|
|
||||||
local opts = {}
|
|
||||||
local side = require'nvim-tree.view'.View.side
|
|
||||||
if side == 'right' then
|
|
||||||
opts.open_command = 'h'
|
|
||||||
opts.preview_command = 'l'
|
|
||||||
opts.split_command = 'aboveleft'
|
|
||||||
elseif side == "left" then
|
|
||||||
opts.open_command = 'l'
|
|
||||||
opts.preview_command = 'h'
|
|
||||||
opts.split_command = 'belowright'
|
|
||||||
elseif side == "top" then
|
|
||||||
opts.open_command = 'j'
|
|
||||||
opts.preview_command = 'k'
|
|
||||||
opts.split_command = 'bot'
|
|
||||||
else
|
|
||||||
opts.open_command = 'k'
|
|
||||||
opts.preview_command = 'j'
|
|
||||||
opts.split_command = 'top'
|
|
||||||
end
|
|
||||||
|
|
||||||
return opts
|
|
||||||
end
|
|
||||||
|
|
||||||
function M.window_picker_exclude()
|
|
||||||
if type(vim.g.nvim_tree_window_picker_exclude) == "table" then
|
|
||||||
return vim.g.nvim_tree_window_picker_exclude
|
|
||||||
end
|
|
||||||
return {
|
|
||||||
filetype = {
|
|
||||||
"notify",
|
|
||||||
"packer",
|
|
||||||
"qf"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|||||||
61
lua/nvim-tree/renderer/icons.lua
Normal file
61
lua/nvim-tree/renderer/icons.lua
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.get_config()
|
||||||
|
local show_icons = vim.g.nvim_tree_show_icons or { git = 1, folders = 1, files = 1, folder_arrows = 1 }
|
||||||
|
local icons = {
|
||||||
|
default = "",
|
||||||
|
symlink = "",
|
||||||
|
git_icons = {
|
||||||
|
unstaged = "✗",
|
||||||
|
staged = "✓",
|
||||||
|
unmerged = "",
|
||||||
|
renamed = "➜",
|
||||||
|
untracked = "★",
|
||||||
|
deleted = "",
|
||||||
|
ignored = "◌"
|
||||||
|
},
|
||||||
|
folder_icons = {
|
||||||
|
arrow_closed = "",
|
||||||
|
arrow_open = "",
|
||||||
|
default = "",
|
||||||
|
open = "",
|
||||||
|
empty = "",
|
||||||
|
empty_open = "",
|
||||||
|
symlink = "",
|
||||||
|
symlink_open = "",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local user_icons = vim.g.nvim_tree_icons
|
||||||
|
if user_icons then
|
||||||
|
if user_icons.default then
|
||||||
|
icons.default = user_icons.default
|
||||||
|
icons.symlink = user_icons.default
|
||||||
|
end
|
||||||
|
if user_icons.symlink then
|
||||||
|
icons.symlink = user_icons.symlink
|
||||||
|
end
|
||||||
|
for key, val in pairs(user_icons.git or {}) do
|
||||||
|
if icons.git_icons[key] then
|
||||||
|
icons.git_icons[key] = val
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for key, val in pairs(user_icons.folder or {}) do
|
||||||
|
if icons.folder_icons[key] then
|
||||||
|
icons.folder_icons[key] = val
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local has_devicons = pcall(require, 'nvim-web-devicons')
|
||||||
|
return {
|
||||||
|
show_file_icon = show_icons.files == 1,
|
||||||
|
show_folder_icon = show_icons.folders == 1,
|
||||||
|
show_git_icon = show_icons.git == 1,
|
||||||
|
show_folder_arrows = show_icons.folder_arrows == 1,
|
||||||
|
has_devicons = has_devicons,
|
||||||
|
icons = icons
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
@@ -3,6 +3,7 @@ local utils = require'nvim-tree.utils'
|
|||||||
local view = require'nvim-tree.view'
|
local view = require'nvim-tree.view'
|
||||||
local _padding = require'nvim-tree.renderer.padding'
|
local _padding = require'nvim-tree.renderer.padding'
|
||||||
local _help = require'nvim-tree.renderer.help'
|
local _help = require'nvim-tree.renderer.help'
|
||||||
|
local _icons = require'nvim-tree.renderer.icons'
|
||||||
|
|
||||||
local api = vim.api
|
local api = vim.api
|
||||||
|
|
||||||
@@ -11,7 +12,7 @@ local hl = {}
|
|||||||
local index = 0
|
local index = 0
|
||||||
local namespace_id = api.nvim_create_namespace('NvimTreeHighlights')
|
local namespace_id = api.nvim_create_namespace('NvimTreeHighlights')
|
||||||
|
|
||||||
local icon_state = config.get_icon_state()
|
local icon_state = _icons.get_config()
|
||||||
|
|
||||||
local should_hl_opened_files = (vim.g.nvim_tree_highlight_opened_files or 0) ~= 0
|
local should_hl_opened_files = (vim.g.nvim_tree_highlight_opened_files or 0) ~= 0
|
||||||
|
|
||||||
@@ -382,12 +383,12 @@ function M.draw()
|
|||||||
lines = {}
|
lines = {}
|
||||||
hl = {}
|
hl = {}
|
||||||
|
|
||||||
|
icon_state = _icons.get_config()
|
||||||
local show_arrows =
|
local show_arrows =
|
||||||
vim.g.nvim_tree_indent_markers ~= 1
|
vim.g.nvim_tree_indent_markers ~= 1
|
||||||
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()
|
||||||
icon_state = config.get_icon_state()
|
|
||||||
update_draw_data(TreeExplorer, show_arrows and 2 or 0, {})
|
update_draw_data(TreeExplorer, show_arrows and 2 or 0, {})
|
||||||
|
|
||||||
if view.is_help_ui() then
|
if view.is_help_ui() then
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ local function get_padding_indent_markers(depth, idx, tree, _, markers)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function M.reload_padding_function()
|
function M.reload_padding_function()
|
||||||
local icon_state = require'nvim-tree.config'.get_icon_state()
|
local icon_state = require'nvim-tree.renderer.icons'.get_config()
|
||||||
|
|
||||||
if icon_state.show_folder_icon and icon_state.show_folder_arrows then
|
if icon_state.show_folder_icon and icon_state.show_folder_arrows then
|
||||||
M.get_padding = get_padding_arrows(icon_state)
|
M.get_padding = get_padding_arrows(icon_state)
|
||||||
|
|||||||
Reference in New Issue
Block a user