From acb865b0152efbc1d64034acf0711d0eadde5e46 Mon Sep 17 00:00:00 2001 From: compromyse Date: Sun, 11 Dec 2022 13:37:11 +0530 Subject: add files --- .config/nvim/init.lua | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 .config/nvim/init.lua (limited to '.config/nvim/init.lua') diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..43d362d --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,205 @@ +vim.opt.number = true +vim.opt.mouse = 'a' +vim.opt.ignorecase = true +vim.opt.smartcase = true +vim.opt.hlsearch = false +vim.opt.wrap = true +vim.opt.breakindent = true +vim.opt.tabstop = 2 +vim.opt.shiftwidth = 2 +vim.opt.expandtab = false +vim.opt.keymodel = 'startsel','stopsel' + +vim.opt.termguicolors = true + +-- vim.keymap.set('n', 'w', 'write', {desc = 'Save'}) + +require('packer').startup(function(use) + use 'wbthomason/packer.nvim' + use 'navarasu/onedark.nvim' + + use { + 'nvim-lualine/lualine.nvim', + requires = { 'kyazdani42/nvim-web-devicons', opt = true } + } + + use {'akinsho/bufferline.nvim', tag = "v3.*", requires = 'nvim-tree/nvim-web-devicons'} + + use 'lukas-reineke/indent-blankline.nvim' + use 'jiangmiao/auto-pairs' + + use { + 'numToStr/Comment.nvim', + config = function() + require('Comment').setup() + end + } + + use 'kyazdani42/nvim-tree.lua' + use 'akinsho/toggleterm.nvim' + use 'editorconfig/editorconfig-vim' + + use { + 'nvim-telescope/telescope.nvim', + requires = { {'nvim-lua/plenary.nvim'}} + } + + use 'neovim/nvim-lspconfig' + use 'hrsh7th/nvim-cmp' + use 'hrsh7th/vim-vsnip' + use 'hrsh7th/cmp-nvim-lsp' + use 'mhinz/vim-startify' + + if install_plugins then + require('packer').sync() + end +end) + +if install_plugins then + return +end + +require('onedark').setup { + style = 'warmer' +} +require('onedark').load() + +require('lualine').setup { + options = { + theme = 'onedark' + } +} + +require('bufferline').setup { + options = { + mode = 'buffers', + offsets = { + {filetype = 'NvimTree'} + }, + }, + highlights = { + buffer_selected = { + italic = false + }, + indicator_selected = { + fg = {attribute = 'fg', highlight = 'Function'}, + italic = false + } + } +} + +require('indent_blankline').setup { + char = '▏', + show_trailing_blankline_indent = false, + show_first_indent_level = false, + show_current_context = false +} + +require('Comment').setup { + padding = true, + toggler = { + line = '..' + } +} + +require('nvim-tree').setup { + hijack_cursor = false, + on_attach = function(bufnr) + local bufmap = function(lhs, rhs, desc) + vim.keymap.set('n', lhs, rhs, {buffer = bufnr, desc = desc}) + end + + -- See :help nvim-tree.api + local api = require('nvim-tree.api') + + bufmap('L', api.node.open.edit, 'Expand folder or go to file') + bufmap('H', api.node.navigate.parent_close, 'Close parent folder') + bufmap('gh', api.tree.toggle_hidden_filter, 'Toggle hidden files') + end +} + +vim.keymap.set('n', ',,', 'NvimTreeToggle') +vim.keymap.set('n', '', 'Telescope buffers') + +require('toggleterm').setup { + open_mapping = '', + direction = 'float', + shade_terminals = true +} + +vim.keymap.set('n', 'nn', 'bnext') +vim.keymap.set('n', 'bb', 'bprev') + +vim.keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()') +vim.keymap.set('n', 'gD', 'lua vim.lsp.buf.declaration()') +vim.keymap.set('n', 'gr', 'lua vim.lsp.buf.references()') +vim.keymap.set('n', 'gi', 'lua vim.lsp.buf.implementation()') + +vim.keymap.set('n', 'K', 'lua vim.lsp.buf.hover()') +vim.keymap.set('n', 'C-k', 'lua vim.lsp.buf.signature_help()') +vim.keymap.set('n', 'C-n', 'lua vim.lsp.diagnostic.goto_prev()') +vim.keymap.set('n', 'C-n', 'lua vim.lsp.diagnostic.goto_next()') + +local cmp = require'cmp' + +cmp.setup({ + snippet = { + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. + end, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'vsnip' }, + }, { + { name = 'buffer' }, + }) +}) + +cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'cmp_git' }, + }, { + { name = 'buffer' }, + }) +}) + +-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + } +}) + +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }) +}) + +-- Set up lspconfig. +local capabilities = require('cmp_nvim_lsp').default_capabilities() +require('lspconfig')['pyright'].setup { + capabilities = capabilities +} +local au_id = vim.api.nvim_create_augroup("RestoreCursorShapeOnExit", {clear = true}) +vim.api.nvim_create_autocmd("VimLeave",{ + command = 'set guicursor=a:ver20', + group = au_id +}) -- cgit v1.2.3