aboutsummaryrefslogtreecommitdiff
path: root/lua/plugins/nvim-tree.lua
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2024-02-18 23:57:04 +0200
committersrdusr <trevorgray@srdusr.com>2024-02-18 23:57:04 +0200
commit840c6c431f84cd1fe8cb91503024c3234467a471 (patch)
treeec2c042731d7e108f4debe22b7e1dab07d8a17f0 /lua/plugins/nvim-tree.lua
parent61de4331abc2f6663e895d3a5f7c8381130a6a0c (diff)
downloaddotfiles-840c6c431f84cd1fe8cb91503024c3234467a471.tar.gz
dotfiles-840c6c431f84cd1fe8cb91503024c3234467a471.zip
Changed highlight for executable files
Diffstat (limited to 'lua/plugins/nvim-tree.lua')
-rw-r--r--lua/plugins/nvim-tree.lua279
1 files changed, 142 insertions, 137 deletions
diff --git a/lua/plugins/nvim-tree.lua b/lua/plugins/nvim-tree.lua
index b9ae3f1..e817c04 100644
--- a/lua/plugins/nvim-tree.lua
+++ b/lua/plugins/nvim-tree.lua
@@ -5,11 +5,15 @@
--- To see mappings `g?` on nvim-tree
--- To see default mappings `:nvim-tree-default-mappings`
+-- Nvim-Tree.lua advises to do this at the start.
+vim.g.loaded_netrw = 1
+vim.g.loaded_netrwPlugin = 1
+
local icons = {
webdev_colors = true,
- git_placement = 'signcolumn',
- modified_placement = 'after',
- padding = ' ',
+ git_placement = "signcolumn",
+ modified_placement = "after",
+ padding = " ",
show = {
file = true,
folder = true,
@@ -19,27 +23,27 @@ local icons = {
},
glyphs = {
- default = '󰈔',
- symlink = '',
+ default = "󰈔",
+ symlink = "",
folder = {
- arrow_open = '',
- arrow_closed = '',
- default = ' ',
- open = ' ',
- empty = ' ',
- empty_open = ' ',
- symlink = '',
- symlink_open = '',
+ arrow_open = "",
+ arrow_closed = "",
+ default = " ",
+ open = " ",
+ empty = " ",
+ empty_open = " ",
+ symlink = "",
+ symlink_open = "",
},
git = {
- deleted = '',
- unmerged = '',
- untracked = '',
- unstaged = '',
- staged = '',
- renamed = '➜',
- ignored = '◌',
+ deleted = "",
+ unmerged = "",
+ untracked = "",
+ unstaged = "",
+ staged = "",
+ renamed = "➜",
+ ignored = "◌",
},
},
web_devicons = {
@@ -54,25 +58,24 @@ local renderer = {
group_empty = true, -- default: true. Compact folders that only contain a single folder into one node in the file tree.
highlight_git = false,
full_name = false,
- highlight_opened_files = 'icon', -- "none" (default), "icon", "name" or "all"
- highlight_modified = 'icon', -- "none", "name" or "all". Nice and subtle, override the open icon
- root_folder_label = ':~:s?$?/..?',
+ highlight_opened_files = "icon", -- "none" (default), "icon", "name" or "all"
+ highlight_modified = "icon", -- "none", "name" or "all". Nice and subtle, override the open icon
+ root_folder_label = ":~:s?$?/..?",
indent_width = 2,
indent_markers = {
enable = true,
inline_arrows = true,
icons = {
- corner = '└',
- edge = '│',
- item = '│',
- bottom = '─',
- none = ' ',
+ corner = "└",
+ edge = "│",
+ item = "│",
+ bottom = "─",
+ none = " ",
},
},
icons = icons,
}
-
-local system_open = { cmd = 'zathura' }
+local system_open = { cmd = "zathura" }
local HEIGHT_RATIO = 0.8
local WIDTH_RATIO = 0.15
@@ -89,8 +92,8 @@ local float = {
local center_x = (screen_w - window_w) / 2
local center_y = ((vim.opt.lines:get() - window_h) / 2) - vim.opt.cmdheight:get()
return {
- border = 'rounded',
- relative = 'editor',
+ border = "rounded",
+ relative = "editor",
row = center_y,
col = center_x,
width = window_w_int,
@@ -103,89 +106,90 @@ local view = {
cursorline = true,
float = float,
--signcolumn = 'no',
- width = function()
- return math.floor(vim.opt.columns:get() * WIDTH_RATIO)
- end,
- side = 'left',
+ --width = function()
+ -- return math.floor(vim.opt.columns:get() * WIDTH_RATIO)
+ --end,
+ width = { max = 38, min = 38 },
+ side = "left",
}
-local api = require('nvim-tree.api')
+local api = require("nvim-tree.api")
local function on_attach(bufnr)
local function opts(desc)
- return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
+ return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
local mappings = {
- ['<C-]>'] = { api.tree.change_root_to_node, 'CD' },
- ['<C-e>'] = { api.node.open.replace_tree_buffer, 'Open: In Place' },
- ['<C-k>'] = { api.node.show_info_popup, 'Info' },
- ['<C-r>'] = { api.fs.rename_sub, 'Rename: Omit Filename' },
- ['<C-t>'] = { api.node.open.tab, 'Open: New Tab' },
- ['<C-v>'] = { api.node.open.vertical, 'Open: Vertical Split' },
- ['<C-x>'] = { api.node.open.horizontal, 'Open: Horizontal Split' },
- ['<BS>'] = { api.node.navigate.parent_close, 'Close Directory' },
+ ["<C-]>"] = { api.tree.change_root_to_node, "CD" },
+ ["<C-e>"] = { api.node.open.replace_tree_buffer, "Open: In Place" },
+ ["<C-k>"] = { api.node.show_info_popup, "Info" },
+ ["<C-r>"] = { api.fs.rename_sub, "Rename: Omit Filename" },
+ ["<C-t>"] = { api.node.open.tab, "Open: New Tab" },
+ ["<C-v>"] = { api.node.open.vertical, "Open: Vertical Split" },
+ ["<C-x>"] = { api.node.open.horizontal, "Open: Horizontal Split" },
+ ["<BS>"] = { api.node.navigate.parent_close, "Close Directory" },
-- ["<CR>"] = { api.node.open.edit, "Open" },
- ['<Tab>'] = { api.node.open.preview, 'Open Preview' },
- ['>'] = { api.node.navigate.sibling.next, 'Next Sibling' },
- ['<'] = { api.node.navigate.sibling.prev, 'Previous Sibling' },
- ['.'] = { api.node.run.cmd, 'Run Command' },
- ['-'] = { api.tree.change_root_to_parent, 'Up' },
- ['a'] = { api.fs.create, 'Create' },
- ['bmv'] = { api.marks.bulk.move, 'Move Bookmarked' },
- ['B'] = { api.tree.toggle_no_buffer_filter, 'Toggle No Buffer' },
- ['c'] = { api.fs.copy.node, 'Copy' },
+ ["<Tab>"] = { api.node.open.preview, "Open Preview" },
+ [">"] = { api.node.navigate.sibling.next, "Next Sibling" },
+ ["<"] = { api.node.navigate.sibling.prev, "Previous Sibling" },
+ ["."] = { api.node.run.cmd, "Run Command" },
+ ["-"] = { api.tree.change_root_to_parent, "Up" },
+ ["a"] = { api.fs.create, "Create" },
+ ["bmv"] = { api.marks.bulk.move, "Move Bookmarked" },
+ ["B"] = { api.tree.toggle_no_buffer_filter, "Toggle No Buffer" },
+ ["c"] = { api.fs.copy.node, "Copy" },
-- ["C"] = { api.tree.toggle_git_clean_filter, "Toggle Git Clean" },
- ['[c'] = { api.node.navigate.git.prev, 'Prev Git' },
- [']c'] = { api.node.navigate.git.next, 'Next Git' },
- ['d'] = { api.fs.remove, 'Delete' },
- ['D'] = { api.fs.trash, 'Trash' },
- ['E'] = { api.tree.expand_all, 'Expand All' },
- ['e'] = { api.fs.rename_basename, 'Rename: Basename' },
- [']e'] = { api.node.navigate.diagnostics.next, 'Next Diagnostic' },
- ['[e'] = { api.node.navigate.diagnostics.prev, 'Prev Diagnostic' },
- ['F'] = { api.live_filter.clear, 'Clean Filter' },
- ['f'] = { api.live_filter.start, 'Filter' },
- ['g?'] = { api.tree.toggle_help, 'Help' },
- ['gy'] = { api.fs.copy.absolute_path, 'Copy Absolute Path' },
- ['H'] = { api.tree.toggle_hidden_filter, 'Toggle Dotfiles' },
- ['I'] = { api.tree.toggle_gitignore_filter, 'Toggle Git Ignore' },
- ['J'] = { api.node.navigate.sibling.last, 'Last Sibling' },
- ['K'] = { api.node.navigate.sibling.first, 'First Sibling' },
- ['m'] = { api.marks.toggle, 'Toggle Bookmark' },
+ ["[c"] = { api.node.navigate.git.prev, "Prev Git" },
+ ["]c"] = { api.node.navigate.git.next, "Next Git" },
+ ["d"] = { api.fs.remove, "Delete" },
+ ["D"] = { api.fs.trash, "Trash" },
+ ["E"] = { api.tree.expand_all, "Expand All" },
+ ["e"] = { api.fs.rename_basename, "Rename: Basename" },
+ ["]e"] = { api.node.navigate.diagnostics.next, "Next Diagnostic" },
+ ["[e"] = { api.node.navigate.diagnostics.prev, "Prev Diagnostic" },
+ ["F"] = { api.live_filter.clear, "Clean Filter" },
+ ["f"] = { api.live_filter.start, "Filter" },
+ ["g?"] = { api.tree.toggle_help, "Help" },
+ ["gy"] = { api.fs.copy.absolute_path, "Copy Absolute Path" },
+ ["H"] = { api.tree.toggle_hidden_filter, "Toggle Dotfiles" },
+ ["I"] = { api.tree.toggle_gitignore_filter, "Toggle Git Ignore" },
+ ["J"] = { api.node.navigate.sibling.last, "Last Sibling" },
+ ["K"] = { api.node.navigate.sibling.first, "First Sibling" },
+ ["m"] = { api.marks.toggle, "Toggle Bookmark" },
-- ["o"] = { api.node.open.edit, "Open" },
- ['O'] = { api.node.open.no_window_picker, 'Open: No Window Picker' },
- ['p'] = { api.fs.paste, 'Paste' },
- ['P'] = { api.node.navigate.parent, 'Parent Directory' },
- ['q'] = { api.tree.close, 'Close' },
- ['r'] = { api.fs.rename, 'Rename' },
- ['R'] = { api.tree.reload, 'Refresh' },
- ['s'] = { api.node.run.system, 'Run System' },
- ['S'] = { api.tree.search_node, 'Search' },
- ['U'] = { api.tree.toggle_custom_filter, 'Toggle Hidden' },
- ['W'] = { api.tree.collapse_all, 'Collapse' },
- ['x'] = { api.fs.cut, 'Cut' },
- ['y'] = { api.fs.copy.filename, 'Copy Name' },
- ['Y'] = { api.fs.copy.relative_path, 'Copy Relative Path' },
- ['<2-LeftMouse>'] = { api.node.open.edit, 'Open' },
- ['<2-RightMouse>'] = { api.tree.change_root_to_node, 'CD' },
+ ["O"] = { api.node.open.no_window_picker, "Open: No Window Picker" },
+ ["p"] = { api.fs.paste, "Paste" },
+ ["P"] = { api.node.navigate.parent, "Parent Directory" },
+ ["q"] = { api.tree.close, "Close" },
+ ["r"] = { api.fs.rename, "Rename" },
+ ["R"] = { api.tree.reload, "Refresh" },
+ ["s"] = { api.node.run.system, "Run System" },
+ ["S"] = { api.tree.search_node, "Search" },
+ ["U"] = { api.tree.toggle_custom_filter, "Toggle Hidden" },
+ ["W"] = { api.tree.collapse_all, "Collapse" },
+ ["x"] = { api.fs.cut, "Cut" },
+ ["y"] = { api.fs.copy.filename, "Copy Name" },
+ ["Y"] = { api.fs.copy.relative_path, "Copy Relative Path" },
+ ["<2-LeftMouse>"] = { api.node.open.edit, "Open" },
+ ["<2-RightMouse>"] = { api.tree.change_root_to_node, "CD" },
-- Mappings migrated from view.mappings.list
- ['l'] = { api.node.open.edit, 'Open' },
- ['<CR>'] = { api.node.open.edit, 'Open' },
- ['o'] = { api.node.open.edit, 'Open' },
- ['h'] = { api.node.navigate.parent_close, 'Close Directory' },
- ['v'] = { api.node.open.vertical, 'Open: Vertical Split' },
- ['C'] = { api.tree.change_root_to_node, 'CD' },
+ ["l"] = { api.node.open.edit, "Open" },
+ ["<CR>"] = { api.node.open.edit, "Open" },
+ ["o"] = { api.node.open.edit, "Open" },
+ ["h"] = { api.node.navigate.parent_close, "Close Directory" },
+ ["v"] = { api.node.open.vertical, "Open: Vertical Split" },
+ ["C"] = { api.tree.change_root_to_node, "CD" },
}
for keys, mapping in pairs(mappings) do
- vim.keymap.set('n', keys, mapping[1], opts(mapping[2]))
+ vim.keymap.set("n", keys, mapping[1], opts(mapping[2]))
end
end
--api.events.subscribe(api.events.Event.FileCreated, function(file)
-- vim.cmd('edit' .. file.fname)
--end)
-require('nvim-tree').setup({
+require("nvim-tree").setup({
--auto_reload_on_write = true,
--create_in_closed_folder = false,
--hijack_cursor = true,
@@ -210,7 +214,7 @@ require('nvim-tree').setup({
filesystem_watchers = {
enable = true,
debounce_delay = 50,
- ignore_dirs = { 'node_modules', '.config/nvm' },
+ ignore_dirs = { "node_modules", ".config/nvm" },
},
view = view,
system_open = system_open,
@@ -234,14 +238,14 @@ require('nvim-tree').setup({
enable = true,
show_on_dirs = true,
icons = {
- hint = '⚑',
- info = '􀅳',
- warning = '▲',
- error = '',
+ hint = "⚑",
+ info = "􀅳",
+ warning = "▲",
+ error = "",
},
},
trash = {
- cmd = 'gio trash',
+ cmd = "gio trash",
require_confirm = true,
},
modified = {
@@ -272,17 +276,17 @@ require('nvim-tree').setup({
resize_window = false,
window_picker = {
enable = true,
- chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',
+ chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
exclude = {
- filetype = { 'notify', 'packer', 'qf', 'diff', 'fugitive', 'fugitiveblame' },
- buftype = { 'nofile', 'terminal', 'help' },
+ filetype = { "notify", "packer", "qf", "diff", "fugitive", "fugitiveblame" },
+ buftype = { "nofile", "terminal", "help" },
},
},
},
},
})
-local api = require('nvim-tree.api')
+local api = require("nvim-tree.api")
local event = api.events.Event
--api.events.subscribe(event.TreeOpen, function(_)
-- vim.cmd([[setlocal statuscolumn=\ ]])
@@ -293,32 +297,32 @@ local event = api.events.Event
--end)
local function open_nvim_tree(data)
- vim.cmd.cd(data.file:match('(.+)/[^/]*$'))
+ vim.cmd.cd(data.file:match("(.+)/[^/]*$"))
local directory = vim.fn.isdirectory(data.file) == 1
if not directory then
return
end
- require('nvim-tree.api').tree.open()
+ require("nvim-tree.api").tree.open()
end
-vim.api.nvim_create_autocmd({ 'VimEnter' }, { callback = open_nvim_tree })
+vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree })
-- Change Root To Global Current Working Directory
local function change_root_to_global_cwd()
- local api = require('nvim-tree.api')
+ local api = require("nvim-tree.api")
local global_cwd = vim.fn.getcwd(-1, -1)
api.tree.change_root(global_cwd)
end
local function copy_file_to(node)
- local file_src = node['absolute_path']
+ local file_src = node["absolute_path"]
-- The args of input are {prompt}, {default}, {completion}
-- Read in the new file path using the existing file's path as the baseline.
- local file_out = vim.fn.input('COPY TO: ', file_src, 'file')
+ local file_out = vim.fn.input("COPY TO: ", file_src, "file")
-- Create any parent dirs as required
- local dir = vim.fn.fnamemodify(file_out, ':h')
- vim.fn.system({ 'mkdir', '-p', dir })
+ local dir = vim.fn.fnamemodify(file_out, ":h")
+ vim.fn.system({ "mkdir", "-p", dir })
-- Copy the file
- vim.fn.system({ 'cp', '-R', file_src, file_out })
+ vim.fn.system({ "cp", "-R", file_src, file_out })
end
local function edit_and_close(node)
@@ -333,48 +337,48 @@ end
-- group = 'NvimTreeRefresh',
--})
-vim.api.nvim_create_autocmd({ 'CursorHold' }, {
- pattern = 'NvimTree*',
+vim.api.nvim_create_autocmd({ "CursorHold" }, {
+ pattern = "NvimTree*",
callback = function()
- local def = vim.api.nvim_get_hl_by_name('Cursor', true)
+ local def = vim.api.nvim_get_hl_by_name("Cursor", true)
vim.api.nvim_set_hl(
0,
- 'Cursor',
- vim.tbl_extend('force', def, {
+ "Cursor",
+ vim.tbl_extend("force", def, {
blend = 100,
})
)
- vim.opt.guicursor:append('a:Cursor/lCursor')
+ vim.opt.guicursor:append("a:Cursor/lCursor")
end,
})
-vim.api.nvim_create_autocmd({ 'BufLeave', 'WinClosed', 'WinLeave' }, {
- pattern = 'NvimTree*',
+vim.api.nvim_create_autocmd({ "BufLeave", "WinClosed", "WinLeave" }, {
+ pattern = "NvimTree*",
callback = function()
- local def = vim.api.nvim_get_hl_by_name('Cursor', true)
+ local def = vim.api.nvim_get_hl_by_name("Cursor", true)
vim.api.nvim_set_hl(
0,
- 'Cursor',
- vim.tbl_extend('force', def, {
+ "Cursor",
+ vim.tbl_extend("force", def, {
blend = 0,
})
)
- vim.opt.guicursor = 'n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20'
+ vim.opt.guicursor = "n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20"
end,
})
-- Highlight Groups
-vim.api.nvim_command('highlight NvimTreeNormal guibg=NONE ctermbg=NONE')
-vim.api.nvim_command('highlight NvimTreeNormalNC guibg=NONE ctermbg=NONE guifg=NONE')
-vim.api.nvim_command('highlight NvimTreeNormalFloat guibg=NONE ctermbg=NONE')
-vim.api.nvim_command('highlight NvimTreeEndOfBuffer guibg=NONE ctermbg=NONE') --(NonText)
-vim.api.nvim_command('highlight NvimTreeCursorLine guibg=#50fa7b guifg=#000000')
-vim.api.nvim_command('highlight NvimTreeSymlinkFolderName guifg=#f8f8f2 guibg=NONE ctermbg=NONE')
-vim.api.nvim_command('highlight NvimTreeFolderName guifg=#f8f8f2 guibg=NONE ctermbg=NONE')
-vim.api.nvim_command('highlight NvimTreeRootFolder guifg=#f8f8f2 guibg=NONE ctermbg=NONE')
-vim.api.nvim_command('highlight NvimTreeEmptyFolderName guifg=#f8f8f2 guibg=NONE ctermbg=NONE') --(Directory)
-vim.api.nvim_command('highlight NvimTreeOpenedFolderName guifg=#f8f8f2 guibg=NONE ctermbg=NONE') --(Directory)
-vim.api.nvim_command('highlight NvimTreeOpenedFile guifg=#50fa7b guibg=NONE ctermbg=NONE')
+vim.api.nvim_command("highlight NvimTreeNormal guibg=NONE ctermbg=NONE")
+vim.api.nvim_command("highlight NvimTreeNormalNC guibg=NONE ctermbg=NONE guifg=NONE")
+vim.api.nvim_command("highlight NvimTreeNormalFloat guibg=NONE ctermbg=NONE")
+vim.api.nvim_command("highlight NvimTreeEndOfBuffer guibg=NONE ctermbg=NONE") --(NonText)
+vim.api.nvim_command("highlight NvimTreeCursorLine guibg=#50fa7b guifg=#000000")
+vim.api.nvim_command("highlight NvimTreeSymlinkFolderName guifg=#f8f8f2 guibg=NONE ctermbg=NONE")
+vim.api.nvim_command("highlight NvimTreeFolderName guifg=#f8f8f2 guibg=NONE ctermbg=NONE")
+vim.api.nvim_command("highlight NvimTreeRootFolder guifg=#f8f8f2 guibg=NONE ctermbg=NONE")
+vim.api.nvim_command("highlight NvimTreeEmptyFolderName guifg=#f8f8f2 guibg=NONE ctermbg=NONE") --(Directory)
+vim.api.nvim_command("highlight NvimTreeOpenedFolderName guifg=#f8f8f2 guibg=NONE ctermbg=NONE") --(Directory)
+vim.api.nvim_command("highlight NvimTreeOpenedFile guifg=#50fa7b guibg=NONE ctermbg=NONE")
--vim.api.nvim_command("highlight NvimTreeSymlink ")
--vim.api.nvim_command("highlight NvimTreeSymlinkFolderName ") --(Directory)
@@ -387,6 +391,7 @@ vim.api.nvim_command('highlight NvimTreeOpenedFile guifg=#50fa7b guibg=NONE cter
--vim.api.nvim_command("highlight NvimTreeEmptyFolderName ") --(Directory)
--vim.api.nvim_command("highlight NvimTreeOpenedFolderName ") --(Directory)
--vim.api.nvim_command("highlight NvimTreeExecFile ")
+vim.api.nvim_command("highlight NvimTreeExecFile guifg=#ff882a guibg=none gui=NONE")
--vim.api.nvim_command("highlight NvimTreeOpenedFile ")
--vim.api.nvim_command("highlight NvimTreeModifiedFile ")
--vim.api.nvim_command("highlight NvimTreeSpecialFile ")