nvim/lua/plugconfig.lua

128 lines
3.3 KiB
Lua

if vim == nil then
vim = {}
end
-- Update function and call
function Update_Sys()
vim.cmd("Lazy sync")
vim.cmd("TSUpdate")
end
vim.keymap.set("n", "<M-u>", ":lua Update_Sys()<CR>")
-- Bufstop
vim.keymap.set("n", "<M-w>", ":bdelete<CR>")
vim.keymap.set("n", "<C-y>", ":BufstopFast<CR>")
-- UltiSnips Configuration
vim.g.UltiSnipsExpandTrigger = "<tab>"
vim.g.UltiSnipsJumpForwardTrigger = "<c-l>"
vim.g.UltiSnipsJumpBackwardTrigger = "<c-h>"
vim.g.UltiSnipsEditSplit = "vertical"
vim.g.UltiSnipsSnippetDirectories = { "~/.config/nvim/UltiSnips" }
-- NERDTree Config
vim.g.NERDTreeShowHidden = 1
vim.keymap.set("n", "<C-e>", ":NERDTreeToggle<CR>")
-- Lexima
vim.g.lexima_enable_basic_rules = 1
vim.g.lexima_enable_newline_rules = 1
-- Telescope snippet
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>ff", builtin.find_files, {})
vim.keymap.set("n", "<leader>fg", builtin.live_grep, {})
vim.keymap.set("n", "<c-f>", builtin.current_buffer_fuzzy_find, {})
vim.keymap.set("n", "<leader>fh", builtin.help_tags, {})
vim.keymap.set("n", "<leader>fc", builtin.commands, {})
-- Telescope + Ultisnips
require("telescope").load_extension("ultisnips")
vim.keymap.set("n", "<leader>fs", require("telescope").extensions.ultisnips.ultisnips, {})
-- Git-Blame configuration
vim.g.gitblame_message_template = " => <author> • <date> • <summary>"
vim.g.gitblame_date_format = "%r"
-- Code completion
require("code-completion")
-- Mason setup
require("mason").setup(require("mason").setup({
ui = {
icons = {
package_installed = "",
package_pending = "󰔟",
package_uninstalled = "",
},
},
}))
require("mason-lspconfig").setup({
-- ensure_installed = { "clangd", "cmake", "jdtls", "texlab", "pylsp" },
ensure_installed = { "clangd" },
})
require("mason-lspconfig").setup_handlers({
function(clangd)
require("lspconfig")[clangd].setup({})
end,
})
require("lspconfig").verible.setup({
cmd = { "verible-verilog-ls", "--rules_config_search" },
})
-- Floating terminal
vim.keymap.set("n", "<C-t>", ":FloatermNew --height=0.9 --width=0.9 --wintype=float --name=terminal <CR>")
-- Set default colorscheme
vim.cmd("colo tokyonight-night")
-- Formatter configuration
vim.cmd([[
augroup FormatAutogroup
autocmd!
autocmd BufWritePost * FormatWrite
augroup END
autocmd BufWritePost *.v lua vim.lsp.buf.format({ async = false })
]])
-- Ale configuration
vim.g.ale_linters_explicit = 0
local linters = {
python = { "pylint" },
vim = { "vint" },
cpp = { "clang" },
c = { "clang" },
markdown = { "languagetool" },
latex = { "proselint" },
tex = { "proselint" },
plaintex = { "proselint" },
ada = { "gnat", "gcc", "cspell" },
}
vim.g.ale_linters = linters
vim.g.ale_fix_on_save = 1
-- vim.g.ale_ada_gpr_project_file = "default.gpr"
vim.g.ale_fixers = {
ada = { "gnatpp" },
asm = { "gcc" },
bash = { "bashate" },
c = { "astyle" },
latex = { "texlab", "textlint" },
lua = { "stylua" },
markdown = { "prettier", "pandoc" },
python = { "yapf" },
}
vim.keymap.set("n", "<leader>lf", ":ALEFix<CR>")
vim.keymap.set("n", "<leader>ld", ":ALEDetail<CR>")
-- Tagbar
vim.keymap.set("n", "<F8>", ":TagbarToggle<CR>") -- permanent window
vim.keymap.set("n", "<C-j>", ":TagbarOpenAutoClose<CR>") -- select, jump, close
vim.g.tagbar_autoclose = 0 -- do not autoclose after selection