vim: fix plugin dependencies
This commit is contained in:
parent
3e9376bf82
commit
a652dda18d
2 changed files with 244 additions and 241 deletions
|
@ -1,170 +1,178 @@
|
|||
local config_telescope = function(_, opts)
|
||||
local telescope = require 'telescope'
|
||||
local actions = require 'telescope.actions'
|
||||
local actions_layout = require 'telescope.actions.layout'
|
||||
local builtin = require 'telescope.builtin'
|
||||
local telescope = {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
|
||||
local mappings = {
|
||||
['<c-l>'] = actions_layout.cycle_layout_next,
|
||||
['<c-o>'] = actions_layout.toggle_mirror,
|
||||
['<c-q>'] = actions.smart_send_to_qflist + actions.open_qflist,
|
||||
}
|
||||
config = function(_, opts)
|
||||
local telescope = require 'telescope'
|
||||
local actions = require 'telescope.actions'
|
||||
local actions_layout = require 'telescope.actions.layout'
|
||||
local builtin = require 'telescope.builtin'
|
||||
|
||||
local mappings_normal_mode = mappings
|
||||
local mappings_insert_mode = vim.tbl_extend('force', mappings, {
|
||||
['<c-j>'] = actions.cycle_history_next,
|
||||
['<c-k>'] = actions.cycle_history_prev,
|
||||
})
|
||||
local mappings = {
|
||||
['<c-l>'] = actions_layout.cycle_layout_next,
|
||||
['<c-o>'] = actions_layout.toggle_mirror,
|
||||
['<c-q>'] = actions.smart_send_to_qflist + actions.open_qflist,
|
||||
}
|
||||
|
||||
telescope.setup {
|
||||
defaults = {
|
||||
prompt_prefix = ' ❯ ',
|
||||
selection_caret = ' ', -- Other ideas: ➔
|
||||
multi_icon = ' ',
|
||||
local mappings_normal_mode = mappings
|
||||
local mappings_insert_mode = vim.tbl_extend('force', mappings, {
|
||||
['<c-j>'] = actions.cycle_history_next,
|
||||
['<c-k>'] = actions.cycle_history_prev,
|
||||
})
|
||||
|
||||
layout_strategy = 'flex',
|
||||
layout_config = {
|
||||
anchor = 'center',
|
||||
width = 0.9,
|
||||
height = 0.9,
|
||||
telescope.setup {
|
||||
defaults = {
|
||||
prompt_prefix = ' ❯ ',
|
||||
selection_caret = ' ', -- Other ideas: ➔
|
||||
multi_icon = ' ',
|
||||
|
||||
flex = {
|
||||
flip_columns = 130,
|
||||
layout_strategy = 'flex',
|
||||
layout_config = {
|
||||
anchor = 'center',
|
||||
width = 0.9,
|
||||
height = 0.9,
|
||||
|
||||
flex = {
|
||||
flip_columns = 130,
|
||||
},
|
||||
|
||||
horizontal = {
|
||||
preview_width = 0.5,
|
||||
preview_cutoff = 130,
|
||||
},
|
||||
|
||||
vertical = {
|
||||
preview_height = 0.5,
|
||||
},
|
||||
},
|
||||
|
||||
horizontal = {
|
||||
preview_width = 0.5,
|
||||
preview_cutoff = 130,
|
||||
cycle_layout_list = {
|
||||
{ layout_strategy = 'bottom_pane', layout_config = { width = 1, height = 0.4 }, },
|
||||
'horizontal',
|
||||
'vertical',
|
||||
},
|
||||
|
||||
vertical = {
|
||||
preview_height = 0.5,
|
||||
},
|
||||
},
|
||||
|
||||
cycle_layout_list = {
|
||||
{ layout_strategy = 'bottom_pane', layout_config = { width = 1, height = 0.4 }, },
|
||||
'horizontal',
|
||||
'vertical',
|
||||
},
|
||||
|
||||
mappings = {
|
||||
i = mappings_insert_mode,
|
||||
n = mappings_normal_mode,
|
||||
},
|
||||
},
|
||||
|
||||
pickers = {
|
||||
buffers = { prompt_title = ' Buffers ' },
|
||||
find_files = { prompt_title = ' Files ' },
|
||||
git_commits = { prompt_title = ' Commits ' },
|
||||
help_tags = { prompt_title = ' Help tags ' },
|
||||
keymaps = { prompt_title = ' Keymaps ' },
|
||||
live_grep = { prompt_title = ' Live grep ' },
|
||||
vim_options = { prompt_title = ' Vim options ' },
|
||||
man_pages = { prompt_title = ' Man pages ' },
|
||||
},
|
||||
|
||||
extensions = {
|
||||
file_browser = {
|
||||
theme = 'ivy',
|
||||
mappings = {
|
||||
n = {
|
||||
-- normal mode mappings go here
|
||||
},
|
||||
i = {
|
||||
-- insert mode mappings go here
|
||||
i = mappings_insert_mode,
|
||||
n = mappings_normal_mode,
|
||||
},
|
||||
},
|
||||
|
||||
pickers = {
|
||||
buffers = { prompt_title = ' Buffers ' },
|
||||
find_files = { prompt_title = ' Files ' },
|
||||
git_commits = { prompt_title = ' Commits ' },
|
||||
help_tags = { prompt_title = ' Help tags ' },
|
||||
keymaps = { prompt_title = ' Keymaps ' },
|
||||
live_grep = { prompt_title = ' Live grep ' },
|
||||
vim_options = { prompt_title = ' Vim options ' },
|
||||
man_pages = { prompt_title = ' Man pages ' },
|
||||
},
|
||||
|
||||
extensions = {
|
||||
file_browser = {
|
||||
theme = 'ivy',
|
||||
mappings = {
|
||||
n = {
|
||||
-- normal mode mappings go here
|
||||
},
|
||||
i = {
|
||||
-- insert mode mappings go here
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
local selected_range = function()
|
||||
local _, s_row, s_col, _ = unpack(vim.fn.getpos('v'))
|
||||
local _, e_row, e_col, _ = unpack(vim.fn.getpos('.'))
|
||||
local selected_range = function()
|
||||
local _, s_row, s_col, _ = unpack(vim.fn.getpos('v'))
|
||||
local _, e_row, e_col, _ = unpack(vim.fn.getpos('.'))
|
||||
|
||||
local mode = vim.api.nvim_get_mode().mode
|
||||
local visual_line = (mode == 'V' or mode == 'CTRL-V')
|
||||
local mode = vim.api.nvim_get_mode().mode
|
||||
local visual_line = (mode == 'V' or mode == 'CTRL-V')
|
||||
|
||||
if s_row < e_row or (s_row == e_row and s_col <= e_col) then
|
||||
if visual_line then s_col, e_col = 1, #vim.fn.getline(e_row) end
|
||||
return s_row - 1, s_col - 1, e_row - 1, e_col
|
||||
else
|
||||
if visual_line then e_col, s_col = 1, #vim.fn.getline(s_row) end
|
||||
return e_row - 1, e_col - 1, s_row - 1, s_col
|
||||
if s_row < e_row or (s_row == e_row and s_col <= e_col) then
|
||||
if visual_line then s_col, e_col = 1, #vim.fn.getline(e_row) end
|
||||
return s_row - 1, s_col - 1, e_row - 1, e_col
|
||||
else
|
||||
if visual_line then e_col, s_col = 1, #vim.fn.getline(s_row) end
|
||||
return e_row - 1, e_col - 1, s_row - 1, s_col
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local selected_text = function()
|
||||
local r0, c0, r1, c1 = selected_range()
|
||||
return vim.fn.join(vim.api.nvim_buf_get_text(0, r0, c0, r1, c1, {}), '\n')
|
||||
end
|
||||
local selected_text = function()
|
||||
local r0, c0, r1, c1 = selected_range()
|
||||
return vim.fn.join(vim.api.nvim_buf_get_text(0, r0, c0, r1, c1, {}), '\n')
|
||||
end
|
||||
|
||||
local custom = {
|
||||
all_files = function()
|
||||
builtin.find_files {
|
||||
prompt_title = ' ALL Files ',
|
||||
hidden = true,
|
||||
no_ignore = true,
|
||||
no_ignore_parent = true,
|
||||
}
|
||||
end,
|
||||
local custom = {
|
||||
all_files = function()
|
||||
builtin.find_files {
|
||||
prompt_title = ' ALL Files ',
|
||||
hidden = true,
|
||||
no_ignore = true,
|
||||
no_ignore_parent = true,
|
||||
}
|
||||
end,
|
||||
|
||||
dotfiles = function()
|
||||
builtin.find_files {
|
||||
prompt_title = ' Find dotfiles ',
|
||||
cwd = '~/.dotfiles',
|
||||
hidden = true,
|
||||
}
|
||||
end,
|
||||
dotfiles = function()
|
||||
builtin.find_files {
|
||||
prompt_title = ' Find dotfiles ',
|
||||
cwd = '~/.dotfiles',
|
||||
hidden = true,
|
||||
}
|
||||
end,
|
||||
|
||||
grep_visual = function()
|
||||
local selection = selected_text()
|
||||
builtin.grep_string {
|
||||
prompt_title = string.format(' Grep: %s', selection),
|
||||
search = selection,
|
||||
}
|
||||
end,
|
||||
grep_visual = function()
|
||||
local selection = selected_text()
|
||||
builtin.grep_string {
|
||||
prompt_title = string.format(' Grep: %s', selection),
|
||||
search = selection,
|
||||
}
|
||||
end,
|
||||
|
||||
man_pages = function()
|
||||
-- Fix for macOS Ventura onwards (macOS 13.x <-> Darwin 22.x).
|
||||
-- See: https://github.com/nvim-telescope/telescope.nvim/issues/2326#issuecomment-1407502328
|
||||
local uname = vim.loop.os_uname()
|
||||
local sysname = string.lower(uname.sysname)
|
||||
if sysname == "darwin" then
|
||||
local major_version = tonumber(vim.fn.matchlist(uname.release, [[^\(\d\+\)\..*]])[2]) or 0
|
||||
if major_version >= 22 then
|
||||
man_pages = function()
|
||||
-- Fix for macOS Ventura onwards (macOS 13.x <-> Darwin 22.x).
|
||||
-- See: https://github.com/nvim-telescope/telescope.nvim/issues/2326#issuecomment-1407502328
|
||||
local uname = vim.loop.os_uname()
|
||||
local sysname = string.lower(uname.sysname)
|
||||
if sysname == "darwin" then
|
||||
local major_version = tonumber(vim.fn.matchlist(uname.release, [[^\(\d\+\)\..*]])[2]) or 0
|
||||
if major_version >= 22 then
|
||||
builtin.man_pages { sections = { 'ALL' }, man_cmd = { "apropos", "." } }
|
||||
else
|
||||
builtin.man_pages { sections = { 'ALL' }, man_cmd = { "apropos", " " } }
|
||||
end
|
||||
elseif sysname == "freebsd" then
|
||||
builtin.man_pages { sections = { 'ALL' }, man_cmd = { "apropos", "." } }
|
||||
else
|
||||
builtin.man_pages { sections = { 'ALL' }, man_cmd = { "apropos", " " } }
|
||||
builtin.man_pages { sections = { 'ALL' } }
|
||||
end
|
||||
elseif sysname == "freebsd" then
|
||||
builtin.man_pages { sections = { 'ALL' }, man_cmd = { "apropos", "." } }
|
||||
else
|
||||
builtin.man_pages { sections = { 'ALL' } }
|
||||
end
|
||||
end,
|
||||
}
|
||||
end,
|
||||
}
|
||||
|
||||
local map = vim.keymap.set
|
||||
map('n', '<leader>fa', custom.all_files, { desc = ' [F]ind [A]ll Files in $PWD' })
|
||||
map('n', '<leader>fb', builtin.buffers, { desc = ' [F]ind [B]uffers' })
|
||||
map('n', '<leader>fc', builtin.git_commits, { desc = ' [F]ind [C]ommits' })
|
||||
map('n', '<leader>fd', custom.dotfiles, { desc = ' [F]ind [D]otfiles' })
|
||||
map('n', '<leader>ff', builtin.find_files, { desc = ' [F]ind [F]iles in $PWD' })
|
||||
map('n', '<leader>fg', builtin.live_grep, { desc = ' [F]ind with [G]rep in $PWD' })
|
||||
map('n', '<leader>fh', builtin.help_tags, { desc = ' [F]ind [H]elp tags' })
|
||||
map('n', '<leader>fk', builtin.keymaps, { desc = ' [F]ind [K]eymaps' })
|
||||
map('n', '<leader>fm', custom.man_pages, { desc = ' [F]ind [M]an pages' })
|
||||
map('n', '<leader>fo', builtin.vim_options, { desc = ' [F]ind vim [O]ptions' })
|
||||
map('n', '<leader>fs', builtin.grep_string, { desc = ' [F]ind [S]tring' })
|
||||
map('v', '<leader>fs', custom.grep_visual, { desc = ' [F]ind visual [S]election' })
|
||||
end
|
||||
local map = vim.keymap.set
|
||||
map('n', '<leader>fa', custom.all_files, { desc = ' [F]ind [A]ll Files in $PWD' })
|
||||
map('n', '<leader>fb', builtin.buffers, { desc = ' [F]ind [B]uffers' })
|
||||
map('n', '<leader>fc', builtin.git_commits, { desc = ' [F]ind [C]ommits' })
|
||||
map('n', '<leader>fd', custom.dotfiles, { desc = ' [F]ind [D]otfiles' })
|
||||
map('n', '<leader>ff', builtin.find_files, { desc = ' [F]ind [F]iles in $PWD' })
|
||||
map('n', '<leader>fg', builtin.live_grep, { desc = ' [F]ind with [G]rep in $PWD' })
|
||||
map('n', '<leader>fh', builtin.help_tags, { desc = ' [F]ind [H]elp tags' })
|
||||
map('n', '<leader>fk', builtin.keymaps, { desc = ' [F]ind [K]eymaps' })
|
||||
map('n', '<leader>fm', custom.man_pages, { desc = ' [F]ind [M]an pages' })
|
||||
map('n', '<leader>fo', builtin.vim_options, { desc = ' [F]ind vim [O]ptions' })
|
||||
map('n', '<leader>fs', builtin.grep_string, { desc = ' [F]ind [S]tring' })
|
||||
map('v', '<leader>fs', custom.grep_visual, { desc = ' [F]ind visual [S]election' })
|
||||
end,
|
||||
}
|
||||
|
||||
file_browser = {
|
||||
local file_browser = {
|
||||
'nvim-telescope/telescope-file-browser.nvim',
|
||||
|
||||
dependencies = {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
},
|
||||
|
||||
config = function()
|
||||
require('telescope').load_extension 'file_browser'
|
||||
vim.keymap.set('n', '<leader>br', '<cmd>Telescope file_browser<cr>', { desc = ' file [BR]owser' })
|
||||
|
@ -172,12 +180,7 @@ file_browser = {
|
|||
}
|
||||
|
||||
return {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
|
||||
config = config_telescope,
|
||||
|
||||
dependencies = {
|
||||
file_browser,
|
||||
},
|
||||
telescope,
|
||||
file_browser,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,102 +1,102 @@
|
|||
return {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
|
||||
dependencies = {
|
||||
'nvim-treesitter/nvim-treesitter-refactor',
|
||||
'nvim-treesitter/nvim-treesitter-textobjects',
|
||||
'nvim-treesitter/playground',
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
'bash',
|
||||
'c',
|
||||
'cpp',
|
||||
'haskell',
|
||||
'html',
|
||||
'javascript',
|
||||
'latex',
|
||||
'lua',
|
||||
'make',
|
||||
'markdown',
|
||||
'markdown_inline',
|
||||
'python',
|
||||
'query',
|
||||
'toml',
|
||||
'vim',
|
||||
'vimdoc',
|
||||
'yaml',
|
||||
},
|
||||
|
||||
highlight = {
|
||||
enable = true,
|
||||
disable = {
|
||||
'help',
|
||||
},
|
||||
},
|
||||
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = 'gnn', -- mapped in normal mode
|
||||
node_incremental = '<CR>', -- mapped in visual mode
|
||||
node_decremental = '<BS>', -- mapped in visual mode
|
||||
scope_incremental = nil, -- disabled, normally mapped in visual mode
|
||||
},
|
||||
},
|
||||
|
||||
refactor = {
|
||||
highlight_definitions = { enable = true },
|
||||
highlight_current_scope = { enable = false },
|
||||
|
||||
smart_rename = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
smart_rename = 'grr',
|
||||
},
|
||||
},
|
||||
|
||||
navigation = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
goto_definition = 'gd', -- default: 'gnd'
|
||||
list_definitions = nil, -- disabled, default: 'gnD'
|
||||
list_definitions_toc = 'gO',
|
||||
goto_next_usage = '<a-*>',
|
||||
goto_previous_usage = '<a-#>',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
['ab'] = '@block.outer',
|
||||
['ib'] = '@block.inner',
|
||||
['ac'] = '@conditional.outer',
|
||||
['ic'] = '@conditional.inner',
|
||||
['af'] = '@function.outer',
|
||||
['if'] = '@function.inner',
|
||||
['al'] = '@loop.outer',
|
||||
['il'] = '@loop.inner',
|
||||
['aa'] = '@parameter.outer',
|
||||
['ia'] = '@parameter.inner',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
playground = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
|
||||
config = function(_, opts)
|
||||
require('nvim-treesitter.configs').setup(opts)
|
||||
|
||||
vim.keymap.set('n', '<leader>sp', '<cmd>TSPlaygroundToggle<cr>')
|
||||
vim.keymap.set('n', '<leader>sh', '<cmd>TSHighlightCapturesUnderCursor<cr>')
|
||||
vim.keymap.set('n', '<leader>sn', '<cmd>TSNodeUnderCursor<cr>')
|
||||
end,
|
||||
},
|
||||
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
'bash',
|
||||
'c',
|
||||
'cpp',
|
||||
'haskell',
|
||||
'html',
|
||||
'javascript',
|
||||
'latex',
|
||||
'lua',
|
||||
'make',
|
||||
'markdown',
|
||||
'markdown_inline',
|
||||
'python',
|
||||
'query',
|
||||
'toml',
|
||||
'vim',
|
||||
'vimdoc',
|
||||
'yaml',
|
||||
},
|
||||
|
||||
highlight = {
|
||||
enable = true,
|
||||
disable = {
|
||||
'help',
|
||||
},
|
||||
},
|
||||
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = 'gnn', -- mapped in normal mode
|
||||
node_incremental = '<CR>', -- mapped in visual mode
|
||||
node_decremental = '<BS>', -- mapped in visual mode
|
||||
scope_incremental = nil, -- disabled, normally mapped in visual mode
|
||||
},
|
||||
},
|
||||
|
||||
refactor = {
|
||||
highlight_definitions = { enable = true },
|
||||
highlight_current_scope = { enable = false },
|
||||
|
||||
smart_rename = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
smart_rename = 'grr',
|
||||
},
|
||||
},
|
||||
|
||||
navigation = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
goto_definition = 'gd', -- default: 'gnd'
|
||||
list_definitions = nil, -- disabled, default: 'gnD'
|
||||
list_definitions_toc = 'gO',
|
||||
goto_next_usage = '<a-*>',
|
||||
goto_previous_usage = '<a-#>',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
['ab'] = '@block.outer',
|
||||
['ib'] = '@block.inner',
|
||||
['ac'] = '@conditional.outer',
|
||||
['ic'] = '@conditional.inner',
|
||||
['af'] = '@function.outer',
|
||||
['if'] = '@function.inner',
|
||||
['al'] = '@loop.outer',
|
||||
['il'] = '@loop.inner',
|
||||
['aa'] = '@parameter.outer',
|
||||
['ia'] = '@parameter.inner',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
playground = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
|
||||
config = function(_, opts)
|
||||
require('nvim-treesitter.configs').setup(opts)
|
||||
|
||||
vim.keymap.set('n', '<leader>sp', '<cmd>TSPlaygroundToggle<cr>')
|
||||
vim.keymap.set('n', '<leader>sh', '<cmd>TSHighlightCapturesUnderCursor<cr>')
|
||||
vim.keymap.set('n', '<leader>sn', '<cmd>TSNodeUnderCursor<cr>')
|
||||
end,
|
||||
'nvim-treesitter/nvim-treesitter-refactor',
|
||||
'nvim-treesitter/nvim-treesitter-textobjects',
|
||||
'nvim-treesitter/playground',
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue