nvim: change lsp config and add telecope shortcuts

This commit is contained in:
Daniel Meiburg 2023-02-28 02:03:21 +01:00
parent 927806a627
commit a2f7cd7218
Signed by: dm
GPG Key ID: E5827ECFFE0AA4F2
11 changed files with 125 additions and 14 deletions

View File

@ -1 +1 @@
vim.keymap.set('n', '<leader>gs', vim.cmd.Git) vim.keymap.set('n', '<leader>G', vim.cmd.Git)

View File

@ -0,0 +1,40 @@
require('gitsigns').setup{
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', 'v'}, '<leader>hs', ':Gitsigns stage_hunk<CR>')
map({'n', 'v'}, '<leader>hr', ':Gitsigns reset_hunk<CR>')
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)
-- Text object
map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
end
}

View File

@ -0,0 +1,7 @@
vim.cmd [[highlight IndentBlanklineIndent guifg=#073642 gui=nocombine]]
require("indent_blankline").setup {
char_highlight_list = {
"IndentBlanklineIndent",
}
}

View File

@ -46,7 +46,7 @@ cmp.setup {
}, },
} }
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts) vim.keymap.set('n', '<leader>t', vim.diagnostic.open_float, opts)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
vim.keymap.set('n', '<leader>d', vim.diagnostic.setloclist, opts) vim.keymap.set('n', '<leader>d', vim.diagnostic.setloclist, opts)
@ -69,12 +69,16 @@ local on_attach = function(client, bufnr)
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, bufopts) vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<leader>f', vim.lsp.buf.formatting, bufopts) vim.keymap.set('n', '<leader>f', function() vim.lsp.buf.format { async = true } end, bufopts)
-- vim.api.nvim_create_autocmd( -- vim.api.nvim_create_autocmd(
-- { "BufWrite" }, {command = "lua vim.lsp.buf.formatting()"} -- { "BufWrite" }, {command = "lua vim.lsp.buf.formatting()"}
-- ) -- )
end end
vim.diagnostic.config({
virtual_text = false,
})
lspconfig.pylsp.setup { lspconfig.pylsp.setup {
capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()), capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()),
on_attach = on_attach, on_attach = on_attach,

View File

@ -1,11 +1,23 @@
local builtin = require('telescope.builtin') local builtin = require('telescope.builtin')
require('telescope').load_extension('fzf') require('telescope').load_extension('fzf')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {}) vim.keymap.set('n', '<leader>o', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.git_files, {}) vim.keymap.set('n', '<leader>l', builtin.git_files, {})
vim.keymap.set('n', '<leader>fr', builtin.live_grep, {}) vim.keymap.set('n', '<leader>g', builtin.live_grep, {})
vim.keymap.set('n', '<leader>fb', builtin.buffers, {}) vim.keymap.set('n', '<leader>b', builtin.buffers, {})
vim.keymap.set('n', '<leader>fs', builtin.grep_string, {}) vim.keymap.set('n', '<leader>i', builtin.grep_string, {})
vim.keymap.set('n', '<leader>fl', builtin.lsp_references, {}) vim.keymap.set('n', '<leader>r', builtin.lsp_references, {})
vim.keymap.set('n', '<leader>fd', builtin.diagnostics, {}) vim.keymap.set('n', '<leader>m', builtin.diagnostics, {})
vim.keymap.set('n', '<leader>fo', builtin.lsp_document_symbols, {}) vim.keymap.set('n', '<leader>s', builtin.lsp_document_symbols, {})
vim.keymap.set('n', '<leader>ft', builtin.treesitter, {}) vim.keymap.set('n', '<leader>t', builtin.treesitter, {})
local actions = require "telescope.actions"
require('telescope').setup{
defaults = {
mappings = {
i = {
["<C-p>"] = actions.move_selection_next,
["<C-n>"] = actions.move_selection_previous,
}
}
}
}

View File

@ -8,6 +8,6 @@ require'nvim-treesitter.configs'.setup {
additional_vim_regex_highlighting = false, additional_vim_regex_highlighting = false,
}, },
indent = { indent = {
enable = true enable = true,
} }
} }

View File

@ -11,6 +11,12 @@ vim.o.shiftwidth = 4
vim.o.expandtab = 4 vim.o.expandtab = 4
vim.o.smartindent = true vim.o.smartindent = true
vim.o.autoindent = true
vim.o.showmatch = true -- show matching brackets
vim.o.laststatus = 2 -- always show status line
vim.o.timeout = false
vim.o.hlsearch = false vim.o.hlsearch = false
vim.o.incsearch = true vim.o.incsearch = true

View File

