add devexp plugins and their mappings
parent
2d84a6c1d9
commit
04543adb05
119
neovim/init.lua
119
neovim/init.lua
|
@ -7,12 +7,30 @@ set shiftwidth=4
|
|||
set smartindent
|
||||
set exrc
|
||||
set incsearch
|
||||
set scrolloff=7
|
||||
set scrolloff=15
|
||||
set signcolumn=yes
|
||||
set colorcolumn=80
|
||||
set background=light
|
||||
set background=dark
|
||||
]])
|
||||
vim.opt.termguicolors = true
|
||||
-- some plugins misbehave when we do swap files
|
||||
vim.opt.swapfile = false
|
||||
vim.opt.backup = false
|
||||
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
||||
vim.opt.undofile = true
|
||||
vim.opt.completeopt = 'menuone,noselect'
|
||||
|
||||
vim.g.mapleader = ' '
|
||||
|
||||
-- basic keymaps
|
||||
vim.keymap.set({'n','v'}, '<Space>', '<Nop>', {silent=true}) -- since we're using space for leader
|
||||
|
||||
-- diagnostics (errors/warnings to be shown)
|
||||
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
|
||||
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
|
||||
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float) -- opens diag in box (floating)
|
||||
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist)
|
||||
|
||||
|
||||
-- vim-plug
|
||||
vim.cmd([[
|
||||
|
@ -25,10 +43,105 @@ endif
|
|||
|
||||
local Plug = vim.fn['plug#']
|
||||
vim.call('plug#begin', '~/.config/nvim/plugged')
|
||||
-- libs and dependencies
|
||||
Plug('nvim-lua/plenary.nvim')
|
||||
Plug('nvim-telescope/telescope.nvim', {tag = '0.1.0'})
|
||||
|
||||
-- plugins
|
||||
Plug('nvim-treesitter/nvim-treesitter') -- language parser engine
|
||||
Plug('nvim-treesitter/nvim-treesitter-textobjects') -- more text objects
|
||||
Plug('nvim-telescope/telescope.nvim', {tag = '0.1.0'}) -- fuzzy search thru files
|
||||
-- cmp: auto-complete/suggestions
|
||||
Plug('neovim/nvim-lspconfig') -- built-in LSP configurations
|
||||
Plug('hrsh7th/cmp-nvim-lsp')
|
||||
Plug('hrsh7th/cmp-buffer')
|
||||
Plug('hrsh7th/nvim-cmp')
|
||||
Plug('onsails/lspkind-nvim')
|
||||
-- DevExp
|
||||
Plug('numToStr/Comment.nvim') -- "gc" to comment visual regions/lines
|
||||
Plug('lewis6991/gitsigns.nvim') -- add git info to sign columns
|
||||
Plug('tpope/vim-fugitive') -- git commands in nvim
|
||||
|
||||
-- UI & colorscheme
|
||||
Plug('gruvbox-community/gruvbox')
|
||||
Plug('nvim-lualine/lualine.nvim') -- fancy status line
|
||||
Plug('lukas-reineke/indent-blankline.nvim') -- identation lines on blank lines
|
||||
|
||||
-- other
|
||||
Plug('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate'})
|
||||
|
||||
---------
|
||||
vim.call('plug#end')
|
||||
|
||||
-- color, highlighting, UI stuffs
|
||||
vim.cmd.colorscheme('gruvbox')
|
||||
|
||||
-- plugin keymaps
|
||||
function remap(mode, key_cmd, binded_fn, opts)
|
||||
opts = opts or {remap = true}
|
||||
return vim.keymap.set(mode, key_cmd, binded_fn, opts)
|
||||
end
|
||||
-- Comment.nvim
|
||||
require('Comment').setup()
|
||||
-- lukas-reineke/indent-blankline.nvim
|
||||
require('indent_blankline').setup {
|
||||
char = '┊',
|
||||
show_trailing_blankline_indent = false,
|
||||
}
|
||||
-- telescope
|
||||
require('telescope').setup {
|
||||
defaults = {
|
||||
mappings = {
|
||||
i = {
|
||||
['<C-u>'] = false,
|
||||
['<C-d>'] = false,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
pcall(require('telescope').load_extension, 'fzf')
|
||||
remap('n', '<C-p>','<cmd>Telescope<cr>', {desc = 'Open Telescope general search'})
|
||||
remap('n', '<leader>ff',function()
|
||||
require('telescope.builtin').find_files()
|
||||
end, {desc = '[F]ind [F]iles'})
|
||||
remap('n', '<leader>fg',function()
|
||||
require('telescope.builtin').live_grep()
|
||||
end, {desc = '[F]ind by [G]rep'})
|
||||
remap('n', '<leader>fb',function()
|
||||
require('telescope.builtin').buffers()
|
||||
end, {desc = '[F]ind existing [B]uffers'})
|
||||
remap('n', '<leader>fh',function()
|
||||
require('telescope.builtin').help_tags()
|
||||
end, {desc = '[F]ind [H]elp'})
|
||||
remap('n', '<leader>fd',function()
|
||||
require('telescope.builtin').live_grep()
|
||||
end, {desc = '[F]ind [D]iagnostics'})
|
||||
-- treesitter
|
||||
require('nvim-treesitter.configs').setup {
|
||||
ensure_installed = {'lua', 'typescript', 'rust', 'go', 'python'},
|
||||
highlight = {enable = true},
|
||||
indent = {enable = true},
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymap = {
|
||||
init_selection = '<c-space>',
|
||||
node_incremental = '<c-space>',
|
||||
node_decremental = '<c-backspace>'
|
||||
}
|
||||
},
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true,
|
||||
keymaps = {
|
||||
['af'] = '@function.outer',
|
||||
['if'] = '@function.inner',
|
||||
['ac'] = '@class.outer',
|
||||
['ic'] = '@class.inner',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue