Compare commits

..

8 Commits

3 changed files with 116 additions and 22 deletions

113
init.lua
View File

@ -60,9 +60,9 @@ require('Comment').setup{
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help indent_blankline.txt`
require('indent_blankline').setup {
char = '',
show_trailing_blankline_indent = false,
require('ibl').setup {
indent = {char = ''},
-- show_trailing_blankline_indent = false,
}
-- Gitsigns
@ -75,6 +75,66 @@ require('gitsigns').setup {
topdelete = { text = '' },
changedelete = { text = '~' },
},
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', 'v' }, ']c', function()
if vim.wo.diff then
return ']c'
end
vim.schedule(function()
gs.next_hunk()
end)
return '<Ignore>'
end, { expr = true, desc = 'Jump to next hunk' })
map({ 'n', 'v' }, '[c', function()
if vim.wo.diff then
return '[c'
end
vim.schedule(function()
gs.prev_hunk()
end)
return '<Ignore>'
end, { expr = true, desc = 'Jump to previous hunk' })
-- Actions
-- visual mode
map('v', '<leader>gs', function()
gs.stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
end, { desc = 'stage git hunk' })
map('v', '<leader>gr', function()
gs.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
end, { desc = 'reset git hunk' })
-- normal mode
map('n', '<leader>gs', gs.stage_hunk, { desc = 'git stage hunk' })
map('n', '<leader>gr', gs.reset_hunk, { desc = 'git reset hunk' })
map('n', '<leader>gS', gs.stage_buffer, { desc = 'git Stage buffer' })
map('n', '<leader>gu', gs.undo_stage_hunk, { desc = 'undo stage hunk' })
map('n', '<leader>gR', gs.reset_buffer, { desc = 'git Reset buffer' })
map('n', '<leader>gp', gs.preview_hunk, { desc = 'preview git hunk' })
map('n', '<leader>gb', function()
gs.blame_line { full = false }
end, { desc = 'git blame line' })
map('n', '<leader>gd', gs.diffthis, { desc = 'git diff against index' })
map('n', '<leader>gD', function()
gs.diffthis '~'
end, { desc = 'git diff against last commit' })
-- Toggles
map('n', '<leader>tb', gs.toggle_current_line_blame, { desc = 'toggle git blame line' })
map('n', '<leader>td', gs.toggle_deleted, { desc = 'toggle git show deleted' })
-- Text object
map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>', { desc = 'select git hunk' })
end,
}
-- [[ Configure Telescope ]]
@ -226,6 +286,30 @@ local servers = {
},
}
local rainbow_delimiters = require 'rainbow-delimiters'
vim.g.rainbow_delimiters = {
strategy = {
[''] = rainbow_delimiters.strategy['global'],
vim = rainbow_delimiters.strategy['local'],
},
query = {
[''] = 'rainbow-delimiters',
lua = 'rainbow-blocks',
},
highlight = {
'RainbowDelimiterRed',
'RainbowDelimiterYellow',
'RainbowDelimiterBlue',
'RainbowDelimiterOrange',
'RainbowDelimiterGreen',
'RainbowDelimiterViolet',
'RainbowDelimiterCyan',
},
}
-- Setup neovim lua configuration
require('neodev').setup()
--
@ -238,7 +322,6 @@ require('mason').setup()
-- Ensure the servers above are installed
local mason_lspconfig = require 'mason-lspconfig'
local coq = require 'coq'
mason_lspconfig.setup {
ensure_installed = vim.tbl_keys(servers),
@ -248,7 +331,6 @@ mason_lspconfig.setup {
mason_lspconfig.setup_handlers {
function(server_name)
require('lspconfig')[server_name].setup {
-- capabilities = coq.lsp_ensure_capabilities(),
capabilities = capabilities,
on_attach = on_attach,
settings = servers[server_name],
@ -256,7 +338,7 @@ mason_lspconfig.setup_handlers {
end,
}
-- Turn on lsp status information
require('fidget').setup()
-- require('fidget').setup()
-- highlight trailing whitespace
vim.cmd([[
@ -279,6 +361,22 @@ vim.keymap.set('n', '<leader>F', function()
hop.hint_words({ direction = directions.BEFORE_CURSOR, current_line_only = false })
end, {remap=true})
local tabnine = require('cmp_tabnine.config')
tabnine:setup({
max_lines = 1000,
max_num_results = 20,
sort = true,
run_on_every_keystroke = true,
snippet_placeholder = '..',
ignored_file_types = {
-- default is not to ignore
-- uncomment to ignore in lua:
-- lua = true
},
show_prediction_strength = false
})
-- nvim-cmp setup
local cmp = require 'cmp'
local luasnip = require 'luasnip'
@ -293,6 +391,8 @@ cmp.setup {
end,
},
mapping = cmp.mapping.preset.insert {
['<C-n>'] = cmp.mapping.select_next_item(),
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
@ -322,6 +422,7 @@ cmp.setup {
sources = {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
{ name = 'cmp_tabnine' },
},
}

View File

@ -54,8 +54,8 @@ vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { de
-- Diagnostic keymaps
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' })
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' })
vim.keymap.set('n', '<leader>ld', '<esc>:TroubleToggle<cr>', {desc = 'Buffer diagnostics', silent = true})
-- vim.keymap.set('n', '<leader>ld', vim.diagnostic.open_float)
-- vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist)

View File

@ -14,7 +14,6 @@ require('packer').startup({function(use)
use {
-- Useful status updates for LSP
'j-hui/fidget.nvim',
-- branch = 'legacy',
}
use { -- LSP Configuration & Plugins
@ -58,18 +57,6 @@ require('packer').startup({function(use)
requires = { 'hrsh7th/cmp-nvim-lsp', 'L3MON4D3/LuaSnip', 'saadparwaiz1/cmp_luasnip' },
}
-- coq Autocompletion
use {
'ms-jpq/coq_nvim',
branch = "coq",
}
use {
"ms-jpq/coq.artifacts",
branch = "artifacts",
requires = {'ms-jpq/coq_nvim'}
}
use { -- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter',
run = function()
@ -78,7 +65,13 @@ require('packer').startup({function(use)
}
use {
'nvim-treesitter/playground',
}
}
use {
'HiPhish/rainbow-delimiters.nvim'
}
use {'tzachar/cmp-tabnine', run='./install.sh', requires = 'hrsh7th/nvim-cmp'}
use { -- Additional text objects via treesitter
'nvim-treesitter/nvim-treesitter-textobjects',