|
|
|
@ -46,6 +46,7 @@ vim.cmd([[ |
|
|
|
|
Plug 'williamboman/mason.nvim' |
|
|
|
|
Plug 'williamboman/mason-lspconfig.nvim' |
|
|
|
|
Plug 'neovim/nvim-lspconfig' |
|
|
|
|
Plug 'nvimdev/lspsaga.nvim' |
|
|
|
|
Plug 'nvim-lualine/lualine.nvim' |
|
|
|
|
Plug 'nvim-tree/nvim-web-devicons' |
|
|
|
|
Plug 'nvim-lua/plenary.nvim' |
|
|
|
@ -60,6 +61,7 @@ vim.cmd([[ |
|
|
|
|
Plug 'hrsh7th/cmp-vsnip' |
|
|
|
|
Plug 'hrsh7th/vim-vsnip' |
|
|
|
|
Plug 'tpope/vim-fugitive' |
|
|
|
|
Plug 'lewis6991/gitsigns.nvim' |
|
|
|
|
Plug 'dracula/vim', { 'as': 'dracula' } |
|
|
|
|
Plug 'tpope/vim-surround' |
|
|
|
|
call plug#end() |
|
|
|
@ -105,6 +107,7 @@ local lua_ls_setup = { |
|
|
|
|
workspace = { |
|
|
|
|
-- Make the server aware of Neovim runtime files |
|
|
|
|
library = vim.api.nvim_get_runtime_file("", true), |
|
|
|
|
checkThirdParty = false, |
|
|
|
|
}, |
|
|
|
|
-- Do not send telemetry data containing a randomized but unique identifier |
|
|
|
|
telemetry = { |
|
|
|
@ -226,6 +229,88 @@ cmp.setup.cmdline(':', { |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
require('gitsigns').setup({ |
|
|
|
|
signs = { |
|
|
|
|
add = { text = '│' }, |
|
|
|
|
change = { text = '│' }, |
|
|
|
|
delete = { text = '_' }, |
|
|
|
|
topdelete = { text = '‾' }, |
|
|
|
|
changedelete = { text = '~' }, |
|
|
|
|
untracked = { text = '┆' }, |
|
|
|
|
}, |
|
|
|
|
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` |
|
|
|
|
numhl = false, -- Toggle with `:Gitsigns toggle_numhl` |
|
|
|
|
linehl = false, -- Toggle with `:Gitsigns toggle_linehl` |
|
|
|
|
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` |
|
|
|
|
watch_gitdir = { |
|
|
|
|
follow_files = true |
|
|
|
|
}, |
|
|
|
|
attach_to_untracked = true, |
|
|
|
|
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` |
|
|
|
|
current_line_blame_opts = { |
|
|
|
|
virt_text = true, |
|
|
|
|
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' |
|
|
|
|
delay = 1000, |
|
|
|
|
ignore_whitespace = false, |
|
|
|
|
}, |
|
|
|
|
current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>', |
|
|
|
|
sign_priority = 6, |
|
|
|
|
update_debounce = 100, |
|
|
|
|
status_formatter = nil, -- Use default |
|
|
|
|
max_file_length = 40000, -- Disable if file is longer than this (in lines) |
|
|
|
|
preview_config = { |
|
|
|
|
-- Options passed to nvim_open_win |
|
|
|
|
border = 'single', |
|
|
|
|
style = 'minimal', |
|
|
|
|
relative = 'cursor', |
|
|
|
|
row = 0, |
|
|
|
|
col = 1 |
|
|
|
|
}, |
|
|
|
|
yadm = { |
|
|
|
|
enable = false |
|
|
|
|
}, |
|
|
|
|
on_attach = function(bufnr) |
|
|
|
|
local gs = package.loaded.gitsigns |
|
|
|
|
|
|
|
|
|
local function map(mode, l, r, opts) |
|
|
|
|
opts = opts or {} |
|
|
|
|
opts.buffer = bufnr |
|
|
|
|
vim.keymap.set(mode, l, r, opts) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
-- Navigation |
|
|
|
|
map('n', ']c', function() |
|
|
|
|
if vim.wo.diff then return ']c' end |
|
|
|
|
vim.schedule(function() gs.next_hunk() end) |
|
|
|
|
return '<Ignore>' |
|
|
|
|
end, {expr=true}) |
|
|
|
|
|
|
|
|
|
map('n', '[c', function() |
|
|
|
|
if vim.wo.diff then return '[c' end |
|
|
|
|
vim.schedule(function() gs.prev_hunk() end) |
|
|
|
|
return '<Ignore>' |
|
|
|
|
end, {expr=true}) |
|
|
|
|
|
|
|
|
|
-- Actions |
|
|
|
|
map('n', '<leader>hs', gs.stage_hunk) |
|
|
|
|
map('n', '<leader>hr', gs.reset_hunk) |
|
|
|
|
map('v', '<leader>hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end) |
|
|
|
|
map('v', '<leader>hr', function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end) |
|
|
|
|
map('n', '<leader>hS', gs.stage_buffer) |
|
|
|
|
map('n', '<leader>hu', gs.undo_stage_hunk) |
|
|
|
|
map('n', '<leader>hR', gs.reset_buffer) |
|
|
|
|
map('n', '<leader>hp', gs.preview_hunk) |
|
|
|
|
map('n', '<leader>hb', function() gs.blame_line{full=true} end) |
|
|
|
|
map('n', '<leader>tb', gs.toggle_current_line_blame) |
|
|
|
|
map('n', '<leader>hd', gs.diffthis) |
|
|
|
|
map('n', '<leader>hD', function() gs.diffthis('~') end) |
|
|
|
|
map('n', '<leader>td', gs.toggle_deleted) |
|
|
|
|
|
|
|
|
|
end |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
require('lspsaga').setup() |
|
|
|
|
|
|
|
|
|
-- Switch syntax highlighting on |
|
|
|
|
vim.cmd("syntax enable") |
|
|
|
|
|
|
|
|
|