add custom config for net-tree
This commit is contained in:
parent
95653c6526
commit
c516919105
|
@ -0,0 +1,60 @@
|
|||
return {
|
||||
ActiveLSP = '',
|
||||
ActiveTS = '',
|
||||
ArrowLeft = '',
|
||||
ArrowRight = '',
|
||||
Bookmarks = '',
|
||||
BufferClose = '',
|
||||
DapBreakpoint = '',
|
||||
DapBreakpointCondition = '',
|
||||
DapBreakpointRejected = '',
|
||||
DapLogPoint = '.>',
|
||||
DapStopped = '',
|
||||
Debugger = '',
|
||||
DefaultFile = '',
|
||||
Diagnostic = '',
|
||||
DiagnosticError = '',
|
||||
DiagnosticHint = '',
|
||||
DiagnosticInfo = '',
|
||||
DiagnosticWarn = '',
|
||||
Ellipsis = '…',
|
||||
FileNew = '',
|
||||
FileModified = '',
|
||||
FileReadOnly = '',
|
||||
FoldClosed = '',
|
||||
FoldOpened = '',
|
||||
FoldSeparator = ' ',
|
||||
FolderClosed = '',
|
||||
FolderEmpty = '',
|
||||
FolderOpen = '',
|
||||
Git = '',
|
||||
GitAdd = '',
|
||||
GitBranch = '',
|
||||
GitChange = '',
|
||||
GitConflict = '',
|
||||
GitDelete = '',
|
||||
GitIgnored = '◌',
|
||||
GitRenamed = '➜',
|
||||
GitSign = '▎',
|
||||
GitStaged = '✓',
|
||||
GitUnstaged = '✗',
|
||||
GitUntracked = '★',
|
||||
LSPLoaded = '', -- TODO: Remove unused icon in AstroNvim v4
|
||||
LSPLoading1 = '',
|
||||
LSPLoading2 = '',
|
||||
LSPLoading3 = '',
|
||||
MacroRecording = '',
|
||||
Package = '',
|
||||
Paste = '',
|
||||
Refresh = '',
|
||||
Search = '',
|
||||
Selected = '❯',
|
||||
Session = '',
|
||||
Sort = '',
|
||||
Spellcheck = '',
|
||||
Tab = '',
|
||||
TabClose = '',
|
||||
Terminal = '',
|
||||
Window = '',
|
||||
WordFile = '',
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
return {
|
||||
ActiveLSP = 'LSP:',
|
||||
ArrowLeft = '<',
|
||||
ArrowRight = '>',
|
||||
BufferClose = 'x',
|
||||
DapBreakpoint = 'B',
|
||||
DapBreakpointCondition = 'C',
|
||||
DapBreakpointRejected = 'R',
|
||||
DapLogPoint = 'L',
|
||||
DapStopped = '>',
|
||||
DefaultFile = '[F]',
|
||||
DiagnosticError = 'X',
|
||||
DiagnosticHint = '?',
|
||||
DiagnosticInfo = 'i',
|
||||
DiagnosticWarn = '!',
|
||||
Ellipsis = '...',
|
||||
FileModified = '*',
|
||||
FileReadOnly = '[lock]',
|
||||
FoldClosed = '+',
|
||||
FoldOpened = '-',
|
||||
FoldSeparator = ' ',
|
||||
FolderClosed = '[D]',
|
||||
FolderEmpty = '[E]',
|
||||
FolderOpen = '[O]',
|
||||
GitAdd = '[+]',
|
||||
GitChange = '[/]',
|
||||
GitConflict = '[!]',
|
||||
GitDelete = '[-]',
|
||||
GitIgnored = '[I]',
|
||||
GitRenamed = '[R]',
|
||||
GitSign = '|',
|
||||
GitStaged = '[S]',
|
||||
GitUnstaged = '[U]',
|
||||
GitUntracked = '[?]',
|
||||
MacroRecording = 'Recording:',
|
||||
Paste = '[PASTE]',
|
||||
Search = '?',
|
||||
Selected = '*',
|
||||
Spellcheck = '[SPELL]',
|
||||
TabClose = 'X',
|
||||
}
|
|
@ -3,13 +3,12 @@
|
|||
--
|
||||
-- See the kickstart.nvim README for more information
|
||||
vim.opt.relativenumber = true
|
||||
vim.g.have_nerd_font = false
|
||||
vim.g.have_nerd_font = true
|
||||
|
||||
return {
|
||||
-- require 'kickstart.plugins.debug',
|
||||
require('lazy').setup {
|
||||
require 'kickstart.plugins.indent_line',
|
||||
-- require 'kickstart.plugins.lint',
|
||||
require 'kickstart.plugins.autopairs',
|
||||
require 'kickstart.plugins.neo-tree',
|
||||
require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||
}
|
||||
|
||||
return {}
|
||||
|
|
|
@ -0,0 +1,130 @@
|
|||
-- Neo-tree is a Neovim plugin to browse the file system
|
||||
-- https://github.com/nvim-neo-tree/neo-tree.nvim
|
||||
|
||||
local utils = require 'custom.utils'
|
||||
local get_icon = utils.get_icon
|
||||
|
||||
return {
|
||||
'nvim-neo-tree/neo-tree.nvim',
|
||||
version = '*',
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
|
||||
'MunifTanjim/nui.nvim',
|
||||
},
|
||||
cmd = 'Neotree',
|
||||
keys = {
|
||||
{ '\\', ':Neotree reveal<CR>', { desc = 'NeoTree reveal' } },
|
||||
},
|
||||
opts = {
|
||||
close_if_last_window = true,
|
||||
sources = { 'filesystem', 'git_status' },
|
||||
source_selector = {
|
||||
winbar = true,
|
||||
content_layout = 'center',
|
||||
sources = {
|
||||
{ source = 'filesystem', display_name = get_icon('FolderClosed', 1, true) .. 'File' },
|
||||
{ source = 'git_status', display_name = get_icon('Git', 1, true) .. 'Git' },
|
||||
},
|
||||
},
|
||||
default_component_configs = {
|
||||
indent = { padding = 0 },
|
||||
icon = {
|
||||
folder_closed = get_icon 'FolderClosed',
|
||||
folder_open = get_icon 'FolderOpen',
|
||||
folder_empty = get_icon 'FolderEmpty',
|
||||
folder_empty_open = get_icon 'FolderEmpty',
|
||||
default = get_icon 'DefaultFile',
|
||||
},
|
||||
modified = { symbol = get_icon 'FileModified' },
|
||||
git_status = {
|
||||
symbols = {
|
||||
added = get_icon 'GitAdd',
|
||||
deleted = get_icon 'GitDelete',
|
||||
modified = get_icon 'GitChange',
|
||||
renamed = get_icon 'GitRenamed',
|
||||
untracked = get_icon 'GitUntracked',
|
||||
ignored = get_icon 'GitIgnored',
|
||||
unstaged = get_icon 'GitUnstaged',
|
||||
staged = get_icon 'GitStaged',
|
||||
conflict = get_icon 'GitConflict',
|
||||
},
|
||||
},
|
||||
},
|
||||
commands = {
|
||||
parent_or_close = function(state)
|
||||
local node = state.tree:get_node()
|
||||
if (node.type == 'directory' or node:has_children()) and node:is_expanded() then
|
||||
state.commands.toggle_node(state)
|
||||
else
|
||||
require('neo-tree.ui.renderer').focus_node(state, node:get_parent_id())
|
||||
end
|
||||
end,
|
||||
child_or_open = function(state)
|
||||
local node = state.tree:get_node()
|
||||
if node.type == 'directory' or node:has_children() then
|
||||
if not node:is_expanded() then -- if unexpanded, expand
|
||||
state.commands.toggle_node(state)
|
||||
else -- if expanded and has children, seleect the next child
|
||||
require('neo-tree.ui.renderer').focus_node(state, node:get_child_ids()[1])
|
||||
end
|
||||
else -- if not a directory just open it
|
||||
state.commands.open(state)
|
||||
end
|
||||
end,
|
||||
copy_selector = function(state)
|
||||
local node = state.tree:get_node()
|
||||
local filepath = node:get_id()
|
||||
local filename = node.name
|
||||
local modify = vim.fn.fnamemodify
|
||||
|
||||
local vals = {
|
||||
['BASENAME'] = modify(filename, ':r'),
|
||||
['EXTENSION'] = modify(filename, ':e'),
|
||||
['FILENAME'] = filename,
|
||||
['PATH (CWD)'] = modify(filepath, ':.'),
|
||||
['PATH (HOME)'] = modify(filepath, ':~'),
|
||||
['PATH'] = filepath,
|
||||
['URI'] = vim.uri_from_fname(filepath),
|
||||
}
|
||||
|
||||
local options = vim.tbl_filter(function(val)
|
||||
return vals[val] ~= ''
|
||||
end, vim.tbl_keys(vals))
|
||||
if vim.tbl_isempty(options) then
|
||||
utils.notify('No values to copy', vim.log.levels.WARN)
|
||||
return
|
||||
end
|
||||
table.sort(options)
|
||||
vim.ui.select(options, {
|
||||
prompt = 'Choose to copy to clipboard:',
|
||||
format_item = function(item)
|
||||
return ('%s: %s'):format(item, vals[item])
|
||||
end,
|
||||
}, function(choice)
|
||||
local result = vals[choice]
|
||||
if result then
|
||||
utils.notify(('Copied: `%s`'):format(result))
|
||||
vim.fn.setreg('+', result)
|
||||
end
|
||||
end)
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
mappings = {
|
||||
['[b'] = 'prev_source',
|
||||
[']b'] = 'next_source',
|
||||
Y = 'copy_selector',
|
||||
h = 'parent_or_close',
|
||||
l = 'child_or_open',
|
||||
},
|
||||
},
|
||||
filesystem = {
|
||||
window = {
|
||||
mappings = {
|
||||
['\\'] = 'close_window',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
local M = {}
|
||||
|
||||
function M.notify(msg, type, opts)
|
||||
vim.schedule(function()
|
||||
vim.notify(msg, type, opts)
|
||||
end)
|
||||
end
|
||||
|
||||
function M.get_icon(kind, padding, no_fallback)
|
||||
if not vim.g.have_nerd_font and no_fallback then
|
||||
return ''
|
||||
end
|
||||
local icon_pack = vim.g.have_nerd_font and 'icons' or 'text_icons'
|
||||
if not M[icon_pack] then
|
||||
M.icons = require 'custom.icons.nerd_font'
|
||||
M.text_icons = require 'custom.icons.text'
|
||||
end
|
||||
local icon = M[icon_pack] and M[icon_pack][kind]
|
||||
return icon and icon .. string.rep(' ', padding or 0) or ''
|
||||
end
|
||||
|
||||
return M
|
Loading…
Reference in New Issue