update neovim config AGAIN :(
This commit is contained in:
@@ -1,315 +1,327 @@
|
||||
vim.pack.add({
|
||||
{
|
||||
src = 'https://github.com/nvim-neo-tree/neo-tree.nvim',
|
||||
version = vim.version.range('3')
|
||||
},
|
||||
'https://github.com/nvim-lua/plenary.nvim',
|
||||
'https://github.com/MunifTanjim/nui.nvim',
|
||||
'https://github.com/nvim-tree/nvim-web-devicons',
|
||||
'https://github.com/antosha417/nvim-lsp-file-operations',
|
||||
'https://github.com/3rd/image.nvim',
|
||||
{
|
||||
src = 'https://github.com/s1n7ax/nvim-window-picker',
|
||||
version = vim.version.range('2'),
|
||||
},
|
||||
})
|
||||
require('lsp-file-operations').setup()
|
||||
require('window-picker').setup({
|
||||
filter_rules = {
|
||||
include_current_win = false,
|
||||
autoselect_one = true,
|
||||
bo = {
|
||||
filetype = { "neo-tree", "neo-tree-popup", "notify" },
|
||||
buftype = { "terminal", "quickfix" },
|
||||
},
|
||||
},
|
||||
})
|
||||
require('neo-tree').setup({
|
||||
vim.diagnostic.config({
|
||||
signs = {
|
||||
text = {
|
||||
[vim.diagnostic.severity.ERROR] = '',
|
||||
[vim.diagnostic.severity.WARN] = '',
|
||||
[vim.diagnostic.severity.INFO] = '',
|
||||
[vim.diagnostic.severity.HINT] = '',
|
||||
},
|
||||
}
|
||||
}),
|
||||
close_if_last_window = true,
|
||||
enable_git_status = true,
|
||||
enable_diagnostics = true,
|
||||
open_files_do_not_replace_types = { 'terminal', 'trouble', 'qf' },
|
||||
open_files_using_relative_paths = false,
|
||||
sort_case_insensitive = true,
|
||||
sort_function = nil,
|
||||
default_component_configs = {
|
||||
container = {
|
||||
enable_character_fade = true,
|
||||
},
|
||||
indent = {
|
||||
indent_size = 2,
|
||||
padding = 1,
|
||||
with_markers = true,
|
||||
indent_marker = '│',
|
||||
last_indent_marker = '└',
|
||||
highlight = 'NeoTreeIndentMarker',
|
||||
with_expanders = nil,
|
||||
expander_collapsed = '',
|
||||
expander_expanded = '',
|
||||
expander_highlight = 'NeoTreeExpander',
|
||||
},
|
||||
icon = {
|
||||
folder_closed = '',
|
||||
folder_open = '',
|
||||
folder_empty = '',
|
||||
provider = function(icon, node, state)
|
||||
if node.type == 'file' or node.type == 'terminal' then
|
||||
local success, web_devicons = pcall(require, 'nvim-web-devicons')
|
||||
local name = node.type == 'terminal' and 'terminal' or node.name
|
||||
if success then
|
||||
local devicon, hl = web_devicons.get_icon(name)
|
||||
icon.text = devicon or icon.text
|
||||
icon.highlight = hl or icon.highlight
|
||||
end
|
||||
end
|
||||
end,
|
||||
default = '*',
|
||||
highlight = 'NeoTreeFileIcon',
|
||||
},
|
||||
modified = {
|
||||
symbol = '[+]',
|
||||
highlight = 'NeoTreeModified',
|
||||
},
|
||||
name = {
|
||||
trailing_slash = false,
|
||||
use_git_status_colors = true,
|
||||
highlight = 'NeoTreeFileName',
|
||||
},
|
||||
git_status = {
|
||||
symbols = {
|
||||
added = '',
|
||||
modified = '',
|
||||
deleted = '✖',
|
||||
renamed = '',
|
||||
untracked = '',
|
||||
ignored = '',
|
||||
unstaged = '',
|
||||
staged = '',
|
||||
conflict = '',
|
||||
},
|
||||
},
|
||||
file_size = {
|
||||
enabled = true,
|
||||
width = 12,
|
||||
required_width = 64,
|
||||
},
|
||||
type = {
|
||||
enabled = true,
|
||||
width = 10,
|
||||
required_width = 122,
|
||||
},
|
||||
last_modified = {
|
||||
enabled = true,
|
||||
width = 20,
|
||||
required_width = 88,
|
||||
},
|
||||
created = {
|
||||
enabled = true,
|
||||
width = 20,
|
||||
required_width = 110,
|
||||
},
|
||||
symlink_target = {
|
||||
enabled = false,
|
||||
},
|
||||
},
|
||||
window = {
|
||||
position = 'left',
|
||||
width = 30,
|
||||
mapping_options = {
|
||||
noremap = true,
|
||||
nowait = true,
|
||||
},
|
||||
mappings = {
|
||||
['<space>'] = {
|
||||
'toggle_node',
|
||||
nowait = false,
|
||||
},
|
||||
['<2-LeftMouse>'] = 'open',
|
||||
['<cr>'] = 'open',
|
||||
['<esc>'] = 'cancel',
|
||||
['P'] = { 'toggle_preview', config = { use_float = true, use_image_nvim = true } },
|
||||
['l'] = 'focus_preview',
|
||||
['S'] = 'open_split',
|
||||
['s'] = 'open_vsplit',
|
||||
['t'] = 'open_tabnew',
|
||||
['w'] = 'open_with_window_picker',
|
||||
['C'] = 'close_node',
|
||||
['z'] = 'close_all_nodes',
|
||||
['a'] = {
|
||||
'add',
|
||||
config = {
|
||||
show_path = 'relative',
|
||||
return {
|
||||
'nvim-neo-tree/neo-tree.nvim',
|
||||
config = function()
|
||||
vim.diagnostic.config({
|
||||
signs = {
|
||||
text = {
|
||||
[vim.diagnostic.severity.ERROR] = '',
|
||||
[vim.diagnostic.severity.WARN] = '',
|
||||
[vim.diagnostic.severity.INFO] = '',
|
||||
[vim.diagnostic.severity.HINT] = '',
|
||||
},
|
||||
}
|
||||
})
|
||||
require'neo-tree'.setup({
|
||||
close_if_last_window = true,
|
||||
enable_git_status = true,
|
||||
enable_diagnostics = true,
|
||||
open_files_do_not_replace_types = { 'terminal', 'trouble', 'qf' },
|
||||
open_files_using_relative_paths = false,
|
||||
sort_case_insensitive = true,
|
||||
sort_function = nil,
|
||||
default_component_configs = {
|
||||
container = {
|
||||
enable_character_fade = true,
|
||||
},
|
||||
indent = {
|
||||
indent_size = 2,
|
||||
padding = 1,
|
||||
with_markers = true,
|
||||
indent_marker = '│',
|
||||
last_indent_marker = '└',
|
||||
highlight = 'NeoTreeIndentMarker',
|
||||
with_expanders = nil,
|
||||
expander_collapsed = '',
|
||||
expander_expanded = '',
|
||||
expander_highlight = 'NeoTreeExpander',
|
||||
},
|
||||
icon = {
|
||||
folder_closed = '',
|
||||
folder_open = '',
|
||||
folder_empty = '',
|
||||
provider = function(icon, node, state)
|
||||
if node.type == 'file' or node.type == 'terminal' then
|
||||
local success, web_devicons = pcall(require, 'nvim-web-devicons')
|
||||
local name = node.type == 'terminal' and 'terminal' or node.name
|
||||
if success then
|
||||
local devicon, hl = web_devicons.get_icon(name)
|
||||
icon.text = devicon or icon.text
|
||||
icon.highlight = hl or icon.highlight
|
||||
end
|
||||
end
|
||||
end,
|
||||
default = '*',
|
||||
highlight = 'NeoTreeFileIcon',
|
||||
},
|
||||
modified = {
|
||||
symbol = '[+]',
|
||||
highlight = 'NeoTreeModified',
|
||||
},
|
||||
name = {
|
||||
trailing_slash = false,
|
||||
use_git_status_colors = true,
|
||||
highlight = 'NeoTreeFileName',
|
||||
},
|
||||
git_status = {
|
||||
symbols = {
|
||||
added = '',
|
||||
modified = '',
|
||||
deleted = '✖',
|
||||
renamed = '',
|
||||
untracked = '',
|
||||
ignored = '',
|
||||
unstaged = '',
|
||||
staged = '',
|
||||
conflict = '',
|
||||
},
|
||||
},
|
||||
file_size = {
|
||||
enabled = true,
|
||||
width = 12,
|
||||
required_width = 64,
|
||||
},
|
||||
type = {
|
||||
enabled = true,
|
||||
width = 10,
|
||||
required_width = 122,
|
||||
},
|
||||
last_modified = {
|
||||
enabled = true,
|
||||
width = 20,
|
||||
required_width = 88,
|
||||
},
|
||||
created = {
|
||||
enabled = true,
|
||||
width = 20,
|
||||
required_width = 110,
|
||||
},
|
||||
symlink_target = {
|
||||
enabled = false,
|
||||
},
|
||||
},
|
||||
['A'] = 'add_directory',
|
||||
['d'] = 'delete',
|
||||
['r'] = 'rename',
|
||||
['b'] = 'rename_basename',
|
||||
['y'] = 'copy_to_clipboard',
|
||||
['x'] = 'cut_to_clipboard',
|
||||
['p'] = 'paste_from_clipboard',
|
||||
['c'] = { 'copy', config = { show_path = 'relative' } },
|
||||
['m'] = { 'move', config = { show_path = 'relative' } },
|
||||
['q'] = 'close_window',
|
||||
['R'] = 'refresh',
|
||||
['?'] = 'show_help',
|
||||
['<'] = 'prev_source',
|
||||
['>'] = 'next_source',
|
||||
['i'] = 'show_file_details',
|
||||
window = {
|
||||
position = 'left',
|
||||
width = 30,
|
||||
mapping_options = {
|
||||
noremap = true,
|
||||
nowait = true,
|
||||
},
|
||||
mappings = {
|
||||
['<space>'] = {
|
||||
'toggle_node',
|
||||
nowait = false,
|
||||
},
|
||||
['<2-LeftMouse>'] = 'open',
|
||||
['<cr>'] = 'open',
|
||||
['<esc>'] = 'cancel',
|
||||
['P'] = { 'toggle_preview', config = { use_float = true, use_image_nvim = true } },
|
||||
['l'] = 'focus_preview',
|
||||
['S'] = 'open_split',
|
||||
['s'] = 'open_vsplit',
|
||||
['t'] = 'open_tabnew',
|
||||
['w'] = 'open_with_window_picker',
|
||||
['C'] = 'close_node',
|
||||
['z'] = 'close_all_nodes',
|
||||
['a'] = {
|
||||
'add',
|
||||
config = {
|
||||
show_path = 'relative',
|
||||
},
|
||||
},
|
||||
['A'] = 'add_directory',
|
||||
['d'] = 'delete',
|
||||
['r'] = 'rename',
|
||||
['b'] = 'rename_basename',
|
||||
['y'] = 'copy_to_clipboard',
|
||||
['x'] = 'cut_to_clipboard',
|
||||
['p'] = 'paste_from_clipboard',
|
||||
['c'] = { 'copy', config = { show_path = 'relative' } },
|
||||
['m'] = { 'move', config = { show_path = 'relative' } },
|
||||
['q'] = 'close_window',
|
||||
['R'] = 'refresh',
|
||||
['?'] = 'show_help',
|
||||
['<'] = 'prev_source',
|
||||
['>'] = 'next_source',
|
||||
['i'] = 'show_file_details',
|
||||
},
|
||||
},
|
||||
filesystem = {
|
||||
filtered_items = {
|
||||
visible = false,
|
||||
hide_dotfiles = true,
|
||||
hide_gitignored = true,
|
||||
hide_hidden = true,
|
||||
hide_by_name = {
|
||||
'node_modules',
|
||||
'.next',
|
||||
'.vscode',
|
||||
'.idea',
|
||||
},
|
||||
hide_by_pattern = {
|
||||
'*.meta',
|
||||
'*/src/*/tsconfig.json',
|
||||
},
|
||||
always_show = {
|
||||
'.gitignored',
|
||||
},
|
||||
always_show_by_pattern = { -- uses glob style patterns
|
||||
'.env*',
|
||||
},
|
||||
never_show = {
|
||||
'.DS_Store',
|
||||
'thumbs.db'
|
||||
},
|
||||
never_show_by_pattern = {},
|
||||
},
|
||||
follow_current_file = {
|
||||
enabled = false,
|
||||
leave_dirs_open = false,
|
||||
},
|
||||
group_empty_dirs = false,
|
||||
hijack_netrw_behavior = 'open_default',
|
||||
use_libuv_file_watcher = false,
|
||||
commands = {
|
||||
avante_add_files = function(state)
|
||||
local node = state.tree:get_node()
|
||||
local filepath = node:get_id()
|
||||
local relative_path = require('avante.utils').relative_path(filepath)
|
||||
local sidebar = require('avante').get()
|
||||
local open = sidebar:is_open()
|
||||
if not open then
|
||||
require('avante.api').ask()
|
||||
sidebar = require('avante').get()
|
||||
end
|
||||
sidebar.file_selector:add_selected_file(relative_path)
|
||||
if not open then
|
||||
sidebar.file_selector:remove_selected_file('neo-tree filesystem [1]')
|
||||
end
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
mappings = {
|
||||
['<bs>'] = 'navigate_up',
|
||||
['.'] = 'set_root',
|
||||
['H'] = 'toggle_hidden',
|
||||
['/'] = 'fuzzy_finder',
|
||||
['D'] = 'fuzzy_finder_directory',
|
||||
['#'] = 'fuzzy_sorter',
|
||||
-- ['D'] = 'fuzzy_sorter_directory',
|
||||
['f'] = 'filter_on_submit',
|
||||
['<c-x>'] = 'clear_filter',
|
||||
['[g'] = 'prev_git_modified',
|
||||
[']g'] = 'next_git_modified',
|
||||
['o'] = {
|
||||
'show_help',
|
||||
nowait = false,
|
||||
config = { title = 'Order by', prefix_key = 'o' },
|
||||
},
|
||||
['oa'] = 'avante_add_files',
|
||||
['oc'] = { 'order_by_created', nowait = false },
|
||||
['od'] = { 'order_by_diagnostics', nowait = false },
|
||||
['og'] = { 'order_by_git_status', nowait = false },
|
||||
['om'] = { 'order_by_modified', nowait = false },
|
||||
['on'] = { 'order_by_name', nowait = false },
|
||||
['os'] = { 'order_by_size', nowait = false },
|
||||
['ot'] = { 'order_by_type', nowait = false },
|
||||
},
|
||||
fuzzy_finder_mappings = {
|
||||
['<down>'] = 'move_cursor_down',
|
||||
['<C-n>'] = 'move_cursor_down',
|
||||
['<up>'] = 'move_cursor_up',
|
||||
['<C-p>'] = 'move_cursor_up',
|
||||
['<esc>'] = 'close',
|
||||
},
|
||||
},
|
||||
},
|
||||
buffers = {
|
||||
follow_current_file = {
|
||||
enabled = true,
|
||||
leave_dirs_open = false,
|
||||
},
|
||||
group_empty_dirs = true,
|
||||
show_unloaded = true,
|
||||
window = {
|
||||
mappings = {
|
||||
['d'] = 'buffer_delete',
|
||||
['bd'] = 'buffer_delete',
|
||||
['<bs>'] = 'navigate_up',
|
||||
['.'] = 'set_root',
|
||||
['o'] = {
|
||||
'show_help',
|
||||
nowait = false,
|
||||
config = { title = 'Order by', prefix_key = 'o' },
|
||||
},
|
||||
['oc'] = { 'order_by_created', nowait = false },
|
||||
['od'] = { 'order_by_diagnostics', nowait = false },
|
||||
['om'] = { 'order_by_modified', nowait = false },
|
||||
['on'] = { 'order_by_name', nowait = false },
|
||||
['os'] = { 'order_by_size', nowait = false },
|
||||
['ot'] = { 'order_by_type', nowait = false },
|
||||
},
|
||||
},
|
||||
},
|
||||
git_status = {
|
||||
window = {
|
||||
position = 'float',
|
||||
mappings = {
|
||||
['A'] = 'git_add_all',
|
||||
['gu'] = 'git_unstage_file',
|
||||
['gU'] = 'git_undo_last_commit',
|
||||
['ga'] = 'git_add_file',
|
||||
['gr'] = 'git_revert_file',
|
||||
['gc'] = 'git_commit',
|
||||
['gp'] = 'git_push',
|
||||
['gg'] = 'git_commit_and_push',
|
||||
['o'] = {
|
||||
'show_help',
|
||||
nowait = false,
|
||||
config = { title = 'Order by', prefix_key = 'o' },
|
||||
},
|
||||
['oc'] = { 'order_by_created', nowait = false },
|
||||
['od'] = { 'order_by_diagnostics', nowait = false },
|
||||
['om'] = { 'order_by_modified', nowait = false },
|
||||
['on'] = { 'order_by_name', nowait = false },
|
||||
['os'] = { 'order_by_size', nowait = false },
|
||||
['ot'] = { 'order_by_type', nowait = false },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
keys = {
|
||||
{
|
||||
'<leader>t',
|
||||
':Neotree toggle<CR>',
|
||||
mode = { 'n', 'v', 'x'},
|
||||
silent = true,
|
||||
desc = 'Toggle NeoTree',
|
||||
},
|
||||
{
|
||||
'<leader>T',
|
||||
':Neotree focus<CR>',
|
||||
mode = { 'n', 'v', 'x' },
|
||||
silent = true, desc = 'Focus NeoTree',
|
||||
},
|
||||
},
|
||||
filesystem = {
|
||||
filtered_items = {
|
||||
visible = false,
|
||||
hide_dotfiles = true,
|
||||
hide_gitignored = true,
|
||||
hide_hidden = true,
|
||||
hide_by_name = {
|
||||
'node_modules',
|
||||
'.next',
|
||||
'.vscode',
|
||||
'.idea',
|
||||
},
|
||||
hide_by_pattern = {
|
||||
'*.meta',
|
||||
'*/src/*/tsconfig.json',
|
||||
},
|
||||
always_show = {
|
||||
'.gitignored',
|
||||
},
|
||||
always_show_by_pattern = { -- uses glob style patterns
|
||||
'.env*',
|
||||
},
|
||||
never_show = {
|
||||
'.DS_Store',
|
||||
'thumbs.db'
|
||||
},
|
||||
never_show_by_pattern = {},
|
||||
},
|
||||
follow_current_file = {
|
||||
enabled = false,
|
||||
leave_dirs_open = false,
|
||||
},
|
||||
group_empty_dirs = false,
|
||||
hijack_netrw_behavior = 'open_default',
|
||||
use_libuv_file_watcher = false,
|
||||
commands = {
|
||||
avante_add_files = function(state)
|
||||
local node = state.tree:get_node()
|
||||
local filepath = node:get_id()
|
||||
local relative_path = require('avante.utils').relative_path(filepath)
|
||||
local sidebar = require('avante').get()
|
||||
local open = sidebar:is_open()
|
||||
if not open then
|
||||
require('avante.api').ask()
|
||||
sidebar = require('avante').get()
|
||||
end
|
||||
sidebar.file_selector:add_selected_file(relative_path)
|
||||
if not open then
|
||||
sidebar.file_selector:remove_selected_file('neo-tree filesystem [1]')
|
||||
end
|
||||
branch = 'v3.x',
|
||||
dependencies = {
|
||||
{ 'nvim-lua/plenary.nvim', },
|
||||
{ 'MunifTanjim/nui.nvim', },
|
||||
{ 'nvim-tree/nvim-web-devicons', },
|
||||
{
|
||||
'antosha417/nvim-lsp-file-operations',
|
||||
config = function()
|
||||
require'lsp-file-operations'.setup({})
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
mappings = {
|
||||
['<bs>'] = 'navigate_up',
|
||||
['.'] = 'set_root',
|
||||
['H'] = 'toggle_hidden',
|
||||
['/'] = 'fuzzy_finder',
|
||||
['D'] = 'fuzzy_finder_directory',
|
||||
['#'] = 'fuzzy_sorter',
|
||||
-- ['D'] = 'fuzzy_sorter_directory',
|
||||
['f'] = 'filter_on_submit',
|
||||
['<c-x>'] = 'clear_filter',
|
||||
['[g'] = 'prev_git_modified',
|
||||
[']g'] = 'next_git_modified',
|
||||
['o'] = {
|
||||
'show_help',
|
||||
nowait = false,
|
||||
config = { title = 'Order by', prefix_key = 'o' },
|
||||
},
|
||||
['oa'] = 'avante_add_files',
|
||||
['oc'] = { 'order_by_created', nowait = false },
|
||||
['od'] = { 'order_by_diagnostics', nowait = false },
|
||||
['og'] = { 'order_by_git_status', nowait = false },
|
||||
['om'] = { 'order_by_modified', nowait = false },
|
||||
['on'] = { 'order_by_name', nowait = false },
|
||||
['os'] = { 'order_by_size', nowait = false },
|
||||
['ot'] = { 'order_by_type', nowait = false },
|
||||
},
|
||||
fuzzy_finder_mappings = {
|
||||
['<down>'] = 'move_cursor_down',
|
||||
['<C-n>'] = 'move_cursor_down',
|
||||
['<up>'] = 'move_cursor_up',
|
||||
['<C-p>'] = 'move_cursor_up',
|
||||
['<esc>'] = 'close',
|
||||
},
|
||||
{ '3rd/image.nvim', },
|
||||
{
|
||||
's1n7ax/nvim-window-picker',
|
||||
version = '2.*',
|
||||
config = function()
|
||||
require'window-picker'.setup({})
|
||||
end,
|
||||
},
|
||||
},
|
||||
buffers = {
|
||||
follow_current_file = {
|
||||
enabled = true,
|
||||
leave_dirs_open = false,
|
||||
},
|
||||
group_empty_dirs = true,
|
||||
show_unloaded = true,
|
||||
window = {
|
||||
mappings = {
|
||||
['d'] = 'buffer_delete',
|
||||
['bd'] = 'buffer_delete',
|
||||
['<bs>'] = 'navigate_up',
|
||||
['.'] = 'set_root',
|
||||
['o'] = {
|
||||
'show_help',
|
||||
nowait = false,
|
||||
config = { title = 'Order by', prefix_key = 'o' },
|
||||
},
|
||||
['oc'] = { 'order_by_created', nowait = false },
|
||||
['od'] = { 'order_by_diagnostics', nowait = false },
|
||||
['om'] = { 'order_by_modified', nowait = false },
|
||||
['on'] = { 'order_by_name', nowait = false },
|
||||
['os'] = { 'order_by_size', nowait = false },
|
||||
['ot'] = { 'order_by_type', nowait = false },
|
||||
},
|
||||
},
|
||||
},
|
||||
git_status = {
|
||||
window = {
|
||||
position = 'float',
|
||||
mappings = {
|
||||
['A'] = 'git_add_all',
|
||||
['gu'] = 'git_unstage_file',
|
||||
['gU'] = 'git_undo_last_commit',
|
||||
['ga'] = 'git_add_file',
|
||||
['gr'] = 'git_revert_file',
|
||||
['gc'] = 'git_commit',
|
||||
['gp'] = 'git_push',
|
||||
['gg'] = 'git_commit_and_push',
|
||||
['o'] = {
|
||||
'show_help',
|
||||
nowait = false,
|
||||
config = { title = 'Order by', prefix_key = 'o' },
|
||||
},
|
||||
['oc'] = { 'order_by_created', nowait = false },
|
||||
['od'] = { 'order_by_diagnostics', nowait = false },
|
||||
['om'] = { 'order_by_modified', nowait = false },
|
||||
['on'] = { 'order_by_name', nowait = false },
|
||||
['os'] = { 'order_by_size', nowait = false },
|
||||
['ot'] = { 'order_by_type', nowait = false },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
-- Neotree
|
||||
vim.keymap.set({'n', 'v', 'x' }, '<leader>t', ':Neotree toggle<CR>')
|
||||
vim.keymap.set({'n', 'v', 'x' }, '<leader>T', ':Neotree focus<CR>')
|
||||
lazy = false,
|
||||
}
|
||||
|
Reference in New Issue
Block a user