From 16a4cf891f717e77602158937c1a031369586006 Mon Sep 17 00:00:00 2001 From: tiyn Date: Fri, 11 Aug 2023 00:43:04 +0200 Subject: [PATCH] nvim: added more plugins for ide feeling --- .config/nvim/lua/keymap.lua | 89 +++++++++++++++----------------- .config/nvim/lua/loadplugins.lua | 53 ++++++++++++++++++- 2 files changed, 94 insertions(+), 48 deletions(-) diff --git a/.config/nvim/lua/keymap.lua b/.config/nvim/lua/keymap.lua index a1b34e7..d1a091f 100644 --- a/.config/nvim/lua/keymap.lua +++ b/.config/nvim/lua/keymap.lua @@ -2,51 +2,47 @@ vim.g.mapleader = "," -- unmap unwanted commands -vim.api.nvim_set_keymap('n', '', '', { noremap = true }) -vim.api.nvim_set_keymap('n', '', '', { noremap = true }) -vim.api.nvim_set_keymap('n', '', '', { noremap = true }) -vim.api.nvim_set_keymap('n', '', '', { noremap = true }) -vim.api.nvim_set_keymap('n', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) -vim.api.nvim_set_keymap('i', '', '', { noremap = true }) +vim.keymap.set({ 'n', 'i' }, '', '', { noremap = true }) +vim.keymap.set('i', '', '', { noremap = true }) +vim.keymap.set('i', '', '', { noremap = true }) +vim.keymap.set('i', '', '', { noremap = true }) +vim.keymap.set('i', '', '', { noremap = true }) +vim.keymap.set('i', '', '', { noremap = true }) +vim.keymap.set('i', '', '', { noremap = true }) +vim.keymap.set('i', '', '', { noremap = true }) +vim.keymap.set({ 'n', 'i' }, '', '', { noremap = true }) +vim.keymap.set({ 'n', 'i' }, '', '', { noremap = true }) +vim.keymap.set({ 'n', 'i' }, '', '', { noremap = true }) +vim.keymap.set({ 'n', 'i' }, '', '', { noremap = true }) -- shortcut for split navigation -vim.api.nvim_set_keymap('n', '', 'h', { noremap = true }) -vim.api.nvim_set_keymap('n', '', 'j', { noremap = true }) -vim.api.nvim_set_keymap('n', '', 'k', { noremap = true }) -vim.api.nvim_set_keymap('n', '', 'l', { noremap = true }) +vim.keymap.set('n', '', 'h', { noremap = true }) +vim.keymap.set('n', '', 'j', { noremap = true }) +vim.keymap.set('n', '', 'k', { noremap = true }) +vim.keymap.set('n', '', 'l', { noremap = true }) -- mapping Dictionaries -vim.api.nvim_set_keymap('n', '', ':setlocal spell! spelllang=de_de', { noremap = true }) -vim.api.nvim_set_keymap('n', '', ':setlocal spell! spelllang=en_us', { noremap = true }) +vim.keymap.set('n', '', ':setlocal spell! spelllang=de_de', { noremap = true }) +vim.keymap.set('n', '', ':setlocal spell! spelllang=en_us', { noremap = true }) -- compiler for languages -vim.api.nvim_set_keymap('n', 'c', ':w! | !compiler %', { noremap = true }) +vim.keymap.set('n', 'c', ':w! | !compiler %', { noremap = true }) -- save file as sudo on files that require root permission -vim.api.nvim_set_keymap('c', 'w!!', '"silent! write !sudo tee % >/dev/null" edit!', { noremap = true }) +vim.keymap.set('c', 'w!!', '"silent! write !sudo tee % >/dev/null" edit!', { noremap = true }) -- alias for replacing -vim.api.nvim_set_keymap('n', 'ss', ':%s//gI', { noremap = true }) +vim.keymap.set('n', 'ss', ':%s//gI', { noremap = true }) -- irc compatibility for interactivity -vim.api.nvim_set_keymap('n', 'is', ':.w >> indd', { noremap = true }) +vim.keymap.set('n', 'is', ':.w >> indd', { noremap = true }) -- frabjous/knap vim.api.nvim_create_autocmd('FileType', { pattern = 'tex', callback = function() - vim.api.nvim_set_keymap('n', 'p', ':lua require("knap").toggle_autopreviewing()', { noremap = true }) + vim.keymap.set('n', 'p', ':lua require("knap").toggle_autopreviewing()', { noremap = true }) end, }) @@ -54,34 +50,33 @@ vim.api.nvim_create_autocmd('FileType', { vim.api.nvim_create_autocmd('FileType', { pattern = 'markdown', callback = function() - vim.api.nvim_set_keymap('n', 'p', ':MarkdownPreviewToggle', { noremap = true }) + vim.keymap.set('n', 'p', ':MarkdownPreviewToggle', { noremap = true }) end, }) -- SmiteshP/nvim-navbuddy -vim.api.nvim_set_keymap('n', '', ':Navbuddy', {}) +vim.keymap.set('n', '', ':Navbuddy', {}) -- nvim-tree/nvim-tree.lua -vim.api.nvim_set_keymap('n', '', ':NvimTreeToggle toggle', {}) +vim.keymap.set('n', '', ':NvimTreeToggle toggle', {}) --- tpope/vim-fugitive -vim.api.nvim_set_keymap('n', 'ga', ':Git add %:p', { noremap = true }) -vim.api.nvim_set_keymap('n', 'gd', ':Git diff', { noremap = true }) -vim.api.nvim_set_keymap('n', 'gc', ':Git commit', { noremap = true }) -vim.api.nvim_set_keymap('n', 'gh', ':diffget //3', { noremap = true }) -vim.api.nvim_set_keymap('n', 'gr', ':Gread', { noremap = true }) -vim.api.nvim_set_keymap('n', 'gu', ':diffget //2', { noremap = true }) -vim.api.nvim_set_keymap('n', 'gs', ':G', { noremap = true }) +-- numToStr/FTerm.nvim +vim.keymap.set('n', 't', ':lua require("FTerm").toggle()', { noremap = true }) +vim.keymap.set('t', 't', ':lua require("FTerm").toggle()', { noremap = true }) +local lazygit = require("FTerm"):new({ + cmd = 'lazygit', +}) +vim.keymap.set({ 'n', 't' }, 'gt', function() lazygit:toggle() end) -- hrsh7th/nvim-cmp -vim.api.nvim_set_keymap('n', 'gD', ':lua vim.lsp.buf.declaration()', { noremap = true }) -vim.api.nvim_set_keymap('n', 'gd', ':lua vim.lsp.buf.definition()', { noremap = true }) -vim.api.nvim_set_keymap('n', 'gy', ':lua vim.lsp.buf.type_definition()', { noremap = true }) -vim.api.nvim_set_keymap('n', 'gi', ':lua vim.lsp.buf.implementation()', { noremap = true }) -vim.api.nvim_set_keymap('n', 'gr', ':lua vim.lsp.buf.references()', { noremap = true }) -vim.api.nvim_set_keymap('n', 'K', ':lua vim.lsp.buf.hover()', { noremap = true }) -vim.api.nvim_set_keymap('n', '', ':lua vim.lsp.buf.rename()', { noremap = true }) -vim.api.nvim_set_keymap('n', '', ':lua vim.lsp.buf.format()', { noremap = true }) +vim.keymap.set('n', 'gD', ':lua vim.lsp.buf.declaration()', { noremap = true }) +vim.keymap.set('n', 'gd', ':lua vim.lsp.buf.definition()', { noremap = true }) +vim.keymap.set('n', 'gy', ':lua vim.lsp.buf.type_definition()', { noremap = true }) +vim.keymap.set('n', 'gi', ':lua vim.lsp.buf.implementation()', { noremap = true }) +vim.keymap.set('n', 'gr', ':lua vim.lsp.buf.references()', { noremap = true }) +vim.keymap.set('n', 'K', ':lua vim.lsp.buf.hover()', { noremap = true }) +vim.keymap.set('n', '', ':lua vim.lsp.buf.rename()', { noremap = true }) +vim.keymap.set('n', '', ':lua vim.lsp.buf.format()', { noremap = true }) -- nvim-telescope/telescope.nvim -vim.api.nvim_set_keymap('n', '', ':Telescope find_files', { noremap = true }) +vim.keymap.set('n', '', ':Telescope find_files', { noremap = true }) diff --git a/.config/nvim/lua/loadplugins.lua b/.config/nvim/lua/loadplugins.lua index 0dbd93c..0a6f6d1 100644 --- a/.config/nvim/lua/loadplugins.lua +++ b/.config/nvim/lua/loadplugins.lua @@ -464,10 +464,61 @@ return require("lazy").setup({ ), }) end, + }, + -- scrollbar with git and diagnostics support for easier navigation + { + 'petertriho/nvim-scrollbar', + dependencies = { + 'kevinhwang91/nvim-hlslens', + 'lewis6991/gitsigns.nvim' + }, + config = function() + require("scrollbar").setup({ + marks = { + Cursor = { + highlight = "Normal" + }, + Search = { + highlight = "Special" + }, + Error = { + highlight = "DiagnosticSignError" + }, + Warn = { + highlight = "DiagnosticSignWarn" + }, + Info = { + highlight = "DiagnosticSignInfo" + }, + Hint = { + highlight = "DiagnosticSignHint" + }, + Misc = { + highlight = "Special" + }, + GitAdd = { + highlight = "GitGutterAdd" + }, + GitChange = { + highlight = "GitGutterChange" + }, + GitDelete = { + highlight = "GitGutterDelete" + } + }, + }) + require("scrollbar.handlers.search").setup() + require("scrollbar.handlers.gitsigns").setup() + end + }, + + -- floating terminal to toggle + { + 'numToStr/FTerm.nvim', + opts = {} } }, - -- lazy.nvim configuration { ui = {