return { { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate', event = { "VeryLazy" }, lazy = vim.fn.argc(-1) == 0, opts = { ensure_installed = { "bash", "bibtex", "c", "cpp", "css", "go", "html", "http", "javascript", "json", "latex", "lua", "python", "typescript", "tsx", "vim", }, sync_install = false, highlight = { enable = true, }, }, }, -- -- Autocompletion -- { 'ms-jpq/coq.artifacts', branch = 'artifacts' }, { 'ms-jpq/coq_nvim', dependencies = { 'ms-jpq/coq.artifacts' }, branch = 'coq', build = ':COQdeps', config = function() vim.cmd([[autocmd VimEnter * COQnow -s]]) end }, -- -- Language Configurations -- { 'ap/vim-css-color', lazy = false }, -- close tags in html languages { 'alvan/closetag.vim', ft = { "html", "vue", "typescriptreact" }, }, { 'udalov/kotlin-vim', ft = 'kotlin' }, { 'bellinitte/uxntal.vim', lazy = false }, -- -- Language Server -- -- Show Code Outline/Symbols tree window { 'stevearc/aerial.nvim', opts = { backends = { 'lsp', 'markdown', 'man' }, layout = { min_width = 25 }, }, keys = { {'e', ':AerialToggle'}, } }, -- Language Server Installer { 'williamboman/mason.nvim', cmd = { "Mason", "MasonInstall", "MasonUpdate", }, opts = { ui = { icons = { package_installed = "i", package_pending = "p", package_uninstalled = "u" }, }, }, }, { 'neovim/nvim-lspconfig', config = function() -- disable inline error messages vim.diagnostic.config({ virtual_text = false }) end }, { 'williamboman/mason-lspconfig.nvim', dependencies = { 'ms-jpq/coq_nvim', 'nanotee/nvim-lsp-basics', 'neovim/nvim-lspconfig', 'stevearc/aerial.nvim', 'williamboman/mason.nvim', }, opts = { ensure_installed = { "bashls", "clangd", "ast_grep", "gopls", "html", "jsonls", "lua_ls", "pyright", "texlab", "tsserver" }, }, ft = { "bash", "c", "cpp", "dart", "go", "html", "javascript", "javascriptreact", "json", "lua", "python", "tex", "typescript", "typescriptreact", }, config = function() local masonlsp = require 'mason-lspconfig' --[[ masonlsp.setup --]] masonlsp.setup_handlers { function(server_name) require('lspconfig')[server_name].setup(require('coq').lsp_ensure_capabilities { on_attach = function(client, bufnr) local basics = require('lsp_basics') basics.make_lsp_commands(client, bufnr) basics.make_lsp_mappings(client, bufnr) end }) end } end }, -- Show code diagnostics in a separate buffer window { 'folke/trouble.nvim', opts = { height = 6, icons = false, fold_open = "v", fold_closed = ">", signs = { error = "E:", warning = "W:", hint = "H:", information = "I:" }, use_diagnostic_signs = false }, cmd = { "TroubleToggle", }, keys = { {'t', ':TroubleToggle'}, } }, -- -- Markdown Live Preview -- { "iamcco/markdown-preview.nvim", ft = 'markdown', config = function() vim.fn["mkdp#util#install"]() vim.g.mkdp_theme = 'light' end }, -- -- Misc -- { "rest-nvim/rest.nvim", dependencies = { "nvim-lua/plenary.nvim" }, opts = { -- Open request results in a horizontal split result_split_horizontal = true, -- Keep the http file buffer above|left when split horizontal|vertical result_split_in_place = true, result = { show_curl_command = false, }, }, keys = { {'r', 'RestNvim'}, {'R', 'RestNvimLast'}, {'', 'RestNvimPreview'}, }, config = function() -- commands local ct = require('conftool') ct.defcmd('RestNvim', 'lua require(\'rest-nvim\').run()') ct.defcmd('RestNvimPreview', 'lua require(\'rest-nvim\').run(true)') ct.defcmd('RestNvimLast', 'lua require(\'rest-nvim\').last()') end, }, }