137 lines
4.5 KiB
Lua
137 lines
4.5 KiB
Lua
local cmd = vim.cmd -- to execute Vim commands e.g. cmd('pwd')
|
|
local fn = vim.fn -- to call Vim functions e.g. fn.bufnr()
|
|
local g = vim.g -- a table to access global variables
|
|
local opt = vim.opt -- to set options
|
|
local utils = require('utils')
|
|
|
|
-------------------- PACKER --------------------------------
|
|
-- Auto install packer.nvim if not exists
|
|
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
|
|
if fn.empty(fn.glob(install_path)) > 0 then
|
|
fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
|
|
vim.cmd 'packadd packer.nvim'
|
|
end
|
|
vim.cmd [[packadd packer.nvim]]
|
|
-------------------- EXTERNAL ------------------------------
|
|
require('my_plugins')
|
|
require('my_keymappings')
|
|
require('my_options')
|
|
require("my_autocommands")
|
|
|
|
-- plugins
|
|
require('my_telescope')
|
|
require('my_lspinstall')
|
|
require('my_cmp')
|
|
require('my_neogen')
|
|
-------------------- TREE-SITTER ---------------------------
|
|
require('nvim-treesitter.configs').setup({
|
|
ensure_installed = 'maintained',
|
|
highlight = {
|
|
enable = true
|
|
}
|
|
})
|
|
-------------------- GITSIGNS ------------------------------
|
|
require('gitsigns').setup()
|
|
-------------------- NVIM-TREE -----------------------------
|
|
require('nvim-tree').setup({
|
|
auto_close = true,
|
|
update_cwd = true,
|
|
update_to_buf_dir = {
|
|
-- enable the feature
|
|
enable = true,
|
|
-- allow to open the tree if it was previously closed
|
|
auto_open = false,
|
|
},
|
|
update_focused_file = {
|
|
enable = true,
|
|
update_cwd = false,
|
|
ignore_list = {}
|
|
},
|
|
diagnostics = {
|
|
enable = true,
|
|
icons = {
|
|
hint = "",
|
|
info = "",
|
|
warning = "",
|
|
error = "",
|
|
}
|
|
},
|
|
})
|
|
utils.map('n', '<leader>tt', '<cmd>NvimTreeToggle<CR>')
|
|
g.nvim_tree_highlight_opened_files = 1
|
|
g.nvim_tree_respect_buf_cwd = 1
|
|
-------------------- COMMENTED -----------------------------
|
|
require('Comment').setup({
|
|
toggler = {
|
|
---line-comment toggle
|
|
line = '<leader>cc',
|
|
},
|
|
opleader = {
|
|
---line-comment opfunc mapping
|
|
line = '<leader>c',
|
|
},
|
|
})
|
|
-------------------- CMAKE ---------------------------------
|
|
require('telescope').load_extension('cmake')
|
|
require('cmake').setup({
|
|
parameters_file = 'neovim.json', -- JSON file to store information about selected target, run arguments and build type.
|
|
build_dir = '{cwd}/build_nvim', -- Build directory. The expressions `{cwd}`, `{os}` and `{build_type}` will be expanded with the corresponding text values.
|
|
})
|
|
utils.map('n', '<F5>', ':CMake build<CR>:copen<CR>')
|
|
|
|
-- msbuild errorformat
|
|
opt.errorformat:append("\\ %#%f(%l\\\\\\,%c):\\ %m")
|
|
-- cl.exe errorformat
|
|
-- o.errorformat:append('\ %#%f(%l) : %#%t%[A-z]%# %m')
|
|
|
|
-------------------- NEOCLIP -------------------------------
|
|
require('neoclip').setup({
|
|
default_register = '+',
|
|
})
|
|
require('telescope').load_extension('neoclip')
|
|
-------------------- LUALINE -------------------------------
|
|
require('lualine').setup {
|
|
options = {theme = 'gruvbox'},
|
|
sections = {lualine_c = {'getcwd', 'filename', 'nvim_treesitter#statusline'},
|
|
}
|
|
}
|
|
-------------------- PROJECT -------------------------------
|
|
require("project_nvim").setup {
|
|
silent_chdir = true,
|
|
}
|
|
require('telescope').load_extension('projects')
|
|
utils.map('n', '<space>p', '<cmd>Telescope projects<cr>')
|
|
-------------------- TS-RAINBOW ----------------------------
|
|
require'nvim-treesitter.configs'.setup {
|
|
rainbow = {
|
|
enable = true,
|
|
extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean
|
|
max_file_lines = nil, -- Do not enable for files with more than n lines, int
|
|
-- colors = {}, -- table of hex strings
|
|
-- termcolors = {} -- table of colour name strings
|
|
}
|
|
}
|
|
-------------------- LUASNIP -------------------------------
|
|
require("luasnip.loaders.from_vscode").load()
|
|
-------------------- AUTOPAIRS -----------------------------
|
|
require('nvim-autopairs').setup{}
|
|
-------------------- FZF NATIVE ----------------------------
|
|
require('telescope').load_extension('fzf')
|
|
-------------------- TERMINAL ------------------------------
|
|
require('nvim-terminal').setup({
|
|
toggle_keymap = '<leader>z',
|
|
})
|
|
-------------------- INDENT-BLANKLINE ----------------------
|
|
opt.listchars:append("eol:↴")
|
|
-- opt.listchars:append("space: ")
|
|
opt.listchars:append("trail: ")
|
|
opt.listchars:append("tab:→ ")
|
|
|
|
require("indent_blankline").setup {
|
|
show_end_of_line = true,
|
|
use_treesitter = true,
|
|
show_current_context = true,
|
|
context_patterns = {'class', 'function', 'method', 'block', '^if', '^for', '^while'},
|
|
}
|
|
|