@ -2,6 +2,8 @@ vim.g.mapleader = ' '
vim.keymap.set('n', '<leader>e', vim.cmd.Ex) vim.keymap.set('n', '<leader>e', vim.cmd.Ex)
vim.keymap.set('n', 'n', 'nzzzv') vim.keymap.set('n', 'n', 'nzzzv')
vim.keymap.set('n', 'N', 'Nzzzv') vim.keymap.set('n', 'N', 'Nzzzv')
vim.keymap.set('n', '<C-d>', '<C-d>zz')
vim.keymap.set('n', '<C-u>', '<C-u>zz')
vim.keymap.set('n', '<leader>w', ':w<CR>') vim.keymap.set('n', '<leader>w', ':w<CR>')
vim.keymap.set('n', '<leader>q', ':q<CR>') vim.keymap.set('n', '<leader>q', ':q<CR>')
@ -9,3 +11,16 @@ vim.keymap.set('n', '[b', ':bprev<CR>')
vim.keymap.set('n', ']b', ':bnext<CR>') vim.keymap.set('n', ']b', ':bnext<CR>')
vim.keymap.set('n', '[B', ':bfirst<CR>') vim.keymap.set('n', '[B', ':bfirst<CR>')
vim.keymap.set('n', ']B', ':blast<CR>') vim.keymap.set('n', ']B', ':blast<CR>')
vim.keymap.set('n', 'H', '^')
vim.keymap.set('n', 'dH', 'd^')
vim.keymap.set('n', 'yH', 'y^')
vim.keymap.set('n', 'cH', 'c^')
vim.keymap.set('n', 'L', '$')
vim.keymap.set('n', 'dL', 'd$')
vim.keymap.set('n', 'yL', 'y$')
vim.keymap.set('n', 'cL', 'c$')
vim.keymap.set('v', 'L', '$')
vim.keymap.set('v', 'H', '^')
vim.keymap.set('n', '<leader>cd', ':cd %:p:h<CR>')

View File

@ -23,4 +23,8 @@ return require('packer').startup(function(use)
use 'hrsh7th/cmp-nvim-lsp' -- LSP source for nvim-cmp use 'hrsh7th/cmp-nvim-lsp' -- LSP source for nvim-cmp
use 'saadparwaiz1/cmp_luasnip' -- Snippets source for nvim-cmp use 'saadparwaiz1/cmp_luasnip' -- Snippets source for nvim-cmp
use 'L3MON4D3/LuaSnip' -- Snippets plugin use 'L3MON4D3/LuaSnip' -- Snippets plugin
end) use 'lukas-reineke/indent-blankline.nvim'
use 'lewis6991/gitsigns.nvim'
end)

View File

@ -95,6 +95,17 @@ _G.packer_plugins = {
path = "/home/dm/.local/share/nvim/site/pack/packer/start/cmp_luasnip", path = "/home/dm/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
url = "https://github.com/saadparwaiz1/cmp_luasnip" url = "https://github.com/saadparwaiz1/cmp_luasnip"
}, },
["gitsigns.nvim"] = {
config = { "\27LJ\2\0026\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\rgitsigns\frequire\0" },
loaded = true,
path = "/home/dm/.local/share/nvim/site/pack/packer/start/gitsigns.nvim",
url = "https://github.com/lewis6991/gitsigns.nvim"
},
["indent-blankline.nvim"] = {
loaded = true,
path = "/home/dm/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim",
url = "https://github.com/lukas-reineke/indent-blankline.nvim"
},
["nvim-cmp"] = { ["nvim-cmp"] = {
loaded = true, loaded = true,
path = "/home/dm/.local/share/nvim/site/pack/packer/start/nvim-cmp", path = "/home/dm/.local/share/nvim/site/pack/packer/start/nvim-cmp",
@ -138,6 +149,10 @@ _G.packer_plugins = {
} }
time([[Defining packer_plugins]], false) time([[Defining packer_plugins]], false)
-- Config for: gitsigns.nvim
time([[Config for gitsigns.nvim]], true)
try_loadstring("\27LJ\2\0026\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\rgitsigns\frequire\0", "config", "gitsigns.nvim")
time([[Config for gitsigns.nvim]], false)
-- Config for: NeoSolarized -- Config for: NeoSolarized
time([[Config for NeoSolarized]], true) time([[Config for NeoSolarized]], true)
try_loadstring("\27LJ\2\2<\0\0\2\0\3\0\0056\0\0\0009\0\1\0'\1\2\0B\0\2\1K\0\1\0\29colorscheme NeoSolarized\bcmd\bvim\0", "config", "NeoSolarized") try_loadstring("\27LJ\2\2<\0\0\2\0\3\0\0056\0\0\0009\0\1\0'\1\2\0B\0\2\1K\0\1\0\29colorscheme NeoSolarized\bcmd\bvim\0", "config", "NeoSolarized")

View File

@ -0,0 +1,8 @@
pip:
python-lsp-server[all]
system:
python3-lsp-server
fd
fzf
rg