update neovim config AGAIN :(
This commit is contained in:
@@ -1,220 +1,241 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/yetone/avante.nvim' },
|
||||
{ src = 'https://github.com/nvim-lua/plenary.nvim' },
|
||||
{ src = 'https://github.com/MunifTanjim/nui.nvim' },
|
||||
{ src = 'https://github.com/hrsh7th/nvim-cmp' },
|
||||
{ src = 'https://github.com/nvim-treesitter/nvim-treesitter' },
|
||||
{ src = 'https://github.com/stevearc/dressing.nvim' },
|
||||
{ src = 'https://github.com/nvim-tree/nvim-web-devicons' },
|
||||
{ src = 'https://github.com/HakonHarnes/img-clip.nvim' },
|
||||
{ src = 'https://github.com/MeanderingProgrammer/render-markdown.nvim' },
|
||||
{ src = 'https://github.com/ravitemer/mcphub.nvim' },
|
||||
})
|
||||
require'avante'.setup({
|
||||
provider = 'openai',
|
||||
auto_suggestions_provider = 'openai',
|
||||
providers = {
|
||||
claude = {
|
||||
endpoint = 'https://api.anthropic.com',
|
||||
model = 'claude-sonnet-4-20250514',
|
||||
timeout = 30000,
|
||||
extra_request_body = {
|
||||
temperature = 0.75,
|
||||
max_tokens = 4096,
|
||||
},
|
||||
},
|
||||
openai = {
|
||||
endpoint = 'https://api.openai.com/v1',
|
||||
model = 'gpt-5',
|
||||
extra_request_body = {
|
||||
return {
|
||||
'yetone/avante.nvim',
|
||||
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
|
||||
-- ⚠️ must add this setting! ! !
|
||||
build = vim.fn.has('win32') ~= 0
|
||||
and 'powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false'
|
||||
or 'make',
|
||||
event = 'VeryLazy',
|
||||
version = false, -- Never set this value to '*'! Never!
|
||||
---@module 'avante'
|
||||
---@type avante.Config
|
||||
opts = {
|
||||
instructions_file = 'avante.md',
|
||||
provider = 'openai',
|
||||
auto_suggestions_provider = 'openai',
|
||||
providers = {
|
||||
claude = {
|
||||
endpoint = 'https://api.anthropic.com',
|
||||
model = 'claude-sonnet-4-20250514',
|
||||
timeout = 30000,
|
||||
temperature = 0,
|
||||
max_completion_tokens = 8192,
|
||||
extra_request_body = {
|
||||
temperature = 0.75,
|
||||
max_tokens = 4096,
|
||||
},
|
||||
},
|
||||
openai = {
|
||||
endpoint = 'https://api.openai.com/v1',
|
||||
model = 'gpt-5',
|
||||
extra_request_body = {
|
||||
timeout = 30000,
|
||||
temperature = 0,
|
||||
max_completion_tokens = 8192,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
rag_service = {
|
||||
enabled = false,
|
||||
host_path = '/home/gib/Documents/Code',
|
||||
runner = 'docker',
|
||||
llm = {
|
||||
provider = 'openai',
|
||||
endpoint = 'https://api.openai.com/v1',
|
||||
api_key = 'OPENAI_API_KEY',
|
||||
model = 'gpt-4o-mini',
|
||||
extra = {
|
||||
temperature = 0.7,
|
||||
max_tokens = 512,
|
||||
timeout = 60,
|
||||
rag_service = {
|
||||
enabled = false,
|
||||
host_path = '/home/gib/Documents/Code',
|
||||
runner = 'docker',
|
||||
llm = {
|
||||
provider = 'openai',
|
||||
endpoint = 'https://api.openai.com/v1',
|
||||
api_key = 'OPENAI_API_KEY',
|
||||
model = 'gpt-5',
|
||||
extra = {
|
||||
temperature = 0.7,
|
||||
max_tokens = 512,
|
||||
timeout = 60,
|
||||
},
|
||||
},
|
||||
embed = {
|
||||
provider = 'openai',
|
||||
endpoint = 'https://api.openai.com/v1',
|
||||
api_key = 'OPENAI_API_KEY',
|
||||
model = 'text-embedding-3-large',
|
||||
extra = nil,
|
||||
},
|
||||
docker_extra_args = '',
|
||||
},
|
||||
web_search_engine = {
|
||||
provider = 'searxng',
|
||||
proxy = nil,
|
||||
},
|
||||
system_prompt = function()
|
||||
local hub = require('mcphub').get_hub_instance()
|
||||
return hub and hub:get_active_servers_prompt() or ''
|
||||
end,
|
||||
custom_tools = function()
|
||||
return {
|
||||
require('mcphub.extensions.avante').mcp_tool(),
|
||||
}
|
||||
end,
|
||||
behaviour = {
|
||||
auto_suggestions = false,
|
||||
auto_set_highlight_group = true,
|
||||
auto_set_keymaps = true,
|
||||
auto_apply_diff_after_generation = false,
|
||||
support_paste_from_clipboard = false,
|
||||
minimize_diff = true,
|
||||
enable_token_counting = true,
|
||||
auto_approve_tool_permissions = true,
|
||||
},
|
||||
mappings = {
|
||||
--- @class AvanteConflictMappings
|
||||
diff = {
|
||||
ours = 'co',
|
||||
theirs = 'ct',
|
||||
all_theirs = 'ca',
|
||||
both = 'cb',
|
||||
cursor = 'cc',
|
||||
next = ']x',
|
||||
prev = '[x',
|
||||
},
|
||||
suggestion = {
|
||||
accept = '<M-l>',
|
||||
next = '<M-]>',
|
||||
prev = '<M-[>',
|
||||
dismiss = '<C-]>',
|
||||
},
|
||||
jump = {
|
||||
next = ']]',
|
||||
prev = '[[',
|
||||
},
|
||||
submit = {
|
||||
normal = '<CR>',
|
||||
insert = '<C-s>',
|
||||
},
|
||||
cancel = {
|
||||
normal = { '<C-c>', '<Esc>', 'q' },
|
||||
insert = { '<C-c>' },
|
||||
},
|
||||
sidebar = {
|
||||
apply_all = 'A',
|
||||
apply_cursor = 'a',
|
||||
retry_user_request = 'r',
|
||||
edit_user_request = 'e',
|
||||
switch_windows = '<Tab>',
|
||||
reverse_switch_windows = '<S-Tab>',
|
||||
remove_file = 'd',
|
||||
add_file = '@',
|
||||
close = { '<Esc>', 'q' },
|
||||
close_from_input = nil,
|
||||
},
|
||||
},
|
||||
embed = {
|
||||
provider = 'openai',
|
||||
endpoint = 'https://api.openai.com/v1',
|
||||
api_key = 'OPENAI_API_KEY',
|
||||
model = 'text-embedding-3-large',
|
||||
extra = nil,
|
||||
hints = { enabled = true },
|
||||
windows = {
|
||||
---@type 'right' | 'left' | 'top' | 'bottom'
|
||||
position = 'right',
|
||||
wrap = true,
|
||||
width = 35,
|
||||
sidebar_header = {
|
||||
enabled = true,
|
||||
align = 'center',
|
||||
rounded = true,
|
||||
},
|
||||
input = {
|
||||
prefix = '> ',
|
||||
height = 8,
|
||||
},
|
||||
edit = {
|
||||
border = 'rounded',
|
||||
start_insert = true,
|
||||
},
|
||||
ask = {
|
||||
floating = false,
|
||||
start_insert = true,
|
||||
border = 'rounded',
|
||||
---@type 'ours' | 'theirs'
|
||||
focus_on_apply = 'ours',
|
||||
},
|
||||
},
|
||||
docker_extra_args = '',
|
||||
},
|
||||
web_search_engine = {
|
||||
provider = 'searxng',
|
||||
proxy = nil,
|
||||
},
|
||||
system_prompt = function()
|
||||
local hub = require('mcphub').get_hub_instance()
|
||||
return hub and hub:get_active_servers_prompt() or ''
|
||||
end,
|
||||
custom_tools = function()
|
||||
return {
|
||||
require('mcphub.extensions.avante').mcp_tool(),
|
||||
}
|
||||
end,
|
||||
behaviour = {
|
||||
auto_suggestions = false,
|
||||
auto_set_highlight_group = true,
|
||||
auto_set_keymaps = true,
|
||||
auto_apply_diff_after_generation = false,
|
||||
support_paste_from_clipboard = false,
|
||||
minimize_diff = true,
|
||||
enable_token_counting = true,
|
||||
auto_approve_tool_permissions = true,
|
||||
},
|
||||
mappings = {
|
||||
--- @class AvanteConflictMappings
|
||||
highlights = {
|
||||
diff = {
|
||||
current = 'DiffText',
|
||||
incoming = 'DiffAdd',
|
||||
},
|
||||
},
|
||||
--- @class AvanteConflictUserConfig
|
||||
diff = {
|
||||
ours = 'co',
|
||||
theirs = 'ct',
|
||||
all_theirs = 'ca',
|
||||
both = 'cb',
|
||||
cursor = 'cc',
|
||||
next = ']x',
|
||||
prev = '[x',
|
||||
autojump = true,
|
||||
---@type string | fun(): any
|
||||
list_opener = 'copen',
|
||||
override_timeoutlen = 500,
|
||||
},
|
||||
suggestion = {
|
||||
accept = '<M-l>',
|
||||
next = '<M-]>',
|
||||
prev = '<M-[>',
|
||||
dismiss = '<C-]>',
|
||||
},
|
||||
jump = {
|
||||
next = ']]',
|
||||
prev = '[[',
|
||||
},
|
||||
submit = {
|
||||
normal = '<CR>',
|
||||
insert = '<C-s>',
|
||||
},
|
||||
cancel = {
|
||||
normal = { '<C-c>', '<Esc>', 'q' },
|
||||
insert = { '<C-c>' },
|
||||
},
|
||||
sidebar = {
|
||||
apply_all = 'A',
|
||||
apply_cursor = 'a',
|
||||
retry_user_request = 'r',
|
||||
edit_user_request = 'e',
|
||||
switch_windows = '<Tab>',
|
||||
reverse_switch_windows = '<S-Tab>',
|
||||
remove_file = 'd',
|
||||
add_file = '@',
|
||||
close = { '<Esc>', 'q' },
|
||||
close_from_input = nil,
|
||||
debounce = 1000,
|
||||
throttle = 1000,
|
||||
},
|
||||
},
|
||||
hints = { enabled = true },
|
||||
windows = {
|
||||
---@type 'right' | 'left' | 'top' | 'bottom'
|
||||
position = 'right',
|
||||
wrap = true,
|
||||
width = 35,
|
||||
sidebar_header = {
|
||||
enabled = true,
|
||||
align = 'center',
|
||||
rounded = true,
|
||||
dependencies = {
|
||||
{ 'nvim-lua/plenary.nvim' },
|
||||
{ 'MunifTanjim/nui.nvim' },
|
||||
{ 'hrsh7th/nvim-cmp' },
|
||||
{ 'nvim-treesitter/nvim-treesitter' },
|
||||
{ 'stevearc/dressing.nvim' },
|
||||
{ 'nvim-tree/nvim-web-devicons' },
|
||||
{ 'folke/snacks.nvim' },
|
||||
{
|
||||
'ravitemer/mcphub.nvim',
|
||||
build = "npm install -g mcp-hub@latest",
|
||||
config = function()
|
||||
require'mcphub'.setup({
|
||||
config = vim.fn.expand('/home/gib/.config/mcphub/servers.json'),
|
||||
port = 37373,
|
||||
shutdown_delay = 60 * 10 * 000,
|
||||
use_bundled_binary = false,
|
||||
mcp_request_timeout = 60000,
|
||||
auto_approve = true,
|
||||
auto_toggle_mcp_servers = true,
|
||||
extensions = {
|
||||
avante = {
|
||||
make_slash_commands = true,
|
||||
},
|
||||
},
|
||||
native_servers = {},
|
||||
ui = {
|
||||
window = {
|
||||
width = 0.8,
|
||||
height = 0.8,
|
||||
align = 'center',
|
||||
relative = 'editor',
|
||||
zindex = 50,
|
||||
border = 'rounded',
|
||||
},
|
||||
wo = {
|
||||
winhl = 'Normal:MCPHubNormal,FloatBorder:MCPHubBorder',
|
||||
},
|
||||
},
|
||||
log = {
|
||||
level = vim.log.levels.WARN,
|
||||
to_file = false,
|
||||
file_path = nil,
|
||||
prefix = 'MCPHub',
|
||||
},
|
||||
})
|
||||
end
|
||||
},
|
||||
input = {
|
||||
prefix = '> ',
|
||||
height = 8,
|
||||
{
|
||||
-- support for image pasting
|
||||
'HakonHarnes/img-clip.nvim',
|
||||
event = 'VeryLazy',
|
||||
opts = {
|
||||
-- recommended settings
|
||||
default = {
|
||||
embed_image_as_base64 = false,
|
||||
prompt_for_file_name = false,
|
||||
drag_and_drop = {
|
||||
insert_mode = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
edit = {
|
||||
border = 'rounded',
|
||||
start_insert = true,
|
||||
},
|
||||
ask = {
|
||||
floating = false,
|
||||
start_insert = true,
|
||||
border = 'rounded',
|
||||
---@type 'ours' | 'theirs'
|
||||
focus_on_apply = 'ours',
|
||||
{
|
||||
'MeanderingProgrammer/render-markdown.nvim',
|
||||
opts = {
|
||||
file_types = { 'markdown', 'Avante' },
|
||||
},
|
||||
ft = { 'markdown', 'Avante' },
|
||||
},
|
||||
},
|
||||
highlights = {
|
||||
diff = {
|
||||
current = 'DiffText',
|
||||
incoming = 'DiffAdd',
|
||||
},
|
||||
},
|
||||
--- @class AvanteConflictUserConfig
|
||||
diff = {
|
||||
autojump = true,
|
||||
---@type string | fun(): any
|
||||
list_opener = 'copen',
|
||||
override_timeoutlen = 500,
|
||||
},
|
||||
suggestion = {
|
||||
debounce = 1000,
|
||||
throttle = 1000,
|
||||
},
|
||||
})
|
||||
require'img-clip'.setup({
|
||||
default = {
|
||||
embed_image_as_base64 = false,
|
||||
prompt_for_file_name = false,
|
||||
drag_and_drop = {
|
||||
insert_mode = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
require'render-markdown'.setup({
|
||||
file_types = { 'markdown', 'Avante' },
|
||||
})
|
||||
require'mcphub'.setup({
|
||||
config = vim.fn.expand('/home/gib/.config/mcphub/servers.json'),
|
||||
port = 37373,
|
||||
shutdown_delay = 60 * 10 * 000,
|
||||
use_bundled_binary = false,
|
||||
mcp_request_timeout = 60000,
|
||||
auto_approve = true,
|
||||
auto_toggle_mcp_servers = true,
|
||||
extensions = {
|
||||
avante = {
|
||||
make_slash_commands = true,
|
||||
},
|
||||
},
|
||||
|
||||
native_servers = {},
|
||||
ui = {
|
||||
window = {
|
||||
width = 0.8,
|
||||
height = 0.8,
|
||||
align = 'center',
|
||||
relative = 'editor',
|
||||
zindex = 50,
|
||||
border = 'rounded',
|
||||
},
|
||||
wo = {
|
||||
winhl = 'Normal:MCPHubNormal,FloatBorder:MCPHubBorder',
|
||||
},
|
||||
},
|
||||
--on_ready = function(hub)
|
||||
--end,
|
||||
--on_error = function(err)
|
||||
--end,
|
||||
log = {
|
||||
level = vim.log.levels.WARN,
|
||||
to_file = false,
|
||||
file_path = nil,
|
||||
prefix = 'MCPHub',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
@@ -1,15 +1,21 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/romgrk/barbar.nvim' },
|
||||
{ src = 'https://github.com/lewis6991/gitsigns.nvim' },
|
||||
{ src = 'https://github.com/nvim-tree/nvim-web-devicons' },
|
||||
})
|
||||
require'barbar'.setup({
|
||||
animation = true,
|
||||
insert_at_start = true
|
||||
})
|
||||
vim.keymap.set({'n'}, '<C-h>', ':BufferPrevious<CR>')
|
||||
vim.keymap.set({'n'}, '<C-l>', ':BufferNext<CR>')
|
||||
vim.keymap.set({'n'}, '<C-j>', ':BufferMovePrevious<CR>')
|
||||
vim.keymap.set({'n'}, '<C-k>', ':BufferMoveNext<CR>')
|
||||
vim.keymap.set({'n'}, '<C-q>', ':BufferClose<CR>')
|
||||
vim.keymap.set({'n'}, '<C-a>', ':BufferCloseAllButCurrent<CR>')
|
||||
return {
|
||||
'romgrk/barbar.nvim',
|
||||
dependencies = {
|
||||
'lewis6991/gitsigns.nvim',
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
},
|
||||
init = function() vim.g.barbar_auto_setup = false end,
|
||||
opts = {
|
||||
animation = true,
|
||||
insert_at_start = true,
|
||||
},
|
||||
keys = {
|
||||
{ "<C-h>", ":BufferPrevious<CR>", mode = "n", silent = true, desc = "Go to previous tab" },
|
||||
{ "<C-l>", ":BufferNext<CR>", mode = "n", silent = true, desc = "Go to next tab" },
|
||||
{ "<C-j>", ":BufferMovePrevious<CR>", mode = "n", silent = true, desc = "Move tab to previous position" },
|
||||
{ "<C-k>", ":BufferMoveNext<CR>", mode = "n", silent = true, desc = "Move tab to next position" },
|
||||
{ "<C-q>", ":BufferClose<CR>", mode = "n", silent = true, desc = "Close current tab" },
|
||||
{ "<C-a>", ":BufferCloseAllButCurrent<CR>", mode = "n", silent = true, desc = "Close all tabs except current" },
|
||||
},
|
||||
version = '^1.0.0', -- optional: only update when a new 1.x version is released
|
||||
}
|
||||
|
@@ -1,18 +1,20 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/laytan/cloak.nvim' },
|
||||
})
|
||||
require'cloak'.setup({
|
||||
enabled = false,
|
||||
cloak_character = "•",
|
||||
highlight_group = "Comment",
|
||||
patterns = {
|
||||
{
|
||||
file_pattern = {
|
||||
'.env*',
|
||||
'wrangler.toml',
|
||||
'.dev.vars',
|
||||
return {
|
||||
'laytan/cloak.nvim',
|
||||
config = function()
|
||||
require'cloak'.setup({
|
||||
enabled = false,
|
||||
cloak_character = "•",
|
||||
highlight_group = "Comment",
|
||||
patterns = {
|
||||
{
|
||||
file_pattern = {
|
||||
'.env*',
|
||||
'wrangler.toml',
|
||||
'.dev.vars',
|
||||
},
|
||||
cloak_pattern = "=.+"
|
||||
},
|
||||
},
|
||||
cloak_pattern = "=.+"
|
||||
},
|
||||
},
|
||||
})
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
@@ -1,13 +1,18 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/folke/tokyonight.nvim' },
|
||||
})
|
||||
require('tokyonight').setup({
|
||||
style = 'moon',
|
||||
transparent = true,
|
||||
on_colors = function(colors)
|
||||
colors.comment = '#a0a7c5'
|
||||
colors.fg_gutter = '#787f93'
|
||||
colors.terminal_black = '#828bb8'
|
||||
return {
|
||||
'folke/tokyonight.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
opts = {
|
||||
style = 'moon',
|
||||
transparent = true,
|
||||
on_colors = function(colors)
|
||||
colors.comment = '#a0a7c5'
|
||||
colors.fg_gutter = '#787f93'
|
||||
colors.terminal_black = '#828bb8'
|
||||
end,
|
||||
},
|
||||
config = function(_,opts)
|
||||
require'tokyonight'.setup(opts)
|
||||
vim.cmd.colorscheme('tokyonight-moon')
|
||||
end,
|
||||
})
|
||||
vim.cmd('colorscheme tokyonight-moon')
|
||||
}
|
||||
|
@@ -1,28 +1,32 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/3rd/image.nvim' },
|
||||
{ src = 'https://github.com/nvim-treesitter/nvim-treesitter'}
|
||||
})
|
||||
require'image'.setup({
|
||||
backend = "kitty",
|
||||
integrations = {
|
||||
markdown = {
|
||||
enabled = true,
|
||||
clear_in_insert_mode = false,
|
||||
download_remote_images = true,
|
||||
only_render_image_at_cursor = false,
|
||||
filetypes = { "markdown", "vimwiki" },
|
||||
},
|
||||
neorg = {
|
||||
enabled = true,
|
||||
clear_in_insert_mode = false,
|
||||
download_remote_images = true,
|
||||
only_render_image_at_cursor = false,
|
||||
filetypes = { "norg" },
|
||||
},
|
||||
return {
|
||||
'3rd/image.nvim',
|
||||
dependencies = {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
},
|
||||
max_width = nil,
|
||||
max_height = nil,
|
||||
max_width_window_percentage = nil,
|
||||
max_height_window_percentage = 50,
|
||||
kitty_method = "normal",
|
||||
})
|
||||
config = function()
|
||||
require'image'.setup({
|
||||
backend = "kitty",
|
||||
integrations = {
|
||||
markdown = {
|
||||
enabled = true,
|
||||
clear_in_insert_mode = false,
|
||||
download_remote_images = true,
|
||||
only_render_image_at_cursor = false,
|
||||
filetypes = { "markdown", "vimwiki" },
|
||||
},
|
||||
neorg = {
|
||||
enabled = true,
|
||||
clear_in_insert_mode = false,
|
||||
download_remote_images = true,
|
||||
only_render_image_at_cursor = false,
|
||||
filetypes = { "norg" },
|
||||
},
|
||||
},
|
||||
max_width = nil,
|
||||
max_height = nil,
|
||||
max_width_window_percentage = nil,
|
||||
max_height_window_percentage = 50,
|
||||
kitty_method = "normal",
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
@@ -1,14 +0,0 @@
|
||||
require'plugins.avante'
|
||||
require'plugins.barbar'
|
||||
require'plugins.colors'
|
||||
require'plugins.cloak'
|
||||
require'plugins.image'
|
||||
require'plugins.lsp'
|
||||
require'plugins.lualine'
|
||||
require'plugins.neotree'
|
||||
require'plugins.nerdcommenter'
|
||||
require'plugins.snacks'
|
||||
require'plugins.telescope'
|
||||
require'plugins.treesitter'
|
||||
require'plugins.trouble'
|
||||
require'plugins.undotree'
|
@@ -1,251 +1,342 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/mason-org/mason.nvim' },
|
||||
{ src = 'https://github.com/neovim/nvim-lspconfig' },
|
||||
{ src = 'https://github.com/mason-org/mason-lspconfig.nvim' },
|
||||
{ src = 'https://github.com/hrsh7th/nvim-cmp' },
|
||||
{ src = 'https://github.com/hrsh7th/cmp-nvim-lsp' },
|
||||
{ src = 'https://github.com/nvim-lua/plenary.nvim' },
|
||||
{ src = 'https://github.com/hrsh7th/cmp-nvim-lsp-document-symbol' },
|
||||
{ src = 'https://github.com/hrsh7th/cmp-nvim-lua' },
|
||||
{ src = 'https://github.com/hrsh7th/cmp-path' },
|
||||
{ src = 'https://github.com/hrsh7th/cmp-buffer' },
|
||||
{ src = 'https://github.com/hrsh7th/cmp-emoji' },
|
||||
{ src = 'https://github.com/chrisgrieser/cmp-nerdfont' },
|
||||
{ src = 'https://github.com/jcha0713/cmp-tw2css' },
|
||||
{ src = 'https://github.com/SergioRibera/cmp-dotenv' },
|
||||
{ src = 'https://github.com/saadparwaiz1/cmp_luasnip' },
|
||||
{ src = 'https://github.com/onsails/lspkind.nvim' },
|
||||
{ src = 'https://github.com/rafamadriz/friendly-snippets' },
|
||||
{ src = 'https://github.com/j-hui/fidget.nvim' },
|
||||
{ src = 'https://github.com/David-Kunz/cmp-npm' },
|
||||
{ src = 'https://github.com/stevearc/conform.nvim' },
|
||||
{
|
||||
src = 'https://github.com/L3MON4D3/LuaSnip',
|
||||
version = vim.version.range('2')
|
||||
},
|
||||
{ src = 'https://github.com/supermaven-inc/supermaven-nvim' },
|
||||
{ src = 'https://github.com/garyhurtz/cmp_kitty' },
|
||||
{ src = 'https://github.com/windwp/nvim-autopairs' },
|
||||
{ src = 'https://github.com/windwp/nvim-ts-autotag' },
|
||||
--{ src = 'https://github.com/hrsh7th/cmp-cmdline' },
|
||||
--{ src = 'https://github.com/chrisgrieser/cmp-yanky' },
|
||||
})
|
||||
|
||||
local cmp = require 'cmp'
|
||||
local cmp_lsp = require 'cmp_nvim_lsp'
|
||||
local lspconfig = require 'lspconfig'
|
||||
local capabilities = vim.tbl_deep_extend(
|
||||
'force',
|
||||
{},
|
||||
vim.lsp.protocol.make_client_capabilities(),
|
||||
cmp_lsp.default_capabilities()
|
||||
)
|
||||
local cmp_select = { behavior = cmp.SelectBehavior.Select }
|
||||
local lspkind = require 'lspkind'
|
||||
local cmp_autopairs = require'nvim-autopairs.completion.cmp'
|
||||
require 'mason'.setup({})
|
||||
require 'mason-lspconfig'.setup({
|
||||
handlers = {
|
||||
function(server_name)
|
||||
require 'lspconfig'[server_name].setup({
|
||||
capabilities = capabilities
|
||||
})
|
||||
end,
|
||||
zls = function()
|
||||
lspconfig.zls.setup({
|
||||
root_dir = lspconfig.util.root_pattern(".git", "build.zig", "zls.json"),
|
||||
settings = {
|
||||
zls = {
|
||||
enable_inlay_hints = true,
|
||||
enable_snippets = true,
|
||||
warn_style = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
vim.g.zig_fmt_parse_errors = 0
|
||||
vim.g.zig_fmt_autosave = 0
|
||||
end,
|
||||
["lua_ls"] = function()
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
format = {
|
||||
enable = true,
|
||||
defaultConfig = {
|
||||
indent_style = "space",
|
||||
indent_size = "2",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
})
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require('luasnip').lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
sources = {
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
{ name = 'buffer' },
|
||||
{ name = 'supermaven' },
|
||||
--{ name = 'luasnip', keyword_length = 2 },
|
||||
--{ name = 'buffer', keyword_length = 3 },
|
||||
--{ name = 'supermaven', keyword_length = 2 },
|
||||
return {
|
||||
'mason-org/mason-lspconfig.nvim',
|
||||
dependencies = {
|
||||
{ 'neovim/nvim-lspconfig', },
|
||||
{
|
||||
name = 'path',
|
||||
option = {
|
||||
pathMappings = {
|
||||
['@'] = '${folder}/src',
|
||||
['/'] = '${folder}/src/public',
|
||||
['/components'] = '${folder}/src/components',
|
||||
},
|
||||
trailing_slash = true,
|
||||
'mason-org/mason.nvim',
|
||||
opts = {
|
||||
ui = {
|
||||
icons = {
|
||||
package_installed = "✓",
|
||||
package_pending = "➜",
|
||||
package_uninstalled = "✗"
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{ name = 'nvim_lsp_document_symbol' },
|
||||
{ name = 'nvim_lsp_signature_health' },
|
||||
{ name = 'nvim_lua' },
|
||||
{ name = 'nerdfont' },
|
||||
{ name = 'emoji' },
|
||||
{ name = 'npm' },
|
||||
{ name = 'cmp-tw2css' },
|
||||
{ name = 'dotenv' },
|
||||
{ name = 'kitty' },
|
||||
{ name = 'render-markdown' },
|
||||
{ name = 'cmdline' },
|
||||
--{ name = 'cmp_yanky' },
|
||||
},
|
||||
formatting = {
|
||||
format = lspkind.cmp_format({
|
||||
mode = 'symbol',
|
||||
maxwidth = {
|
||||
menu = 50,
|
||||
abbr = 50,
|
||||
},
|
||||
symbol_map = {
|
||||
Supermaven = '',
|
||||
},
|
||||
ellipsis_char = '...',
|
||||
show_labelDetails = true,
|
||||
before = function(entry, vim_item)
|
||||
return vim_item
|
||||
end,
|
||||
}),
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<Tab>'] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
if cmp.get_selected_entry() then
|
||||
cmp.confirm({ select = false })
|
||||
else
|
||||
cmp.select_next_item()
|
||||
end
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
{
|
||||
'hrsh7th/nvim-cmp',
|
||||
config = function()
|
||||
local cmp = require'cmp'
|
||||
local lspkind = require'lspkind'
|
||||
local cmp_select = { behavior = cmp.SelectBehavior.Select }
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require('luasnip').lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
sources = {
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
{ name = 'buffer' },
|
||||
{ name = 'supermaven' },
|
||||
{
|
||||
name = 'path',
|
||||
option = {
|
||||
pathMappings = {
|
||||
['@'] = '${folder}/src',
|
||||
['/'] = '${folder}/public',
|
||||
['~/'] = '${folder}/',
|
||||
},
|
||||
trailing_slash = true,
|
||||
},
|
||||
},
|
||||
{ name = 'nvim_lsp_document_symbol' },
|
||||
{ name = 'nvim_lsp_signature_help' },
|
||||
{ name = 'nvim_lua' },
|
||||
{ name = 'nerdfont' },
|
||||
{ name = 'emoji' },
|
||||
{ name = 'npm' },
|
||||
{ name = 'cmp-tw2css' },
|
||||
{ name = 'dotenv' },
|
||||
{ name = 'render-markdown' },
|
||||
{ name = 'cmdline' },
|
||||
--{ name = 'kitty' },
|
||||
},
|
||||
formatting = {
|
||||
format = lspkind.cmp_format({
|
||||
mode = 'symbol',
|
||||
maxwidth = {
|
||||
menu = 50,
|
||||
abbr = 50,
|
||||
},
|
||||
symbol_map = {
|
||||
Supermaven = '',
|
||||
},
|
||||
ellipsis_char = '...',
|
||||
show_labelDetails = true,
|
||||
before = function(entry, vim_item)
|
||||
return vim_item
|
||||
end,
|
||||
}),
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<Tab>'] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
if cmp.get_selected_entry() then
|
||||
cmp.confirm({ select = false })
|
||||
else
|
||||
cmp.select_next_item()
|
||||
end
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
|
||||
['<C-y>'] = cmp.mapping.confirm({ select = true }),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
|
||||
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-u>'] = cmp.mapping.scroll_docs(-4),
|
||||
}),
|
||||
preselect = cmp.PreselectMode.Item,
|
||||
completion = {
|
||||
completeopt = 'menu,menuone,noinsert',
|
||||
['<C-y>'] = cmp.mapping.confirm({ select = true }),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
|
||||
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-u>'] = cmp.mapping.scroll_docs(-4),
|
||||
}),
|
||||
preselect = cmp.PreselectMode.Item,
|
||||
completion = {
|
||||
completeopt = 'menu,menuone,noinsert',
|
||||
},
|
||||
})
|
||||
cmp.setup.cmdline('/', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{
|
||||
name = 'cmdline',
|
||||
}
|
||||
})
|
||||
})
|
||||
end,
|
||||
},
|
||||
{ 'hrsh7th/cmp-nvim-lsp' },
|
||||
{ 'nvim-lua/plenary.nvim' },
|
||||
{ 'hrsh7th/cmp-nvim-lsp-document-symbol' },
|
||||
{ 'hrsh7th/cmp-nvim-lua' },
|
||||
{ 'hrsh7th/cmp-nvim-lsp-signature-help' },
|
||||
{ 'hrsh7th/cmp-path' },
|
||||
{ 'hrsh7th/cmp-buffer' },
|
||||
{ 'hrsh7th/cmp-emoji' },
|
||||
{ 'chrisgrieser/cmp-nerdfont' },
|
||||
{ 'jcha0713/cmp-tw2css' },
|
||||
{ 'SergioRibera/cmp-dotenv' },
|
||||
{ 'saadparwaiz1/cmp_luasnip' },
|
||||
{ 'onsails/lspkind.nvim' },
|
||||
{ 'rafamadriz/friendly-snippets' },
|
||||
{
|
||||
'j-hui/fidget.nvim',
|
||||
config = function()
|
||||
require'fidget'.setup({})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'David-Kunz/cmp-npm',
|
||||
config = function()
|
||||
require'cmp-npm'.setup({})
|
||||
end
|
||||
},
|
||||
{
|
||||
'stevearc/conform.nvim',
|
||||
config = function()
|
||||
require'conform'.setup({
|
||||
formatters_by_ft = {
|
||||
cs = { 'csharpier', 'lsp' },
|
||||
javascript = { 'prettierd', 'prettier' },
|
||||
javascriptreact = { 'prettierd', 'prettier' },
|
||||
typescript = { 'prettierd', 'prettier' },
|
||||
typescriptreact = { 'prettierd', 'prettier' },
|
||||
json = { 'prettierd', 'prettier' },
|
||||
html = { 'prettierd', 'prettier' },
|
||||
css = { 'prettierd', 'prettier' },
|
||||
lua = { 'stylua' },
|
||||
},
|
||||
})
|
||||
vim.api.nvim_create_user_command(
|
||||
'Format',
|
||||
function(args)
|
||||
local range
|
||||
if args.count ~= -1 then
|
||||
local start_line = vim.fn.line("'<")
|
||||
local end_line = vim.fn.line("'>")
|
||||
range = { start = { start_line, 0 }, ["end"] = { end_line, 0 } }
|
||||
end
|
||||
require'conform'.format({
|
||||
async = true,
|
||||
lsp_fallback = true,
|
||||
range = range,
|
||||
})
|
||||
end, { range = true, desc = "Format current buffer or range" })
|
||||
end,
|
||||
keys = {
|
||||
{
|
||||
'<leader>fk',
|
||||
':Format<CR>',
|
||||
mode = {'n', 'v'},
|
||||
silent = true,
|
||||
desc = "Format with conform"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
'L3MON4D3/LuaSnip',
|
||||
version = 'v2.*',
|
||||
build = 'make install_jsregexp'
|
||||
},
|
||||
{
|
||||
'supermaven-inc/supermaven-nvim',
|
||||
config = function()
|
||||
require'supermaven-nvim'.setup({
|
||||
keymaps = {
|
||||
accept_suggestion = '<Tab>',
|
||||
clear_suggestion = '<C-]>',
|
||||
accept_word = '<C-.>',
|
||||
},
|
||||
disable_inline_completion = true,
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'windwp/nvim-autopairs',
|
||||
event = "InsertEnter",
|
||||
config = true
|
||||
},
|
||||
{
|
||||
'windwp/nvim-ts-autotag',
|
||||
config = function()
|
||||
require'nvim-ts-autotag'.setup({})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"garyhurtz/cmp_kitty",
|
||||
dependencies = {
|
||||
{ "hrsh7th/nvim-cmp" },
|
||||
},
|
||||
init = function()
|
||||
require('cmp_kitty'):setup()
|
||||
end
|
||||
},
|
||||
{ 'hrsh7th/cmp-cmdline' },
|
||||
},
|
||||
})
|
||||
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
|
||||
require 'cmp_kitty':setup({})
|
||||
require 'cmp-npm'.setup({})
|
||||
require 'supermaven-nvim'.setup({
|
||||
disable_inline_completion = true,
|
||||
})
|
||||
require 'conform'.setup({
|
||||
formatters_by_ft = {
|
||||
cs = { 'csharpier', 'lsp' },
|
||||
javascript = { 'prettierd', 'prettier' },
|
||||
javascriptreact = { 'prettierd', 'prettier' },
|
||||
typescript = { 'prettierd', 'prettier' },
|
||||
typescriptreact = { 'prettierd', 'prettier' },
|
||||
json = { 'prettierd', 'prettier' },
|
||||
html = { 'prettierd', 'prettier' },
|
||||
css = { 'prettierd', 'prettier' },
|
||||
lua = { 'stylua' },
|
||||
},
|
||||
})
|
||||
require 'fidget'.setup({})
|
||||
require 'nvim-autopairs'.setup({})
|
||||
require 'nvim-ts-autotag'.setup({})
|
||||
--cmp.setup.cmdline('/', {
|
||||
--mapping = cmp.mapping.preset.cmdline(),
|
||||
--sources = {
|
||||
--{ name = 'buffer' }
|
||||
--}
|
||||
--})
|
||||
--cmp.setup.cmdline(':', {
|
||||
--mapping = cmp.mapping.preset.cmdline(),
|
||||
--sources = cmp.config.sources({
|
||||
--{ name = 'path' }
|
||||
--}, {
|
||||
--{
|
||||
--name = 'cmdline',
|
||||
--}
|
||||
--})
|
||||
--})
|
||||
vim.lsp.enable({
|
||||
'asm_lsp',
|
||||
'bashls',
|
||||
'cmake',
|
||||
'cssls',
|
||||
'css_variables',
|
||||
'cssmodules_ls',
|
||||
'docker_compose_language_service',
|
||||
'dockerls',
|
||||
'eslint',
|
||||
'gopls',
|
||||
'gradle_ls',
|
||||
'graphql',
|
||||
'html',
|
||||
'htmx',
|
||||
'intelephense',
|
||||
'jsonls',
|
||||
'kotlin_lsp',
|
||||
'lua_ls',
|
||||
'markdown_oxide',
|
||||
'nginx_language_server',
|
||||
'prismals',
|
||||
'pyright',
|
||||
'rust-analyzer',
|
||||
'sqlls',
|
||||
'svelte_language_server',
|
||||
'tailwindcss',
|
||||
'ts_ls',
|
||||
'tinymist',
|
||||
'yamlls',
|
||||
})
|
||||
vim.diagnostic.config({
|
||||
float = {
|
||||
focusable = false,
|
||||
style = "minimal",
|
||||
border = "rounded",
|
||||
source = true,
|
||||
header = "",
|
||||
prefix = "",
|
||||
},
|
||||
})
|
||||
config = function()
|
||||
vim.diagnostic.config({
|
||||
float = {
|
||||
focusable = false,
|
||||
style = "minimal",
|
||||
border = "rounded",
|
||||
source = true,
|
||||
header = "",
|
||||
prefix = "",
|
||||
},
|
||||
})
|
||||
require'mason'.setup({})
|
||||
local cmp = require'cmp'
|
||||
local cmp_lsp = require'cmp_nvim_lsp'
|
||||
local lspconfig = require'lspconfig'
|
||||
local capabilities = vim.tbl_deep_extend(
|
||||
'force',
|
||||
{},
|
||||
vim.lsp.protocol.make_client_capabilities(),
|
||||
cmp_lsp.default_capabilities()
|
||||
)
|
||||
local cmp_autopairs = require'nvim-autopairs.completion.cmp'
|
||||
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
|
||||
require 'mason-lspconfig'.setup({
|
||||
ensure_installed = {
|
||||
'asm_lsp',
|
||||
'bashls',
|
||||
'cmake',
|
||||
'cssls',
|
||||
'css_variables',
|
||||
'cssmodules_ls',
|
||||
'docker_compose_language_service',
|
||||
'dockerls',
|
||||
'eslint',
|
||||
'gopls',
|
||||
'gradle_ls',
|
||||
'graphql',
|
||||
'html',
|
||||
'htmx',
|
||||
'intelephense',
|
||||
'jsonls',
|
||||
'kotlin_lsp',
|
||||
'lua_ls',
|
||||
'markdown_oxide',
|
||||
'nginx_language_server',
|
||||
'prismals',
|
||||
'pyright',
|
||||
'rust_analyzer',
|
||||
'sqlls',
|
||||
'svelte',
|
||||
'tailwindcss',
|
||||
'ts_ls',
|
||||
'tinymist',
|
||||
'yamlls',
|
||||
},
|
||||
handlers = {
|
||||
function(server_name)
|
||||
lspconfig[server_name].setup({
|
||||
capabilities = capabilities
|
||||
})
|
||||
end,
|
||||
zls = function()
|
||||
lspconfig.zls.setup({
|
||||
root_dir = lspconfig.util.root_pattern(".git", "build.zig", "zls.json"),
|
||||
settings = {
|
||||
zls = {
|
||||
enable_inlay_hints = true,
|
||||
enable_snippets = true,
|
||||
warn_style = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
vim.g.zig_fmt_parse_errors = 0
|
||||
vim.g.zig_fmt_autosave = 0
|
||||
end,
|
||||
["lua_ls"] = function()
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
version = 'LuaJIT',
|
||||
},
|
||||
diagnostics = {
|
||||
globals = { 'vim' },
|
||||
},
|
||||
workspace = {
|
||||
library = vim.api.nvim_get_runtime_file("", true),
|
||||
checkThirdParty = false,
|
||||
-- These are the key settings to prevent the infinite processing
|
||||
maxPreload = 100000,
|
||||
preloadFileSize = 10000,
|
||||
},
|
||||
telemetry = {
|
||||
enable = false,
|
||||
},
|
||||
format = {
|
||||
enable = true,
|
||||
defaultConfig = {
|
||||
indent_style = "space",
|
||||
indent_size = "2",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
@@ -1,59 +1,63 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/nvim-lualine/lualine.nvim' },
|
||||
{ src = 'https://github.com/nvim-tree/nvim-web-devicons' },
|
||||
{ src = 'https://github.com/folke/tokyonight.nvim' },
|
||||
})
|
||||
require'lualine'.setup({
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = 'tokyonight-moon',
|
||||
component_separators = { left = '', right = ''},
|
||||
section_separators = { left = '', right = ''},
|
||||
disabled_filetypes = {
|
||||
statusline = {},
|
||||
winbar = {},
|
||||
},
|
||||
ignore_focus = {},
|
||||
always_divide_middle = true,
|
||||
always_show_tabline = true,
|
||||
globalstatus = false,
|
||||
refresh = {
|
||||
statusline = 1000,
|
||||
tabline = 1000,
|
||||
winbar = 1000,
|
||||
refresh_time = 16,
|
||||
events = {
|
||||
'WinEnter',
|
||||
'BufEnter',
|
||||
'BufWritePost',
|
||||
'SessionLoadPost',
|
||||
'FileChangedShellPost',
|
||||
'VimResized',
|
||||
'Filetype',
|
||||
'CursorMoved',
|
||||
'CursorMovedI',
|
||||
'ModeChanged',
|
||||
return {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
config = function()
|
||||
require'lualine'.setup({
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = 'tokyonight-moon',
|
||||
component_separators = { left = '', right = ''},
|
||||
section_separators = { left = '', right = ''},
|
||||
disabled_filetypes = {
|
||||
statusline = {},
|
||||
winbar = {},
|
||||
},
|
||||
ignore_focus = {},
|
||||
always_divide_middle = true,
|
||||
always_show_tabline = true,
|
||||
globalstatus = false,
|
||||
refresh = {
|
||||
statusline = 1000,
|
||||
tabline = 1000,
|
||||
winbar = 1000,
|
||||
refresh_time = 16,
|
||||
events = {
|
||||
'WinEnter',
|
||||
'BufEnter',
|
||||
'BufWritePost',
|
||||
'SessionLoadPost',
|
||||
'FileChangedShellPost',
|
||||
'VimResized',
|
||||
'Filetype',
|
||||
'CursorMoved',
|
||||
'CursorMovedI',
|
||||
'ModeChanged',
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
sections = {
|
||||
lualine_a = {'mode'},
|
||||
lualine_b = {'branch', 'diff', 'diagnostics'},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {'encoding', 'fileformat', 'filetype'},
|
||||
lualine_y = {'progress'},
|
||||
lualine_z = {'location'}
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {'location'},
|
||||
lualine_y = {},
|
||||
lualine_z = {}
|
||||
},
|
||||
tabline = {},
|
||||
winbar = {},
|
||||
inactive_winbar = {},
|
||||
extensions = {}
|
||||
})
|
||||
end,
|
||||
dependencies = {
|
||||
{ 'nvim-tree/nvim-web-devicons' },
|
||||
{ 'folke/tokyonight.nvim' },
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {'mode'},
|
||||
lualine_b = {'branch', 'diff', 'diagnostics'},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {'encoding', 'fileformat', 'filetype'},
|
||||
lualine_y = {'progress'},
|
||||
lualine_z = {'location'}
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {'location'},
|
||||
lualine_y = {},
|
||||
lualine_z = {}
|
||||
},
|
||||
tabline = {},
|
||||
winbar = {},
|
||||
inactive_winbar = {},
|
||||
extensions = {}
|
||||
})
|
||||
}
|
||||
|
@@ -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,
|
||||
}
|
||||
|
@@ -1,4 +0,0 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/preservim/nerdcommenter' }
|
||||
})
|
||||
vim.keymap.set({ 'n', 'v', 'x'}, '<leader>c', '<plug>NERDCommenterToggle')
|
12
configs/dotfiles/nvim/lua/plugins/nerdcomments.lua
Normal file
12
configs/dotfiles/nvim/lua/plugins/nerdcomments.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
return {
|
||||
'preservim/nerdcommenter',
|
||||
keys = {
|
||||
{
|
||||
'<leader>c',
|
||||
'<Plug>NERDCommenterToggle',
|
||||
mode = { 'n', 'v', 'x' },
|
||||
silent = true,
|
||||
desc = 'Toggle commenting line',
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,11 +1,15 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/folke/snacks.nvim' },
|
||||
{ src = 'https://github.com/echasnovski/mini.icons' },
|
||||
})
|
||||
require'snacks'.setup({
|
||||
animate = { enabled = true },
|
||||
bigfile = { enabled = true },
|
||||
image = { enabled = true },
|
||||
indent = { enabled = true },
|
||||
scroll = { enabled = true },
|
||||
})
|
||||
return {
|
||||
'folke/snacks.nvim',
|
||||
dependencies = {
|
||||
{ 'echasnovski/mini.icons', },
|
||||
},
|
||||
config = function()
|
||||
require'snacks'.setup({
|
||||
animate = { enabled = true },
|
||||
bigfile = { enabled = true },
|
||||
image = { enabled = true },
|
||||
indent = { enabled = true },
|
||||
scroll = { enabled = true },
|
||||
})
|
||||
end
|
||||
}
|
||||
|
@@ -1,31 +1,33 @@
|
||||
vim.pack.add({
|
||||
{
|
||||
src = 'https://github.com/nvim-telescope/telescope.nvim',
|
||||
version = vim.version.range('0.1'),
|
||||
return {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
tag = '0.1.8',
|
||||
dependencies = {
|
||||
{ 'nvim-lua/plenary.nvim', },
|
||||
},
|
||||
{ src = 'https://github.com/nvim-lua/plenary.nvim' },
|
||||
})
|
||||
require'telescope'.setup({
|
||||
defaults = {
|
||||
file_ignore_patterns = {
|
||||
'node_modules',
|
||||
'.git',
|
||||
'.next',
|
||||
'.cache',
|
||||
'.DS_Store',
|
||||
'.venv',
|
||||
'.conda',
|
||||
},
|
||||
},
|
||||
})
|
||||
local builtin = require'telescope.builtin'
|
||||
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Find files' })
|
||||
vim.keymap.set('n', '<leader>fg', builtin.git_files, { desc = 'Find git files' })
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>fs',
|
||||
function()
|
||||
builtin.grep_string({ search = vim.fn.input('Grep > ')})
|
||||
config = function()
|
||||
require'telescope'.setup({
|
||||
defaults = {
|
||||
file_ignore_patterns = {
|
||||
'node_modules',
|
||||
'.git',
|
||||
'.next',
|
||||
'.cache',
|
||||
'.DS_Store',
|
||||
'.venv',
|
||||
'.conda',
|
||||
},
|
||||
},
|
||||
})
|
||||
local builtin = require'telescope.builtin'
|
||||
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Find files' })
|
||||
vim.keymap.set('n', '<leader>fg', builtin.git_files, { desc = 'Find git files' })
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>fs',
|
||||
function()
|
||||
builtin.grep_string({ search = vim.fn.input('Grep > ')})
|
||||
end,
|
||||
{ desc = 'Find string' }
|
||||
)
|
||||
end,
|
||||
{ desc = 'Find string' }
|
||||
)
|
||||
}
|
||||
|
@@ -1,84 +1,92 @@
|
||||
vim.pack.add({
|
||||
{
|
||||
src = 'https://github.com/nvim-treesitter/nvim-treesitter',
|
||||
version = 'master'
|
||||
return {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
branch = 'master',
|
||||
lazy = false,
|
||||
build = ':TSUpdate',
|
||||
dependencies = {
|
||||
{ 'nvim-treesitter/playground', },
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter-context',
|
||||
config = function()
|
||||
require'treesitter-context'.setup({
|
||||
enable = true,
|
||||
multiwindow = false,
|
||||
max_lines = 10,
|
||||
min_window_height = 0,
|
||||
line_numbers = true,
|
||||
multiline_threshold = 20,
|
||||
trim_scope = 'outer',
|
||||
mode = 'topline',
|
||||
separator = nil,
|
||||
zindex = 20,
|
||||
on_attach = nil,
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
{ src = 'https://github.com/nvim-treesitter/playground' },
|
||||
{ src = 'https://github.com/nvim-treesitter/nvim-treesitter-context' },
|
||||
})
|
||||
require'nvim-treesitter.install'.update({ with_sync = true })()
|
||||
require'nvim-treesitter.configs'.setup({
|
||||
ensure_installed = {
|
||||
'bash',
|
||||
'c',
|
||||
'cmake',
|
||||
'cpp',
|
||||
'css',
|
||||
'diff',
|
||||
'dockerfile',
|
||||
'git_config',
|
||||
'git_rebase',
|
||||
'gitattributes',
|
||||
'gitcommit',
|
||||
'gitignore',
|
||||
'html',
|
||||
'java',
|
||||
'javascript',
|
||||
'jsdoc',
|
||||
'json',
|
||||
'jsonc',
|
||||
'kotlin',
|
||||
'lua',
|
||||
'luadoc',
|
||||
'luap',
|
||||
'make',
|
||||
'markdown',
|
||||
'markdown_inline',
|
||||
'php',
|
||||
'printf',
|
||||
'python',
|
||||
'query',
|
||||
'regex',
|
||||
'rust',
|
||||
'scala',
|
||||
'sql',
|
||||
'svelte',
|
||||
'swift',
|
||||
'toml',
|
||||
'tsx',
|
||||
'typescript',
|
||||
'vim',
|
||||
'vimdoc',
|
||||
'xml',
|
||||
'yaml',
|
||||
'zig'
|
||||
},
|
||||
sync_install = false,
|
||||
auto_install = true,
|
||||
indent = { enable = true },
|
||||
highlight = {
|
||||
enable = true,
|
||||
disable = function(lang, buf)
|
||||
local max_filesize = 500 * 1024 -- 100 KB
|
||||
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
|
||||
if ok and stats and stats.size > max_filesize then
|
||||
return true
|
||||
end
|
||||
end,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
})
|
||||
|
||||
require'treesitter-context'.setup{
|
||||
enable = true,
|
||||
multiwindow = false,
|
||||
max_lines = 10,
|
||||
min_window_height = 0,
|
||||
line_numbers = true,
|
||||
multiline_threshold = 20,
|
||||
trim_scope = 'outer',
|
||||
mode = 'topline',
|
||||
separator = nil,
|
||||
zindex = 20,
|
||||
on_attach = nil,
|
||||
config = function()
|
||||
require'nvim-treesitter.install'.update({ with_sync = true })
|
||||
require'nvim-treesitter.configs'.setup({
|
||||
ensure_installed = {
|
||||
'bash',
|
||||
'c',
|
||||
'cmake',
|
||||
'cpp',
|
||||
'css',
|
||||
'diff',
|
||||
'dockerfile',
|
||||
'git_config',
|
||||
'git_rebase',
|
||||
'gitattributes',
|
||||
'gitcommit',
|
||||
'gitignore',
|
||||
'html',
|
||||
'java',
|
||||
'javascript',
|
||||
'jsdoc',
|
||||
'json',
|
||||
'jsonc',
|
||||
'kotlin',
|
||||
'latex',
|
||||
'lua',
|
||||
'luadoc',
|
||||
'luap',
|
||||
'make',
|
||||
'markdown',
|
||||
'markdown_inline',
|
||||
'php',
|
||||
'printf',
|
||||
'python',
|
||||
'query',
|
||||
'regex',
|
||||
'rust',
|
||||
'scala',
|
||||
'sql',
|
||||
'svelte',
|
||||
'swift',
|
||||
'toml',
|
||||
'tsx',
|
||||
'typescript',
|
||||
'vim',
|
||||
'vimdoc',
|
||||
'xml',
|
||||
'yaml',
|
||||
'zig'
|
||||
},
|
||||
sync_install = false,
|
||||
auto_install = true,
|
||||
indent = { enable = true },
|
||||
highlight = {
|
||||
enable = true,
|
||||
disable = function(lang, buf)
|
||||
local max_filesize = 500 * 1024 -- 100 KB
|
||||
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
|
||||
if ok and stats and stats.size > max_filesize then
|
||||
return true
|
||||
end
|
||||
end,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
@@ -1,7 +1,19 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/folke/trouble.nvim.git' },
|
||||
})
|
||||
vim.api.nvim_create_user_command('Trouble', function()
|
||||
require("trouble").open()
|
||||
end, { desc = "Open Trouble" })
|
||||
vim.keymap.set({'n'}, '<leader>x', ':Trouble diagnostics toggle')
|
||||
return {
|
||||
'folke/trouble.nvim',
|
||||
config = function()
|
||||
require('trouble').setup({})
|
||||
vim.api.nvim_create_user_command('Trouble', function()
|
||||
require('trouble').open()
|
||||
end, { desc = 'Open Trouble' })
|
||||
end,
|
||||
keys = {
|
||||
{
|
||||
'<leader>x',
|
||||
':Trouble diagnostics toggle<CR>',
|
||||
mode = 'n',
|
||||
silent = true,
|
||||
desc = 'Toggle Trouble',
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
|
@@ -1,4 +1,12 @@
|
||||
vim.pack.add({
|
||||
{ src = 'https://github.com/mbbill/undotree' },
|
||||
})
|
||||
vim.keymap.set({'n'}, '<leader>u', ':UndotreeToggle<CR>')
|
||||
return {
|
||||
'mbbill/undotree',
|
||||
keys = {
|
||||
{
|
||||
'<leader>u',
|
||||
':UndotreeToggle<CR>',
|
||||
mode = { 'n' },
|
||||
silent = true,
|
||||
desc = 'Toggle undo tree',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
Reference in New Issue
Block a user