" plugin dependent conf starts call plug#begin('~/.config/nvim/plugged') " git Plug 'tpope/vim-fugitive', { 'tag': 'v3.6' } Plug 'airblade/vim-gitgutter' " tmux Plug 'tmux-plugins/vim-tmux-focus-events' Plug 'roxma/vim-tmux-clipboard' Plug 'wincent/terminus' " life improvements Plug 'sainnhe/gruvbox-material' Plug 'preservim/nerdtree' Plug 'Chiel92/vim-autoformat' Plug 'godlygeek/tabular' Plug 'ojroques/nvim-bufdel' " language support Plug 'preservim/vim-markdown' Plug 'samsaga2/vim-z80' Plug 'tomtom/tcomment_vim' Plug 'ludovicchabant/vim-gutentags' Plug 'hiphish/rainbow-delimiters.nvim' " status line Plug 'nvim-lualine/lualine.nvim' " general lua Plug 'nvim-lua/popup.nvim' Plug 'nvim-lua/plenary.nvim' " scala Plug 'scalameta/nvim-metals' " rust Plug 'rust-lang/rust.vim' " telescope Plug 'nvim-telescope/telescope.nvim' " auto complete Plug 'hrsh7th/nvim-cmp' Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-vsnip' Plug 'hrsh7th/vim-vsnip' " LSP Plug 'neovim/nvim-lspconfig' Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} " LSP helpers Plug 'kyazdani42/nvim-web-devicons' Plug 'folke/trouble.nvim' " learning Plug 'folke/which-key.nvim' call plug#end() :lua << EOF -- BufKil require('bufdel').setup { next = 'cycle', quit = false, } -- which-key require("which-key").setup { } -- telescope require("telescope").setup { defaults = { path_display = { truncate = 1 }, preview = { telescope = 0 }, }, } EOF function! ToggleGstatus() abort for l:winnr in range(1, winnr('$')) if !empty(getwinvar(l:winnr, 'fugitive_status')) exe l:winnr 'close' return endif endfor keepalt Git endfunction nnoremap gs :call ToggleGstatus() source ~/.config/nvim/lualine.lua " for LSP config source ~/.config/nvim/lsp.lua source ~/.config/nvim/treesitter.lua " scala and metals source ~/.config/nvim/metals.vim " haskell source ~/.config/nvim/haskell.vim " auto-complete source ~/.config/nvim/cmp.lua