diff --git a/.config/nvim/after/plugin/fugitive.lua b/.config/nvim/after/plugin/fugitive.lua index 6e1b92d..363fa8d 100644 --- a/.config/nvim/after/plugin/fugitive.lua +++ b/.config/nvim/after/plugin/fugitive.lua @@ -1 +1 @@ -vim.keymap.set('n', 'gs', vim.cmd.Git) +vim.keymap.set('n', 'G', vim.cmd.Git) diff --git a/.config/nvim/after/plugin/gitsigns.lua b/.config/nvim/after/plugin/gitsigns.lua new file mode 100644 index 0000000..4f7bcd6 --- /dev/null +++ b/.config/nvim/after/plugin/gitsigns.lua @@ -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 '' + end, {expr=true}) + + map('n', '[c', function() + if vim.wo.diff then return '[c' end + vim.schedule(function() gs.prev_hunk() end) + return '' + end, {expr=true}) + + -- Actions + map({'n', 'v'}, 'hs', ':Gitsigns stage_hunk') + map({'n', 'v'}, 'hr', ':Gitsigns reset_hunk') + map('n', 'hS', gs.stage_buffer) + map('n', 'hu', gs.undo_stage_hunk) + map('n', 'hR', gs.reset_buffer) + map('n', 'hp', gs.preview_hunk) + map('n', 'hb', function() gs.blame_line{full=true} end) + map('n', 'tb', gs.toggle_current_line_blame) + map('n', 'hd', gs.diffthis) + map('n', 'hD', function() gs.diffthis('~') end) + map('n', 'td', gs.toggle_deleted) + + -- Text object + map({'o', 'x'}, 'ih', ':Gitsigns select_hunk') + end +} diff --git a/.config/nvim/after/plugin/indent-blankline.lua b/.config/nvim/after/plugin/indent-blankline.lua new file mode 100644 index 0000000..cebe6ae --- /dev/null +++ b/.config/nvim/after/plugin/indent-blankline.lua @@ -0,0 +1,7 @@ +vim.cmd [[highlight IndentBlanklineIndent guifg=#073642 gui=nocombine]] + +require("indent_blankline").setup { + char_highlight_list = { + "IndentBlanklineIndent", + } +} diff --git a/.config/nvim/after/plugin/lsp.lua b/.config/nvim/after/plugin/lsp.lua index d31c8c2..04f989e 100644 --- a/.config/nvim/after/plugin/lsp.lua +++ b/.config/nvim/after/plugin/lsp.lua @@ -46,7 +46,7 @@ cmp.setup { }, } -vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) +vim.keymap.set('n', 't', vim.diagnostic.open_float, 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.setloclist, opts) @@ -69,12 +69,16 @@ local on_attach = function(client, bufnr) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) - vim.keymap.set('n', 'f', vim.lsp.buf.formatting, bufopts) + vim.keymap.set('n', 'f', function() vim.lsp.buf.format { async = true } end, bufopts) -- vim.api.nvim_create_autocmd( -- { "BufWrite" }, {command = "lua vim.lsp.buf.formatting()"} -- ) end +vim.diagnostic.config({ + virtual_text = false, +}) + lspconfig.pylsp.setup { capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()), on_attach = on_attach, diff --git a/.config/nvim/after/plugin/telescope.lua b/.config/nvim/after/plugin/telescope.lua index c5ea680..8ec8960 100644 --- a/.config/nvim/after/plugin/telescope.lua +++ b/.config/nvim/after/plugin/telescope.lua @@ -1,11 +1,23 @@ local builtin = require('telescope.builtin') require('telescope').load_extension('fzf') -vim.keymap.set('n', 'ff', builtin.find_files, {}) -vim.keymap.set('n', 'fg', builtin.git_files, {}) -vim.keymap.set('n', 'fr', builtin.live_grep, {}) -vim.keymap.set('n', 'fb', builtin.buffers, {}) -vim.keymap.set('n', 'fs', builtin.grep_string, {}) -vim.keymap.set('n', 'fl', builtin.lsp_references, {}) -vim.keymap.set('n', 'fd', builtin.diagnostics, {}) -vim.keymap.set('n', 'fo', builtin.lsp_document_symbols, {}) -vim.keymap.set('n', 'ft', builtin.treesitter, {}) +vim.keymap.set('n', 'o', builtin.find_files, {}) +vim.keymap.set('n', 'l', builtin.git_files, {}) +vim.keymap.set('n', 'g', builtin.live_grep, {}) +vim.keymap.set('n', 'b', builtin.buffers, {}) +vim.keymap.set('n', 'i', builtin.grep_string, {}) +vim.keymap.set('n', 'r', builtin.lsp_references, {}) +vim.keymap.set('n', 'm', builtin.diagnostics, {}) +vim.keymap.set('n', 's', builtin.lsp_document_symbols, {}) +vim.keymap.set('n', 't', builtin.treesitter, {}) + +local actions = require "telescope.actions" +require('telescope').setup{ + defaults = { + mappings = { + i = { + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + } + } + } +} diff --git a/.config/nvim/after/plugin/treesitter.lua b/.config/nvim/after/plugin/treesitter.lua index bbd263c..32e2835 100644 --- a/.config/nvim/after/plugin/treesitter.lua +++ b/.config/nvim/after/plugin/treesitter.lua @@ -8,6 +8,6 @@ require'nvim-treesitter.configs'.setup { additional_vim_regex_highlighting = false, }, indent = { - enable = true + enable = true, } } diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 68350d3..855d09f 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -11,6 +11,12 @@ vim.o.shiftwidth = 4 vim.o.expandtab = 4 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.incsearch = true diff --git a/.config/nvim/lua/mappings.lua b/.config/nvim/lua/mappings.lua index 89f0839..b947795 100644 --- a/.config/nvim/lua/mappings.lua +++ b/.config/nvim/lua/mappings.lua @@ -2,6 +2,8 @@ vim.g.mapleader = ' ' vim.keymap.set('n', 'e', vim.cmd.Ex) vim.keymap.set('n', 'n', 'nzzzv') vim.keymap.set('n', 'N', 'Nzzzv') +vim.keymap.set('n', '', 'zz') +vim.keymap.set('n', '', 'zz') vim.keymap.set('n', 'w', ':w') vim.keymap.set('n', 'q', ':q') @@ -9,3 +11,16 @@ vim.keymap.set('n', '[b', ':bprev') vim.keymap.set('n', ']b', ':bnext') vim.keymap.set('n', '[B', ':bfirst') vim.keymap.set('n', ']B', ':blast') + +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', 'cd', ':cd %:p:h') diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua index 1830407..3ca0cfa 100644 --- a/.config/nvim/lua/plugins.lua +++ b/.config/nvim/lua/plugins.lua @@ -23,4 +23,8 @@ return require('packer').startup(function(use) use 'hrsh7th/cmp-nvim-lsp' -- LSP source for nvim-cmp use 'saadparwaiz1/cmp_luasnip' -- Snippets source for nvim-cmp use 'L3MON4D3/LuaSnip' -- Snippets plugin - end) + use 'lukas-reineke/indent-blankline.nvim' + + use 'lewis6991/gitsigns.nvim' + +end) diff --git a/.config/nvim/plugin/packer_compiled.lua b/.config/nvim/plugin/packer_compiled.lua index 566ed55..4ceddfd 100644 --- a/.config/nvim/plugin/packer_compiled.lua +++ b/.config/nvim/plugin/packer_compiled.lua @@ -95,6 +95,17 @@ _G.packer_plugins = { path = "/home/dm/.local/share/nvim/site/pack/packer/start/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"] = { loaded = true, path = "/home/dm/.local/share/nvim/site/pack/packer/start/nvim-cmp", @@ -138,6 +149,10 @@ _G.packer_plugins = { } 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 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") diff --git a/.config/nvim/requirements.txt b/.config/nvim/requirements.txt new file mode 100644 index 0000000..1d64597 --- /dev/null +++ b/.config/nvim/requirements.txt @@ -0,0 +1,8 @@ +pip: +python-lsp-server[all] + +system: +python3-lsp-server +fd +fzf +rg